PT09IHJlbGVhc2UgMS43LjkxID09PQoKMjAxNi0wMy0xNSAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY29heGlvbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAxLjcuOTEKCjIwMTYtMDMtMTUgMTE6Mzk6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9jcy5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNi0wMy0xMSAxNDoxNzoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTdG9yZSBjYXBzIG9uIHRoZSBwYWQgYmVmb3JlIGVtaXR0aW5nIGhhdmUtdHlwZSBidXQgc2VuZCBpdCBkb3duc3RyZWFtIG9ubHkgaW4gdGhlIGRlZmF1bHQgc2lnbmFsIGhhbmRsZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQ5MQoKMjAxNi0wMy0xMyAxMDozMzo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmVjaGVjayBhZnRlciBwcmVfcHVzaF9mcmFtZSgpIGlmIHRoZXJlIGFyZSB0YWdzIHBlbmRpbmcKCSAgTWFueSBwYXJzZXJzIGFyZSBzdG9yaW5nIHRhZ3Mgb25seSBpbiBwcmVfcHVzaF9mcmFtZSgpLCBpZiB3ZSB3b3VsZG4ndCBjaGVjawoJICBhZnRlcndhcmRzIHdlIHdvdWxkIHB1c2ggYnVmZmVycyBiZWZvcmUgdGhvc2UgdGFncyBhbmQgYSBsb3Qgb2YgY29kZSBhc3N1bWVzIHRoYXQKCSAgdGFncyBhcmUgYXZhaWxhYmxlIGJlZm9yZSBwcmVyb2xsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNTUzCgoyMDE2LTAzLTE0IDExOjE1OjA3ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEZpeCBjb21tZW50IHR5cG8KCjIwMTYtMDMtMTIgMTI6NTY6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBSZXZlcnQgInR5cGVmaW5kOiBTdG9yZSBjYXBzIG9uIHRoZSBwYWQgYmVmb3JlIGVtaXR0aW5nIGhhdmUtdHlwZSBidXQgc2VuZCBpdCBkb3duc3RyZWFtIG9ubHkgaW4gdGhlIGRlZmF1bHQgc2lnbmFsIGhhbmRsZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMDgzNWMzZDY1NjlkZGUwZWM5ZTU1MjQ0MzYzNjdjNzY3OGNjNGE0YS4KCSAgSXQgY2F1c2VzIGRlYWRsb2NrcyBpbiBkZWNvZGViaW4sIHdoaWNoIGN1cnJlbnRseSB3b3VsZCBkZWFkbG9jayBpZiB0aGUgY2FwcwoJICBhcmUgYWxyZWFkeSBvbiB0aGUgcGFkIGluIGhhdmUtdHlwZSBhbmQgYXJlIGZvcndhcmRlZCB3aGlsZSBjb3B5aW5nIHRoZSBzdGlja3kKCSAgZXZlbnRzICh3aGlsZSBob2xkaW5nIHRoZSBkZWNvZGViaW4gbG9jaykuLi4gYXMgdGhhdCBtaWdodCBjYXVzZSB0aGUgbmV4dAoJICBlbGVtZW50IHRvIGV4cG9zZSBwYWRzLCB3aGljaCB0aGVuIGNhbGxzIGJhY2sgaW50byBkZWNvZGViaW4gYW5kIHRha2VzIHRoZQoJICBkZWNvZGViaW4gbG9jay4KCSAgVGhpcyBuZWVkcyBzb21lIG1vcmUgdGhvdWdodHMuCgoyMDE2LTAzLTExIDE0OjE3OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFN0b3JlIGNhcHMgb24gdGhlIHBhZCBiZWZvcmUgZW1pdHRpbmcgaGF2ZS10eXBlIGJ1dCBzZW5kIGl0IGRvd25zdHJlYW0gb25seSBpbiB0aGUgZGVmYXVsdCBzaWduYWwgaGFuZGxlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzNDkxCgoyMDE2LTAzLTEwIDEwOjM1OjQwICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGRvY3M6IEZsZXNoIG91dCBlbGVtZW50IGFuZCBvYmplY3QgbWFjcm8gYWNjZXNzb3IgZG9jcyBhIGJpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMjEzCgoyMDE2LTAzLTA5IDE2OjA2OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBSZW1vdmUgc29tZSBvYnNvbGV0ZSBjb2RlIHRoYXQgY2FuIGNhdXNlIHdhcm5pbmdzCgoyMDE2LTAzLTA5IDEzOjQ0OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBEb24ndCByZXNldCBjYWxpYnJhdGlvbiBvZiBpbnRlcm5hbCBjbG9jayB3aGVuZXZlciBhIG5ldyBuZXRjbGllbnQgY2xvY2sgaXMgY3JlYXRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMzI1CgoyMDE2LTAzLTA0IDE4OjIzOjE4ICswMTAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGZpeCBHc3RQYXJlbnRCdWZmZXJNZXRhIEdUeXBlIG5hbWUKCSAgVGhlIGFsaWFzIGRlZmluZSBHU1RfVFlQRV9QQVJFTlRfQlVGRkVSX01FVEFfQVBJX1RZUEUgaXMgd3JvbmcgYW5kCgkgIGJyZWFrcyB0aGUgdXNhZ2Ugb2YgZ3N0X2J1ZmZlcl9nZXRfcGFyZW50X2J1ZmZlcl9tZXRhKCkuCgkgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIEdUeXBlIGFsaWFzIGFuZCBtYWtlIGFub3RoZXIgYWxpYXMgdG8ga2VlcCB0aGUgQVBJCgkgIGNvbXBhdGliaWxpdHkgZ3VhcmRlZCBieSBHU1RfRElTQUJMRV9ERVBSRUNBVEVELgoJICBBbHNvIGFkZGVkIGEgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYzMTEyCgoyMDE2LTAzLTAyIDEwOjM3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IFJlbW92ZSB1c2VsZXNzIE5VTEwgY2hlY2sgYW5kIGFkZCBhc3NlcnRpb24gZm9yIG1ha2luZyBhc3N1bXB0aW9ucyBleHBsaWNpdAoJICBnc3Rfc3RydWN0dXJlX25ld19lbXB0eSgpIGlzIG5vdCByZXR1cm5pbmcgTlVMTCBpbiBhbnkgdmFsaWQgc2NlbmFyaW9zLAoJICBjaGVja2luZyBmb3IgTlVMTCBoZXJlIGlzIHVzZWxlc3MuIEVzcGVjaWFsbHkgYmVjYXVzZSB3ZSB3b3VsZCBkZXJlZmVyZW5jZSBhbnkKCSAgTlVMTCByaWdodCBhZnRlciB0aGUgTlVMTCBjaGVjayBhZ2Fpbi4KCSAgQ0lEIDEzNTIwMzcuCgkgIFdlIHByZXZpb3VzbHkgY2hlY2sgaWYgdGhlIHN0cmluZyBlbmRzIG9uIC5jbGFzcywgYXMgc3VjaCBzdHJyY2hyKCkgc2hvdWxkCgkgIHJldHVybiBzb21ldGhpbmcgbm9uLU5VTEwuIEFkZCBhbiBhc3NlcnRpb24gZm9yIHRoYXQuCgkgIENJRCAxMzQ5NjQyLgoKMjAxNi0wMy0wMSAxOTo1MDoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IG1pbm9yIGRvY3MgZml4CgkgIE1ha2UgZ3RrLWRvYyBoYXBweS4KCj09PSByZWxlYXNlIDEuNy45MCA9PT0KCjIwMTYtMDMtMDEgMTg6MTQ6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS43LjkwCgoyMDE2LTAzLTAxIDE2OjUyOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTYtMDItMjkgMjM6MzM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBSZXZlcnQgImJ1czogY2hhbmdlIEdzdEJ1c1NvdXJjZSB0byBob2xkIGEgd2VhayByZWYgdG8gR3N0QnVzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg5NGM2N2U2NDJjMGY4NThiNWIxODA5N2ZhN2M5OTViZjNjYzUwYzEuCgoyMDE2LTAyLTI5IDIzOjMyOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBSZXZlcnQgImJ1czogTWFrZSBzdXJlIHRvIHJlbW92ZSB0aGUgR1BvbGxGRCBmcm9tIHRoZSBHU291cmNlcyB3aGVuIGRlc3Ryb3lpbmcgdGhlIGJ1cyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwNTcwMGE3MDgyYzE0NTA1N2NjYzBiZTc2MzA2N2JjYzI2MzIzOWViLgoKMjAxNi0wMi0yOSAxNzowNjozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IFJlbW92ZSBHU1RfU1RBVEVfTE9DS19GVUxMKCkgLyBVTkxPQ0tfRlVMTCgpCgkgIFRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgQVBJIGZvciB0aGF0IGluIEdMaWIgYW5kIG5vYm9keSBjb3VsZCd2ZSBldmVyIHVzZWQKCSAgdGhlc2UgbWFjcm9zIHdpdGhvdXQgY29tcGlsZXIgZXJyb3JzIGFueXdheS4KCjIwMTYtMDItMjkgMTA6MDE6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogTWFrZSBzdXJlIHRvIHJlbW92ZSB0aGUgR1BvbGxGRCBmcm9tIHRoZSBHU291cmNlcyB3aGVuIGRlc3Ryb3lpbmcgdGhlIGJ1cwoJICBPdGhlcndpc2UgdGhlIEdTb3VyY2UgY2FuIGxvb2sgaW50byBvdXIgYWxyZWFkeSBkZXN0cm95ZWQgYnVzIHdoZXJlIHRoZQoJICBHUG9sbEZEIGlzIHN0b3JlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjg0OQoKMjAxNi0wMi0yOSAxMTowNjo1MCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogZ2hvc3RwYWQ6IEZpeCBtZW1vcnkgbGVha3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjg0NQoKMjAxNi0wMi0yOCAxMzo1OTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGFkZCBndWFyZCB0byBjaGVjayB3cml0YWJpbGl0eSB3aGVuIHJlbW92aW5nIHRhZ3MgZnJvbSBhIHRhZ2xpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2Mjc5MwoKMjAxNi0wMi0yNyAxNTozNjoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBlbGVtZW50czogdXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3NzgKCjIwMTYtMDItMjcgMTU6Mjg6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfcGFkX3RlbXBsYXRlKCkKCSAgUHJldHR5IG11Y2ggZXZlcnkgc2luZ2xlIGVsZW1lbnQgZG9lcwoJICBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlIChlbGVtZW50X2NsYXNzLAoJICBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQgKCZzb21lX3RlbXBsKSk7CgkgIHdoaWNoIGlzIGJvdGggY29uZnVzaW5nIGFuZCB1bm5lY2Vzc2FyeS4gV2UgbWlnaHQganVzdAoJICBhcyB3ZWxsIGFkZCBhIGZ1bmN0aW9uIHRvIGRvIHRoYXQgaW4gb25lIHN0ZXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI3NzgKCjIwMTYtMDItMjcgMTU6MzI6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZml4IGluZGVudGF0aW9uCgoyMDE2LTAyLTI2IDEyOjQwOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiNjRmMDNmIHRvIDZmMmQyMDkKCjIwMTYtMDItMjUgMjI6MzY6MTQgKzAwMDAgIEphbWVzIFN0ZXZlbnNvbiA8amFtZXNAc3Rldi5vcmc+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogUHJldmVudCBnc3RfYnVzX2FkZF93YXRjaF9mdWxsX3VubG9ja2VkIGZyb20gYSBzZWdmYXVsdCBpZiBwcml2LT5wb2xsID09IE5VTEwKCSAgVGhpcyBoYXBwZW5zIGlmIHRoZSBwcm9jZXNzIHJ1bnMgb3V0IG9mIGZpbGUgZGVzY3JpcHRvcnMuIEJldHRlciBwcmludAoJICBhIGNyaXRpY2FsIHdhcm5pbmcgaW5zdGVhZCBvZiBqdXN0IGNyYXNoaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzAyCgoyMDE2LTAyLTI0IDEwOjU2OjI0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBidXM6IGNoYW5nZSBHc3RCdXNTb3VyY2UgdG8gaG9sZCBhIHdlYWsgcmVmIHRvIEdzdEJ1cwoJICBXaGVuIGhvbGRpbmcgYSByZWd1bGFyIHJlZiBpdCB3aWxsIGNhdXNlIHRoZSBHc3RCdXMgdG8gbmV2ZXIKCSAgcmVhY2ggMCByZWZlcmVuY2VzIGFuZCBpdCB3b24ndCBiZSBkZXN0cm95ZWQgdW5sZXNzIHRoZSBhcHBsaWNhdGlvbgoJICBleHBsaWNpdGx5IGNhbGxzIGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCgpLgoJICBTd2l0Y2hpbmcgdG8gd2Vha3JlZiB3aWxsIGFsbG93IHRoZSBHc3RCdXMgdG8gYmUgZGVzdHJveWVkLgoJICBUaGUgYXBwbGljYXRpb24gaXMgc3RpbGwgcmVzcG9uc2libGUgZm9yIGRlc3Ryb3lpbmcgdGhlCgkgIEdTb3VyY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI1NTIKCjIwMTYtMDItMjUgMTQ6MTE6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBBZGQgYSAiICIgYWZ0ZXIgcHRzOiBpbiB0aGUgc2lsZW50PWZhbHNlIG91dHB1dAoKMjAxNC0wNC0xNiAxMTo0MjoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBGaXggZXhhbXBsZXMgdG8gY2hlY2sgZm9yIGdzdF9idWZmZXJfbWFwIHJldHVybiB2YWx1ZXMKCSAgT3RoZXJ3aXNlIHBlb3BsZSByZWFkaW5nIHRoZSBtYW51YWwgd2lsbCBleHBlY3QgaXQgdG8gYWx3YXlzCgkgIHN1Y2NlZWQgOikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNC0wNC0xNiAxMTo0MDo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdzdF9idWZmZXJfbWFwCgkgIFdlIGNhbid0IGNoZWNrIGNvbnRlbnRzIGlmIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvIGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTQtMDQtMTYgMTE6Mzk6MTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwbHVnaW5zOiBDaGVjayByZXR1cm4gdmFsdWVzIG9mIGdzdF9idWZmZXJfbWFwKCkKCSAgVGhleSBjYW4gZmFpbCBmb3IgdmFyaW91cyByZWFzb25zLgoJICBGb3Igbm9uLWZhdGFsIGNhc2VzIChzdWNoIGFzIHRoZSBkdW1wIGZlYXR1cmUgb2YgaWRlbnRpeSBhbmQgZmFrZXNpbmspLAoJICB3ZSBqdXN0IHNpbGVudGx5IHNraXAgaXQuCgkgIEZvciBvdGhlciBjYXNlcyBwb3N0IGFuIGVycm9yIG1lc3NhZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzMjYKCjIwMTYtMDItMjMgMTc6MjM6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIGdzdF9tZW1vcnlfbWFwKCkKCSAgT25seSBkbyBtZW1vcnkgb3BlcmF0aW9ucyBpZiB0aGUgbWVtb3J5IHdhcyBzdWNjZXNmdWxseSBtYXAnZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODMyNgoKMjAxNS0xMi0xMCAxNTozMjoyNyArMDEwMCAgQWRhbSBNaWFydHVzIDxhZGFtLm1pYXJ0dXNAc3RyZWFtdW5saW1pdGVkLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBHU1RfVEFHX0NPTkRVQ1RPUgoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgbWV0YWRhdGEgd2hpY2ggZXhwbGljaXRlbHkgZGlzdGluZ3Vpc2hlcwoJICBiZXR3ZWVuIGFydGlzdC9jb21wb3NlciBhbmQgY29uZHVjdG9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNDUwCgoyMDE2LTAyLTIyIDE0OjA5OjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBzb21lIG1vcmUgZG9jdW1lbnRhdGlvbiBvbiBzdHJlYW0taWQKCSAgLi4uIHdoZXJlIGl0IG1pZ2h0IGVuZCB1cCBiZWluZyB1c2VkIGZvci4KCjIwMTYtMDEtMjIgMTE6MjU6MzAgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXI6IEluaXRpYWxpemUgR3N0VHJhY2VyIF9wcml2X3RyYWNlcnMgYW5kIHF1YXJrcyB1bmNvbmRpdGlvbm5hbGx5CgkgIFNvbWUgcGVvcGxlIG1pZ2h0IHVzZSB0cmFjZXIgaG9va3MgZXZlbiBpZiBHU1RfVFJBQ0VSX1BMVUdJTlMgaXMgbm90CgkgIHNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDk3OQoKMjAxNi0wMi0yMCAxMDoxODowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSAgZG9jczogbWFudWFsOiByZW1vdmUgZGVhZCBsaW5rIGZyb20gaW50ZWdyYXRpb24gcGFnZQoKMjAxNi0wMi0yMCAxMDoxMzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBkb2NzOiBtYW51YWw6IGZpeCBmb3JtYXR0aW5nCgkgIGFkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOjEyMTA6IGVsZW1lbnQgbGlzdGl0ZW06IHZhbGlkaXR5IGVycm9yIDogRWxlbWVudAoJICBsaXN0aXRlbSBjb250ZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgRFRELCBleHBlY3RpbmcgKC4uLiksCgkgIGdvdCAocGFyYSBDREFUQSBwYXJhICkKCSAgPC9saXN0aXRlbT4KCjIwMTYtMDItMjAgMDA6NTU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY2hlY2sgZm9yIGdpdCBpbiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2ggYXMgd2VsbAoKMjAxNi0wMi0xOSAyMDoyNjoyNiArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWsuY2hhdWhhbkBnbWFpbC5jb20+CgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIFdoZW5ldmVyIHdlIGluY2x1ZGUgd2luZG93cy5oLCBhbHNvIGRlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCgkgIFRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHN5bWJvbHMgYW5kIGNvZGUgcHVsbGVkIGluIGRyYXN0aWNhbGx5CgoyMDE2LTAyLTEzIDA2OjUzOjI0ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSAgcHJpbnRmOiBPbiBNU1ZDLCBhbHNvIGRlZmluZSBIQVZFX1NURElOVF9IX1dJVEhfVUlOVE1BWAoJICBNU1ZDIHByb3ZpZGVzIHN0ZGludC5oIGJ1dCBub3QgaW50dHlwZXMuaCwgYW5kIHdlIG5lZWQgdG8gaW5jbHVkZSBzdGRpbnQuaCB0bwoJICBnZXQgaW50bWF4X3QKCjIwMTYtMDItMTMgMDY6NDI6MDYgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogT25seSBpbmNsdWRlIHVuaXN0ZC5oIGlmIGZvdW5kCgkgIHVuaXN0ZC5oIGlzIG5vdCBwcm92aWRlZCBieSB0aGUgIE1pY3Jvc29mdCBWaXN1YWwgQysrIGNvbXBpbGVyLiBJdCBpbnN0ZWFkCgkgIHByb3ZpZGVzIHRoZSBuZWNlc3NhcnkgZGVmaW5lcyB0aHJvdWdoIGlvLmgKCjIwMTYtMDItMTMgMDY6MTk6NTIgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiBPbmx5IGNoZWNrIGZvciBTX0lGQkxLIGlmIGl0IGlzIGRlZmluZWQKCSAgV2luZG93cyBkb2VzIG5vdCBkZWZpbmUgU19JRkJMSyBzaW5jZSBpdCBkb2Vzbid0IGhhdmUgYmxvY2sgZGV2aWNlcwoKMjAxNi0wMi0xOSAyMDoxNzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJKiB3aW4zMi9jb21tb24vZGlyZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9kaXJlbnQuaDoKCSogd2luMzIvY29tbW9uL2d0Y2hhci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSogd2luMzIvdnMxMC9Db21tb24ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvTGlicmFyeS5wcm9wczoKCSogd2luMzIvdnMxMC9QbHVnaW4ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvUmVhZE1lLnR4dDoKCSogd2luMzIvdnMxMC9Ub29sLnByb3BzOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nZW5lcmF0ZWQvZ2VuZXJhdGVkLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ2VuZXJhdGVkL2dlbmVyYXRlZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWluc3BlY3QvZ3N0LWluc3BlY3QudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtaW5zcGVjdC9nc3QtaW5zcGVjdC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtdHlwZWZpbmQvZ3N0LXR5cGVmaW5kLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LXR5cGVmaW5kL2dzdC10eXBlZmluZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0Y29yZWVsZW1lbnRzL2dzdGNvcmVlbGVtZW50cy52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdGNvcmVlbGVtZW50cy9nc3Rjb3JlZWxlbWVudHMudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci5zbG46CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyL2dzdHJlYW1lci52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci9nc3RyZWFtZXIudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL25ldC9uZXQudmN4cHJvajoKCSogd2luMzIvdnMxMC9uZXQvbmV0LnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnM2L2dyYW1tYXIuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RuZXQuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSogd2luMzIvdnM3L2dyYW1tYXIudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWluc3BlY3QudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWxhdW5jaC52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9nc3RyZWFtZXIuc2xuOgoJKiB3aW4zMi92czcvbGliZ3N0YmFzZS52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3Rjb250cm9sbGVyLnZjcHJvajoKCSogd2luMzIvdnM3L2xpYmdzdGNvcmVlbGVtZW50cy52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9nc3QtaW5zcGVjdC52Y3Byb2o6CgkqIHdpbjMyL3ZzOC9nc3QtbGF1bmNoLnZjcHJvajoKCSogd2luMzIvdnM4L2dzdHJlYW1lci5zbG46CgkqIHdpbjMyL3ZzOC9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvdnM4L2xpYmdzdGNvbnRyb2xsZXIudmNwcm9qOgoJKiB3aW4zMi92czgvbGliZ3N0Y29yZWVsZW1lbnRzLnZjcHJvajoKCSogd2luMzIvdnM4L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgIHdpbjMyOiB1cGRhdGUgUkVBRE1FIGFuZCByZW1vdmUgb3V0ZGF0ZWQgYnVpbGQgY3J1ZnQKCSAgVGhpcyBoYXNuJ3QgYmVlbiB0b3VjaGVkIGZvciBnZW5lcmF0aW9ucywgZG9lc24ndCB3b3JrLAoJICBhbmQgaXMganVzdCBjYXVzaW5nIGNvbmZ1c2lvbi4gV2UgYWxzbyBkb24ndCB3YW50IHRvCgkgIG1haW50YWluIHRoZXNlIGZpbGVzIG1hbnVhbGx5LgoKMjAxNi0wMi0xOSAwODo0MzowMCArMDAwMCAgR2VvcmdlIFl1bmFldiA8Z3l1bmFldkBnbWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBFeHBsYWluIHdoYXQgaGFwcGVucyBpZiB1cHN0cmVhbSBlbGVtZW50cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwaXBlbGluZSB3aXRob3V0IGRyYWluaW5nIHRoZW0gZmlyc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjMwMgoKMjAxNi0wMi0xOSAxNDo0MTo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICB0ZXN0czogZml4IGluZGVudGF0aW9uCgoyMDE2LTAyLTE5IDEyOjM4OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjcuMiA9PT0KCjIwMTYtMDItMTkgMTE6NDc6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjcuMgoKMjAxNi0wMi0xOSAxMDoyOTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE2LTAyLTE4IDE0OjIwOjE3ICswMDAwICBKdWxpZW4gSXNvcmNlIDxqLmlzb3JjZUBzYW1zdW5nLmNvbT4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgdW5pbnN0YWxsZWQucGM6IGFkZCBzdXBwb3J0IGZvciBub24gbGlidG9vbCBidWlsZCBzeXN0ZW1zCgkgIEN1cnJlbnRseSB0aGUgLmxhIHBhdGggaXMgcHJvdmlkZWQgd2hpY2ggcmVxdWlyZXMgdG8gdXNlIGxpYnRvb2wgYXMKCSAgbWVudGlvbmVkIGluIHRoZSBHU3RyZWFtZXIgbWFudWFsIHNlY3Rpb24taGVsbG93b3JsZC1jb21waWxlcnVuLmh0bWwuCgkgIEl0IGlzIGZpbmUgYXMgbG9uZyBhcyB0aGUgYXBwbGljYXRpb24gaXMgYnVpbHQgdXNpbmcgbGlidG9vbC4KCSAgU28gY3VycmVudGx5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBjb21waWxlIGEgR1N0cmVhbWVyIGFwcGxpY2F0aW9uCgkgIHdpdGhpbiBnc3QtdW5pbnN0YWxsZWQgd2l0aCBDTWFrZSBvciBvdGhlciBidWlsZCBzeXN0ZW0gZGlmZmVyZW50CgkgIHRoYW4gYXV0b3Rvb2xzLgoJICBUaGlzIHBhdGNoIGFsbG93cyB0byBkbyB0aGUgZm9sbG93aW5nIGluIGdzdC11bmluc3RhbGxlZCBlbnY6CgkgIGdjYyB0ZXN0LmMgLW8gdGVzdCAkKHBrZy1jb25maWcgLS1jZmxhZ3MgLS1saWJzIGdzdHJlYW1lci0xLjApCgkgIFByZXZpb3VzbHkgaXQgcmVxdWlyZWQgdG8gcHJlcGVuZCBsaWJ0b29sIC0tbW9kZT1saW5rCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjA3NzgKCjIwMTYtMDItMTggMTE6NDM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBQVUxMIHByb2JlcyBhcmUgY2FsbGVkIHdpdGhvdXQgYSBidWZmZXIgc28gZG9uJ3QgcmVxdWlyZSBhbnkgb2YgdGhlIGRhdGEgZmxhZ3MgdG8gYmUgc2V0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IGI4OWZhNDc4NmIzZGY2Y2I3OWY2NjJjMDM3ZGVlNzRiM2Y3NDI4ZDYuCgkgIFRoZSBjaGFuZ2VzIGJyZWFrIHZhcmlvdXMgdGVzdHMuCgoyMDE2LTAyLTE4IDExOjQzOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogQWRkIHRlc3QgZm9yIGJsb2NraW5nIHB1bGwgcHJvYmUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMTdkMzBlOTQ0YmUwNDI1ZWJiNGZiNjA0NmY4MmQxZjYxNzAxZmU4Zi4KCSAgVGhlIFBVTEwgcHJvYmUgY2hhbmdlcyBicmVhayB2YXJpb3VzIHRlc3RzLgoKMjAxNi0wMi0xOCAxMTowOTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBQcm90ZWN0IGFnYWluc3QgZmFpbGluZyB0byBtYXAgaW5wdXQgbWVtb3J5IHdoZW4gbWVyZ2luZyBtZW1vcmllcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyMjM5CgoyMDE2LTAxLTI4IDE2OjIyOjE3ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCB0ZXN0IGZvciBibG9ja2luZyBwdWxsIHByb2JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjEyMTEKCjIwMTYtMDItMTcgMTY6NTc6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUFVMTCBwcm9iZXMgYXJlIGNhbGxlZCB3aXRob3V0IGEgYnVmZmVyIHNvIGRvbid0IHJlcXVpcmUgYW55IG9mIHRoZSBkYXRhIGZsYWdzIHRvIGJlIHNldAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMjExCgoyMDE2LTAyLTE3IDE2OjQxOjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgUmV2ZXJ0ICJlbGVtZW50OiBEb24ndCBob2xkIHN0YXRlIGxvY2sgYWxsIHRoZSB0aW1lIHdoaWxlIHNlbmRpbmcgYW4gZXZlbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjQyNzk5NzExOWEyYjZhYWNiZWI1NTBmNzI5OTM2ZjhiOTYzZTI0Yi4KCSAgSXQgYnJlYWtzIHRoaW5ncyB0aGF0IHVzZWQgdG8gd29yayBiZWZvcmUsIGV2ZW4gaWYgdGhlIGNoYW5nZSBieSBpdHNlbGYgaXMKCSAgY29ycmVjdCBhbmQgdGhlIHByZXZpb3VzIGNvZGUgaXMganVzdCB3b3JraW5nIGFyb3VuZCBkZWVwZXIgYnVncyBpbiB0aGUgYXN5bmMKCSAgc3RhdGUgY2hhbmdlIGNvZGUuIExldCdzIGdvIGJhY2sgdG8gd2hhdCBwcmV2aW91c2x5IHdvcmtlZCBhbmQgdGhlbiBmaXggYXN5bmMKCSAgc3RhdGUgY2hhbmdlcyBpbiBnZW5lcmFsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNTMyCgoyMDE2LTAyLTE3IDE1OjI2OjQ5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIFJldmVydCAiZ2hvc3RwYWQ6IERvIG5vdGhpbmcgaW4gX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCIKCSAgVGhhdCBjb21taXQgd291bGQgYnJlYWsgc2NoZWR1bGluZyByZWNvbmZpZ3VyYXRpb24gd2l0aCBnaG9zdHBhZHMKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYjU1YWQ3ZWFhZDRmYTJjMGIxNmM3ODkzNTBlODgyY2Y3MGEyN2VkLgoKMjAxNi0wMi0xNyAxNToyNTowOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBjaGVjazogQWRkIHRlc3QgZm9yIGNoZWNraW5nIHNjaGVkdWxpbmcgcmVjb25maWd1cmF0aW9uIHdpdGggZ2hvc3RwYWRzCgkgIFNob3djYXNlcyB0aGUgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IHRoaXMgY29tbWl0OgoJICBDb21taXQ6IGFiNTVhZDdlYWFkNGZhMmMwYjE2Yzc4OTM1MGU4ODJjZjcwYTI3ZWQKCSAgQXV0aG9yOiBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCSAgRGF0ZTogICBXZWQgSmFuIDI3IDEzOjIwOjIzIDIwMTYgKzAxMDAKCSAgZ2hvc3RwYWQ6IERvIG5vdGhpbmcgaW4gX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdAoKMjAxNi0wMi0xNyAxMTowMjozNCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhZGQgc29tZSB0ZXN0cyBmb3IgYWN0aXZhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTEzCgoyMDE2LTAxLTI3IDEzOjIwOjIzICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogRG8gbm90aGluZyBpbiBfaW50ZXJuYWxfYWN0aXZhdGVfcHVzaF9kZWZhdWx0CgkgIFdoZW4gY2FsbGluZyBnc3RfcGFkX2FjdGl2YXRlX21vZGUoKSBvbiBhIGdob3N0cGFkCgkgIGdzdF9naG9zdF9wYWRfYWN0aXZhdGVfcHVzaF9kZWZhdWx0KCkgd2lsbCBiZSBjYWxsZWQuIFRoaXMgd2lsbCBjYWxsCgkgIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpIG9uIHRoZSBwcm94eXBhZCAod2hpY2ggaXMgaW50ZXJuYWwgb2YgdGhlCgkgIGdob3N0cGFkKSwgY2FsbGluZyBnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2FjdGl2YXRlX3B1c2hfZGVmYXVsdCgpLCB3aGljaAoJICBhZ2FpbiB3aWxsIGNhbGwgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgb24gdGhlIG9yaWdpbmFsIGdob3N0cGFkLgoJICBCeSBzaW1wbHkgcmV0dXJuaW5nIFRSVUUgaW4KCSAgZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQoKSB0aGUgcmVkdW5kYW50IGNhbGwgdG8KCSAgZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlKCkgKGZvciB0aGUgc2FtZSBwYWQpIGlzIGF2b2lkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTMKCjIwMTYtMDItMTYgMTc6NTM6MTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogcmVtb3ZlIHVudXNlZCBtYWNybwoJICBtYWNybyB3YXMgYWRkZWQgaW4gMjAxMSBhbmQgaXNuJ3QgdXNlZCBhbnltb3JlCgoyMDE2LTAyLTE2IDE5OjExOjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIFJldmVydCAicXVldWUyOiBhZGQgb3ZlcnJ1biBzaWduYWwiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGFlOGIyNzIzZDBjZjE3OWE0ZjA5YjJmNmM1Zjc5N2UyZDk3MDM0ZC4KCSAgSXQncyBub3QgdXNlZCBhbnltb3JlIGJ5IGFueXRoaW5nIGFuZCB3YXMgY29uc2lkZXJlZCBhIGJhZCBpZGVhIGluIGdlbmVyYWwuCgoyMDE0LTA2LTA1IDEzOjI3OjI4IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBkb2NzOiBhbm5vdGF0ZSBDIGV4YW1wbGVzIGFzIHN1Y2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTI5MgoKMjAxNi0wMi0xNSAxMToxMzo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy90cmFjZXJzZXJpYWxpemUuYzoKCSAgYmVuY2htYXJrOiB0cmFjZXJzZXJpYWxpemU6IGFkZCBtaXNzaW5nIHJldHVybiBzdGF0ZW1lbnQKCSAgdHJhY2Vyc2VyaWFsaXplLmM6MTE3OjE6IGVycm9yOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mCgkgIG5vbi12b2lkIGZ1bmN0aW9uIFstV2Vycm9yPXJldHVybi10eXBlXQoKMjAxNi0wMi0xNSAxMDowNjowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgcHJvdGVjdGlvbi9oYXJuZXNzL3N5c3RlbWNsb2NrOiBtb3ZlIGRlY2xhcmF0aW9uIG91dCBvZiBmb3IgbG9vcCBpbml0aWFsaXphdGlvbgoJICBDOTAgY29tcGlsZXJzIGNvbXBsYWluIGFib3V0IGl0CgkgIGVycm9yOiDigJhmb3LigJkgbG9vcCBpbml0aWFsIGRlY2xhcmF0aW9ucyBhcmUgb25seSBhbGxvd2VkIGluIEM5OSBvciBDMTEgbW9kZQoJICBBbHNvIHJ1biBnc3QtaW5kZW50IG9uIHN5c3RlbWNsb2NrIHRlc3RzLgoKMjAxNi0wMS0yNyAxNToxNjowMyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBhbHdheXMgc2V0IG91ciB0ZXN0LWNsb2NrIG9uIHRoZSBoYXJuZXNzZWQgZWxlbWVudAoJICBUaGUgaW50ZWdyYXRpb24gaXMgYWxyZWFkeSBzbyB0aWdodCwgdGhlcmUgaXMgbm8gcmVhc29uIHRvCgkgIG5vdCBmdXJ0aGVyIGZvcm1hbGl6ZSBpdCEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxNAoKMjAxNi0wMi0xMyAxNjoxMDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IGNvbXBpbGF0aW9uCgkgIFdhcyBzdXBwb3NlZCB0byBiZSBzcXVhc2hlZCB3aXRoIDMzNmM3YmI2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTAKCjIwMTYtMDItMTMgMTY6MTA6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBpbmRlbnRhdGlvbgoKMjAxNi0wMS0yMSAxMzozMzoxNSArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggTVQgaXNzdWVzIHdoZW4gZm9yd2FyZGluZyBldmVudC9xdWVyeSB0byBzaW5rIGhhcm5lc3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkxMAoKMjAxNi0wMi0xMyAxMDowNDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBuZXcgLWJhZCBsaWJyYXJpZXMgYXVkaW8sIHBsYXllciBhbmQgd2F5bGFuZCB0byBwYXRocwoJICBBbmQgcmVtb3ZlIGVnbCB3aGljaCBubyBsb25nZXIgZXhpc3RzLgoKMjAxNi0wMi0xMiAxMTo1Nzo1NSAtMDgwMCAgTWFydGluIEtlbGx5IDxtYXJ0aW5Ac3Vycm91bmQuaW8+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgcHVzaHNyYzogZml4IG1pbm9yIHR5cG9zIGluIGhlYWRlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTcwCgoyMDE2LTAxLTIxIDEzOjI4OjIzICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogQWRkIGV2ZW50IHN0cmVzcyB0ZXN0IGZ1bmN0aW9ucyB3aXRoIGNhbGxiYWNrCgkgIFNpbWlsYXIgdG8gdGhlIHN0cmVzcyB0ZXN0IGZ1bmN0aW9ucyBmb3IgYnVmZmVycyB0aGF0IGhhcyBhIGNhbGxiYWNrIHRvCgkgIGNyZWF0ZSB0aGUgYnVmZmVyIHRvIGJlIHB1c2hlZCwgaXQncyB1c2VmdWwgdG8gaGF2ZSBmdW5jdGlvbnMgdGhhdCB1c2UgYQoJICBjYWxsYmFjayB0byBjcmVhdGUgdGhlIGV2ZW50IHRvIGJlIHB1c2hlZC4KCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3NfcHVzaF9ldmVudF93aXRoX2NiX3N0YXJ0KCkKCSAgQVBJOiBnc3RfaGFybmVzc19zdHJlc3NfcHVzaF9ldmVudF93aXRoX2NiX3N0YXJ0X2Z1bGwoKQoJICBBUEk6IGdzdF9oYXJuZXNzX3N0cmVzc19zZW5kX3Vwc3RyZWFtX2V2ZW50X3dpdGhfY2Jfc3RhcnQoKQoJICBBUEk6IGdzdF9oYXJuZXNzX3N0cmVzc19wdXNoX3Vwc3RyZWFtX2V2ZW50X3dpdGhfY2Jfc3RhcnRfZnVsbCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MzIKCjIwMTYtMDEtMTQgMjE6NTQ6NDIgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiBhZGQgY3JhbmsgbWV0aG9kCgkgIEFuZCB1c2UgaXQgaW5zaWRlIEdzdEhhcm5lc3MKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19jcmFuaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDYKCjIwMTUtMTItMDkgMTM6NDM6MzggKzExMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogZW5hYmxlIGVtcHR5IGhhcm5lc3MgY3JlYXRpb24gYW5kIHJlZmFjdG9yIGFyb3VuZCB0aGlzCgkgIEFsc28gbWFrZSB0aGUgdGVzdGNsb2NrIGEgbWVtYmVyIG9mIHRoZSBoYXJuZXNzLCBhbGxvd2luZyBzb21lCgkgIG1vcmUgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGNsb2NrIHByaW9yIHRvIGFkZGluZyBlbGVtZW50cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkwNQoKMjAxNi0wMi0xMiAxNToxMjo0MyArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogZml4IHVudXNlZCBwYXJhbWV0ZXIgY29tcGlsZXIgd2FybmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTE5CgoyMDE1LTA4LTA0IDE3OjA5OjM1ICswMjAwICBNaWtoYWlsIEZsdWRrb3YgPG1pc2hhQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IHRoZSByYWNlIGluIGJsb2NraW5nIHB1c2ggbW9kZQoJICBEZXBlbmRpbmcgb24gd2hlbiBnc3RfaGFybmVzc19wdWxsIHdhcyBjYWxsZWQgLSBiZWZvcmUgdGhlIGJ1ZmZlciByZWFjaGVkCgkgIGdzdF9oYXJuZXNzX2NoYWluIG9yIGFmdGVyIHdlIGNhbiBnZXQgZGlmZmVyZW50IGJlaGF2aW9ycyBvZiB0aGUgdGVzdAoJICB3aXRoIGVuYWJsZWQgYmxvY2tpbmcgcHVzaCBtb2RlLiBUaGUgZml4IG1ha2VzIHRoZSBiZWhhdmlvciBhbHdheXMgdGhlCgkgIHNhbWUuIEluIHB1bGwgZnVuY3Rpb24gd2UgZ2V0IHRoZSBidWZmZXIgZmlyc3QsIHRodXMgbWFraW5nIHN1cmUKCSAgZ3N0X2hhcm5lc3NfY2hhaW4gd2FpdHMgZm9yIHRoZSBzaWduYWwsIGFuZCBlbWl0dGluZyB0aGUgc2lnbmFsIGFmdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxOTMxCgoyMDE2LTAyLTA0IDE1OjE2OjQxICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBBZGQgdGNhc2Vfc2tpcF9icm9rZW5fbG9vcF90ZXN0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MTcKCjIwMTYtMDEtMjEgMTM6MjU6NDAgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggZG9jcyBmb3Igc3RyZXNzIHRlc3QgZnVuY3Rpb25zCgkgIG5vdGlmeSBpcyBub3QgY2FsbGVkIHBlciBidWZmZXIsIGJ1dCB3aGVuIHRoZSB0aHJlYWQgaXMgZnJlZWQuCgkgIENvbW1lbnQgYWJvdXQgc2VyaWFsaXplZCBldmVudHMgYW5kIE9PQiBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciB1cHN0cmVhbQoJICBldmVudHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDkKCjIwMTUtMTItMDggMTQ6MTg6MjEgKzAxMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBVbnNldCBzaW5rX2ZvcndhcmRfcGFkIGJlZm9yZSB0ZWFyaW5nIGRvd24gc2lua19oYXJuZXNzCgkgIFNldCB0aGUgc2lua19mb3J3YXJkX3BhZCB0byBOVUxMIGJlZm9yZSB0ZWFyaW5nIGRvd24gc2lua19oYXJuZXNzIHRvCgkgIGF2b2lkIHRoYXQgdGhlIGhhcm5lc3MgdHJpZXMgdG8gZm9yd2FyZCBldmVudHMvcXVlcmllcyB0byBpdCB3aGlsZSBpdCdzCgkgIHRlYXJpbmcgZG93bi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTkwNAoKMjAxNS0wOS0yOSAxMjoxMjoyNCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggdXAgZG9jcyB0byByZWZlcmVuY2UgZnVuY3Rpb25zIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE5MDEKCjIwMTYtMDItMTAgMTQ6MDE6NTQgKzAxMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcGFzcyBhY3F1aXJlIHBhcmFtcyB0byBhbGxvY19idWZmZXIKCSAgV2hlbiBhbGxvY2F0aW5nIGEgbmV3IGJ1ZmZlciBpbiB0aGUgcG9vbCwgYm90aCB0aGUgZG9fYWxsb2NfYnVmZmVyKCkgYW5kIHRoZQoJICB2bWV0aG9kLCBhbGxvY19idWZmZXIoKSwgcmVjZWl2ZSB0aGUgcGFyYW1ldGVyIEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zLgoJICBOb25ldGhlbGVzcywgd2hlbiBkZWZhdWx0X2FjcXVpcmVfYnVmZmVyKCkgY2FsbHMgdGhlIGRvX2FsbG9jX2J1ZmZlcigpIGl0IGRvZXMKCSAgbm90IHBhc3MgdGhlIHJlY2VpdmVkIEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zLCBzbyB3aGVuIHRoZSB1c2VyIHBhc3MgdGhvc2UKCSAgcGFyYW1ldGVycyB0aGV5IGFyZSBpZ25vcmVkIGJ5IGFsbG9jX2J1ZmZlcigpIHZtZXRob2QuCgkgIFRoaXMgb25lLWxpbmVyIHBhdGNoIHBhc3MgdGhlIHJlY2VpdmVkIGFjcXVpcmUgcGFyYW1zIHRvIGRvX2FsbG9jX2J1ZmZlcigpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxODI0CgoyMDE2LTAyLTEwIDA5OjA5OjI5ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IEZpeCB3YWl0L3Vuc2NoZWR1bGUgcmFjZQoJICBGaXhlcyBhIHJhY2Ugd2hlcmUgYW4gZW50cnkgaXMgc2V0IHRvIEJVU1kgaW4KCSAgZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcigpIGFuZCBpcyBVTlNDSEVEVUxFRCBiZWZvcmUKCSAgZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCgpIHN0YXJ0cyBwcm9jZXNzaW5nIGl0LiBUaGUKCSAgd2FrZXVwIGFkZGVkIGJ5IGdzdF9zeXN0ZW1fY2xvY2tfaWRfdW5zY2hlZHVsZSgpIG11c3QgYmUgY2xlYW5lZCB1cC4KCSAgVHdvIHN0cmVzcyB0ZXN0cyBhcmUgYWRkZWQuIE9uZSB0ZXN0IHRoYXQgdHJpZ2dlcnMgdGhlIHNwZWNpZmljIGlzc3VlCgkgIGRlc2NyaWJlZCBhYm92ZS4gVGhlIHNlY29uZCBzdHJlc3NlcyB0aGUgY29kZSBwYXRoIHdoZXJlIGEgd2FpdCBpcwoJICByZXNjaGVkdWxlZCBiZWNhdXNlIHRoZSBwb2xsIHJldHVybmVkIGVhcmx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNTg2CgoyMDE2LTAyLTA1IDE1OjM0OjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGhhbmRsZSB1bnNjaGVkdWxlIG9mIGxhdGUgZW50cmllcwoJICBJZiB0aGUgY2xvY2tlbnRyeSBpcyB0b28gbGF0ZSBhbmQgaXMgdW5zY2hlZHVsZWQgYmVmb3JlIGl0IGdldHMKCSAgYSBjaGFuZ2UgdG8gZGV0ZWN0IGl0cyBsYXRlbmVzcyB0aGUgd2FrZXVwIGNvdW50IGFuZCB0aGUgcG9sbCBhcmUKCSAgdXNlZCBidXQgbmV2ZXIgcHJvcGVybHkgY2xlYW5lZCB1cC4gVGhpcyBsZWF2ZXMgaXQgaW4gYSBkaXJ0eSBzdGF0ZQoJICB0aGF0IGlzIGdvaW5nIHRvIG1lc3Mgd2l0aCB0aGUgbmV4dCBjbG9jayBlbnRyeSB3YWl0aW5nIHJlcXVlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNTg2CgoyMDE2LTAyLTA1IDE5OjA4OjE4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGV4dGVuZCB0aGUgQU1fVEVTVFNfRU5WSVJPTk1FTlQgZnJvbSBjaGVjay5tYWsKCSAgVG8gZ2V0IHRoZSBDS19ERUZBVUxUX1RJTUVPVVQgZGVmaW5lZCBmb3IgYWxsIHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE0NzIKCjIwMTYtMDItMDUgMTg6MDE6NTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODZlNDY2MyB0byBiNjRmMDNmCgoyMDE2LTAyLTA0IDEwOjA3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggc3RyYXkgZGlzY29udCBmbGFnIHNldCBvbiBvdXRnb2luZyBidWZmZXJzIGluIHB1c2ggbW9kZQoJICBXZSBoYXZlIG5vIGd1YXJhbnRlZXMgYWJvdXQgd2hhdCBmbGFncyBhcmUgc2V0IG9uIGJ1ZmZlcnMgd2UgdGFrZQoJICBvdXQgb2YgdGhlIEdzdEFkYXB0ZXIuIElmIHdlIHB1c2ggb3V0IG11bHRpcGxlIGJ1ZmZlcnMgZnJvbSB0aGUKCSAgZmlyc3QgaW5wdXQgYnVmZmVyICh3aGljaCB3aWxsIGhhdmUgZGlzY29udCBzZXQpLCBvbmx5IHRoZSBmaXJzdAoJICBidWZmZXIgd2UgcHVzaCBvdXQgc2hvdWxkIGJlIGZsYWdnZWQgYXMgZGlzY29udCwgbm90IGFsbCBvZiB0aGUKCSAgYnVmZmVycyBwcm9kdWNlZCBmcm9tIHRoYXQgZmlyc3QgaW5pdGlhbCBpbnB1dCBidWZmZXIuCgkgIEZpeGVzIGlzc3VlIHdoZXJlIHRoZSBmaXJzdCBmZXcgbXAzIGZyYW1lcy9zZWNvbmRzIG9mIGRhdGEgaW4gcHVzaAoJICBtb2RlIHdlcmUgc2tpcHBlZCBvciBnYXJibGVkIGluIHNvbWUgY2FzZXMsIGFuZCB0aGUgZGlzY29udCBmbGFncwoJICB3b3VsZCBhbHNvIHRyaXAgdXAgZGVjb2RlcnMgd2hpY2ggd2VyZSBnZXR0aW5nIGRyYWluZWQvZmx1c2hlZCBmb3IKCSAgZXZlcnkgYnVmZmVyLiBUaGlzIHdhcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBpbiAxLjYgYXBwYXJlbnRseS4KCjIwMTYtMDItMDIgMTY6MzU6MzQgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogRG8gbm90IHVuc2V0IHVuaW5pdGlhbGxpemVkIEdWYWx1ZQoJICBJbiBjYXNlIHRoZSBwcm9wZXJ0eSB3YXMgbm90IGludGVycG9sbGFibGUgd2UgbWlnaHQgbmV2ZXIgaW5pdGlhbGl6ZQoJICB0aGUgR1ZhbHVlLCB3ZSBzaG91bGQgdGh1cyBuZXZlciB1bnNldCBpdC4KCjIwMTYtMDItMDIgMTY6MzQ6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgZG9jczogcHdnOiBmaXggbWlzc2luZyBlbmQgb2YgbGluZSBzZW1pY29sb24gaW4gY3VzdG9tIG1ldGEgZXhhbXBsZQoKMjAxNi0wMi0wMiAxMDo1NjozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBhZGQgZ3VhcmQgdG8gbWFrZSBzdXJlIGdzdHJlYW1lciBpcyBpbml0aWFsaXplZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxNDQ4CgoyMDE2LTAyLTAxIDE4OjQxOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIG5ldyBydHNwIHNlcnZlciBwbHVnaW4gbG9jYXRpb24gdG8gcGx1Z2lucyBwYXRoCgoyMDE2LTAxLTI1IDE2OjMwOjA0ICswOTAwICBIb29uSGVlIExlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVHJ5IHRvIGdlbmVyYXRlIGNhcHMgb24gdGhlIHNyY3BhZCBiZWZvcmUgZm9yd2FyZGluZyBHQVAgZXZlbnQKCSAgVG8gY29uZmlndXJlIGRvd25zdHJlYW0gZWxlbWVudHMgYW5kIGNvbXBsZXRlIGluaXRpYWwgcHJlLXJvbGxpbmcsCgkgIGVuc3VyZSB3ZSBoYXZlIGRlZmF1bHQgb3V0cHV0IGNhcHMgYmVmb3JlIGZvcndhcmRpbmcgR0FQIGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzODk5CgoyMDE2LTAxLTI4IDIwOjE4OjU1IC0wNzAwICBBbGV4IEhlbnJpZSA8YWxleGhlbnJpZTI0QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogSW1wcm92ZSBFbmdsaXNoIGdyYW1tYXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MTI3MwoKMjAxNi0wMS0yNyAxMjo0NToyMCArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgIGRvY3M6IGZpeCBhbiBvdGhlciB0eXBvIGluIGNsb2NrIGNoYXB0ZXIKCSAgU2hvY2tpbmdseSBJIG1pc3NlZCB0aGlzIGJpZ2dlciB0eXBvIGluIHRoZSBwcmV2aW9zIGZpeAoKMjAxNi0wMS0yNyAxMjoyNDo1NyArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGNsb2NrIGNoYXB0ZXIKCjIwMTYtMDEtMjUgMTI6MDk6NTQgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czpnc3RpbmZvOiBGaXggc3RyaW5nIG1lbW9yeSBsZWFrCgkgIGluZm9fZm91cmNjIHRlc3QgbGVha3Mgc3RyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxMDcxCgoyMDE2LTAxLTIzIDE2OjAwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGluZm86IG1ha2Ugd29yayB3aXRob3V0IHJlZ2lzdHJ5CgoyMDE2LTAxLTIyIDEyOjUwOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2luZy5zaDoKCSAgdHJhY2VyOiByZW5hbWUgR1NUX1RSQUNFUl9QTFVHSU5TIGVudiB2YXIgdG8gR1NUX1RSQUNFUlMKCjIwMTYtMDEtMjEgMDg6MTI6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IGRvbid0IGxlYWsgdGhlIHNwZWMgc3RydWN0dXJlcwoJICBDaGFuZ2UgdGhlIGdzdF90cmFjZXJfcmVjb3JkX25ldygpIGFwaSB0byB0YWtlIHRoZSBwYXJhbWV0ZXJzIHRoZSBtYWtlIHRoZQoJICBzcGVjIHN0cnVjdHVyZSBkaXJlY3RseS4gVGhpcyBhbGxvd3MgdXMgdG8gb3duIHRoZSB0b3AtbGV2ZWwgc3RydWN0dXJlIGFuZAoJICBhbHNvIGNvbGxlY3QgdGhlIGFyZ3Mgc28gdGhhdCB3ZSBjYW4gdGFrZSBvd25lcnNoaXAgb2YgdGhlIHN1Yi1zdHJ1Y3R1cmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODIxCgoyMDE2LTAxLTIxIDE1OjQ1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2U6IGZpeCBjb21wYXJpc29uIGluIF9oYXNfY2xhc3Nlc3YoKQoJICBXZSdyZSBjb21wYXJpbmcgYSBwb2ludGVyIHR5cGUgd2l0aCAnXDAnIGhlcmUsIHdoaWNoCgkgIHByb2JhYmx5IGlzbid0IHJpZ2h0LCBhbmQgdGhlIGxvb3AgY29uZGl0aW9uIG1hZGUgc3VyZQoJICB0aGF0IGNsYXNzZXNbMF0gaXMgIT0gTlVMTCBhbHJlYWR5LCBzbyBpdCdzIHBvaW50bGVzcy4KCSAgV2FzIHByb2JhYnkgbWVhbnQgdG8gY2hlY2sgaWYgdGhlIHN0cmluZyBwb2ludGVkIHRvIGlzCgkgIG5vdCBlbXB0eSwgc28gbWFrZSBpdCBkbyB0aGF0IGluc3RlYWQuCgoyMDE2LTAxLTIwIDIwOjMyOjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0ZXN0L3RyYWNlcnJlY29yZDogdW5yZWYgb2JqZWN0cyBhbmQgZnJlZSBzdHJpbmcKCjIwMTYtMDEtMTggMjI6NDU6NTggKzAwMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiB0ZXN0czogYWRkZWQgc3RyZXNzIHRlc3QgZm9yIGFzeW5jIG9yZGVyCgkgIEtlZXAgaW5zZXJ0aW5nIGFsYXJtcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0LiBEdWUgdG8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDc1NwoJICBhbGFybSB0aHJlYWQgd2lsbCBnZXQgY29uZnVzZWQgYW5kIG5vdCBzZXJ2ZSB0aGVtIGluIG9yZGVyLgoKMjAxNi0wMS0xOCAxNjoyNToyMCArMDAwMCAgRmxvcmluIEFwb3N0b2wgPGZsb3Jpbi5hcG9zdG9sQG9yZWdhbi5uZXQ+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGZpeGVkIHJhY2UgY29uZGl0aW9uIGluIGhhbmRsaW5nIGFsYXJtcwoJICBXaGVuIGNob29zaW5nIHRoZSBmaXJzdCBlbnRyeSBmcm9tIHRoZSBsaXN0LCBnc3Rfc3lzdGVtX2Nsb2NrX2FzeW5jX3RocmVhZAoJICBtdXN0IHNldCB0aGUgZW50cnkgc3RhdGUgdG8gYnVzeSBiZWZvcmUgcmVsZWFzaW5nIHRoZSBjbG9jayBsb2NrLiBPdGhlcndpc2UKCSAgYSBuZXcgZW50cnkgY291bGQgYmUgYWRkZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdCBhbmQKCSAgZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQgd2lsbCBiZSB1bmF3YXJlIGFuZCBrZWVwIHdhaXRpbmcgb24gdGhlIGVudHJ5CgkgIGl0IGhhcyBhbHJlYWR5IGNob3Nlbi4KCSAgQWxzbyBpbXByb3ZlZCBtZXNzYWdlcyBhYm91dCBleHBlY3RlZCBzdGF0ZSBhbmQgYnVtcGVkIHRoZW0gdG8gRVJST1IgbGV2ZWwKCSAgdG8gZGV0ZWN0IHVuZXhwZWN0ZWQgc3RhdGUgY2hhbmdlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDc1NwoKMjAxNi0wMS0yMCAxMTowNzoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogcmVtb3ZlIGR1cGxpY2F0ZSBjaGVjawoKMjAxNi0wMS0yMCAwOTo1NzowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiB0d28gc21hbGwgZml4ZXMgZm9yIHdoZW4gYW4gZXhpc3RpbmcgcGFkIGlzIHJlcXVlc3RlZAoJICBVbmxvY2sgd2hlbiByZXR1cm5pbmcgTlVMTCBmcm9tIGdzdF9zaW5nbGVfcXVldWVfbmV3KCksIGFuZCBkb24ndAoJICBjcmFzaCB3aXRoIGRlYnVnIGxvZ2dpbmcgZW5hYmxlZCBpZiBOVUxMIGlzIHJldHVybmVkLgoJICBTcG90dGVkIGJ5IFN0ZXZlbiBIb3ZpbmcuCgoyMDE2LTAxLTIwIDEwOjAyOjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiByZW1vdmUgYSBoYWxmIGZpbmlzaGVzaCBzZW50ZW5jZSBpbiB0aGUgZG9jcwoJICBObyBpZGVhIHdoYXQgd2FzIHRoZSBpZGVhIGhlcmUuIFNPIGxldHMganVzdCBkcm9wIGl0LgoKMjAxNi0wMS0xOSAxNDozOTowNiArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSAgdHJhY2VycmVjb3JkOiBGaXggc2VsZi0+c3BlYyBzdHJ1Y3R1cmUgaW52YWxpZCBmcmVlCgkgIHNlbGYtPnNwZWMgaXMgZ290IHVzaW5nIGdfdmFsdWVfZ2V0X2JveGVkKCksIHdoaWNoIGlzIGEgdHJhbnNmZXIgbm9uZSBmdW5jdGlvbi4KCSAgU28gdGhlIHNhbWUgc2hvdWxkIG5vdCBiZSBmcmVlZCwgd2hpY2ggaXMgcmVzdWx0aW5nIGluIHdyb25nIGJlaGF2aW9yLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwODIxCgoyMDE2LTAxLTIwIDA5OjI1OjQ0ICswMTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IEluaXRpYWxpc2UgZmxhZ3MgdG8gYXZvaWQgd3JvbmcgY29tcGFyaXNpb24KCSAgR3N0VHJhY2VyVmFsdWVGbGFncyBpcyBub3QgYmVpbmcgaW5pdGlhbGl6ZWQgYW5kIHRoZSBzYW1lIGNvdWxkIHJlc3VsdCBpbiB3cm9uZwoJICBjb21wYXJpc2lvbiBhbmQgYmVoYXZpb3IuIEhlbmNlIGluaXRpYWxpemluZyBpdCB0byBHU1RfVFJBQ0VSX1ZBTFVFX0ZMQUdTX05PTkUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA4MjEKCjIwMTYtMDEtMjAgMDk6MTg6MDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0cy9nc3QvaW5mbzogRml4IG1lc3NhZ2VzIGdsaXN0IG1lbW9yeSBsZWFrCgoyMDE2LTAxLTE5IDE1OjAzOjU1ICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0ZXN0czogdHJhY2VycmVjb3JkOiBGaXggbWVzc2FnZXMgZ2xpc3QgbWVtb3J5IGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDgyMQoKMjAxNi0wMS0xOCAyMToxMjo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB0cmFjZXI6IGFkZCBhbiBpbnRlcm5hbCBwdHIgZm9ybWF0IGZvciB0cmFjZXIgc2VyaWFsaXNhdGlvbgoJICBXZSBuZWVkIHRvIGFwcGx5IHRoZSBzdHJpbmcgd3JhcHBpbmcgdGhhdCB2YWx1ZSBzZXJpYWxpc2F0aW9uIGRvZXMgYWxzbyBpbiB0aGUKCSAgdHJhY2VyIGxvZ2dpbmcsIG90aGVyd2lzZSB3ZSBjYW4ndCBwYXJzZSBuZXN0ZWQgc3RydWN0dXJlcy4KCjIwMTYtMDEtMTggMjE6MDk6NDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHRyYWNlci9nc3RzdGF0czogZml4IG1pc21hdGNoIGJldHdlZW4gJy5jbGFzcycgYW5kIHRyYWNlciBhcmdzCgkgIENsZWFuIHVwIGZyb20gdGhlIHJlY2VudCBjaGFuZ2VzLiBUaGUgbG9nZ2luZyBkZXNjcmlwdGlvcnMgZGlkIG5vdCBtYXRjaCB3aGF0IHdlIGxvZ2dlZC4KCjIwMTUtMTEtMTIgMDE6MTQ6MzQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgdXNlLXRhZ3MtYml0cmF0ZSBwcm9wZXJ0eQoJICBUaGUgdXNlLXRhZ3MtYml0cmF0ZSBwcm9wZXJ0eSBtYWtlcyBxdWV1ZTIgbG9vayBhdAoJICB0YWcgZXZlbnRzIGluIHRoZSBzdHJlYW0gYW5kIGV4dHJhY3QgYSBiaXRyYXRlIGZvciB0aGUKCSAgc3RyZWFtIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIGEgZHVyYXRpb24gZm9yIGJ1ZmZlcnMKCSAgdGhhdCBkb24ndCBoYXZlIG9uZSBleHBsaWNpdGx5IHNldC4KCSAgVGhpcyBsZXRzIHF1ZXVlMiBzZW5zaWJseSBidWZmZXIgdG8gYSB0aW1lIHRocmVzaG9sZAoJICBmb3IgYW55IGJ5dGVzdHJlYW0gZm9yIHdoaWNoIHRoZSBnZW5lcmFsIGJpdHJhdGUgaXMga25vd24uCgoyMDE2LTAxLTE5IDEyOjA0OjE2ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJICB0cmFjZXJyZWNvcmQ6IGF2b2lkIG92ZXJ3cml0aW5nIHZhbHVlCgkgIHJlcyB2YWx1ZSBpcyBvdmVyd3JpdHRlbiwgcmVtb3ZlIHRoZSBhc3NpZ25tZW50LgoJICBwcml2X19nc3Rfc3RydWN0dXJlX2FwcGVuZF90ZW1wbGF0ZV90b19nc3RyaW5nICgpIGFsd2F5cyByZXR1cm5zIFRSVUUKCSAgYW55d2F5LgoJICBDSUQgMTM0OTY0NQoKMjAxNi0wMS0xOSAxMToxMToyNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkgIGJlbmNobWFya3M6IERpc2FibGUgdHJhY2Vyc2VyaWFsaXplIGJlbmNobWFyayBvbiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgbm8gZ3N0LWRlYnVnZ2luZyA9PiBubyB0cmFjZXIgbG9nZ2luZyAoYW5kIG5vIHBvbnkgZWl0aGVyKQoKMjAxNi0wMS0xOSAxMToxMDozMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJICB0cmFjZXJyZWNvcmQ6IERpc2FibGUgbG9nZ2luZyBpZiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgTWFrZSB0aGUgZ3N0X3RyYWNlcl9yZWNvcmRfbG9nKCkgYSBuby1vcCBpZiB0aGUgZ3N0LWRlYnVnIHN1YnN5c3RlbQoJICBpcyBkaXNhYmxlZC4KCjIwMTYtMDEtMTggMTk6MTc6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmYWlsIGZsYWcgZGVzZXJpYWxpemF0aW9uIG9uIGludmFsaWQgZmxhZyBuYW1lcwoKMjAxNi0wMS0xOCAxOToxMDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHM6IHN0cnVjdHVyZTogZml4IHdyb25nIGZsYWcgbmFtZSBpbiBkZXNlcmlhbGl6YXRpb24gdGVzdAoJICBUaGVyZSBpcyBubyBHU1RfU0VFS19GTEFHU19OT05FIG9ubHkgR1NUX1NFRUtfRkxBR19OT05FIChidXQKCSAgdGhlIGRlc2VyaWFsaXplciBzaWxlbnRseSBza2lwcyBiYWQgZmxhZyBuYW1lcyBjdXJyZW50bHkpLgoKMjAxNi0wMS0xNyAyMzo0OToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICB0cmFjZXJzOiBmaXggdGhyZWFkLWlkIGNhc3RzIHRvIDY0LWJpdCBpbnRzIG9uIDMyLWJpdCBzeXN0ZW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3NjIKCjIwMTYtMDEtMTggMTA6MTM6MDIgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmL3VucmVmIG5ldyBlbnVtIHR5cGVzIGluIGdzdF9pbml0L2RlaW5pdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNzY3CgoyMDE2LTAxLTE3IDAwOjA4OjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBmb3IgbmV3IGZsYWdzIGdldF90eXBlKCkKCjIwMTYtMDEtMTYgMjI6NDM6MjMgKzAxMDAgIFBoaWxpcCBWYW4gSG9vZiA8cGhpbGlwQGNvZGVtaW5kZWQuYmU+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSAgdHJhY2VyLmg6IGRvbid0IGluY2x1ZGUgcHJpdmF0ZSBub2luc3QgaGVhZGVyIGdzdHRyYWNlcnV0aWxzLmggaW4gYSBwdWJsaWMgaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA3MzIKCjIwMTYtMDEtMTYgMjE6MjQ6MTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL3RyYWNpbmcuc2g6CgkgIGJlbmNobWFyazogaW1wcm92ZSBzY3JpcHQKCSAgVXNlIGEgdGVtcCBmaWxlIGZvciB0aGUgbG9nIGFuZCBmaXggb25lIGVudi12YXIuCgoyMDE2LTAxLTE2IDIxOjIzOjEwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlci9zdGF0czogdXNlIHRoZSByaWdodCBsb2cgdGVtcGxhdGUKCSAgV2hlbiBwb3J0aW5nIHdlIHVzZWQgdGhlIHdyb25nIHJlY29yZCAoY29weSBhbmQgcGFzdGUpLgoKMjAxNi0wMS0xNiAyMTowNDo0NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSAgdHJhY2VyOiB1cGRhdGUgdGhlIGRvY3MKCSAgQWRkIHRoZSBuZXcgZW51bSBhbmQgZmxhZ3MuIFJlbW92ZSB0aGUgR3N0VHJhY2VyUmVjb3JkUHJpdmF0ZS4KCjIwMTYtMDEtMTYgMjE6MDI6MzkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgZ3N0LXN0YXRzOiB1cGRhdGUgdG8gbGF0ZXN0IHRhcmNlciBhcGkKCSAgVGhlIHRocmVhZC1pZHMgYXJlIHNlcmlhbGl6ZWQgYXMgdWludDY0LiBUaGUgJ2VsZW0taXgnIGdvdCBjaGFuZ2VkIHRvCgkgICdlbGVtZW50LWl4Jy4gTWFrZSB0aGUgY29kZSBhIGJpdCBtb3JlIHJvYnVzdC4KCjIwMTYtMDEtMTYgMTg6NTU6MDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogdXNlIHRoZSBuZXcgZmxhZ3MgdG8gY3JlYXRlIHRoZSBvcHRpb25hbCBmaWVsZCBpbiB0aGUgZm9ybWF0IHN0cmluZwoJICBUaGlzIHNwYXJlcyB1cyBleHBsaWNpdGx5IGxpc3RpbmcgdGhlIGZpZWxkIGluIHRoZSBzcGVjLiBhbmQgdGh1cyBoaWRlIHRoaXMKCSAgaW1wbGVtZW50YXRpb24gZGV0YWlsLgoKMjAxNi0wMS0xNiAxODo1MjozMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBhZGQgYSBHc3RUcmFjZXJWYWx1ZUZsYWdzIGFuZCByZXBsYWNlIHN0cmluZ3MKCSAgVGhpcyBhbGxvd3MgdXMgdG8gZG9jdW1lbnQgdGhlIGZsYWdzIGFuZCBtYWtlcyB0aGUgbG9ncyBhIGJpdCBzbWFsbGVyLgoKMjAxNi0wMS0xNiAxNjowMTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFkZCBmdW5jdGlvbiBndWFyZCB0byBnc3RfbWVzc2FnZV9zZXRfYnVmZmVyaW5nX3N0YXRzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDcwNAoKMjAxNi0wMS0xNiAxNDo1MTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZ3N0Lmg6IERvbid0IHNwZXcgd2FybmluZ3MgaWYgR1NUX1VTRV9VTlNUQUJMRV9BUEkgaXMgbm90IGRlZmluZWQKCSAgT25seSBoaWRlIEdzdFRyYWNlciBhbmQgR3N0VHJhY2VyUmVjb3JkIEFQSSBiZWhpbmQgR1NUX1VTRV9VTlNUQUJMRV9BUEksCgkgIGJ1dCBkb24ndCBzcGV3IGFueSB3YXJuaW5ncywgb3RoZXJ3aXNlIGV2ZXJ5b25lIGhhcyB0byBkZWZpbmUgdGhpcwoJICB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncy4KCSAgVGhpcyByZXZlcnRzIHBhcnRzIG9mIGNvbW1pdCA4OWVlNWQ5NDhkZmY1NjAyMDRlNmVkZDIxMGM0NGVkMmI4NjU0YjhlLgoKMjAxNi0wMS0xNiAxMzozMDozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2luZy5zaDoKCSAgYmVuY2htYXJrczogdXBkYXRlIHRoZSB0cmFjZXIgYmVuY2htYXJrIGFuZCBhZGQgYSBzaGVsbCBiZW5jaG1hcmsKCjIwMTYtMDEtMTYgMTM6Mjg6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyYWNpbmcudHh0OgoJICBkb2NzL2Rlc2lnbjogdXBkYXRlIHRyYWNlcnNwZWMgZXhhbXBsZXMKCjIwMTYtMDEtMTYgMTM6Mjc6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgZG9jcy9kZXNpZ246IHNwZWxsIGNoZWNraW5nCgoyMDE2LTAxLTE2IDEzOjI0OjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJyZWNvcmQuYzoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRyYWNlcjogYWRkIGEgR0ZsYWcgZm9yIHRoZSB0cmFjZXIgc2NvcGUKCSAgUG9ydCBhbGwgdHJhY2Vycy4gQWRkIHRoZSBHU1RfVVNFX1VOU1RBQkxFX0FQSSBmbGFnIHRvIHRoZSBpbnRlcm5hbCBDRkxBR1Mgc28KCSAgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHNwZWNpZnkgdGhpcyBmb3IgZ2lyLCBkb2NzLCBta2VudW0sIC4uLgoKMjAxNi0wMS0xNiAxMDo0ODowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBNYWtlIGFjY2VzcyB0byB0aGUgYWN0aXZlIHBhZCBhbmQgbGFzdCBidWZmZXIgdGhyZWFkLXNhZmUKCSAgQm90aCBjYW4gYmUgbW9kaWZpZWQgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcyBhdCB0aGUgc2FtZSB0aW1lLgoKMjAxNi0wMS0xNiAxMDo0NzozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBOb3RpZnkgd2hlbiB0aGUgYWN0aXZlLXBhZCBwcm9wZXJ0eSBpcyBjaGFuZ2luZwoKMjAxNi0wMS0xMiAxNDo1OTowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiBnc3QvZ3N0dHJhY2VycmVjb3JkLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRyYWNlcnJlY29yZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdHJhY2VycmVjb3JkOiBhZGQgYSBsb2cgcmVjb3JkIGNsYXNzCgkgIFdlIHVzZSB0aGlzIGNsYXNzIHRvIHJlZ2lzdGVyIHRyYWNlciBsb2cgZW50cnkgbWV0YWRhdGEgYW5kIGJ1aWxkIGEgbG9nCgkgIHRlbXBsYXRlLiBXaXRoIHRoZSBsb2cgdGVtcGxhdGUgd2UgY2FuIHNlcmlhbGl6ZSBsb2cgZGF0YSB2ZXJ5IGVmZmljaWVudGx5LgoJICBUaGlzIGFsc28gc2ltcGxpZmllcyB0aGUgbG9nZ2luZyBjb2RlLCBzaW5jZSB0aGF0IGlzIG5vdyBhIHNpbXBsZSB2YXJhcmdzCgkgIGZ1bmN0aW9uIHRoYXQgaXMgbm90IGV4cG9zaW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLgoJICBBZGQgZG9jcyBmb3IgdGhlIG5ldyBjbGFzcyBhbmQgYmFzaWMgdGVzdHMuCgkgIFJlbW92ZSB0aGUgcHJldmlvdXMgbG9nIGhhbmRsZXIuCgkgIEZpeGVzICM3NjAyNjcKCjIwMTYtMDEtMTUgMDk6NDg6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBnX3NvY2tldF9jbG9zZSgpCgkgIENJRCAxMzQ4NDUyCgoyMDE2LTAxLTE1IDA5OjAyOjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBGcmVlIGRhdGEgYWZ0ZXIgcmVtb3ZpbmcgaXQgZnJvbSB0aGUgbGlzdAoJICBEb2VzIG5vdCBtYXR0ZXIgaGVyZSBidXQgbWFrZXMgQ292ZXJpdHkgbW9yZSBoYXBweS4gSXQgY2FuJ3QKCSAga25vdyB0aGF0IGdfbGlzdF9yZW1vdmUoKSBvbmx5IGxvb2tzIGF0IHRoZSBwb2ludGVyIHZhbHVlIGJ1dAoJICBkb2VzIG5vdCBkZXJlZmVyZW5jZSBpdC4KCSAgQ0lEIDEzNDg0NTQKCjIwMTYtMDEtMTUgMDA6MzA6NTkgKzA1MzAgIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIEdzdERldmljZU1vbml0b3I6IENsYXJpZnkgdGhlIGJlaGF2aW91ciBvZiBnc3RfZGV2aWNlX21vbml0b3JfYWRkX2ZpbHRlcgoKMjAxNi0wMS0xNSAwMDoyNTowNSArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgR3N0RGV2aWNlTW9uaXRvcjogRG9uJ3QgcmVtb3ZlIHVubWF0Y2hlZCBjbGFzcyBmaWx0ZXJzCgkgIElmIG5vIHByb3ZpZGVycyBmb3IgYSBwYXJ0aWN1bGFyIGNsYXNzIGNvdWxkIGJlIGZvdW5kLCB0aGVuIHJlbW92aW5nIHVubWF0Y2hlZAoJICBmaWx0ZXJzIHdvdWxkIGNhdXNlIGFsbCBkZXZpY2VzIHRvIGJlIHJldHVybmVkIGluc3RlYWQgd2hpY2ggaXMgbm90IGF0IGFsbCB3aGF0CgkgIHRoZSB1c2VyIGludGVuZGVkLiBXZSBzdGlsbCByZXR1cm4gMCBmb3IgdW5tYXRjaGVkIGZpbHRlcnMuCgoyMDE2LTAxLTEzIDIxOjMyOjIwICswMDAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRml4IEdFcnJvciBtZW1vcnkgbGVhayBpbiBoYW5kbGluZyBOVFAgcmVzcG9uc2UKCSAgRXJyb3Igd2FzIG5vdCByZWxlYXNlZCBpZiBnc3RfbnRwX3BhY2tldF9yZWNlaXZlIGZhaWxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDU5OAoKMjAxNi0wMS0xMyAxMzoxMDoxMCArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cyBmb3IgQVBJIGFkZGl0aW9ucwoKMjAxNi0wMS0xMSAxNjozMTozOSArMTEwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogZXhwb3NlIGRlYnVnZ2luZyBwcmludGYgZnVuY3Rpb25zCgkgIE90aGVyIGdzdCBsaWJyYXJpZXMgYW5kL29yIGVsZW1lbnRzIG1heSB3YW50IHRvIGFkZCBzb21lIGRlYnVnIGxvZ2dpbmcgdG8gYW4KCSAgZXh0ZXJuYWwgZGVidWcgc3lzdGVtIG9yIGltcGxlbWVudCBkZWxheWVkIGRlYnVnZ2luZyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KCSAgRXhwb3NlcyB0aGUgaW50ZXJuYWwgX19nc3RfdmFzcHJpbnRmIGFzIGdzdF9pbmZvX3Zhc3ByaW50ZiB3aGljaCBoYXMgYSBmYWxsYmFjawoJICB0byBnX3Zhc3ByaW50ZiBpZiB0aGUgZGVidWcgc3lzdGVtIGlzIGRpc2FibGVkLgoJICBBUEk6IGdzdF9pbmZvX3Zhc3ByaW50ZgoJICBBUEk6IGdzdF9pbmZvX3N0cmR1cF92cHJpbnRmCgkgIEFQSTogZ3N0X2luZm9fc3RyZHVwX3ByaW50ZgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNDIxCgoyMDE2LTAxLTExIDIxOjE3OjI1ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSBzZXQgZHVyYXRpb24vcG9zaXRpb24gcXVlcnkgdmFsdWVzIGluIGNhc2Ugb2YgcXVlcnkgc3VjY2VzcwoJICBDdXJyZW50bHksIHRoZSBxdWVyeSB2YWx1ZXMgYXJlIGJlaW5nIHNldCBldmVuIGlmIHRoZSBxdWVyeSBpdHNlbGYgd2FzCgkgIGRldGVybWluZWQgdG8gaGF2ZSBmYWlsZWQuIEZpeCB0aGlzIHRvIGVuc3VyZSB0aGUgdmFsdWVzIGFyZSBvbmx5IHNldCBpbgoJICBjYXNlIG9mIGEgcXVlcnkgc3VjY2Vzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDQ3OQoKMjAxNi0wMS0xMCAxNDozMDowNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBjb2RlIGNsZWFuIHVwcwoJICBEcm9wIHNvbWUgdHJhaWxpbmcgd2hpbGVzcGFjZS4gTWFrZSBmaWVsZCBvcmRlciBjb25zaXN0ZW50LgoKMjAxNi0wMS0wOCAyMzozNTo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkgIGJlbmNobWFyazogZml4IGNvcHknbidwYXN0IG9mIHRoZSBmaWxlLWRlc2NyaXB0aW9uIGNvbW1lbnQKCjIwMTYtMDEtMDggMjM6MDY6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvdHJhY2Vyc2VyaWFsaXplLmM6CgkgIGJlbmNobWFyazogYWRkIGEgYmVuY2htYXJrIGZvciBiZ28vNzYwMjY3CgkgIEJpZyBzdXByaXNlIC0gR3N0U3RydWN0dXJlIGlzIGZhc3RlciB0aGFuIEdWYXJpYW50LgoKMjAxNS0wMy0xMCAxMzowNzoxOCArMDkwMCAgSG9vbkhlZSBMZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IGltcHJvdmUgZGVidWcgbWVzc2FnZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1OTM5CgoyMDE2LTAxLTA4IDE5OjI1OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWRkIGJ1ZmZlciBsaXN0IHN1cHBvcnQgdG8gR1NUX1BUUl9GT1JNQVQKCjIwMTUtMTEtMjUgMTc6MzY6MjUgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICBjb250cm9sc291cmNlOiBmaXggR2V0VmFsdWUgYW5kIEdldFZhbHVlQXJyYXkgZG9jdW1lbnRhdGlvbgoJICBHc3RDb250cm9sU291cmNlR2V0VmFsdWUoKSB2YWx1ZSBwYXJhbWF0ZXIgaXMgYSBnZG91YmxlLCBub3QgYSBHVmFsdWUKCSAgYW5kIEdzdENvbnRyb2xTb3VyY2VHZXRWYWx1ZUFycmF5IGRvZXNuJ3QgcmV0dXJuIGEgR3N0VmFsdWVBcnJheSBidXQKCSAgYW4gYXJyYXkgb2YgZG91YmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4NjY4CgoyMDE2LTAxLTA3IDIzOjAzOjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBoYXJtb25pemUgdGhlIHF1ZXJ5IGhvb2tzCgkgIEluIHBvc3QgaG9va3MgYWx3YXlzIHBhc3MgdGhlIHJldHVybiB2YWx1ZSBhcyB0aGUgbGFzdCBwYXJhbS4gUGFzcyB0aGUgcXVlcnkKCSAgYWxzbyB0byBwb3N0IGhvb2tzIHNpbmNlIGl0IGlzIHN0aWxsIGFsaXZlLgoKMjAxNi0wMS0wNyAyMjo0NzozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzL3N0YXRzOiBhZGQgbWlzc2luZyBwYXJhbWV0ZXJzIHRvIGNhbGxiYWNrIGZ1bmN0aW9ucwoKMjAxNi0wMS0wNyAyMjo0Mzo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXJ1dGlsczogdXBkYXRlICNlbmRpZiBjb21tZW50CgkgIFdlIGNoYW5nZWQgdGhlIGRlZmluZSwgYnV0IGxlZnQgdGhlIGNvbW1lbnQgaW5jb25zaXN0ZW50LgoKMjAxNi0wMS0wNyAxOToxMzowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VydXRpbHM6IGRvY3VtZW50IHRoZSB0cmFjZXIgaG9vayBmdW5jdGlvbnMKCSAgRG9jdW1lbnQgYWxsIHRyYWNlciBob29rIGZ1bmN0aW9uIHBvaW50ZXIgdG9nZXRoZXIgd2l0aCB0aGUgZGV0YWlsIHN0cmluZyB0aGF0CgkgIG9uZSBuZWVkcyB0byB1c2Ugd2l0aCBnc3RfdHJhY2luZ19yZWdpc3Rlcl9ob29rKCkuCgoyMDE2LTAxLTA3IDE4OjQ2OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkgIHRyYWNlcjogVXNlIEdTVF9ESVNBQkxFX0dTVF9UUkFDRVJfSE9PS1MgaW5zdGVhZCBvZiBHU1RfRElTQUJMRV9HU1RfREVCVUcgZXZlcnl3aGVyZQoJICBQcmV2aW91c2x5IHdlIHVzZWQgdGhlIGxhdHRlciBvbmUgc3RpbGwgZm9yIHRoZSB0cmFjZXIgdXRpbGl0eSBjb2RlLCBjYXVzaW5nCgkgIHVuZGVmaW5lZCByZWZlcmVuY2VzIGluIHRoZSByZXN1bHRpbmcgYmluYXJ5IGlmIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtIHdhcwoJICBkaXNhYmxlZCBidXQgdGhlIHRyYWNlciBzeXN0ZW0gbm90LgoKMjAxNi0wMS0wNyAxODo0MToyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICBnc3Q6IFJlbmFtZSBfcHJpdl9nc3RfaW5mb19zdGFydF90aW1lIHRvIF9wcml2X2dzdF9zdGFydF90aW1lIGFuZCBpbml0aWFsaXplIGl0IGNlbnRyYWxseQoJICBJdCdzIHVzZWQgYnkgdGhlIGRlYnVnZ2luZyBhbmQgdHJhY2VyIHN1YnN5c3RlbSBhbmQgaW4gdmFyaW91cyBmaWxlcywgbWFrZSBpdAoJICBhIGNlbnRyYWwgdGhpbmcgdGhhdCBpcyBpbml0aWFsaXplZCBpbmRlcGVuZCBvZiB0aGUgZXhpc3RlbmNlIG9mIHRob3NlCgkgIHN1YnN5c3RlbXMuCgoyMDE2LTAxLTA2IDIxOjQyOjMwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgd2luMzIgZXhwb3J0cwoJICBSZW1vdmUgdGhlIF9ob29rX2lkKCkgbWV0aG9kcyB3ZSBtYWRlIGludGVybmFsIGluIHRoZSBwcmV2IGNvbW1pdC4KCjIwMTYtMDEtMDYgMjE6MTc6MTYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogbG9nIGEgd2FybmluZyBpZiB3ZSBjYW4ndCBzZXJpYWxpemUgYSBmaWVsZAoJICBUaGUgZnVuY3Rpb24gYWx3YXlzIHJldHVybnMgVFJVRSByaWdodCBub3csIHNvIGF0bGVhc3QgbG9nIHNvbWV0aGluZy4KCjIwMTUtMTAtMDYgMTI6NDk6MDAgKzAwMDAgIEFsZWtzYW5kZXIgV2FiaWsgPGF3YWJpa0BvcGVyYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgdGVzdHM6IHF1ZXVlMjogYWRkIHRlc3QgZm9yIGZpbGwgbGV2ZWwgYXJpdGhtZXRpYyBvdmVyZmxvdwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1OTcxCgoyMDE2LTAxLTA2IDE5OjUxOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhdm9pZCBjYWxjdWxhdGluZyBmaWxsIGxldmVscyBtdWx0aXBsZSB0aW1lcwoJICBNYWNybyBleHBhbnNpb24gbWVhbnMgd2UgbWlnaHQgY2FsY3VsYXRlIHRoZSBmaWxsIGxldmVsIG9uY2UKCSAgZm9yIHRoZSBjaGVjayBhbmQgdGhlbiBwb3NzaWJseSBhZ2FpbiBmb3IgdGhlIHJldHVybiB2YWx1ZS4KCjIwMTYtMDEtMDYgMTk6NTA6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBmaWxsIGxldmVsIGFyaXRobWV0aWMgb3ZlcmZsb3cgd2l0aCBsYXJnZSB2YWx1ZXMKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IEFsZWtzYW5kZXIgV2FiaWsgPGF3YWJpa0BvcGVyYS5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU5NzEKCjIwMTYtMDEtMDYgMjA6NDE6MjYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHRyYWNlcjogbWFrZSBnc3RfdHJhY2luZ19yZWdpc3Rlcl9ob29rX2lkIHN0YXRpYwoJICBXZSBkb24ndCBuZWVkIHRvIGV4cG9zZSB0aGlzIGFzIHB1YmxpYyBBUEkuIENoYW5nZSB0aGUgb25seSBwbHVnaW4gdGhhdCB3YXMKCSAgdXNpbmcgaXQuCgoyMDE2LTAxLTA2IDE4OjU2OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRlc2lnbjogdXBkYXRlIGxpc3Qgb2YgZGlzdGVkIGZpbGVzIGFmdGVyIGZpbGUgcmVuYW1lCgoyMDE2LTAxLTA2IDE5OjQyOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBIaWRlIE5UUCBwYWNrZXQgQVBJIGFuZCBhZGQgR1NUX1BUUF9TVEFUSVNUSUNTXyogZGVmaW5lcyB0byB0aGUgZG9jcwoKMjAxNi0wMS0wNiAxODoxNzoyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJICBkb2NzOiByZW1vdmUgcGFyZW50IGRvY3MgZm9yIEdzdFB0cENsb2NrCgkgIEluc3RhbmNlIGRvY3MgZG9uJ3QgbmVlZCB0byBkb2N1ZW1udCB0aGUgcGFyZW50IChmaXJzdCBtZW1iZXIpLgoKMjAxNi0wMS0wNiAxODoxNDowNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogY2xlYW51cCAtdW51c2VkLnR4dCByZXBvcnQgZm9yIGxpYnMKCSAgVGhlIElHTk9SRV9IX0ZJTEVTIGNhbiBvbmx5IGNvbnRhaW4gZmlsZXMgb3IgZGlycy4KCjIwMTYtMDEtMDYgMTc6NTg6MTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbW9yZSBjb3JlIGFwaSB0byB0aGUgcmlnaHQgc2VjdGlvbnMKCSAgQWRkIG5ldyBhbmQgZG9jdW1lbnRlZCBhcGkgcmVwb3J0ZWQgaW4gLXVudXNlZC50eHQgdG8gLXNlY3Rpb24udHh0LgoKMjAxNi0wMS0wNiAxNzo1NDo0NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBkb2NzOiBleGNsdWRlIG1vcmUgaGVhZGVyIGZyb20gZG9jLXNjYW4KCSAgRXhjbHVkZSBnc3QvcHJpbnRmLyouaCBhbmQgYSBmZXcgZ2VuZXJhdGVkIC5oIGZpbGVzIGZyb20gdGhlIGFwaS1zY2FuLiBUaGlzCgkgIG1ha2VzIC11bnVzZWQudHh0IHJlcG9ydCBmaWxlIGZyb20gZ3RrZG9jIHVzZWZ1bCBhZ2Fpbi4KCjIwMTYtMDEtMDYgMTY6MjE6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGFkanVzdC91bmFkanVzdF93aXRoX2NhbGlicmF0aW9uKCkgaGF2ZSBhIGNsb2NrIHBhcmFtZXRlciBidXQgaXQncyB1c2VsZXNzCgkgIERvY3VtZW50IHRoaXMsIGZvciAyLjAgd2Ugc2hvdWxkIGp1c3QgcmVtb3ZlIHRoYXQgcGFyYW1ldGVyLgoKMjAxNi0wMS0wNiAxNjoxOToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBZGQgZ3N0X2Nsb2NrX3VuYWRqdXN0X3dpdGhfY2FsaWJyYXRpb24oKQoJICBXZSBhbHJlYWR5IGhhdmUgZ3N0X2Nsb2NrX2FkanVzdF93aXRoX2NhbGlicmF0aW9uKCkgYW5kCgkgIGdzdF9jbG9ja191bmFkanVzdF91bmxvY2tlZCgpLCBoYXZpbmcgdGhlIG90aGVyIHZhcmlhbnQgaXMgdXNlZnVsLgoKMjAxNi0wMS0wNiAxMzozMzozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgcGFkLWV2ZW50IGZ1bmN0aW9uIHRvIHRoZSBkb2NzCgoyMDE2LTAxLTA2IDEzOjI2OjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgZG9jczogaGlkZSBpbnRlcm5hbCB0cmFjZXIgYXBpIGZyb20gZG9jcwoJICBBbHNvIGFkZHJlc3Mgd2FybmlnbnMgcmVnYXJkaW5nIHRoZSB1bnN0YWJsZSB0cmFjZXIgYXBpLgoKMjAxNi0wMS0wNiAxMjo0NzoyNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICBkb2NzOiBhZGQgdGhlIHRyYWNlciB0byB0aGUgZG9jcwoJICBBZGQgR3N0VHJhY2VyIGFuZCBHc3RUcmFjZXJGYWN0b3J5IHRvIHRoZSBjb3JlIGRvY3MuCgoyMDE2LTAxLTA2IDExOjUyOjUzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtdHJhY2luZy50eHQ6CgkgIGRvY3M6IHJlbmFtZSB0aGUgdHJhY2VyIGRvYyB0byBwYXJ0IHNpbmNlIGl0IGlzIG5vdyBtZXJnZWQKCjIwMTYtMDEtMDYgMTE6MzU6NDYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIHRyYWNlcnV0aWxzOiBtb3ZlIGhlYWRlciB0byBub2luc3Qgc2VjdGlvbgoJICBUaGlzIGlzIGludGVybmFsIGNvZGUsIHRoYXQgaXMgb25seSB0byBiZSB1c2VkIGluIGNvcmUuCgoyMDE2LTAxLTA2IDExOjMxOjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgY29uZmlndXJlOiBhZGQgYSBuZXcgb3B0aW9uIHRvIGRpc2FibGUgdGhlIHRyYWNlciBob29rcwoJICBUaGlzIHdhcyBwcmV2aW91c2x5IGRvbmUgdmlhIHtlbmFibGUsZGlzYWJsZX0tZ3N0LWRlYnVnLiBTaW5jZSBib3RoIHN1YnN5c3RlbXMKCSAgYXJlIGluZGVwZW5kZW50IGhhdmluZyBzZXBhcmF0ZSBvcHRpb25zIGlzIGJldHRlci4KCjIwMTYtMDEtMDUgMTY6NDQ6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIGNsb2NrOiBGaXggdHlwbwoJICBjbG9ja2VkIC0+IGNsb2NrCgoyMDE2LTAxLTA1IDE0OjU5OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBEaXNjb25uZWN0IHRoZSAic3luY2VkIiBzaWduYWwgaGFuZGxlciBmcm9tIHRoZSBpbnRlcm5hbCBjbG9jawoJICBOb3QgZnJvbSB0aGUgZXh0ZXJuYWwgb25lLgoKMjAxNi0wMS0wNSAxMzo1NzoxMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xsZXI6IHJlbmFtZSBuZXcgY3ViaWMgaW50ZXJwb2xhdGlvbiBtb2RlCgkgIERvbid0IGFiYnJldmlhdGUgdG8gJ21vbm8nIGFuZCB1c2UgJ21vbm90b25pYycgaW5zdGVhZC4KCjIwMTYtMDEtMDUgMTQ6MjM6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IERvbid0IGFsbG93IHNldHRpbmcgYW4gdW5zeW5jZWQgY2xvY2sgYXMgbWFzdGVyCgoyMDE2LTAxLTA1IDE0OjIxOjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBEb24ndCB0cnkgdG8gc2xhdmUgdW5zeW5jZWQgY2xvY2tzCgkgIFRoZXkgd2lsbCByZXR1cm4gdXNlbGVzcyB2YWx1ZXMgZnJvbSBnZXRfdGltZSgpLgoKMjAxNi0wMS0wNSAxMzo0MTowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBudHA6IFRoZSBjbG9jayBpbmhlcml0cyBmcm9tIEdzdE5ldENsaWVudENsb2NrLCBub3QganVzdCBHc3RTeXN0ZW1DbG9jawoKMjAxNi0wMS0wNCAxNzoxODowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRGVzdHJveSBhIGNhY2hlZCBjbG9jayA2MCBzZWNvbmRzIGFmdGVyIGl0cyBsYXN0IHVzZQoJICBUaGVyZSdzIG5vdCBtdWNoIGxvc3QgYnkgaGF2aW5nIHRoZSBjbG9jayBpZGxlIGFyb3VuZCBhIGJpdCBsb25nZXIgYnV0IGl0IHdpbGwKCSAgcG90ZW50aWFsbHkgYWxsb3cgYW55Ym9keSB3YW50aW5nIHRvIHVzZSB0aGUgc2FtZSBjbG9jayBzZXJ2ZXIgYWdhaW4gdG8gc3luYwoJICBtdWNoIGZhc3Rlci4KCjIwMTYtMDEtMDQgMTY6MzE6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IE9ubHkgZXZlciBydW4gb25lIGNsb2NrIGFnYWluc3QgYSBzcGVjaWZpYyBzZXJ2ZXIKCSAgSWYgbXVsdGlwbGUgbmV0L05UUCBjbG9ja3MgYXJlIGNyZWF0ZWQgZm9yIHRoZSBzYW1lIHNlcnZlciwgcmV1c2UgdGhlIHNhbWUKCSAgaW50ZXJuYWwgY2xvY2sgZm9yIGFsbCBvZiB0aGVtLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBkb24ndCBmbG9vZCB0aGUgc2VydmVyCgkgIHdpdGggdG9vIG1hbnkgcmVxdWVzdHMgYW5kIGFsc28gcG9zc2libHkgYWxsb3dzIGZhc3RlciBzeW5jaHJvbml6YXRpb24gaWYKCSAgdGhlcmUgYWxyZWFkeSB3YXMgYW4gZWFybGllciBzeW5jaHJvbml6ZWQgY2xvY2sgd2hlbiBjcmVhdGluZyBhIG5ldyBvbmUuCgoyMDE2LTAxLTA0IDEwOjM5OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IFVzZSBHSW5pdGFibGUgaW5zdGVhZCBvZiBoYXZpbmcgYSBuZXcoKSBmdW5jdGlvbiB0aGF0IGNhbiByZXR1cm4gTlVMTAoJICBCaW5kaW5ncyBkb24ndCBsaWtlIHRoYXQgbXVjaCBhbmQgYXMgd2UncmUgdXNpbmcgR0lPIGhlcmUgYW55d2F5IHdlIGNhbiBhcwoJICB3ZWxsIHVzZSBHSW5pdGFibGUgZm9yIHBvc3NpYmx5IGZhaWxpbmcgaW5pdGlhbGl6YXRpb24uCgoyMDE2LTAxLTAzIDE0OjA2OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IE1hcmsgYWRkcmVzcywgcG9ydCBhbmQgY2xvY2sgcHJvcGVydGllcyBDT05TVFJVQ1RfT05MWQoJICBUaGV5IGNhbid0IHNlbnNpYmx5IGJlIGNoYW5nZWQgYWZ0ZXIgY29uc3RydWN0aW9uLgoKMjAxNi0wMS0wMyAyMjo1NTo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlX2xhdW5jaDogbWFrZSBuaWNlciBsb2cgbWVzc2FnZXMKCSAgQWRkIHR3byBtYWNyb3MgdG8gYnVpbGQgbmljZXIgZWxlbWVudC9wYWQgbmFtZSBzdHJpbmdzLiBUaGUgbWFjcm9zIGF2b2lkCgkgIHByaW50aW5nICIoTlVMTCkiIGFuZCBwcmludCB0aGUgZWxlbWVudCB0eXBlIGluIGFkZGl0aW9uIHRvIHRoZSBuYW1lLgoKMjAxNi0wMS0wMiAxOTo0MjoxNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IHdhcm4gd2hlbiBzdGlsbCB3YWl0aW5nIHRvIHBsdWcgc3ViLXBpcGVsaW5lcyBhZnRlciBuby1tb3JlLXBhZHMKCSAgVGhlIHBhcnNlLWxhdW5jaCBBUEkgYXV0b21hZ2ljYWxseSBoYW5kbGVzIGR5bmFtaWMgcGFkcyBhbmQgcGVyZm9ybXMgZGVsYXllZAoJICBsaW5raW5nIGFzIG5lZWRlZCwgd2l0aG91dCBhbnkgZmVlZGJhY2sgYWJvdXQgd2hldGhlciB0aGUgbGlua2luZyBzdWNjZWVkZWQgb3IKCSAgbm90IGhvd2V2ZXIuIElmIGEgZGVsYXllZCBkeW5hbWljIGxpbmsgY2FuJ3QgYmUgY29tcGxldGVkIGZvciB3aGF0ZXZlciByZWFzb24sCgkgIHBhcnNlLWxhdW5jaCB3aWxsIHNpbXBseSB3YWl0IGluIGNhc2UgYSBzdWl0YWJsZSBwYWQgYXBwZWFycyBsYXRlci4gVGhpcyBtYXkKCSAgbmV2ZXIgaGFwcGVuIHRob3VnaCwgaW4gd2hpY2ggY2FzZSB0aGUgcGlwZWxpbmUgbWF5IGp1c3QgaGFuZyBmb3JldmVyLgoJICBUcnkgdG8gaW1wcm92ZSB0aGlzIGJ5IGNvbm5lY3RpbmcgdG8gdGhlICJuby1tb3JlLXBhZHMiIHNpZ25hbCBvZiBhbnkgZWxlbWVudAoJICB3aXRoIGR5bmFtaWMgcGFkcyBhbmQgcG9zdGluZyBhIHdhcm5pbmcgbWVzc2FnZSBmb3IgdGhlIHJlbGF0ZWQgb3V0c3RhbmRpbmcKCSAgZHluYW1pYyBsaW5rcyB3aGVuICJuby1tb3JlLXBhZHMiIGlzIGVtaXR0ZWQuCgkgIEZpeGVzICM3NjAwMDMKCjIwMTUtMTItMzEgMTk6Mjc6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkgIGRvY3M6IGZpeCBzb21lIHdhcm5pbmdzIGFuZCBhZGQgc29tZSBzaW5jZSBtYXJrZXJzCgoyMDE2LTAxLTAzIDExOjM5OjI0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIHRyYWNpbmc6IGFkZCBzb21lIHBvaW50ZXJzIGFib3V0IG1lbW9yeSB0cmFjaW5nCgoyMDE2LTAxLTAzIDExOjM3OjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZ3JhbW1hci55OiByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZQoKMjAxNS0xMi0zMSAwMDowNDowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogdmFsdWU6IHRlc3QgYnVmZmVyIHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIG1vcmUgdGhvcm91Z2hseQoJICBUZXN0cyBkYXRhL3N0cmluZ3MgYXMgd2VsbCwgbm90IGp1c3QgdGhhdCB3ZSByZWNlaXZlZAoJICBzb21ldGhpbmcgbm9uLU5VTEwgYmFjay4KCjIwMTUtMTItMzEgMTA6NTc6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZml4IHR5cG8gaW4gY29tbWVudAoKMjAxNS0xMi0zMCAxNjo1NzoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogSW1wbGVtZW50IHJlc29sdmFsIG9mIGhvc3RuYW1lcwoJICBKdXN0IGFsbG93aW5nIElQcyBoZXJlIGlzIG5vdCBpZGVhbCBhbmQgaW1wbGVtZW50aW5nIEROUyByZXNvbHZhbCBpcyBlYXN5LgoKMjAxNS0xMi0yOSAxNjoyODowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogQWRkIHJlYWQtb25seSBwcm9wZXJ0aWVzIHRvIGdldCB0aGUgbWFzdGVyIGFuZCBncmFuZG1hc3RlciBjbG9jayBpZHMKCjIwMTUtMTItMjkgMTQ6MzI6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgKHRyYW5zZmVyIGZ1bGwpIGFubm90YXRpb24gdG8gc2ltcGxpZnkoKSBhbmQgc3VidHJhY3QoKSByZXR1cm4gdmFsdWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTk0OAoKMjAxNS0xMi0yOSAxMTowNjozOSArMDEwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCAndHJhbnNmZXIgZnVsbCcgYW5ub3RhdGlvbiB0byBjYXBzIHJldHVybmVkIGJ5IGludGVyc2VyY3Rpb24gZnVuY3Rpb25zCgkgIFRvIG1ha2UgY2xlYXIgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIHRvIHVucmVmIHRoZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk5NDgKCjIwMTUtMTItMjggMTk6NDE6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIG5ldDogQWRkIE5UUCBhbmQgUFRQIGNsb2NrIHR5cGVzIHRvIHRoZSBkb2NzCgkgIFRoaXMgZ2l2ZXMgdXMgdGhlIHByb3BlcnR5IGRvY3VtZW50YXRpb24gZm9yIGV4YW1wbGUuCgoyMDE1LTEyLTI3IDE5OjQyOjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGRvbid0IG1lbWNtcCB0d2ljZQoJICBTaW1wbHkgY2FsbCBmYWlsKCkgaW4gdGhlIGNvbmRpdGlvbiBhZnRlciB0aGUgZmlyc3QgbWVtY21wLgoKMjAxNS0xMi0yNCAxNToyNzoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS43LjEgPT09CgoyMDE1LTEyLTI0IDEzOjU4OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS43LjEKCjIwMTUtMTItMjQgMTI6NTA6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTEyLTI0IDEyOjIxOjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMTItMjEgMDA6NDM6NDkgKzAxMDAgIEtvb3AgTWFzdCA8a3dtQHJhaW5ib3ctcnVubmVyLm5sPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IE1ha2UgLUJzeW1ib2xpYyBjaGVjayB3b3JrIHdpdGggY2xhbmcuCgkgIFVwZGF0ZSB0aGUgLUJzeW1ib2xpYyBjaGVjayB3aXRoIHRoZSB2ZXJzaW9uIGdsaWIgaGFzLiBUaGlzIHZlcnNpb24KCSAgd29ya3Mgd2l0aCBjbGFuZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTcxMwoKMjAxNS0xMi0xNiAwOTozNToxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IHVwZGF0ZSB0byBnaXQKCjIwMTUtMTEtMTAgMTI6Mzg6NTkgLTA1MDAgIFhhdmllciBDbGFlc3NlbnMgPHhhdmllci5jbGFlc3NlbnNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJzZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0b2MuaDoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VyZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmg6CgkgIGNvcmU6IEFkZCBnX2F1dG9wdHIoKSBzdXBwb3J0IHRvIGFsbCB0eXBlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0NDY0CgoyMDE1LTEyLTE0IDEzOjA2OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBDaGVjayBpZiBwYXJzaW5nIHRoZSBuYW1lIHRlbXBsYXRlIHdpdGggc3NjYW5mKCkgd2FzIHN1Y2Nlc3NmdWwKCSAgSWYgbm90LCBnbyBiYWNrIHRvIHRoZSBhdXRvbWF0aWMgcGFkIG51bWJlcmluZy4KCSAgQ0lEIDExOTUxMjkKCjIwMTUtMTItMTQgMTE6MjA6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZS9tdWx0aXF1ZXVlOiBEb24ndCBzcGVjaWFsLWNhc2UgQ0FQUyBldmVudHMgaW4gdGhlIGV2ZW50IGhhbmRsZXJzCgkgIEZvciBDQVBTIGV2ZW50cyB3ZSB3aWxsIG5ldmVyIGV2ZXIgaGF2ZSBhIEZBTFNFIHJldHVybiB2YWx1ZSBoZXJlLCBzbyBqdXN0CgkgIHJlbW92ZSB0aGUgZGVhZCBjb2RlIGluc3RlYWQgb2YgY2F1c2luZyBmdXR1cmUgY29uZnVzaW9uLgoKMjAxNS0xMi0xNCAxMToxNjo1MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgUmV2ZXJ0ICJxdWV1ZTogSWxsZWdhbCBtZW1vcnkgYWNjZXNzIG9mIHNpbmsgZXZlbnQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNzg2MTRjNTA1YTJhNzYxY2I0ZGNiN2Y0ZTVmM2U5Zjk3YzlhOGU4OC4KCSAgVGhlIGNvZGUgaXQgd2FzIGZpeGluZyBkb2VzIG5vdCBoYXZlIGFueSBlZmZlY3QgYW55d2F5IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4KCSAgdGhlIG5leHQgY29tbWl0LgoKMjAxNS0xMi0xNCAxMDozMjoxNCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IElsbGVnYWwgbWVtb3J5IGFjY2VzcyBvZiBzaW5rIGV2ZW50CgkgIE9uY2UgZXZlbnQgaXMgcHVzaGVkIHRvIHBhZCwgdGhlbiBxdWV1ZSBzaG91bGQgbm90IGFjY2VzcyB0aGUgZXZlbnQuCgkgIFRoaXMgaXMgbGVhZGluZyB0byBpbnZhbGlkIHJlYWQgdmFsZ3JpbmQgZXJyb3JzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk0MzAKCjIwMTUtMTItMTQgMTA6MTA6MDQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBVbnJlZiBldmVudCBpZiBHc3RFbGVtZW50OjpzZW5kX2V2ZW50KCkgaXMgbm90IGltcGxlbWVudGVkCgkgIE90aGVyd2lzZSB3ZSdsbCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgZXZlbnQgb25seSBpZiBpdCdzIGltcGxlbWVudGVkLCBhbmQKCSAgbGVhayB0aGUgZXZlbnQgaW4gYWxsIG90aGVyIHNpdHVhdGlvbnMuCgoyMDE1LTEyLTE0IDEwOjA0OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogRml4IGR5bmFtaWMgcGlwZWxpbmUgZXhhbXBsZQoJICBVc2UgR1NUX1BBRF9QUk9CRV9QQVNTIHRvIHBhc3MgdGhyb3VnaCBhbGwgZXZlbnRzIG90aGVyIHRoYW4gRU9TIGluc3RlYWQgb2YKCSAgYmxvY2tpbmcgb24gdGhlIGZpcnN0IG5vbi1FT1MgZXZlbnQgZm9yZXZlci4gQWxzbyBmaXggYSB0eXBvIGluIGEgY29tbWVudCBpbgoJICB0aGF0IGZ1bmN0aW9uLgoJICBUaGFua3MgdG8gRGF2aWQgSmFnZ2FyZCBmb3IgcmVwb3J0aW5nIHRoaXMgb24gdGhlIG1haWxpbmcgbGlzdC4KCjIwMTUtMTItMTMgMDA6Mzc6MzkgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNiZ0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBkb2NzOiAgdHlwbyBpbiB0aGUgbG9jYXRpb24gb2YgbWFrZV9lbGVtZW50IHRvb2wKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTM1MgoKMjAxNS0xMi0xMiAwMToxMzo1OSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogZHJvcCB1bm5lZWRlZCBtYWNyb3MgZm9yIEdfT1NfV0lOMzIKCjIwMTUtMTItMTIgMDE6MDk6MjAgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGRyb3AgdW5uZWVkZWQgbWFjcm9zIGZvciBHX09TX1dJTjMyCgoyMDE1LTEyLTEyIDAxOjA2OjQzIC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGZkc3JjOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IGluIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMSAyMjoxNDozMiAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IGluIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMSAyMDo1Mjo1NyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggc29tZSB0eXBvcwoKMjAxNS0xMi0xMSAyMDo0MjowNSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IG9uIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0xMSAxOToxMTowMSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogZml4IHNvbWUgdHlwb3MKCjIwMTUtMTItMTEgMTg6NTk6MzIgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTExIDE0OjM2OjI5IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSAgc3BhcnNlZmlsZTogZHJvcCBib2d1cyByZWZlcmVuY2UgdG8gZmlsZSBkZXNjcmlwdG9yCgkgICtmaXggdHlwbyBvbiByZXR1cm4gdmFsdWUgY29tbWVudAoKMjAxNS0xMi0xMSAxNDowNzoyNyAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgb24gQW5kcm9pZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTgwCgoyMDE1LTEyLTEwIDE0OjMyOjI3ICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBwYXJyb3QuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogdW5yZWYgbWVzc2FnZSBpbiBfcG9zdF9tZXNzYWdlIHdoZW4gdGhlcmUgaXMgbm8gaW1wbGVtZW50YXRpb24KCSAgJ2dzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZScgdGFrZXMgdGhlIG93bmVyc2hpcCBvZiB0aGUgbWVzc2FnZSwgc28gaXQKCSAgc2hhbGwgdW5yZWYgaXQgd2hlbiB0aGVyZSBpcyBubyBwb3N0X21lc3NhZ2UgaW1wbGVtZW50YXRpb24uIE90aGVyd2lzZQoJICBtZXNzYWdlIGlzIGxlYWtlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTMwMAoKMjAxNS0xMi0xMCAxMTozNTowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IERvbid0IGhvbGQgc3RhdGUgbG9jayBhbGwgdGhlIHRpbWUgd2hpbGUgc2VuZGluZyBhbiBldmVudAoJICBUaGlzIGxvY2sgc2VlbXMgdG8gZXhpc3Qgb25seSB0byBwcmV2ZW50IGVsZW1lbnRzIGZyb20gY2hhbmdpbmcgc3RhdGVzIHdoaWxlCgkgIGV2ZW50cyBhcmUgYmVpbmcgcHJvY2Vzc2VkLiBIb3dldmVyIGV2ZW50cyBhcmUgZ29pbmcgdG8gYmUgcHJvY2Vzc2VkCgkgIG5vbmV0aGVsZXNzIGluIHRob3NlIGVsZW1lbnRzIGlmIHNlbnQgZGlyZWN0bHkgdmlhIHBhZHMsIHNvIHByb3RlY3Rpb24gbXVzdAoJICBhbHJlYWR5IGJlIGltcGxlbWVudGVkIGluc2lkZSB0aGUgZWxlbWVudHMgZm9yIGV2ZW50IGhhbmRsaW5nIGlmIGl0IGlzIG5lZWRlZC4KCSAgQXMgc3VjaCBoYXZpbmcgdGhlIGxvY2sgaGVyZSBpcyBub3QgdmVyeSB1c2VmdWwgYW5kIGlzIGFjdHVhbGx5IGNhdXNpbmcKCSAgdmFyaW91cyBkZWFkbG9ja3MgaW4gZGlmZmVyZW50IHNpdHVhdGlvbnMgYXMgZGVzY3JpYmVkIGluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQwNDAKCjIwMTUtMTItMDcgMjA6Mjc6NDUgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBlbmFibGUgbGFyZ2UgZmlsZSBzdXBwb3J0IGluIEFuZHJvaWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODk4MAoKMjAxNS0xMi0wMyAxNTowNDozMiAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogZW5hYmxlIGxhcmdlIGZpbGUgc3VwcG9ydCBvbiBBbmRyb2lkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg5ODAKCjIwMTUtMTItMDMgMTU6MDE6MjcgLTA4MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBmaWxlc2luazogaW5kZW50YXRpb24gZml4ZXMKCjIwMTUtMTItMDkgMTc6NDA6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgdXNlIHJhbmRvbSBzZWdtZW50LnBvc2l0aW9uIGZyb20gdXBzdHJlYW0KCSAgc2VnbWVudC5wb3NpdGlvbiBpcyBtZWFudCBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seSwgYnV0IHRoZSB2YXJpb3VzCgkgIEdTVF9FVkVOVF9TRUdNRU5UIGNyZWF0aW9uZy9wYXJzaW5nIGZ1bmN0aW9ucyB3b24ndCBjbGVhciB0aGF0IGZpZWxkLgoJICBVc2UgdGhlIGFwcHJvcHJpYXRlIHNlZ21lbnQgYm91bmRhcnkgYXMgYW4gaW5pdGlhbCB2YWx1ZSBpbnN0ZWFkCgoyMDE1LTEyLTA3IDE3OjI1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFBvc3QgYSBMQVRFTkNZIG1lc3NhZ2Ugd2l0aCBhc3luYy1oYW5kbGluZz1UUlVFIGlmIHRoZSBQTEFZSU5HIHN0YXRlIGlzIHJlYWNoZWQKCSAgT3RoZXJ3aXNlIGVhY2ggYmluIG1pZ2h0IGhhdmUgYSBkaWZmZXJlbnQgbGF0ZW5jeSBpbiB0aGUgZW5kLCBjYXVzaW5nCgkgIHN5bmNocm9uaXphdGlvbiBwcm9ibGVtcy4KCSAgVGhlIGJpbiB3aWxsIHN0aWxsIGZpcnN0IGhhbmRsZSBsYXRlbmN5IGludGVybmFsbHkgYXMgYmVmb3JlLCBidXQgZ2l2ZXMgdGhlCgkgIG92ZXJhbGwgcGlwZWxpbmUgdGhlIG9wcG9ydHVuaXR5IHRvIHVwZGF0ZSB0aGUgbGF0ZW5jeSBvZiB0aGUgd2hvbGUgcGlwZWxpbmUKCSAgYWZ0ZXJ3YXJkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTEyNQoKMjAxNS0xMi0wNyAxODoyMDozNSArMDIwMCAgQXRoYW5hc2lvcyBPaWtvbm9tb3UgPGF0aG9pa0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBvc3QgdGFnIGxpc3Qgd2hlbiBhdmcgYml0cmF0ZSBjaGFuZ2VzIGF0IGxlYXN0IDIlCgkgIFdhdGNoaW5nIHZpZGVvcyB3aXRoIHZhcmlhbnQgYml0cmF0ZSBpcyBjb21tb24gdG8gaGF2ZSBkZWx0YQoJICBtb3JlIHRoYW4gMTAga2JwcywgcmVzdWx0aW5nIGluIHRhZyBsaXN0IHNwYW0uCgkgIEluc3RlYWQgb2YgcmVseWluZyBvbiBmaXhlZCAxMCBrcGJzIGRlbHRhLCBpdCBpcyBiZXR0ZXIgdG8KCSAgY2FsY3VsYWxlIHRoZSBkaWZmZXJlbmNlIGluIHBlcmNlbnRhZ2UgYW5kIHVwZGF0ZSB0YWcgbGlzdAoJICBvbmx5IHdoZW4gYml0cmF0ZSBjaGFuZ2VzIG1vcmUgdGhhbiAyJS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTA1NQoKMjAxNS0xMi0wNyAwOTowODowMSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGIzMTk5MDkgdG8gODZlNDY2MwoKMjAxNS0xMi0wNyAxMjo1OTozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENoZWNrIGZvciBhbiBhY3RpdmF0ZWQgcGFkIGJlZm9yZSBhZGRpbmcsIG5vdCBhIG5vbi1mbHVzaGluZyBvbmUKCSAgVGhlIHBhZCBjb3VsZCBiZSBhY3RpdmF0ZWQgYnV0IGZsdXNoaW5nIGJlY2F1c2Ugb2YgYSBGTFVTSF9TVEFSVCBldmVudC4gVGhhdCdzCgkgIG5vdCB3aGF0IHdlJ3JlIGxvb2tpbmcgZm9yIGhlcmUsIHdlIHdhbnQgdG8gY2hlY2sgZm9yIGFjdGl2YXRlZCBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4OTI4CgoyMDE1LTExLTE5IDE1OjMzOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgdGVzdHM6IGZ1bm5lbDogcmVtb3ZlIHN0YXRlIGNoYW5nZSBmcm9tIHN0cmVzcyB0ZXN0cwoJICBDaGFuZ2luZyBzdGF0ZXMgdXAgYW5kIGRvd24gd2hpbGUgYnVmZmVycyBhcmUgYmVpbmcgcHVzaGVkIGlzIG5vdAoJICBhIHZhbGlkIHVzZSBjYXNlLiBJZiBhIHBhZCBpcyBkZWFjdGl2YXRlZCBhbmQgcmVhY3RpdmF0ZWQgZHVyaW5nCgkgIGEgYnVmZmVyIHB1c2ggaXQgaXMgcmFjeSB3aXRoIHRoZSBjaGVjayBvZiBwdXNoZWQgc3RpY2t5IGV2ZW50cwoJICBhbmQgdGhlIGFjdHVhbCBjaGFpbmZ1bmN0aW9uIGNhbGwuIEFzIGl0IG1pZ2h0IGNhbGwgdGhlIGNoYWluCgkgIHdpdGhvdXQgbm90aWNpbmcgdGhlIHBlZXIgcGFkIGxvc3QgaXRzIHByZXZpb3VzIHN0aWNreSBldmVudHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgzNDAKCjIwMTUtMTItMDQgMTA6MjI6NTYgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBGaXggcHJvY2VzcyByZXR1cm4gdmFsdWUgb24gZXJyb3IKCSAgSW4gY2FzZSBvZiBhIHJ1bi10aW1lIGVycm9yIG1lc3NhZ2UsIHRoZSBwcm9jZXNzIHJldHVybiB2YWx1ZSB3YXMgbGVmdAoJICB1bnNldC4gVGhpcyB3b3VsZCBsZWFkIHRvIGVycm9yIG5vdCBiZWluZyBjYXVnaHQgYXQgc2hlbGwgbGV2ZWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTkwMTkKCjIwMTUtMTItMDQgMTA6NDU6MjUgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgInRvb2xzOiBnc3QtbGF1bmNoOiByZXR1cm4gbm9uLTAgZXhpdCBjb2RlIG9uIGFzeW5jIGVycm9yIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJlZTRjYmEyNDg1ZDdmMTY0NmQ0OGU0NTU5NDI2YWVkNGJhOTljODUuCgoyMDE1LTEyLTA0IDE1OjA5OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogcmV0dXJuIG5vbi0wIGV4aXQgY29kZSBvbiBhc3luYyBlcnJvcgoJICBXaGVuIGFuIGVycm9yIGhhcHBlbnMgaW4gcGxheWluZyBzdGF0ZSwgc3RpbGwgcmV0dXJuIGEKCSAgbm9uLTAgZXhpdCBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5MDE5CgoyMDE1LTEyLTA0IDE0OjM5OjI5ICswMDAwICBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogcmVhbGx5IGZpeCBpbnN0YWxsIHJhY2UKCSAgTXkgcHJldmlvdXMgZml4IGZvciAjNzU4MDI5IHdhc24ndCBxdWl0ZSByaWdodCBhbmQgc2ltcGx5IG1hZGUgdGhlIHJhY2UgcmFyZXIuCgkgIFNvbWUgb2YgdGhlIGZpbGVzIGFyZSBpbnN0YWxsZWQgYnkgaW5zdGFsbC1leGVjIGFuZCBvdGhlcnMgYnkgaW5zdGFsbC1leGVjLCBzbwoJICB0aGUgaG9va3MgbmVlZCB0byBiZSBzcGxpdCB0b28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwMjkKCjIwMTUtMTItMDQgMTE6NTY6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggZG9jcwoJICBUaGUgYWxsb2NhdGlvbiBxdWVyeSBoYXMgcGFyYW1ldGVycyB3aXRoIHRoZSBtZXRhIEFQSSwgbm90IGZsYWdzLgoKMjAxNS0xMi0wMiAxNTowMjoyNSAtMDgwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8cmV5bmFsZG9Ab3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgRHJvcCB1c2FnZSBvZiBkZXByZWNhdGVkIGctaXItc2Nhbm5lciAtLXN0cmlwLXByZWZpeCBmbGFnCgoyMDE1LTEyLTAyIDE2OjI4OjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpeCBzZXQvZ2V0IHByb3BlcnR5CgkgIEJsYW1lIGl0IG9uIHRoZSByZWJhc2luZyA6KQoKMjAxNS0xMS0xMiAxNzoxNTozNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBJbXBsZW1lbnQgR3N0UGFkRXZlbnRGdWxsRnVuY3Rpb24KCSAgQVBJOiBHc3RQYWRFdmVudEZ1bGxGdW5jdGlvbgoJICBSZXR1cm5zIGEgR3N0Rmxvd1JldHVybiwgYWxsb3dzIGFzeW5jaHJvbm91cyBlbGVtZW50cyB0byBwcm9wZXJseQoJICBwcm9wYWdhdGUgZmxvdyByZXR1cm5zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTc4MjEKCjIwMTUtMTEtMzAgMTc6MDk6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IFVzZSBzaWduZWQgY2xvY2sgdmFsdWVzIGZvciBydW5uaW5nIHRpbWUgY2FsY3VsYXRpb24KCSAgVGhpcyBpbXByb3ZlcyB0aGUgYWNjdXJhY3kgb2YgcXVldWUgbGV2ZWxzIGFuZCB3aGVuIHRvIHB1c2ggYnVmZmVycwoJICBmb3IgYnVmZmVycyBmYWxsaW5nIG91dHNpZGUgb2YgdGhlIHNlZ21lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzE5MwoKMjAxNS0xMS0yNyAwOTo0NToyOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogQWRkIGFuIGV4dHJhIGNhY2hlIHRpbWUgZm9yIHVubGlua2VkIHN0cmVhbXMKCSAgV2hlbiBzeW5jaHJvbml6aW5nIHRoZSBvdXRwdXQgYnkgdGltZSwgdGhlcmUgYXJlIHNvbWUgdXNlLWNhc2VzIChsaWtlCgkgIGFsbG93aW5nIGdhcGxlc3MgcGxheWJhY2sgZG93bnN0cmVhbSkgd2hlcmUgd2Ugd2FudCB0aGUgdW5saW5rZWQgc3RyZWFtcwoJICB0byBzdGF5IHNsaWdodGx5IGJlaGluZCB0aGUgbGlua2VkIHN0cmVhbXMuCgkgIFRoZSAidW5saW5rZWQtY2FjaGUtdGltZSIgcHJvcGVydHkgYWxsb3dzIHRoZSB1c2VyIHRvIHNwZWNpZnkgYnkgaG93CgkgIG11Y2ggdGltZSB0aGUgdW5saW5rZWQgc3RyZWFtcyBzaG91bGQgd2FpdCBiZWZvcmUgcHVzaGluZyBhZ2Fpbi4KCjIwMTUtMTAtMjYgMDg6MDY6MDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IE9wdGltaXplIG11bHRpcXVldWUgc2l6ZXMgYmFzZWQgb24gaW50ZXJsZWF2ZQoJICBNdWx0aXF1ZXVlIHNob3VsZCBvbmx5IGJlIHVzZWQgdG8gY29wZSB3aXRoOgoJICAqIGRlY291cGxpbmcgdXBzdHJlYW0gYW5kIGRvd3N0cmVhbSB0aHJlYWRpbmcgKGkuZS4gaGF2aW5nIHNlcGFyYXRlIHRocmVhZHMKCSAgZm9yIGVsZW1lbnRhcnkgc3RyZWFtcykuCgkgICogRW5zdXJpbmcgaW5kaXZpZHVhbCBxdWV1ZXMgaGF2ZSBlbm91Z2ggc3BhY2UgdG8gY29wZSB3aXRoIHVwc3RyZWFtIGludGVybGVhdmUKCSAgKGRpc3RhbmNlIGluIHN0cmVhbSB0aW1lIGJldHdlZW4gY28tbG9jYXRlZCBzYW1wbGVzKS4gVGhpcyBpcyB0byBndWFyYW50ZWUKCSAgdGhhdCB3ZSBoYXZlIGVub3VnaCByb29tIGluIGVhY2ggaW5kaXZpZHVhbCBxdWV1ZXMgdG8gcHJvdmlkZSBuZXcgZGF0YSBpbgoJICBlYWNoLCB3aXRob3V0IGJlaW5nIGJsb2NrZWQuCgkgICogTGltaXQgdGhlIHF1ZXVlIHNpemVzIHRvIHRoYXQgaW50ZXJsZWF2ZSBkaXN0YW5jZSAoYW5kIGFuIGV4dHJhIG1pbmltYWwKCSAgYnVmZmVyaW5nIHNpemUpLiBUaGlzIGlzIHRvIGVuc3VyZSB3ZSBkb24ndCBjb25zdW1lIHRvbyBtdWNoIG1lbW9yeS4KCSAgQmFzZWQgb24gdGhhdCwgbXVsdGlxdWV1ZSBub3cgY29udGludW91c2x5IGNhbGN1bGF0ZXMgdGhlIGlucHV0IGludGVybGVhdmUKCSAgKHBlciBpbmNvbWluZyBzdHJlYW1pbmcgdGhyZWFkKS4gQmFzZWQgb24gdGhhdCwgaXQgY2FsY3VsYXRlcyBhIHRhcmdldAoJICBpbnRlcmxlYXZlIChjdXJyZW50bHkgMS41IHggcmVhbF9pbnRlcmxlYXZlICsgMjUwbXMgcGFkZGluZykuCgkgIElmIHRoZSB0YXJnZXQgaW50ZXJsZWF2ZSBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgbWF4X3NpemUudGltZSwgaXQgd2lsbAoJICB1cGRhdGUgaXQgYWNjb3JkaW5nbHkgKHRvIGFsbG93IGVub3VnaCBtYXJnaW4gdG8gbm90IGJsb2NrKS4KCSAgSWYgdGhlIHRhcmdldCBpbnRlcmxlYXZlIGdvZXMgZG93biBieSBtb3JlIHRoYW4gNTAlLCB3ZSByZS1hZGp1c3QgaXQgb25jZQoJICB3ZSBrbm93IHdlIGhhdmUgZ29uZSBwYXN0IGEgc2FmZSBkaXN0YW5jZSAoMiB4IGN1cnJlbnQgbWF4X3NpemUudGltZSkuCgkgIFRoaXMgbW9kZSBjYW4gb25seSBiZSB1c2VkIGZvciBpbmNvbWluZyBzdHJlYW1zIHRoYXQgYXJlIGd1YXJhbnRlZWQgdG8gYmUKCSAgcHJvcGVybHkgdGltZXN0YW1wZWQuCgkgIEZ1cnRoZXJtb3JlLCB3ZSBpZ25vcmUgc3BhcnNlIHN0cmVhbXMgd2hlbiBjYWxjdWxhdGluZyBpbnRlcmxlYXZlIGFuZCBtYXhpbXVtCgkgIHNpemUgb2YgcXVldWVzLgoJICBGb3IgdGhlIHNpbXBsZXN0IG9mIHVzZS1jYXNlcyAoc2luZ2xlIHN0cmVhbSksIG11bHRpcXVldWUgYWN0cyBhcyBhIHNpbmdsZQoJICBxdWV1ZSB3aXRoIGEgdGltZSBsaW1pdCBvZiAyNTBtcy4KCSAgSWYgdGhlcmUgYXJlIG11bHRpcGxlIGlucHV0cywgYnV0IGVhY2ggY29tZSBmcm9tIGEgZGlmZmVyZW50IHN0cmVhbWluZyB0aHJlYWQsCgkgIHRoZSBtYXhpbXVtIHRpbWUgbGltaXQgd2lsbCBhbHNvIGVuZCB1cCBiZWluZyAyNTBtcy4KCSAgT24gcmVndWxhciBmaWxlcyAobW9yZSB0aGFuIG9uZSBpbnB1dCBzdHJlYW0gZnJvbSB0aGUgc2FtZSB1cHN0cmVhbSBzdHJlYW1pbmcKCSAgdGhyZWFkKSwgaXQgY2FuIHJlZHVjZSB0aGUgdG90YWwgbWVtb3J5IHVzZWQgYXMgbXVjaCBhcyAxMHgsIGVuZGluZyB1cCB3aXRoCgkgIG1heF9zaXplLnRpbWUgYXJvdW5kIDUwMG1zLgoJICBEdWUgdG8gdGhlIGFkYXB0aXZlIG5hdHVyZSwgaXQgY2FuIGFsc28gY29wZSB3aXRoIGNoYW5naW5nIGludGVybGVhdmUgKHdoaWNoCgkgIGNhbiBoYXBwZW4gY29tbW9ubHkgb24gc29tZSBmaWxlcyBhdCBzdGFydHVwL3ByZS1yb2xsIHRpbWUpCgoyMDEzLTAxLTA4IDIxOjE2OjQyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiB1c2UgbmV3IHN0cmVhbS1zdGFydCBldmVudCBzcGFyc2UgZmxhZyB0byBhdm9pZCBvdmVycmVhZGluZyBzdWJ0aXRsZXMKCSAgVGhpcyB3aWxsIG1lYW4gYSBtdWNoIGxvd2VyIGRlbGF5IGJlZm9yZSBhIHN1YnRpdGxlcyB0cmFjayBjaGFuZ2VzIHRha2UKCSAgZWZmZWN0LiBBbHNvIGF2b2lkcyBleGNlc3NpdmUgbWVtb3J5IHVzYWdlIGluIG1hbnkgY2FzZXMuCgkgIFRoaXMgd2lsbCBhbHNvIGNvbnNpZGVyIHNwYXJzZSBzdHJlYW1zIGFzIChpbmRpdmlkdWFsbHkpIG5ldmVyIGZ1bGwsIHNvCgkgIGFzIHRvIGF2b2lkIGJsb2NraW5nIGFsbCBwbGF5YmFjayBkdWUgdG8gb25lIHNwYXJzZSBzdHJlYW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDA2NDgKCjIwMTUtMTAtMzAgMTA6MjI6MjAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRml4IGhpZ2hfdGltZSBjb21wdXRhdGlvbgoJICAqIEF2b2lkIHRoZSBjb21wdXRhdGlvbiBjb21wbGV0ZWx5IGlmIHdlIGtub3cgd2UgZG9uJ3QgbmVlZCBpdCAobm90IGluCgkgIHN5bmMgdGltZSBtb2RlKQoJICAqIE1ha2Ugc3VyZSB3ZSBkb24ndCBvdmVycmlkZSBoaWdoZXN0IHRpbWUgd2l0aCBHU1RfQ0xPQ0tfVElNRV9OT05FIG9uCgkgIHVubGlua2VkIHBhZHMKCSAgKiBFbnN1cmUgdGhlIGhpZ2hfdGltZSBnZXRzIHByb3Blcmx5IHVwZGF0ZWQgaWYgYWxsIHBhZHMgYXJlIG5vdCBsaW5rZWQKCSAgKiBGaXggdGhlIGNvbXBhcmlzaW9uIGluIHRoZSBsb29wIHdoZXRoZXIgdGhlIHRhcmdldCBoaWdoIHRpbWUgaXMgdGhlIHNhbWUKCSAgYXMgdGhlIGN1cnJlbnQgdGltZQoJICAqIFNwbGl0IHdha2VfdXBfbmV4dF9ub25fbGlua2VkIG1ldGhvZCB0byBhdm9pZCB1c2VsZXNzIGNhbGN1bGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTczNTMKCjIwMTUtMTEtMDYgMDM6MDI6NDIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBEb24ndCByZXBvcnQgMCUgdW5sZXNzIGVtcHR5CgkgIFdoZW4gcHJlcGFyaW5nIGEgYnVmZmVyaW5nIG1lc3NhZ2UsIGRvbid0IHJlcG9ydCAwJSBpZiB0aGVyZQoJICBpcyBhbnkgYnl0ZXMgbGVmdCBpbiB0aGUgcXVldWUgYXQgYWxsLiBXZSBzdGlsbCBoYXZlIHNvbWV0aGluZwoJICB0byBwdXNoLCBzbyBkb24ndCB0ZWxsIHRoZSBhcHAgdG8gc3RhcnQgYnVmZmVyaW5nIC0gbWF5YmUKCSAgd2UnbGwgZ2V0IG1vcmUgZGF0YSBiZWZvcmUgYWN0dWFsbHkgcnVubmluZyBkcnkuCgoyMDE1LTExLTMwIDE3OjExOjMzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGdzdGNsb2NrOiBGaXggR1NUX1NUSU1FX0FSR1MKCSAgSXQgd2Fzbid0IHByb3Blcmx5IGhhbmRsaW5nIEdTVF9DTE9DS19TVElNRV9OT05FIGFuZCBhbHdheXMgdXNlIHRoZQoJICBzaWduIG1hcmtlciAoKy8tKSB0byBtYWtlIGl0IGVhc2llciB0byBpZGVudGlmeSBzaWduZWQgdmFsdWVzIGluCgkgIGxvZ3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODg3MAoKMjAxNS0xMS0zMCAyMzowODo1MCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbHNvdXJjZTogQW5ub3RhdGUgZ2V0X3ZhbHVlW19hcnJheV0gYXMgKG1ldGhvZCkKCSAgQXMgdGhlIG5hbWVzIGNsYXNoIHdpdGggZ3N0X29iamVjdF9nZXRfdmFsdWVbX2FycmF5XQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2OTUwCgoyMDE1LTExLTEzIDE3OjMyOjU3IC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgcGx1Z2luOiBBZGQgcHJlZml4IHN1cHBvcnQgdG8gZGVwZW5kZW5jaWVzCgkgIFRoaXMgYWRkcyBhIG5ldyBmbGFncywgR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfRklMRV9OQU1FX0lTX1BSRUZJWCwKCSAgd2hpY2ggYWxsb3cgdXNpbmcgdGhlIG5hbWVzIGFzIHByZWZpeCBmb3IgcGx1Z2luIGRlcGVuY2llcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODA4MwoKMjAxNS0xMS0xMyAxNjozMjozMSAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IEFsbG93IGRldmljZSBub2RlcyBhcyBkZXBlbmRlbmN5CgkgIFRoaXMgaXMgdXNlZnVsIGZvciBmZWF0dXJlIHRoYXQgYXJlIHByb2R1Y2VkIGFmdGVyIHByb2JpbmcgYSBzcGVjaWZpYwoJICBub2RlLiBZb3Ugd2FudCB0byByZWxvYWQgdGhpcyBwbHVnaW4gaWYgdGhlIHNwZWNpZmljIG5vZGUocykgaGF2ZSBiZWVuCgkgIHJlbW92ZWQsIGFkZGVkLCBvciByZWxvYWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODA4MAoKMjAxNS0xMS0xMyAxNjoyMDo0MiAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IERvbid0IGRvIGxvc3N5IHNoaWZ0IG9uIGhhc2gKCSAgSW4gcGx1Z2luIGlzIHJlc3BvbnNpYmxlIGZvciBjYWxjdWxhdGluZyBhIGhhc2ggb2YgdGhlIGRlcGVuZGVuY2llcwoJICBpbiBvcmRlciB0byBkZXRlcm1pbmUgaWYgdGhlIGNhY2hlIHNob3VsZCBiZSBpbnZhbGlkYXRlZCBvciBub3QuCgkgIEN1cnJlbnRseSwgdGhlIGhhc2ggY29tYmluaW5nIG1ldGhvZCByZW1vdmVzIGEgYml0IG9mIHRoZSBvcmlnaW5hbAoJICBoYXZlIGJlZm9yZSBjb21iaW5pbmcgd2l0aCBhbiBhZGRpdGlvbi4gQXMgd2UgdXNlIDMyYml0cyBmb3Igb3VyIGhhc2gKCSAgYW5kIHNoaWZ0IDEgYml0IGZvciBlYWNoIGZpbGUgYW5kIGRpcmVjdG9yeSwgdGhhdCByZXN1bHRpbmcgaGFzaCBvbmx5CgkgIGFjY291bnQgZm9yIHRoZSBsYXN0IDMyIGZpbGVzLiBBbmQgaXMgbW9yZSBhZmZlY3RlZCBieSB0aGUgbGFzdCBmaWxlLgoJICBSb3RhdGluZyB0ZWNobmlxdWUgKHNoaWZ0aW5nLCBhbmQgYWRkaW5nIGJhY2sgdGhlIGVuZGluZyBiaXQpLCBjYW4gYmUKCSAgdXNlIHRvIG1ha2UgdGhlIGFkZGl0aW9uIG5vbi1jb21tdXRhdGl2ZS4gSW4gYSB3YXkgdGhhdCBkaWZmZXJlbnQgb3JkZXIKCSAgZ2l2ZXMgZGlmZmVyZW50IGhhc2hlcy4gSW4gdGhpcyBjYXNlLCBJIGRvbid0IHByZXNlcnZlIHRoaXMgYmVoYXZpb3VyCgkgIGJlY2F1c2UgdGhlIG9yZGVyIGluIHdoaWNoIHRoZSBmaWxlcyBhcmUgcHJvdmlkZWQgYnkgdGhlIE9TIGlzCgkgIGlycmVsZXZhbnQuCgkgIEluIG1vc3QgY2FzZXMsIHRoZSBYT1Igb3BlcmF0aW9uIGlzIHVzZWQgdG8gY29tYmluZSBoYXNoZXMuIEluIHRoaXMKCSAgY29kZSB3ZSB1c2UgdGhlIGFkZGl0aW9uLiBJIGRlY2lkZWQgdG8gcHJlc2VydmUgdGhlIGFkZGl0aW9uIGJlY2F1c2UKCSAgd2UgbWFrZSB1c2Ugb2Ygbm9uLXJhbmRvbSBoYXNoICgoZ3VpbnQpIC0xKSBpbiB0aGUgYWxnb3JpdGhtIGZvcgoJICBtYXRjaGluZyBmaWxlcyB0aGF0IGFyZSBub3QgcmVhbGx5IHBhcnQgb2YgdGhlIGhhc2ggKHN5bWxpbmtzLCBzcGVjaWFsCgkgIGZpbGVzKS4gRG9pbmcgc3VjY2Vzc2l2ZSBYT1Igb24gdGhpcyB2YWx1ZSwgd2lsbCBzaW1wbHkgc3dpdGNoIGZyb20KCSAgZnVsbCBvbmVzLCB0byBmdWxsIHplcm8uIFRoZSBYT1IgdXNlZCB3aXRoIHdoaXRlbGlzdCBoYXMgYmVlbiBwcmVzZXJ2ZWQKCSAgYXMgaXQncyBiYXNlZCBvbiBhIGZhaXJseSByYW5kb21pemVkIGhhc2ggKGdfc3RyX2hhc2gpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDc4CgoyMDE1LTExLTIzIDIxOjQwOjM0ICswMDAwICBMdWthc3ogRm9yeW5za2kgPGx1a2Fzei5mb3J5bnNraUB5b3V2aWV3LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGZpeCBjb21waWxlciB3YXJuaW5nIHdpdGggLVdwZWRhbnRpYyBhbmQgZ2NjIDUKCSAgR3N0cmVhbWVyIGNvbXBpbGVkIHdpdGggZ2NjIDUuMiBhbmQgLVdwZWRhbnRpYyBwcm9kdWNlcyB0aGUKCSAgZm9sbG93aW5nIHdhcm5pbmc6CgkgICdJU08gQyBkb2VzIG5vdCBzdXBwb3J0ICdfX0ZVTkNUSU9OX18nIHByZWRlZmluZWQgaWRlbnRpZmllciBbLVdwZWRhbnRpY10KCSAgY29uc3QgY2hhciAqcyA9IF9fRlVOQ1RJT05fXzsnCgkgIFNpbmNlIGdjYyA1IGVuYWJsZXMgQzk5IGJ5IGRlZmF1bHQsIHVzZSBfX2Z1bmNfXyBpZiBpdCdzIGF2YWlsYWJsZQoJICBpbnN0ZWFkIG9mIHRoZSBub24tc3RhbmRhcmQgX19GVU5DVElPTl9fIChhcyBzdWdnZXN0ZWQgaW4gWzJdKS4KCSAgWzFdOiBodHRwczovL2djYy5nbnUub3JnL2djYy01L2NoYW5nZXMuaHRtbAoJICBbMl06IGh0dHBzOi8vZ2NjLmdudS5vcmcvZ2NjLTUvcG9ydGluZ190by5odG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTg1NDEKCjIwMTUtMTEtMjAgMTk6NDU6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJICBjb250cm9sbGVyOiBmaXggYW5ub3RhdGlvbiB0byBtYWtlIGctaXItc2Nhbm5lciBoYXBweQoJICBnc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOjU5OiBXYXJuaW5nOiBHc3RDb250cm9sbGVyOiBtaXNzaW5nICI6IiBhdCBjb2x1bW4gNTE6CgkgICogQEdTVF9JTlRFUlBPTEFUSU9OX01PREVfQ1VCSUNfTU9OTzogKFNpbmNlIDEuOCkgbW9ub3RvbmljIGN1YmljIGludGVycG9sYXRpb24sIHdpbGwgbm90CgkgIGdzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6NTk6IFdhcm5pbmc6IEdzdENvbnRyb2xsZXI6IHVua25vd24gYW5ub3RhdGlvbjogc2luY2UKCjIwMTQtMDktMjkgMTQ6MDM6MTMgKzA1MzAgIFJhdmkgS2lyYW4gSyBOIDxyYXZpLmtpcmFuQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogYWRkIEdTVF9UQUdfUFJJVkFURV9EQVRBCgkgIENhbiBiZSB1c2VkIHRvIHJlcHJlc2VudCBwcml2YXRlIGRhdGEgdGhhdCBtYXkgYmUKCSAgY29udGFpbmVkIGluIHRhZ3MsIHN1Y2ggYXMgSUQzdjIgUFJJViBmcmFtZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5MjYKCjIwMTUtMTEtMTkgMDA6NTE6NDQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIFJldmVydCAiYmFzZXBhcnNlOiBkbyBub3Qgb3ZlcndyaXRlIGhlYWRlciBidWZmZXIgdGltZXN0YW1wcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyYzQ3NWEwMzU1NDNlZmMwMjAyZWNkYzUyMDcwMjk1YTQyMWVkNGI0LgoJICBUaGlzIGNhdXNlcyBpc3N1ZXMgd2l0aCBoMjY0cGFyc2UuIEl0IGJyZWFrcyB0aW1lc3RhbXBzIGFzCgkgIHRoZXJlIGFyZSBoZWFkZXJzIGluIHRoZSBtaWRkbGUgb2YgdGhlIHN0cmVhbSBhbmQgdGhpcyBwYXRjaAoJICBtYWtlcyB0aGUgdGltZXN0YW1wcyBmb3IgdGhvc2UgZGlmZmVyIGZyb20gdGhlIG9uZXMgdGhhdAoJICBhcmUgYWRqdXN0ZWQsIGNyZWF0aW5nIGEgZGlzY29udGludWl0eSBhbmQgbGVhZGluZyB0byBzeW5jCgkgIGlzc3Vlcy4KCjIwMTUtMTEtMTcgMTg6NDc6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIFJldmVydCAiYmFzZXBhcnNlOiBzaW1wbGlmeSBjb2RlIGEgYml0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDM5ODRmNzE1OWE3MmMyZWViZTAxOTA1ZWU1MzcxNmUzYjJhYmNiMzAuCgoyMDE1LTExLTE4IDExOjQ2OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCBwcmludCBjcml0aWNhbHMgd2hlbiByZWNlaXZpbmcgY3VzdG9tIGV2ZW50cyBpbiByaW5nIGJ1ZmZlciBtb2RlCgkgIERvd25ncmFkZSBmcm9tIGdfd2FybmluZyB0byBHU1RfV0FSTklORyBsb2cgbWVzc2FnZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODI3NgoKMjAxNS0xMS0xOCAwOToyMToyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwLWhlbHBlcjogRGlzYWJsZSBtdWx0aWNhc3QgbG9vcGJhY2sKCSAgV2UncmUgbm90IHJlYWxseSBpbnRlcmVzdGVkIGluIG91ciBvd24gcGFja2V0cyBhbmQgaWdub3JlIHRoZW0gYW55d2F5LgoKMjAxNS0xMS0xNyAwOToxNzo1OCArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBzdHJpbmcgbWVtb3J5IGxlYWsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODIwNwoKMjAxNS0xMS0xNiAwODoyMjoxNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzaW1wbGlmeSBjb2RlIGEgYml0CgkgIEF2b2lkIHJlcGVhdGVkIGNoZWNrcyBmb3IgdGVzdGluZyBpZiBhIGJ1ZmZlciBpcyBhIGhlYWRlcgoKMjAxNS0xMS0xMyAyMDo0NDo1NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogaGFuZGxlIGJ1ZmZlciB3aXRoIGR0cy1vbmx5IHdoZW4gbWFwcGluZyB0byBydW5uaW5nIHRpbWUKCSAgT3RoZXJ3aXNlIHRoZSBidWZmZXIgd2FzIGxlZnQgd2l0aCB0aGUgb3JpZ2luYWwgdmFsdWVzIGFuZCBsYXRlciB3b3VsZAoJICBiZSBjb21wYXJlZCB3aXRoIG90aGVyIGJ1ZmZlcnMgdGhhdCB3ZXJlIGNvbnZlcnRlZCB0byBydW5uaW5uIHRpbWUsCgkgIGxlYWRpbmcgdG8gYmFkIGludGVybGVhdmluZyBvZiBtdWx0aXBsZSBzdHJlYW1zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3OTYxCgoyMDE1LTExLTEzIDE2OjMxOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIG5vdCBvdmVyd3JpdGUgaGVhZGVyIGJ1ZmZlciB0aW1lc3RhbXBzCgkgIGJhc2VwYXJzZSB0cmllcyB0byBwcmVzZXJ2ZSB0aW1lc3RhbXBzIGZyb20gdXBzdHJlYW0gaWYKCSAgaXQgaXMgcnVubmluZyBvbiBhIHRpbWUgc2VnbWVudCBhbmQgd3JpdGUgdGhhdCB0bwoJICBvdXRwdXQgYnVmZmVycy4gSXQgYXNzdW1lcyB0aGUgZmlyc3QgRFRTIGlzIGdvaW5nIHRvIGJlCgkgIHNlZ21lbnQuc3RhcnQgYW5kIHNldHMgdGhhdCB0byB0aGUgZmlyc3QgYnVmZmVycy4gSW4gY2FzZQoJICB0aGUgYnVmZmVyIGlzIGEgaGVhZGVyIGJ1ZmZlciwgaXQgaGFkIG5vIHRpbWVzdGFtcHMgYW5kCgkgIHdpbGwgaGF2ZSBvbmx5IHRoZSBEVFMgc2V0IGR1ZSB0byB0aGlzIG1lY2hhbmlzbS4KCSAgVGhpcyBwYXRjaCBwcmV2ZW50cyB0aGlzIGJ5IHNraXBwaW5nIHRoaXMgYmVoYXZpb3IgZm9yCgkgIGhlYWRlciBidWZmZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3OTYxCgoyMDE1LTA2LTE4IDEzOjU2OjUzIC0wNzAwICBBbGVpeCBDb25jaGlsbG8gRmxhcXXDqSA8YWxlaXhAb2Jsb25nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBpZGVudGl0eTogYWRkIGRyb3AtYnVmZmVyLWZsYWdzIHByb3BlcnR5CgkgIE5ldyBwcm9wZXJ0eSBkcm9wLWJ1ZmZlci1mbGFncyB0aGF0IHdpbGwgZGlzY2FyZCBidWZmZXJzIHRoYXQgaGF2ZSB0aGUKCSAgZ2l2ZW4gZmxhZ3Mgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMTgyCgoyMDE1LTExLTEyIDE5OjQ2OjQ0ICswMDAwICBSb3NzIEJ1cnRvbiA8cm9zcy5idXJ0b25AaW50ZWwuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogZml4IGluc3RhbGwgcmFjZQoJICBUaGUgaW5zdGFsbCBob29rIG5lZWRzIHRvIGJlIGEgaW5zdGFsbC1kYXRhLWhvb2sgbm90IGFuIGluc3RhbGwtZXhlYy1ob29rIGFzIHRoZQoJICBoZWxwZXJzIGFyZSBpbnN0YWxsZWQgaW50byBoZWxwZXJkaXIgd2hpY2ggaXMgY29uc2lkZXJlZCBkYXRhIChvbmx5IHBhdGgKCSAgdmFyaWFibGVzIHdpdGggImV4ZWMiIGluIGFyZSBjb25zaWRlcmVkIGV4ZWN1dGFibGVzKS4KCSAgVGhlIGV4cGxpY2l0IGRlcGVuZGVuY3kgb24gaW5zdGFsbC1oZWxwZXJzUFJPR1JBTVMgd2FzIGFuIGF0dGVtcHQgYXQgc29sdmluZwoJICB0aGlzLCBidXQgdGhpcyBjYXVzZXMgb2NjYXNpb25hbCByYWNlcyB3aGVyZSBpbnN0YWxsLWhlbHBlcnNQUk9HUkFNUyBjYW4gcnVuCgkgIHR3aWNlIGluIHBhcmFsbGVsIChvbmNlIHZpYSBpbnN0YWxsLWFsbCwgb25jZSB2aWEgdGhlIGhvb2sncyBkZXBlbmRlbmN5KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1ODAyOQoKMjAxNS0xMS0xMiAxNjoxNDoxOCArMDEwMCAgSGVpbnJpY2ggRmluayA8aGZpbmtAdG9vbHNvbmFpci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IEFkZCB0ZXN0IGZvciBnc3RfY2xvY2tfZ2V0X3Jlc29sdXRpb24KCSAgSW4gYSBzZXJpZXMgb2YgdGltZSBtZWFzdXJlbWVudHMsIHRoZSBkaWZmIGJldHdlZW4gbm93IGFuZCBwcmV2aW91cwoJICB0aW1lc3RhbXBzIGlzIGVpdGhlciAwIG9yIGF0IGxlYXN0IGFzIGxvbmcgYXMgZ2V0X3Jlc29sdXRpb24gcmV0dXJuZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTgwMTIKCjIwMTUtMTEtMTIgMTE6MjY6NTYgKzAxMDAgIEhlaW5yaWNoIEZpbmsgPGhmaW5rQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBVc2UgbWFjaF90aW1lIG9uIEFwcGxlIHBsYXRmb3JtcwoJICBPbiBpT1MvT1NYIGdfZ2V0X2N1cnJlbnRfdGltZSB3YXMgdXNlZCBieSBkZWZhdWx0LiBIb3dldmVyLCBtYWNoX3RpbWUgaXMKCSAgdGhlIHByZWZlcnJlZCBoaWdoLXJlc29sdXRpb24gbW9ub3RvbmljIGNsb2NrIHRvIGJlIHVzZWQgb24gQXBwbGUKCSAgcGxhdGZvcm1zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU4MDEyCgoyMDE1LTExLTExIDExOjExOjIzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkgIHRyYWNlcnM6IGxvZzogYWRkIG1pc3NpbmcgaG9va3MKCSAgTG9nIGFsbCBwb3NzaWJsZSBob29rcwoKMjAxNS0xMC0yOSAwODo0MDozMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IGFkZCBlbGVtZW50LWNoYW5nZS1zdGF0ZS1wcmUvcG9zdCBob29rCgkgIEhlbHBzIGNhdGNoaW5nIHdoZW4gYSBzdGF0ZSBjaGFuZ2UgaXMgc3RhcnRpbmcgYW5kIGVuZGluZy4KCSAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byB0cmFjayB0aGUgZW5kIG9mIHN0YXRlIGNoYW5nZXMgYnkgY2hlY2tpbmcgdGhlCgkgIGFzeW5jLWRvbmUgb3Igc3RhdGUtY2hhbmdlIG1lc3NhZ2VzLgoJICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgZm9yIGVsZW1lbnRzIHRoYXQgZG8gYXN5bmMgc3RhdGUgY2hhbmdlcy4KCjIwMTUtMTEtMTEgMTQ6MzI6NDQgKzAxMDAgIE1pZ3VlbCBQYXLDrXMgRMOtYXogPG1wYXJpc2RpYXpAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHRlc3QgZm9yIGNoZWNraW5nIHRoZSBvcmRlciBvZiB0aGUgcHJvYmUgY2FsbHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzE5NwoKMjAxNS0xMS0xMCAxNDo0MTozNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogZml4IHNvbWUgY29weSBhbmQgcGFzdGUgbGVmdG92ZXIgaW4gZG9jcwoKMjAxNS0xMS0xMCAxNDozNzoyNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogYWRkIHNvbWUgbW9yZSBkb2N1bWVudGF0aW9uCgkgIEFkZCBhIHNob3J0IHBhcmFncmFwaCBvbiB3aGF0IG1lYW5zIGZvciBhIGNvbnRleHQgdG8gYmUgcGVyc2lzdGVudAoKMjAxNS0xMS0wOSAxODowMjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogdXNlICdzdGF0aWMgaW5saW5lJyBpbnN0ZWFkIG9mICdpbmxpbmUgc3RhdGljJyBmb3IgZ3RrLWRvYwoJICBndGstZG9jIGRvZXNuJ3Qgc2VlbSB0byByZWNvZ25pc2UgdGhlIGZvcm1lciB2YXJpYW50LgoKMjAxNS0xMS0wOSAxNzo1OToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGRvY3M6IHJlbW92ZSBkdW1teSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgd2l0aCBHX0lOTElORV9GVU5DVElPTiBmb3IgZ3RrLWRvYwoJICBndGstZG9jIGNhbiBoYW5kbGUgc3RhdGljIGlubGluZSBmdW5jdGlvbnMganVzdCBmaW5lIHRoZXNlIGRheXMsCgkgIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgdGhpcyBzdHVmZiBhbnkgbW9yZS4KCjIwMTUtMDItMjMgMTM6MTY6MTkgKzEwMDAgIER1bmNhbiBQYWxtZXIgPGRwYWxtZXJAZGlnaXNvZnQudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEFkZCB0aGUgYXZnLWluLXJhdGUgcHJvcGVydHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM5NTkKCjIwMTUtMTEtMDQgMTI6MDI6NTEgKzAxMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgb3ZlcnJ1biBzaWduYWwKCSAgTm90aWZpZXMgdGhhdCB0aGUgcXVldWUyIGlzIGZ1bGwsIHNhbWUgYXMgcXVldWUgZG9lcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzOTU5CgoyMDE1LTA5LTI5IDIxOjE0OjE5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogdGVzdHMgZm9yIGFjY2VwdC1jYXBzIGhhbmRsaW5nIHdpdGggcHJveHkgcGFkcwoJICBBZGRzIDMgbmV3IHRlc3RzIGZvciB0ZXN0aW5nIGFjY2VwdC1jYXBzIGJlaGF2aW9yIHdpdGgKCSAgcHJveHktY2FwcyBwYWRzLgoJICAxKSBBIHNjZW5hcmlvIHdoZXJlIHRoZXJlIGlzIG5vIHByb3h5LiBUaGUgY2FwcyBzaG91bGQgYmUgY29tcGFyZWQgdG8gdGhlCgkgIHRlbXBsYXRlIGNhcHMgb2YgdGhlIHBhZAoJICAyKSBBIHNjZW5hcmlvIHdoZXJlIHRoZXJlIGlzIGEgY29tcGF0aWJsZSBwYWQuIFRoZSBjYXBzIHNob3VsZCBiZSBjb21wYXJlZAoJICB0byB0aGUgcHJveGllZCBwYWQgY2FwcyAoYW5kIGFsc28gd2l0aCB0aGUgdGVtcGxhdGUpCgkgIDMpIEEgc2NlbmFyaW8gd2hlcmUgdGhlcmUgaXMgYW4gaW5jb21wYXRpYmxlIHByb3h5IHBhZC4gTm8gY2FwcyBzaG91bGQgYmUKCSAgcG9zc2libGUgYXQgYWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTEyCgoyMDE1LTExLTA1IDE2OjE1OjIyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2hlY2sgdGVtcGxhdGUgY2FwcyBmb3IgcHJveHkgcGFkcyBpbiBhY2NlcHQtY2FwcwoJICBWYWxpZGF0ZSB0aGF0IHRoZSBwcm94eSBwYWQgaW5kZWVkIGFjY2VwdHMgdGhlIGNhcHMgYnkgYWxzbwoJICBjb21wYXJpbmcgd2l0aCB0aGUgcGFkIHRlbXBsYXRlIGNhcHMsIG90aGVyd2lzZSB3aGVuIHRoZSBwYWQKCSAgaGFkIG5vIGludGVybmFsbHkgbGlua2VkIHBhZHMgaXQgd291bGQgYWx3YXlzIHJldHVybiB0cnVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0MTEyCgoyMDE1LTExLTA2IDEyOjU4OjQyICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIEZpeCBidWlsZCB3aXRoIC1XZXJyb3I9bWF5YmUtdW5pbml0aWFsaXplZAoKMjAxNS0xMS0wNiAxMjowNToxOCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgcHJlc2V0OiBBZGQgYSBHU1RfUFJFU0VUX1BBVEggZW52IHZhcmlhYmxlIGZvciBwcmVzZXRzIHRvIGJlIHVzYWJsZSB1bmluc3RhbGxlZAoJICBBbmQgc3RhcnQgc2V0dGluZyB0aGUgdmFyaW91cyB1bmluc3RhbGxlZCBwcmVzZXRzIHBhdGhzLgoKMjAxNS0xMS0wNSAwODo1Njo0MyArMDEwMCAgQW50b24gQm9uZGFyZW5rbyA8YW50b25ib0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGNvbnRpbnVlIGVsZW1lbnQgY2xlYW51cCBldmVuIGlmIGZjbG9zZSBmYWlscwoJICBTb21ldGltZXMgZmlsZXNpbmsgY2xlYW51cCBkdXJpbmcgc3RvcCBtYXkgZmFpbCBkdWUgdG8gZmNsb3NlIGVycm9yLgoJICBJbiB0aGlzIGNhc2Ugb2JqZWN0IGxlZnQgcGFydGlhbCBjbGVhbnVwIHdpdGggbm8gZmlsZSBvcGVuZWQKCSAgYnV0IHN0aWxsIGhvbGRpbmcgb2xkIGZpbGUgZGVzY3JpcHRvci4KCSAgSXQncyBub3QgcG9zc2libGUgdG8gY2hhbmdlIGxvY2F0aW9uIHByb3BlcnR5IGluIGEgc3VjaCBzdGF0ZSwKCSAgc28gbmV4dCBzdGFydCB3aWxsIGNhdXNlIG9sZCBmaWxlIG92ZXJ3cml0ZSBpZiAnYXBwZW5kJyBkb2VzIG5vdCBzZXQuCgkgIEFjY29yZGluZyB0byBtYW4gcGFnZSBhbmQgUE9TSVggc3RhbmRhcmQgYWJvdXQgZmNsb3NlIGJlaGF2aW9yKGV4dHJhY3QpOgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCSAgVGhlIGZjbG9zZSgpIGZ1bmN0aW9uIHNoYWxsIGNhdXNlIHRoZSBzdHJlYW0gcG9pbnRlZCB0byBieSBzdHJlYW0KCSAgdG8gYmUgZmx1c2hlZCBhbmQgdGhlIGFzc29jaWF0ZWQgZmlsZSB0byBiZSBjbG9zZWQuCgkgIC4uLgoJICBXaGV0aGVyIG9yIG5vdCB0aGUgY2FsbCBzdWNjZWVkcywgdGhlIHN0cmVhbSBzaGFsbCBiZSBkaXNhc3NvY2lhdGVkCgkgIGZyb20gdGhlIGZpbGUgYW5kIGFueSBidWZmZXIgc2V0IGJ5IHRoZSBzZXRidWYoKSBvciBzZXR2YnVmKCkKCSAgZnVuY3Rpb24gc2hhbGwgYmUgZGlzYXNzb2NpYXRlZCBmcm9tIHRoZSBzdHJlYW0uCgkgIC4uLgoJICBUaGUgZmNsb3NlKCkgZnVuY3Rpb24gc2hhbGwgcGVyZm9ybSB0aGUgZXF1aXZhbGVudCBvZiBhIGNsb3NlKCkKCSAgb24gdGhlIGZpbGUgZGVzY3JpcHRvciB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RyZWFtCgkgIHBvaW50ZWQgdG8gYnkgc3RyZWFtLgoJICBBZnRlciB0aGUgY2FsbCB0byBmY2xvc2UoKSwgYW55IHVzZSBvZiBzdHJlYW0gcmVzdWx0cwoJICBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCgkgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJICBTbyBmaWxlIGlzIGluICdjbG9zZWQnIHN0YXRlIG5vIG1hdHRlciBpZiBmY2xvc2Ugc3VjY2VlZCBvciBub3QuCgkgIEFuZCBjbGVhbnVwIGNvdWxkIGJlIGNvbnRpbnVlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzU5NgoKMjAxNS0xMS0wMSAwMDowNDoyNyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTWFyayBzdGlja3kgZXZlbnRzIGFzIHNlbnQgb24gbm90LWxpbmtlZAoJICBJbnN0ZWFkIG9mIHJlLXNlbmRpbmcgc3RpY2t5IGV2ZW50cyBvdmVyIGFuZCBvdmVyIHRvIGEgbm90LWxpbmtlZAoJICBwYWQsIG1hcmsgdGhlbSBhcyBzZW50IHRoZSBmaXJzdCB0aW1lLiBJZiB0aGUgbm90LWxpbmtlZCBjYW1lIGZyb20KCSAgZG93bnN0cmVhbSwgaXQgYWxyZWFkeSByZWNlaXZlZCB0aGUgZXZlbnRzLiBJZiB0aGUgcGFkIGlzIGFjdHVhbGx5CgkgIG5vdC1saW5rZWQsIHRoZSBzdGlja3kgZXZlbnRzIHdpbGwgYmUgcmVzY2hlZHVsZWQgd2hlbiB0aGUKCSAgcGFkIGlzIGxpbmtlZCBhbnl3YXkuCgoyMDE1LTEwLTI5IDE4OjUzOjI5ICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogQWxsb3cgZGVhY3RpdmF0aW9uIHdpdGggbm8gcGVlci4KCSAgQWxsb3cgZGVhY3RpdmF0aW9uIGluIHB1bGwtbW9kZSwgc2luY2UgdGhhdCBpbXBsaWVzIHdlCgkgIGhhZCBhIHBlZXIsIGFjdGl2YXRlZCBpbiBwdWxsIG1vZGUsIHRoZW4gdGhlIHBlZXIgZGlzYS1wZWVyLWVkIDspCgoyMDE1LTEwLTI4IDE3OjMxOjA3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudDogZW1pdCB0cmFjZXIncyBlbGVtZW50LW5ldyBob29rIGZyb20gJ2NvbnN0cnVjdGVkJwoJICBJdCBhbGxvd3MgdG8gcHJvcGVybHkgZW1pdHRpbmcgaXQgZm9yIGFsbCBuZXdseSBjcmVhdGVkIGVsZW1lbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcwNDUKCjIwMTUtMTAtMjggMDY6MDM6MzkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBzdGF0czogbG9nIHRoZSBlbGVtZW50LW5ldyBob29rIHByb3Blcmx5CgkgIFRvIGJlIGFibGUgdG8gZ2V0IHRoZSB0aW1lIHRoZSBlbGVtZW50cyB3ZXJlIGNyZWF0ZWQgaW5zdGVhZCBvZgoJICBqdXN0IGxvZ2dpbmcgdGhlbSB3aXRob3V0IGEgdGltZQoKMjAxNS0xMC0yOCAxODowNDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBVbmJsb2NrIGJsb2NraW5nIHBhZCBwcm9iZXMgd2hlbiByZWNlaXZpbmcgRkxVU0hfU1RBUlQgaW4gc2VuZF9ldmVudCgpIHRvbwoJICBXaXRob3V0IHRoaXMsIGZsdXNoaW5nIG1pZ2h0IG5vdCB1bmJsb2NrIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGFuZCBjYXVzZSBkZWFkbG9ja3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcyNTcKCjIwMTUtMTAtMjggMTM6MDQ6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9jdW1lbnQgdGhlIG9yZGVyIGluIHdoaWNoIHBhZCBwcm9iZXMgYXJlIGNhbGxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MTk3CgoyMDE1LTEwLTI3IDE4OjA1OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFwcGVuZCBob29rcyBpbnN0ZWFkIG9mIHByZXBlbmRpbmcgdG8gY2FsbCB0aGVtIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NzE5NwoKMjAxNS0xMC0yNiAxMjo1MDoxMiArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBuZXRhZGRyZXNzbWV0YTogZ3N0X2J1ZmZlcl9nZXRfbmV0X2FkZHJlc3NfbWV0YSgpIGFzIGZ1bmN0aW9uCgkgIEltcGxlbWVudCBnc3RfYnVmZmVyX2dldF9uZXRfYWRkcmVzc19tZXRhKCkgYXMgYSBmdW5jdGlvbiBpbnN0ZWFkCgkgIG9mIGEgbWFjcm8gaW4gb3JkZXIgdG8gZ2V0IGdvYmplY3QtaW50cm9zcGVjdGlvbiB0byB3b3JrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTIxCgoyMDE1LTEwLTI2IDE4OjA3OjExICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogZmxlc2ggb3V0IGRvY3MgZm9yIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIGEgbGl0dGxlCgkgIFRoZXJlIGlzIGEgc2ltaWxhciBleHBsYW5hdGlvbiBpbiBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlLCBidXQgdGhlIGV4aXN0aW5nCgkgIGRvY3VtZW50YXRpb24gY2FuIGJlIG1pc2xlYWRpbmcgc2luY2UgaXQgZG9lcyBub3QgZGVmaW5lIHdoYXQgJ2lzIGFscmVhZHkKCSAgd3JpdGFibGUnIG1lYW5zLgoJICBBbHNvIG5vdGUgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIHVzZWQuCgoyMDE1LTEwLTI2IDE3OjM1OjM0ICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBjbGFyaWZ5IGRvY3MgZm9yIGEgZmV3IGZ1bmN0aW9ucyB0aGF0IHRoZXkgZG9uJ3QgdXBkYXRlIHRoaW5ncyBpbi1wbGFjZQoJICBJdCBpcyBub3QgbmVjZXNzYXJpbHkgY2xlYXIgZnJvbSB0aGUgZXhpc3RpbmcgaW50cm9zcGVjdGlvbiB0YWdzIGFuZAoJICBkb2N1bWVudGF0aW9uIGFsb25lLgoKMjAxNS0xMC0yNyAwODo0ODowNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUvcXVldWUyOiBVc2UgR1NUX0JVRkZFUl9EVFNfT1JfUFRTCgkgIFRoZSBpbnB1dCBvZiBxdWV1ZS9xdWV1ZTIgbWlnaHQgaGF2ZSBEVFMgc2V0LCBpbiB3aGljaCBjYXMgd2Ugd2FudAoJICB0byB0YWtlIHRoYXQgaW50byBhY2NvdW50IChpbnN0ZWFkIG9mIHRoZSBQVFMpIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbgoJICBhbmQgcXVldWUgbGV2ZWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NTA3CgoyMDE1LTEwLTEzIDE3OjIwOjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFVzZSBidWZmZXIgRFRTIGlmIHByZXNlbnQsIGVsc2UgUFRTCgkgIEluIG9yZGVyIHRvIGFjY3VyYXRlbHkgZGV0ZXJtaW5lIHRoZSBhbW91bnQgKGluIHRpbWUpIG9mIGRhdGEKCSAgdHJhdmVsbGluZyBpbiBxdWV1ZXMsIHdlIHNob3VsZCB1c2UgYW4gaW5jcmVhc2luZyB2YWx1ZS4KCSAgSWYgYnVmZmVycyBhcmUgZW5jb2RlZCBhbmQgcG90ZW50aWFsbHkgcmVvcmRlcmVkLCB3ZSBzaG91bGQgYmUKCSAgdXNpbmcgdGhlaXIgRFRTIChpbmNyZWFzaW5nKSBhbmQgbm90IFBUUyAocmVvcmRlcmVkKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NTA3CgoyMDE1LTEwLTI3IDA4OjMzOjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVXNlIEdTVF9CVUZGRVJfRFRTX09SX1BUUwoJICBTaW1wbGlmaWVzIGNvZGUgYSBiaXQKCjIwMTUtMTAtMjYgMDc6NTk6NTQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogQWRkIGEgR1NUX0JVRkZFUl9EVFNfT1JfUFRTIG1hY3JvCgkgIEFQSTogR1NUX0JVRkZFUl9EVFNfT1JfUFRTCgkgIE1hbnkgc2NlbmFyaW9zL2VsZW1lbnRzIHJlcXVpcmUgZGVhbGluZyB3aXRoIHN0cmVhbXMgb2YgYnVmZmVycyB0aGF0CgkgIG1pZ2h0IGhhdmUgRFRTIHNldCAoaS5lLiBlbmNvZGVkIGRhdGEsIHBvdGVudGlhbGx5IHJlb3JkZXJlZCkKCSAgVG8gc2ltcGxpZnkgZ2V0dGluZyB0aGUgaW5jcmVhc2luZyAidGltZXN0YW1wIiBvZiB0aG9zZSBidWZmZXJzLCBjcmVhdGUKCSAgYSBtYWNybyB0aGF0IHdpbGwgcmV0dXJuIHRoZSBEVFMgaWYgdmFsaWQsIGFuZCBpZiBub3QgdGhlIFBUUwoKMjAxNS0xMC0wNiAxMjoyMTowNCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IGFkZCBHU1Rfe1BUUixTRUdNRU5UfV9GT1JNQVQKCSAgVmVyeSB1c2VmdWwgZm9ybWF0cyBpbiBkZWJ1ZyBvdXRwdXQgc28gYmVzdCB0byBoYXZlIHRoZW0gaW4gdGhlCgkgIGdlbmVyYXRlZCBkb2MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTYxMTUKCjIwMTUtMTAtMjYgMTA6NTM6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBSZXR1cm4gLTEgaWYgZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWVfZnVsbCgpIGNvbnNpZGVycyB0aGUgcG9zaXRpb24gbm90IGluc2lkZSB0aGUgc2VnbWVudAoJICBGaXhlcyBHc3RQaXBlbGluZSB1bml0IHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY1NjQKCjIwMTUtMTAtMjQgMTY6NTI6NDQgKzAxMDAgIEZsb3JpbiBBcG9zdG9sIDxmbG9yaW4uYXBvc3RvbEBvcmVnYW4ubmV0PgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IGZpeCBiZWhhdmlvdXIgZm9yIG1lcmdpbmcgdXJpcyBlbmRpbmcgaW4gLi4gd2l0aG91dCBmb2xsb3dpbmcgLwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3MDY1CgoyMDE1LTEwLTI0IDE2OjQzOjU5ICswMTAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiB0ZXN0czogYWRkZWQgdW5pdCB0ZXN0IGZvciBzdHJlYW1zIGVuZGluZyBpbiAuLiB3aXRob3V0IGZvbGxvd2luZyAvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTcwNjUKCjIwMTUtMDgtMjcgMTI6NDM6MjggKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVnOiBEdW1wIHBhZCBwcm9wZXJ0aWVzIHZhbHVlcwoJICBDdXJyZW50bHkgd2Ugb25seSBzaG93IGVsZW1lbnQgcHJvcGVydGllcyB2YWx1ZXMsIHdlIHNob3VsZCBhbHNvIHNob3cKCSAgcGFkIHByb3BlcnRpZXMgdmFsdWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxNjYKCjIwMTUtMTAtMjMgMjA6MDQ6NDIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBSZW1vdmUgbGVmdG92ZXIgZGVidWcgZ19wcmludCgpCgoyMDE1LTEwLTE1IDE0OjQ5OjM3ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IEFkZCBfZnVsbCB2YXJpYW50cyBvZiBhbGwgc3RyZWFtL3J1bm5pbmdfdGltZSBmcm9tL3RvIHNlZ21lbnQgcG9zaXRpb24gZnVuY3Rpb25zCgkgIFNlZSBmb3JtdWxhIGNsYXJpZmljYXRpb25zIGluIGRlc2lnbiBkb2NzIGZvciBjYWxjdWxhdGlvbiBkZXRhaWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2NTY0CgoyMDE1LTA5LTI2IDAxOjI5OjA3ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUB0b29sc29uYWlyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZGVkIGVudiB2YXIgZm9yIHVuaW5zdGFsbGVkIFBUUCBoZWxwZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTY1MQoKMjAxNS0xMC0yMiAxMjowMDo0MiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiByZW5hbWUgYXJndW1lbnQgb2YgUFJFUk9MTF97Q09ORCxMT0NLfSBtYWNyb3MKCSAgVGhleSB0YWtlIGEgR3N0QmFzZVNpbmsgaW5zdGFuY2UgYXMgYXJndW1lbnQgYXQgbm90IGEgR3N0UGFkLiBSZW5hbWUgdGhlCgkgIGFyZ3VtZW50IHRvICdvYmonIHdoaWNoIGlzIG5vdCBtaXNzIGxlYWRpbmcgYW5kIGluIGxpbmUgd2l0aAoJICBHU1RfQkFTRV9TSU5LX1BBRChvYmopLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2OTU0CgoyMDE1LTEwLTIyIDEwOjA1OjE0ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBnc3Rjb250cm9sc291cmNlOiBBZGQgbWlzc2luZyAob3V0KSBhbm5vdGF0aW9uCgoyMDE1LTEwLTIxIDE0OjM0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiOTk4MDBhIHRvIGIzMTk5MDkKCjIwMTUtMTAtMjEgMTQ6NDk6NDkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IGRvY3MvYW5ub3RhdGlvbiBvZiBnc3RfcGFkX3Byb2JlX2luZm9fZ2V0X2J1ZmZlcl9saXN0KCkKCSAgSXQncyBub3QgZ2V0X2J1ZmZlcmxpc3QoKS4gQmVjYXVzZSBvZiB0aGF0IGl0IHdhcyBpZ25vcmVkIGJ5IHRoZSBkb2NzIGFuZAoJICBHLUksIGxlYWRpbmcgdG8gY3Jhc2hlcyBiZWNhdXNlIG9mIGJyb2tlbiBvd25lcnNoaXAgdHJhbnNmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY4OTgKCjIwMTUtMTAtMjAgMTc6Mjk6NDIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFVzZSBuZXcgR1NUX0VOQUJMRV9FWFRSQV9DSEVDS1MgI2RlZmluZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODcwCgoyMDE1LTEwLTIxIDE0OjI1OjQwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDlhZWQxZDcgdG8gYjk5ODAwYQoKMjAxNS0xMC0yMCAxMzo0NjoyNCArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc2JnQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogYWx3YXlzIGZyZWUgbG9nCgkgIFdlIGFsd2F5cyB3YW50IHRvIGZyZWUgdGhlIG9wZW4gZmlsZSBsb2cgaWYgZm9wZW4oKSBzdWNjZWVkZWQuIEluZGVwZW5kZW50bHkKCSAgb2YgaWYgZmdldHMoKSBzdWNjZWVkcyBvciBmYWlscy4KCSAgQ0lEIDEzMjYwNTUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Njg2NAoKMjAxNS0xMC0xOSAxNjo1MDo1MSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBDb3JyZWN0IHN0cmVhbV90aW1lIGNhbGMgZm9yIG5lZ2F0aXZlIGFwcGxpZWQgcmF0ZQoJICBVcGRhdGVkIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUgYW5kIGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lIHRvIHJlZmxlY3QgY29ycmVjdCBjYWxjdWxhdGlvbnMgZm9yIHRoZSBjYXNlIHdoZW4gdGhlIGFwcGxpZWQgcmF0ZSBpcyBuZWdhdGl2ZS4KCSAgUGFzdGluZyBmcm9tIGRlc2lnbiBkb2NzOgoJICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgkgIFN0cmVhbSB0aW1lIGlzIGNhbGN1bGF0ZWQgdXNpbmcgdGhlIGJ1ZmZlciB0aW1lcyBhbmQgdGhlIHByZWNlZGluZyBTRUdNRU5UCgkgIGV2ZW50IGFzIGZvbGxvd3M6CgkgIHN0cmVhbV90aW1lID0gKEIudGltZXN0YW1wIC0gUy5zdGFydCkgKiBBQlMgKFMuYXBwbGllZF9yYXRlKSArIFMudGltZQoJICBGb3IgbmVnYXRpdmUgcmF0ZXMsIEIudGltZXN0YW1wIHdpbGwgZ28gYmFja3dhcmRzIGZyb20gUy5zdG9wIHRvIFMuc3RhcnQsCgkgIG1ha2luZyB0aGUgc3RyZWFtIHRpbWUgZ28gYmFja3dhcmRzLgoJICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgkgIFRoZXJlZm9yZSwgdGhlIGNhbGN1bGF0aW9uIGZvciBhcHBsaWVkX3JhdGUgPCAwIHNob3VsZCBiZToKCSAgc3RyZWFtX3RpbWUgPSAoUy5zdG9wIC0gQi50aW1lc3RhbXApICogQUJTIChTLmFwcGxpZWRfcmF0ZSkgKyBTLnRpbWUKCSAgYW5kIHRoZSByZXZlcnNlOgoJICBCLnRpbWVzdGFtcCA9IFMuc3RvcCAtIChzdHJlYW1fdGltZSAtIFMudGltZSkgLyBBQlMgKFMuYXBwbGllZF9yYXRlKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU2ODEwCgoyMDE1LTEwLTE5IDIxOjM5OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJICB0cmFjZXI6IHJlbmFtZSB0aGUgZW52dmFyIHRvIEdTVF9UUkFDRVJfUExVR0lOUwoJICBUaGUgc3Vic3lzdGVtIHJldXNlZCB0aGUgR1NUX1RSQUNFIHZhciB0aGF0IGlzIGFsbHJlYWR5IGluIHVzZSBieSB0aGUgYWxsb2MgdHJhY2VyLgoJICBGaXhlcyAjNzU2NzYwCgoyMDE1LTEwLTE1IDE2OjMyOjQyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEltcHJvdmUgaW5jb21pbmcgU0VHTUVOVCBoYW5kbGluZwoJICBQcmV2aW91c2x5IHRoaXMgY29kZSB3YXMganVzdCBibGluZGx5IHNldHRpbmcgdGhlIGNhY2hlZCBmbG93IHJldHVybgoJICBvZiBkb3duc3RyZWFtIHRvIEdTVF9GTE9XX09LIHdoZW4gd2UgZ2V0IGEgU0VHTUVOVC4KCSAgVGhlIHByb2JsZW0gaXMgdGhhdCB0aGlzIGNhbiBub3QgYmUgZG9uZSBibGluZGx5LiBJZiBkb3duc3RyZWFtIHdhcwoJICBub3QgbGlua2VkLCB0aGUgY29ycmVzcG9uZGluZyBzaW5xbGVxdWV1ZSBzb3VyY2UgcGFkIHRocmVhZCBtaWdodCBiZQoJICB3YWl0aW5nIGZvciB0aGUgbmV4dCBJRCB0byBiZSB3b2tlbiB1cCB1cG9uLgoJICBCeSBibGluZGx5IHNldHRpbmcgdGhlIGNhY2hlZCByZXR1cm4gdmFsdWUgdG8gR1NUX0ZMT1dfT0ssIGFuZCBpZiB0aGF0CgkgIHN0cmVhbSB3YXMgdGhlIG9ubHkgb25lIHRoYXQgd2FzIE5PVF9MSU5LRUQsIHRoZW4gdGhlIG5leHQgdGltZSB3ZQoJICBjaGVjayAoZnJvbSBhbnkgb3RoZXIgdGhyZWFkKSB0byBzZWUgaWYgd2UgbmVlZCB0byB3YWtlIHVwIGEgc291cmNlIHBhZAoJICB0aHJlYWQgLi4uIHdlIHdvbid0IGV2ZW4gdHJ5LCBiZWNhdXNlIG5vbmUgb2YgdGhlIGNhY2hlZCBmbG93IHJldHVybgoJICBhcmUgZXF1YWwgdG8gR1NUX0ZMT1dfTk9UX0xJTktFRC4KCSAgVGhpcyB3b3VsZCByZXN1bHQgaW4gdGhhdCB0aHJlYWQgbmV2ZXIgYmVpbmcgd29rZW4gdXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjY0NQoKMjAxNS0wOS0yNiAxODoxNjowNyArMDgwMCAgVGluZy1XZWkgTGFuIDxsYW50d0BzcmMuZ25vbWUub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHV0aWxzOiBGaXggYnVpbGQgd2l0aCBjbGFuZyAtV2Vycm9yPWNhc3QtYWxpZ24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTY1NwoKMjAxNS0xMC0xNyAyMjoxMzowOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBNYWtlIHN1cmUgdG8gZnJlZSBhbGwgY2FjaGVkIG1lc3NhZ2VzIHdoZW4gZ29pbmcgdG8gTlVMTAoJICBBbiBBU1lOQyBSRUFEWS0+UEFVU0VEIG1pZ2h0IGhhdmUgZmFpbGVkIHdpdGhvdXQgdGhlIGJpbiBjb2RlIG5vdGljaW5nIGR1cmluZwoJICB0aGUgc3RhdGUgY2hhbmdlLCBpbiB3aGljaCBjYXNlIHdlIHdpbGwgbmV2ZXIgZ2V0IFBBVVNFRC0+UkVBRFkgYW5kIHdvdWxkIGxlYWsKCSAgbWVzc2FnZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY2MTEKCjIwMTUtMTAtMTYgMTU6NTk6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBtZW50aW9uIHhkb3QgdXRpbGl0eSB0byB2aWV3IC5kb3QgZmlsZXMgZGlyZWN0bHkKCjIwMTUtMTAtMTYgMTI6MDA6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgYWxsb2N0cmFjZTogc2hvdyBkZXRhaWxzIG9mIGV2ZW50cyBhbmQgbWVzc2FnZXMgbGVha2VkCgkgIFNvIGl0J3MgY2xlYXJlciB3aGF0IGxlYWtlZC4KCjIwMTUtMTAtMTYgMTE6NTQ6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgIGRvY3M6IG1hbnVhbDogaW1wcm92ZSBhZHZhbmNlZCBtZXRhZGF0YSBleGFtcGxlIGEgYml0CgkgIEFjY2VwdCBib3RoIGZpbGVuYW1lIGFuZCBhIFVSSSBhcyBhcmd1bWVudCwgYW5kIHByaW50CgkgIHRoZSBlcnJvciBmcm9tIHRoZSBlcnJvciBtZXNzYWdlIGlmIHRoZXJlJ3MgYW4gZXJyb3IuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTY2MzAKCjIwMTUtMTAtMTUgMTk6MDU6MjEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBmaXggdHlwbyBpbiBkb2N1bWVudGF0aW9uCgkgIEl0IHNob3VsZCBiZSAxLjIgdW5sZXNzIHRoaXMgaXMgYSBmbGFnIGZyb20gdGhlIGZ1dHVyZQoKMjAxNS0wOS0xNSAxODowODoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBY2NlcHQgU1RSRUFNX1NUQVJUIGFmdGVyIEVPUwoJICBJbiB0aGUgc2FtZSB3YXkgY29yZSBub3cgYWxsb3dzIFNUUkVBTV9TVEFSVCB0byByZW1vdmUgdGhlIGZsdXNoaW5nCgkgIHN0YXRlIGZyb20gcGFkcywgd2UgbmVlZCB0byBkbyB0aGUgc2FtZSB0aGluZyBpbiBtdWx0aXF1ZXVlCgoyMDE1LTEwLTE0IDExOjAzOjIyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogQ29udmVydCBmdW5jdGlvbiB0byBtYWNybyBpbiB1bml0IHRlc3QgdG8gZ2V0IHByb3BlciBsaW5lIG51bWJlcnMgb24gZmFpbHVyZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODMxNgoKMjAxNS0xMC0xMiAxNzoyOToyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVXBkYXRlIGludGVybmFsIHBvc2l0aW9uIGV2ZW4gaWYgbm90IGxpbmtlZAoJICBPdXIgY3VycmVudCBwb3NpdGlvbiBoYXMgbm90aGluZyB0byBkbyB3aXRoIGJlaW5nIGxpbmtlZCBvciBub3QuCgkgIEF2b2lkcyBoYXZpbmcgc3RyYXkgc2VnbWVudCB1cGRhdGVzIGZpcmVkIGV2ZXJ5IDJzCgoyMDE1LTEwLTA3IDIyOjU1OjQ0ICswMTAwICBGbG9yaW4gQXBvc3RvbCA8ZmxvcmluLmFwb3N0b2xAb3JlZ2FuLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggbWVtb3J5IGxlYWsgd2hlbiBzZW5kaW5nIGV2ZW50cyB0byBhbiBFT1MgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTYyMDgKCjIwMTUtMTAtMDcgMTI6MDE6MTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkgIHRyYWNlcnM6IE9ubHkgbGluayBhZ2FpbnN0IGxpYmdzdHByaW50Zi5sYSBpZiB0aGUgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibGVkCgkgIEl0IGRvZXMgbm90IGV4aXN0IG90aGVyd2lzZSBhbmQgbGlua2luZyB3aWxsIGZhaWwuCgoyMDE1LTEwLTA3IDExOjI1OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBnc3QtcHRwLWhlbHBlcjogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4gdG8gZml4IG5ldC9pZi5oIGluY2x1ZGUgb24gT1NYIDEwLjYKCSAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGdzdC1wdHAtaGVscGVyLmM6NDA6MDoKCSAgL3Vzci9pbmNsdWRlL25ldC9pZi5oOjI2NToxOTogZXJyb3I6IGZpZWxkICdpZnJ1X2FkZHInIGhhcyBpbmNvbXBsZXRlIHR5cGUKCSAgc3RydWN0IHNvY2thZGRyIGlmcnVfYWRkcjsKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjEzNgoKMjAxNS0xMC0wNyAxMjoyMjozNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIFJldmVydCAidHJhY2VyczogT25seSBidWlsZCBnZXRydXNhZ2UoKSB0cmFjZXIgaWYgUlVTQUdFX1RIUkVBRCBpcyBhdmFpbGFibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGRkYmY3NjYyNmE0ODQyMDMwNjg2OWRiMWQxNzFmODU0Y2MyNTMxMC4KCjIwMTUtMTAtMDcgMTI6MjE6NTYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHRyYWNlcnMvcnVzYWdlOiBpZmRlZiB0aGUgUlVTQUdFX1RIUkVBRCB1c2FnZQoJICBTb21lIHZlcnNpb25zIG9mIGFuZG9pZCBkb24ndCBzZWVtIHRvIGhhdmUgaXQuCgoyMDE1LTEwLTA3IDExOjExOjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgdHJhY2VyczogT25seSBidWlsZCBnZXRydXNhZ2UoKSB0cmFjZXIgaWYgUlVTQUdFX1RIUkVBRCBpcyBhdmFpbGFibGUKCjIwMTUtMTAtMDYgMjE6NDY6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHJlbW92ZSBnc3RfdHJhY2VyX3F1YXJrX2lkX2dldF90eXBlCgkgIFJldmVydCBhZGRpdGlvbiBmcm9tIDc3N2JiZWVhNjA1MDUxYWUzZDJmYTdlMDJhZDg1ODkwMDFlNzhjZTAuCgoyMDE1LTEwLTA2IDE4OjUyOjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBtb3ZlIHByb3RvdHlwZSB0byB0aGUgcmlnaHQgaGVhZGVyCgkgIEZpeGVzIHRoZSBidWlsZCB3aGVuIHRoZSB0cmFjaW5nIHN1YnN5c3RlbSBpcyBkaXNhYmxlZC4KCjIwMTUtMTAtMDYgMTg6NDk6NDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJICB0cmFjZXI6IG1hcmsgR3N0VHJhY2VyUXVhcmtJZCBhcyBub24gR0VudW0KCSAgVGhpcyByZXZlcnRzIDcyY2EwMmIxZGU0MDY2ZWVhZTM1Yzg5MWUyNzUzODY3NzAxMTc3NzggYW5kIG1hcmtzIHRoZSBlbnVtCgkgIGFjY29yZGluZ2x5LgoKMjAxNS0xMC0wNiAxODo0NjoyNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgdHJhY2VyczogZGlzYWJsZSB0aGUgbG9nIHRyYWNlciBpZiBkZWJ1ZyBsb2dnaW5nIGlzIGRpc2FibGVkCgoyMDE1LTEwLTA2IDE4OjQ1OjQxICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJICBtYWtlZmlsZS5hbTogUmVtb3ZlIG9ic29sZXRlIEFuZHJvaWQgYnVpbGQgY3J1ZnQKCSAgVGhpcyBpcyBub3QgbmVlZGVkIGFueSBsb25nZXIuCgoyMDE1LTEwLTA2IDE0OjAxOjAzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkgIHRyYWNlcjogZml4IHRoZSBidWlsZCB3aXRoIGRlYnVnICh0cmFjZXIpIGRpc2FibGVkCgkgIFN5bmMgdGhlIG1hY3JvIGRlZmluaXRpb25zLiBUaGUgZHVtbXkgZGVmaW5lcyBoYXMgYXJndW1lbnQgbWlzbWF0Y2hlcy4KCjIwMTUtMTAtMDYgMTE6Mzk6MzMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBmaXggdGhlIGJ1aWxkIHdpdGggZGVidWcgKHRyYWNlcikgZGlzYWJsZWQKCSAgUmVtb3ZlIGNvbW1hcyBhdCB0aGUgZW5kIG9mIHRoZSBtYWNyb3MuCgoyMDE1LTA5LTAxIDE2OjM5OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2Vyczogc3RhdHM6IGFkZCBtZXNzYWdlIHN0cnVjdHVyZSB0byBvdXRwdXQKCSAgVGhlIG5hbWUgb2YgdGhlIG1lc3NhZ2UgaXMgbm90IGVub3VnaC4gRm9yIGV4YW1wbGUsIHN0YXRlLWNoYW5nZQoJICBpcyBub3QgZW5vdWdoIHRvIGtub3cgdGhlIHRyYW5zaXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQ0OTYKCjIwMTUtMTAtMDUgMTk6MDU6NTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGRpbmcgdHJhY2VyIHF1YXJrIGlkIHRvIGdzdCBpbml0IGFuZCBkZWluaXQKCSAgRml4ZXMgaXNzdWVzIGF0IG1ha2UgY2hlY2sKCjIwMTUtMTAtMDUgMTg6NTA6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogbGliZ3N0cmVhbWVyOiBhZGQgdHJhY2VyIGZ1bmN0aW9ucwoKMjAxNS0xMC0wNSAyMToyOTo0OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGVzdHM6IGZpeCB0aGUgdGFnIHRlc3QKCSAgVGhlIHByZXZpb3VzIGNoYW5nZSAoc2VlIGJnbyAjNzU2MDY5KSB3YXMgY2F1c2luZyB1cyB0byBmcmVlIHRoZSBzYW1lIHBvaW50ZXIKCSAgbXVsdGlwbGUgdGltZXMuIElmIHdlIGFjdHVhbGx5IGdldCBhIHNhbXBsZSBiYWNrLCB0aGUgdGVzdCBmYWlscywgbm8gbmVlZCB0bwoJICBmcmVlIGFueXRoaW5nIGluIHRoYXQgY2FzZS4KCjIwMTUtMDYtMDQgMDE6NTA6MzQgKzAyMDAgIE1hcmNpbiBLb2xueSA8bWFyY2luLmtvbG55QGZseXRyb25pYy5wbD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSAgdHJhY2VyOiBhZGQgbWlzc2luZyBob29rcwoJICBBZGQgZm9sbG93aW5nIGhvb2tzOiBlbGVtZW50LW5ldywgZWxlbWVudC1hZGQtcGFkLCBlbGVtZW50LXJlbW92ZS1wYWQsCgkgIGJpbi1hZGQtcHJlLCBiaW4tYWRkLXBvc3QsIGJpbi1yZW1vdmUtcHJlLCBiaW4tcmVtb3ZlLXBvc3QsIHBhZC1saW5rLXByZSwKCSAgcGFkLWxpbmstcG9zdCwgcGFkLXVubGluay1wcmUsIHBhZC11bmxpbmstcG9zdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE4NwoKMjAxNS0wMy0xMyAxODozMTo0MCArMDAwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcjogZ3N0c3RhdHM6IGFkZCB0aHJlYWQtaWQgdG8gbG9nIGxpbmUKCjIwMTUtMDMtMTMgMTM6MTA6NDIgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBhZGQgcGFkIHF1ZXJ5IGhvb2tzCgoyMDE1LTAxLTE1IDA2OjMyOjQ4ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkgIHRyYWNlcjogc3RyZHVwIHRoZSBwYXNzZWQgcGFyYW1ldGVycy4KCjIwMTUtMDEtMTMgMjI6MTE6MzQgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyOiBVc2UgR1NUX1RJTUVfQVJHUyB3aGVuIHByaW50aW5nIHdpdGggR1NUX1RJTUVfRk9STUFULgoKMjAxNC0xMC0xNiAxMDo0MjowNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICB0cmFjaW5nOiB1cGRhdGUgZG9jcwoKMjAxNC0xMC0wMiAxOTo1MjowMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IFRJTUVTVEFNUCAtPiBQVFMKCjIwMTQtMDktMjIgMDk6NTU6NTYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmM6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNpbmc6IHJlbmFtZSB0aGUgZ2xvYmFsIGFwaSB0byBnc3RfdHJhY2luZwoJICBUaGlzIG1ha2VzIGl0IG1vcmUgb2J2aW91cyB3aGF0IGlzIHRoZSBhcGkgZm9yIHRyYWNlciBlbGVtZW50cyBhbmQgd2hhdCBpcyBhcGkKCSAgZm9yIHRoZSBnbG9iYWwgc3RhdGUuCgoyMDE0LTA5LTE4IDA4OjI4OjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBmaXggY3B1IHN0YXRzIHByaW50aW5nCgkgIE9ubHkgcHJpbnQgdGhlbSBpZiB3ZSBoYXZlIHRoZW0uIEFsc28gc2NhbGUgdGhlbSBieSAxMC4wIGFzIHRoZSBhcmUgaW4KCSAgcGVyLW1pbGxlIG5vdy4KCjIwMTQtMDktMTggMDg6MjY6MTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBlbGltaW5hdGUgdmFyX2FyZ3MKCSAgUmVnaXN0ZXIgdHJhY2VyIGhvb2tzIGFzIEdDYWxsYmFjay4gVXNlIG1hY3JvcyBmb3IgaG9vayBkaXNwYXRjaCBhbmQgY2FzdCB0aGUKCSAgaG9vayBmdW5jdGlvbnMgYmFjayB0byB0aGUgYXBwcm9wcmlhdGUgdHlwZS4KCjIwMTQtMDktMTcgMDk6NDE6NDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGRvbid0IHdhcm4gb24gIi5jbGFzcyIgbG9nIGxpbmVzCgoyMDE0LTA5LTE3IDA4OjM4OjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuaDoKCSAgdHJhY2VyczogY29kZSBjbGVhbnVwcwoJICBNb3ZlIHN0YXRpYyB2YXJpYWJsZXMgdG8gaW5zdGFuY2UgdmFyaWFibGVzLiBBZGQgZmluYWxpemUgbWV0aG9kcy4gUmVtb3ZlIGNvZGUKCSAgdGhhdCBpcyBjb21tZW50ZWQgb3V0LiBDbGVhbnVwIGxvY2tpbmcgY29kZS4KCjIwMTQtMDktMTUgMjI6Mjc6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHVzZSBHUXVhcmsgb3Igc3RyaW5ncyBmb3IgdGhlIGhvb2sgaWQKCSAgVGhpcyB3YXkgb25lIGNhbiBkZWZpbmUgbmV3IHRyYWNpbmcgcHJvYmVzIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGNvcmUuIFdlIGFyZQoJICB1c2luZyBvdXIgb3duIHF1YXJrIHRhYmxlLCBhcyAxKSB3ZSBvbmx5IHdhbnQgdG8gaW5pdGlhbGl6ZSB0aGVtIGlmIHdlJ3JlCgkgIHRyYWNpbmcsIDIpIHdlIHdhbnQgdG8gc2hhcmUgdGhlbSB3aXRoIHRoZSB0cmFjZXJzLgoKMjAxNC0wOS0xNSAxMzoxNToxNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogZ3N0L2dzdHRyYWNlcnV0aWxzLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHJ1c2FnZS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBzaW1wbGlmeSBob29rIGFwaQoJICBJbnN0ZWFkIG9mIGEgc2luZ2xlIGludm9rZSgpIGZ1bmN0aW9uIGFuZCBhICdtYXNrJywgcmVnaXN0ZXIgdG8gaW5kaXZpZHVhbAoJICBob29rcy4gVGhpcyBhdm9pZHMgb25lIGxldmVsIG9mIGluZGlyZWN0aW9uIGFuZCBhbGxvd3MgdXMgdG8gcmVtb3ZlIHRoZQoJICBob29rIGVudW1zLiBUaGUgbWVzc2FnZSBlbm1zIGFyZSBub3cgcmVuYW1lZCB0byBob29rIGVudW1zLgoKMjAxNC0wOS0xMiAxODo0Mzo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGRyb3AgdGhlIEhvb2tJZCBoaWQgZnJvbSB0aGUgaW52b2tlIG1ldGhvZAoJICBUaGUgTWVzc2FnZUlkIGlzIG1vcmUgZGV0YWlsZWQgYW5kIGFueXdheSBuZWVkZWQgdG8gaW50ZXJwcmV0IHRoZSB2YXJhcmdzLgoKMjAxNC0wOS0xMiAxMToxNzo0MSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBzdGF0czogZml4dXAgZG9jIG5hbWUgYW5kIHJlbW92ZSBjb21tZW50ZWQgY29kZQoKMjAxNC0wOS0xMiAwODo0MDowMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IGFkZCBtZXRhZGF0YSBmb3IgdGhlIGxvZ2dlZCB2YWx1ZXMKCjIwMTQtMDktMTEgMTM6MDI6NTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkgIHJ1c2FnZTogaW1wcm92ZSBjcHUgbG9hZCBtZWFzc3VyZW1lbnRzCgkgIEdldCB0aGUgbnVtYmVyIG9mIGNwdXMgYW5kIHNjYWxlIHByb2Nlc3MgY3B1LWxvYWQgYWNjb3JkaW5nbHkuIFN3aXRjaCB0aGUKCSAgY3B1bG9hZCB0byBiZSBwZXItbWlsbGUgdG8gZ2V0IHNtb290aGVyIGdyYXBocy4gQWRkIGEgYml0IG1vcmUgbG9nZ2luZyBhbmQgdXNlCgkgIHRoZSBfT0JKRUNUIHZhcmlhbnQuCgoyMDE0LTA5LTExIDEzOjAwOjU5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICB0cmFjZXI6IHJlbW92ZSBjb21tZW50ZWQgY29kZQoKMjAxNC0wOS0xMCAwODozMzozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSB0cmFjZXIgZGVzaWduCgkgIFVwZGF0ZSB0aGUgdHJhY2VyIGV2ZW50IGNsYXNzZXMgc2VjdGlvbi4gQWRkIGEgcGVyZm9ybWFuY2Ugc2VjdGlvbi4KCjIwMTQtMDktMTAgMDg6MzI6MTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkgIHRyYWNlcjogdXNlIEdTVF9QVFJfRk9STUFUIHRvIGxvZyB0aGUgc3RydWN0dXJlCgkgIFRoaXMgd2F5IHdlIG9ubHkgZXhwYW5kIHRoZSBzdHJ1Y3R1cmUgd2hlbiB3ZSdyZSBsb2dnaW5nLiBUaGlzIGFsbG93cyB1cyB0bwoJICBtZWFzc3VyZSB0aGUgcHVyZSB0cmFjaW5nIHNlcGVyYXRlbHkgZnJvbSB0aGUgbG9nZ2luZy4KCSAgQWxzbyBhZGQgc29tZSBjb21tZW50cyBvbiBmdXJ0aGVyIGltcHJvdmVtZW50cy4KCjIwMTQtMDktMTAgMDc6NTU6MzMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBydXNhZ2U6IGltcGxlbWVudCB3aW5kb3dpbmcgb2YgY3B1bG9hZAoJICBBZGQgYSBsb2NhbCBoZWxwIHRvIHRoZSBydXNhZ2UgcGx1Z2luIHRoYXQgc3VwcG9ydHMgd2luZG93aW5nIG9mIHZhbHVlcy4gV2Ugd2FudAoJICB0byBnZW5lcmFsaXplIHRoaXMgZm9yIHVzZSBpbiBvdGhlciBwbHVnaW5zLgoKMjAxNC0wOS0wNCAxMDoxMTo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHJ1c2FnZTogYW5ub3VuY2UgdGhlIGRhdGEgZm9ybWF0CgkgIFJ1c2FnZSB3aWxsIG5vdyBhbm5vdW5jZSB3aGF0IGlzIG1lYXNzdXJlcyBhbmQgaG93IGl0IGlzIGxvZ2dlZC4gVXNlIHRoZSBuZXcgZm9ybWF0IGluIHN0YXRzLgoJICBDbGVhbnVwIHRoZSB0aGUgY29kZSBhbmQgbmFtaW5nLgoKMjAxNC0wNy0yOCAyMjowODo0OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuYzoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBpbXByb3ZlIGNwdSBsb2FkIG1lYXNzdXJlbWVudHMKCSAgUmVuYW1lIHZhcmlhYmxlcyBmb3IgY2xhcml0eS4gSGFuZGxlIHRoZSBpbml0aWFsIGRpc3Bhcml0eSBiZXR3ZWVuIGRlYnVnIHRpbWUKCSAgYW5kIHRoZSB0aW1lIGFscmVhZHkgc3BlbnQgaW4gdGhlIHByb2MgYW5kIG1haW4gdGhyZWFkLgoKMjAxNC0wNy0xOCAwODowOTozMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSB0cmFjZXIgZGVzaWduCgoyMDE0LTA3LTI4IDA4OjQ5OjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBxdWFya3M6IHJldmVydCB0aGUgcXVhcmsgY2hhbmdlcywgd2Ugbm90IHVzaW5nIHRoZW0gYW55bW9yZQoKMjAxNC0wNy0xOCAwNzo0OTozOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5LmM6CgkqIGdzdC9nc3R0cmFjZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3R0cmFjZXJ1dGlscy5jOgoJKiBnc3QvZ3N0dHJhY2VydXRpbHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmg6CgkgIHRyYWNlcjogc3BsaXQgaW50byB0cmFjZXIgYW5kIHRyYWNlcnV0aWxzCgkgIEtlZXAgdHJhY2VyIGJhc2UgY2xhc3MgaW4gdHJhY2VyIGFuZCBtb3ZlIGNvcmUgc3VwcG9ydCBpbnRvIHRoZSB1dGlscyBtb2R1bGUuCgkgIEFkZCBhIHVuc3RhYmxlLWFwaSBndWFyZCB0byB0aGUgdHJhY2VyLmggc28gdGhhdCBleHRlcm5hbCBtb2R1bGVzIHdvdWxkIG5lZWQgdG8KCSAgYWNrbm93bGVkZ2UgdGhlIHN0YXR1cyBieSBzZXR0aW5nIEdTVF9VU0VfVU5TVEFCTEVfQVBJLgoKMjAxNC0wNy0xNiAxODo0ODo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICBkb2NzOiBhZGQgZ3RrLWRvYyBibG9icwoKMjAxNC0wMi0yMCAxMToxNToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RsYXRlbmN5LmM6CgkgIGxhdGVuY3k6IHRha2Ugc3RvcCB0aW1lIHdoZW4gYnVmZmVyIGlzIGhhbmRsZWQKCSAgTm93IHdlIG1lYXNzdXJlIHRpbWUgZnJvbSAnYmVmb3JlIGJ1ZmZlciB0cmFuc2ZlciBvbiBzcmMnIHRvIHdoZW4gdGhlICdidWZmZXIgaXMgcHJvY2Vzc2VkIG9uIHNpbmsnLgoKMjAxNC0wNy0xNSAwOTo0OToyMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXJzOiBhZGQgYSBsb2dnaW5nIGhlbHBlciB0byByZW1vdmUgaWRlbnRpY2FsIGNvcGllcyBmcm9tIHRoZSB0cmFjZXJzCgoyMDE0LTAyLTE4IDE2OjE1OjQ0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxhdGVuY3kuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkgIHRyYWNlcnM6IHR3ZWFrIHRoZSBnZXRfcmVhbF9wYWRfcGFyZW50KCkKCSAgQnkgdXNpbmcgdGhlIHdlIGVuZGVkIHVwIG9uIHRoZSBhY3R1YWwgZWxlbWVudCwgbm90IHRoZSBwYXJlbnQuCgoyMDE0LTAyLTE4IDExOjA2OjEwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bGF0ZW5jeS5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0dHJhY2Vycy5jOgoJICB0cmFjZXJzOiBhZGQgYSBuZXcgbGF0ZW5jeSB0cmFjZXIKCSAgQWRkIGEgbmV3IHRyYWNlciB3aXRoIHB1c2hlcyBleHRyYSBldmVudHMgdG8gbWVhc3N1cmUgc3JjLXRvLXNpbmsgcHJvY2Vzc2luZyBsYXRlbmN5LgoKMjAxNC0wMi0xNyAxODozMDoyNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBkZXNpZ24gZG9jcwoJICBBZGQgbmV3IHRyYWNlciBpZGVhLgoKMjAxMy0xMS0yMiAxOToxMDowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBnc3Qtc3RhdHM6IHVzZSB0aGUgcnVzYWdlIHN0YXRzCgkgIEFkZCBjcHVsb2FkIGluZm8gZnJvbSBydXNhZ2UgdHJhY2VzLgoKMjAxMy0xMS0yMCAwODoyMjo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0cnVzYWdlLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RydXNhZ2UuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgcnVzYWdlOiBhZGQgYSBuZXcgcnVzYWdlIHRyYWNlcgoJICBUaGUgdHJhY2VyIGhvb2tzIHVwIHRvIGFsbCBwcm9iZXMgYW5kIGxvZ3MgcmVzb3VyY2UgdXNhZ2UgZmlndXJlcy4KCjIwMTQtMDctMTUgMTA6MjA6MjIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgZ3N0LXN0YXRzOiBmaWx0ZXIgY29tcGxldGUgdGhyZWFkIHNlY3Rpb24gaWYgd2UgaGF2ZSBubyBwYWRzCgoyMDEzLTExLTE5IDA4OjA0OjM4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmM6CgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogaW1wcm92ZSB0aGUgaGFuZGxpbmcgb2YgcGFyZW50YWdlCgkgIExvZyBuZXcgb2JqZWN0IGFmdGVyIHdlIGRpZCB0aGUgY2hlY2sgZm9yIHBhcmVudHMuCgoyMDEzLTExLTE3IDExOjM3OjE0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LXN0YXRzLmM6CgkgIHN0YXRzOiBwcmludCB0aHJlYWQga2V5IGZvciBzdGF0cyBhbmQgZmlsdGVyIGVtcHR5IHBhZC1zZWN0aW9ucwoKMjAxMy0xMS0xNyAxMToxNTozNiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1zdGF0cy5jOgoJICBzdGF0czogdXBkYXRlIGJ1ZmZlciBmbGFncwoJICBSZW1vdmUgc29tZSBidWZmZXIgZmxhZ3MgdGhhdCB3ZXJlIGxlZnRvdmVycyBmcm9tIDAuMTAgYW5kIGhhbmRsZSBuZXcgMS4wIGJ1ZmZlcgoJICBmbGFncy4KCjIwMTMtMTEtMDQgMjA6MTE6MDkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHN0YXRzLmg6CgkqIHRvb2xzLy5naXRpZ25vcmU6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3Qtc3RhdHMuYzoKCSAgc3RhdHM6IGFkZCBhIHN0YXRzIGZyb250ZW5kCgkgIFBhcnNlIHRoZSBsb2cgYW5kIGNvbGxlY3QgZGF0YSBmcm9tIHRyYWNlciBtZXNzYWdlcy4KCjIwMTMtMTEtMTUgMDk6MzY6MjEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkgIHRyYWNlcjogdXNlIHRoZSBzYW1lIHRpbWViYXNlIGFzIHRoZSBsb2dnaW5nCgoyMDE0LTA3LTE2IDA5OjIyOjM3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGRlc2lnbgoKMjAxNC0wNy0xNiAwOTo0MTo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgbG9nOiBhZGQgcXVlcnkgbG9nIGNhdGVnb3J5CgoyMDEzLTExLTAyIDE4OjI0OjU2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlci5jOgoJICB0cmFjZXI6IHBhcnNlIHBhcmFtZXRlcnMKCjIwMTQtMDctMTYgMDk6MjI6MTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IGFkZCBtb3JlIGhvb2tzIGFuZCBoYW5kbGUgaXQgaW4gdGhlIHBsdWdpbnMKCjIwMTMtMTAtMzAgMDg6MTk6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgc3RhdHM6IGhhbmRsZSBidWZmZXIgbGlzdHMKCjIwMTMtMTAtMzAgMDg6MDQ6MjcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICBsb2c6IG1ha2UgdGhlIGxvZyB0cmFjZXIgbW9yZSB2ZXJib3NlIGFnYWluCgkgIERlZmluZSBsb2cgZm9ybWF0cyBwZXIgbWVzc2FnZSB0eXBlIGFuZCBwcmludCBkZXRhaWxzLgoKMjAxMy0xMC0yOCAyMTo1OToxOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmM6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJICB0cmFjZXI6IHVzZSBhIG1hY3JvcyBmb3IgdGhlIGVuYWJsZWQgY2hlY2sKCSAgQXZvaWQgYSBmdW5jdGlvbiBjYWxsIGFuZCBjaGVjayB0aGUgdmFyaWFibGVzIGZyb20gdGhlIG1hY3JvLgoKMjAxMy0xMC0yOCAyMTozOTo1MiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJICB0cmFjZXI6IHVzZSBtYWNyb3MgZm9yIGhvb2tzCgkgIFdyYXAgdGhlIGhvb2sgd2l0aCBhIHByZSBhbmQgcG9zdCBtYWNyby4gVGhpcyBsb29rcyBsZXNzIGludHJ1c2l2ZSB0aGFuIHRoZQoJICBwcmV2aW91cyB2ZXJzaW9uLCBhbHRob3VnaCBpdCBpcyBhIGxpdHRsZSBsZXNzIG9wdGltaXplZC4KCjIwMTMtMTAtMjggMjE6Mjg6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuYzoKCSAgdHJhY2VyOiBwYXNzIHRoZSB0aW1lc3RhbXAgZGlyZWN0bHkKCSAgQXZvaWQgdGhlIHN0cnVjdHVyZSBtYXNoYWxsaW5nIChhbmQgd2VpcmQgZmllbGQgbmFtaW5nKS4KCjIwMTMtMTAtMjggMDg6MDg6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3RzdGF0cy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0c3RhdHMuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdHRyYWNlcnMuYzoKCSAgc3RhdHM6IGFkZCBhIHRyYWNlciB0aGF0IGNvbGxlY3RzIHBpcGVsaW5lIHN0YXRpc3RpY3MKCSAgVGhpcyBpcyBtb3JlIG9yIGxlc3MgZXF1aXYgdG8gdGhlIHRoZSBzdGF0aXN0aWNzIGluIGdzdC10cmFjZWxpYi4KCjIwMTMtMTAtMjggMDg6MDc6NTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmg6CgkgIGxvZzogYWRkIGNhc3QgbWFjcm8KCjIwMTMtMTAtMjcgMjA6NDM6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJICB0cmFjZXI6IHBhc3MgdGhlIGluc3RhbmNlIHRvIHRoZSB2bWV0aG9kCgoyMDEzLTEwLTI3IDE3OjA1OjUyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgZGVzaWduOiBtb3JlIHBsYW5uaW5nCgoyMDEzLTEwLTI3IDE3OjA0OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R0cmFjZXIuYzoKCSogZ3N0L2dzdHRyYWNlci5oOgoJICB0cmFjZXI6IHN3aXRjaCB0byBxdWFya3MgYW5kIGFkZCBhbm90aGVyIGhvb2sgZm9yIGJ1ZmZlciBmbG93CgkgIFVzZSBwcmUtZGVmaW5lcyBxdWFya3MgYXMgdGhpcyB3aWxsIGJlIGNhbGxlZCBxdWl0ZSBvZnRlbi4KCjIwMTMtMTAtMjcgMTI6NDU6NTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZ3N0L2dzdHRyYWNlci5jOgoJKiBnc3QvZ3N0dHJhY2VyLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3Rsb2cuYzoKCSAgdHJhY2VyOiBhZGQgdGhlIGhvb2staWQgdG8gdGhlIGludm9rZSBzaWduYXR1cmUKCSAgVHJhY2VycyB0aGF0IHN1YnNjcmliZSB0byBtdWx0aXBsZSBob29rcyBjYW4ga25vdyB3aGF0IGhvb2sgd2FzIHVzZWQuCgoyMDEzLTEwLTI2IDIyOjA1OjEzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgaW5zcGVjdDogYWRkIHN1cHBvcnQgZm9yIHRoZSBuZXcgZmFjdG9yeQoJICBIYW5kbGUgdHJhY2VyIG1vZHVsZXMuCgoyMDEzLTEwLTI0IDE0OjQ3OjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dHJhY2VyLmM6CgkqIGdzdC9nc3R0cmFjZXIuaDoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRyYWNlcmZhY3RvcnkuaDoKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzLy5naXRpZ25vcmU6CgkqIHBsdWdpbnMvdHJhY2Vycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy90cmFjZXJzL2dzdGxvZy5jOgoJKiBwbHVnaW5zL3RyYWNlcnMvZ3N0bG9nLmg6CgkqIHBsdWdpbnMvdHJhY2Vycy9nc3R0cmFjZXJzLmM6CgkgIHRyYWNlcjogaW5pdGlhbCBwcm90b3R5cGUgZm9yIHRoZSB0cmFjaW5nIHN1YnN5c3RlbQoKMjAxNS0xMC0wNSAxMToxMjo0NyArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0ZXN0cy9nc3QtbGF1bmNoOiBGaXggc2FtcGxlIG1lbW9yeSBsZWFrCgkgIFdoZW4gc2FtcGxlIGlzIGdvdCB1c2luZyBnc3RfdGFnX2xpc3RfZ2V0X3NhbXBsZV9pbmRleCwgaXQgc2hvdWxkCgkgIGJlIGZyZWUnZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NjA2OQoKMjAxNS0xMC0wMiAyMjoxNzowNCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBVcGRhdGUgR0xpYiBkZXBlbmRlbmN5IHRvIDIuNDAuMAoKMjAxNS0wOC0yMCAxNjoyMTo1OSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtY29tcGxldGlvbi1oZWxwZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3B0cC9wdHAtcHJpbnQtdGltZXMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgZ3N0cmVhbWVyOiBGaXggbWVtb3J5IGxlYWtzIHdoZW4gY29udGV4dCBwYXJzZSBmYWlscwoJICBXaGVuIGdfb3B0aW9uX2NvbnRleHRfcGFyc2UgZmFpbHMsIGNvbnRleHQgYW5kIGVycm9yIHZhcmlhYmxlcyBhcmUgbm90IGdldHRpbmcgZnJlZSdkCgkgIHdoaWNoIHJlc3VsdHMgaW4gbWVtb3J5IGxlYWtzLiBGcmVlJ2luZyB0aGUgc2FtZS4KCSAgQW5kIHJlcGxhY2luZyBnX2Vycm9yX2ZyZWUgd2l0aCBnX2NsZWFyX2Vycm9yLCB3aGljaCBjaGVja3MgaWYgdGhlIGVycm9yIGJlaW5nIHBhc3NlZAoJICBpcyBub3QgTlVMTCBhbmQgc2V0cyB0aGUgdmFyaWFibGUgdG8gTlVMTCBvbiBmcmVlJ2luZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1Mzg1MQoKMjAxNS0wOS0yMyAyMzowMzoyOSArMDIwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IFVzZSBnX3NlcXVlbmNlX2xvb2t1cCB3aGVyZSBwb3NzaWJsZQoJICBXaGVuIGxvb2tpbmcgZm9yIGV4YWN0IG1hdGNoZXMgaW4gdGhlIHNlcXVlbmNlLCB0aGlzIHJlc3VsdHMKCSAgaW4gbXVjaCBzaW1wbGVyIGNvZGUgdGhhbiB3aGVuIHVzaW5nIGdfc2VxdWVuY2Vfc2VhcmNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1NDk4CgoyMDE1LTEwLTAxIDIyOjA5OjU4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogZml4IHdyaXRlIG92ZXIgdGhlIGFycmF5IHNpemUKCSAgVGhlICcrKycgZ290IGluY2lkZW50aWFsbHkgYWRkZWQgZHVyaW5nIHRoZSByZWZhY3RvcmluZyBpbgoJICAyZmUzOTM5Y2U3ZWE4NGM0NWRkOTIyZTdmMTA5N2RkMDdmMTFmYzVkLgoKMjAxNS0wOS0zMCAxNzoyOToxNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgY29udHJvbHBvaW50OiBjaGFuZ2UgdGhlIHBhZGRpbmcgdG8gYmUgb2YgYXJjaC1pbmRlcGVuZGVudCBzaXplCgkgIFRoZSBkZWZhdWx0IHBhZGRpbmcgSSBpbnRyb2R1Y2VkIGluIGQ0ZjgxZmI0ZTYyZDM0YTRjMWRhYmM2NWIyM2VkZTdjZTc2OTRjNjMgaXMKCSAgYWN0dWFsbHkgb25seSA0IHBvaW50ZXJzIGFuZCBvbiAzMmJpdCBwbGF0Zm9ybXMgYWxyZWFkeSBzbWFsbGVyIHRoYW4gdGhlIHVuaW9uLgoJICBSZXBsYWNlIGl0IHdpdGggYSBmaXhlZCA2NGJ5dGUgcGFkZGluZy4gRG9uJ3QgYWRkIHRoZSBub3JtYWwgcGFkZGluZyBmb3Igbm93LgoJICBGaXhlcyAjNzU1ODIyCgoyMDE1LTA4LTIxIDE3OjQyOjUyICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzYmdAb3NnLnNhbXN1bmcuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdHJlYW1lci11bmluc3RhbGxlZDogYWRkIHBhdGggZm9yIE9wZW5DViBoYWFyIGNhc2NhZGUgZmlsZXMKCSAgU29tZSBPcGVuQ1YgcGx1Z2lucyB1c2UgaGFhciBjYXNjYWRlIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZQoJICBHU3RyZWFtZXIgc291cmNlcy4gVG8gYmUgYWJsZSB0byB1c2UgdGhlc2UgZnJvbSB1bmluc3RhbGxlZCwgdGhleSBuZWVkCgkgIHRvIGJlIGZvdW5kIHRocm91Z2ggYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIEFkZGluZyB0aGlzIGVudmlyb25tZW50IHZhcmlhYmxlIHBvaW50aW5nIHRvIGhhYXIgY2FzY2FkZSBmaWxlcyB0bwoJICBnc3QtdW5pbnN0YWxsZWQuCgoyMDE1LTA5LTI4IDE2OjAxOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGZpeCAnZm9ybWF0IHN0cmluZyBpcyBub3QgYSBzdHJpbmcgbGl0ZXJhbCcgd2FybmluZyB3aXRoIGNsYW5nCgkgIEJyb2tlIHRoaXMgd2hlbiBJIHJlbW92ZWQgdGhlIEdfR05VQ19QUklOVEYgaW4gYSBwcmV2aW91cwoJICBjb21taXQgdG8gZml4IGluZGVudGF0aW9uLCBzaW5jZSBpdCB3YXMgbm90IHJlYWxseSBuZWVkZWQuCgkgIFR1cm5zIG91dCB1bmxpa2UgZ2NjIGNsYW5nIHdhcm5zIHRob3VnaCBpZiBhIG5vbi1saXRlcmFsCgkgIGZvcm1hdCBzdHJpbmcgaXMgcGFzc2VkIHRoZW4uIEZpeCBpbmRlbnRhdGlvbiBkaWZmZXJlbnRseS4KCSAgaHR0cDovL2NsYW5nLmxsdm0ub3JnL2RvY3MvQXR0cmlidXRlUmVmZXJlbmNlLmh0bWwjZm9ybWF0LWdudS1mb3JtYXQKCjIwMTUtMDktMjggMTY6NDU6NDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBmaXggdGhlIG1hbnVhbCB0ZXN0cyBieSBzZXR0aW5nIHRoZSByaWdodCBlbnYtdmFycwoKMjAxNS0wOS0yOCAxNjoyMjozNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSAgZGlyZWN0Y29udHJvbGJpbmRpbmc6IGZpeCBmb3JtYXR0aW5nCgoyMDE1LTA5LTI4IDE2OjIxOjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5oOgoJICBpbmRleDogbWFyayB0d28gc3RydWN0cyB0aGF0IGRvbid0IGhhdmUgYWJpIHBhZGRpbmcKCjIwMTUtMDktMjggMTY6MTk6NDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGNvbnRyb2xsZXI6IGFkZCB0aGUgbWlzc2luZyBhYmkgcGFkZGluZwoJICBXaGlsZSB0aGlzIHRlY2huaWNhbGx5IGlzIGFuIGFiaSBicmVhaywgd2UgZGVjaWRlZCB0byBkbyB0aGlzOgoJICAxKSB0aGUgc3RydWN0IGlzIGRvY3VtZW50ZWQgdG8gYmUgaW50ZXJuYWwKCSAgMikgdGhlIHN0cnVjdCBpcyBhbGxvY2VkIGFuZCBmcmVlZCBpbnNpZGUgdGhlIGxpYnJhcnkKCSAgMykgdGhlcmUgYXJlIG5vIHB1YmxpYyBtZXRob2RzIHRoYXQgcmVjZWl2ZSBvciByZXR1cm4gaW5zdGFuY2VzCgkgIDQpIHRoZSBvbmx5IGNvZGUga25vd24gdG8gdXNlIHRoaXMgc3RydWN0IGFyZSBjbGFzc2VzIGNvbnRhaW5kIGhlcmUKCjIwMTUtMDktMjQgMDA6MDQ6NDggKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJpbjogaW1wbGVtZW50IGNvbnRleHQgcHJvcGFnYXRpb24gd2hlbiBhZGRpbmcgZWxlbWVudHMKCSAgV2hlbiBhZGRpbmcgYW4gZWxlbWVudCB0byBhIGJpbiB3ZSBuZWVkIHRvIHByb3BhZ2F0ZSB0aGUgR3N0Q29udGV4dCdzCgkgIHRvL2Zyb20gdGhlIGVsZW1lbnQuCgkgIFRoaXMgbW92ZXMgdGhlIEdzdENvbnRleHQgbGlzdCBmcm9tIEdzdEJpbiB0byBHc3RFbGVtZW50IGFuZCBhZGRzCgkgIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byBnZXQgdGhlIGN1cnJlbnRseSBzZXQgbGlzdCBvZiBHc3RDb250ZXh0J3MuCgkgIFRoaXMgZG9lcyBub3QgZGVhbCB3aXRoIHRoZSBjb2xsZWN0aW9uIG9mIEdzdENvbnRleHQncyBwcm9wYWdhdGVkCgkgIHVzaW5nIEdTVF9DT05URVhUX1FVRVJZLiAgRWxlbWVudCBzdWJjbGFzc2VzIGFyZSBhZHZpc2VkIHRvIGNhbGwKCSAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQgaWYgdGhleSBuZWVkIHRvIHByb3BhZ2F0ZSBHc3RDb250ZXh0J3MKCSAgcmVjZWl2ZWQgZnJvbSB0aGUgY29udGV4dCBxdWVyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTU3OQoKMjAxNS0wOS0wNyAwOTozOTozMiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBhZGQgY3ViaWNfbW9ubyBpbnRlcnBvbGF0aW9uCgkgIFRoaXMgbmV3IG1vZGUgd29uJ3Qgb3ZlcnNob290IHRoZSBtaW4vbWF4IHkgdmFsdWVzIHNldCBieSB0aGUgY29udHJvbC1wb2ludHMuCgkgIEZpeGVzICM3NTQ2NzgKCSAgQVBJOiBHU1RfSU5URVJQT0xBVElPTl9NT0RFX0NVQklDX01PTk8KCjIwMTUtMDktMDcgMDk6Mzc6MDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiByZWZhY3RvciBjb2RlCgkgIEV4dHJhY3QgY29tbW9uIGNvZGUgdGhhdCBsb29rcyB1cCB0aGUgY29udHJvbC1wb2ludHMgYXJvdW5kIHRoZSB0aW1lc3RhbXAuIEFkZAoJICBzb21lIGNvbW1lbnRzIGZvciBmdXR1cmUgaW52ZXN0aWdhdGlvbi4KCjIwMTUtMDktMDQgMTY6Mzg6MzcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sbGVyLWdyYXBoLmM6CgkgIHRlc3RzL2V4YW1wbGVzOiBhZGQgYSBkZW1vIGZvciB0aGUgaW50ZXJwb2xhdGlvbiBjb250cm9sIHNvdXJjZSBtb2RlcwoJICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciBuZXcgbW9kZXMgdG8gYmUgYWRkZWQuIEluIHBhcnRpY3VsbGFyIGl0IGRlbW9uc3RyYXRlcwoJICBob3cgdGhlIGN1YmljIHNwbGluZXMgb3ZlcnNob290IHRoZSByYW5nZS4KCjIwMTUtMDktMDkgMTE6NTU6MjggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiByZW1vdmUgcHJveHlpbmcgb2YgYWNjZXB0LWNhcHMgZG93bnN0cmVhbQoJICBUaGUgZGVzaWduIGlzIHRvIG9ubHkgZG8gYSBsb2NhbCBjaGVjawoKMjAxNS0wOC0yNSAxOTozNzozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGZhbGxiYWNrIHRvIGNhcHMgcXVlcmllcyB3aXRoIHByb3h5IHBhZHMKCSAgQSBwcm94eS1wYWQgc2hvdWxkIGFsd2F5cyBwcm94eSB0aGUgY2FwcyByZWxhdGVkIHF1ZXJpZXMKCSAgYW5kIGV2ZW50cyB0byBpdHMgZG93biBvciB1cHN0cmVhbSBwZWVycyBvbiB0aGUgb3RoZXIgc2lkZQoJICBvZiB0aGUgZWxlbWVudC4gRmFsbGluZyBiYWNrIHRvIGEgY2FwcyBxdWVyeSBzZWVtcyB3cm9uZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDExMgoKMjAxNS0wOS0yNiAxMTowMzoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogbWlub3IgZG9jIGZpeGVzCgoyMDE1LTA5LTAyIDE3OjU4OjM4ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IFJlcGxhY2VkIGdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uIHdpdGggZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9ydW5uaW5nX3RpbWUKCSAgZ3N0X3NlZ21lbnRfdG9fcG9zaXRpb24gbWlnaHQgY2F1c2UgY29uZnVzaW9uLCBlc3BlY2lhbGx5IHdpdGggdGhlIGFkZGl0aW9uIG9mCgkgIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUgLiBEZXByZWNhdGVkIGdzdF9zZWdtZW50X3RvX3Bvc2l0aW9uCgkgIG5vdywgYW5kIHJlcGxhY2VkIGl0IHdpdGggZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9ydW5uaW5nX3RpbWUuCgkgIEFsc28gYWRkZWQgdW5pdCB0ZXN0cy4KCjIwMTUtMDktMDIgMTc6Mzg6MjUgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQGFoaXJ1LmV1PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogQWRkZWQgdW5pdCB0ZXN0cyBmb3IgZ3N0X3NlZ21lbnRfcG9zaXRpb25fZnJvbV9zdHJlYW1fdGltZQoKMjAxNS0wOS0yNSAxNTo1NzoxNiArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAdG9vbHNvbmFpci5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZTogUmVuYW1lZCAncmVzdWx0JyB0byAnc3RyZWFtX3RpbWUnCgkgIFJlbmFtZWQgdGhlICJyZXN1bHQiIHZhcmlhYmxlIHRvICJzdHJlYW1fdGltZSIgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCjIwMTUtMDktMjUgMTU6NTY6NDUgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IEFkZGVkIGdzdF9zZWdtZW50X3Bvc2l0aW9uX2Zyb21fc3RyZWFtX3RpbWUoKQoJICBnc3Rfc2VnbWVudF9wb3NpdGlvbl9mcm9tX3N0cmVhbV90aW1lKCkgd2lsbCBjb252ZXJ0IHN0cmVhbSB0aW1lIGludG8gYQoJICBwb3NpdGlvbiBpbiB0aGUgc2VnbWVudCBzbyB0aGF0IGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKCkgd2l0aCB0aGF0CgkgIHBvc2l0aW9uIHJldHVybnMgdGhlIHNhbWUgc3RyZWFtIHRpbWUuIEl0IHdpbGwgcmV0dXJuIC0xIGlmIHRoZSBzdHJlYW0gdGltZQoJICBnaXZlbiBpcyBub3QgaW5zaWRlIHRoZSBzZWdtZW50LgoKMjAxNS0wOS0wMiAxNjozNjozNSArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IFJld29yZGluZyBvZiBzdHJ1Y3QgZmllbGQgZGVzY3JpcHRpb25zCgkgIFRoZSBuZXcgd29yZGluZyBtYWtlcyBpdCBlYXNpZXIgdG8gdW5kZXJzdGFuZCBleGFjdGx5IHdoYXQgZWFjaCBmaWVsZCBvZiB0aGUKCSAgR3N0U2VnbWVudCBzdHJ1Y3QgcmVwcmVzZW50cy4KCjIwMTUtMDgtMzEgMTU6MzU6MTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IE1ha2Ugc3VyZSB0aGF0IHRpbWVzdGFtcCArIGRpZmYgaW4gUW9TIGV2ZW50cyBpcyBuZXZlciBzbWFsbGVyIHRoYW4gMAoJICBXaGVuIGEgcnVubmluZy10aW1lLW9mZnNldCBpcyBzdG9yZWQgaW4gdGhlIGV2ZW50LCBpdCBjb3VsZCBiZWNvbWUgc21hbGxlcgoJICB0aGFuIDAgYWx0aG91Z2ggdGhlIGV2ZW50IGlzIG90aGVyd2lzZSBjb3JyZWN0LiBUaGlzIGNhbiBoYXBwZW4gd2hlbiBwYWQKCSAgb2Zmc2V0cyBhcmUgdXNlZC4KCSAgVG8gcHJldmVudCB0aGlzLCB3ZSBzZXQgdGhlIHRpbWVzdGFtcCB0byAtZGlmZiwgc28gdGhhdCBpbiB0aGUgZW5kIHRoZSBzdW0gb2YKCSAgYm90aCBpcyBleGFjdGx5IDAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQzNTYKCjIwMTUtMDktMTYgMjM6NDA6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogQWRkIHRlc3QgZm9yIGNvcnJlY3QgYWJzb2x1dGUgVVJJIGhhbmRsaW5nIGluIGdzdF91cmlfZnJvbV9zdHJpbmdfd2l0aF9iYXNlKCkKCSAgSWYgdGhlIHNlY29uZCBwYXJhbWV0ZXIgaXMgYW4gYWJzb2x1dGUgVVJJLCB0aGUgYmFzZSBzaG91bGQgaGF2ZSBubyBlZmZlY3QgYW5kCgkgIHRoZSBzZWNvbmQgcGFyYW1ldGVyIHNob3VsZCBiZSByZXR1cm5lZCBhZ2Fpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTEzNAoKMjAxNS0wOS0yNSAyMzo1MTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS42LjAgPT09CgoyMDE1LTA5LTI1IDIzOjE0OjMzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNi4wCgoyMDE1LTA5LTI1IDIyOjQxOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wOS0yNSAxMDoxODowNyArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogRml4IGVycm9yIGxlYWsgZHVyaW5nIGZhaWx1cmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTU2MDcKCjIwMTUtMDktMjEgMTM6NTg6NTEgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogRml4IHJhY3kgc3RhdGUgY2hhbmdlCgkgIEl0ZXJhdG9yIG1heSBuZWVkIHRvIGJlIHJlc3luY2VkLCBmb3IgaW5zdGFuY2UgaWYgcGFkcyBhcmUgcmVsZWFzZWQKCSAgZHVyaW5nIHN0YXRlIGNoYW5nZS4KCSAgZ290X2VvcyBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IHRoZSBvYmplY3QgbG9jayBvZiB0aGUgZWxlbWVudCwgbm90IG9mCgkgIHRoZSBwYWQsIGFzIGlzIHRoZSBjYXNlIHRocm91Z2hvdXQgdGhlIHJlc3Qgb2YgdGhlIGZ1bm5lbCBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MzQzCgoyMDE1LTA5LTIxIDE1OjIyOjE5ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgYmluOiBlbGVtZW50OiBJZ25vcmUgYWN0aXZhdGUgcmVzdWx0IGZvciByZW1vdmVkIHBhZHMgb24gc3RhdGUgY2hhbmdlCgkgIFRoaXMgZml4ZXMgYSByYWNlIHdoZXJlIGEgc3RhdGUgY2hhbmdlIG1heSByZXR1cm4gZmFpbHVyZSBpZiBpdCBoYXMKCSAgcmVxdWVzdCBwYWRzIHRoYXQgYXJlIGRlYWN0aXZhdGVkIGFuZCByZW1vdmVkIChhbmQgdGh1cyBoYXZlIG5vCgkgIHBhcmVudCkgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgZWxlbWVudCBjaGFuZ2VzIHN0YXRlIGFuZCAoZGUpYWN0aXZhdGVzCgkgIGl0cyBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MzQyCgoyMDE1LTA5LTI0IDEwOjIzOjE0ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBkb24ndCBjcmFzaCB3aGVuIGFkZGluZyBhIHNpbmstaGFybmVzcyB3aXRob3V0IGgtPnNpbmtwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NTUxMQoKMjAxNS0wOS0yMyAyMDozMTo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQcmludCBidWZmZXIgUFRTIHdoZW4gc3VibWl0dGluZyBhbiBpbnB1dCBidWZmZXIKCjIwMTUtMDktMjEgMTQ6NTg6NDYgKzA5MDAgIEV1bmhhZSBDaG9pIDxldW5oYWUxLmNob2lAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRml4IGJ1ZmZlciBsZWFrIGluIHN5bmNfc3RyZWFtcyAmIGNhY2hlX2J1ZmZlcnMgbW9kZQoJICBBZnRlciBkb2luZyBnc3RfcGFkX3B1c2goKSBpbiBjYXNlIG9mIHN5bmNfc3RyZWFtcyBhbmQgY2FjaGVfYnVmZmVycywKCSAgaWYgdGhlIGJ1ZmZlciBjYW4gbm90IGJlIGtlcHQgaW4gY2FjaGUsIGl0IHNob3VsZCBiZSB1bnJlZmZlZCB0byBhdm9pZAoJICBtZW1vcnkgbGVhY2thZ2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUxNDEKCjIwMTUtMDktMTkgMTY6NTc6MjYgKzA1MzAgIFZpa3JhbSBGdWdybyA8dmlrcmFtLmZ1Z3JvQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZ3N0OiBEb2N1bWVudGF0aW9uIHR5cG8gZml4IGluIGNhcHMgJiBwYWQgQVBJcwoJICBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkgJiBHU1RfUEFEX0lTX0FDQ0VQVF9JTlRFUlNFQ1QoKQoJICBkb2N1bWVudGF0aW9uIHR5cG8gZml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MjU3Cgo9PT0gcmVsZWFzZSAxLjUuOTEgPT09CgoyMDE1LTA5LTE4IDE5OjA3OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNS45MQoKMjAxNS0wOS0xOCAxOTowNzoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTUtMDktMTggMTE6NDk6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby96aF9DTi5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMDktMTUgMTA6NTY6NDAgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGRvd25sb2FkYnVmZmVyLCBiZW5jaG1hcmtzOiBmaXggZXJyb3IgbGVha3MgaW4gZmFpbHVyZSBjb2RlIHBhdGhzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUwMTkKCjIwMTUtMDktMTUgMTA6NTI6NTUgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogRml4IGluZGVudGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTUwMTkKCjIwMTUtMDktMTUgMTg6MDU6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBzcHJpbmtsZSBzb21lIGFsbG93LW5vbmUgYW5kIG91dCBhbm5vdGF0aW9ucyBmb3IgZy1pCgoyMDE1LTA5LTE0IDExOjAxOjExICswOTAwICBWaW5lZXRoIFRNIDx2aW5lZXRoLnRtQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCB0eXBvIGluIGxvZyBtZXNzYWdlIHdoZW4gdGhyZWFkcG9vbCBhbGxvYyBmYWlscwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0OTc1CgoyMDE1LTA5LTExIDE3OjU4OjQ4ICswMzAwICBJZ29yIFJvbmRhcmV2IDxpZ29yLnJvbmRhcmV2QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IENoZWNrIGZvciBzb2NrZXRwYWlyKCkgaW4gLWxzb2NrZXQgdG9vCgkgIE9uIGUuZy4gUU5YIGl0IGlzIGluIGFuIGV4dGVybmFsIGxpYnJhcnksIG5vdCBsaWJjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0ODc1CgoyMDE1LTA5LTA5IDEzOjEwOjA0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJldmVydCAiZG9jczogTWFrZSBzdXJlIGdzdF9kZWJ1Z19iaW5fdG9fZG90X2RhdGEoKSBpcyBkb2N1bWVudGVkIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDBkZmZlYjAzMDE4ZDEyYmU1MjJjMmQ5N2FhYWY4MTAyMTUzYmQ3YzAuCgkgIFRoZSBjb21taXQgaXMgZXJyb25lb3VzIGFuZCBkb2N1bWVudHMgdGhlIGZ1bmN0aW9uIHR3aWNlLgoKMjAxNS0wNy0yMyAxMjoxODo1MSArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBNYWtlIHN1cmUgZ3N0X2RlYnVnX2Jpbl90b19kb3RfZGF0YSgpIGlzIGRvY3VtZW50ZWQKCSAgVGhhbmtzIHRvIE5pcmJoZWVrIENoYXVoYW4gPG5pcmJoZWVrQGNlbnRyaWN1bGFyLmNvbT4gZm9yIHBvaW50aW5nIHRoaXMKCSAgb3V0LgoKMjAxNS0wOC0wNSAxMDowNzo1MCArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGaXggcmFjZSBmb3IgZ3N0X2hhcm5lc3NfZWxlbWVudF9yZWYKCSAgSW4gb3JkZXIgZm9yIGdzdF9oYXJuZXNzX25ld19mdWxsIHRvIGJlIE1ULXNhZmUgdGhlIGluY3JlYXNlIGFuZAoJICBkZWNyZWFzZSBvZiBIQVJORVNTX1JFRiBtdXN0IGJlIE1ULXNhZmUuIFRoaXMgYWxsb3dzIGZvciBjcmVhdGluZwoJICBtdWx0aXBsZSBoYXJuZXNzZXMgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcyB3cmFwcGluZyB0aGUgc2FtZSBlbGVtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU0NjYxCgoyMDE1LTA4LTA1IDA5OjU5OjM5ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogQWxsb3ctbm9uZSBmb3IgY3VzdG9tIHN0cmVzcyBpbml0IGZ1bmMKCSAgSXQgc2hvdWxkIGJlIGFsbG93ZWQgdG8gbm90IGhhdmUgYSBmdW5jdGlvbiB0byBpbml0aWFsaXplIHRoZSB1c2VyIGRhdGEKCSAgc2luY2UgaXQncyBvZnRlbiBub3QgbmVjZXNzYXJ5OyBpdCBtYXkgYWxyZWFkeSBiZSBpbml0aWFsaXplZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDY2MQoKMjAxNS0wOS0wNiAwOTo1ODowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJICBkb2NzOiByZW1vdmUgc2lnbmFsIHRoYXQgbm8gbG9uZ2VyIGV4aXN0cyBmcm9tIGRvY3MKCjIwMTUtMDktMDUgMTE6MjA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciB0cmFuc2xhdGVkIHN0cmluZyBjaGFuZ2VzCgoyMDE1LTA5LTA1IDExOjE4OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogZ3N0LWxhdW5jaDogZml4IC0tZXhjbHVkZSBjb21tYW5kIGxpbmUgb3B0aW9uCgkgIFRoaXMgaGFzIG5vdCB3b3JrZWQgKGFzIGluOiBjcmFzaGVkKSBzaW5jZSAyMDA1LCBzbwoJICBwZXJoYXBzIGl0IHNob3VsZCBqdXN0IGJlIHJlbW92ZWQgaW5zdGVhZC4KCjIwMTUtMDgtMzEgMTI6MDc6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBSZXZlcnQgInF1ZXVlMjogUHJvY2VzcyBTRUVLSU5HIHF1ZXJ5IgoJICBUaGlzIGNhdXNlZCBwcm9ibGVtcyB3aXRoIG9nZ2RlbXV4IHdoZW4gcXVldWUyIHdhcwoJICBvcGVyYXRpbmcgaW4gcXVldWUgbW9kZSBhbmQgdGhlIHNvdXBodHRwc3JjIHVwc3RyZWFtCgkgIGlzIG5vdCBzZWVrYWJsZSBiZWNhdXNlIHRoZSBzZXJ2ZXIgZG9lc24ndCBzdXBwb3J0CgkgIHJhbmdlIHJlcXVlc3RzLiBJdCB3b3VsZCB0aGVuIHN0aWxsIGNsYWltIHNlZWthYmlsaXR5CgkgIGFuZCB0aGVuIHRoaW5ncyBnbyB3cm9uZyBmcm9tIHRoZXJlLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDdiMGI5M2RhZmU0YWM1NDc1NTJjZGI2NmFkZTVkOGFhMDQwNWU3YjQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM4ODcKCjIwMTUtMDgtMjkgMjA6MTQ6NDQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogbWlzYyBidWdmaXhlcwoJICAxLiBHZXQgYSBsaXN0IG9mIHBhZCB0ZW1wbGF0ZXMgZnJvbSB0aGUgZWxlbWVudCBjbGFzcywgbm90IHRoZQoJICBmYWN0b3J5LiBUaGlzIGFsbG93cyB1cyB0byBpbnRlcmFjdCB3aXRoIHRlc3QtZWxlbWVudHMgdGhhdCBkb2VzCgkgIG5vdCBoYXZlIGEgZmFjdG9yeS4KCSAgMi4gVXNlIHRoZSBwYWRfdGVtcGxhdGVfY2FwcyBpbiBjYXBzLXF1ZXJpZXMgd2hlbiBjYXBzIGlzIG5vdCBzZXQKCSAgZXhwbGljaXRseSBvbiB0aGUgcGFkLiBOb3QgZG9pbmcgc28gaXMgc2ltcGx5IHdyb25nLCBhbmQgcHJvaGliaXRzCgkgIGludGVyYWN0aW9ucyB3aXRoIHNwZWNpYWwgdGVtcGxhdGVzIHVzZWQgZm9yIHRlc3RpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQxOTMKCjIwMTUtMDgtMjYgMDk6Mjk6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICB0ZXN0czogZXZlbnQ6IGZpeCBidWlsZCBmYWlsdXJlCgkgIGdzdC9nc3RldmVudC5jOjI1MDo1OiBlcnJvcjog4oCYZm9y4oCZIGxvb3AgaW5pdGlhbCBkZWNsYXJhdGlvbnMgYXJlIG9ubHkKCSAgYWxsb3dlZCBpbiBDOTkgb3IgQzExIG1vZGUKCjIwMTUtMDgtMjQgMjE6MDQ6MzcgKzAzMDAgIFZpdmlhIE5pa29sYWlkb3UgPHZpdmlhQHRvb2xzb25haXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGJpbjogTWFrZSBzdXJlIHdlIGRvbid0IGFkZC9yZW1vdmUgYSBiaW4gdG8vZnJvbSBpdHNlbGYKCSAgRG9pbmcgc28gd291bGQgZGVhZGxvY2sgZnJvbSB0cnlpbmcgdG8gYWNxdWlyZSB0aGUgb2JqZWN0IGxvY2sgdHdpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDAzNgoKMjAxNS0wOC0yMSAxNDoyODo0OCAtMDcwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlY29uZmlndXJlIGJlZm9yZSBwcm9wb3NlX2FsbG9jYXRpb24KCSAgVGhlcmUgZXhpc3QgY2FzZXMgd2hlcmUgYSByZWNvbmZpZ3VyZSBldmVudCB3YXMgcHJvcGFnYXRlZCBmcm9tCgkgIGRvd25zdHJlYW0sIGJ1dCBjYXBzIGRpZG4ndCBjaGFuZ2UuIEluIHRoaXMgY2FzZSwgd2Ugd291bGQKCSAgcmVjb25maWd1cmUgb25seSB3aGVuIHRoZSBuZXh0IGJ1ZmZlciBhcnJpdmVzLiBUaGUgcHJvYmxlbSBpcyB0aGF0CgkgIGR1ZSB0byB0aGUgYWxsb2NhdGlvbiBxdWVyeSBiZWluZyBjYWNoZWQsIHRoZSByZXR1cm4gcXVlcnkgcGFyYW1ldGVycwoJICBlbmR1cCBvdXRkYXRlZC4KCSAgSW4gdGhpcyBwYXRjaCB3ZSByZWZhY3RvciB0aGUgcmVjb25maWd1cmF0aW5nIGNvZGUgaW50byBhIGZ1bmN0aW9uLCBhbmQKCSAgYWxvbmcgd2l0aCByZWNvbmZpZ3VyaW5nIHdoZW4gYSBuZXcgYnVmZmVyIGNvbWVzIGluLCB3ZSBhbHNvIHJlY29uZmlndXJlCgkgIHdoZW4gYSBxdWVyeSBhbGxvY2F0aW9uIGFycml2ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM4NTAKCjIwMTUtMDgtMDcgMTU6Mzk6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBiYXNlc3JjLXRlc3Q6IEZpeCByYWNlIHRlc3Rpbmcgc2VnbWVudCB1cGRhdGUKCSAgQXMgdGhpcyB0ZXN0IGlzIHVzaW5nIGEgc2hvcnQgc2xlZXAgKEdTVF9VU0VDT05ELCB3aGljaCBpcyAxMG1zCgkgIGluIG1pY3Jvc2Vjb25kKSwgc29tZXRpbWVzIHRoYXQgRU9TIGV2ZW50IGlzIHJlY2VpdmVkIGJlZm9yZSB0aGUKCSAgbG9vcCBpbiBiYXNlc3JjIGhhdmUgcnVuIF9kb19zZWVrKCkgYW5kIHB1c2hlZCB0aGUgdXBkYXRlIHNlZ21lbnQuCgkgIFRvIHNvbHZlIHRoaXMgaXNzdWUsIHdlIHdhaXQgZm9yIHRoZSBpbml0aWFsIHNlZ21lbnQgKGFuZCBmbHVzaCBpdCkKCSAgdGhlbiB3ZSB3YWl0IGZvciB0aGUgc2Vjb25kIHNlZ21lbnQgYmVmb3JlIHNlbmRpbmcgRU9TLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMzY1CgoyMDE1LTA4LTE5IDExOjQ2OjA3ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgYmluOiBBZGQgTkxFIHRvIEdTVF9QTFVHSU5fUEFUSAoKPT09IHJlbGVhc2UgMS41LjkwID09PQoKMjAxNS0wOC0xOSAxMjo1MDo1NiArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjUuOTAKCjIwMTUtMDgtMTkgMTI6MzM6NDEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA4LTE5IDExOjE3OjI5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vemhfQ04ucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTA4LTE4IDE1OjQ0OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhdm9pZCB0YWcgbGlzdCBzcGFtIGlmIHVwc3RyZWFtIHByb3ZpZGVzIGJpdHJhdGUgdGFncyBhbHJlYWR5CgkgIEV4cGxpY2l0bHkga2VlcCB0cmFjayBhZ2FpbiB3aGV0aGVyIHVwc3RyZWFtIHRhZ3Mgb3IgcGFyc2VyIHRhZ3MKCSAgYWxyZWFkeSBjb250YWluIGJpdHJhdGUgaW5mb3JtYXRpb24sIGFuZCBvbmx5IGZvcmNlIGEgdGFnIHVwZGF0ZQoJICBmb3IgYSBiaXRyYXRlIGlmIHdlIGFyZSBhY3R1YWxseSBnb2luZyB0byBhZGQgdGhlIGJpdHJhdGUgdG8gdGhlCgkgIHRhZ2xpc3QgbGF0ZXIuIFRoaXMgZml4ZXMgY29uc3RhbnQgcmUtc2VuZGluZyBvZiB0aGUgc2FtZSB0YWdsaXN0LAoJICBiZWNhdXNlIHVwc3RyZWFtIHByb3ZpZGVkIGEgYml0cmF0ZSBhbHJlYWR5IGFuZCB3ZSBkaWRuJ3QgYWRkIGl0LAoJICBzbyB3ZSBkaWRuJ3Qgc2F2ZSB0aGUgJ3Bvc3RlZCcgYml0cmF0ZSwgd2hpY2ggd291bGQgdGhlbiBpbiB0dXJuCgkgIGFnYWluIHRyaWdnZXIgdGhlICdiaXRyYXRlIGhhcyBjaGFuZ2VkIHRvbyBtdWNoLCB1cGRhdGUgdGFncycKCSAgY29kZSBwYXRoLiBGaXhlcyB0YWcgc3BhbSB3aXRoIG00YSBmaWxlcyBmb3IgZXhhbXBsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wOC0xNyAyMjowNjoxMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGJyaW5nIHRoZSBkb3Qgc3R5bGUgYSBiaXQgY2xvc2VyIHRvIHdoYXQgd2UgdXNlIGluIHRoZSBkb2NzCgkgIFVzZSByb3VuZCBjb3JuZXJzIGZvciBiaW5zIGFuZCBlbGVtZW50cy4gUHV0IHNpbmsgcGFkcyBvbiB0aGUgbGVmdCBhbmQgc3JjIHBhZHMKCSAgb24gdGhlIHJpZ2h0IG9mIGVsZW1lbnRzLgoKMjAxNS0wOC0xNSAxODozMDoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHRhZyBoYW5kbGluZwoJICBJbiAwLjEwIHRoZXJlIHdlcmUgbm8gc3RpY2t5IGV2ZW50cywgYW5kIGFsbCB0YWcgZXZlbnRzCgkgIHNlbnQgd291bGQganVzdCBiZSBtZXJnZWQgd2l0aCB0aGUgcHJldmlvdXNseS1yZWNlaXZlZAoJICB0YWdzLiBJbiAxLnggd2UgaGF2ZSBzdGlja3kgZXZlbnRzLCBhbmQgdGhlIHRhZ3MgaW4gdGhlCgkgIHRhZyBldmVudChzKSBzaG91bGQgYXQgYWxsIHRpbWVzIGNhcnJ5IHRoZSBjb21wbGV0ZSB0YWdzLAoJICBzbyB3ZSBjYW4ndCBqdXN0IHB1c2ggc29tZSB0YWdzIGFuZCB0aGVuIGp1c3QgcHVzaCB0YWdzCgkgIHdpdGgganVzdCBiaXRyYXRlcyB0byB1cGRhdGUgdGhlIGJpdHJhdGVzLCBldGMuCgkgIEluc3RlYWQgd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSB1cHN0cmVhbSBzdHJlYW0gdGFncwoJICByZWNlaXZlZCwgb2YgdGhlIHRhZ3Mgc2V0IGJ5IHRoZSB2aWRlbyBkZWNvZGVyIHN1YmNsYXNzLAoJICBhbmQgc2VuZCBhbiB1cGRhdGVkIHRhZyBldmVudCB3aXRoIHRoZSBjb21iaW5lZCB0YWdzCgkgIGluY2x1ZGluZyBvdXIgb3duIGJpdHJhdGUgdGFncyAoaWYgYXBwbGljYWJsZSkgd2hlbmV2ZXIKCSAgdGhlIHVwc3RyZWFtIHRhZ3MsIHRoZSBzdWJjbGFzcyB0YWdzIG9yIGFueSBvZiBvdXIgYml0cmF0ZXMKCSAgY2hhbmdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NzY4CgoyMDE1LTA4LTE2IDEwOjE1OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlcGFyc2U6IGFkZCBBUEkgZm9yIHN1YmNsYXNzIHRvIHNldCB0YWdzCgkgIFRoaXMgaXMgbmVlZGVkIHNvIHRoYXQgd2UgY2FuIGRvIHByb3BlciB0YWcgaGFuZGxpbmcKCSAgYWxsIGFyb3VuZCwgYW5kIGNvbWJpbmUgdGhlIHVwc3RyZWFtIHRhZ3Mgd2l0aCB0aGUKCSAgdGFncyBzZXQgYnkgdGhlIHN1YmNsYXNzIGFuZCBhbnkgZXh0cmEgdGFncyB0aGUKCSAgYmFzZSBjbGFzcyBtYXkgd2FudCB0byBhZGQuCgkgIEFQSTogZ3N0X2Jhc2VfcGFyc2VfbWVyZ2VfdGFncygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDgtMTUgMTY6MDE6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNhdmUgdXBzdHJlYW0gc3RyZWFtIHRhZ3MKCSAgV2UnbGwgbmVlZCB0aG9zZSBsYXRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTc2OAoKMjAxNS0wOC0xNSAxNjozOTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgY29kZSBzaW1wbGlmaWNhdGlvbgoJICBVc2UgZ3N0X3BhZF9wZWVyX3F1ZXJ5X2R1cmF0aW9uKCkgYW5kIHJlbW92ZSBhIGZldwoJICB1bm5lY2Vzc2FyeSBsZXZlbHMgb2YgaW5kZW50YXRpb24uIFJlc3Qgb2YgY29kZSBtaWdodAoJICBsb29rcyBhIGJpdCBxdWVzdGlvbmFibGUsIGJ1dCBsZWF2ZSBpdCBhcyBpcyBmb3Igbm93LgoKMjAxNS0wOC0xNSAxNzo1OToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBCcmVhayBzdGlja3kgZXZlbnQgYXJyYXkgaXRlcmF0aW9ucyBpZiB0aGUgdHlwZSBpcyBiaWdnZXIgdGhhbiB0aGUgb25lIHdlIGxvb2sgZm9yCgkgIE1pY3Jvb3B0aW1pemF0aW9uIHdlIGNhbiBkbyBiZWNhdXNlIHRoZSBhcnJheSBpcyBzb3J0ZWQgYnkgdHlwZS4KCjIwMTUtMDQtMjkgMTU6NDk6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEFkZCBhIG5ldyBHU1RfUFJPQkVfSEFORExFRCByZXR1cm4gdmFsdWUgZm9yIHByb2JlcwoJICBJbiBzb21lIGNhc2VzLCBwcm9iZXMgbWlnaHQgd2FudCB0byBoYW5kbGUgdGhlIGJ1ZmZlci9ldmVudC9xdWVyeQoJICB0aGVtc2VsdmVzIGFuZCBzdG9wIHRoZSBkYXRhIGZyb20gdHJhdmVsbGluZyBmdXJ0aGVyIGRvd25zdHJlYW0uCgkgIFdoaWxlIHRoaXMgd2FzIHNvbWV3aGF0IHBvc3NpYmxlIHdpdGggYnVmZmVyL2V2ZW50cyBhbmQgdXNpbmcKCSAgR1NUX1BST0JFX0RST1AsIGl0IHdhcyBub3QgYXBwbGljYWJsZSB0byBxdWVyaWVzLCBhbmQgd291bGQgcmVzdWx0CgkgIGluIHRoZSBxdWVyeSBmYWlsaW5nLgoJICBXaXRoIHRoaXMgbmV3IEdTVF9QUk9CRV9IQU5ETEVEIHZhbHVlLCB0aGUgYnVmZmVyL2V2ZW50L3F1ZXJ5IHdpbGwKCSAgYmUgY29uc2lkZXJlZCBhcyBzdWNjZXNzZnVsbHkgaGFuZGxlZCwgd2lsbCBub3QgYmUgcHVzaGVkIGZ1cnRoZXIKCSAgYW5kIHRoZSBhcHByb3ByaWF0ZSByZXR1cm4gdmFsdWUgKFRSVUUgb3IgR1NUX0ZMT1dfT0spIHdpbGwgYmUgcmV0dXJuZWQKCSAgVGhpcyBhbHNvIGFsbG93cyBwcm9iZXMgdG8gcmV0dXJuIGEgbm9uLWRlZmF1bHQgR3N0Rmxvd1JldHVybiB3aGVuIGRlYWxpbmcKCSAgd2l0aCBidWZmZXIgcHVzaC4gVGhpcyBjYW4gYmUgZG9uZSBieSBzZXR0aW5nIHRoZQoJICBHU1RfUEFEX1BST0JFX0lORk9fRkxPV19SRVRVUk4oKSBmaWVsZCBhY2NvcmRpbmdseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NjQzCgoyMDE1LTA4LTE1IDEzOjI1OjM1ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBnc3R2ZXJzaW9uOiBBZGQgbWlzc2luZyBpbmNsdWRlIGluIC5pbiBmaWxlLgoKMjAxNS0wOC0xMSAwMDozNToyMSArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZ3N0L2dsaWItY29tcGF0Lmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmg6CgkqIGdzdC9nc3RlbGVtZW50bWV0YWRhdGEuaDoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIEhlYWRlcnM6IGFkZCBtaXNzaW5nIGluY2x1ZGVzLgoKMjAxNS0wOC0xNSAwNjo0MToxNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIHRoZSBuZXcgcGFkIGFjY2VwdC10ZW1wbGF0ZSBmbGFnIHRvIHRoZSBkb2NzCgoyMDE1LTA4LTE0IDIyOjQ0OjUwICswNTMwICBOaXJiaGVlayBDaGF1aGFuIDxuaXJiaGVla0BjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBzZWN0aW9uIGVudHJ5IG1pc3NpbmcgZm9yIGdzdF9kaXJlY3RfY29udHJvbF9iaW5kaW5nX25ld19hYnNvbHV0ZQoKMjAxNS0wOC0xNCAwODoxNDo1MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGFkOiB0ZXN0cyBmb3IgYWNjZXB0LWNhcHMgZGVmYXVsdCBoYW5kbGluZwoJICBDaGVjayBpZiBhbGwgdGhlIGRlZmF1bHQgNCBhY2NlcHQtY2FwcyBwb3NzaWJpbGl0aWVzIGFyZSB3b3JraW5nOgoJICBzdWJzZXQgb3IgaW50ZXJzZWN0IGNoZWNrIGFuZCBxdWVyeS1jYXBzIG9yIHRlbXBsYXRlIGNhcHMgY29tcGFyaXNvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTM2MjMKCjIwMTUtMDgtMTQgMDc6NTE6MDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBHU1RfUEFEX0ZMQUdfQUNDRVBUX1RFTVBMQVRFCgkgIEl0IHdpbGwgbWFrZSB0aGUgZGVmYXVsdCBhY2NlcHQtY2FwcyBoYW5kbGVyIHVzZSB0aGUgcGFkIHRlbXBsYXRlCgkgIGNhcHMgaW5zdGVhZCBvZiB0aGUgcXVlcnktY2FwcyByZXN1bHQgdG8gY2hlY2sgaWYgdGhlIGNhcHMgaXMKCSAgYWNjZXB0YWJsZS4gVGhpcyBpcyBhbGlnbmVkIHdpdGggd2hhdCB0aGUgZGVzaWduIGRvY3Mgc2F5cyB0aGUKCSAgYWNjZXB0LWNhcHMgc2hvdWxkIGRvIChiZSBub24tcmVjdXJzaXZlKSBhbmQgc2hvdWxkIGJlIGZhc3Rlci4gSXQKCSAgaXMgKm5vdCogZW5hYmxlZCBieSBkZWZhdWx0LCB0aG91Z2guCgkgIEFQSTogR1NUX1BBRF9GTEFHX0FDQ0VQVF9URU1QTEFURQoJICBBUEk6IEdTVF9QQURfSVNfQUNDRVBUX1RFTVBMQVRFCgkgIEFQSTogR1NUX1BBRF9TRVRfQUNDRVBUX1RFTVBMQVRFCgkgIEFQSTogR1NUX1BBRF9VTlNFVF9BQ0NFUFRfVEVNUExBVEUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzYyMwoKMjAxNS0wOC0xNCAxMToxMDowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIGNoZWNrOiBSZW5hbWUgc3RhdGVzIHVuaXQgdGVzdAoJICBNYWtlcyBpdCBlYXNpZXIgdG8gZGlmZmVyZW50aWF0ZSBmcm9tIG90aGVyIG1vZHVsZXMgc3RhdGVzIHVuaXQgdGVzdAoKMjAxNS0wOC0xMyAxMzowODowMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJld29yayBhY2NlcHQtY2FwcwoJICBBY2NvcmRpbmcgdG8gdGhlIGRlc2lnbiBkb2NzOgoJICBUaGUgQUNDRVBUX0NBUFMgcXVlcnkgaXMgbm90IHJlcXVpcmVkIHRvIHdvcmsgcmVjdXJzaXZlbHksIGl0IGNhbiBzaW1wbHkKCSAgcmV0dXJuIFRSVUUgaWYgYSBzdWJzZXF1ZW50IENBUFMgZXZlbnQgd2l0aCB0aG9zZSBjYXBzIHdvdWxkIHJldHVybgoJICBzdWNjZXNzLgoJICBTbyBtYWtlIGl0IGEgc2hhbGxvdyBjaGVjayBpbnN0ZWFkIG9mIHJlY3Vyc2l2ZWxseSBjaGVjayBkb3duc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NjM1CgoyMDE1LTA4LTEzIDEyOjQ0OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHNvbWUgZGVhZCBjb2RlCgkgIERvZXNuJ3Qgc2VlbSBsaWtlIGl0IGlzIGdvaW5nIHRvIGdldCBiYWNrIHRvIGxpZmUgYW55dGltZSBzb29uCgkgIEFsc28gcmVtb3ZlcyBhIHt9IGJsb2NrIHRoYXQgd2FzIGxpa2VseSB1c2VkIHRvIGtlZXAgdGhlIGRlYWQKCSAgY29kZSBhcm91bmQuCgoyMDE1LTA4LTExIDA4OjA3OjUzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVzcGVjdCBhY2NlcHQtY2FwcyBpbnRlcnNlY3QgZmxhZwoJICBHc3RQYWQgaGFzIGEgZmxhZyBmb3Igc3VnZ2VzdGluZyBpZiB0aGUgYWNjZXB0LWNhcHMKCSAgcXVlcnkgc2hvdWxkIHVzZSBpbnRlcnNlY3QgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdAoJICBzdWJzZXQgY2FwcyBvcGVyYXRpb24gdG8gdmVyaWZ5IGlmIHRoZSBjYXBzIHdvdWxkIGJlCgkgIGFjY2VwdGFibGUuCgkgIGJhc2V0cmFuc2Zvcm0gY3VycmVudGx5IGFsd2F5cyB1c2VzIHRoZSBzdWJzZXQgY2hlY2sgYW5kCgkgIHRoaXMgcGF0Y2ggbWFrZXMgaXQgaG9ub3IgdGhlIGZsYWcgZm9yIHVzaW5nIGludGVyc2VjdAoJICBpZiBpdCBpcyBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg2MzUKCjIwMTUtMDgtMTIgMTM6MTI6MzggKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHVucmVhY2hhYmxlIHJldHVybiBzdGF0ZW1lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzUzOAoKMjAxNS0wOC0xMSAxMTowOToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGlnbm9yZSBuZXcgaGFybmVzcyB0ZXN0IGJpbmFyeQoKMjAxNS0wOC0xMCAxNTozMTozNyArMDMwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBhY2NlcHQganVzdCBhIHRpbWUgYXMgSVNPIDg2MDEgc3RyaW5nIGFuZCB1c2UgdG9kYXkncyBkYXRlIHRoZW4KCSAgSWYgbm8gZGF0ZSBhbmQgb25seSBhIHRpbWUgaXMgZ2l2ZW4gaW4gZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV9pc284NjAxX3N0cmluZygpLAoJICBhc3N1bWUgdGhhdCBpdCBpcyAidG9kYXkiIGFuZCB0cnkgdG8gcGFyc2UgdGhlIHRpbWUtb25seSBzdHJpbmcuICJUb2RheSIgaXMKCSAgYXNzdW1lZCB0byBiZSBpbiB0aGUgdGltZXpvbmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIgKGlmIGFueSksIG90aGVyd2lzZSBaIC0KCSAganVzdCBsaWtlIHRoZSBiZWhhdmlvciBvZiB0aGUgZXhpc3RpbmcgY29kZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzQ1NQoKMjAxNS0wNy0yNCAwMDo0MTo1NyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGFkZCBfc2V0X2ZvcndhcmRpbmcgZnVuY3Rpb24KCSAgVG8gYmUgYWJsZSB0byBkaXNhYmxlIHRoZSBzbGlnaHRseSAibWFnaWMiIGZvcndhcmRpbmcgb2YgdGhlCgkgIG5lY2Vzc2FyeSBldmVudHMgYmV0d2VlbiB0aGUgaGFybmVzc2VzLgoJICBBbHNvIGludHJvZHVjZSBhIG5ldyB0ZXN0LXN1aXRlIGZvciBHc3RIYXJuZXNzLCB0aGF0IGRvY3VtZW50cyB0aGUKCSAgZmVhdHVyZSwgYW5kIHNob3VsZCBob3BlZnVsbHkgZXhwYW5kIGludG8gZG9jdW1lbnRpbmcgbW9zdCBvZiB0aGUKCSAgZmVhdHVyZXMgdGhlIGhhcm5lc3MgcG9zc2Vzc2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNzQ2CgoyMDE1LTA4LTA4IDE3OjU5OjUxICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IGZpeCBwcm92aWRlciBsZWFrCgoyMDE1LTA4LTA4IDE1OjI4OjE5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBwcmV2aW91cyBjb21taXQKCSAgV2Ugd2FudCB0byBnZXQgdGhlIGNhcHMgcXVlcnkgKnJlc3VsdCoKCjIwMTUtMDctMTYgMTg6NTY6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlcHJvdmlkZXI6IEFkZCBtZXRob2QgdG8gaGlkZSBkZXZpY2VzIGZyb20gYSBwcm92aWRlcgoJICBBZGQgbWV0aG9kcyB0byBhZGQvcmVtb3ZlIHRoZSBwcm92aWRlcnMgdGhhdCBzaG91bGQgYmUgaGlkZGVuIGJ5IHRoaXMKCSAgcHJvdmlkZXIuIEFsc28gbWFrZSBhIG1ldGhvZCB0byBnZXQgYSBsaXN0IG9mIGhpZGRlbiBwcm92aWRlcnMuCgkgIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gaGF2ZSBtdWx0aXBsZSBzeXN0ZW1zIG1vbml0b3IgdGhlIHNhbWUgZGV2aWNlcwoJICBhbmQgcmVtb3ZlIGR1cGxpY2F0ZXMuCgkgIEFkZCBhIHByb3BlcnR5IHRvIHNlZSBhbGwgZGV2aWNlcywgZXZlbiBkdXBsaWNhdGUgb25lcyBmcm9tIGhpZGRlbgoJICBwcm92aWRlcnMuCgoyMDE1LTA4LTA4IDE0OjQyOjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGdldF9hbGxvd2VkX2NhcHMoKSBzaG91bGQgZ28gdGhyb3VnaCBib3RoIHBhZHMKCSAgVGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIHdhcyBkb2luZyBhIGRpcmVjdCBjYWxsIHRvIHRoZSBwZWVyIHBhZCwKCSAgd2hpY2ggcmVzdWx0ZWQgaW4gcXVlcnkgcHJvYmVzIG5ldmVyIGJlaW5nIGNhbGxlZCBvbiB0aGUgb3JpZ2luYWwgcGFkLgoJICBJbnN0ZWFkIG9mIHRoYXQsIGdldCB0aGUgcGVlciBwYWQgY2FwcyBieSB1c2luZyBnc3RfcGFkX3BlZXJfcXVlcnkoKQoJICB3aGljaCB3aWxsIGNhbGwgcHJvYmVzIGluIHRoZSBleHBlY3RlZCBmYXNoaW9uLgoKMjAxNS0wOC0wNyAxMDowODoyMSArMDkwMCAgVmluZWV0aCBUTSA8dmluZWV0aC50bUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZnJlZSBjYXBzIGR1cmluZyBmYWlsdXJlCgkgIFdoaWxlIGNhbGxpbmcgZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX3NhbXBsZSwgaWYgdGhlcmUgaXMgYSBmYWlsdXJlCgkgIGFmdGVyIGNhcHMgaXMgcmVmJ2VkLCB0aGVuIGNhcHMgaXMgZ2V0dGluZyBsZWFrZWQuIEhlbmNlIGNoZWNraW5nIGZvcgoJICBjYXBzIGluIGZhaWw6IGdvdG8gY29uZGl0aW9uIGFuZCB1bnJlZidpbmcgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzMzOAoKMjAxNS0wNy0yMSAxMzozNTozMyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBBZGQgcGx1Z2lucyB0byB0aGUgcmVnaXN0cnkgd2UgYXJlIGxvYWRpbmcgYW5kIG5vdCBkZWZhdWx0IG9uZQoJICBXaGVuIHJ1bm5pbmcgZ3N0X3JlZ2lzdHJ5X3NjYW5fcGx1Z2luX2ZpbGUgd2Ugd2VyZSBsb3NpbmcgdGhlCgkgIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZWdpc3RyeSBiZWluZyBsb2FkZWQgYW5kIGVuZGVkIHVwIGFkZGluZyB0aGUKCSAgcGx1Z2luIHRvIHRoZSBkZWZhdWx0IHJlZ2lzdHJ5IHdoaWNoIHdhcyBub3QgY29ycmVjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjY2MgoKMjAxNS0wOC0wNSAxNTo1MToyNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogT25seSBkcm9wIGJ1ZmZlciBpZiB0aGVpciBQVFMgaXMgb3V0IG9mIHNlZ21lbnQKCSAgQXMgb2Ygbm93LCBldmVuIGZvciBzdHJlYW0gY29tcGxldGx5IGluc2lkZSBzZWdtZW50LCB0aGVyZSBpcyBubwoJICBndWFyYW50aWVkIHRoYXQgdGhlIERUUyB3aWxsIGJlIGluc2lkZSB0aGUgc2VnbWVudC4gU3BlY2lmaWNhbGx5CgkgIGZvciBILjI2NCB3aXRoIEItRnJhbWVzLCB0aGUgZmlyc3QgZmV3IGZyYW1lcyBvZnRlbiBoYXZlIERUUyB0aGF0CgkgIGFyZSBiZWZvcmUgdGhlIHNlZ21lbnQuCgkgIEluc3RlYWQgb2YgdXNpbmcgdGhlIHN5bmMgdGltZXN0YW1wIHRvIGNsaXAgb3V0IG9mIHNlZ21lbnQgYnVmZmVyLAoJICB0YWtlIHRoZSBkdXJhdGlvbiBmcm9tIHRoZSBzdGFydC9zdG9wIHByb3ZpZGVkIGJ5IHRoZSBzdWItY2xhc3MsIGFuZAoJICBjaGVjayBpZiB0aGUgcHRzIGFuZCBwdHNfZW5kIGlzIG91dCBvZiBzZWdtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyNzkxCgoyMDE1LTA4LTA1IDE0OjA1OjI1ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBkb24ndCBydW4gY29kZSBpbnNpZGUgZ19hc3NlcnQKCSAgRXZlbiB0aG91Z2ggYXNzZXJ0cyBjYW4ndCBiZSBkaXNhYmxlZCBpbiBHc3RIYXJuZXNzLCBDb3Zlcml0eSBzdGlsbAoJICBjb21wbGFpbnMgYWJvdXQgcnVubmluZyBjb2RlIGluc2lkZSB0aGVtLiBNb3ZpbmcgdGhlIGNvZGUgdG8gb3V0c2lkZSB0aGUKCSAgZ19hc3NlcnRzKCkuCgkgIENJRCAjMTMxMTMyNiwgIzEzMTEzMjcsICMxMzExMzI4CgoyMDE1LTA3LTE3IDEwOjE4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2Vtb25pdG9yOiBnZXQgYSBsaXN0IG9mIGN1cnJlbnRseSBtb25pdG9yZWQgcHJvdmlkZXJzCgkgIEdldCBhIGxpc3Qgb2YgdGhlIGN1cnJlbnRseSBtb25pdG9yZWQgcHJvdmlkZXJzLgoKMjAxNS0wOC0wMiAxNzozODoxNCArMDIwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggaW52YWxpZCB1bnJlZiBhZnRlciBJRExFIHByb2JlIG9uIG5vbi1PSyBmbG93IHJldHVybgoJICBJbiBjYXNlIHRoZXJlIGlzIGFuIElETEUgcHJvYmUgZmlyZWQgZnJvbSBnc3RfcGFkX3B1c2hfZGF0YSBhbmQgaXQKCSAgZG9lc24ndCByZXR1cm4gR1NUX0ZMT1dfT0ssIHRoZSBjb2RlIGp1bXBzIHRvIHRoZSBwcm9iZV9zdG9wcGVkCgkgIGxhYmVsIHdoaWNoIHRyaWVzIHRvIHVucmVmIHRoZSBkYXRhIG9iamVjdC4gSG93ZXZlciwgYXQgdGhpcyBwb2ludAoJICB0aGUgZGF0YSBvYmplY3QgYmVsb25ncyBkb3duc3RyZWFtIGFuZCBtdXN0IG5vdCBiZSB0b3VjaGVkLgoJICBCeSBzZXR0aW5nIGRhdGEgPSBOVUxMLCB0aGUgY29kZSBza2lwcyB0aGlzIHVucmVmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc1MzE1MQoKMjAxNS0wOC0wNCAyMDowODowNCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IHRoZSBuYW1lIG9mIHRoZSBwYXJlbnRidWZmZXJtZXRhIGRlYnVnIGNhdGVnb3J5LgoJICBEb24ndCB1c2UgJ2dsYnVmZmVycmVmbWV0YScgYXMgdGhlIGRlYnVnIGNhdGVnb3J5IGZvciB0aGUKCSAgcGFyZW50IGJ1ZmZlciBtZXRhLgoKMjAxNS0wOC0wNCAxMzo0NTowOSArMDkwMCAgRXVuaGFlIENob2kgPGV1bmhhZTEuY2hvaUBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogbm90IHVwZGF0ZSB1cHN0cmVhbSBzaXplIHdpdGggbmVnYXRpdmUgdmFsdWUKCSAgdXBzdHJlYW1fc2l6ZSBjYW4gYmUgbmVnYXRpdmUgYnV0IHF1ZXVlLT51cHN0cmVhbV9zaXplIGlzIHVuc2lnbmVkIHR5cGUuCgkgIHRvIGdldCBhIGNoYW5jZSB0byB1cGRhdGUgcXVldWUtPnVwc3RyZWFtX3NpemUgaW4gZ3N0X3F1ZXVlMl9nZXRfcmFuZ2UoKQoJICBpdCBzaG91bGQga2VlcCB0aGUgZGVmYXVsdCB2YWx1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzAxMQoKMjAxNS0wOC0wNCAxOTo1OToyOCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IFJlbW92ZSBleHRyYSBkZWJ1ZyBzeW1ib2wgZnJvbSBleHBvcnRzCgkgIERvbid0IGV4cG9ydCB0aGUgZGVidWcgdmFyaWFibGUgZm9yIHRoZSBwYXJlbnRfYnVmZmVyX21ldGEuCgkgIFRoaXMgd2FzIGFjY2lkZW50YWxseSBleHBvcnRlZCBhbmQgc2hvdWxkbid0IGJlIHB1YmxpYwoKMjAxNS0wOC0wNCAwMDoxMToyNCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IHVzZSBHU1RfSU5GT19PQkpFQ1QgZm9yIG1vcmUgZGV0YWlsCgkgIEhlbHBzIHRvIGRpc3RpZ3Vpc2ggbXVsdGlwbGUgZmlsZXNpbmtzLgoKMjAxNS0wNy0zMCAxNzoyOToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRvY3M6IGluZm86IHJlbW92ZSAwLjggdGVybWlub2xvZ3kgZnJvbSBsb2cgbGV2ZWwgZGVzY3JpcHRpb24KCSAgV2UgZG9uJ3QgIml0ZXJhdGUiIGJpbnMgb3IgcGlwZWxpbmVzIGFueSBtb3JlLgoKMjAxNS0wNy0zMCAxMjoxNzoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBiYXNlcGFyc2U6IGZpeCBidWZmZXIgbGVhayBpbiB1bml0IHRlc3QKCSAgRml4ZXMgbWFrZSBjaGVjay12YWxncmluZAoKMjAxNS0wNy0yOCAyMToxNDoyMiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBkb2Mvc2Vla2ZsYWdzOiBGaXggY3Jvc3MgcmVmZXJlbmNlcwoJICBUaGlzIGZpeGVzIG1pc3MtdXNlIG9mIEAgaW5zdGVhZCBvZiAlIHRvIHJlZmVyIHRvIGVudW1lcmF0aW9uCgkgIHZhbHVlcy4KCjIwMTUtMDctMjggMjI6MzA6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgYSBmZXcgbW9yZSBuZXcgc3ltYm9scyBhbmQgZGVmaW5lcwoKMjAxNS0wNy0yOCAxNjo1Nzo0MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgZG9jL2NhcHNmaWx0ZXI6IERvY3VtZW50IGZpbHRlcmluZyBtb2RlcwoJICBUaGlzIGlzIGRvY3VtZW50YXRpb24gZm9yIHRoZSBIVE1MIGRvY3VtZW50YXRpb24uCgoyMDE1LTA3LTI4IDE2OjUwOjU1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBkb2MvZmlsZXNpbms6IEFkZCBCdWZmZXJNb2RlIGVudW1lcmF0aW9uCgkgIFRoaXMgaXMgcHVyZWx5IGZvciBkb2N1bWVudGF0aW9uIHB1cnBvc2UuIFRoaXMgd2F5IHRoZSB2YWx1ZXMgd2lsbAoJICBzaG93IHVwIGluIHRoZSBIVE1MIGRvY3VtZW50YXRpb24uCgoyMDE1LTA3LTI4IDE1OjUwOjQwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgZG9jL2dzdGhhcmRuZXNzOiBGaXggdHlwbyBpbiBHc3RBbGxvY2F0aW9uUGFyYW1zCgkgIEl0J3Mgbm90IEdzdEFsbG9jYXRvclBhcmFtcyBidXQgR3N0QWxsb2NhdGlvblBhcmFtcy4KCjIwMTUtMDctMjggMTU6NDY6MDkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBkb2MvZ3N0aGFybmVzczogUmVtb3ZlIHVua25vd24gcGFyYW1ldGVyCgkgIHNpbmtfZWxlbm1lbnRfbmFtZSBpcyBub3QgYSBwYXJhbWV0ZXIgb2YgZ3N0X2hhcm5lc3NfYWRkX3NpbmtfaGFybmVzcygpCgkgIGZ1bmN0aW9uLCBidXQgc3RpbGwgaXQgc2hvdyB1cCBpbiBkb2N1bWVudGF0aW9uLgoKMjAxNS0wNy0yOCAxMjoxOTowNCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgY2Fwc2ZpbHRlcjogT25seSByZW1lbWJlciBwcmV2aW91cyBmaWx0ZXIgY2FwcyBpZiB0aGV5IHdlcmUgYWN0dWFsbHkgdXNlZCBmb3Igc29tZXRoaW5nCgkgIElmIG5vYm9keSBldmVyIHNhdyB0aGUgcHJldmlvdXMgZmlsdGVyIGNhcHMsIG5vdGhpbmcgY291bGQndmUgbmVnb3RpYXRlZCB3aXRoCgkgIHRoZW0gYW5kIHdlIGNhbiBqdXN0IHByZXRlbmQgdGhleSBuZXZlciBleGlzdGVkIGF0IGFsbC4KCjIwMTUtMDctMjggMTI6MTY6MTIgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogV2hlbiBzd2l0Y2hpbmcgY2FwcyBjaGFuZ2UgbW9kZXMsIGZvcmdldCBhbGwgcHJldmlvdXMgY2FwcwoKMjAxNS0wNy0yMyAxODoxNTowNSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZXR1cm4gRkxPV19GTFVTSElORyBpZiBuZWdvdGlhdGlvbiBmYWlscyBkdXJpbmcgc2h1dGRvd24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjgwMAoKMjAxNS0wNy0yMiAxODo1NToyOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogRml4IGluZGVuZGF0aW9uCgoyMDE1LTA3LTIxIDEzOjE0OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQXZvaWQgaW5jcmVhc2luZyBxdWVyeSByZWZlcmVuY2UKCSAgZ3N0X3F1ZXJ5X2ZpbmRfYWxsb2NhdGlvbl9tZXRhKCkgcmVxdWlyZXMgdGhlIHF1ZXJ5IHRvIGJlCgkgIHdyaXRhYmxlIHRvIHdvcmsuIFRoaXMgcGF0Y2ggZW5zdXJlIGF2b2lkcyB0YWtpbmcgYSByZWZlcmVuY2UKCSAgb24gdGhlIHF1ZXJ5LCBzbyB3ZSBjYW4gbm93IGNoZWNrIGlmIGEgY2VydGFpbiBhbGxvY2F0aW9uIG1ldGEKCSAgaXMgcHJlc2VudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjY2MQoKMjAxNS0wNy0yMiAxNTozODowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZG9jczogZml4IGRlc2NyaXB0aW9uIG9mIGdzdF9idWZmZXJfZXh0cmFjdF9kdXAoKQoJICBObyBHQnl0ZXMgaW52b2x2ZWQuCgoyMDE1LTA3LTIxIDAwOjE3OjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IGRvdCBub3QgcmVzZXQgcGFkIHN0YXRlcyB0b28gZWFybHkKCSAgUmVzZXR0aW5nIHRoZSBmbHVzaGluZyBzdGF0ZSBvZiB0aGUgcGFkcyBhdCB0aGUgZW5kIG9mIHRoZQoJICBQQVVTRURfVE9fUkVBRFkgdHJhbnNpdGlvbiB3aWxsIG1ha2UgcGFkcyBoYW5kbGUgc2VyaWFsaXplZAoJICBxdWVyaWVzIGFnYWluIHdoaWNoIHdpbGwgd2FpdCBmb3Igbm9uLWFjdGl2ZSBwYWRzIGFuZCBtaWdodAoJICBjYXVzZSBkZWFkbG9ja3Mgd2hlbiBzdG9wcGluZyB0aGUgcGlwZWxpbmUuCgkgIE1vdmUgdGhlIHJlc2V0IHRvIHRoZSBSRUFEWV9UT19QQVVTRUQgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjYyMwoKMjAxNS0wNy0yMCAxNjoxODowNiArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBoYXJuZXNzOiBhZGQgZnVuY3Rpb25zIGZvciBhZGRpbmcgc3ViLWhhcm5lc3NlcyBkaXJlY3RseQoJICBCeSBpbnRyb2R1Y2luZyBnc3RfaGFybmVzc19hZGRfc3JjX2hhcm5lc3MgYW5kIGdzdF9oYXJuZXNzX2FkZF9zaW5rX2hhcm5lc3MKCSAgd2UgY29sbGVjdCBhbGwgc3ViLWhhcm5lc3Mgc2V0dXAgaW4gb25lIGZ1bmN0aW9uLCBtYWtpbmcgdGhlIHByZXZpb3VzCgkgIHN1Yi1oYXJuZXNzIGNyZWF0aW9uIGZ1bmN0aW9ucyBub3cgY2FsbHMgdGhlc2UgZGlyZWN0bHksIGFuZCBtYWtpbmcgaXQKCSAgbXVjaCBlYXNpZXIgKGFuZCBsZXNzIGVycm9yLXByb25lKSB0byBhZGQgeW91ciBvd24gc3JjIG9yIHNpbmstaGFybmVzcwoJICB1c2luZyB0aGUgbW9yZSBnZW5lcmljIGhhcm5lc3MtY3JlYXRpb24gZnVuY3Rpb25zLgoKMjAxNS0wNy0xNyAxNzo0NDo1MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBvdmVycmlkZSBnc3Rfc2VnbWVudF9kb19zZWVrKCkKCSAgVGhpcyBsaW5lIGhhcyBubyBwdXJwb3NlLCBjbGVhcmx5IGdzdF9zZWdtZW50X2RvX3NlZWsoKSBpcyBkb2luZwoJICB0aGUgcmlnaHQgam9iLCBhbHNvLCBoYXZpbmcgdGhlIHN0YXJ0IHRpbWUgKGEgdGltZXN0YW1wKSBiZSB0aGF0CgkgIHNhbWUgYXMgdGltZSAodGhlIHN0cmVhbSB0aW1lKSBpcyBxdWl0ZSBvZGQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODMKCjIwMTUtMDctMTcgMTc6NDM6MjYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGV4dHJhcG9sYXRpb24gb2Ygc2Vla3NlZ21lbnQuc3RvcAoJICBUaGUgc3RvcCBzaGFsbCBiZSByZWxhdGl2ZSB0byBzdGFydCBpZiBleHRyYXBvbGF0ZWQgZnJvbSB0aGUKCSAgZHVyYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3ODMKCjIwMTUtMDctMTYgMTg6NDc6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogZG8gc3RhcnQgYW5kIHN0b3Agb3V0c2lkZSBvZiB0aGUgbG9jawoJICBSZWxlYXNlIHRoZSBtb25pdG9yIGxvY2sgd2hlbiBjYWxsaW5nIHRoZSBwcm92aWRlciBzdGFydC9zdG9wIG1ldGhvZHMuCgkgIEJlY2F1c2Ugd2UgcmVsZWFzZSB0aGUgbG9jayBub3csIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHdlIGNoZWNrIHRoZQoJICBjb29raWUgYWdhaW4gYW5kIGtlZXAgdHJhY2sgb2Ygc3RhcnRlZCBhbmQgcmVtb3ZlZCBwcm92aWRlcnMuCgoyMDE1LTA3LTE2IDE4OjQzOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSAgZGV2aWNlcHJvdmlkZXI6IHNtYWxsIGNsZWFudXBzCgkgIFByb3RlY3QgYWdhaW5zdCB3cm9uZyBhcmd1bWVudHMuCgkgIENsZWFuIHVwIHRoZSBoZWFkZXIgZmlsZSBpbmRlbnRhdGlvbi4KCjIwMTUtMDctMTYgMTc6MjU6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjoga2VlcCBvcmRlciBvZiBwcm92aWRlcnMgYW5kIGRldmljZXMKCSAgVGhlIGRldmljZXByb3ZpZGVycyBhcmUgYWRkZWQgdG8gdGhlIGFycmF5IHNvcnRlZCBieSB0aGVpciByYW5rLiBNYWtlCgkgIHN1cmUgd2Uga2VlcCB0aGlzIG9yZGVyaW5nIHdoZW4gcmVtb3ZpbmcgYSBwcm92aWRlci4KCSAgV2UgdXNlIF9wcmVwZW5kIHRvIGNvbGxlY3QgdGhlIGRldmljZXMsIHVzZSBnX2xpc3RfcmV2ZXJzZSB0byBnZXQgdGhlCgkgIGRldmljZXMgaW4gdGhlIHJpZ2h0IG9yZGVyOyBzb3J0ZWQgYnkgcmFuayBhbmQgaW4gdGhlIHNhbWUgb3JkZXIgYXMKCSAgcmV0dXJuZWQgYnkgdGhlIHByb3ZpZGVyLgoKMjAxNS0wNy0xNiAxNzo1MDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZml4IGluZGVudGF0aW9uCgoyMDE1LTA3LTE2IDE3OjUwOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBmaXggcGFkIHRlbXBsYXRlIGxlYWsKCjIwMTUtMDctMTYgMTc6MTM6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIGRvY3M6IGRyb3AgcmVmZXJlbmNlIHRvIHNvdXJjZWZvcmdlIG1haWxpbmcgbGlzdCBhZHJlc3MKCjIwMTUtMDctMTYgMTc6NTM6NDAgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSAgaGFybmVzczogZG9uJ3QgcmUtZXN0YWJsaXNoIHRoZSBoYXJuZXNzIHNpbmsgYW5kIHNyYyBwYWRzCgkgIEdpdmVuIHRoYXQgdGhlIGVsZW1lbnQgaGFzIHRoZSBwb3NzaWJpbGl0eSB0byBoYXZlIG9uZSwgdGhleSBzaG91bGQKCSAgYWxyZWFkeSBiZSB0aGVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjQ5OAoKMjAxNS0wNy0xMyAxMTowMzoxMyArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbkBwZXhpcC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogSW1wcm92ZSBkZXRlY3Rpb24gb2YgZWxlbWVudCB0eXBlCgkgIFRoZSBlbGVtZW50IGZsYWcgZG9lcyBub3QgaW5kaWNhdGUgd2V0aGVyIGEgYmluIHNob3VsZCBiZSB0ZXN0ZWQgYXMgYQoJICBzb3VyY2Ugb3IgYXMgYSBzaW5rLCBlZy4gYSBiaW4gd2l0aCB0aGUgc2luayBmbGFnIG1heSBzdGlsbCBoYXZlIGEKCSAgc291cmNlIHBhZCBhbmQgYSBiaW4gd2l0aCB0aGUgc291cmNlIGZsYWcgbWF5IGhhdmUgYSBzaW5rIHBhZC4gSW4gdGhpcwoJICBjYXNlIGl0IGlzIGJldHRlciB0byBkZXRlcm1pbmUgdGhlIGVsZW1lbnQgdHlwZSBieSBsb29raW5nIGF0IHRoZQoJICBhdmFpbGFibGUgcGFkcyBhbmQgcGFkIHRlbXBsYXRlcy4KCSAgQWxzbyByZW5hbWUgc3JjcGFkIGFuZCBzaW5rcGFkIHdoZXJlIGl0IGFjdHVhbGx5IHJlcHJlc2VudHMKCSAgZWxlbWVudF9zcmNwYWRfbmFtZSBhbmQgZWxlbWVudF9zaW5rcGFkX25hbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTI0OTMKCjIwMTUtMDctMTMgMTE6MTA6NDkgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJICBoYXJuZXNzOiBGb3J3YXJkIHN0aWNreSBldmVudHMgdG8gc2luayBoYXJuZXNzCgkgIEZpeGVzIGlzc3VlIHdoZXJlIGlmIGEgc2luayBoYXJuZXNzIHdhcyBhZGRlZCBsYXRlIHRoZSBzdGlja3kgZXZlbnRzCgkgIHdvdWxkIG5vdCBiZSBmb3J3YXJlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjQ5NAoKMjAxNS0wNy0xNiAxMjozNjoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogbWFrZSBoZWFkZXIgbmljZXIgdG8gcmVhZAoKMjAxNS0wNy0xNiAxMDozNjozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgZnVuY3Rpb24gdG8gQVBJIGRvY3MKCjIwMTUtMDctMTUgMTg6MjE6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZXZpY2U6IGFkZCBnZW5lcmljIHN0cnVjdCB3aXRoIHByb3BlcnRpZXMKCSAgQWRkIGEgZ2VuZXJpYyBzdHJ1Y3R1cmUgdG8gaG9sZCBhbnkgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGFib3V0IHRoZQoJICBkZXZpY2UuCgoyMDE1LTA3LTE0IDEyOjQ0OjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBmaXggdHlwbyBpbiBhbGxvdy1ub3QtbGlua2VkIHByb3BlcnR5IGRlc2NyaXB0aW9uCgoyMDE1LTA3LTEzIDE0OjI0OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBkb2NzOiBidXM6IG1lbnRpb24gbWFpbiBsb29wIHJlcXVpcmVtZW50IGluIGdzdF9idXNfYWRkX3dhdGNoKCkgZG9jcwoKMjAxNS0wMy0xOCAxNjowNTozNCArMDUzMCAgUHJhc2hhbnQgR290YXJuZSA8cHMuZ290YXJuZUBzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGFkZCBmdW5jdGlvbiBndWFyZCBmb3IgX3NldF9sb2NrKCkgYW5kIGZpeCBndWFyZCBmb3IgX2pvaW4oKQoJICBTaG91bGQgb25seSBhY2Nlc3MgdGhlIG9iamVjdCBzdHJ1Y3R1cmUgYWZ0ZXIgY2hlY2tpbmcKCSAgaXQncyB2YWxpZCBpbiBnc3RfdGFza19qb2luKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYzODUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQzMQoKMjAxNS0wNS0xOSAxODo1ODoxMSArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkgIHByb3RlY3Rpb246IGltcGxlbWVudCBtZXRhIHRyYW5zZm9ybSBmdW5jdGlvbgoJICBDb3B5IHRoZSBHc3RNZXRhIGNvbnRlbnRzIG92ZXIgdG8gdGhlIG5ldyBidWZmZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDk1OTAKCjIwMTUtMDctMTAgMDk6MTI6MTUgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVzdGltYXRlIGR1cmF0aW9uIG9uIEVPUwoJICBGb3IgZmlsZXMgd2hpY2ggYXJlIHNtYWxsZXIgdGhhbiAxLjUgc2Vjb25kcywgdGhlIGR1cmF0aW9uCgkgIGVzdGltYXRpb24gZG9lcyBub3QgaGFwcGVuLiBTbyB0aGUgZHVyYXRpb24gd2lsbCBhbHdheXMgYmUKCSAgZGlzcGxheWVkIGFzIDAuIFVwZGF0aW5nIHRoZSBkdXJhdGlvbiBvbiBFT1Mgd2hlbiB0aGUgZXN0aW1hdGlvbgoJICBoYXMgbm90IGhhcHBlbmVkIGFscmVhZHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDEzMQoKMjAxNS0wNy0xMCAxMTowMToyMSArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogY2hhbmdlIGxvZyBtZXNzYWdlIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIxMTYKCjIwMTUtMDctMDkgMDA6MTI6NTEgKzA5MDAgIEp1c3RpbiBKb3kgPGp1c3Rpbi5qb3kuOXRvNUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4Lmg6CgkgIGRvY3M6IGFkZCBTdHJlYW1pZERlbXV4IHRvIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTg3MwoKMjAxNS0wNy0wOSAwMDoyMTo0MiArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IHRvIGdldCB2YWxpZCAoYnVmZmVyXylsaXN0CgkgIGdldF9saXN0L2dldF9idWZmZXJfbGlzdCBzaG91bGQgYmUgZG9uZSB3aXRoIGJ1ZmZlcnMgaW4gYWRhcHRlciByZW1haW5pbmcKCSAgd2hpbGUgdGFrZV9saXN0L3Rha2VfYnVmZmVyX2xpc3QgZmx1c2hlcyBlYWNoIGJ1ZmZlciBvbmUgYnkgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUyMTE2CgoyMDE1LTA3LTA4IDIwOjA2OjI3ICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiB1bml0IHRlc3QgZm9yIG5ldyBnZXRfKGJ1ZmZlcl8pbGlzdAoKMjAxNS0wNy0wOCAxMjowMDo1NiArMDIwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHB1dCBidWZmZXIgaW4gYSBjb3JyZWN0IHN0YXRlIGFmdGVyIGdzdF9hZGFwdGVyX2dldF9idWZmZXIgY2FsbAoJICBXZSBtdXN0IG1ha2UgdGhlIGJ1ZmZlciB3cml0YWJsZSB0byB3cml0ZSBpdHMgUFRTIGFuZCBEVFMsIGFuZCBhbHNvCgkgIHJlc2V0IGl0cyBkdXJhdGlvbi4KCSAgVGhlIGJlaGF2aW91ciBpcyBub3cgdGhlIHNhbWUgYXMgYmVmb3JlIGNvbW1pdCBjM2JjYmFkZCwgZXhjZXB0IG1ldGFzCgkgIG1pZ2h0IHN0aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBidWZmZXIgZXh0cmFjdGVkIGZyb20gdGhlIGFkYXB0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTIwOTIKCjIwMTUtMDctMDcgMTU6MDI6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IGZpeCBpbmRlbnRhdGlvbiBhbmQgcmVwbGFjZSBzdHJlc3MgdGVzdCBmdW5jdGlvbiBtYWNyb3MKCSAgVGhlc2Ugc2NyZXcgd2l0aCBpbmRlbnRhdGlvbiBhbmQgc2VlbSBhIGJpdCB0cml2aWFsLiBKdXN0IGNvcHknbidwYXN0ZS4KCjIwMTUtMDctMDcgMTA6NDY6NDggKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNvbnRyb2xtZXNzYWdlbWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiB0cmFuc2Zvcm1fZnVuYzogcmV0dXJuIEZBTFNFIGlmIG5vdCBzdXBwb3J0ZWQgb3IgZmFpbGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE3NzgKCjIwMTUtMDctMDcgMTE6NTM6MDcgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHJlZmFjdG9yIGFuZCBhZGQgdGVzdHMgdXNpbmcgR3N0SGFybmVzcwoJICBXcml0aW5nIGEgdGVzdCBmb3IgdW5zY2hlZHVsaW5nIHRoZSBnc3RfY2xvY2tfaWRfd2FpdCBpbnNpZGUgdGhlCgkgIGlkZW50aXR5IGVsZW1lbnQsIGZvdW5kIGFuIGludmFsaWQgcmVhZCwgY2F1c2VkIGJ5IHJlbW92aW5nIHRoZSBjbG9jay1pZAoJICB3aGVuIGNhbGxpbmcgX3Vuc2NoZWR1bGUgaW5zdGVhZCBvZiBsZXR0aW5nIHRoZSBjb2RlIGNhbGxpbmcgX3dhaXQgcmVtb3ZlCgkgIHRoZSBjbG9jay1pZCBhZnRlciBiZWluZyB1bnNjaGVkdWxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MjA1NQoKMjAxNC0wNC0xMiAxOTo0ODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkgIGhhcm5lc3M6IG1ha2Ugc3VyZSBnX2Fzc2VydCgpIHN0YXRlbWVudHMgYXJlIGFsd2F5cyBhY3RpdmUKCSAgV2UgaGF2ZSBjb2RlIHdpdGggc2lkZSBlZmZlY3RzIGluc2lkZSBnX2Fzc2VydCgpcywgc28gbWFrZQoJICBzdXJlIHRob3NlIGFyZSBhbHdheXMgZW5hYmxlZCBoZXJlICh0aGV5IG1pZ2h0IG90aGVyd2lzZQoJICBnZXQgZGlzYWJsZWQgZm9yIHJlbGVhc2UgYnVpbGRzKS4KCjIwMTUtMDctMDcgMDA6NTY6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuaDoKCSAgaGFybmVzczogcmVuYW1lIEdzdEhhcm5lc3NQcmVwYXJlQnVmZmVyIC0+IEdzdEhhcm5lc3NQcmVwYXJlQnVmZmVyRnVuYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxOTE2CgoyMDE1LTA3LTA3IDAwOjUzOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svY2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RoYXJuZXNzLmg6CgkgIGRvY3M6IGFkZCBHc3RIYXJuZXNzIHRvIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTkxNgoKMjAxMy0xMi0xNiAxMDo0Nzo0NyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGhhcm5lc3MuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0aGFybmVzcy5oOgoJICBjaGVjazogQWRkIEdzdEhhcm5lc3MgY29udmVuaWVuY2UgQVBJIGZvciB1bml0IHRlc3RzCgkgIGh0dHA6Ly9nc3Rjb25mLnViaWNhc3QudHYvdmlkZW9zL2dzdGhhcm5lc3MtYWdhaW4tYS1mb2xsb3ctdXAvCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE5MTYKCjIwMTUtMDctMDYgMDk6MjY6NTggKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJldmVyc2UgcGxheWJhY2sgaW4gcHVsbCBtb2RlCgkgIHJpZ2h0IG5vdyByZXZlcnNlIHBsYXliYWNrIGlzIGRpc2FibGVkIGluIHB1bGwgbW9kZS4KCSAgZW5hYmxpbmcgdGhlIGNvZGUgZm9yIHRoZSBzYW1lIGFuZCBjaGFuZ2luZyBhIGJpdCBvZiBsb2dpYwoJICB0byBtYWtlIHJldmVyc2UgcGxheWJhY2sgd29yay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MwoKMjAxNS0wNi0yMCAwODozMzoyNiArMDkwMCAgVmluZWV0aCBUIE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkZCByZXZlcnNlIHBsYXliYWNrIHRlc3QgaW4gcHVsbCBtb2RlCgkgIGFkZCB0ZXN0IGZvciByZXZlcnNlIHBsYXliYWNrIGluIHB1bGwgbW9kZSBhbmQgY29tcGFyZQoJICB0aGUgYnVmZmVycyBiZWluZyByZWNlaXZlZCBpbiBzaW5rIGNoYWluIHRvIG1ha2Ugc3VyZQoJICB0aGUgcGxheWJhY2sgaXMgYWxscmlnaHQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc4MwoKMjAxNS0wNy0wNiAxNDozMToyNCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8Z2l0QGFydW5yYWdoYXZhbi5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIFJldmVydCAic2NyaXB0czogQWxsb3cgcGFzc2luZyBtYWtlIGZsYWdzIHRvIGdpdC11cGRhdGUuc2giCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWI1ZmRkNzIxMjllYTYxZThkZmY1MWNkYzBhZmNjY2FjMDNlYmMyYi4KCSAgV2UgY2FuIHVzZSB0aGUgTUFLRUZMQUdTIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHBhc3Mgb3B0aW9ucyB0byBtYWtlLAoJICBzbyBhdm9pZCBhZGRpbmcgYW5vdGhlciBtZWNoYW5pc20gdGhhdCBjb3VsZCBiZSBjb25mdXNpbmcuCgoyMDE1LTA3LTA2IDExOjE2OjI3ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBDbGFyaWZ5IHBhZCBwcm9iZSByZXR1cm4gdHlwZSBkb2N1bWVudGF0aW9uCgoyMDE1LTA3LTAyIDE0OjMyOjIxICswODAwICBTb25nIEJpbmcgPGIwNjQ5OEBmcmVlc2NhbGUuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogU2hvdWxkbid0IGRyb3AgYnVmZmVyIHdoZW4gc3luYz1mYWxzZQoJICBTaG91bGRuJ3QgZHJvcCBidWZmZXIgd2hlbiBzeW5jPWZhbHNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE4MTkKCjIwMTUtMDctMDYgMTE6MjU6NTAgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGdpdEBhcnVucmFnaGF2YW4ubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBBbGxvdyBwYXNzaW5nIG1ha2UgZmxhZ3MgdG8gZ2l0LXVwZGF0ZS5zaAoJICBNb3N0bHkgYWRkaW5nIHRoaXMgZm9yIGFkZCBhIC1qTiBhcyBhcHByb3ByaWF0ZSB3aGlsZSBidWlsZGluZy4KCjIwMTUtMDUtMzAgMTQ6Mjc6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBhdm9pZCBzbGljZSBhbGxvY3MvZnJlZXMgZm9yIGVhY2ggaXRlbQoJICBNaWNyb29wdGltaXNhdGlvbjogTGV0IEdzdFF1ZXVlQXJyYXkgc3RvcmUgb3VyCgkgIGl0ZW0gc3RydWN0LiBUaGF0IHdheSB3ZSBkb24ndCBoYXZlIHRvIGFsbG9jL2ZyZWUKCSAgdGVtcG9yYXJ5IFF1ZXVlSXRlbSBzbGljZXMgZm9yIGV2ZXJ5IGl0ZW0gd2Ugd2FudAoJICB0byBwdXQgaW50byB0aGUgcXVldWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNDkKCjIwMTUtMDUtMzAgMTM6MDc6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgcXVldWVhcnJheTogYWxsb3cgc3RvcmluZyBvZiBzdHJ1Y3RzIGluIGFkZGl0aW9uIHRvIHBvaW50ZXJzCgkgIFRoaXMgd2F5IHdlIGRvbid0IGhhdmUgdG8gYWxsb2NhdGUvZnJlZSB0ZW1wb3Jhcnkgc3RydWN0cwoJICBmb3Igc3RvcmluZyB0aGluZ3MgaW4gdGhlIHF1ZXVlIGFycmF5LgoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9uZXdfZm9yX3N0cnVjdCgpCgkgIEFQSTogZ3N0X3F1ZXVlX2FycmF5X3B1c2hfdGFpbF9zdHJ1Y3QoKQoJICBBUEk6IGdzdF9xdWV1ZV9hcnJheV9wZWVrX2hlYWRfc3RydWN0KCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfcG9wX2hlYWRfc3RydWN0KCkKCSAgQVBJOiBnc3RfcXVldWVfYXJyYXlfZHJvcF9zdHJ1Y3QoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMTQ5CgoyMDE1LTA3LTAzIDIxOjU3OjU1ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmNzRiMmRmIHRvIDlhZWQxZDcKCjIwMTUtMDYtMTkgMDA6MDU6NDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgcGFkOiBFbmZvcmNlIE5FRURfUEFSRU5UIGZsYWcgYWxzbyBmb3IgY2hhaW4KCSAgVGhlIGNoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIHBhcmVudCBpbiB0aGUgcHJlc2VuY2Ugb2YKCSAgdGhlIE5FRURfUEFSRU5UIGZsYWcgd2FzIG1pc3NpbmcgZm9yIHRoZSBjaGFpbiBmdW5jdGlvbi4gQWxzbyBrZWVwCgkgIGEgcmVmIG9uIHRoZSBwYXJlbnQgaW4gY2FzZSB0aGUgcGFkIGlzIHJlbW92ZWQgbWlkLWNoYWluLgoKMjAxNS0wNy0wMyAxNTo1NTowOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogdXBkYXRlIGZvciB0d28gbWlzc2luZyBlbGVtZW50cwoJICBDb25jYXQgd2FzIG5vdCBsaW5rZWQgYW5kIHN0cmVhbWlkZGVtdXggd2FzIG1pc3NpbmcuCgoyMDE1LTA3LTAzIDEyOjM3OjU0ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZG9jczogYW5vdGhlciBzd2VlcCBjYW5vbmljYWxpemluZyB0aGUgcGx1Z2luIGRvY3Mgc2VjdGlvbnMgZmlsZQoJICBVc2UgdW5kZXJzY29yZXMgZm9yIGNhcHNmaWx0ZXIgbWFjcm9zLiBDb3JyZWN0IHRoZSB0eXBlLW5hbWUgZm9yIGZha2VzcmMKCSAgaWYgd2UgZXZlciBpbXBsZW1lbnQgdGhlIGVudW0uCgoyMDE1LTA3LTAzIDExOjQ1OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgZG9jczogb3JkZXIgYW5kIGNhbm9uaWNhbGl6ZSB0aGUgLXNlY3Rpb25zLnR4dCBmaWxlCgkgIEhhdmUgYWxsIHNlY3Rpb25zIGluIGFscGhhYmV0aWNhbCBvcmRlci4gQWxzbyBtYWtlIHRoZSBtYWNybyBvcmRlciBjb25zaXN0ZW50LgoJICBUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIGdlbmVyYXRpbmcgdGhlIGZpbGUuIFJlbW92ZSBHRVRfQ0xBU1MgbWFjcm8gZm9yCgkgIHR5cGVmaW5lIGVsZW1lbnQsIHNpbmNlIGl0IGlzIG5vdCB1c2VkIGFuZCB0aGUgaGVhZGVyIGlzIG5vdCBpbnN0YWxsZWQuCgoyMDEzLTEyLTE2IDExOjI0OjE3ICswMTAwICBTdGlhbiBTZWxuZXMgPHN0aWFuQHBleGlwLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBBZGQgbWlzc2luZyBmaWVsZCBpbml0aWFsaXplcnMgdG8gR3N0TWFwSW5mbwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxODgxCgoyMDE1LTA3LTAyIDE1OjEwOjQzICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHJlbW92ZSBhbHdheXMtdHJ1ZSBjaGVjawoJICBldmVudCBjYW4ndCBiZSBOVUxMLCBpdCBoYXMgYmVlbiBkZXJlZmVyZW5jZWQgYnkgR1NUX0VWRU5UX1RZUEUgKCksIGFuZCBubwoJICBjYXNlIGZyZWVzIHRoZSBwb2ludGVyLiBSZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2sgd2hpY2ggd2lsbCBhbHdheXMgYmUgVHJ1ZS4KCSAgQ0lEICMxMzA4OTU1CgoyMDE1LTA3LTAxIDEwOjUwOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogQWxzbyBjb3B5IFBPT0wgbWV0YXMgYW5kIG1ha2Ugc3VyZSB0byBjb3B5IG92ZXIgbWV0YXMgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzCgkgIFBPT0wgbWV0YSBqdXN0IG1lYW5zIHRoYXQgdGhpcyBzcGVjaWZpYyBpbnN0YW5jZSBvZiB0aGUgbWV0YSBpcyByZWxhdGVkIHRvIGEKCSAgcG9vbCwgYSBjb3B5IHNob3VsZCBiZSBtYWRlIHdoZW4gcmVhc29uYWJsZSBhbmQgdGhlIGZsYWcgc2hvdWxkIGp1c3Qgbm90IGJlCgkgIHNldCBpbiB0aGUgY29weS4KCjIwMTUtMDctMDEgMTA6NDU6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogQWxzbyBjb3B5IFBPT0wgbWV0YXMgYW5kIG1ha2Ugc3VyZSB0byBjb3B5IG92ZXIgbWV0YXMgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzCgkgIFBPT0wgbWV0YSBqdXN0IG1lYW5zIHRoYXQgdGhpcyBzcGVjaWZpYyBpbnN0YW5jZSBvZiB0aGUgbWV0YSBpcyByZWxhdGVkIHRvIGEKCSAgcG9vbCwgYSBjb3B5IHNob3VsZCBiZSBtYWRlIHdoZW4gcmVhc29uYWJsZSBhbmQgdGhlIGZsYWcgc2hvdWxkIGp1c3Qgbm90IGJlCgkgIHNldCBpbiB0aGUgY29weS4KCjIwMTUtMDctMDEgMTA6MzY6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRG9uJ3QgY29weSAibWVtb3J5IiBtZXRhcyB1bmNvbmRpdGlvbmFsbHkKCSAgRG9uJ3QgY29weSBtZW1vcnkgbWV0YXMgaWYgd2Ugb25seSBjb3BpZWQgcGFydCBvZiB0aGUgYnVmZmVyLCBkaWRuJ3QKCSAgY29weSBtZW1vcmllcyBvciBtZXJnZWQgbWVtb3JpZXMuIEluIGFsbCB0aGVzZSBjYXNlcyB0aGUgbWVtb3J5CgkgIHN0cnVjdHVyZSBoYXMgY2hhbmdlZCBhbmQgdGhlIG1lbW9yeSBtZXRhIGJlY29tZXMgbWVhbmluZ2xlc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE3MTIKCjIwMTUtMDctMDEgMTA6MjU6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIFJldmVydCAiYnVmZmVyOiBEb24ndCBjb3B5IFBPT0xFRCBhbmQgbWVtb3J5IG1ldGFkYXRhIHVuY29uZGl0aW9uYWxseSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3YTA4ZmE1ZWM0ODA0ZjEwNGU5YWE5ZjQ1ODMyMmY2ZWI0OWE3ZTQ5LgoKMjAxNS0wNi0zMCAxMzozODoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBEb24ndCBjb3B5IFBPT0xFRCBhbmQgbWVtb3J5IG1ldGFkYXRhIHVuY29uZGl0aW9uYWxseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNzEyCgoyMDE1LTA2LTMwIDExOjE4OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBVc2UgbmV3IGdzdF9hZGFwdGVyX2dldF9idWZmZXIoKSBBUEkgaW5zdGVhZCBvZiBnc3RfYWRhcHRlcl9tYXAoKQoJICBUaGlzIHByZXNlcnZlcyBHc3RNZXRhIHByb3Blcmx5IHVubGVzcyB0aGUgc3ViY2xhc3MgZG9lcyBzcGVjaWFsIHRoaW5ncy4gSXQncwoJICBlbm91Z2ggdG8gbWFrZSBoMjY0cGFyc2UncyBzdHJlYW0tZm9ybWF0L2FsaWdubWVudCBjb252ZXJzaW9uIHBhc3MgdGhyb3VnaAoJICBtZXRhcyBhcyBuZWVkZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDIzODUKCjIwMTUtMDYtMzAgMTE6MTE6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogQWRkIGdldCB2YXJpYW50cyBvZiB0aGUgYnVmZmVyIGJhc2VkIHRha2UgZnVuY3Rpb25zCgkgIE1haW4gZGlmZmVyZW5jZSB0byBnc3RfYWRhcHRlcl9tYXAoKSBmb3IgYWxsIHByYWN0aWNhbCBwdXJwb3NlcyBpcyB0aGF0CgkgIEdzdE1ldGEgb2YgdGhlIGJ1ZmZlcnMgd2lsbCBiZSBwcmVzZXJ2ZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDIzODUKCjIwMTUtMDYtMjkgMTc6MDM6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogQ29weSBvdmVyIEdzdE1ldGEgZnJvbSB0aGUgaW5wdXQgYnVmZmVycyB0byB0aGUgb3V0cHV0CgkgIEFsbCBmdW5jdGlvbnMgdGhhdCByZXR1cm4gYSBHc3RCdWZmZXIgb3IgYSBsaXN0IG9mIHRoZW0gd2lsbCBub3cgY29weQoJICBhbGwgR3N0TWV0YSBmcm9tIHRoZSBpbnB1dCBidWZmZXJzIGV4Y2VwdCBmb3IgbWV0YSB3aXRoIEdTVF9NRVRBX0ZMQUdfUE9PTEVECgkgIGZsYWcgb3IgIm1lbW9yeSIgdGFnLgoJICBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIGV4aXN0aW5nIGJlaGF2aW91ciB0aGF0IHRoZSBjYWxsZXIgY2FuJ3QgYXNzdW1lCgkgIGFueXRoaW5nIGFib3V0IHRoZSBidWZmZXIgZmxhZ3MsIHRpbWVzdGFtcHMgb3Igb3RoZXIgbWV0YWRhdGEuIEFuZCBpdCdzCgkgIGFsc28gdGhlIHNhbWUgdGhhdCBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9mYXN0KCkgZGlkIGJlZm9yZSwgYW5kIHdoYXQKCSAgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKSBkaWQgaWYgcGFydCBvZiB0aGUgZmlyc3QgYnVmZmVyIG9yIHRoZSBjb21wbGV0ZQoJICBmaXJzdCBidWZmZXIgd2FzIHJlcXVlc3RlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjM4NQoKMjAxNS0wNi0yOSAyMDoyNzoxMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHA6IEluaXQgZnVuY3Rpb24gY2FuIHRha2UgYSBOVUxMIGludGVyZmFjZXMgYXJyYXkKCjIwMTUtMDYtMjkgMTM6NTc6MTEgKzA5MDAgIFZpbmVldGggVE0gPHZpbmVldGgudG1Ac2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogY2FwczogZml4IHRlc3RfaW50ZXJzZWN0X2ZsYWdzZXQgZmFpbHVyZQoJICB0ZXN0X2ludGVyc2VjdF9mbGFnc2V0IGZhaWxzIGJlY2F1c2Ugd2hlbiBjYXBzIGlzIGJlaW5nCgkgIGNyZWF0ZWQsIGZsYWdzIGFuZCBtYXNrIGFyZSBiZWluZyBjYXN0IHRvIHVpbnQ2NCB3aGlsZQoJICB0aGV5IHNob3VsZCBiZSB1aW50LiBUaGlzIHJlc3VsdHMgaW4gaW52YWxpZCBtZW1vcnkgYWNjZXNzCgkgIG9yIGEgc2VnZmF1bHQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTE2MjgKCjIwMTUtMDYtMjkgMTQ6MjI6NDYgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBGaXggR1NUX1ZBTElEQVRFX1BMVUdJTl9QQVRICgkgIEl0IG1vdmVkIHJlY2VudGx5CgoyMDE1LTA2LTI5IDEzOjU4OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCB1cCBkb2N1bWVudGF0aW9uIG9mIHRyYW5zZm9ybV9tZXRhIHZmdW5jCgkgIEJ5IGRlZmF1bHQgd2UgY29weSBhbGwgbWV0YXMgdGhhdCBoYXZlIG5vIHRhZ3MuCgoyMDE1LTA2LTI5IDEwOjQxOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmg6CgkgIGRpcmVjdGNvbnRyb2xiaW5kaW5nOiBmaXggQUJJIGJyZWFrCgkgIFN0cnVjdHVyZSBzaXplIHdhcyBpbmNyZWFzZWQgd2l0aG91dCBhZGp1c3RtZW50IG9mIHRoZSBwYWRkaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxNjIyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1MDIKCjIwMTUtMDMtMTkgMTU6NTU6MTQgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBndWFyZCBhZ2FpbnN0IE5VTEwgdGFzayBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NDM5CgoyMDE1LTA1LTE0IDExOjQ4OjQ1ICswMjAwICBNaWd1ZWwgUGFyw61zIETDrWF6IDxtcGFyaXNkaWF6QGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkgIGZ1bm5lbDogYWRkICJmb3J3YXJkLXN0aWNreS1ldmVudHMiIHByb3BlcnR5CgkgIEl0IGlzIHVzZWZ1bCB0byBhdm9pZCBzZW5kaW5nIHN0aWNreSBldmVudCBvbiBzdHJlYW0gY2hhbmdlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTMxNQoKMjAxNS0wNi0yNSAwMDowNDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS41LjIgPT09CgoyMDE1LTA2LTI0IDIyOjQ5OjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuNS4yCgoyMDE1LTA2LTI0IDIyOjQ1OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNS0wNi0yMiAyMzozNzoyNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBnc3R1dGlsczogZml4IHdyb25nIGRlc2NyaXB0aW9uIG9mIHRlc3QgZWxlbWVudAoJICBJdCBpcyBhIGZha2VzaW5rIHdpdGggcmVxdWVzdCBwYWRzLCBub3QgYSBzb3VyY2UKCjIwMTUtMDYtMjQgMTU6MzU6MTYgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogRml4ZWQgY29tcGlsZXIgd2FybmluZwoJICBUaGUgcG9vbCB2YXJpYWJsZSB3YXMgdW51c2VkIHdoZW4gYnVpZGxpbmcgd2l0aCBkZWJ1ZyBkaXNhYmxlZC4KCjIwMTUtMDYtMjQgMTE6MTM6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2h1LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3J1LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE1LTA2LTI0IDExOjEyOjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgoyMDE1LTA2LTI0IDE0OjE5OjA0ICswOTAwICBIeXVuanVuIEtvIDx6em9vbi5rb0BzYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG5lZWQgdG8gZGVlcC1jb3B5IGxhc3QgYnVmZmVyIGxpc3QgaW4gZHJhaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTQyMAoKMjAxNS0wNi0yNCAxMDo1MjowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IFdhcm4gaWYgY29weWluZyBhIGJ1ZmZlciBmYWlscyBpbiBnc3RfYnVmZmVyX2xpc3RfY29weV9kZWVwKCkKCjIwMTUtMDYtMjQgMTQ6MTg6NDcgKzA5MDAgIEh5dW5qdW4gS28gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBuZXcgYXBpIGdzdF9idWZmZXJfbGlzdF9jb3B5X2RlZXAKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTQyMAoKMjAxNS0wNi0yMyAxNjo1ODo1NiArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdGNoZWNrOiBQcmludCBuZXdsaW5lIGluIG1lc3NhZ2UgaGFuZGxlcgoJICBUaGUgbWVzc2FnZSBoYW5kbGVyIGlzIHN1cHBvc2VkIHRvIHByaW50IGEgbmV3bGluZSBhZnRlciB0aGUgbWVzc2FnZQoJICBqdXN0IGxpa2UgdGhlIGRlZmF1bHQgbWVzc2FnZSBoYW5kbGVyLgoKMjAxNS0wNi0xMiAxNjo1NDozMiArMDgwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBIYW5kbGUgZGlmZmVyZW50IGR1cmF0aW9uIHRyYWNrIHNlbGVjdGlvbgoJICBTdXBwb3J0IHRyYWNrIHN3aXRjaCBmcm9tIEVPUyB0cmFjayB0byBub24tRU9TIG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDc2MQoKMjAxNS0wNi0xMiAxNjo1Mjo0NiArMDgwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBDbGVhciBFT1MgZmxhZyBhZnRlciByZWNlaXZlZCBTVFJFQU1fU1RBUlQgZXZlbnQKCSAgQ2xlYXIgRU9TIGZsYWcgYWZ0ZXIgcmVjZWl2ZWQgU1RSRUFNX1NUQVJUIGV2ZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA3NjEKCjIwMTUtMDYtMjIgMTQ6MzA6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogZ3N0dXRpbHM6IGFkZCB0ZXN0cyBmb3IgZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkCgkgIEFkZHMgdGVzdHMgZm9yIGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCBmb3Igd2hlbiBpdCBoYXMgdG8KCSAgcmVxdWVzdCBwYWRzLgoJICBOb3RlIHRoYXQgdGhlc2UgdGVzdHMgZG9uJ3QgY292ZXIgdGhlIGNhc2Ugd2hlbiBpdCBoYXMgdG8gcmVxdWVzdAoJICBhIHBhZCB0aGF0IGFscmVhZHkgZXhpc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMjM1CgoyMDE1LTA2LTE5IDE1OjQ2OjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBjYXBzIHdoZW4gZ2V0dGluZyBhIGNvbXBhdGlibGUgcGFkIGJ5IHRlbXBsYXRlCgkgIERvIG5vdCBpZ25vcmUgdGhlIGNhcHMgYXJndW1lbnQgd2hlbiByZXF1ZXN0aW5nIGEgcGFkIGJ5IHRlbXBsYXRlLgoJICBUaGlzIGlzIHBhcnRpY3VsYXJseSBoYXJtZnVsIHdoZW4gdGhlIHBhZCBjYXBzIHF1ZXJ5IGJ5IGRlZmF1bHQKCSAgcmV0dXJucyBBTlkgc28gaXQgd2lsbCBtYXRjaCB0aGUgZmlyc3QgdGVtcGxhdGUgaW5zdGVhZCBvZiB0aGUKCSAgb25lIHRoYXQgYWN0dWFsbHkgaW50ZXJzZWN0cyB3aXRoIHRoZSBjYXBzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUxMjM1CgoyMDE1LTA2LTIzIDAwOjE0OjMwICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgZ3N0c2FtcGxlLmg6IEluY2x1ZGUgZ3N0YnVmZmVybGlzdC5oIG5vdyB0aGF0IGl0IHVzZXMgR3N0QnVmZmVyTGlzdAoKMjAxNS0wNi0xNyAxNjoxMjoxMyArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiB3aGVuIHJlbGVhc2luZyBwYWQsIHNlbmQgRU9TIGFwcHJvcHJpYXRlbHkuCgkgIFByZXZpb3VzbHksIGNvbmNhdCBzZW50IGFuIEVPUyBpZiB0aGVyZSB3YXMgYSBuZXh0IHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTEwNwoKMjAxNS0wNi0xNiAxNjoxNDoxOCArMDIwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuaDoKCSAgY29uY2F0OiBBZGQgYWRqdXN0LWJhc2UgcHJvcGVydHkKCSAgVGhpcyBkaXNhYmxlcyB0aGUgc2VnbWVudC5iYXNlIGFkanVzdG1lbnRzLCB3aGljaCBpcyB1c2VmdWwgaWYgZG93bnN0cmVhbQoJICB0YWtlcyBjYXJlIG9mIGJhc2UgYWRqdXN0bWVudHMgYWxyZWFkeSAoZXhhbXBsZTogYSBjb21iaW5hdGlvbiBvZiBjb25jYXQKCSAgYW5kIHN0cmVhbXN5bmNocm9uaXplcikKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MTA0NwoKMjAxNS0wNi0yMiAxNDowNDo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFVuc2V0IHRoZSBsYXN0IGJ1ZmZlciBsaXN0IGlmIHdlIG9ubHkgZ290IGEgYnVmZmVyCgkgIEFsc28gcmVtZW1iZXIgYW55IHByZXJvbGwgYnVmZmVyIGxpc3QuCgoyMDE1LTA2LTIyIDEzOjMzOjI5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNhbXBsZTogQWRkIG5ldyBBUEkgdG8gdGhlIGRvY3MKCjIwMTUtMDYtMjIgMjA6MDI6NTUgKzA5MDAgIEh5dW5qdW4gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZW5hYmxlIHRvIGdldCBsYXN0IHNhbXBsZSBpbmNsdWRpbmcgYnVmZmVyIGxpc3QgaWYgbmVlZGVkCgkgIEluIGNhc2Ugb2YgYSBidWZmZXIgbGlzdCByZW5kZXJpbmcsIGxhc3Qtc2FtcGxlIGlzIG5vdCB1cGRhdGVkLgoJICBJdCBuZWVkcyB0byBiZSB1cGRhdGVkIGFuZCBlbmFibGUgdG8gZ2V0IGJ1ZmZlciBsaXN0IGZyb20gbGFzdC1zYW1wbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEwMjYKCjIwMTUtMDYtMjIgMTk6MzU6NDAgKzA5MDAgIEh5dW5qdW4gPHp6b29uLmtvQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIHNhbXBsZTogYWRkIGdzdF9zYW1wbGVfc2V0L2dldF9idWZmZXJfbGlzdCBhcGlzCgkgIEFsbG93ZWQgdG8gc2V0L2dldCBidWZmZXIgbGlzdCB0byBzYW1wbGUgaWYgbmVlZGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTEwMjYKCjIwMTUtMDYtMTkgMTA6NTI6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0LnB5OgoJICB0ZXN0LnB5OiByZW1vdmUgYWNjaWRlbnRhbGx5IGNvbW1pdHRlZCBmaWxlCgoyMDE1LTA2LTE4IDExOjUxOjQ4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgZG9jOiBVbmlmeSBTaW5jZSBtYXJrIGZvciBhdHRyaWJ1dGUgYW5kIGVudW0KCSAgQXMgdGhpcyBzaG93IHVwIGFzIHByb3NlIGluIHRoZSBkb2MsIHNpbXBseSBtYWtlIGl0IGNvbnNpc3RlbnQKCSAgYW5kICJhcmd1YWJsZSIgbmljZXIgdG8gcmVhZC4KCjIwMTUtMDYtMTggMTE6NDg6NTAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBkb2M6IFJlbW92ZSBwYXJlbnRoZXNpcyBhcm91bmQgU2luY2U6CgkgIFRoaXMgY29uZnVzZSB0aGUgcGFyc2VyLCBoZW5jZSBpdCBkb2VzIG5vdCBlbmR1cCBpbiB0aGUgZG9jIGFuZCB0aGUKCSAgaW5kZXggcHJvcGVybHkuCgoyMDE1LTA1LTA2IDE2OjQ0OjQ4ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIEdzdFBhcmVudEJ1ZmZlck1ldGEKCSAgQSBjb3JlIG1ldGEgd2hpY2ggaGVscHMgaW1wbGVtZW50IHRoZSBvbGQgY29uY2VwdAoJICBvZiBzdWItYnVmZmVyaW5nIGluIHNvbWUgc2l0dWF0aW9ucywgYnkgbWFraW5nIGl0CgkgIHBvc3NpYmxlIGZvciBhIGJ1ZmZlciB0byBrZWVwIGEgcmVmIG9uIGEgZGlmZmVyZW50CgkgIHBhcmVudCBidWZmZXIuIFRoZSBwYXJlbnQgYnVmZmVyIGlzIHVucmVmZmVkIHdoZW4KCSAgdGhlIE1ldGEgaXMgZnJlZWQuCgkgIFRoaXMgbWV0YSBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IGEgYnVmZmVyIHdob3NlCgkgIG1lbW9yeSBpcyBiZWluZyBzaGFyZWQgdG8gYSBjaGlsZCBidWZmZXIgaXNuJ3QgZnJlZWQKCSAgYW5kIHJldHVybmVkIHRvIGEgYnVmZmVyIHBvb2wgdW50aWwgdGhlIG1lbW9yeQoJICBpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDAzOQoKMjAxNS0wNi0xNiAxODowODoyNCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHRlc3QucHk6CgkgIGdpOiBVc2UgSU5UUk9TUEVDVElPTl9JTklUIGZvciAtLWFkZC1pbml0LXNlY3Rpb24KCSAgVGhpcyBuZXcgZGVmaW5lIHdhcyBhZGRlZCB0byBjb21tb24uIFRoZSBuZXcgaW5pdCBzZWN0aW9uIGZpeGVkCgkgIGNvbXBpbGF0aW9uIHdhcm5pbmcgZm91bmQgaW4gdGhlIGluaXQgbGluZSB0aGF0IHdhcyBzcHJlYWQgYWNyb3NzCgkgIGFsbCBmaWxlcy4KCjIwMTUtMDYtMTYgMTc6NDY6NDQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2MDE1ZDI2IHRvIGY3NGIyZGYKCjIwMTUtMDYtMTUgMTA6MDY6MDAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBGaXggX1NUSU1FX0ZPUk1BVCBtYWNyb3MKCSAgVGhpcyBtYWNybyBkaWRuJ3Qgd29yayB3ZWxsIGFzIGl0IHJlbGllZCBvbiB0aGUgc2lnbiBvbiB0aGUgbGFzdAoJICBkaXZpZGVkIG51bWJlciAobnVtYmVyIG9mIGRheXMpLiBUaGlzIHZhbHVlIGlzIG1vc3Qgb2YgdGhlIHRpbWUKCSAgemVybywgYW5kIHplcm8gaXMgY29uc2lkZXJlZCBwb3NpdGl2ZSBpbiBwcmludGYuIEluc3RlYWQsIGRlYWwgd2l0aAoJICB0aGUgc2lnbiBtYW51YWxseSwgYW5kIHJlc3VzZSB0aGUgb3JpZ2luYWwgbWFjcm9zIGZvciB0aGUgcmVzdC4gVGhpcwoJICBhY3R1YWxseSBzaW1wbGlmeSB0aGUgbWFjcm8gYSBsb3QuCgoyMDE1LTA2LTE0IDIwOjQ4OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiByZXNldCBzZWdtZW50IG9ubHkgb25jZSBzdHJlYW1pbmcgaGFzIHN0b3BwZWQKCSAgRml4ZXMgdGhlIG9jY2FzaW9uYWwgY3JpdGljYWxzIGluIHRoZSBkaXNjb3ZlcmVyIHVuaXQgdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTA3MwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwODIzCgoyMDE1LTA2LTE0IDExOjIzOjIyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvYzogQWRkIG1vcmUgbWlzc2luZyBzeW1ib2xzIGluIGxpYi1zZWN0aW9ucy50eHQKCSAgVGhlc2Ugd2hlcmUgY2F1c2luZyBicm9rZW4gbGlua3MuCgoyMDE1LTA2LTE0IDExOjIyOjU0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJICBkb2M6IEZpeCByZWZlcmVuY2UgdG8gdW5rbm93biB0eXBlIEdzdE5ldEFkZHJlc3MKCjIwMTUtMDYtMTQgMTE6MjI6MzYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBkb2M6IEluY2x1ZGUgYW5kIGZpeCBHc3RDb250cm9sUG9pbnQKCjIwMTUtMDYtMTQgMTE6MjE6MjYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jOiBBZGQgR3N0TmV0Q29udHJvbE1lc3NhZ2VNZXRhIHRvIHRoZSBkb2MKCSAgVGhpcyBpcyBiZWluZyByZWZlcmVuY2VkIGVsc2V3aGVyZSwgYnV0IHJlc3VsdHMgaW4gYnJva2VuIGxpbmtzLgoJICBJdCBzZWVtcyB0byBiZSBwdWJsaWMgQVBJLCBzbyBJIHRoaW5rIGl0IHNob3VsZCBiZSBpbiB0aGUgZG9jLgoKMjAxNS0wNi0xNCAxMDo1OTo1MSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgZG9jOiBEb2N1bWVudCBHc3RQdXNoU3JjQ2xhc3MKCjIwMTUtMDYtMTQgMTA6NTg6MTggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBkb2M6IEJldHRlciBkb2N1bWVudCBuZXcgR3N0Q29sbGVjdERhdGEuQUJJLmFiaS5kdHMKCSAgVGhlIGRvYyBnZW5lcmF0b3IgZ2V0IGNvbmZ1c2VkIHdpdGggdGhlIGlubGluZSBzdHJ1Y3R1cmUuIFNvCgkgIHdvcmthcm91bmQgYnkgd3JhcHBpbmcgdGhlIGlubmVyIG9mIHRoZSBzdHJ1Y3R1cmUgd2l0aAoJICBwdWJsaWMvcHJpdmF0ZSBtYXJrLCBhbmQgZG9jdW1lbnQgdGhhdCBHU1RfQ09MTEVDVF9QQURTX0RUUyBtYWNybwoJICBzaGFsbCBiZSB1c2VkIHRvIGFjY2VzcyB0aGlzLgoKMjAxNS0wNi0xNCAxMDo1NjoyOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJICBkb2M6IFZhcmlvdXMgZG9jIGZpeGVzIGZvciBsaWJnc3RyZWFtZXItYmFzZQoJICAqIEZpeCBmdW5jdGlvbiBuYW1lIGluIHNlY3Rpb25zLnR4dAoJICAqIEFkZCBmZXcgbWlzc2luZyBvciBmaXggbWlzcy1uYW1lZAoJICAqIFdvcmthcm91bmQgZ3RrLWRvYyBiZWluZyBjb25mdXNlZCB3aXRoIG5vbiB0eXBlZGVmCgkgIHR5cGVzIChsb29zZSB0cmFjayBvZiBwdWJsaWMvcHJpdmF0ZQoKMjAxNS0wNi0xNCAxMDoyNTo1MiAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvYzogTW9yZSBkb2Mgd2FybmluZyBmaXhlcwoJICBTbyBmcm9tIHRoaXMgcG9pbnQsIHRoZSByZW1haW5pbmcgd2FybmluZyBmb3IgbGliZ3N0cmVhbWVyIGFyZSBhYm91dAoJICBwcm90ZWN0ZWQgbWVtYmVyIG5vdCBzaG93aW5nIGluIHRoZSBkb2MuIFRoaXMgbWF5IG5lZWQgc29tZSBkaXNjdXNzaW9uCgkgIHdpdGggdXBzdHJlYW0gZ3RrLWRvYyBwZW9wbGUuCgkgICogUmVtb3ZlICUgaW4gZnJvbSBvZiBub25lIG1hY3JvCgkgICogRml4ZWQgR1NUX1RZUEVfRkFHUyAtPiBHU1RfVFlQRV9GQUdfU0VUCgkgICogTWlub3Igd29yZGluZyBmaXgKCSAgKiBDYW4ndCBsaW5rIHRvIEdzdFVyaS5wb3J0LCBzbyBzcGxpdCB0aGUgLnBvcnQgcGFydAoKMjAxNS0wNi0xNCAwOToxNzoyMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGRvYzogSW4gR3N0VXJpIHdlIG1lYW50IG51bC10ZXJtaW5hdGVkLCBub3QgJU5VTEwKCSAgJU5VTEwgcmVmZXJzIHRvIHRoZSBwb2ludGVyLiBJJ3ZlIHdyaXR0ZW4gaXQgdGhpcyB3YXkgaW4gb25lCgkgIHdvcmQgYXMgdGhpcyBpcyB3aGF0IEdMaWIgdXNlcy4KCjIwMTUtMDYtMTMgMjE6MDI6MjAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2M6IENhbm5vdCByZWZlcmVuY2UgR1NUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRQoJICBTbyBzaW1wbHkgcmVtb3ZlIHRoZSAlIHNpZ24uCgoyMDE1LTA2LTEzIDIwOjUyOjAxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBkb2M6IEZpeCB0eXBvIGluIHJlZiBfY2xvY2tfd2FpdF9mb3Jfc3luYygpCgoyMDE1LTA2LTEzIDIwOjM3OjM0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZG9jOiBGaXggR3N0VXJpIGRvYyB0eXBvcwoJICAqIFVzZSAmcGVyY3RuOyBpbnN0ZWFkIG9mIHJlc2VydmVkIGNoYXJhY3RlciAlCgkgICogTlVMTCB0YWtlIHR3byBMCgoyMDE1LTA2LTEzIDIwOjE5OjU5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgZG9jOiBGaXggU2luY2U6IG1hcmtzCgkgIFRoZXJlIHdhcyBmZXcgU2luY2U6IG1hcmsgbWlzc2luZyB0aGVpciBjb2x1bW4uIEFsc28gdW5pZnkgdGhlIHdheQoJICB3ZSBzZXQgdGhlIFNpbmNlIG1hcmsgb24gZW51bSB2YWx1ZSBhbmQgc3RydWN0dXJlIG1lbWJlcnMuIFRoZXNlCgkgIHNhZGx5IGRvbid0IHNob3cgdXAgaW4gdGhlIGluZGV4LgoKMjAxNS0wNi0xMyAyMDowMToyNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRvYzogQWRkIGdzdF9idWZmZXJfY29weV9kZWVwKCkKCjIwMTUtMDYtMTMgMTk6NDc6NDUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGdpOiBTa2lwIGdzdF9jb25zaXRlbmN5X2NoZWNrZXJfbmV3CgkgIFRoaXMgbm9uIGJveGVkIHR5cGUgY2Fubm90IGJlIGFsbG9jYXRlZCBzYWZlbHkuCgoyMDE1LTA2LTEzIDE5OjQ2OjIxIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRvYzogQWRkIGluZGV4ZXMgb2YgYWRkZWQgQVBJcwoJICBPbmUgb2YgdGhlIG5pY2UgZmVhdHVyZSBpbiBHVEsgZG9jIGlzIHRoYXQgaXQgZ2VuZXJhdGUgaW5kZXhlcwoJICBvZiBhZGRlZCBBUElzIGJhc2Ugb24gdGhlIHNpbmNlIG1hcmtlci4gSW5jbHVkZSB0aGF0IGluIG91ciBkb2MKCSAgd2hpbGUgZml4aW5nIHRoZSBpc3N1ZSBvZiBkdXBsaWNhdGUgSUQgKHByb2R1Y2UgeG1sIGNvbnRhaW5zIHRoYXQKCSAgaWQgaXQgc2VlbXMpCgoyMDE1LTA2LTEzIDE1OjEwOjUzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgZG9jOiBNYWtlIC4uLl9zb3VyY2VfZmluZF9jb250cm9sX3BvaW50X2l0ZXIgdHJhbnNmZXIgbm9uZQoKMjAxNS0wNi0xMyAxNDo0MDo0MyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkgIGRvYzogU2lsZW5jZSB3YXJuaW5nIGFib3V0IHVudXNlZCBnc3RudHBwYWNrZXQgc2VjdGlvbgoJICBUaGlzIEFQSSBpcyBpbnRlcm5hbC4KCjIwMTUtMDYtMTMgMTQ6Mzc6NDIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJICBSZXZlcnQgImRvYzogQWRkIEdzdE50cFBhY2tldCB0byB0aGUgZG9jIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGM0ZWI4NzY5NjFhYmExMDkyYzQ4MzFhOGZlYWY0OGQ3YmUxZTM4YWUuCgkgIE9vcHMsIHRoaXMgaXMgbm90IGEgcHVibGljIEFQSQoKMjAxNS0wNi0xMyAxNDoyMTo0MSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0LmM6CgkgIGRvYzogQWRkIEdzdE50cFBhY2tldCB0byB0aGUgZG9jCgoyMDE1LTA2LTEzIDEzOjU1OjI3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSAgZG9jOiBSZW1vdmUgZ3N0aW5kZXggZnJvbSBkb2MgY29tbWVudAoJICBNb3ZpbmcgdGhhdCB0byBub3JtYWwgY29tbWVudCB0byBzaWxlbmNlIHRoZSBnZW5lcmF0b3IuIEdzdEluZGV4CgkgIGlzIG5vdCBpbiBHU3RyZWFtZXIgbGlicmFyeSBhdCB0aGUgbW9tZW50IChyZW1vdmVkIGZyb20gMC4xMCkuCgoyMDE1LTA2LTEzIDEzOjQ4OjAzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZ2k6IFNldCBjb2xsZWN0cGFkcyBmdW5jdGlvbiBwYXJhbSBzY29wZQoKMjAxNS0wNi0xMyAxMzo0Mjo1OCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGdpOiBTa2lwIGFsbG9jYXRvciBvZiBub24tYm94ZWQgc3RydWN0dXJlCgkgIFRoZXNlIGFyZSBub3QgdXNhYmxlIGFzIHRoZXkgYXJlLCBhbmQgY2FuIGVhc2lseSBsZWFkIHRvIGNyYXNoCgkgIG9yIGxlYWtzLiBUaGlzIGFsc28gc2lsZW5jZSB3YXJuaW5nIGZyb20gdGhlIHNjYW5uZXIuIElmIHdlIG1hbmFnZSB0bwoJICBtYWtlIHRoaXMgdXNhYmxlLCB3ZSBjYW4gdGhlbiByZW1vdmUgdGhhdCBtYXJrLCBpdCB3aWxsIHJlcXVpcmUKCSAgdG8gbWFrZSB0aGlzIHR5cGUgYm94ZWQuCgoyMDE1LTA2LTEzIDEzOjI0OjEzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogR2l2ZSBnc3Rjb25maWcgYSBuaWNlIG5hbWUKCSAgQXMgYWxsIG90aGVyIHNlY3Rpb24gZG8gaGF2ZSBhIG5pY2UgY2FtZSBjYXNlIG5hbWUsIGl0IHNlZW1zCgkgIG1vcmUgY29uc2lzdGVudC4KCjIwMTUtMDYtMTMgMTM6MTk6MjEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBBZGQgbWlzc2luZyBnc3RfZXZlbnRfbmV3L3BhcnNlX3Byb3RlY3Rpb24KCjIwMTUtMDYtMTMgMTM6MTk6MDUgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jOiBHaXZlIGdzdHByb3RlY3Rpb24gc2VjdGlvbiBhIG5pY2UgdGl0bGUKCjIwMTUtMDYtMTMgMTM6MTQ6MzAgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvYzogUmVtb3ZlIHVuZWVkZWQgcHJvdGVjdGlvbmV2ZW50IHNlY3Rpb24KCSAgVGhlc2UgZnVuY3Rpb25zIGFyZSBwYXJ0IG9mIGdzdGV2ZW50IHNlY3Rpb24gYWxyZWFkeS4gS2VlcCB0aGUgZG9jLAoJICBzaW5jZSBpdCdzIGdvb2QuCgoyMDE1LTA2LTEzIDEyOjMyOjQ5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IEFkZCBtaXNzaW5nIHNjb3BlIHRvIGZ1bmMgcGFyYW0KCSAgVGhpcyB0ZWxsIEdJIGlmIHRoaXMgZnVuY3Rpb24gaXMgZm9yIGFjdGlvbnMgKGNhbGwpIG9yIGlzIHRoZQoJICBhbnN3ZXIgb2YgdGhpcyBtZXRob2QgYmVpbmcgYXN5bmNocm9ub3VzIChhc3luYykuIEluIHRoaXMgY2FzZQoJICBpdCdzIGEgY2FsbC4gVGhpcyBhbHNvIHNpbGVuY2Ugd2FybmluZyBmcm9tIHRoZSBHSSBzY2FubmVyLgoKMjAxNS0wNi0xMyAxMjoyNzozMSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5oOgoJICBnc3Rwcm90ZWN0aW9uOiBBZGQgbWlzc2luZyBTaW5jZSAxLjYgbWFyawoKMjAxNS0wNi0xMyAxMjoyNjoxMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICBnc3RwcmVjdGlvbjogX2FkZF9wcm90ZWN0aW9uX21ldGEoKSBpcyB0cmFuc2ZlciBub25lCgkgIEp1c3QgbGlrZSBnc3RfYnVmZmVyX2FkZF9tZXRhKCkgdGhpcyBmdW5jdGlvbiBzaG91bGQgYWxzbyBiZQoJICB0cmFuc2ZlciBub25lLiBUaGlzIGFsc28gc2lsZW5jZSBhIGdpIHdhcm5pbmcgYWJvdXQgcmV0dXJuaW5nCgkgIGEgY29weSBvZiBhIG5vbiBib3hlZCBiYXJlIHN0cnVjdHVyZS4KCjIwMTUtMDYtMTMgMTI6MjU6MTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogZ3N0L2dzdHByb3RlY3Rpb24uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgZ3N0cHJvdGVjdGlvbjogQWRkIG1pc3NpbmcgbmFtZXNwYWNlIHRvIG1hY3JvCgkgIEdTVF9QUk9URUNUSU9OX1NZU1RFTV9JRF9DQVBTX0ZJRUxEIHdhcyBtaXNzaW5nIHRoZSBHU1RfIG5hbWVzcGFjZS4KCSAgQWRkIGl0IGJlZm9yZSBpdHMgdG9vIGxhdGUuCgoyMDE1LTA2LTEzIDExOjU1OjEwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIGRvYzogS2VlcCBTRUNUSU9OOiBhZnRlciB0aGUgaWZkZWYKCSAgT3RoZXJ3aXNlIEdUSyBkb2Mgd2lsbCBzZWUgaXQgYXMgb2Z0ZW4gYXMgd2UgaW5jbHVkZSB0aGF0IGZpbGVzCgkgIGFuZCB3YXJuIGFib3V0IGR1cGxpY2F0ZWQgU0VDVElPTjoKCjIwMTUtMDYtMTMgMTA6MjM6NTIgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgZ2k6IFNraXAgbWluaSBvYmplY3QgbWV0aG9kIHRoYXQgcGxheSB3aXRoIHJlZmNvdW50aW5nCgkgIEl0IG1ha2Ugbm8gc2Vuc2UgdG8gYWxsb3cgdXNpbmcgdGhhdC4gQW55IHVzZSB3b3VsZCBsZWFkIHRvIGxlYWsKCSAgb2YgY3Jhc2guIE5vdGUgdGhhdCBHTWluaU9iamVjdCBpcyBlbnRpcmVseSB1bnVzYWJsZSBhcyB5b3UgY2Fubm90CgkgIGNhc3QgZnJvbSBsZXQncyBzYXkgR3N0QnVmZmVyIHRvIEdzdE1pbmlPYmplY3QuCgoyMDE1LTA2LTEzIDE1OjA1OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSAgbGliczogbW9yZSBkb2Mgc2Nhbm5lciBmaXhlcwoJICBnc3RiYXNldHJhbnNmb3JtLmg6MTk2OiBXYXJuaW5nOiBHc3RCYXNlOiAiQHN1Ym1pdF9pbnB1dF9idWZmZXIiIHBhcmFtZXRlciB1bmV4cGVjdGVkIGF0IHRoaXMgbG9jYXRpb246CgkgICogQHN1Ym1pdF9pbnB1dF9idWZmZXI6IEZ1bmN0aW9uIHdoaWNoIGFjY2VwdHMgYSBuZXcgaW5wdXQgYnVmZmVyIGFuZCBwcmUtcHJvY2Vzc2VzIGl0LgoJICBnc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuYzoxMDM6IFdhcm5pbmc6IEdzdE5ldDogZ3N0X2J1ZmZlcl9hZGRfbmV0X2NvbnRyb2xfbWVzc2FnZV9tZXRhOiB1bmtub3duIHBhcmFtZXRlciAnbWVzc2FnZScgaW4gZG9jdW1lbnRhdGlvbiBjb21tZW50LCBzaG91bGQgYmUgJ2FkZHInCgoyMDE1LTA2LTEzIDA5OjM3OjQ2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIGRvYzogRml4IGFubm9hdGlvbiBmb3IgR3N0TWluaU9iamVjdAoJICBSZXBsYWNpbmcgcmVwcmVjYXRlZCAiUmVmIEZ1bmM6IiwgIlVucmVmIEZ1bjoiIGV0Yy4gY29tbWVudCBibG9jawoJICB3aXRoIGFwcHJvcHJpYXRlIChyZWYtZnVuYyBuYW1lKSBldGMuIGFubm90YXRpb24uCgoyMDE1LTA2LTEzIDA5OjM0OjA2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBkb2M6IEZpeCB1bmJhbGFuY2VkIHBhcmVudGhlc2lzCgoyMDE1LTA2LTEzIDA5OjMwOjI0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBkb2M6IEZpeCBtb3JlIHR5cG8KCjIwMTUtMDYtMTMgMDk6MjI6NDEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGRvYzogRml4IHR5cGUgaW4gcHJldmlvdXMgY29tbWl0CgkgIE1hcmtlciBpcyAodmFsdWUgLi4gbm90IChhbHVlLgoKMjAxNS0wNi0xMyAwOToxOToyNyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGRvYzogRG9uJ3QgdXNlIGRlcHJlY2F0ZWQgVmFsdWU6IGFuZCBUeXBlOiBjb21tZW50CgkgIEluc3RlYWQgdXNlIGFwcHJvcHJpYXRlIGFubm90YXRpb24uIEFubm90YXRpb25zIGNhbiBiZSBhZGRlZAoJICB0byB0aGUgcmlnaHQgb2YgdGhlIGNvbnN0YW50IG5hbWUgaW4gYSBjb21tZW50IGJsb2NrLgoKMjAxNS0wNi0xMiAxNzowNzozOCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgY29sbGVjdHBhZHM6IEFkZCBuZXcgbWFjcm8gdG8gdGhlIGRvYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTA2LTEyIDE3OjA3OjI2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBjbG9jazogQWRkIG5ldyBzaWduZWQgdGltZSBtYWNybyB0byB0aGUgZG9jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDYtMTAgMTQ6MTc6MDEgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IERvbid0IGluaXRpYWxseSBzZW5kIGFuIGludmFsaWQgRFRTCgkgIFNlbmRpbmcgYSBwb3NzaWJseSBpbnZhbGlkIERUUyBtYXkgY29uZnVzZSB0aGUgbXV4ZXJzLCB3aGljaCB3aWxsCgkgIHRoZW4gdGhpbmsgdGhlIERUUyBpcyBnb2luZyBiYWNrd2FyZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNC0wMyAxNzo1NDo1MCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEFkZCBuZWdhdGl2ZSBEVFMgc3VwcG9ydAoJICBNYWtlIGdzdF9jb2xsZWN0X3BhZHNfY2xpcF9ydW5uaW5nX3RpbWUoKSBmdW5jdGlvbiBhbHNvIHN0b3JlIHRoZQoJICBzaWduZWQgRFRTIGluIHRoZSBDb2xsZWN0RGF0YS4gVGhpcyBzaWduZWQgRFRTIHZhbHVlIGNhbiBiZSB1c2VkIGJ5CgkgIG11eGVycyB0byBwcm9wZXJseSBoYW5kbGUgc3RyZWFtcyB3aGVyZSBEVFMgY2FuIGJlIG5lZ2F0aXZlIGluaXRpYWxseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDU3NQoKMjAxNS0wNi0xMiAxMjowNjowNSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBBZGQgc2lnbmVkIHRpbWUgdXRpbGl0aWVzCgkgIEFkZCB1dGlsaXR5IHRvIHByaW50IHNpZ25lZCB2YWx1ZSBvZiB0aW1lLiBUaGlzIGlzIHVzZWZ1bCB0bwoJICB0cmFjZSBydW5uaW5nIHRpbWUgdmFsdWVzIGluIGdpbnQ2NCBvciBHc3RDbG9ja1RpbWVEaWZmIHZhbHVlcy4KCSAgQWRkaXRpb25hbGx5LCBkZWZpbmUgR1NUX0NMT0NLX1NUSU1FX05PTkUgdG8gaW5kaWNhdGUgYW4gaW52YWxpZAoJICBzaWduZWQgdGltZSB2YWx1ZSBhbmQgdmFsaWRhdGlvbiBtYWNyby4gTmV3IG1hY3JvcyBhcmU6CgkgIEdTVF9DTE9DS19TVElNRV9OT05FCgkgIEdTVF9DTE9DS19TVElNRV9JU19WQUxJRAoJICBHU1RfU1RJTUVfRk9STUFUCgkgIEdTVF9TVElNRV9BUkdTCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDYtMTAgMjA6NDQ6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFkZCBhbGxvdy1ub25lIHRvIGdzdF9tZXNzYWdlX25ld18gZnVuY3Rpb24KCSAgTm8gcmVzdHJpY3Rpb24gZm9yIGNyZWF0aW5nIG1lc3NhZ2VzIHdpdGhvdXQgYSBzb3VyY2UKCjIwMTUtMDYtMTIgMTM6NDU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgoyMDE1LTA1LTI3IDEyOjI5OjQxICswMzAwICBMYXphciBDbGF1ZGl1IDxsYXphci5jbGF1ZGl1LmZsb3JpbkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hYnNvbHV0ZS1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IEFkZGVkIGFic29sdXRlIGRpcmVjdCBjb250cm9sIGJpbmRpbmcsIGV4YW1wbGUgYW5kIHRlc3QKCSAgRml4ZXM6IDc0MDUwMgoJICBBUEk6IGdzdF9kaXJlY3RfY29udHJvbF9iaW5kaW5nX25ld19hYnNvbHV0ZQoKMjAxNS0wNi0wNCAwMDowMzoxNiArMTAwMCAgTWF0dGhldyBXYXRlcnMgPG1hdHRoZXdAY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGFsbG9jYXRvci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBwcm92aWRlIGEgbWVtX21hcF9mdWxsIHRoYXQgdGFrZXMgdGhlIEdzdE1hcEluZm8KCSAgRm9sbG93IHVwIG9mIDcxMzAyMzBkZGIzNDlkMGNhNzk0MmFiZGJhMjZiNzU1OGRmMDU1ZDEKCSAgUHJvdmlkZSB0aGUgbWVtb3J5IGltcGxlbWVudGF0aW9uIHRoZSBHc3RNYXBJbmZvIHRoYXQgd2lsbCBiZSB1c2VkIHRvCgkgIG1hcC91bm1hcCB0aGUgbWVtb3J5LiAgVGhpcyBhbGxvd3MgdGhlIG1lbW9yeSBpbXBsZW1lbnRhdGlvbiB0byB1c2UKCSAgc29tZSBzY3JhdGNoIHNwYWNlIGluIEdzdE1hcEluZm8gdG8gZS5nLiB0cmFjayBkaWZmZXJlbnQgbWFwL3VubWFwCgkgIGJlaGF2aW91ciBvciBzdG9yZSBleHRyYSBpbXBsZW1lbnRhdGlvbiBkZWZpbmVkIGRhdGEgYWJvdXQgdGhlIG1hcAoJICBpbiB1c2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAzMTkKCjIwMTUtMDQtMDggMTQ6MjE6NDMgLTA3MDAgIEFsaXNvbiBDaGFpa2VuIDxhbGlzb25fY2hhaWtlbkBtZW50b3IuY29tPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBkb2NzOiBtYW51YWw6IGZpeCBuYW1lIHJldmVyc2FsIGluIGJhc2ljcy1wYWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc1MzIKCjIwMTUtMDYtMTEgMjM6MDY6MjYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSAgZ3N0X3dyaXRldjogZGVmaW5lIFVJT19NQVhJT1Ygb24gaU9TL09TWAoJICBBcHBhcmVudGx5IGl0J3Mgb25seSBzZXRvbiBpT1MvT1NYIGlmIGRlZmluZWQoS0VSTkVMKS4KCjIwMTUtMDYtMTIgMDE6MTU6MTkgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIGdzdF93cml0ZXY6IFJlc3BlY3QgVUlPX01BWElPViBsaW1pdCBmb3IgdGhlIGlvdiBhcnJheQoJICBJZiB3ZSByZWNlaXZlIG1vcmUgdGhhbiBVSU9fTUFYSU9WICgxMDI0IHR5cGljYWxseSkgYnVmZmVycwoJICBpbiBhIHNpbmdsZSB3cml0ZXYgY2FsbCwgZmFsbCBiYWNrIHRvIGNvbnNvbGlkYXRpbmcgdGhlbQoJICBpbnRvIG9uZSBvdXRwdXQgYnVmZmVyIG9yIG11bHRpcGxlIHdyaXRlIGNhbGxzLgoJICBUaGlzIGNvdWxkIGJlIG1hZGUgbW9yZSBvcHRpbWFsLCBidXQgbGV0J3Mgd2FpdCB1bnRpbCBpdCdzCgkgIGV2ZXIgYSBib3R0bGVuZWNrIGZvciBzb21lb25lCgoyMDE1LTA2LTExIDEyOjM0OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGlwZWxpbmU6IEFkZCBnc3RfcGlwZWxpbmVfc2V0X2xhdGVuY3koKSwgZ2V0dGVyIGFuZCBHT2JqZWN0IHByb3BlcnR5CgkgIFRoaXMgb3ZlcnJpZGVzIHRoZSBkZWZhdWx0IGxhdGVuY3kgaGFuZGxpbmcgYW5kIGNvbmZpZ3VyZXMgdGhlIHNwZWNpZmllZAoJICBsYXRlbmN5IGluc3RlYWQgb2YgdGhlIG1pbmltdW0gbGF0ZW5jeSB0aGF0IHdhcyByZXR1cm5lZCBmcm9tIHRoZSBMQVRFTkNZCgkgIHF1ZXJ5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwNzgyCgoyMDE1LTA2LTExIDExOjM3OjMwICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFkZCBhY3RpdmUtcGFkIHByb3BlcnR5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY5NDkKCjIwMTUtMDYtMTEgMTE6MDU6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFsc28gcmVzZXQgdGhlIGN1cnJlbnQgc3RhcnQgb2Zmc2V0IHdoZW4gcmVjZWl2aW5nIGEgRkxVU0hfU1RPUCBvbiB0aGUgc3JjcGFkCgoyMDE1LTA2LTExIDExOjA1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBZGQgc29tZSBuZXdsaW5lcyB0byBldmVudCBoYW5kbGluZyBjb2RlIHRvIG1ha2UgdGhlIGNvZGUgbG9vayBhIGJpdCBsZXNzIGRlbnNlCgoyMDE1LTA2LTExIDEwOjUzOjMwICswMjAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IFJlc2V0IHNlZ21lbnQgYmFzZSBvZmZzZXQgYWZ0ZXIgRkxVU0hfU1RPUCB3aXRoIHJlc2V0X3RpbWUgPSBUUlVFCgkgIElmIHRoZSByZXNldF90aW1lIHZhbHVlIG9mIGEgRkxVU0hfU1RPUCBldmVudCBpcyBzZXQgdG8gVFJVRSwgdGhlIHBpcGVsaW5lCgkgIHdpbGwgaGF2ZSB0aGUgYmFzZV90aW1lIG9mIGl0cyBlbGVtZW50cyByZXNldC4gVGhpcyBtZWFucyB0aGF0IHRoZSBjb25jYXQKCSAgZWxlbWVudCdzIGN1cnJlbnRfc3RhcnRfb2Zmc2V0IGhhcyB0byBiZSByZXNldCB0byAwLCBzaW5jZSBpdCB3YXMKCSAgY2FsY3VsYXRlZCB3aXRoIHRoZSBvbGQgYmFzZS10aW1lIGluIG1pbmQuCgkgIE9ubHkgRkxVU0hfU1RPUCBldmVudHMgY29taW5nIGZyb20gdGhlIGFjdGl2ZSBwYWQgYXJlIGxvb2tlZCBhdC4KCSAgU2lnbmVkLW9mZi1ieTogQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKMjAxNS0wMy0yOCAxNjo0NjozMiArMDEwMCAgQ2FybG9zIFJhZmFlbCBHaWFuaSA8ZHZAcHNldWRvdGVybWluYWwub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBGb3J3YXJkIEZMVVNIX1NUQVJUIGFuZCBGTFVTSF9TVE9QIGV2ZW50cwoJICBXaXRob3V0IHRoaXMsIHNlZWtpbmcgZGVhZGxvY2tzIGlmIHBlcmZvcm1lZCB3aGlsZSB0aGUgcGlwZWxpbmUgaXMgcGF1c2VkLgoJICBPbmx5IGZsdXNoIGV2ZW50cyBjb21pbmcgZnJvbSB0aGUgYWN0aXZlIHBhZCBhcmUgZm9yd2FyZGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MzY2CgoyMDE1LTA2LTA5IDE0OjI4OjMwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogTWFrZWZpbGUuYW06CgkgIGNydWZ0OiBhZGQgdGhlIG9ic29sZXRlIHRtcGwgZGlyIHRvIGNydWZ0LWRpcnMKCjIwMTUtMDYtMDkgMTE6MzA6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ5YTMzNTMgdG8gNjAxNWQyNgoKMjAxNS0wNi0wOSAxMTowMTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IEZpeCBmc3luYy9fY29tbWl0IHVzYWdlCgkgIF9NU0NfVkVSIHdpbGwgb25seSBiZSBkZWZpbmVkIHdoZW4gYnVpbGRpbmcgKm9uKiB3aW5kb3dzIGFuZCBub3QganVzdAoJICAqZm9yKiB3aW5kb3dzLiBJbnN0ZWFkLCB1c2UgdGhlIEdfT1NfV0lOMzIgZGVmaW5lCgoyMDE1LTA2LTA5IDEwOjU5OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cDogQ2hlY2sgZm9yIHRoZSBhY3R1YWwgQVBJIHdlIHVzZSBpbnN0ZWFkIG9mIGp1c3QgbG9va2luZyBmb3IgX19BUFBMRV9fCgkgIFNob3VsZCBmaXggdGhlIGJ1aWxkIG9uIEZyZWVCU0QsIERyYWdvbkZseSBhbmQgb3RoZXIgQlNEcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDUzMAoKMjAxNS0wNi0wOCAxNzoxMDo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogVXNlIHRoZSBuZXcgR1NUX0NMT0NLX0ZMQUdfTkVFRFNfU1RBUlRVUF9TWU5DIGZsYWcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDU3NAoKMjAxNS0wNi0wOCAxNzowNDo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogTWFrZSB0aGUgY2xvY2sgYSB3cmFwcGVyIGNsb2NrIGFyb3VuZCBhbiBpbnRlcm5hbCBjbG9jawoJICBUaGUgaW50ZXJuYWwgY2xvY2sgaXMgb25seSB1c2VkIGZvciBzbGF2aW5nIGFnYWluc3QgdGhlIHJlbW90ZSBjbG9jaywgd2hpbGUKCSAgdGhlIHVzZXItZmFjaW5nIEdzdENsb2NrIGNhbiBiZSBhZGRpdGlvbmFsbHkgc2xhdmVkIHRvIGFub3RoZXIgY2xvY2sgaWYKCSAgZGVzaXJlZC4gQnkgZGVmYXVsdCwgaWYgbm8gbWFzdGVyIGNsb2NrIGlzIHNldCwgdGhpcyBoYXMgZXhhY3RseSB0aGUgc2FtZQoJICBiZWhhdmlvdXIgYXMgYmVmb3JlLiBJZiBhIG1hc3RlciBjbG9jayBpcyBzZXQgKHdoaWNoIHdhcyBub3QgYWxsb3dlZCBiZWZvcmUpLAoJICB0aGUgdXNlci1mYWNpbmcgY2xvY2sgaXMgcmVwb3J0aW5nIHRoZSByZW1vdGUgY2xvY2sgYXMgaW50ZXJuYWwgdGltZSBhbmQKCSAgc2xhdmVzIHRoaXMgdG8gdGhlIG1hc3RlciBjbG9jay4KCSAgVGhpcyBhbHNvIHJlbW92ZXMgdGhlIHdlaXJkbmVzcyB0aGF0IHRoZSBpbnRlcm5hbCB0aW1lIG9mIHRoZSBuZXRjbGllbnRjbG9jawoJICB3YXMgYWx3YXlzIHRoZSBzeXN0ZW0gY2xvY2sgdGltZSwgYW5kIG5vdCB0aGUgcmVtb3RlIGNsb2NrIHRpbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA1NzQKCjIwMTUtMDYtMDggMjM6MDc6NDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQzN2FmMzIgdG8gZDlhMzM1MwoKMjAxNS0wNi0wOCAyMDowMDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIHRlc3RzOiBmYWtlc2luazogZml4IHN0cmluZyBsZWFrIGluIHVuaXQgdGVzdAoKMjAxNS0wNi0wOSAwMDo1MjozNCArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBGaXggV2luZG93cyBidWlsZCBieSB1c2luZyBfY29tbWl0IGluc3RlYWQgb2YgZnN5bmMuCgoyMDE1LTA2LTA4IDEyOjIyOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogTWFrZSBzdXJlIHRvIGFsd2F5cyBpbml0aWFsaXplIHRoZSB2YXJpYWJsZXMgd2UgcHV0IGludG8gdGhlIHN0YXRpc3RpY3Mgc3RydWN0dXJlIGxhdGVyCgkgIENJRCAxMzA0Njc2LCAxMzA0Njc3LCAxMzA0Njc4LCAxMzA0Njc5LgoKMjAxNS0wNi0wOCAxMjowMjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSAgcHRwOiBFbnN1cmUgdGhhdCBub3QgdG9vIG11Y2ggaXMgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8gc3RydWN0IGlmcmVxLmlmcl9uYW1lCgoyMDE1LTA2LTA4IDE5OjMzOjAzICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBBZGQgU2luY2UgbWFya2VycyBmb3IgbmV3IHZmdW5jcwoJICBBZGQgU2luY2U6IDEuNiBtYXJrZXJzIGZvciB0aGUgbmV3IHN1Ym1pdF9pbnB1dF9idWZmZXIoKSBhbmQKCSAgZ2VuZXJhdGVfb3V0cHV0KCkgdmZ1bmNzCgoyMDE1LTA1LTIzIDAxOjA4OjI5ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTIuYzoKCSAgYmFzZXRyYW5zZm9ybTogU3BsaXQgaW5wdXQgYnVmZmVyIHByb2Nlc3NpbmcgZnJvbSBvdXRwdXQgZ2VuZXJhdGlvbgoJICBBbGxvdyBmb3Igc3ViLWNsYXNzZXMgd2hpY2ggd2FudCB0byBjb2xsYXRlIGluY29taW5nIGJ1ZmZlcnMgb3IKCSAgc3BsaXQgdGhlbSBpbnRvIG11bHRpcGxlIG91dHB1dCBidWZmZXJzIGJ5IHNlcGFyYXRpbmcgdGhlIGlucHV0CgkgIGJ1ZmZlciBzdWJtaXNzaW9uIGZyb20gb3V0cHV0IGJ1ZmZlciBnZW5lcmF0aW9uIGFuZCBhbGxvd2luZwoJICBmb3IgbG9vcGluZyBvZiBvbmUgb2YgdGhlIHBoYXNlcyBkZXBlbmRpbmcgb24gcHVsbCBvciBwdXNoIG1vZGUKCSAgb3BlcmF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMDMzCgoyMDE1LTA0LTE2IDEwOjMyOjAyICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBBZGQgR1NUX0JVRkZFUl9GTEFHX1NZTkNfQUZURVIgZmxhZywgYW5kIGltcGxlbWVudCBpbiBmaWxlc2luay4KCSAgTWFrZXMgaXQgcG9zc2libGUgdG8gZ2V0IGZpbGVzaW5rIHRvIGZzeW5jKCkgYWZ0ZXIgcmVuZGVyaW5nCgkgIGEgYnVmZmVyLgoKMjAxNS0wNi0wOCAxMDo0NjoyNCArMDIwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBGaXggYnVpbGQgb24gV2luZG93cywgYW5kIGluIGdlbmVyYWwgdGhlIEdJIGJ1aWxkIHdoZW4gUFRQIHN1cHBvcnQgd2FzIG5vdCBhdmFpbGFibGUKCSAgSXQncyBub3QgZ29pbmcgdG8gd29yayBvbiBXaW5kb3dzIHN0aWxsLCB0aGUgaGVscGVyIHByb2Nlc3MgbmVlZHMgdG8gYmUKCSAgcG9ydGVkLgoKMjAxNS0wNi0wNyAyMzowNTo1MyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMjFiYTJlNSB0byBkMzdhZjMyCgoyMDE1LTA2LTA3IDE3OjMxOjUwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBjNDA4NTgzIHRvIDIxYmEyZTUKCjIwMTUtMDYtMDcgMTY6NTg6NDAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IHJlbW92ZSB2YXJpYWJsZXMgdGhhdCB3ZSBkZWZpbmUgaW4gdGhlIHNuaXBwZXQgZnJvbSBjb21tb24KCSAgVGhpcyBpcyBzeW5jaW5nIG91ciBNYWtlZmlsZS5hbSB3aXRoIHVwc3RyZWFtIGd0a2RvYy4KCjIwMTUtMDYtMDcgMTc6MTY6MDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQ2NzY5OTMgdG8gYzQwODU4MwoKMjAxNS0wNi0wNyAxNjo0NDoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKMjAxNS0wNi0wNyAxMDo1MjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RudHBwYWNrZXQuYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IFRoZSBOVFAgcG9sbCBpbnRlcnZhbCBpcyBhIHNpZ25lZCBpbnQ4LCBub3QgdW5zaWduZWQKCj09PSByZWxlYXNlIDEuNS4xID09PQoKMjAxNS0wNi0wNyAwOTo0MToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS41LjEKCjIwMTUtMDYtMDcgMDk6MzM6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2ZyLnBvOgoJKiBwby90ci5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTUtMDYtMDcgMDk6MzI6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IEFkZCBTaW5jZSBtYXJrZXIgdG8gdGhlIGRvY3MgZm9yIGdzdF9udHBfY2xvY2tfbmV3KCkKCjIwMTUtMDYtMDcgMDk6MzI6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE1LTA2LTA3IDA5OjA4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IEZpeCBjb21waWxlciB3YXJuaW5ncyBpbiB1bml0IHRlc3QKCSAgZ3N0L2dzdG1lbW9yeS5jOjU3MDozODogZXJyb3I6IGltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBlbnVtZXJhdGlvbiB0eXBlICdHc3RNYXBGbGFncycgdG8gZGlmZmVyZW50IGVudW1lcmF0aW9uCgkgIHR5cGUgJ0dzdExvY2tGbGFncycgWy1XZXJyb3IsLVdlbnVtLWNvbnZlcnNpb25dCgkgIGZhaWxfdW5sZXNzIChnc3RfbWVtb3J5X2xvY2sgKG1lbSwgR1NUX01BUF9XUklURSkpOwoJICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Xn5+fn5+fn5+fn5+fn4KCjIwMTUtMDYtMDcgMDg6NTk6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IFVzZSB0aGUgY3VycmVudCBwYXRoIGRlbGF5IGZvciBjYWxjdWxhdGlvbiB0aGUgbG9jYWwvcmVtb3RlIGNsb2NrIHRpbWVzCgkgIFRoZSBtZWFuIG1pZ2h0IGN1cnJlbnRseSBiZSBjaGFuZ2luZywgYW5kIHRoZSBjdXJyZW50IHBhdGggZGVsYXkgaXMgdGhlCgkgIGNsb3Nlc3Qgd2UgY2FuIGdldCB0byB0aGUgYWN0dWFsIGRlbGF5IGFyb3VuZCB0aGUgY3VycmVudCBTWU5DIG1lc3NhZ2UuCgoyMDE1LTA2LTA2IDIzOjA1OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBBZGQgc29tZSBjb3B5cmlnaHQgc3R1ZmYKCjIwMTUtMDYtMDYgMjE6NDM6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG50cHBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bnRwcGFja2V0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBuZXRjbGllbnRjbG9jazogQWRkIE5UUHY0IHN1cHBvcnQKCSAgVGhpcyB1c2VzIGFsbCBvZiB0aGUgbmV0Y2xpZW50Y2xvY2sgY29kZSwgZXhjZXB0IGZvciB0aGUgZ2VuZXJhdGlvbiBhbmQKCSAgcGFyc2luZyBvZiBwYWNrZXRzLiBVbmZvcnR1bmF0ZWx5IHNvbWUgY29kZSBkdXBsaWNhdGlvbiB3YXMgbmVjZXNzYXJ5CgkgIGJlY2F1c2UgR3N0TmV0VGltZVBhY2tldCBpcyBwdWJsaWMgQVBJIGFuZCBjb3VsZG4ndCBiZSBleHRlbmRlZCBlYXNpbHkKCSAgdG8gc3VwcG9ydCBOVFB2NCBwYWNrZXRzIHdpdGhvdXQgYnJlYWtpbmcgQVBJL0FCSS4KCjIwMTUtMDYtMDYgMjA6Mzk6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2s6IFByZXBhcmF0aW9uIGZvciBOVFB2NCBzdXBwb3J0CgkgIFdlIGV4dGVuZCBvdXIgY2FsY3VsYXRpb25zIHRvIHdvcmsgd2l0aCBsb2NhbCBzZW5kIHRpbWUsIHJlbW90ZSByZWNlaXZlIHRpbWUsCgkgIHJlbW90ZSBzZW5kIHRpbWUgYW5kIGxvY2FsIHJlY2VpdmUgdGltZS4gRm9yIHRoZSBuZXRjbGllbnRjbG9jayBwcm90b2NvbCwKCSAgcmVtb3RlIHJlY2VpdmUgYW5kIHNlbmQgdGltZSBhcmUgYXNzdW1lZCB0byBiZSB0aGUgc2FtZSB2YWx1ZS4KCSAgRm9yIHRoZSByZXN1bHRzLCB0aGlzIG1vZGlmaWVkIGNhbGN1bGF0aW9uIG1ha2VzIGFic29sdXRlbHkgbm8gZGlmZmVyZW5jZQoJICB1bmxlc3MgdGhlIHR3byByZW1vdGUgdGltZXMgYXJlIGRpZmZlcmVudC4KCjIwMTUtMDYtMDYgMTk6MDE6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xpZW50Y2xvY2suIEZpeCBsYXN0IGNvbW1pdAoJICBBcHBhcmVudGx5IEkgZmFpbGVkIGF0IGdpdCBhZGQgLWkuCgoyMDE1LTA2LTA2IDE4OjQyOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBNYWtlIGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldygpIGEgdGhpbmcgd3JhcHBlciBhcm91bmQgZ19vYmplY3RfbmV3KCkKCSAgQmluZGluZ3Mgd2lsbCBsaWtlIHRoaXMsIGFuZCBhbHNvIGl0IGZpeGVzIGEgRklYTUUgY29tbWVudC4KCjIwMTUtMDYtMDYgMTQ6MzQ6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IFVzZSAjZGVmaW5lIGV2ZXJ5d2hlcmUgaW5zdGVhZCBvZiBHX05fRUxFTUVOVFMoKQoKMjAxNS0wNi0wNiAxNDozMToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogRmlsdGVyIFJUVHMgYmFzZWQgb24gdGhlIG1lZGlhbiBvZiB0aGUgbGFzdCBSVFRzIGJlZm9yZSBjb25zaWRlcmluZyB0aGVtIGF0IGFsbAoJICBUaGlzIGltcHJvdmVzIGFjY3VyYWN5IG9uIHdpZmkgb3Igc2ltaWxhciBuZXR3b3Jrcywgd2hlcmUgdGhlIFJUVCBjYW4gZ28gdmVyeQoJICBoaWdoIHVwIGZvciBhIHNpbmdsZSBvYnNlcnZhdGlvbiBldmVyeSBub3cgYW5kIHRoZW4uIFdpdGhvdXQgZmlsdGVyaW5nIHRoZW0KCSAgYXdheSBjb21wbGV0ZWx5LCB0aGV5IHdvdWxkIHN0aWxsIHN0aWxsIG1vZGlmeSB0aGUgYXZlcmFnZSBSVFQsIGFuZCB0aHVzIGFsbAoJICBjbG9jayBlc3RpbWF0aW9ucy4KCjIwMTUtMDYtMDYgMTQ6MTk6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IFVzZSBhIHN5c3RlbSBjbG9jayBmb3IgdGhlIHRpbWUgb2JzZXJ2YXRpb25zIGluc3RlYWQgb2YgZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCgpCgkgIFRoZXkgZG9uJ3QgbmVjZXNzYXJpbHkgdXNlIHRoZSBzYW1lIHVuZGVybHlpbmcgY2xvY2tzIChlLmcuIG9uIFdpbmRvd3MpLCBvcgoJICBtaWdodCBiZSBjb25maWd1cmVkIHRvIGEgZGlmZmVyZW50IGNsb2NrIHR5cGUgKG1vbm90b25pYyB2cy4gcmVhbCB0aW1lIGNsb2NrKS4KCSAgV2UgbmVlZCB0aGUgdmFsdWVzIGEgY2xlYW4gc3lzdGVtIGNsb2NrIHJldHVybnMsIGFzIHRob3NlIGFyZSB0aGUgdmFsdWVzIHVzZWQKCSAgYnkgdGhlIGludGVybmFsIGNsb2Nrcy4KCjIwMTUtMDYtMDYgMTI6MzU6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwY2xvY2s6IEZpeCBkb2N1bWVudGF0aW9uIGEgYml0CgoyMDE1LTA2LTA1IDE5OjM1OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHM6IGZha2VzaW5rOiB0ZXN0IG5vdGlmeTo6bGFzdC1tZXNzYWdlIGFuZCBkZWVwLW5vdGlmeTo6bGFzdC1tZXNzYWdlCgkgIGRlZXAtbm90aWZ5OjpsYXN0LW1lc3NhZ2Ugc2VlbXMgdG8gY2F1c2Ugc29tZSBwcm9ibGVtcywgc28gZGlzYWJsZSBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNjQyCgoyMDE1LTA2LTA1IDEwOjAyOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFBvc3QgYW4gZXJyb3IgaWYgd2UgY2FuJ3QgdHlwZWZpbmQgdGhlIGRhdGEgdW50aWwgRU9TCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTA0MzkKCjIwMTUtMDYtMDQgMTk6MDU6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyLmM6CgkgIHB0cC1oZWxwZXI6IE1ha2Ugc3VyZSB0byB1c2UgZ19wb2xsKCkgZm9yIHRoZSBtYWluIGNvbnRleHQKCSAgVGhlIG1vZGlmaWVkIG1haW4gY29udGV4dCBmcm9tIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDEwNTQKCSAgc29tZWhvdyBjYWxscyBzZXR1Z2lkKCksIHdoaWNoIGFib3J0KClzIHNldHVpZCByb290IGFwcGxpY2F0aW9ucyBvbiBPU1guCgoyMDE1LTA2LTA0IDE4OjMyOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHAtaGVscGVyOiBNYWtlIHN1cmUgdGhhdCB3ZSBhcmUgcnVubmluZyBzZXR1aWQgcm9vdCBpZiBjb25maWd1cmVkIHRoYXQgd2F5CgoyMDE1LTA2LTA0IDE4OjAwOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHAtaGVscGVyOiBGaXggaW50ZXJmYWNlIGxpc3RpbmcgYW5kIE1BQyByZXRyaWV2YWwgb24gT1NYCgoyMDE1LTA2LTAzIDE5OjA0OjE1ICswMzAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgIGdzdC1pbmRlbnQ6IEFkZCBzdXBwb3J0IGZvciBnaW5kZW50IGFzIGV4ZWN1dGFibGUgbmFtZQoJICBnc3QtaW5kZW50IHVzZWQgdG8gc3VwcG9ydCBnbnVpbmRlbnQgYW5kIGluZGVudCBhcyBleGVjdXRhYmxlIG5hbWVzLgoJICBIb3dldmVyLCBvbiBPU1ggb25lIGNhbiAiYnJldyBpbnN0YWxsIGdudS1pbmRlbnQiIGFuZCB0aGVuIHRoZQoJICBleGVjdXRhYmxlIG5hbWUgd2lsbCBiZSBnaW5kZW50LiBBZGRlZCBzdXBwb3J0IGZvciB0aGF0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzUxCgoyMDE1LTA2LTAzIDE2OjQyOjU3ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJICBnaXRpZ25vcmU6IGFkZCBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wdHAtaGVscGVyCgoyMDE1LTA2LTAzIDE2OjM0OjU4ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgcHRwOiBpZ25vcmUgcGVybWlzc2lvbiBlcnJvcnMgaW4gTWFrZWZpbGUKCSAgVG8gc2F0aXNmeSB0aGUgYnVpbGRzbGF2ZXMgaWdub3JlIHBlcm1pc3Npb24gZXJyb3JzIGluIGNob3duLCBjaG1vZCBhbmQgc2V0Y2FwCgoyMDE1LTA2LTAzIDE3OjA2OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcHRwLWhlbHBlci5jOgoJICBwdHA6IERvbid0IHVzZSBTSU9DR0lGSFdBRERSIG9uIEFwcGxlCgkgIEp1c3QgI2lmZGVmIHRoZSBjb2RlIGZvciBub3csIHRoaXMgc2hvdWxkIGJlIGltcGxlbWVudGVkIGFyb3VuZAoJICBJT0tpdCBsYXRlciBpbnN0ZWFkIG9mIHVzaW5nIGlvY3Rscy4KCjIwMTUtMDYtMDMgMTY6Mjg6NDQgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBidWlsZDogbWFrZSBpbnN0YWxsLWV4ZWMtaG9va3MgZGVwZW5kIG9uIGluc3RhbGwtaGVscGVyc1BST0dSQU1TCgkgIFRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyB3aGVyZSBtYWtlIHdvdWxkIHRyeSB0byBjaGFuZ2Ugb3duZXJzaGlwIGFuZAoJICBwZXJtaXNzaW9ucyBvZiB0aGUgbm90LXlldC1pbnN0YWxsZWQgcHRwIGhlbHBlci4KCjIwMTUtMDYtMDMgMTY6MDg6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBGaXggZGVidWcgb3V0cHV0IHRvIHByaW50IHRoZSBkaWZmZXJlbmNlIGluc3RlYWQgb2YgYWJzb2x1dGUgdmFsdWVzCgoyMDE1LTA2LTAzIDE1OjIyOjMxICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5jOgoJICBwdHBjbG9jazogZml4IGNvbXBpbGF0aW9uCgkgIERvbid0IHB1dCBjb2RlIGJldHdlZW4gZGVjbGFyYXRpb25zLgoJICBGaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzCgoyMDE1LTA2LTAzIDExOjA0OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogQWRkIG1lZGlhbiBiYXNlZCBwcmUtZmlsdGVyaW5nIG9mIGRlbGF5cwoJICBJZiB0aGUgZGVsYXkgbWVhc3VyZW1lbnQgaXMgdG9vIGZhciBhd2F5IGZyb20gdGhlIG1lZGlhbiBvZiB0aGUgd2luZG93IG9mIGxhc3QKCSAgZGVsYXkgbWVhc3VyZW1lbnRzLCB3ZSBkaXNjYXJkIGl0LiBUaGlzIGluY3JlYXNlcyBhY2N1cmFjeSBvbiB3aWZpIGEgbG90LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MzkxCgoyMDE1LTA2LTAyIDE1OjI0OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkgIHB0cDogQWRkICNkZWZpbmUgdG8gb25seSB1c2UgU1lOQyBtZXNzYWdlcyBmb3Igd2hpY2ggd2UgY2FuIHNlbmQgREVMQVlfUkVRCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDUtMTUgMTY6NTg6NTEgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwY2xvY2suYzoKCSAgcHRwOiBBZGQgI2RlZmluZXMgdG8gZW5hYmxlL2Rpc2FibGUgaW1wcm92ZW1lbnRzIGZvciB1bnJlbGlhYmxlIG5ldHdvcmtzCgkgIFdlIHNob3VsZCBkbyBzb21lIG1vcmUgbWVhc3VyZW1lbnRzIHdpdGggYWxsIHRoZXNlIGFuZCBjaGVjayBob3cgbXVjaCBzZW5zZQoJICB0aGV5IG1ha2UgZm9yIFBUUC4gQWxzbyBlbmFibGluZyB0aGVtIG1lYW5zIG5vdCBmb2xsb3dpbmcgSUVFRTE1ODgtMjAwOCBieSB0aGUKCSAgbGV0dGVyIGFueW1vcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDUtMTQgMTI6MTg6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXB0cC1oZWxwZXIuYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0cHRwX3ByaXZhdGUuaDoKCSogbGlicy9nc3QvbmV0L2dzdHB0cGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RwdHBjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvbmV0Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9wdHAvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvcHRwL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9wdHAvcHRwLXByaW50LXRpbWVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICBwdHA6IEluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgYSBQVFAgY2xvY2sKCSAgR3N0UHRwQ2xvY2sgaW1wbGVtZW50cyBhIFBUUCAoSUVFRTE1ODg6MjAwOCkgb3JkaW5hcnkgY2xvY2sgaW4KCSAgc2xhdmUtb25seSBtb2RlLCB0aGF0IGFsbG93cyBhIEdTdHJlYW1lciBwaXBlbGluZSB0byBzeW5jaHJvbml6ZQoJICB0byBhIFBUUCBuZXR3b3JrIGNsb2NrIGluIHNvbWUgc3BlY2lmaWMgZG9tYWluLgoJICBUaGUgUFRQIHN1YnN5c3RlbSBjYW4gYmUgaW5pdGlhbGl6ZWQgd2l0aCBnc3RfcHRwX2luaXQoKSwgd2hpY2ggdGhlbgoJICBzdGFydHMgYSBoZWxwZXIgcHJvY2VzcyB0byBkbyB0aGUgYWN0dWFsIGNvbW11bmljYXRpb24gdmlhIHRoZSBQVFAKCSAgcG9ydHMuIFRoaXMgaXMgcmVxdWlyZWQgYXMgUFRQIGxpc3RlbnMgb24gcG9ydHMgPCAxMDI0IGFuZCB0aHVzCgkgIHJlcXVpcmVzIHNwZWNpYWwgcHJpdmlsZWdlcy4gT25jZSB0aGlzIGhlbHBlciBwcm9jZXNzIGlzIHN0YXJ0ZWQsIHRoZQoJICBtYWluIHByb2Nlc3Mgd2lsbCBzeW5jaHJvbml6ZSB0byBhbGwgUFRQIGRvbWFpbnMgdGhhdCBhcmUgZGV0ZWN0ZWQgb24KCSAgdGhlIHNlbGVjdGVkIGludGVyZmFjZXMuCgkgIGdzdF9wdHBfY2xvY2tfbmV3KCkgdGhlbiBhbGxvd3MgdG8gY3JlYXRlIGEgR3N0Q2xvY2sgdGhhdCBwcm92aWRlcyB0aGUKCSAgUFRQIHRpbWUgZnJvbSBhIG1hc3RlciBjbG9jayBpbnNpZGUgYSBzcGVjaWZpYyBQVFAgZG9tYWluLiBUaGlzIGNsb2NrCgkgIHdpbGwgb25seSByZXR1cm4gdmFsaWQgdGltZXN0YW1wcyBvbmNlIHRoZSB0aW1lc3RhbXBzIGluIHRoZSBQVFAgZG9tYWluCgkgIGFyZSBrbm93bi4gVG8gY2hlY2sgdGhpcywgdGhlIEdzdFB0cENsb2NrOjppbnRlcm5hbC1jbG9jayBwcm9wZXJ0eSBhbmQKCSAgdGhlIHJlbGF0ZWQgbm90aWZ5OjpjbG9jayBzaWduYWwgY2FuIGJlIHVzZWQuIE9uY2UgdGhlIGludGVybmFsIGNsb2NrCgkgIGlzIG5vdCBOVUxMLCB0aGUgUFRQIGRvbWFpbidzIHRpbWUgaXMga25vd24uIEFsdGVybmF0aXZlbHkgeW91IGNhbiB3YWl0CgkgIGZvciB0aGlzIHdpdGggZ3N0X3B0cF9jbG9ja193YWl0X3JlYWR5KCkuCgkgIFRvIGdhdGhlciBzdGF0aXN0aWNzIGFib3V0IHRoZSBQVFAgY2xvY2sgc3luY2hyb25pemF0aW9uLAoJICBnc3RfcHRwX3N0YXRpc3RpY3NfY2FsbGJhY2tfYWRkKCkgY2FuIGJlIHVzZWQuIFRoaXMgZ2l2ZXMgdGhlCgkgIGFwcGxpY2F0aW9uIHRoZSBwb3NzaWJpbGl0eSB0byBjb2xsZWN0IGFsbCBraW5kcyBvZiBzdGF0aXN0aWNzCgkgIGZyb20gdGhlIGNsb2NrIHN5bmNocm9uaXphdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0OTM5MQoKMjAxNS0wNi0wMyAxMzoxNjoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBBZGQgR1NUX0NMT0NLX0ZMQUdfTkVFRFNfU1RBUlRVUF9TWU5DIGFuZCByZWxhdGVkIEFQSQoJICBnc3RfY2xvY2tfd2FpdF9mb3Jfc3luYygpLCBnc3RfY2xvY2tfaXNfc3luY2VkKCkgYW5kIGdzdF9jbG9ja19zZXRfc3luY2VkKCkKCSAgcGx1cyBhIHNpZ25hbCB0byBhc3luY2hyb25vdXNseSB3YWl0IGZvciB0aGUgY2xvY2sgdG8gYmUgc3luY2VkLgoJICBUaGlzIGNhbiBiZSB1c2VkIGJ5IGNsb2NrcyB0byBzaWduYWwgdGhhdCB0aGV5IG5lZWQgaW5pdGlhbCBzeW5jaHJvbml6YXRpb24KCSAgYmVmb3JlIHRoZXkgY2FuIHJlcG9ydCBhbnkgdGltZSwgYW5kIHRoYXQgdGhpcyBzeW5jaHJvbml6YXRpb24gY2FuIGFsc28gZ2V0CgkgIGNvbXBsZXRlbHkgbG9zdCBhdCBzb21lIHBvaW50LiBOZXR3b3JrIGNsb2NrcywgbGlrZSB0aGUgR1N0cmVhbWVyCgkgIG5ldGNsaWVudGNsb2NrLCBOVFAgb3IgUFRQIGNsb2NrcyBhcmUgZXhhbXBsZXMgZm9yIGNsb2NrcyB3aGVyZSB0aGlzIGlzIHVzZWZ1bAoJICB0byBoYXZlIGFzIHRoZXkgY2FuJ3QgcmVwb3J0IGFueSB0aW1lIGF0IGFsbCBiZWZvcmUgdGhleSdyZSBzeW5jZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkzOTEKCjIwMTUtMDYtMDMgMTg6MDM6MzYgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogcHJvdmlkZSBhIG1lbV91bm1hcCBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBmbGFncyB0byB1bm1hcAoJICBUaGVyZSBhcmUgZ3N0bWVtb3J5J3MgYXZhaWxhYmxlIHRoYXQgb3BlcmF0ZSBpbiB0d28gbWVtb3J5IGRvbWFpbnMKCSAgYW5kIG5lZWQgdG8gZW5zdXJlIGNvbnNpc3RlbnQgYWNjZXNzIGJldHdlZW4gdGhlc2UgZG9tYWlucy4KCSAgSW1hZ2luZSBhIHNjZW5hcmlvIHdoZXJlIGUuZy4gdGhlIEdMTWVtb3J5IGlzIG1hcHBlZCB0d2ljZSBpbiBib3RoCgkgIHRoZSBHUFUgYW5kIHRoZSBDUFUgZG9tYWluLiAgT24gdW5tYXAgb3IgYSBzdWJzZXF1ZW50IG1hcCwgaXQgd291bGQKCSAgbGlrZSB0byBlbnN1cmUgdGhhdCB0aGUgbW9zdCByZWNlbnQgZGF0YSBpcyBhdmFpbGFibGUgaW4gdGhlIG1lbW9yeQoJICBkb21haW4gcmVxdWVzdGVkLiAgRWl0aGVyIGJ5IGZsdXNoaW5nIHRoZSB3cml0ZXMgYW5kL29yIGluaXRpYXRpbmcgYQoJICBETUEgdHJhbnNmZXIuICBXaXRob3V0IGtub3dpbmcgd2hpY2ggZG9tYWluIGlzIGJlaW5nIHVubWFwcGVkLCB0aGUKCSAgbWVtb3J5IGRvZXMgbm90IGtub3cgd2hlcmUgdGhlIG1vc3QgcmVjZW50IGRhdGEgaXMgdG8gdHJhbnNmZXIgdG8KCSAgdGhlIG90aGVyIG1lbW9yeSBkb21haW4uCgkgIE5vdGU6IHRoaXMgc3RpbGwgZG9lcyBub3QgYWxsb3cgZG93bmdyYWRpbmcgYSBtZW1vcnkgbWFwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMzE5CgoyMDE1LTA2LTAyIDE2OjE0OjUwICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBnc3RfbWVtb3J5X3NoYXJlIG1heSBmYWlsIHRvIGV4Y2x1c2l2ZWx5IGxvY2sgdGhlIHBhcmVudCBtZW1vcnkKCSAgTm93IHRoYXQgbG9ja2luZyBleGNsdXNpdmVseSBkb3dzIG5vdCBhbHdheXMgc3VjY2VlZCwgd2UgbmVlZCB0byBzaWduYWwKCSAgdGhlIGZhaWx1cmUgY2FzZSBmcm9tIGdzdF9tZW1vcnlfaW5pdC4KCSAgUmF0aGVyIHRoYW4gaW50cm9kdWNpbmcgYW4gQVBJIG9yIGZ1bmNpb25hbGl0eSBjaGFuZ2UgdG8gZ3N0X21lbW9yeV9pbml0LAoJICB3b3JrYXJvdW5kIGJ5IGNoZWNraW5nIGV4Y2x1c2l2aXR5IGluIHRoZSBjYWxsaW5nIGNvZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNzIKCjIwMTUtMDYtMDIgMDA6MjM6MzcgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGxvY2tpbmcgbWVtb3J5IGV4Y2x1c2l2ZWx5IG1heSBmYWlsCgkgIEF0dGVtcHQgdG8gcmV0dXJuIGEgY29weSBvZiB0aGUgbWVtb3J5IGluc3RlYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTAxNzIKCjIwMTUtMDUtMzEgMjE6MjU6MjMgKzEwMDAgIE1hdHRoZXcgV2F0ZXJzIDxtYXR0aGV3QGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWluaW9iamVjdDogZGlzYWxsb3cgYSBkb3VibGUgd3JpdGUvZXhjbHVzaXZlIGxvY2sKCSAgZ3N0X21lbW9yeV9sb2NrIChtZW0sIFdSSVRFIHwgRVhDTFVTSVZFKTsKCSAgZ3N0X21lbW9yeV9sb2NrIChtZW0sIFdSSVRFIHwgRVhDTFVTSVZFKTsKCSAgU3VjY2VlZHMgd2hlbiB0aGUgcGFydC1taW5pb2JqZWN0LnR4dCBkZXNpZ24gZG9jIHN1Z2dlc3RzIHRoYXQgdGhpcyBzaG91bGQgZmFpbDoKCSAgIkEgZ3N0X21pbmlfb2JqZWN0X2xvY2soKSBjYW4gZmFpbCB3aGVuIGEgV1JJVEUgbG9jayBpcyByZXF1ZXN0ZWQgYW5kCgkgIHRoZSBleGNsdXNpdmUgY291bnRlciBpcyA+IDEuIEluZGVlZCBhIEdzdE1pbmlPYmplY3Qgb2JqZWN0IHdpdGggYW4KCSAgZXhjbHVzaXZlIGNvdW50ZXIgMSBpcyBsb2NrZWQgRVhDTFVTSVZFTFkgYnkgYXQgbGVhc3QgMiBvYmplY3RzIGFuZCBpcwoJICB0aGVyZWZvcmUgbm90IHdyaXRhYmxlLiIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDE3MgoKMjAxNS0wNi0wMiAyMDozMjozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBtYXRjaCByZXR1cm4gdHlwZSBvZiBnZXRfdXJpX3R5cGUoKSBpbXBsZW1lbnRhdGlvbiB0byBkZWNsYXJhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwMjkyCgoyMDE1LTA2LTAzIDAwOjEyOjM2ICsxMDAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBBZGQgYSBub3RlIGFib3V0IG1ldGFzIG5lZWRpbmcgdG8gYmUgY29waWVkIGxhc3QKCjIwMTUtMDUtMjcgMjI6MjM6MDAgKzEwMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogSW1wbGVtZW50IGdzdF92YWx1ZV9pc19zdWJzZXQoKSBmb3IgZmxhZ3NldHMKCjIwMTUtMDYtMDIgMTY6MzM6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJvdGVjdGlvbi5jOgoJICBjaGVjazogVXNlIEdTVF9DSEVDS19NQUlOIG1hY3JvCgoyMDE1LTA1LTIwIDIxOjE4OjA4ICswOTAwICBldW5oYWUgY2hvaSA8ZXVuaGFlMS5jaG9pQHNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogcmVsZWFzZSBsb2NrIGJlZm9yZSBwb3N0aW5nIG1zZwoJICB0byBhdm9pZCB0aGUgZGVhZGxvY2sgaW4gcGxheWJpbjIsCgkgIHNlbmQgbXNnIGFmdGVyIHJlbGVhc2UgdGhlIGRvd25sb2FkIGJ1ZmZlciBsb2NrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5NTM1CgoyMDE1LTA1LTMxIDIwOjIxOjQyIC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogYWRkIG5vdGUgYWJvdXQgbWlzc2luZyBmaWVsZCBjcmVhdGlvbiBvbiBfc2V0KCkKCjIwMTUtMDUtMzAgMTM6MDE6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHRlc3RzOiBmaXggc29tZSBsZWFrcyBpbiBuZXcgZmxhZ3NldCBjaGVja3MKCjIwMTUtMDUtMzAgMTI6Mzk6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogcmVtb3ZlIGR1cGxpY2F0ZSBhc3NpZ25tZW50CgkgIFdlJ3ZlIGFscmVhZHkgZG9uZSB0aGlzIGVhcmxpZXIgaW4gdGhlIGZ1bmN0aW9uLAoJICBhbmQgbm90aGluZyBoYXMgY2hhbmdlZCBzaW5jZSB3ZSBmaXJzdCByZWFkIGl0LgoKMjAxNS0wNS0yNyAxNzoyMjoyOCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3QvZ3N0LmM6IEFkZCBhIHdhcm5pbmcgYWJvdXQgRGxsTWFpbiB0byBwcmV2ZW50IG1pc3VzZQoJICBEbGxNYWluIHNob3VsZCBub3QgYmUgcmVsaWVkIG9uIGZvciBhbnl0aGluZyBleGNlcHQgc3RvcmluZyB0aGUgRExMIGhhbmRsZS4KCSAgSXQgc2hvdWxkIGFsc28gbm90IGJlIGRlZmluZWQgZm9yIHN0YXRpYyBidWlsZHMsIGJ1dCBkb2luZyBzbyBpcyBub3QKCSAgc3RyYWlnaHRmb3J3YXJkIGFuZCBpcyBtb3N0bHkgaGFybWxlc3MsIHNvIGxldCdzIGp1c3QgYWRkIGEgY29tbWVudCBhYm91dCB0aGF0CgkgIGZvciBub3cuCgoyMDE1LTA1LTI3IDEzOjU0OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBJbXByb3ZlIGRlYnVnIG91dHB1dCBhIGJpdAoKMjAxNS0wNS0yNiAxNDo0NjoxNiArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgZG9jczogZml4IHR5cG8gaW4gZHJhZnQta2xhc3MudHh0CgoyMDE1LTA1LTI2IDE0OjAzOjI1ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZG9jcy9jb2RlLXJldmlld3MvUkVBRE1FOgoJKiBkb2NzL2NvZGUtcmV2aWV3cy9nc3RiaW4uYy0xLjQxOgoJICBjb2RlLXJldmlld3M6IHJlbW92ZSBvYnNvbGV0ZSBjb2RlIHJldmlld3MKCSAgVGhpcyBvYnNvbGV0ZSBmb2xkZXIgaGFzbid0IGJlZW4gdG91Y2hlZCBzaW5jZSAyMDAxIGFuZCBoYXMgbm8gcHVycG9zZS4gSXQKCSAgY29uZnVzZXMgbmV3IGRldmVsb3BlcnMuCgoyMDE1LTA1LTI1IDIxOjAyOjI4ICsxMDAwICBNYXR0aGV3IFdhdGVycyA8bWF0dGhld0BjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgdGhlIHNsaWdodGx5IG1vcmUgY29ycmVjdCB0YWtlX3NhbXBsZSBmb3IgbGFzdC1zYW1wbGUKCSAgZ3N0X3ZhbHVlX3Rha2VfYnVmZmVyKCkgYW5kIGdzdF92YWx1ZV90YWtlX3NhbXBsZSgpIGJvdGggcmVzb2x2ZSB0bwoJICBnX3ZhbHVlX3Rha2VfYm94ZWQoKS4gIFVzZSB0aGUgbWV0aG9kIHdpdGggdGhlIGNvcnJlY3QgbmFtZSBpZiB3ZQoJICBldmVyIGNoYW5nZSB0aGF0LgoKMjAxNS0wNS0yNSAxNjoyMzozMyArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBBZGQgR3N0RmxhZ1NldCB0eXBlCgkgIEdzdEZsYWdTZXQgaXMgYSBuZXcgdHlwZSBkZXNpZ25lZCBmb3IgbmVnb3RpYXRpbmcgc2V0cwoJICBvZiBib29sZWFuIGNhcGFiaWxpdGllcyBmbGFncywgY29uc2lzdGluZyBvZiBhIDMyLWJpdAoJICBmbGFncyBiaXRmaWVsZCBhbmQgMzItYml0IG1hc2sgZmllbGQuIFRoZSBtYXNrIGZpZWxkCgkgIGluZGljYXRlcyB3aGljaCBvZiB0aGUgZmxhZ3MgYml0cyBhbiBlbGVtZW50IG5lZWRzIHRvIGhhdmUKCSAgYXMgc3BlY2lmaWMgdmFsdWVzLCBhbmQgd2hpY2ggaXQgZG9lc24ndCBjYXJlIGFib3V0LgoJICBUaGlzIGFsbG93cyBlZmZpY2llbnQgbmVnb3RpYXRpb24gb2YgYXJyYXlzIG9mIGJvb2xlYW4KCSAgY2FwYWJpbGl0aWVzLgoJICBUaGUgc3RhbmRhcmQgc2VyaWFsaXNhdGlvbiBmb3JtYXQgaXMgRkxBR1M6TUFTSywgd2l0aAoJICBmbGFncyBhbmQgbWFzayBmaWVsZHMgZXhwcmVzc2VkIGluIGhleGFkZWNpbWFsLCBob3dldmVyCgkgIEdzdEZsYWdTZXQgaGFzIGEgZ3N0X3JlZ2lzdGVyX2ZsYWdzZXQoKSBmdW5jdGlvbiwgd2hpY2gKCSAgYXNzb2NpYXRlcyBhIG5ldyBHc3RGbGFnU2V0IGRlcml2ZWQgdHlwZSB3aXRoIGFuIGV4aXN0aW5nCgkgIEdGbGFncyBndHlwZS4gV2hlbiBzZXJpYWxpemluZyBhIEdzdEZsYWdTZXQgd2l0aCBhbgoJICBhc3NvY2lhdGVkIHNldCBvZiBHRmxhZ3MsIGl0IGFsc28gc2VyaWFsaXplcyBhIGh1bWFuLXJlYWRhYmxlCgkgIGZvcm0gb2YgdGhlIGZsYWdzIGZvciBlYXNpZXIgZGVidWdnaW5nLgoJICBJdCBpcyBwb3NzaWJsZSB0byBwYXJzZSBhIEdGbGFncyBzdHlsZSBzZXJpYWxpc2F0aW9uIG9mIGEKCSAgZmxhZ3NldCwgd2l0aG91dCB0aGUgaGV4IHBvcnRpb24gb24gdGhlIGZyb250LiBpZSwKCSAgK2ZsYWcxL2ZsYWcyL2ZsYWczK2ZsYWc0LCB0byBpbmRpY2F0ZSB0aGF0CgkgIGZsYWcxICYgZmxhZzQgbXVzdCBiZSBzZXQsIGFuZCBmbGFnMi9mbGFnMyBtdXN0IGJlIHVuc2V0LAoJICBhbmQgYW55IG90aGVyIGZsYWdzIGFyZSBkb24ndC1jYXJlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MzczCgoyMDE1LTA1LTIwIDIwOjE5OjI5ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZCBhIGNvbXBhcmlzaW9uIGZ1bmN0aW9uIGZvciBHc3RTdHJ1Y3R1cmVzCgoyMDE1LTA1LTE5IDE0OjM0OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0OiBrZWVwIEdDYW5jZWxsYWJsZSBmZCBhcm91bmQgaW5zdGVhZCBvZiByZS1jcmVhdGluZyBpdCBjb25zdGFudGx5CgkgIEp1c3QgY3JlYXRlIHRoZSBjYW5jZWxsYWJsZSBmZCBvbmNlIGFuZCBrZWVwIGl0IGFyb3VuZCBpbnN0ZWFkCgkgIG9mIGNyZWF0aW5nL2Nsb3NpbmcgaXQgZm9yIGV2ZXJ5IHNpbmdsZSBwYWNrZXQuIFNpbmNlIHdlIHNwZW5kCgkgIG1vc3QgdGltZSB3YWl0aW5nIGZvciBwYWNrZXRzLCBhbiBmZCBpcyBhbGxvY2VkIGFuZCBpbiB1c2UgcHJldHR5CgkgIG11Y2ggYWxsIHRoZSB0aW1lIGFueXdheS4KCjIwMTUtMDUtMTggMTI6NTI6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIFJldmVydCAiZG9jOiBXb3JrYXJvdW5kIGd0a2RvYyBpc3N1ZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0NjBhN2JmNjgyOTJkMDU3Yzc3ZTg0ZDFlYTg2YjhlNzNmYzA4MWYzLgoJICBUaGlzIHNob3VsZCBiZSBmaXhlZCBieSB0aGUgZ3RrLWRvYyAxLjIzIHJlbGVhc2UuCgkgIDxwYXJhPiBjYW5ub3QgY29udGFpbiA8cmVmc2VjdDI+OgoJICBodHRwOi8vd3d3LmRvY2Jvb2sub3JnL3RkZy9lbi9odG1sL3BhcmEuaHRtbAoJICBodHRwOi8vd3d3LmRvY2Jvb2sub3JnL3RkZy9lbi9odG1sL3JlZnNlY3QyLmh0bWwKCjIwMTUtMDUtMTEgMTA6NTI6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IHNtYWxsIGNsZWFudXAKCSAgVGhlIGVycm9yIHBhdGggdW5yZWZzIGZpbGUtPmZpbGUgc28gbWFrZSBzdXJlIHdlIG9ubHkgZ28gdGhlcmUgd2hlbgoJICB0aGVyZSBpcyBhIG5vbi1OVUxMIGZpbGUtPmZpbGUuCgoyMDE1LTA1LTE2IDIzOjI5OjAzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZG9jOiBXb3JrYXJvdW5kIGd0a2RvYyBpc3N1ZQoJICBXaXRoIGd0a2RvYyAxLjIyLCB0aGUgWE1MIGdlbmVyYXRvciBmYWlscyB3aGVuIGEgaXRlbWl6ZWRsaXN0IGlzCgkgIGZvbGxvd2VkIGJ5IGEgcmVmc2VjdDIuIFdvcmthcm91bmQgdGhlIGlzc3VlIGJ5IHdyYXBwaW5nIHRoZSByZWZzZWN0MgoJICBpbnRvIHBhcmEuCgoyMDE1LTA1LTEzIDEzOjI4OjA1IC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTE2IDEyOjU3OjEyICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIHRpbWVkdmFsdWVjb250cm9sc291cmNlOiBDaGVjayB0aGF0IHRoZSBvbmx5IGl0ZXIgaXMgdGhlIGVuZCBpdGVyIGluIHRoZSBHU2VxdWVuY2UKCSAgUHJldmlvdXMgcGF0Y2ggd2FzIGFzc3VtaW5nIHRoYXQgaWYgdGhlIHJldHVybmVkIGl0ZXIgd2FzIHRoZSBsYXN0IGl0ZXIKCSAgdGhlIEdTZXF1ZW5jZSB3YXMgZW1wdHksIHdoaWNoIGlzIG9idmlvdXNseSB3cm9uZy4KCjIwMTUtMDUtMTYgMTE6MTc6NDAgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IEZpeCByZW1vdmluZyBhbGwga2V5ZnJhbWVzLCBhbmQgYWRkaW5nIG9uZSBiYWNrCgkgIFdlIHdlcmUgc2VnZmF1bHRpbmcgYmVjYXVzZSBnX3NlcXVlbmNlX3NlYXJjaCB3YXMgcmV0dXJuaW5nIHRoZSBpdGVyX2VuZCwKCSAgYW5kIHRoYXQgaXRlcmF0b3IgZG9lcyBub3QgY29udGFpbiBhbnl0aGluZyBhbmQgdGh1cyBzaG91bGQgbm90IGJlIHVzZWQKCSAgZGlyZWN0bHkKCjIwMTUtMDUtMTUgMjA6NDQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogZml4IHByb3BlcnR5IGRlc2NyaXB0aW9uCgkgIFdlJ3JlIGVudGVycHJpc2Ugbm93IGZvbGtzLgoKMjAxNS0wNS0xNSAxNDo1NzoxNCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYnVtcCBjaGFpbiBmdW5jdGlvbiBjYWxsIGxvZ3MgZnJvbSBMT0cgdG8gREVCVUcKCSAgVGhleSdyZSByZWFsbHkgdXNlZnVsIGNvbXBhcmVkIHRvIG90aGVyIExPRyBzdHVmZiBpbiB0aGVyZSwgc28KCSAgdGhlcmUgaXMgdmFsdWUgaXMgaW5jbHVkaW5nIHRoZW0gYW5kIG5vdCB0aGUgcmVzdC4KCjIwMTUtMDUtMTUgMTM6NDM6MTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0b2JqZWN0OiBhZGQgZ3N0X29iamVjdF9oYXNfYXNfYW5jZXN0b3IgYW5kIGRlcHJlY2F0ZSBwcmV2aW91cyBmdW5jdGlvbgoJICBUaGUgb2xkIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yIHdpbGwgY2FsbCB0aGUgbmV3IGNvZGUuIFRoaXMgZXN0YWJsaXNoZXMgdGhlCgkgIHN5bWV0cnkgd2l0aCB0aGUgbmV3IGdzdF9vYmplY3RfaGFzX2FzX3BhcmVudC4KCSAgQVBJOiBnc3Rfb2JqZWN0X2hhc19hc19hbmNlc3RvcigpCgoyMDE1LTA1LTE1IDA4OjA1OjUwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdG9iamVjdDogcmVuYW1lIGdzdF9vYmplY3RfaGFzX3BhcmVudCB0byBnc3Rfb2JqZWN0X2hhc19hc19wYXJlbnQKCSAgVGhpcyBhdm9pZCBjb25mdXNpb24gd2l0aCBhIHBvdGVudGlhbCBwdW5jdGlvbiB0aGF0IGNoZWNrIGlmIGEgZ3N0b2JqZWN0IGhhcy1hCgkgIHBhcmVudC4KCSAgQVBJOiBnc3Rfb2JqZWN0X2hhc19hc19wYXJlbnQoKQoKMjAxNS0wNS0xNCAxNTo0OTo0MyArMDgwMCAgSmlhbiA8Smlhbi5MaUBmcmVlc2NhbGUuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRml4IFFvUy9sYXRlbmVzcyBjaGVja2luZyBpZiBzdWJjbGFzcyBpbXBsZW1lbnRzIHByZXBhcmUvcHJlcGFyZV9saXN0IHZmdW5jcwoJICBJbiBiYXNlc2luayBmdW5jdGlvbnMgZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCgpLCBiZWxvdyBjb2RlIGlzIHVzZWQgdG8KCSAgY2hlY2tpbmcgaWYgYnVmZmVyIGlzIGxhdGUgYmVmb3JlIGRvaW5nIHByZXBhcmUgY2FsbCB0byBzYXZlIHNvbWUgZWZmb3J0OgoJICBpZiAoc3luY2FibGUgJiYgZG9fc3luYykKCSAgbGF0ZSA9CgkgIGdzdF9iYXNlX3NpbmtfaXNfdG9vX2xhdGUgKGJhc2VzaW5rLCBvYmosIHJzdGFydCwgcnN0b3AsCgkgIEdTVF9DTE9DS19FQVJMWSwgMCwgRkFMU0UpOwoJICBpZiAoR19VTkxJS0VMWSAobGF0ZSkpCgkgIGdvdG8gZHJvcHBlZDsKCSAgQnV0IHRoaXMgY29kZSBoYXMgcHJvYmxlbSwgaXQgc2hvdWxkIGNhbGN1bGF0ZSBqaXR0ZXIgYmFzZWQgb24gY3VycmVudCBtZWRpYQoJICBjbG9jaywgcmF0aGVyIHRoYW4ganVzdCBwYXNzaW5nIDAuIEkgZm91bmQgaXQgd2lsbCBkcm9wIGFsbCB0aGUgZnJhbWVzIHdoZW4KCSAgcmV3aW5kIGluIHNsb3cgc3BlZWQsIHN1Y2ggYXMgLTJYLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ5MjU4CgoyMDE1LTA1LTExIDE3OjE0OjUwICswMjAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGRvY3M6IGZpeCBhbmQgdXBkYXRlIGRvY3VtZW50YXRpb24KCSAgVXBkYXRlIGV4YW1wbGUgdG8gdXNlIGdzdC1sYXVuY2gtMS4wIGFuZCBmaXggYSBwYXJhZ3JhcGguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDkyMzMKCjIwMTUtMDUtMDkgMTE6NTM6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgQWRkIHJlbW92ZWQgZXhhbXBsZSBkaXJlY3RvcmllcyB0byBDUlVGVF9ESVJTCgoyMDE1LTA1LTA4IDE0OjA4OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBkb2NzOiBnc3QtbGF1bmNoIC0+IGdzdC1sYXVuY2gtMS4wIGluIGV4YW1wbGUgcGlwZWxpbmVzCgkgIEFuZCBzb21lIHNtYWxsIGV4YW1wbGUgcGlwZWxpbmUgZml4LXVwcy4KCjIwMTUtMDUtMDkgMjI6MTA6MzAgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMDkgMjI6MDQ6NTIgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtY29udGV4dC50eHQ6IG1pbm9yIGNvcnJlY3Rpb25zCgoyMDE1LTA1LTA5IDIyOjAxOjA0IC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMDIgMTc6MTY6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBndWlkZXMgdG8gbWVudGlvbiBuZXcgZGV2aWNlIHByb2JpbmcgQVBJCgoyMDE1LTA1LTAxIDIwOjM3OjE4IC0wMzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogbWlub3IgY29ycmVjdGlvbnMKCjIwMTUtMDUtMDEgMTg6MzI6MjYgKzA5MDAgIEppbW15IE9obiA8eW9uZ2ppbi5vaG5AbGdlLmNvbT4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogcmVtb3ZlIGR1cGxpY2F0ZWQgaW5jbHVkZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NzM5CgoyMDE1LTA0LTI4IDE5OjU5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL3F1ZXVlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgdGVzdHM6IHJlbW92ZSBzb21lIHBvaW50bGVzcyBhbmNpZW50IGNvZGUgZXhhbXBsZXMKCjIwMTUtMDQtMjggMTc6NTQ6NTEgKzAzMDAgIElseWEgS29uc3RhbnRpbm92IDxpbHlhLmtvbnN0YW50aW5vdkBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBHU1RfQkFTRV9QQVJTRV9GTEFHX0xPU1RfU1lOQwoJICBTaW5jZSBmcmFtZS0+cHJpdi0+ZGlzY29udCB3YXMgY2xlYXJlZCBlYXJsaWVyLAoJICBHU1RfQkFTRV9QQVJTRV9GTEFHX0xPU1RfU1lOQyB3YXMgbmV2ZXIgYmVpbmcgc2V0LgoJICBUYWtlIHRoZSBjaGFuY2UgdG8gcmVmYWN0b3IgdGhlIGZyYW1lIGNyZWF0aW9uIGEgYml0IHRvCgkgIG9yZ2FuaXplIHRoZSBmbGFncyBzZXR0aW5nIGFuZCByZXNldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODIzNwoKMjAxNS0wMy0wOSAxOTozMTozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNwZWN0IERJU0NPTlQgZmxhZyBvbiBidWZmZXJzCgkgIERyYWluIHRoZSBwYXJzZXIgd2hlbiBhIERJU0NPTlQgYnVmZmVyIGlzIHJlY2VpdmVkIGFuZCB0aGVuIG1hcmsKCSAgdGhlIG5leHQgYnVmZmVyIHRvIGJlIHB1c2hlZCBhcyBhIERJU0NPTlQgb25lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDU5MjcKCjIwMTUtMDQtMjggMTU6NTA6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBDb3B5IHRoZSB0YWcgc2NvcGUgdG9vIHdoZW4gY29weWluZyB0YWcgbGlzdHMKCjIwMTUtMDQtMjAgMjA6MDI6NTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBBbHNvIHN5bmNocm9uaXplIEdBUCBldmVudHMgaW4gc3luYz0xCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDE4NTMKCjIwMTUtMDQtMjAgMTk6MzE6MzcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IFdpdGggc3luYz10cnVlLCBkb24ndCBwcmUtcm9sbAoJICBUbyBhY3QgbGlrZSBhIHJlYWwgbGl2ZSBlbGVtZW50LCBibG9jayB0aGUgc3RyZWFtaW5nIHdoZW4gcGF1c2VkLCBhbmQKCSAgcmV0dXJuIE5PX1BSRVJPTEwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDE4NTMKCjIwMTUtMDQtMjAgMTk6MjQ6NDUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IFRha2UgdXBzdHJlYW0gbGF0ZW5jeSBpbnRvIGFjY291bnQgZm9yIHN5bmM9MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxODUzCgoyMDE1LTA0LTIwIDE5OjA3OjI3IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogSGFuZGxlIFBUUyBhbmQgRFRTIHNlcGFyYXRlbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMTg1MwoKMjAxNS0wNC0yNiAxNzowNTo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkqIEFuZHJvaWQubWs6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgUmVtb3ZlIG9ic29sZXRlIEFuZHJvaWQgYnVpbGQgY3J1ZnQKCSAgVGhpcyBpcyBub3QgbmVlZGVkIGFueSBsb25nZXIuCgoyMDE1LTA0LTI0IDE2OjUxOjI0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IE9ubHkgdHJ5IHRvIHB1c2ggdGhlIGZpcnN0IEVPUyByZWNlaXZlZAoJICBTdWJzZXF1ZW50IEVPUyB3aWxsIHB1c2ggb24gdGhlIHNvdXJjZSBwYWQgdGhhdCBhbHJlYWR5IHJlY2VpdmVkCgkgIEVPUyBhbmQgdGhhdCB3aWxsIG1ha2UgdGhlIGV2ZW50IGZ1bmN0aW9uIHJldHVybiBGQUxTRS4gSXQgbmVlZHMKCSAgb25seSB0byBwdXNoIHRoZSBmaXJzdCBvbmUgYW5kIG9ubHkgcmV0dXJuIFRSVUUgZm9yIHRoZSBzdWJzZXF1ZW50CgkgIG9uZXMuCgoyMDE1LTA0LTI0IDE1OjE5OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByaW50Zi5jOgoJICB0ZXN0czogcHJpbnRmOiBhZGQgdW5pdCB0ZXN0IGZvciAlJQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4NDE0CgoyMDE1LTA0LTI0IDE1OjE2OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogZml4IGludmFsaWQgbWVtb3J5IGFjY2VzcyBpbiBjYXNlIG9mICUlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDg0MTQKCjIwMTUtMDQtMjMgMTU6NTU6NDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGRlZmluZSBHU1RfQ0hFQ0tfVEVTVF9FTlZJUk9OTUVOVF9CRUFDT04KCjIwMTUtMDQtMjMgMTU6NTQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogb3B0aW9uYWxseSBjaGVjayBlbnYgdmFyIGZvciB1cyB0byBtYWtlIHN1cmUgdGVzdCBlbnYgaXMgc2V0IHVwCgkgIElmIEdTVF9DSEVDS19URVNUX0VOVklST05NRU5UX0JFQUNPTiBpcyBkZWZpbmVkLCBjaGVjayBpZiB0aGUKCSAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXQgaXMgZGVmaW5lZCB0byBpcyBzZXQgdXAgYXQgdGhlIHN0YXJ0CgkgIG9mIGVhY2ggdGVzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03NDc2MjQKCjIwMTUtMDQtMjMgMDk6MDY6NDIgKzA5MDAgIENoYW5nYm9rIENoZWEgPGNoYW5nYm9rLmNoZWFAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFJlbW92ZSB1bnVzZWQgYXNzaWdubWVudCBpbiBwZXJmb3JtX3NlZWsoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MzQ1CgoyMDE1LTA0LTIyIDExOjQ0OjAwICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICB0ZXN0OiBtZW1vcnk6IEFkZGVkIHRlc3QgdG8gdmVyaWZ5IHRoZSBhbGxvY2F0aW9uIHBhcmFtcwoJICBOZXcgdGVzdCBhZGRlZCB0byB2ZXJpZnkgdGhlIGFsbG9jYXRpb24gcGFyYW1zIGZvciB0aGUgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgyNzcKCjIwMTUtMDQtMjIgMTE6MDQ6MDYgLTA2MDAgIEphc29uIExpdHppbmdlciA8amxpdHppbmdlckBjb250cm9sNC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogaW5mbzogYWRkIHRlc3QgY2FzZSB0byByZXByb2R1Y2UgaW5maW5pdGUgbG9vcAoJICBnc3RfZGVidWdfdW5zZXRfdGhyZXNob2xkX2Zvcl9uYW1lKCkgdXNlZCB0byBnbyBpbnRvIGFuCgkgIGluZmluaXRlIGxvb3Agd2hlbiB0aGVyZSB3YXMgbW9yZSB0aGFuIG9uZSBjYXRlZ29yeSBpbgoJICB0aGUgbGlzdC4gIFRoaXMgdGVzdCBjYXB0dXJlcyB0aGUgcHJvYmxlbSBieSBmYWlsaW5nCgkgIHZpYSB0aW1lb3V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ4MzIxCgoyMDE1LTA0LTIyIDEyOjAzOjMzIC0wNjAwICBKYXNvbiBMaXR6aW5nZXIgPGpsaXR6aW5nZXJAY29udHJvbDQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogZml4IGluZmluaXRlIGxvb3AgaW4gZ3N0X2RlYnVnX3Vuc2V0X3RocmVzaG9sZF9mb3JfbmFtZSgpCgkgIEVuc3VyZSBpdGVyYXRvciBpcyBhZHZhbmNlZC4gVGhlIGN1cnJlbnQgbGlzdCBpdGVyYXRpb24gY29kZSBvbmx5CgkgIGFkdmFuY2VzIHRoZSBpdGVyYXRvciAod2FsaykgaWYgYSBtYXRjaCBpcyBmb3VuZCwgd2hpY2ggcmVzdWx0cwoJICBpbiBhbiBpbmZpbml0ZSBsb29wIHdoZW4gbW9yZSB0aGFuIG9uZSBlbnRyeSBleGlzdHMgaW4gdGhlIGxpc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgzMjEKCjIwMTUtMDQtMjIgMTA6MTQ6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwOiBtaXNjZWxsYW5lb3VzIGZpeGVzCgkgIEVycm9yIG91dCBpZiByZXF1aXJlZCBidWlsZCB0b29scyAoZmxleCwgYmlzb24sIHBrZy1jb25maWcpCgkgIGFyZSBub3QgcHJlc2VudCwgaW5zdGVhZCBvZiBwcmludGluZyBhIG1lc3NhZ2UgYW5kIHRoZW4KCSAgY29udGludWluZy4KCSAgQ2hlY2sgb3V0IHN1Ym1vZHVsZXMgd2hlbiBmZXRjaGluZyB0aGUgcmVwb3NpdG9yaWVzLCBzbwoJICB0aGV5J3JlIGFscmVhZHkgdGhlcmUgYW5kIHJlYWR5IGxhdGVyLgoJICBSZW1vdmUgc29tZSAwLjEwIGNydWZ0LgoKMjAxNS0wNC0yMiAwOTo1OToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIC5naXRpZ25vcmU6CgkgIEFkZCBJTlNUQUxMIHRvIC5naXRpZ25vcmUKCjIwMTUtMDQtMjIgMDk6NTY6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICB0ZXN0czogZXJyb3Igb3V0IGlmIHRlc3QgZW52aXJvbm1lbnQgaXMgbm90IGFjdHVhbGx5IHNldCB1cCBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTc0NzYyNAoKMjAxNS0wNC0yMiAwOTo1Mjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBjYW4gdXNlIEFNX1NJTEVOVF9SVUxFUyB1bmNvbmRpdGlvbmFsbHkgbm93CgkgIGh0dHBzOi8vYXV0b3Rvb2xzLmlvL2F1dG9tYWtlL3NpbGVudC5odG1sCgoyMDE1LTA0LTIyIDA5OjQ3OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgYXV0b21ha2UgcmVxdWlyZW1lbnQgdG8gMS4xNCBhbmQgYXV0b2NvbmYgdG8gMi42OQoJICBUaGlzIGlzIG9ubHkgcmVxdWlyZWQgZm9yIGJ1aWxkcyBmcm9tIGdpdCwgcGVvcGxlIGNhbiBzdGlsbAoJICBidWlsZCB0YXJiYWxscyBpZiB0aGV5IG9ubHkgaGF2ZSBvbGRlciBhdXRvdG9vbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjI0CgoyMDE1LTA0LTIyIDEwOjMyOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogSU5TVEFMTDoKCSAgUmVtb3ZlIElOU1RBTEwgZmlsZQoJICBhdXRvdG9vbHMgYXV0b21hdGljYWxseSBnZW5lcmF0ZSB0aGlzLCBhbmQgd2hlbiB1c2luZyBkaWZmZXJlbnQgdmVyc2lvbnMKCSAgZm9yIGF1dG9nZW4uc2ggdGhlcmUgd2lsbCBhbHdheXMgYmUgY2hhbmdlcyB0byBhIGZpbGUgdHJhY2tlZCBieSBnaXQuCgoyMDE1LTA0LTIwIDIyOjA3OjM0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0cmVhbWVyLXVuaW5zdGFsbGVkOiBVcGRhdGUgcGF0aCB0byB0aGUgR3N0VmFsaWRhdGUgc2NlbmFyaW9zCgoyMDE1LTA0LTIwIDA5OjIzOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IENoZWNrIHJldHVybiB2YWx1ZSBvZiBtZXRhIHRyYW5zZm9ybSBmdW5jdGlvbiBpbiBnc3RfYnVmZmVyX2NvcHlfaW50bygpCgkgIC4uLiBieSBwcmludGluZyBzb21lIGRlYnVnIG91dHB1dCB3aGVuZXZlciBjb3B5aW5nIGEgR3N0TWV0YSBmYWlscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0ODExOQoKMjAxNS0wNC0xOCAxMjozMTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogZml4IGhlYWRlciBmb3JtYXR0aW5nCgoyMDE1LTA0LTE4IDEyOjI4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSAgdGVzdHM6IHByb3RlY3Rpb246IGZpeCBsZWFrIGluIHVuaXQgdGVzdAoKMjAxNS0wNC0xOCAxMjoyNzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuaDoKCSAgZ3N0Lmg6IGluY2x1ZGUgdGhlIG5ldyBnc3Rwcm90ZWN0aW9uLmggaGVhZGVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTEKCjIwMTUtMDQtMTUgMTU6MzM6MzEgKzAxMDAgIEFsZXggQXNobGV5IDxidWd6aWxsYUBhc2hsZXktZmFtaWx5Lm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmM6CgkqIGdzdC9nc3Rwcm90ZWN0aW9uLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByb3RlY3Rpb24uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHByb3RlY3Rpb246IGFkZCBHc3RQcm90ZWN0aW9uTWV0YSB0byBzdXBwb3J0IHByb3RlY3RlZCBjb250ZW50CgkgIEluIG9yZGVyIHRvIHN1cHBvcnQgc29tZSB0eXBlcyBvZiBwcm90ZWN0ZWQgc3RyZWFtcyAoc3VjaCBhcyB0aG9zZQoJICBwcm90ZWN0ZWQgdXNpbmcgREFTSCBDb21tb24gRW5jcnlwdGlvbikgc29tZSBwZXItYnVmZmVyIGluZm9ybWF0aW9uCgkgIG5lZWRzIHRvIGJlIHBhc3NlZCBiZXR3ZWVuIGVsZW1lbnRzLgoJICBUaGlzIGNvbW1pdCBhZGRzIGEgR3N0TWV0YSB0eXBlIGNhbGxlZCBHc3RQcm90ZWN0aW9uTWV0YSB0aGF0IGFsbG93cwoJICBwcm90ZWN0aW9uIHNwZWNpZmljIGluZm9ybWF0aW9uIHRvIGJlIGFkZGVkIHRvIGEgR3N0QnVmZmVyLiBBbiBleGFtcGxlCgkgIG9mIGl0cyB1c2FnZSBpcyBxdGRlbXV4IHByb3ZpZGluZyBpbmZvcm1hdGlvbiB0byBlYWNoIG91dHB1dCBzYW1wbGUKCSAgdGhhdCBlbmFibGVzIGEgZG93bnN0cmVhbSBlbGVtZW50IHRvIGRlY3J5cHQgaXQuCgkgIFRoaXMgY29tbWl0IGFkZHMgYSB1dGlsaXR5IGZ1bmN0aW9uIHRvIHNlbGVjdCBhIHN1cHBvcnRlZCBwcm90ZWN0aW9uCgkgIHN5c3RlbSBmcm9tIHRoZSBpbnN0YWxsZWQgRGVjcnlwdGlvbiBlbGVtZW50cyBmb3VuZCBpbiB0aGUgcmVnaXN0cnkuCgkgIFRoZSBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYW4gYXJyYXkgb2YKCSAgaWRlbnRpZmllcnMgYW5kIHNlYXJjaGVzIHRoZSByZWdpc3RyeSBmb3IgYSBlbGVtZW50IG9mIGtsYXNzIERlY3J5cHRvciB0aGF0CgkgIHN1cHBvcnRzIG9uZSBvciBtb3JlIG9mIHRoZSBzdXBwbGllZCBpZGVudGlmaWVycy4gSWYgbXVsdGlwbGUgZWxlbWVudHMKCSAgYXJlIGZvdW5kLCB0aGUgb25lIHdpdGggdGhlIGhpZ2hlc3QgcmFuayBpcyBzZWxlY3RlZC4KCSAgVGhpcyBjb21taXQgYWRkcyBhIHVuaXQgdGVzdCBmb3IgdGhlIGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0KCSAgZnVuY3Rpb24gdGhhdCBhZGRzIGEgZmFrZSBEZWNyeXB0b3IgZWxlbWVudCB0byB0aGUgcmVnaXN0cnkgYW5kIHRoZW4KCSAgY2hlY2tzIHRoYXQgaXQgY2FuIGNvcnJlY3RseSBiZSBzZWxlY3RlZCBieSB0aGUgdXRpbGl0eSBmdW5jdGlvbi4KCSAgVGhpcyBjb21taXQgYWRkcyBhIHVuaXQgdGVzdCBmb3IgR3N0UHJvdGVjdGlvbk1ldGEgdGhhdCBjcmVhdGVzCgkgIEdzdFByb3RlY3Rpb25NZXRhIGFuZCBhZGRzICYgcmVtb3ZlcyBpdCBmcm9tIGEgYnVmZmVyIGFuZCBwZXJmb3JtcyBzb21lCgkgIHNpbXBsZSByZWZlcmVuY2UgY291bnQgY2hlY2tzLgoJICBBUEk6IGdzdF9idWZmZXJfYWRkX3Byb3RlY3Rpb25fbWV0YSgpCgkgIEFQSTogZ3N0X2J1ZmZlcl9nZXRfcHJvdGVjdGlvbl9tZXRhKCkKCSAgQVBJOiBnc3RfcHJvdGVjdGlvbl9zZWxlY3Rfc3lzdGVtKCkKCSAgQVBJOiBnc3RfcHJvdGVjdGlvbl9tZXRhX2FwaV9nZXRfdHlwZSgpCgkgIEFQSTogZ3N0X3Byb3RlY3Rpb25fbWV0YV9nZXRfaW5mbygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTEKCjIwMTUtMDMtMTYgMTI6MzU6MjcgKzAwMDAgIEFsZXggQXNobGV5IDxidWd6aWxsYUBhc2hsZXktZmFtaWx5Lm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogYWRkIG5ldyBHU1RfRVZFTlRfUFJPVEVDVElPTgoJICBJbiBvcmRlciBmb3IgYSBkZWNyeXB0ZXIgZWxlbWVudCB0byBkZWNyeXB0IG1lZGlhIHByb3RlY3RlZCB1c2luZyBhCgkgIHNwZWNpZmljIHByb3RlY3Rpb24gc3lzdGVtLCBpdCBmaXJzdCBuZWVkcyBhbGwgdGhlIHByb3RlY3Rpb24gc3lzdGVtCgkgIHNwZWNpZmljICBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgKEUuZy4gaW5mb3JtYXRpb24gb24gaG93IHRvIGFjcXVpcmUKCSAgdGhlIGRlY3J5cHRpb24ga2V5cykgZm9yIHRoYXQgc3RyZWFtLgoJICBUaGUgR1NUX0VWRU5UX1BST1RFQ1RJT04gZGVmaW5lZCBpbiB0aGlzIGNvbW1pdCBlbmFibGVzIHRoaXMgaW5mb3JtYXRpb24KCSAgdG8gYmUgcGFzc2VkIGZyb20gZWxlbWVudHMgdGhhdCBleHRyYWN0IGl0IChlLmcuIHF0ZGVtdXgsIGRhc2hkZW11eCkgdG8KCSAgZWxlbWVudHMgdGhhdCB1c2UgaXQgKEUuZy4gYSBkZWNyeXB0ZXIgZWxlbWVudCkuCgkgIEFQSTogR1NUX0VWRU5UX1BST1RFQ1RJT04KCSAgQVBJOiBnc3RfZXZlbnRfbmV3X3Byb3RlY3Rpb24oKQoJICBBUEk6IGdzdF9ldmVudF9wYXJzZV9wcm90ZWN0aW9uKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTk5MQoKMjAxNS0wNC0xOCAxMTo0MjoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHVzZSBvZiBwb3NzaWJseS1mcmVlZCBwYWQgaW4gZGVidWcgc3RhdGVtZW50CgkgIFRoZSBnc3Rfb2JqZWN0X3VucmVmKCkgaW4gdGhlIGJsb2NrIGFib3ZlIG1heSBiZSBkcm9wcGluZwoJICB0aGUgbGFzdCByZWYgdG8gdGhlIHBhZCBhbmQgZnJlZSB0aGUgcGFkLiBTZXQgcGFkIHBvaW50ZXIKCSAgdG8gTlVMTCBoZXJlLCBzbyB0aGF0IHdlIGRvbid0IGFjY2lkZW50YWxseSB1c2UgYQoJICBwb3NzaWJseS1mcmVlZCBwYWQgcG9pbnRlciBpbiB0aGUgZGVidWcgbG9nIHN0YXRlbWVudHMKCSAgZnVydGhlciBiZWxvdywgYW5kIGFsc28gdXNlIHRoZSB0ZWUgZWxlbWVudCBhcyBsb2cgb2JqZWN0CgkgIHNpbmNlIHRoYXQncyBtb3JlIGFwcHJvcHJpYXRlIGFueXdheS4KCSAgRml4ZXMgdmFsZ3JpbmQgd2FybmluZ3MgYW5kIGNyYXNoZXMgaW4gdGVlIHRlc3Rfc3RyZXNzCgkgIHVuaXQgdGVzdCB3aGVuIGRlYnVnIGxvZ2dpbmcgaXMgZW5hYmxlZC4KCjIwMTUtMDQtMTggMTI6MDA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogaW5mbzogZml4IHVuaXQgdGVzdCB3aGVuIHJ1biB3aXRoIEdTVF9ERUJVRz0qOjkKCSAgT25seSBzYXZlIHRoZSBtZXNzYWdlcyB3ZSdyZSBpbnRlcmVzdGVkIGluIGFuZCBleHBlY3RpbmcuCgkgIFdoZW4gcnVuIHdpdGggKjo5IHdlIG1pZ2h0IGdldCBhZGRpdGlvbmFsIFRSQUNFIGxldmVsCgkgIG1lc3NhZ2VzIGZyb20gb3RoZXIgY2F0ZWdvcmllcyBhbmQgdGhlbiB3ZSBkb24ndCBlbmQgdXAKCSAgd2l0aCB0aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIHdlIGV4cGVjdC4KCjIwMTUtMDQtMTggMTE6MjU6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBwYWQ6IGZpeCBidWZmZXIgbGVhayBpbiBuZXcgYmxvY2tpbmdfd2l0aF9wcm9iZV90eXBlX2lkbGUgdGVzdAoKMjAxNS0wNC0xOCAxMToxMToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogZml4IGludmFsaWQgbWVtb3J5IGFjY2VzcyBpbiBkZWJ1ZyBsb2cgbWVzc2FnZQoJICBUaGUgc3RyaW5nIHdlIHB1dCBpbiB0aGUgYnVmZmVyIGlzIG5vdCBOVUwtdGVybWluYXRlZCwgc28KCSAgZG9uJ3QgdHJ5IHRvIHByaW50IHRoYXQgdmlhICVzIGluIGEgZGVidWcgbG9nIG1lc3NhZ2UuCgoyMDE1LTA0LTE3IDE1OjE5OjA3ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiBvbiBPU1gsIE1LRElSX1AgaXMgaW5zdGFsbC1zaCAtYyAtZAoJICBTbyB3ZSBuZWVkIHRvIGNhbGwgaXQgYmVmb3JlIGNkaW5nIHRvIHRoZSBiaW4gZGlyZWN0b3J5LgoKMjAxNS0wNC0xNyAxMzowMjoxMiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogaW5zdGFsbCAtRCBpc24ndCBwb3J0YWJsZSwgdXNlICQoTUtESVJfUCkgaW5zdGVhZC4KCjIwMTUtMDQtMTQgMTA6NDc6MjAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogdGVzdCB0aGF0IGlkbGUgcHJvYmUgd2lsbCBibG9jawoJICBUaGlzIHRlc3RzIGFkZCBhbiBpZGxlIHByb2JlIG9uIGFuIGlkbGUgcGFkIGZyb20gYSBzZXBhcmF0ZSB0aHJlYWQKCSAgc28gdGhhdCB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkIGltbWVkaWF0ZWxseS4gVGhpcyBjYWxsYmFjayB3aWxsIHNpdAoJICBzdGlsbCBhbmQgdGhlbiB3ZSB0cnkgdG8gcHVzaCBhIGJ1ZmZlciBvbiB0aGlzIHNhbWUgcGFkLiBJdCB2ZXJpZmllcwoJICB0aGF0IHRoZSBpZGxlIHByb2JlIGJsb2NrcyBkYXRhIHBhc3NpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzg1MgoKMjAxNS0wNC0xNCAxNzowNjozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGJsb2NrIGRhdGEgZmxvdyB3aGVuIGlkbGUgcHJvYmUgaXMgcnVubmluZwoJICBXaGVuIGlkbGUgcHJvYmUgcnVucyBkaXJlY3RseSBmcm9tIHRoZSBnc3RfcGFkX2FkZF9wcm9iZSgpIGZ1bmN0aW9uCgkgIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgbm8gZGF0YSBmbG93IGhhcHBlbnMgYXMgaWRsZSBwcm9iZQoJICBpcyBhIGJsb2NraW5nIHByb2JlLiBUaGUgaWRsZSBwcm9iZSB3aWxsIHByZXZlbnQgdGhhdCBhbnkKCSAgYnVmZmVyLCBidWZmZXJsaXN0IG9yIHNlcmlhbGl6ZWQgZXZlbnRzIGFuZCBxdWVyaWVzIGFyZSBub3QKCSAgZmxvd2luZyB3aGlsZSBpdCBpcyBydW5uaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3ODUyCgoyMDE1LTA0LTE2IDEzOjQxOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBkb2NzOiBjbGFyaWZ5IHRoYXQgcmV0dXJuIHZhbHVlIG9mIGdzdF9maWxlbmFtZV90b191cmkoKSBtdXN0IGJlIGZyZWVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDcxMDQKCjIwMTUtMDQtMTUgMTE6MDI6NTQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICBiaW46IHVuZG8gdXB3YXJkIHN0YXRlIGNoYW5nZXMgb24gY2hpbGRyZW4gd2hlbiBhIGNoaWxkIGZhaWxzCgkgIFdoZW4gYSBiaW4gY2hhbmdlcyBzdGF0ZXMgdXB3YXJkcywgYW5kIGEgY2hpbGQgZmFpbHMgdG8gY2hhbmdlLAoJICBhbnkgY2hpbGQgdGhhdCB3YXMgYWxyZWFkeSBzd2l0Y2hlZCB3aWxsIG5vdCBiZSByZXNldCB0byBpdHMKCSAgb3JpZ2luYWwgc3RhdGUsIGxlYXZpbmcgaXRzIHN0YXRlIGluY29uc2lzdGVudCB3aXRoIHRoZSBiaW4sCgkgIHdoaWNoIGRvZXMgbm90IGNoYW5nZSBzdGF0ZSBkdWUgdG8gdGhlIGZhaWx1cmUuCgkgIElmIHRoZSBzdGF0ZSBjaGFuZ2Ugd2FzIGZyb20gTlVMTCB0byBSRUFEWSwgaXQgbWVhbnMgdGhhdCBkZWxldGluZwoJICB0aGlzIGJpbiB3aWxsIGNhdXNlIHRob3NlIGNoaWxkcmVuIHRvIGJlIGRlbGV0ZWQgd2hpbGUgbm90IGluCgkgIE5VTEwgc3RhdGUsIHdoaWNoIGlzIGEgQmFkIFRoaW5nLiBGb3Igb3RoZXIgdXB3YXJkIGNoYW5nZXMsIGl0CgkgIGlzIGxlc3Mgb2YgYSBwcm9ibGVtLCBhcyBhIHN1YnNlcXVlbnQgc3dpdGNoIGJhY2sgdG8gTlVMTCB3aWxsCgkgIGNhdXNlIGFuIGFjdHVhbCBkb3dud2FyZHMgY2hhbmdlIG9uIHRob3NlIGluY29uc2lzdGVudCBlbGVtZW50cywKCSAgYWxiZWl0IGZyb20gdGhlICJ3cm9uZyIgc3RhdGUuCgkgIFdlIG5vdyByZXNldCBzdGF0ZSB0byB0aGUgb3JpZ2luYWwgb25lIHdoZW4gYSBjaGlsZCBmYWlscy4KCSAgSW5jbHVkZXMgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NjEwCgoyMDE1LTA0LTE1IDE0OjQ1OjIxICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBoZWxwZXJzOiB1c2UgJChJTlNUQUxMKSB0byAuLi4gaW5zdGFsbCB0aGUgaGVscGVyLgoJICBBcyBpdCB3aWxsIGNyZWF0ZSB0aGUgZm9sZGVycyBhbmQgc2V0IHBlcm1pc3Npb25zIGFwcHJvcHJpYXRlbHksCgkgIGJldHRlciB0aGFuIGRvaW5nIGl0IG1hbnVhbGx5LgoKMjAxNS0wNC0xNSAxMzowMjozNiArMDIwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogRml4IE1ha2VmaWxlLmFtIHRvIGluc3RhbGwgdGhlIGNvbXBsZXRpb24taGVscGVyIGNvcnJlY3RseS4KCSAgKyBUaGUgcHJvZ3JhbSBpcyBpbnN0YWxsZWQgYXQgaW5zdGFsbC1leGVjIHRpbWUsIHdlIHRodXMgbmVlZAoJICB0byBtb3ZlIGl0IGluIGluc3RhbGwtZXhlYy1ob29rLCBub3QgaW5zdGFsbC1kYXRhLWhvb2suCgoyMDE1LTA0LTE1IDExOjM4OjM1ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBSZXZlcnQgImJhc2VzcmM6IGZpeCBwb29sIGxlYWsgb24gYWxsb2NhdGlvbiBxdWVyeSBlcnJvciBwYXRoIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg0ZmRmNTBiMmY5ODk1MWEzMmZhMTQ4MDJiNjI2MjFmMTEwNWNkMzUuCgkgIEl0IHNlZW1zIHRoZSBidWcgd2FzIGZpeGVkIGluZGVwZW5kZW50bHksIGFuZCB0aGUgbWVyZ2Ugd2FzCgkgIGF1dG9tYWdpYywgeWllbGRpbmcgdHdvIGV4dHJhIGZyZWUgY2FsbHMuCgoyMDE1LTA0LTE0IDEzOjQyOjU1ICswOTAwICBTdWh3YW5nIEtpbSA8c3Vod2FuZy5raW1AbGdlLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICB0ZXN0czogY2xvY2s6IGZpeCB0ZXN0IGNsb2NrIG5hbWUKCSAgRG9uJ3QgY2FsbCB0aGUgc2xhdmUgdGVzdCBjbG9jayAiTWFzdGVyIi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQzMAoKMjAxNS0wNC0xNCAxNzo0NzowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IGFkZCBFTkNSWVBUT1IgY2xhc3MgZGVmaW5lcwoJICB0byBnbyB3aXRoIERFQ1JZUFRPUi4KCjIwMTUtMDMtMTYgMTM6MTE6NTkgKzAwMDAgIEFsZXggQXNobGV5IDxidWd6aWxsYUBhc2hsZXktZmFtaWx5Lm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IGFkZCBERUNSWVBUT1IgY2xhc3MgZGVmaW5lcwoJICBBbiBlbGVtZW50IHRoYXQgcGVyZm9ybXMgZGVjcnlwdGlvbiBkb2VzIG5vdCBuYXR1cmFsbHkgZml0IHdpdGhpbiBhbnkKCSAgb2YgdGhlIGV4aXN0aW5nIGVsZW1lbnQgZmFjdG9yeSBjbGFzcyB0eXBlcy4gSXQgaXMgdXNlZnVsIHRvIGJlIGFibGUKCSAgdG8gZWFzaWx5IGdldCBhIGxpc3Qgb2YgYWxsIGVsZW1lbnRzIHRoYXQgc3VwcG9ydCBkZWNyeXB0aW9uIHNvIHRoYXQKCSAgYSB1bmlvbiBjYW4gYmUgY29tcHV0ZWQgYmV0d2VlbiB0aGUgcHJvdGVjdGlvbiBzeXN0ZW1zIHRoYXQgaGF2ZSBhCgkgIHN1cHBvcnRlZCBkZWNyeXB0b3IgYW5kIHRoZSBhbGxvd2VkIHByb3RlY3Rpb24gc3lzdGVtcyBmb3IgYSBwYXJ0aWN1bGFyCgkgIHN0cmVhbS4KCSAgVGhpcyBjb21taXQgYWRkcyBhIG5ldyBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVDUllQVE9SIGFuZCBpdHMKCSAgYXNzb2NpYXRlZCBzdHJpbmcgaWRlbnRpZmllciAiRGVjcnlwdG9yIi4gSXQgYWxzbyBhZGRzCgkgIEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNSWVBUT1IgdG8gR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09EQUJMRQoJICBzbyB0aGF0IHVyaWRlY29kZWJpbiBjYW4gYXV0by1wbHVnIGEgZGVjcnlwdGlvbiBlbGVtZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1OTkxCgoyMDE1LTA0LTEzIDE3OjAxOjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBVc2UgZ3N0X2V2ZW50X3VucmVmKCkgaW5zdGVhZCBvZiBnc3RfbWluaV9vYmplY3RfdW5yZWYoKSArIGNhc3RpbmcKCjIwMTUtMDQtMTMgMTQ6NDA6MjIgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGZpeCBsZWFrIGluIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zcmNfZXZlbnQoKQoJICBnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KCkgaXMgc3VwcG9zZWQgdG8gY29uc3VtZSBAZXZlbnQgYnV0IHdhc24ndAoJICBkb2luZyBzbyB3aGVuIGl0IHdhcyBoYW5kbGluZyB0aGUgZXZlbnQgaXRzZWxmLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3Nzc1CgkgIFNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKMjAxNS0wNC0xMSAyMDo0NDowMiArMDkwMCAgSHl1bmp1biBLbyA8enpvb24ua29Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHJlc2V0IGVycm5vIGJlZm9yZSBnX2FzY2lpX3N0cnRvdWxsIGNhbGwKCSAgImVycm5vIiBhbHJlYWR5IGhhcyBtZWFuaW5nbGVzcyB2YWx1ZSBiZWZvcmUgZ19hc2NpaV9zdHJ0b3VsbCBjYWxsLgoJICBUaGlzIGNhdXNlcyBpbnZhbGlkIGVycm9yIGNoZWNrIHdpdGhvdXQgcmVzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc2OTAKCjIwMTUtMDQtMTIgMTM6MTM6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSBzZXQgRFRTIHRvIHNlZ21lbnQuc3RhcnQgb24gdGhlIGZpcnN0IGJ1ZmZlciBpZiBzdWJjbGFzcyBkaWQgbm90IHByb3ZpZGUgUFRTCgkgIE90aGVyd2lzZSB3ZSdyZSBnb2luZyB0byBzZXQgYSByYXRoZXIgYXJiaXRyYXJ5IERUUyBvZiBzZWdtZW50LnN0YXJ0ICh1c3VhbGx5CgkgIDApIGZvciBsaXZlIHNvdXJjZXMsIHdoaWNoIGNvbmZ1c2VzIHN5bmNocm9uaXphdGlvbiBpZiB0aGUgc291cmNlIHN0YXJ0ZWQKCSAgY2FwdHVyaW5nIGF0IGEgbGF0ZXIgdGltZS4gQW5kIGl0J3MgZXNwZWNpYWxseSB3cm9uZyBmb3IgcmF3IG1lZGlhLCBmb3Igd2hpY2gKCSAgd2Ugc2hvdWxkIG5vdCBzZXQgYW55IERUUyBhdCBhbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc3MzEKCjIwMTQtMDktMDIgMTc6NDA6MjggKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUnVuIHRoZSBkZWZhdWx0IGhhdmUtdHlwZSBoYW5kbGVyIGFmdGVyIGFsbCBhcHBsaWNhdGlvbiBoYW5kbGVycwoJICBPdGhlcndpc2UgdGhlIENBUFMgZXZlbnQgd2lsbCBhbHJlYWR5IGJlIGZvcndhcmRlZCBkb3duc3RyZWFtIGFuZAoJICB0aGUgYXBwbGljYXRpb24gaGFzIG5vIHdheSB0byBpbnRlcnZlbmUgYW55bW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTg5NgoKMjAxNS0wMy0xMCAxMjo1Nzo0NCArMTAwMCAgRHVuY2FuIFBhbG1lciA8ZHBhbG1lckBkaWdpc29mdC50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBhdXRvbWF0aWNhbGx5IGVudGVyIHRoZSBidWZmZXJpbmcgc3RhdGUgd2hlbiB1c2UtYnVmZmVyaW5nIGlzIHNldC4KCSAgVGhlcmUgaXMgbm8gcmVhc29uIEkgY2FuIHNlZSB0byBzZXQgbXEtPmJ1ZmZlcmluZyA9IFRSVUUgd2hlbgoJICB1c2VfYnVmZmVyaW5nIGlzIHNldDsgdGhlIGNvZGUgaGVyZSBhbHNvIGNhbGxzIHVwZGF0ZV9idWZmZXJpbmcoKSwgd2hpY2gKCSAgd2lsbCBzZXQgbXEtPmJ1ZmZlcmluZyA9IFRSVUUgaWYgdGhpcyBpcyB3YXJyYW50ZWQgYmVjYXVzZSBvZiBsb3cgYnVmZmVyCgkgIGxldmVscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTkzNwoKMjAxNS0wNC0xMCAxMjozMjoyNyArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGNhY2hlZCBidWZmZXIgbGVhayBpbiBjaGFpbiBmdW5jdGlvbgoJICBnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKCkgd2FzIHBvcHBpbmcgY2FjaGVkIGJ1ZmZlcnMgb3V0IG9mIHRoZSBxdWV1ZSB3aXRob3V0CgkgIGZyZWVpbmcgdGhvc2UuIE1ha2Ugc3VyZSB3ZSBkb24ndCBzdGVhbCB0aGUgR3N0QnVmZmVyIGFzIHRoZSBjYWNoZWQgYnVmZmVyIHJlZgoJICBoYXMgYmVlbiBwYXNzZWQgdG8gdGhlIHBhZCBjaGFpbiBmdW5jdGlvbi4KCSAgVGhpcyBjYW4gYmUgcmVwcm9kdWNlZCBieSBydW5uaW5nIHRoZQoJICB2YWxpZGF0ZS5maWxlLnBsYXliYWNrLnN3aXRjaF9zdWJ0aXRsZV90cmFja193aGlsZV9wYXVzZWQudGVzdDVfbWt2IHNjZW5hcmlvCgkgIHdpdGggVmFsZ3JpbmQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc2MTEKCSAgU2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoyMDE1LTA0LTA4IDE2OjA0OjExICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICB0ZXN0czogVXNlIEFNX1RFU1RTX0VOVklST05NRU5UCgkgIE5lZWRlZCBieSB0aGUgbmV3IGF1dG9tYWtlIHRlc3QgcnVubmVyCgoyMDE1LTA0LTA3IDE1OjAwOjQ2ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogbWFrZSBzdXJlIGxpc3QgaXMgd3JpdGFibGUgYmVmb3JlIGFkZGluZyBvciByZW1vdmluZyBidWZmZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDc0MzkKCjIwMTUtMDQtMDcgMTQ6MzQ6NTggKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBtaW5vciBkb2NzIGFkZGl0aW9uIGZvciBnc3RfYnVmZmVyX2xpc3RfZ2V0KCkKCSAgUmV0dXJuIGJ1ZmZlciByZW1haW5zIHZhbGlkIGFzIGxvbmcgYXMgbGlzdCBpcyB2YWxpZAoJICBhbmQgYnVmZmVyIGlzIG5vdCByZW1vdmVkIGZyb20gbGlzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzQzOAoKMjAxNS0wNC0wNyAxMTozODozMSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHBvb2wgbGVhayBvbiBhbGxvY2F0aW9uIHF1ZXJ5IGVycm9yIHBhdGgKCSAgSXQgY291bGQgYmUgdHJpZ2dlcmVkIGJ5OgoJICBnc3QtbGF1bmNoLTEuMCB2aWRlb3Rlc3RzcmMgbnVtLWJ1ZmZlcnM9MjAgISB2aWRlY3JvcCBib3R0b209MjE0NzQ4MzY0ICEgdmlkZW9jb252ZXJ0ICEgYXV0b3ZpZGVvc2luawoJICBTcG90dGVkIHdoaWxlIHRlc3Rpbmc6CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDM5MTAKCjIwMTUtMDQtMDYgMTg6NDU6MzcgLTA3MDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZvcndhcmQgU0VHTUVOVF9ET05FIGV2ZW50cyBpbW1lZGlhdGVseQoJICBUaGVyZSBtaWdodCBiZSBubyBtb3JlIGRhdGEgY29taW5nIGFmdGVyd2FyZHMsIGFuZCB3ZSBqdXN0IGRyYWluZWQgZXZlcnl0aGluZwoJICB0aGF0IHdhcyBsZWZ0IHRvIGJlIHB1c2hlZCBhbnl3YXkuCgoyMDE1LTA0LTA2IDE4OjU2OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZG9jczogZml4IGNyb3NzLXJlZmVyZW5jZSB0byBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gR3N0SW5mbwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NDE2CgoyMDE1LTA0LTA2IDEwOjE4OjE1ICswNTMwICBQcmFzaGFudCBHb3Rhcm5lIDxwcy5nb3Rhcm5lQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBjaGVjayBmb3Igd3JpdGFibGl0eSBpbiByZXNpemUKCSAgQWRkIGd1YXJkIHRvIGdzdF9tZW1vcnlfcmVzaXplKCkgdG8gbWFrZSBzdXJlIHRoZQoJICBtZW1vcnkgdG8gYmUgcmVzaXplZCBpcyBhY3R1YWxseSB3cml0YWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzM5MgoKMjAxNS0wNC0wNSAxNjo0NzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IGFkZCB0ZXN0IHRvIG1ha2Ugc3VyZSBpbml0aWFsIGV2ZW50cyBnbyB0aHJvdWdoIHdpdGhvdXQgYnVmZmVycwoKMjAxNS0wNC0wNSAxNjowNjo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBxdWV1ZTogY2hlY2sgdGhhdCB0aGUgaW5pdGlhbCBldmVudHMgYXJlIHNlbnQgb24gaW1tZWRpYXRlbHkKCSAgQWRkIGEgY2hlY2sgdGhhdCBtYWtlcyBzdXJlIHN0cmVhbS1zdGFydCwgY2FwcywgYW5kIHNlZ21lbnQgZXZlbnRzCgkgIGFyZSBwYXNzZWQgb24gYnkgcXVldWUgd2l0aG91dCBkZWxheSwgaS5lLiBldmVuIGlmIG5vIGJ1ZmZlciBpcwoJICBzZW50LgoKMjAxNS0wNC0wNCAxODozMzoxOCAtMDcwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBQcmludCBkZWJ1ZyBvdXRwdXQgZnJvbSBnc3RfcGFkX2xpbmtfZnVsbCgpIGlmIHByZXBhcmluZyBsaW5raW5nIGZhaWxlZAoJICBNYWtlcyBpdCBlYXNpZXIgdG8gZmluZCBsaW5raW5nIGZhaWx1cmVzIGluIGRlYnVnIGxvZ3MuCgoyMDE1LTA0LTA0IDE5OjI5OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogc21hbGwgZG9jcyBhZGRpdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNTY0CgoyMDE1LTA0LTA0IDE4OjE4OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkb2NzOiBkZXNpZ246IGZpeCBzb21lIDAuMTAtaXNtcyBpbiBHc3RTZWdtZW50IGRvY3MKCSAgMSkgc2VnbWVudC5hY2N1bSAtPiBzZWdtZW50LmJhc2UKCSAgMikgUmVmZXIgdG8gR3N0U2VnbWVudCBtZW1iZXJzIGFzIFMuZm9vIGluc3RlYWQgb2YKCSAgTlMuZm9vLCB0aGUgZXZlbnQgaXMgbm93IGNhbGxlZCBhIHNlZ21lbnQgZXZlbnQKCSAgcmF0aGVyIHRoYW4gbmV3c2VnbWVudCBldmVudC4KCSAgMykgVGhlcmUncyBubyBtb3JlIGFic19yYXRlIGZpZWxkIGluIEdzdFNlZ21lbnQsCgkgIGFuZCB0aGVyZSBuZXZlciB3YXMgYW4gYWJzX2FwcGxpZWRfcmF0ZSBmaWVsZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MDU2NAoKMjAxNS0wNC0wNCAwNDoxNDo1MCArMDMwMCAgSWx5YSBLb25zdGFudGlub3YgPGlseWEua29uc3RhbnRpbm92QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkbyBub3QgbGVhayBidWZmZXIgcG9vbCBpbiBlcnJvciBjYXNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDczMjEKCjIwMTUtMDQtMDMgMTk6MTI6NDggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBTaWxlbmNlIGEgY29tcGlsZXIgd2FybmluZwoJICBUaGlzIGlzIGEgZmFsc2UgcG9zaXRpdmUgZm9yIHVzZSBpbml0aWFsaXplZC4gVGhlIHZhcmlhYmxlIGlzIHNldCBhbmQKCSAgdXNlZCBlbmNsb3NlZCBpbiB0aGUgc2FmZSBpZiBjb25kaXRpb24uCgoyMDE1LTA0LTAzIDE2OjMyOjE2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IEFkZCBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWVfZnVsbAoKMjAxNS0wNC0wMyAxMzoxOToxMyAtMDcwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGaXggZG9jdW1lbnRhdGlvbiwgYnVmZmVyIHBvb2xzIGFyZSB1bnJlZmZlZCBhbmQgbm90IGZyZWVkCgoyMDE1LTA0LTAzIDIwOjQzOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogSU5TVEFMTDoKCSAgVXBkYXRlIElOU1RBTEwgdG8gdGhlIGF1dG9tYWtlIDEuMTQgdmVyc2lvbgoKMjAxNS0wNC0wMyAxODo1NzozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYmM3NmE4YiB0byBjOGZiMzcyCgoyMDE1LTA0LTAzIDE2OjI3OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBmaXggZXhwb3J0cwoKMjAxNS0wMy0xOSAxMDo0NTo1NiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIGdzdF9zZWdtZW50X2lzX2VxdWFsCgkgIEl0IGJlYXRzIG1lbWNtcCBkdWUgdG8gdGhlICdyZXNlcnZlZCcgZmllbGRzLgoJICBBUEk6IGdzdF9zZWdtZW50X2lzX2VxdWFsKCkKCSAgRm91bmQgdmlhLCBidXQgcHJvYmFibHkgbm90IGRpcmVjdGx5IGxpbmtlZCB0bywKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczODIxNgoKMjAxNS0wNC0wMyAwMDozNjo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byBleHBvcnRzCgoyMDE0LTA4LTA2IDEwOjMyOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWxsb3cgcHJvYmVzIHRvIHJlbW92ZSB0aGUgZGF0YSBpdGVtIHdoaWxzdCByZXR1cm5pbmcgUFJPQkVfT0sKCSAgVXNlIGNhc2U6IHdlIHdhbnQgdG8gYmxvY2sgdGhlIHNvdXJjZSBwYWQgb2YgYSBsZWFreSBxdWV1ZSBhbmQKCSAgZHJvcCB0aGUgYnVmZmVyIHRoYXQgY2F1c2VzIHRoZSBibG9jay4gSWYgd2UgcmV0dXJuIFBST0JFX0RST1AKCSAgdGhlbiB0aGUgYnVmZmVyIGdldHMgZHJvcHBlZCwgYnV0IHdlIGdldCBjYWxsZWQgYWdhaW4uIElmIHdlCgkgIHJldHVybiBQUk9CRV9PSyB3ZSBjYW4ndCBlYXNpbHkgZHJvcCB0aGUgYnVmZmVyLiBJZiB3ZSBqdXN0CgkgIHJlcGxhY2UgdGhlIGl0ZW0gaW50byB0aGUgR3N0UGFkUHJvYmVJbmZvIHN0cnVjdHVyZSB3aXRoIE5VTEwsCgkgIEdTdHJlYW1lciB3aWxsIHB1c2ggYSBOVUxMIGJ1ZmZlciB0byB0aGUgbmV4dCBlbGVtZW50IHdoZW4gd2UKCSAgdW5ibG9jayB0aGUgcGFkIHByb2JlLiBUaGlzIHBhdGNoIGVuc3VyZXMgaXQgZG9lc24ndCBkbyB0aGF0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0MzQyCgoyMDE1LTAyLTEyIDE5OjM5OjQ0IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogRG9jdW1lbnQgd2hlbiBhIGNsb2NrIGlzIGF2YWlsYWJsZSBmcm9tIGdzdF9lbGVtZW50X2dldF9jbG9jaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ0NDIKCjIwMTUtMDItMTIgMTk6NDA6MDYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIHBpcGVsaW5lOiBBZGQgYmluZGluZyBmcmllbmRseSBnc3RfcGlwZWxpbmVfZ2V0X3BpcGVsaW5lX2Nsb2NrKCkKCSAgQWxzbyBza2lwIGdzdF9waXBlbGluZV9nZXRfY2xvY2soKSBhbmQgZ3N0X3BpcGVsaW5lX3NldF9jbG9jaygpIGZyb20gdGhlCgkgIGJpbmRpbmdzIGFzIHRoZXkgYXJlIGNvbmZ1c2VkIHdpdGggZ3N0X2VsZW1lbnRfKl9jbG9jaygpLgoJICBBUEk6IGdzdF9waXBlbGluZV9nZXRfcGlwZWxpbmVfY2xvY2soKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NDQyCgoyMDE1LTA0LTAyIDE3OjMyOjQyIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWRkIFNpbmNlIG1hcmsgZm9yIG5ldyBtZXRob2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNDQyNAoKMjAxNS0wMi0yMCAxNzo1MDo0OCArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBBZGQgYSBtZXRob2QgdG8gbGV0IHN1YmNsYXNzZXMgY2xlYW5seSB1cGRhdGUgc3JjcGFkIGNhcHMKCSAgQVBJOgoJICBnc3RfYmFzZV90cmFuc2Zvcm1fdXBkYXRlX3NyYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NDI0CgoyMDE1LTA0LTAyIDIxOjE4OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgZG9jczogcHdnOiBmaXggbWlzc2luZyBjb21tYSBhbmQgMC4xMC1pc20gaW4gY29kZSBzYW1wbGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzI2NwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MjY2CgoyMDE1LTA0LTAyIDE5OjI5OjQ2ICswMzAwICBJbHlhIEtvbnN0YW50aW5vdiA8aWx5YS5rb25zdGFudGlub3ZAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGltcHJvdmUgZG9jcyBmb3IgX2NvcHkoKSBhbmQgX3NoYXJlKCkKCjIwMTUtMDQtMDIgMTE6NDI6MjAgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICB0ZXN0OiBmaWxlc2luazogYWRkIHRlc3RzIGZvciBidWZmZXJzIHdpdGggbXVsdGlwbGUgbWVtb3J5IGJsb2NrcwoJICBVcGRhdGUgdGVzdF9zZWVraW5nIHRlc3RjYXNlIHRvIHZlcmlmeSB0aGUgcmVuZGVyIGFuZCByZW5kZXJfbGlzdAoJICB2aXJ0dWFsIG1ldGhvZCBoYW5kbGUgYnVmZmVycyBhbmQgYnVmZmVyIGxpc3QgY29udGFpbmluZyBtdWx0aXBsZQoJICBtZW1vcnkgYmxvY2tzIGNvcnJlY3RseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzIyMwoKMjAxNS0wNC0wMiAwOTo0NDozMyArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogQWRkIGEgRklYTUUgZm9yIDIuMCBhYm91dCByZXF1ZXN0X25ld19wYWQgVlMgcmVxdWVzdF9wYWQgbmFtaW5nCgoyMDE1LTA0LTAyIDA5OjM0OjAwICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaXggcmVxdWVzdF9uZXdfcGFkIGludHJvc3BlY3Rpb24KCSAgTWFya2luZyBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCBhcyB0aGUgY2FsbGVyIG9mIHRoZSAtPnJlcXVlc3RfbmV3X3BhZAoJICB2aXJ0dWFsIG1ldGhvZC4KCjIwMTUtMDQtMDEgMDk6MjA6MjQgKzA1MzAgIFByYXNoYW50IEdvdGFybmUgPHBzLmdvdGFybmVAc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICB0ZXN0czogZmlsZXNpbms6IGFkZCBjaGVjayBmb3IgcmVuZGVyX2xpc3QgdmlydHVhbCBtZXRob2QKCSAgR3N0RmlsZVNpbmsgaW1wbGVtZW50cyB0aGUgcmVuZGVyX2xpc3QgdmlydHVhbCBtZXRob2QgdG8gcmVuZGVyCgkgIGEgbGlzdCBvZiBidWZmZXJzLiBVcGRhdGUgdGhlIHRlc3Rfc2Vla2luZyB0ZXN0IGNhc2UgdG8gYWxzbwoJICBjaGVjayB0aGUgcmVuZGVyX2xpc3QgbWV0aG9kIGltcGxlbWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MTAwCgoyMDE1LTA0LTAxIDEyOjEzOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IG5pY2VyIHByaW50aW5nIG9mIGNhcHMgZmVhdHVyZXMKCSAgT25seSBwcmludCBpbnRlcmVzdGluZyBjYXBzIGZlYXR1cmVzLCBkb24ndAoJICBhcHBlbmQgKG1lbW9yeTpTeXN0ZW1NZW1vcnkpIHRvIGFsbCBjYXBzLAoJICB3aGljaCBtYWtlcyB0aGVtIG11Y2ggbW9yZSB1bndpZWxkeSBhbmQKCSAgaGFyZGVyIHRvIHJlYWQuIEFsc28gdXNlIGludGVybmFsIGZ1bmN0aW9uCgkgIHRvIGdldCBjYXBzIGZlYXR1cmVzIHNvIHRoYXQgb3VyIHByaW50aW5nCgkgIGhhcyBubyBzaWRlIGVmZmVjdHMgb24gdGhlIGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY4MDkKCjIwMTUtMDMtMjYgMTM6MDU6NTcgKzAxMDAgIEx1Ym9zeiBTYXJuZWNraSA8bHVib3N6LnNhcm5lY2tpQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHBsb3QgY2FwcyBmZWF0dXJlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2ODA5CgoyMDE1LTAzLTMxIDIzOjQ4OjIyICswOTAwICBXb25jaHVsIExlZSA8Y2h1bDA4MTJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBhIHR5cG8gaW4gYSBkb2NzdHJpbmcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NzExOQoKMjAxNS0wMy0zMSAxMToxNToxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRG9uJ3QgdXNlIGctaXItc2Nhbm5lciBjYWNoZSBhdCBjb21waWxlIHRpbWUKCSAgSXQgcG9sbHV0ZXMgdXNlciBkaXJlY3RvcmllcyBhbmQgd2UgZG9uJ3QgbmVlZCB0byBjYWNoZSBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3MDk1CgoyMDE1LTAzLTI4IDE0OjQ1OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBvdXRkYXRlZCBkZWJ1ZyBtZXNzYWdlCgkgIEJ1ZmZlciBsaXN0cyBkb24ndCBoYXZlIGdyb3VwcyBhbnkgbW9yZSBpbiAxLjAKCjIwMTUtMDMtMjcgMTg6MjA6MzcgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBGbHVzaC1zdG9wIHN0YXJ0cyBsaXZlIHRhc2sgaW4gcGF1c2VkCgkgIFRoZSBmbHVzaC1zdG9wIGV2ZW50IHNob3VsZCBub3QgcmVzdGFydCB0aGUgdGFzayBmb3IgbGl2ZSBzb3VyY2VzIHVubGVzcwoJICB0aGUgZWxlbWVudCBpcyBwbGF5aW5nLiBUaGlzIHdhcyBicmVha2luZyBzZWVrcyBpbiBwYXVzZSB3aXRoIHRoZSBydHBzcmMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzU3MDEKCjIwMTUtMDMtMjcgMTY6MjM6NDAgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICB0ZXN0czogY2hlY2sgbG9jYXRpb24gaXNuJ3QgdHJ1bmNhdGVkCgkgIFRlc3QgY292ZXJpbmcgdGhlIHJlY2VudCBjb21taXQgd2hlcmUgbG9jYXRpb249JyIuYWJjJyB3b24ndCBnZXQgdHJ1bmNhdGVkCgkgIHRvICcuYWInIGFueW1vcmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODYyNQoKMjAxNS0wMy0yNiAxNzowMTowNiArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IG9ubHkgdW53cmFwIHN0cmluZyBkZWxpbWl0ZWQgd2l0aCAiCgkgIERvbid0IHVud3JhcCBzdHJpbmdzIHRoYXQgc3RhcnQgYnV0IGRvbid0IGZpbmlzaCB3aXRoIGEgZG91YmxlIHF1b3RlLiBJZiBhCgkgIHN0cmluZyBpcyBkZWxpbWl0ZWQgYnkgdHdvIHF1b3RlcyB3ZSB1bmVzY2FwZSB0aGVtIGFuZCBhbnkgc3BlY2lhbCBjaGFyYWN0ZXJzCgkgIGluIHRoZSBtaWRkbGUgKGxpa2UgXCIgb3IgXFwpLiBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9yIHRoZSBsYXN0IGNoYXJhY3RlcgoJICBhcmVuJ3QgYSBxdW90ZSB3ZSBhc3N1bWUgaXQncyBwYXJ0IG9mIGFuIHVuZXNjYXBlZCBzdHJpbmcuCgkgIE1vdmVkIHNvbWUgZGVzZXJpYWxpemVfc3RyaW5nIHVuaXQgdGVzdHMgYmVjYXVzZSB3ZSBkb24ndCB0cnkgdG8gdW53cmFwIHN0cmluZ3MKCSAgbWlzc2luZyB0aGF0IHNlY29uZCBxdW90ZSBhbnltb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4NjI1CgoyMDE1LTAzLTI3IDE3OjE2OjAzICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGNoZWNrIGJlZm9yZSB0cnVuY2F0aW5nIHN0cmluZ3MKCSAgRG9uJ3QgdHJ1bmNhdGUgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgc3RyaW5nIGlmIGl0IGlzbid0IG5lY2Vzc2FyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODYyNQoKMjAxNS0wMy0yNyAxMDoxNToxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBBZGQgZ3VhcmRzIGFnYWluc3QgaW52YWxpZCBhcmd1bWVudHMgdG8gc2V0X2ZsdXNoaW5nKCkgYW5kIHBvbGwoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2ODcxCgoyMDE1LTAzLTI1IDEwOjQ5OjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG9ubHkgcG9zdCAnbm8gdmFsaWQgZnJhbWVzJyBlcnJvciBpZiBidWZmZXJzIHdlcmUgcmVjZWl2ZWQKCSAgT3RoZXJ3aXNlIGJhc2VwYXJzZSB3aWxsIGNvbnNpZGVyIGVtcHR5IHN0cmVhbXMgdG8gYmUgYW4gZXJyb3Igd2hpbGUKCSAgYW4gZW1wdHkgc3RyZWFtIGlzIGEgdmFsaWQgc2NlbmFyaW8uIFdpdGggdGhpcyBwYXRjaCwgZXJyb3JzIHdvdWxkCgkgIG9ubHkgYmUgZW1pdHRlZCBpZiB0aGUgcGFyc2VyIHJlY2VpdmVkIGRhdGEgYnV0IHdhc24ndCBhYmxlIHRvCgkgIHByb2R1Y2UgYW55IG91dHB1dCBmcm9tIGl0LgoJICBUaGlzIGNoYW5nZSBpcyBvbmx5IGZvciBwdXNoLW1vZGUgb3BlcmF0aW9uIGFzIGluIHB1bGwgbW9kZSBhbgoJICBlbXB0eSBmaWxlIGNhbiBiZSBjb25zaWRlcmVkIGFuIGVycm9yIGZvciB0aGUgb25lIGRyaXZpbmcgdGhlCgkgIHBpcGVsaW5lCgkgIEluY2x1ZGVzIGEgdW5pdCB0ZXN0IGZvciBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMTcxCgoyMDE1LTAzLTE5IDEwOjM2OjExICswMTAwICBKb3NlIEFudG9uaW8gU2FudG9zIENhZGVuYXMgPHNhbnRvc2NhZGVuYXNAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZTogQWRkIGFsbG93LW5vdC1saW5rZWQgcHJvcGVydHkKCSAgVGhpcyBwcm9wZXJ0eSBhdm9pZHMgbm90IGxpbmtlZCBlcnJvciB3aGVuIGFsbCB0aGUgcGFkcyBhcmUgdW5saW5rZWQKCSAgb3Igd2hlbiB0aGVyZSBhcmUgbm8gc291cmNlIHBhZHMuIFRoaXMgaXMgdXNlZnVsIGluIGR5bmFtaWMgcGlwZWxpbmVzCgkgIHdoZXJlIGl0IGNhbiBoYXBwZW4gdGhhdCBmb3IgYSBzaG9ydCB0aW1lIHRoZXJlIGFyZSBubyBwYWRzIGF0IGFsbCBvcgoJICBhbGwgZG93bnN0cmVhbSBwYWRzIGFyZSBub3QgbGlua2VkIHlldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjQzNgoKMjAxNS0wMy0yMSAxNzoxMzoxOCAtMDUwMCAgTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IEZpeCB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTg1CgoyMDE1LTAzLTIxIDE1OjQ2OjUwIC0wNTAwICBNaWNoYWVsIENhdGFuemFybyA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRml4IHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1ODUKCjIwMTUtMDMtMjQgMTY6MDQ6MTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBhZGQgZHJhaW4gaGFuZGxpbmcKCSAgUmVsZWFzZSB0aGUgbGF0ZXN0IGJ1ZmZlciwgaWYgYW55LCBhbmQgdGhlbiBqdXN0IGxldAoJICB0aGUgZHJhaW4gYmUgcHVzaGVkIGRvd25zdHJlYW0KCjIwMTUtMDMtMjQgMTk6MzI6NDkgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBSZXZlcnQgIkZpeCBkaXN0Y2hlY2siCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTZkZDJkODljNGVhYzQ2MGNiYzM3ZTJhNTFjMWRkOWU3OTI5OTllOC4KCSAgSW5zdGFsbGluZyBjb21wbGV0aW9ucyB0byBhIGN1c3RvbSBwcmVmaXggaXMgbm93IGZpeGVkLgoKMjAxNS0wMy0yNCAxOTozMDo1MiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogcmVtb3ZlIGNvbXBsZXRpb24taGVscGVyIG9uIHVuaW5zdGFsbAoJICArIEFuZCBhZGQgaXQgdG8gQ0xFQU5GSUxFUwoKMjAxNS0wMy0xOCAxOTozODoxNSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtaW5zcGVjdC0xLjA6CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWxhdW5jaC0xLjA6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0OgoJICBjb21wbGV0aW9uczogcmVtb3ZlIGxhc3QgdW5uYW1lc3BhY2VkIHN5bWJvbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcKCjIwMTUtMDMtMTggMTQ6NDQ6MjEgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWluc3BlY3QtMS4wOgoJKiBkYXRhL2NvbXBsZXRpb25zL2dzdC1sYXVuY2gtMS4wOgoJICBjb21wbGV0aW9uczogcmVtb3ZlIGRlcHJlY2F0ZWQgc2hlbGwgc3ludGF4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0ODc3I2MyMQoKMjAxNS0wMy0xOCAxNDozNzoxMSArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtaW5zcGVjdC0xLjA6CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWxhdW5jaC0xLjA6CgkgIGNvbXBsZXRpb25zOiBwcmVmaXggc2hlbGwgZnVuY3Rpb25zIHdpdGggX2dzdAoJICArIFRvIG1ha2UgaXQgbW9yZSBkaWZmaWN1bHQgZm9yIHRoZW0gdG8gY29uZmxpY3QgaW4gdGhlCgkgIGdsb2JhbCBuYW1lc3BhY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcjYzIxCgoyMDE1LTAzLTI0IDEzOjEzOjI5IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFzaC1jb21wbGV0aW9uOiBSZXNwZWN0IHRoZSBwcmVmaXgKCSAgRG9uJ3QgdHJ5IGFuZCBpbnN0YWxsIHRoZSBiYXNoIGhlbHBlcnMgb3V0c2lkZSB0aGUgZGVmaW5lZCBwcmVmaXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ4NzcKCjIwMTQtMTEtMTkgMTM6MDg6NDUgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW5hbWUgX2FjdGl2YXRlX3NpbmtwYWQgdG8gX2dldF9hY3RpdmVfc2lua3BhZAoJICBSZW1vdmVzIHRoZSBub3cgdW51c2VkICdwYWQnIHBhcmFtZXRlciBhbmQgcmVuYW1lcyB0aGUgZnVuY3Rpb24KCSAgdG8gc29tZXRoaW5nIG1vcmUgYXBwcm9wcmlhdGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk2MjAKCjIwMTQtMTEtMTkgMTM6MDM6MjEgKzAxMDAgIEphbiBBbGV4YW5kZXIgU3RlZmZlbnMgKGhlZnRpZykgPGpzdGVmZmVuc0BtYWtlLnR2PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBSZW1vdmUgcGFkJ3MgJ2FjdGl2ZScgZmllbGQKCSAgVGhpcyBpcyBub3cgbmV2ZXIgcmVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTYyMAoKMjAxNC0xMS0xOSAxMjo1OToxMiArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8anN0ZWZmZW5zQG1ha2UudHY+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFVzZSBzZWdtZW50LXByZXNlbmNlIGZvciBydW5uaW5nX3RpbWUgY2hlY2sKCSAgV2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRoZSBydW5uaW5nX3RpbWUgb2YgYSBwYWQgY2FuIGJlCgkgIGNhbGN1bGF0ZWQsIGNoZWNrIGlmIHRoZSBzZWdtZW50IGlzIGluIFRJTUUgZm9ybWF0IGluc3RlYWQKCSAgb2YgdXNpbmcgdGhlICdhY3RpdmUnIGZpZWxkLgoJICBTaW5jZSB0aGUgbGF0dGVyIGlzIHNldCB0aHJvdWdoICphbnkqIGFjdGl2aXR5LCBpdCdzIG5vdCBhCgkgIHJlbGlhYmxlIGluZGljYXRvciBvZiBzZWdtZW50IHByZXNlbmNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NjIwCgoyMDE1LTAzLTIzIDEzOjIwOjM0ICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSAnYmxvY2tlZCcgZmxhZwoJICBXaXRoIHRoZSBkaXNhcHBlYXJhbmNlIG9mIHRoZSAnYmxvY2snIHNpZ25hbCwgdGhpcwoJICBmbGFnIGNhbm5vdCBiZSBzZXQgdG8gVFJVRS4KCSAgZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQgZGlzYXBwZWFycyBhcyBpdCBuZXZlciB3YWl0cwoJICBhbmQganVzdCByZXR1cm5zIHNlbGYtPmZsdXNoaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODkxCgoyMDE1LTAzLTIzIDEyOjEyOjUxICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSBvYnNvbGV0ZSAnYmxvY2snIHNpZ25hbAoJICBUaGlzIHNpZ25hbCBibG9ja3MgdGhlIGlucHV0LXNlbGVjdG9yIHdpdGggbm8gbWVhbnMgb2YgdW5ibG9ja2luZwoJICBvdGhlciB0aGFuIGEgc3RhdGUgY2hhbmdlIGJhY2sgdG8gUkVBRFkuIEl0IHNlZW1zIHRoaXMgc2lnbmFsIHdhcwoJICBwYXJ0IG9mIGFuIG9sZCB3YXkgb2Ygc3luY2hyb25vdXNseSBzd2l0Y2hpbmcgdGhlIHNlbGVjdG9yLAoJICB0b2dldGhlciB3aXRoIHRoZSBhbHJlYWR5LXJlbW92ZWQgJ3N3aXRjaCcgc2lnbmFsLgoJICBSZW1vdmluZyB0aGUgc2lnbmFsIGlzIHNhZmUsIGFzIGF0dGVtcHRpbmcgdG8gdXNlIGl0IGNvdWxkIG9ubHkKCSAgZW5kIGluIGRlYWRsb2Nrcy4gQXR0ZW1wdGluZyB0byBlbWl0IGFuIHVua25vd24gc2lnbmFsIGp1c3QgY2F1c2VzCgkgIGdfY3JpdGljYWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODkxCgoyMDE1LTAzLTIzIDEzOjA1OjMwICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogRml4IHdhaXRpbmcgb24gRU9TCgkgIFRoaXMgYXBwYXJlbnRseSBnb3QgYnJva2VuIGJ5IGJjMWVjNGUuIFNpbmNlIHNlbGYtPmJsb2NrZWQgaXMgYWx3YXlzCgkgIEZBTFNFLCBnc3RfaW5wdXRfc2VsZWN0b3Jfd2FpdCBuZXZlciBhY3R1YWxseSB3YWl0cy4KCSAgVXNpbmcgKCFzZWxmLT5lb3MgfHwgc2VsZi0+YmxvY2tlZCkgJiYgLi4uIGFzIHRoZSBsb29wIGNvbmRpdGlvbiB3b3VsZAoJICBiZSBpbmNvcnJlY3QgYXMgd2VsbCwgYmVjYXVzZSB0aGVuIHRoZSBvdGhlciBjYWxsIHRvIHRoZSBmdW5jdGlvbiBpbgoJICBfY2hhaW4gd291bGQgYmxvY2sgdW50aWwgRU9TLCBzbyB0aGUgZnVuY3Rpb25zIGNhbm5vdCBiZSBtZXJnZWQgdHJpdmlhbGx5LgoJICBTaW5jZSBibG9ja2luZyBpcyBvYnNvbGV0ZSwgZ3N0X2lucHV0X3NlbGVjdG9yX3dhaXQgd2lsbCBnZXQgcmVtb3ZlZCBhbnl3YXkuCgkgIEFzIHN1Y2gsIGp1c3QgaW5saW5lIHRoZSBsb29wLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2NTE4CgoyMDE1LTAzLTIwIDA3OjIzOjUzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogaW5wdXQtc2VsZWN0b3I6IG5ldyB0ZXN0cyBmb3IgRU9TIGhhbmRsaW5nCgkgIDMgbmV3IHRlc3RzOgoJICAxKSBUZXN0cyB0aGF0IGEgc3RyZWFtIHRoYXQgaXMgZW1wdHkgKGp1c3QgYW4gRU9TIGV2ZW50KQoJICBvbiBpbmFjdGl2ZSBwYWQgZG9lc24ndCBnZXQgdGhyb3VnaCBhbmQgdGFtcGVyCgkgIHdpdGggdGhlIGFjdGl2ZSBwYWQgdGhhdCBzdGlsbCBoYXMgZGF0YQoJICAyKSBUZXN0cyB0aGF0IGEgc3RyZWFtIHRoYXQgaXMgc2hvcnRlciB0aGFuIHRoZSBhY3RpdmUgb25lCgkgIChwdXNoZXMgRU9TIGVhcmxpZXIpIGRvZXNuJ3QgaGFzIGl0cyBFT1MgcHVzaGVkCgkgIDMpIFRlc3RzIHRoYXQgc3dpdGNoaW5nIHRvIGFuIGluYWN0aXZlIHN0cmVhbSB0aGF0IGhhcyByZWNlaXZlZAoJICBFT1Mgd2lsbCBtYWtlIGlucHV0LXNlbGVjdG9yIHB1c2ggRU9TCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY1MTgKCjIwMTUtMDMtMTkgMTI6MTE6MTkgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHRlc3RzOiBzZWxlY3RvcjogcmVtb3ZlIHdlaXJkIHNlbWljb2xvbnMgYXQgdGhlIGVuZCBvZiB0ZXN0IGZ1bmN0aW9ucwoJICBFdmVuIHRob3VnaCBpdCB3b3JrcywgaXQgaXMgbm90IG5lZWRlZCBhbmQgc2VlbXMgbW9yZSBuYXR1cmFsCgkgIHRvIG5vdCBoYXZlIHNlbWljb2xvbnMgYXQgdGhlIGVuZCBvZiBmdW5jdGlvbiBkZWNsYXJhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjUxOAoKMjAxNC0wNy0xNyAxNjozMzoyOSArMDIwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUHJvY2VzcyBTRUVLSU5HIHF1ZXJ5CgkgIEFkZCBRVUVSWV9TRUVLSU5HIGhhbmRsaW5nIHRvIHF1ZXVlMiwgc28gUlRNUCBsaXZlIHN0cmVhbXMgYmVjb21lCgkgIHNlZWthYmxlIHdoZW4gYSBxdWV1ZTIgaW4gZG93bmxvYWQgb3IgcmluZ2J1ZmZlciBtb2RlIGlzIGluc2VydGVkOgoJICBydG1wc3JjICEgcXVldWUyICEgZmx2ZGVtdXgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzM1MQoKMjAxNS0wMy0yMSAxOTozNzozMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBjaGVjazogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZyB3aXRoIGdjYwoJICBjaGVja19ydW4uYzogSW4gZnVuY3Rpb24gJ3NpZ19oYW5kbGVyJzoKCSAgY2hlY2tfcnVuLmM6MTI3OjEzOiB3YXJuaW5nOiAnY2hpbGRfc2lnJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XbWF5YmUtdW5pbml0aWFsaXplZF0KCSAga2lsbHBnKGdyb3VwX3BpZCwgY2hpbGRfc2lnKTsKCSAgXgoJICBjaGVja19ydW4uYzoxMzA6MzE6IHdhcm5pbmc6ICdpZHgnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxpemVkXQoJICBzaWdhY3Rpb24oc2lnX25yLCAmb2xkX2FjdGlvbltpZHhdLCBOVUxMKTsKCSAgXgoKMjAxNS0wMy0yMSAxNToxOTo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJICBjaGVjazogQ2F0Y2ggU0lHVEVSTSBhbmQgU0lHSU5UIGluIHRoZSB0ZXN0IHJ1bm5lciBhbmQga2lsbCBhbGwgY3VycmVudGx5IHJ1bm5pbmcgdGVzdHMKCSAgT3RoZXJ3aXNlIGUuZy4gY3RybCtjIGluIHRoZSB0ZXN0IHJ1bm5lciBleGl0cyB0aGUgdGVzdCBydW5uZXIsIHdoaWxlIHRoZSB0ZXN0CgkgIGl0c2VsZiBpcyBzdGlsbCBydW5uaW5nIGluIHRoZSBiYWNrZ3JvdW5kLCB1c2VzIENQVSBhbmQgbWVtb3J5IGFuZCBwb3RlbnRpYWxseQoJICBuZXZlciBleGl0cyAoZS5nLiBpZiB0aGUgdGVzdCByYW4gaW50byBhIGRlYWRsb2NrIG9yIGluZmluaXRlIGxvb3ApLgoJICBUaGUgcmVhc29uIHdoeSB3ZSBoYXZlIHRvIG1hbnVhbGx5IGtpbGwgdGhlIGFjdHVhbCB0ZXN0cyBpcyB0aGF0IGFmdGVyCgkgIGZvcmtpbmcgdGhleSB3aWxsIGJlIG1vdmVkIHRvIHRoZWlyIG93biBwcm9jZXNzIGdyb3VwLCBhbmQgYXMgc3VjaCBhcmUKCSAgbm90IHJlY2VpdmluZyBhbnkgc2lnbmFscyBzZW50IHRvIHRoZSB0ZXN0IHJ1bm5lciBhbnltb3JlLiBUaGlzIGlzIHN1cHBvc2VkCgkgIHRvIGJlIGRvbmUgdG8gbWFrZSBpdCBlYXNpZXIgdG8ga2lsbCBhIHRlc3QsIHdoaWNoIGl0IG9ubHkgcmVhbGx5IGRvZXMgaWYKCSAgdGhlIHRlc3QgaXRzZWxmIGlzIGZvcmtpbmcgb2ZmIG5ldyBwcm9jZXNzZXMuCgkgIFRoaXMgZml4IGlzIG5vdCBjb21wbGV0ZSB0aG91Z2guIFNJR0tJTEwgY2FuJ3QgYmUgY2F1Z2h0IGF0IGFsbCwgYW5kIGVycm9yCgkgIHNpZ25hbHMgbGlrZSBTSUdTRUdWLCBTSUdGUEUgYXJlIGN1cnJlbnRseSBub3QgY2F1Z2h0LiBUaGUgbGF0dGVyIHdpbGwgb25seQoJICBoYXBwZW4gaWYgdGhlcmUgaXMgYSBidWcgaW4gdGhlIHRlc3QgcnVubmVyIGl0c2VsZiwgYW5kIGFzIHN1Y2ggc2VlbSBsZXNzCgkgIGltcG9ydGFudC4KCjIwMTUtMDMtMTkgMTM6NTE6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBEb24ndCBkcm9wIG5vbi1zZXJpYWxpemVkIHF1ZXJpZXMgd2hlbiB0aGUgdmFsdmUgaXMgZHJvcHBpbmcKCSAgT3RoZXJ3aXNlIHdlIGVuZCB1cCBkcm9wcGluZyBlLmcuIENBUFMgcXVlcmllcywgYW5kIHRoZW4gdXBzdHJlYW0ganVzdAoJICBuZWdvdGlhdGVzIHRvIHdoYXRldmVyIGZvcm1hdCBpdCB3YW50cyB0by4gT25jZSB0aGUgdmFsdmUgaXMgbm90LWRyb3BwaW5nCgkgIGFueW1vcmUgdGhpcyBjYW4gZWFzaWx5IHJlc3VsdCBpbiBuZWdvdGlhdGlvbiBmYWlsaW5nIGNvbXBsZXRlbHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDY0NDgKCjIwMTUtMDMtMjAgMDk6MDA6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogcmVtb3ZlIHRoZSBib3VuZHMgY2hlY2sgZnJvbSBfdG9fcnVubmluZ190aW1lX2Z1bGwoKQoJICBEbyBub3QgZG8gYW55IGNoZWNrcyBmb3IgdGhlIHN0YXJ0L3N0b3AgaW4gdGhlIG5ldwoJICBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWVfZnVsbCgpIG1ldGhvZCwgd2UgY2FuIGxldCB0aGlzIGJlIGRvbmUgYnkKCSAgdGhlIG1vcmUgY2FwYWJsZSBnc3Rfc2VnbWVudF9jbGlwKCkgbWV0aG9kLiBUaGlzIGFsbG93cyB1cyB0byByZW1vdmUgdGhlCgkgIGVudW0gb2YgcmVzdWx0cyBhbmQgb25seSByZXR1cm4gdGhlIHNpZ24gb2YgdGhlIGNhbGN1bGF0ZWQgcnVubmluZy10aW1lLgoJICBXZSBuZWVkIHRvIHB1dCB0aGUgb2xkIGNsaXBwaW5nIGNoZWNrcyBpbiB0aGUgb2xkCgkgIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpIHN0aWxsIGJlY2F1c2UgdGhleSB3b3JrIHNsaWdodGx5CgkgIGRpZmZlcmVudGx5IHRoYW4gdGhlIF9jbGlwIG1ldGhvZHMuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTAzLTE5IDE3OjM2OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGFkZCBvcHRpb24gdG8gZGlzYWJsZSBjbGlwcGluZwoJICBBZGQgYSBjbGlwIGFyZ3VtZW50IHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZV9mdWxsKCkgdG8gZGlzYWJsZQoJICB0aGUgY2hlY2tzIGFnYWluc3QgdGhlIHNlZ21lbnQgYm91bmRhcmllcy4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0bwoJICBnZW5lcmF0ZSBhbiBleHRyYXBvbGF0ZWQgcnVubmluZy10aW1lIGZvciB0aW1lc3RhbXBzIG91dHNpZGUgb2YgdGhlCgkgIHNlZ21lbnQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQwNTc1CgoyMDE1LTAzLTE4IDE2OjI3OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZi91bnJlZiBuZXcgZW51bSB0eXBlIGluIGdzdF9pbml0L2RlaW5pdCgpCgoyMDE1LTAzLTE4IDE0OjE2OjQ4ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiB0ZXN0cy9taXNjL3Rlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2g6CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICB0b29sczogcmVtb3ZlIG91dGRhdGVkIGNvbXBsZXRpb24gc2NyaXB0CgkgICsgUmVtb3ZlIHRoZSBhc3NvY2lhdGVkIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NyNjMjEKCjIwMTUtMDMtMTggMTE6MzE6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBoZWxwZXIgdG8gZ2V0IG5lZ2F0aXZlIHJ1bm5pbmctdGltZQoJICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIGdldCBhIHJ1bm5pbmctdGltZSB3aXRoIGEgbGl0dGxlIG1vcmUgZmVhdHVyZXMKCSAgc3VjaCBhcyBkZXRlY3RpbmcgaWYgdGhlIHZhbHVlIHdhcyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIHNlZ21lbnQgYW5kCgkgIG5lZ2F0aXZlIHJ1bm5pbmctdGltZS4KCSAgQVBJOiBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWVfZnVsbCgpCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDA1NzUKCjIwMTUtMDMtMTggMTA6NTM6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZml4IG9mZnNldCBoYW5kbGluZyB3aXRoIG5vbiAwIHN0YXJ0CgkgIFRoZSBwb3NpdGlvbiBpbiB0aGUgc2VnbWVudCBpcyByZWxhdGl2ZSB0byB0aGUgc3RhcnQgYnV0IHRoZSBvZmZzZXQKCSAgaXNuJ3QsIHNvIHN1YnRyYWN0IHRoZSBzdGFydCBmcm9tIHRoZSBwb3NpdGlvbiB3aGVuIHNldHRpbmcgdGhlIG9mZnNldC4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhpcyBhcyB3ZWxsLgoKMjAxNS0wMy0xOCAwOTozNjozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogQWRkIHN1cHBvcnQgZm9yIGJ1ZmZlciBsaXN0cwoKMjAxMy0xMS0yOSAxNjoyODo0MSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGR1cGxpY2F0ZSBjb2RlCgkgIFRoZXNlIGFyZSBhbHJlYWR5IGZyZWVkIGJ5IGdzdF9iYXNlX3BhcnNlX2NsZWFyX3F1ZXVlcygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk3NjgKCjIwMTUtMDMtMTcgMTU6NDE6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogRml4IGluZGVudGlvbgoKMjAxNS0wMy0xMyAxMTowODoyNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc2V0IHNraXAgb24gc2VnbWVudHMgYW5kIGRpc2NvbnRpbnVpdGllcwoJICBMYXJnZSBzY2FsZSBza2lwIGlzIGFuIG9wdGltaXphdGlvbiwgYW5kIHRodXMgaXQgaXMgc2FmZXIgdG8KCSAgc3RvcCBza2lwcGluZyB0aGFuIHRvIGNvbnRpbnVlLiBDbGVhciBza2lwIG9uIHNlZ21lbnRzIGFuZAoJICBkaXNjb250aW51aXRpZXMsIGFzIHRoZXNlIGFyZSBwb2ludHMgd2hlcmUgaXQgaXMgcG9zc2libGUgdGhhdAoJICB0aGUgb3JpZ2luYWwgaWRlYSBvZiAiYnl0ZXMgdG8gc2tpcCIgY2hhbmdlcy4KCjIwMTUtMDMtMTUgMTQ6MTk6MTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgZ3JvdyBxdWV1ZSBpbmZpbml0ZWx5IGlmIG9ubHkgb25lIHBhZCBpcyBsaW5rZWQKCSAgVGhpcyB3YXMgaW50cm9kdWNlZCBieQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE5ODkzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI4OTEKCSAgYnV0IGl0IGRvZXNuJ3QgbWFrZSBhbnkgc2Vuc2UgYXQgYWxsIGFuZCBjYXVzZXMgaHVnZSBtZW1vcnkgbGVha3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQyNTMKCjIwMTUtMDMtMTQgMjE6MDc6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBoYW5kbGUgZW1wdHkgYnVmZmVyIGxpc3QgbW9yZSBncmFjZWZ1bGx5CgkgIERvbid0IGFib3J0LCBqdXN0IGlnbm9yZSBpdC4gSXQncyBsaWtlIGEgYnVmZmVyCgkgIHdpdGhvdXQgbWVtb3JpZXMuCgoyMDE1LTAzLTE0IDE3OjM5OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG1pbm9yIG9wdGltaXNhdGlvbiBmb3IgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfbGlzdCgpCgkgIFRyeSB0byBhbGxvY2F0ZSBidWZmZXIgbGlzdCB3aXRoIGEgc3VpdGFibGUgc2l6ZSBmcm9tIHRoZQoJICBiZWdpbm5pbmcgdG8gYXZvaWQgaGF2aW5nIHRvIHJlLWFsbG9jIHRoZSBidWZmZXIgbGlzdCBhcnJheS4KCjIwMTUtMDMtMTQgMTc6MjM6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyX2xpc3QoKQoKMjAxNS0wMy0xNCAxNzoyMDozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBhZGQgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfbGlzdCgpCgkgIEFQSTogZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXJfbGlzdCgpCgoyMDE1LTAzLTE0IDE2OjA1OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgQWRkIG5ldyBzdHJlYW1pZGRlbXV4IGJpbmFyaWVzIHRvIC5naXRpZ25vcmUKCjIwMTUtMDMtMTQgMTY6MDA6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhdm9pZCBtdWx0aXBsZSBjYWxscyB0byBnc3RfYnVmZmVyX2dldF9zaXplKCkgaW4gbWFjcm8KCjIwMTUtMDMtMTQgMTU6NTg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYXZvaWQgbXVsdGlwbGUgY2FsbHMgdG8gZ3N0X2J1ZmZlcl9nZXRfc2l6ZSgpIGluIG1hY3JvCgoyMDE1LTAzLTEzIDE4OjIyOjAxICswMDAwICBSYW1pcm8gUG9sbGEgPHJhbWlyby5wb2xsYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBwcm9wZXJseSBlc2NhcGUgcGVyY2VudCBzaWduIGluIGRvY3VtZW50YXRpb24KCjIwMTUtMDMtMTQgMTM6Mzc6MDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogVXNlIHRoZSBjb3JyZWN0IGVudW0gdHlwZSB0byBmaXggYSBjb21waWxlciB3YXJuaW5nCgkgIGdzdGJ1ZmZlci5jOjUyMjo1ODogZXJyb3I6IGltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBlbnVtZXJhdGlvbiB0eXBlICdHc3RCdWZmZXJGbGFncycgdG8KCSAgZGlmZmVyZW50IGVudW1lcmF0aW9uIHR5cGUgJ0dzdEJ1ZmZlckNvcHlGbGFncycgWy1XZXJyb3IsLVdlbnVtLWNvbnZlcnNpb25dCgkgIGlmICghZ3N0X2J1ZmZlcl9jb3B5X2ludG8gKGNvcHksIChHc3RCdWZmZXIgKikgYnVmZmVyLCBmbGFncywgMCwgLTEpKQoJICB+fn5+fn5+fn5+fn5+fn5+fn5+fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+CgkgIGdzdGJ1ZmZlci5jOjUzNDo0NjogZXJyb3I6IGltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBlbnVtZXJhdGlvbiB0eXBlICdHc3RCdWZmZXJDb3B5RmxhZ3MnIHRvCgkgIGRpZmZlcmVudCBlbnVtZXJhdGlvbiB0eXBlICdHc3RCdWZmZXJGbGFncycgWy1XZXJyb3IsLVdlbnVtLWNvbnZlcnNpb25dCgkgIHJldHVybiBnc3RfYnVmZmVyX2NvcHlfd2l0aF9mbGFncyAoYnVmZmVyLCBHU1RfQlVGRkVSX0NPUFlfQUxMKTsKCSAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4gICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgoJICAuL2dzdGJ1ZmZlci5oOjQzMzozMTogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnR1NUX0JVRkZFUl9DT1BZX0FMTCcKCSAgLi4uKChHc3RCdWZmZXJDb3B5RmxhZ3MpKEdTVF9CVUZGRVJfQ09QWV9NRVRBREFUQSB8IEdTVF9CVUZGRVJfQ09QWV9NRU1PUlkpKQoJICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoKMjAxNS0wMy0xNCAxNDowNjowOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSAgZGVmczogdXBkYXRlIGRlZnMKCjIwMTQtMTAtMzAgMTU6Mzk6MjEgKzAwMDAgIFdpbGxpYW0gTWFubGV5IDx3aWxsQHdpbGxpYW1tYW5sZXkubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y29udHJvbG1lc3NhZ2VtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjb250cm9sbWVzc2FnZW1ldGEuaDoKCSAgbWV0YTogQWRkIGBHc3ROZXRDb250cm9sTWVzc2FnZU1ldGFgCgkgIEdzdE5ldEFkZHJlc3MgY2FuIGJlIHVzZWQgdG8gc3RvcmUgYW5jaWxsYXJ5IGRhdGEgd2hpY2ggd2FzIHJlY2VpdmVkIHdpdGgKCSAgb3IgaXMgdG8gYmUgc2VudCBhbG9uZ3NpZGUgdGhlIGJ1ZmZlciBkYXRhLiAgV2hlbiB1c2VkIHdpdGggc29ja2V0IHNpbmtzCgkgIGFuZCBzb3VyY2VzIHdoaWNoIHVuZGVyc3RhbmQgdGhpcyBtZXRhIGl0IGFsbG93cyBzZW5kaW5nIGFuZCByZWNlaXZpbmcKCSAgYW5jaWxsYXJ5IGRhdGEgc3VjaCBhcyB1bml4IGNyZWRlbnRpYWxzIChTZWUgYEdVbml4Q3JlZGVudGlhbHNNZXNzYWdlYCkKCSAgYW5kIFVuaXggZmlsZSBkZXNjcmlwdGlvbnMgKFNlZSBgR1VuaXhGRE1lc3NhZ2VgKS4KCSAgVGhpcyB3aWxsIGJlIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nIHByb3RvY29scyB3aGljaCB1c2UgZmlsZS1kZXNjcmlwdG9yCgkgIHBhc3NpbmcgaW4gcGF5bG9hZGVycy9kZXBheWxvYWRlcnMgd2l0aG91dCBoYXZpbmcgdG8gcmUtaW1wbGVtZW50IGFsbCB0aGUKCSAgc29ja2V0IGhhbmRsaW5nIGNvZGUgYWxyZWFkeSBwcmVzZW50IGluIGVsZW1lbnRzIHN1Y2ggYXMgbXVsdGlzb2NrZXRzaW5rLAoJICBldGMuICBUaGlzLCBpbiB0dXJuLCB3aWxsIGJlIHVzZWZ1bCBmb3IgaW1wbGVtZW50aW5nIHplcm8tY29weSB2aWRlbyBJUEMuCgkgIFRoaXMgbWV0YSB1c2VzIHRoZSBwbGF0Zm9ybSBpbmRlcGVuZGVudCBgR1NvY2tldENvbnRyb2xNZXNzYWdlYCBBUEkKCSAgcHJvdmlkZWQgYnkgR0xpYiBhcyBhIHBhcnQgb2YgR0lPLiAgQXMgYSByZXN1bHQgdGhpcyBuZXcgbWV0YSBkb2VzIG5vdAoJICByZXF1aXJlIGFueSBuZXcgZGVwZW5kZW5jaWVzIG9yIGFueSBjb25kaXRpb25hbCBjb21wbGlhdGlvbiBmb3IKCSAgcG9ydGFibGlsaXR5LCBhbHRob3VnaCBpdCBpcyB1bmxpa2VseSB0byBkbyBhbnl0aGluZyB1c2VmdWwgb24gbm9uLVVOSVgKCSAgcGxhdGZvcm1zLgoKMjAxNS0wMy0xNCAxMTo1NzozMyArMDAwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGFsbG9jYXRpb246IEFsbG93IGFsbG9jYXRpb24gcG9vbCB3aXRob3V0IHNpemUKCSAgVGhpcyBhbGxvdyBwcm9wb3NpbmcgYSBudW1iZXIgb2YgYnVmZmVycyByZXF1aXJlZCBldmVuIGlmIHRoZSBzaXplCgkgIG9mIGJ1ZmZlciBpcyB1bmZpeGVkLiBUaGlzIGlzIG9mdGVuIHRoZSBjYXNlIGZvciBlbmNvZGVkIGZvcm1hdHMuCgoyMDE1LTAzLTAxIDEzOjE1OjQwIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IERvbid0IHN0b3AgdGhlIHBvb2wgaW4gc2V0X2NvbmZpZygpCgkgIERvbid0IHN0b3AgdGhlIHBvb2wgaW4gc2V0X2NvbmZpZygpLiBJbnN0ZWFkLCBsZXQgdGhlIGNvbnRyb2xsaW5nCgkgIGVsZW1lbnQgbWFuYWdlIGl0LiBNb3N0IG9mIHRoZSB0aW1lLCB3aGVuIGFuIGFjdGl2ZSBwb29sIGlzIGJlaW5nCgkgIGNvbmZpZ3VyZWQgaXMgYmVjYXVzZSB0aGUgY2FwcyBkaWRuJ3QgY2hhbmdlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1Mzc3CgoyMDE1LTAzLTEzIDE4OjUzOjExICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBkcmFpbiBvbiBhbGxvY2F0aW9uIHF1ZXJ5CgkgIEFsbG93cyBidWZmZXJzIHRvIGJlIHJlY2xhaW1lZCB3aGVuIGNhcHMgaXMgdG8gYmUgcmVuZWdvdGlhdGVkIHNvCgkgIHRoYXQgYnVmZmVycG9vbHMgY2FuIGJlIHN0b3BwZWQuIEFzIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGlzCgkgIHNlcmlhbGl6ZWQgYWxsIGJ1ZmZlcnMgaGF2ZSBiZWVuIGFscmVhZHkgZHJhaW5lZCBmcm9tIHRoZSBwaXBlbGluZSwKCSAgZXhjZXB0IHRoaXMgbGFzdF9zYW1wbGUgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyNzcwCgoyMDE1LTAzLTEzIDE4OjM1OjE0ICswMDAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB3aGVuIGRyYWluaW5nLCBkZWVwIGNvcHkgdGhlIGxhc3QgYnVmZmVyIHRvIHVucmVmIG9sZCBtZW1vcnkKCSAgVXNlIGdzdF9idWZmZXJfY29weV9kZWVwKCkgdG8gZm9yY2UgdGhlIGNvcHkgb2YgdGhlIHVuZGVybHlpbmcKCSAgbWVtb3J5IGluc3RlYWQgb2YgcG9zc2libHkgZG9pbmcgYSBzaGFsbG93IGNvcHkgb2YgdGhlIGJ1ZmZlcgoJICBhbmQganVzdCByZWZlcmVuY2luZyB0aGUgbWVtb3J5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyODcKCjIwMTUtMDMtMTMgMTg6MzU6MDEgKzAwMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RidWZmZXI6IGFkZCBnc3RfYnVmZmVyX2NvcHlfZGVlcAoJICBBIHZhcmlhbnQgb2YgZ3N0X2J1ZmZlcl9jb3B5IHRoYXQgZm9yY2VzIHRoZSB1bmRlcmx5aW5nIG1lbW9yeQoJICB0byBiZSBjb3BpZWQuCgkgIFRoaXMgaXMgYWRkZWQgdG8gYXZvaWQgYWRkaW5nIGFuIGV4dHJhIHJlZmVyZW5jZSB0byBhIEdzdE1lbW9yeQoJICB0aGF0IG1pZ2h0IGJlbG9uZyB0byBhIGJ1ZmZlcnBvb2wgdGhhdCBpcyB0cnlpbmcgdG8gYmUgZHJhaW5lZC4KCSAgVGhlIHVzZSBjYXNlIGlzIHdoZW4gdGhlIGJ1ZmZlciBjb3B5aW5nIGlzIGRvbmUgdG8gcmVsZWFzZSB0aGUKCSAgb2xkIGJ1ZmZlciBhbmQgYWxsIGl0cyByZXNvdXJjZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyODcKCjIwMTUtMDMtMTMgMTU6MzE6MzAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogVXNlIGdfbGlzdF9mcmVlX2Z1bGwoKSBpbnN0ZWFkIG9mIG1hbnVhbGx5IHVucmVmZmluZyBhbmQgZnJlZWluZwoJICBBbHNvIHVucmVmIHRoZSBtZXNzYWdlcywgbm90IHRoZSBHTGlzdCBub2Rlcy4KCjIwMTUtMDMtMTMgMTM6NDI6NDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogRml4IGFub3RoZXIgY2FzZSB3aGVyZSB3ZSBob2xkIHRoZSBvYmplY3QgbG9jayB3aGlsZSB1bnJlZmZpbmcgYSBtZXNzYWdlCgoyMDE1LTAzLTEzIDE1OjI4OjQyICswMjAwICBWaXZpYSBOaWtvbGFpZG91IDx2aXZpYUBhaGlydS5ldT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBVbnJlZmVyZW5jaW5nIG1lc3NhZ2VzIG91dHNpZGUgdGhlIGxvY2sKCSAgU2hvdWxkbid0IHRha2UgdGhlIGxvY2sgd2hpbGUgdW5yZWZlcmVuY2luZyBtZXNzYWdlcywgYmVjYXVzZSB0aGF0IG1heSBjYXVzZQoJICBtb3JlIG1lc3NhZ2VzIHRvIGJlIHNlbnQsIHdoaWNoIHdpbGwgdHJ5IHRvIHRha2UgdGhlIGxvY2sgYW5kIGNhdXNlIHRoZSBhcHAgdG8KCSAgaGFuZy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODc3NwoKMjAxNS0wMi0yMyAyMDoyNzozMiArMDIwMCAgVml2aWEgTmlrb2xhaWRvdSA8dml2aWFAYWhpcnUuZXU+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogQWRkIGdzdF9iaW5fc3luY19jaGlsZHJlbl9zdGF0ZXMoKQoJICBnc3RfYmluX3N5bmNfY2hpbGRyZW5fc3RhdGVzKCkgd2lsbCBpdGVyYXRlIG92ZXIgYWxsIHRoZSBlbGVtZW50cyBvZiBhIGJpbiBhbmQKCSAgc3luYyB0aGVpciBzdGF0ZXMgd2l0aCB0aGUgc3RhdGUgb2YgdGhlIGJpbi4gVGhpcyBpcyB1c2VmdWwgd2hlbiBhZGRpbmcgbWFueQoJICBlbGVtZW50cyB0byBhIGJpbiBhbmQgd291bGQgb3RoZXJ3aXNlIGhhdmUgdG8gY2FsbAoJICBnc3RfZWxlbWVudF9zeW5jX3N0YXRlX3dpdGhfcGFyZW50KCkgb24gZWFjaCBhbmQgZXZlcnkgb25lIG9mIHRoZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUwNDIKCjIwMTUtMDItMDMgMTY6MTI6MzIgKzAxMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuYzoKCSAgcHJpbnRmOiBoYW5kbGUgdW5zaWduZWQgbW9kaWZpZXIgZm9yIGxvbmcgbG9uZwoJICBPdGhlcndpc2UsIGFuIHVuc2lnbmVkIGludGVnZXIgd2lsbCBiZSBkaXNwbGF5ZWQgYXMgYSBzaWduZWQgb25lIGlmIHdlCgkgIHVzZSBpbnRlcm5hbCBwcmludCwgaWUgSEFWRV9MT05HX0xPTkdfRk9STUFUIGlzIG5vdCBkZWZpbmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MDk2CgoyMDE1LTAzLTEyIDE0OjM5OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4LmM6CgkgIHN0cmVhbWlkZGVtdXg6IFJlc2V0IHBhZCBjb3VudGVyIGFmdGVyIHJlbW92aW5nIGFsbCBwYWRzCgoyMDE0LTAzLTA0IDE5OjQwOjA1ICswOTAwICBIb29uSGVlIExlZSA8aG9vbmhlZS5sZWVAbGdlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHN0cmVhbWlkZGVtdXguYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzdHJlYW1pZGRlbXV4Lmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zdHJlYW1pZGRlbXV4LmM6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1pZGRlbXV4L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1pZGRlbXV4L3N0cmVhbWlkZGVtdXgtc3RyZWFtLmM6CgkgIHN0cmVhbWlkZGVtdXg6IEFkZCBzdHJlYW1pZGRlbXV4IGVsZW1lbnQKCSAgRGVtdWx0aXBsZXggYSBzdHJlYW0gdG8gbXVsdGlwbGUgc291cmNlIHBhZHMgYmFzZWQgb24gdGhlIHN0cmVhbSBpZHMgZnJvbSB0aGUKCSAgc3RyZWFtLXN0YXJ0IGV2ZW50cy4gVGhpcyBiYXNpY2FsbHkgcmV2ZXJzZXMgdGhlIGJlaGF2aW91ciBvZiBmdW5uZWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc2MDUKCjIwMTUtMDMtMTIgMTM6Mjk6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZQoKMjAxNS0wMy0xMiAxMzoyNjo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByaW50Zi5jOgoJICB0ZXN0czogYWRkIHNvbWUgYmFzaWMgdW5pdCB0ZXN0cyBmb3Igb3VyIHByaW50ZiBzdHVmZgoJICBUbyB0ZXN0IG5ldyAlSTMyIHN1cHBvcnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQyODEKCjIwMTUtMDItMTAgMTc6NDA6NDggKzAxMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1wYXJzZS5jOgoJICBwcmludGY6IGFkZCBzdXBwb3J0IGZvciAlSTMyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQyODEKCjIwMTUtMDMtMTIgMTM6MTQ6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBtb3ZlIGNhdGVnb3J5IGxldmVsIHRocmVzaG9sZCBjaGVjayBpbnRvIGxvZyBmdW5jdGlvbiBkaXNwYXRjaGVyCgkgIE1pbm9yIG9wdGltaXNhdGlvbjogY2hlY2sgY2F0ZWdvcnkgbG9nIGxldmVsIGVhcmxpZXIgaW4gdGhlCgkgIGxvZyBmdW5jdGlvbiBkaXNwYXRjaGVyIGFuZCBub3Qgb25seSBpbiB0aGUgZGVmYXVsdCBsb2cKCSAgZnVuY3Rpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUyMTMKCjIwMTUtMDMtMTIgMTI6NTk6NTcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogUmVzZXQgc2VnbWVudCB3aGVuIGRlYWN0aXZhdGluZyBwdWxsIG1vZGUgb3Igbm90IHJ1bm5pbmcgaW4gcHVsbCBtb2RlCgkgIFdlIHVzZSB0aGUgc2VnbWVudCBmb3JtYXQgdG8gZGV0ZWN0IGlmIHdlIHJ1biB0aGUgc3RyZWFtaW5nIHRocmVhZCBvciBub3QuCgkgIFdpdGhvdXQgcmVzZXR0aW5nIHdlIG1pZ2h0IGJlbGlldmUgd2UgZG8gc28sIGFsdGhvdWdoIHdlIG9ubHkgZGlkIGluIHRoZSBwYXN0CgkgIGFuZCBhcmUgbm93IHJ1bm5pbmcgaW4gZS5nLiBwdXNoIG1vZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUwNzMKCjIwMTUtMDMtMDggMjA6NDI6MzggKzAxMDAgIE1pY2hhxYIgRMSZYnNraSA8ZGVic2tpLm1pLnpkQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGNoZWNrOiBVc2UgbWtzdGVtcCBpbnN0ZWFkIG9mIHRlbXBuYW0gaWYgcG9zc2libGUKCSAgVXNpbmcgdGVtcG5hbSgpIGlzIGRlcHJlY2F0ZWQsIHRoaXMgZ2l2ZXMgd2FybmluZyBhbmQgZmFpbHMgdGhlIGJ1aWxkCgkgIHdpdGggLVdlcnJvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTg1OAoKMjAxNS0wMy0xMSAxNjozNjoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGVhbiB1cCB0aGUgbmVlZF9wcmVyb2xsIHZhcmlhYmxlCgkgIEJhc2VkIG9uIHBhdGNoIGZyb20gU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCSAgRG9uJ3QganVzdCBzZXQgdGhlIG5lZWRfcHJlcm9sbCBmbGFnIHRvIFRSVUUgaW4gYWxsIGNhc2VzLiBXaGVuIHdlCgkgIGFyZSBhbHJlYWR5IHByZXJvbGxlZCBpdCBuZWVkcyB0byBiZSBzZXQgdG8gRkFMU0UgYW5kIHdoZW4gd2UgZ28gdG8KCSAgUkVBRFkgd2Ugc2hvdWxkIG5vdCB0b3VjaCBpdC4gV2Ugc2hvdWxkIG9ubHkgc2V0IGl0IHRvIFRSVUUgaW4gb3RoZXIKCSAgY2FzZXMsIGxpa2Ugd2hhdCB0aGUgY29kZSBhYm92ZSBkb2VzLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjY1NQoKMjAxNC0xMi0wNSAxNDoxNjo1MiArMDkwMCAgaG9vbmhlZS5sZWUgPGhvb25oZWUubGVlQGxnZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgZnVubmVsOiBoYW5kbGUgR0FQIGV2ZW50IHRvIGZvcndhcmRzIHN0aWNreSBldmVudHMgaW50byBkb3duc3RyZWFtCgkgIElmIG5vIGRhdGEgaXMgY29taW5nIGFuZCBmdW5uZWwgcmVjZWl2ZSBHQVAgZXZlbnQsIG5lZWQgdG8gZm9yd2FyZHMgc3RpY2t5IGV2ZW50cwoJICBpbnRvIGRvd25zdHJlYW0gaWYgaXQgbmVlZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgyMDIKCjIwMTUtMDMtMTAgMTY6NDI6NDQgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSAgY2hlY2s6IGR1cGxpY2F0ZSBjb2RlIGJyYW5jaGVzCgkgIENJRCAjMTIyNjQ0NgoKMjAxNS0wMy0xMCAwOToyMToyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBGaXggZG91YmxlIHNlbWljb2xvbnMKCjIwMTUtMDItMjIgMTA6MTI6MDEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzCgoyMDE1LTAyLTIxIDIwOjEzOjA0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBmbG93Y29tYmluZXI6IGFkZCBhIGdzdF9mbG93X2NvbWJpbmVyX3VwZGF0ZV9wYWRfZmxvdygpIG1ldGhvZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0NTcyCgkgIEFQSTogZ3N0X2Zsb3dfY29tYmluZXJfdXBkYXRlX3BhZF9mbG93KCkKCjIwMTUtMDItMTUgMjA6NTI6MTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGZsb3djb21iaW5lcjogYWRkIGEgZ3N0X2Zsb3dfY29tYmluZXJfcmVzZXQoKSBtZXRob2QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDU3MgoJICBBUEk6IGdzdF9mbG93X2NvbWJpbmVyX3Jlc2V0KCkKCjIwMTUtMDMtMDYgMTA6NTk6NTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRml4IHR5cG8gaW4gZGVidWcgbWVzc2FnZQoKMjAxNS0wMy0wNSAxODozMDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGF2b2lkIG1hbGxvYy9mcmVlIGlmIGxvZyBvYmplY3QgaXMgTlVMTAoKMjAxNS0wMy0wNSAxNzo1NDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1vdmUgX19GSUxFX18gcGF0aCBzaG9ydGVuaW5nIGludG8gZGVmYXVsdCBsb2cgaGFuZGxlcgoJICBJbnN0ZWFkIG9mIGFsd2F5cyBzaG9ydGVuaW5nIHRoZSBfX0ZJTEVfXyBwYXRoLCBldmVuIGlmIHRoZQoJICBsb2cgbWVzc2FnZSBpcyBub3QgYWN0dWFsbHkgcHJpbnRlZCwgd2hpY2ggbWlnaHQgaGFwcGVuIGlmCgkgIHRoZSBsb2cgbGV2ZWwgaXMgYWN0aXZhdGVkIGJ1dCB0aGUgY2F0ZWdvcnkgaXMgbm90LCBvbmx5CgkgIHNob3J0ZW4gdGhlIHBhdGggaWYgd2UncmUgYWN0dWFsbHkgZ29pbmcgdG8gb3V0cHV0IGl0IGFuZAoJICBpZiBpdCBsb29rcyBsaWtlIGl0IG5lZWRzIHNob3J0ZW5pbmcuIExvZyBoYW5kbGVycyBoYWQgbm8KCSAgZ3VhcmFudGVlIHRoYXQgdGhleSB3b3VsZCBnZXQgYSBuYW1lIGluc3RlYWQgb2YgYSBwYXRoCgkgIGFueXdheSBvbiBhbnkgYXJjaGl0ZWN0dXJlLCBzbyBpdCBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MjEzCgoyMDE1LTAyLTI3IDAxOjE2OjU4ICsxMTAwICBQZXRlciBVcmJhbmVjIDxnaXQudXNlckB1cmJhbmVjLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHNob3J0ZW4gX19GSUxFX18gb24gYWxsIHBsYXRmb3JtcwoJICBUaGlzIGlzIHVzZWZ1bCBub3Qgb25seSBmb3IgTVNWQywgYnV0IGFsc28gd2l0aCBnY2MvTGludXgKCSAgd2hlbiBkb2luZyBjcm9zcy1jb21waWxhdGlvbiBidWlsZHMgYW5kIG91dC1vZi10cmVlIGJ1aWxkcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTIxMwoKMjAxNS0wMy0wNCAxMTowMjo0MSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJICBkb2NzOiBjbGFyaWZ5IG1pbi1sYXRlbmN5IHdvcmRpbmcgaW4gcGFydC1sYXRlbmN5LnR4dAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MzM4CgoyMDE1LTAyLTI2IDE0OjQzOjI1ICswMTAwICBNYXJjaW4gS29sbnkgPG1hcmNpbi5rb2xueUBmbHl0cm9uaWMucGw+CgoJKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDogcmVtb3ZlZCBsaWJ4bWwgaW5jbHVkZSBkaXJlY3RpdmUKCSAgVGhpcyBpcyBhIGxlZnRvdmVyIGZyb20gMC4xMCBhbmQgbm90IG5lZWRlZCBhbnltb3JlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MjEwCgoyMDE1LTAzLTAzIDEyOjUzOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBTaWduYWwgdGhlIHNpbmtwYWQgdGhyZWFkIGlmIGEgZmxvdyBlcnJvciBoYXBwZW5lZAoJICBJdCBtaWdodCBzdGlsbCBiZSB3YWl0aW5nIGZvciBhIHF1ZXJ5IHRvIGJlIGhhbmRsZWQsIG9yIHRoZSBxdWV1ZSB0byBiZWNvbWUKCSAgZW1wdHkgYWdhaW4gZm9yIHRoZSBuZXh0IGl0ZW0uIEFsc28gaWYgZG93bnN0cmVhbSByZXR1cm5zIEZMVVNISU5HLCBmbHVzaCB0aGUKCSAgcXVldWUgbGlrZSB3ZSBkbyBpbiBxdWV1ZSBhbmQgbXVsdGlxdWV1ZS4KCjIwMTUtMDMtMDMgMTI6NDg6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBXYWtlIHVwIHRoZSBxdWVyeSBmdW5jdGlvbiBvbiBlcnJvcnMgZnJvbSB0aGUgbG9vcCBmdW5jdGlvbgoJICBPdGhlcndpc2Ugd2UgbWlnaHQgd2FpdCBmb3JldmVyIGZvciBzZXJpYWxpemVkIHF1ZXJpZXMgdG8gYmUgaGFuZGxlZCBhcyB0aGUKCSAgbG9vcCBmdW5jdGlvbiBpcyBzdG9wcGVkIGFuZCBhcyBzdWNoIHdlIHdpbGwgbmV2ZXIgZXZlciBkZXF1ZXVlIHRoZSBxdWVyeSBhbmQKCSAgaGFuZGxlIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MzE5CgoyMDE1LTAzLTAyIDIwOjMxOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBpbXByb3ZlIHdhcm5pbmcgd2hlbiBsaW5raW5nICBlbGVtZW50cyB3aXRob3V0IGNvbW1vbiBhbmNlc3RvcgoJICBUaGlzIGNvbWVzIHVwIHF1aXRlIGEgbG90IGFuZCBpdCdzIGEgY29tbW9uIG1pc3Rha2UsIHNvIGxldCdzCgkgIHRyeSB0byBpbXByb3ZlIHRoZSB3YXJuaW5nIG1lc3NhZ2UgYSBsaXR0bGUuCgoyMDE1LTAyLTI3IDAwOjMzOjI3ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogRHJvcCBjdXN0b20gbGF0ZW5jeSBxdWVyeSBoYW5kbGluZwoJICBUaGUgZGVmYXVsdCBsYXRlbmN5IHF1ZXJ5IGhhbmRsZXIgbm93IGltcGxlbWVudHMgdGhpcyBsb2dpYwoKMjAxNS0wMi0yNiAxNTo1NzoyMCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bnNpbnN0YWxsZWQ6IEFkZCBnZXMtbGF1bmNoIG1hbnVhbHMgcGF0aCB0byBNQU5QQVRILgoKMjAxNS0wMi0yNiAxMzowODo0OCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgZmFpbCBsYXRlbmN5IHF1ZXJ5IG9uIHVubGlua2VkIHBhZHMKCSAgQSBzaW5nbGUgdW5saW5rZWQgcGFkIGNhbiBtYWtlIHRoZSBsYXRlbmN5IHF1ZXJ5IGZhaWwgYWNyb3NzIHRoZQoJICBwaXBlbGluZSwgd2hpY2ggaXMgcHJvYmFibHkgbm90IGRlc2lyYWJsZS4gSW5zdGVhZCwgd2UgcmV0dXJuIGEgZGVmYXVsdAoJICBhbnl0aGluZyBnb2VzIHZhbHVlLgoJICBQZXJoYXBzIHdlIHNob3VsZCBhbHNvIGJlIGVtaXR0aW5nIGEgZ3N0X21lc3NhZ2VfbmV3X2xhdGVuY3koKSB3aGVuIGEKCSAgUExBWUlORyBlbGVtZW50IGhhcyBvbmUgb2YgaXRzIHBhZHMgbGlua2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ1MTk3CgoyMDE0LTEwLTIyIDE2OjQzOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBEb24ndCBlbWl0IGVycm9ycyBvbiBFT1MgaWYgd2Ugc2F3IEdBUCBldmVudHMKCSAgSWYgd2Ugc2F3IEdBUCBldmVudHMgKG1lYW5pbmcgdGhlIHN0cmVhbXMgaXMgYWR2YW5jaW5nKSBiZWZvcmUgd2UgZ2V0CgkgIEVPUywgd2Ugc2hvdWxkIG5vdCBwb3N0IGFuIEVSUk9SLCBzaW5jZSBpdCBpcyBub3QgZmF0YWwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUxNDMKCjIwMTUtMDItMjUgMDg6MjY6MTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgZ3N0dmFsdWU6IE1ha2Ugc3VyZSBHU1RfRk9VUkNDX0FSR1MgcHJvZHVjZXMgcHJpbnRhYmxlIGNoYXJhY3RlcnMKCSAgU29tZSBzeXN0ZW1zIHdpbGwgY3Jhc2ggaWYgd2UgdXNlIG5vbi1wcmludGFibGUgY2hhcmFjdGVycyBpbiBwcmludC9kZWJ1ZwoJICBzdGF0ZW1lbnRzLgoJICBNYWtlIHN1cmUgdGhhdCBHU1RfRk9VUkNDX0FSR1MgbmV2ZXIgZG9lcyB0aGF0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUxNDQKCjIwMTUtMDItMjUgMTY6MTE6MDYgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0dXRpbHM6IHJlbW92ZSBpbmNvcnJlY3QgRml4bWUgY29tbWVudAoJICBJZiB0aGUgY2hlY2tzIHdlcmUgY2hhbmdlZCB0byB1c2luZyBnX3JldHVybl9pZl9mYWlsKCkgdGhlIEdTVF9ERUJVRyBsaW5lcwoJICBhYm91dCB0aGUgc3BlY2lmaWMgZmFpbHVyZSB3b3VsZCBiZSBsb3N0LgoKMjAxNS0wMi0yNSAxNjowMjozOSArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogcmVtb3ZlIG9ic29sZXRlIEZpeG1lIGNvbW1lbnQKCSAgZ3N0X3BhZF9saW5rX2ZpbHRlcmVkKCkgaXMgdmVyeSBsb25nIGdvbmUgYW5kIGN1cnJlbnQKCSAgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkKCkgZG9lc24ndCBhcHBseSB0byB0aGlzIEZpeG1lIGNvbW1lbnQuCgoyMDE1LTAyLTI0IDIxOjU4OjAwICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIGFkYXB0aXZlZGVtdXggcGF0aHMgZnJvbSAtYmFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDUxMjIKCjIwMTUtMDItMjQgMTg6MTQ6NDcgKzAwMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgZG9jczogcmVtb3ZlIGRlYWQgbGluawoJICBSZW1vdmUgZGVhZCBsaW5rIHRvIHdpa2kgcGFnZSBmb3IgU3VibWl0dGluZ1BhdGNoZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDMxMQoKMjAxNS0wMi0yNCAxNDowNzo1NCArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgaGVscGVyczogRml4IGluc3RhbGwgb2YgY29tcGxldGlvbi1oZWxwZXIuCgkgIEJ5IGFwcGx5aW5nIHRoZSBzdXBwbGllZCB0cmFuc2Zvcm1hdGlvbiB0byB0aGUgcHJvZ3JhbSBuYW1lLAoJICBmb3IgZXhhbXBsZSAtLXByb2dyYW0tcHJlZml4LgoKMjAxNS0wMi0yMyAxNjozOTo0MyAtMDUwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSAgY29tcGxldGlvbi1oZWxwZXI6IEFkZCBtaXNzaW5nIERFU1RESVIKCSAgT3RoZXJ3aXNlIGRvaW5nICJtYWtlIGluc3RhbGwgREVTVERJUiIgd2lsbCB0cnkgdG8gd3JpdGUgdG8KCSAgL3Vzci9zaGFyZS8uLi4KCjIwMTUtMDItMjMgMjE6MTc6MTYgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LWNvbXBsZXRpb24taGVscGVyLmM6CgkgIGNvbXBsZXRpb24taGVscGVyOiBBZGQgZmlsdGVyaW5nIGJ5IGtsYXNzIGFuZCBzaW5rIGNhcHMuCgoyMDE1LTAyLTIxIDE3OjEzOjI2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgcmV0dXJuaW5nIGRvd25zdHJlYW0gR1NUX0ZMT1dfRU9TIGZyb20gcHJldmlvdXMgc2VnbWVudCB0byBjdXJyZW50IHVwc3RyZWFtIHNlZ21lbnQKCjIwMTUtMDItMjIgMTA6MDI6MjUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogZml4IGRvY3VtZW50YXRpb24gY29tbWVudCB0eXBvCgoyMDE1LTAyLTIyIDEwOjAxOjMzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRyYWluIHNlZ21lbnQgdXBvbiBTRUdNRU5UX0RPTkUgdG8gZW5zdXJlIHByb3BlciBldmVudCBvcmRlcgoKMjAxNS0wMi0yMiAxMDowMTo1MCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGVhbiB1cCBzb21lIGJvZ3VzIGNvbW1lbnRlZCBjb2RlCgoyMDE1LTAyLTIzIDE5OjEwOjA4ICswMTAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQG9wZW5jcmVlZC5jb20+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICBjb21wbGV0aW9uLWhlbHBlcjogQXBwZW5kICQoRVhFRVhUKSB0byB0aGUgbmFtZSBvZiB0aGUgbW92ZWQgZmlsZS4KCSAgRml4ZXMgdGhlIGJ1aWxkIG9uIFdpbmRvd3MKCSAgKGh0dHBzOi8vY2kuZ3N0cmVhbWVyLm5ldC9qb2IvY2VyYmVyby1jcm9zcy1taW5ndzMyLzE3NDIvY29uc29sZSkKCjIwMTUtMDItMjMgMTc6MjM6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSAgRml4IGRpc3RjaGVjawoJICBEaXNhYmxlIGJhc2ggY29tcGxldGlvbiBkdXJpbmcgZGlzdGNoZWNraW5nIG90aGVyd2lzZQoJICBpdCBtYXkgdHJ5IHRvIGluc3RhbGwgaW50byBhIHN5c3RlbSBwYXRoIGFuZCBmYWlsLgoKMjAxNS0wMi0yMyAxNzoxNjo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIE1ha2VmaWxlLmFtOgoJICBEaXN0IG5ldyBkYXRhIGRpcmVjdG9yeQoJICBGaXhlcyAnbWFrZSBkaXN0JwoKMjAxNS0wMi0yMCAyMjowNDoyMiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWF0aGlldS5kdXBvbmNoZWxsZUBvcGVuY3JlZWQuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZGF0YS9NYWtlZmlsZS5hbToKCSogZGF0YS9jb21wbGV0aW9ucy9nc3QtaW5zcGVjdC0xLjA6CgkqIGRhdGEvY29tcGxldGlvbnMvZ3N0LWxhdW5jaC0xLjA6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvaGVscGVycy9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy9nc3Q6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LWNvbXBsZXRpb24taGVscGVyLmM6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGJhc2gtY29tcGxldGlvbjogSW1wbGVtZW50IGluIGEgZGlmZmVyZW50IHdheS4KCSAgKyBHZXRzIGluc3RhbGxlZAoJICArIFVzZXMgYSBoZWxwZXIgdG9vbCwgZ3N0LWNvbXBsZXRpb24taGVscGVyLCBpbnN0YWxsZWQgaW4KCSAgYmFzaC1jb21wbGV0aW9ucy9oZWxwZXJzLgoJICArIEFkZHMgYSBjb21tb24gc2NyaXB0IHRoYXQgb3RoZXIgdG9vbHMgY2FuIHNvdXJjZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDg3NwoKMjAxNS0wMi0yMyAxMjowODo0OSArMDAwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJICBHc3REZXZpY2VNb25pdG9yOiBrZWVwIGFscGhhYmV0aWNhbCBvcmRlcgoKMjAxNS0wMi0yMCAxNjoyMjoyMyAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIFJldmVydCAiZWxlbWVudDogc2V0IHBhZHMgbmVlZC1wYXJlbnQgZmxhZyB0byBmYWxzZSB3aGVuIHJlbW92aW5nIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDE5MTE1NTRjZmYyYzRhMTE3NzJiNTQxYTgyMTVhODBjNzI4YjEwOTcuCgkgIFRoaXMgYnJlYWtzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIEdTVF9QQURfRkxBR19ORUVEX1BBUkVOVCwgdGhlIHJlYXNvbiBmb3IgdGhpcwoJICBmbGFnIGlzIHRoYXQgaWYgYSBwYWQgaXMgcmVtb3ZlZCBmcm9tIGEgcnVubmluZyBlbGVtZW50LCB5b3UgZG9uJ3Qgd2FudAoJICBmdW5jdGlvbnMgKHN1Y2ggYXMgY2hhaW4gb3IgZXZlbnQpIHRvIGJlIGNhbGxlZCBvbiB0aGUgcGFkIHdpdGhvdXQgYSBwYXJlbnQgc2V0LgoJICBUaGlzIGNhbiBoYXBwZW4gaWYgeW91IHJlbW92ZSBhIHJlcXVlc3Qgb3Igc29tZXRpbWVzIHBhZCBmcm9tIGEgcnVubmluZyBlbGVtZW50LgoJICBJIGRvbid0IHNlZSB0aGUgY29kZSB0aGF0IGNhdXNlZCB0aGlzIGluIHRzZGVtdXgsIGJ1dCBpZiBpdCBuZWVkcyB0byB1bnNldAoJICB0aGUgZmxhZyBvbiByZW1vdmUsIGl0IHNob3VsZCBkbyBpdCBpdHNlbGYgYW5kIHRoZW4gbWFrZSBzdXJlIHRoYXQgdGhlIHBhcmVudAoJICBleGlzdHMgaW4gYW55IHBhZCBmdW5jdGlvbi4KCjIwMTUtMDItMTkgMTI6MTc6MTUgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAb3BlbmNyZWVkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBjYXN0IGVsZW1lbnQgaW4gQVNTRVJUX1NFVF9TVEFURS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDc3NwoKMjAxNS0wMi0xOSAwMToxNjo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgYSBzZXBhcmF0ZSBxdWVyeSBmb3IgdXBzdHJlYW0gcGFkcyBhbmQgbGV0IGl0IGZhaWwgaWYgb25lIHVwc3RyZWFtIHF1ZXJ5IGZhaWxzCgoyMDE1LTAyLTE5IDAxOjEyOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IElmIHRoZSBsYXRlbmN5IHF1ZXJ5IGZhaWxzIGZvciBvbmUgb2YgdGhlIHBhZHMsIGl0IGZhaWxzIG92ZXJhbGwKCjIwMTUtMDItMTggMTE6MDU6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBSZW1vdmUgdW51c2VkIGJvb2xlYW4gcGFyYW1ldGVyIGZyb20gaW50ZXJuYWwgZnVuY3Rpb25zCgoyMDE1LTAyLTE3IDEyOjExOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IEFkZCB1bml0IHRlc3QgZm9yIGJ1ZmZlciBsaXN0IGFuZCB0aW1lIGxldmVsIGhhbmRsaW5nCgoyMDE1LTAyLTE3IDExOjQ0OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQWRkIHN1cHBvcnQgZm9yIGJ1ZmZlciBsaXN0cwoKMjAxNS0wMi0xNyAxMTo0MTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogQ291bnQgdGhlIG51bWJlciBvZiBidWZmZXJzIGluIGEgYnVmZmVyIGxpc3QgZm9yIHVwZGF0aW5nIHRoZSBjdXJyZW50IGxldmVscwoJICBpbnN0ZWFkIG9mIGp1c3QgYXNzdW1pbmcgb25lIGJ1ZmZlci4KCjIwMTUtMDItMTcgMjA6NDc6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiByZXZpdmUgYXN5bmMgZGVsaXZlcnkgbWVzc2FnZSBiZWZvcmUgYnVzIHRocmVhZCBjYW4gcnVuIHVucmVmCgkgIFJldml2ZSBtZXNzYWdlIGluIGRpc3Bvc2UgaGFuZGxlciBiZWZvcmUgd2Ugc2lnbmFsIHRoZSBidXMgdGhyZWFkLAoJICBvdGhlcndpc2UgdGhlIGJ1cyB0aHJlYWQgbWlnaHQgYmUgd29rZW4gdXAgYW5kIHVucmVmIHRoZSBtZXNzYWdlCgkgIGJlZm9yZSB3ZSBoYWQgYSBjaGFuY2UgdG8gcmV2aXZlIGl0IHlldC4KCjIwMTUtMDItMTYgMjM6MDI6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBidXM6IGFkZCB1bml0IHRlc3QgZm9yIGFzeW5jIG1lc3NhZ2UgZGVsaXZlcnkKCjIwMTUtMDItMTYgMjI6Mzk6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlLCBidXM6IGZpeCBhc3luYyBtZXNzYWdlIGRlbGl2ZXJ5CgkgIEFzeW5jIG1lc3NhZ2UgZGVsaXZlcnkgKHdoZXJlIHRoZSBwb3N0aW5nIHRocmVhZCBnZXRzIGJsb2NrZWQKCSAgdW50aWwgdGhlIG1lc3NhZ2UgaGFzIGJlZW4gcHJvY2Vzc2VkIGFuZC9vciBmcmVlZCkgd2FzIHByZXR0eQoJICBtdWNoIGNvbXBsZXRlbHkgYnJva2VuLgoJICBGb3Igb25lLCBkb24ndCB1c2UgR011dGV4IGltcGxlbWVudGF0aW9uIGRldGFpbHMgdG8gY2hlY2sKCSAgd2hldGhlciBhIG11dGV4IGhhcyBiZWVuIGluaXRpYWxpemVkIG9yIG5vdCwgZXNwLiBub3QKCSAgaW1wbGVtZW50YXRpb24gZGV0YWlscyB0aGF0IGRvbid0IGhvbGQgdHJ1ZSBhbnkgbW9yZSB3aXRoCgkgIG5ld2VyIEdMaWIgdmVyc2lvbnMgd2hlcmUgYXRvbWljIG9wcyBhbmQgZnV0ZXhlcyBhcmUgdXNlZAoJICAoc3BvdHRlZCBieSBKb3NlcCBUb3JyYXMpLiBUaGlzIGxlZCB0byBhc3luYyBtZXNzYWdlCgkgIGRlbGl2ZXJ5IG5vIGxvbmdlciBibG9ja2luZyB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbnMgb24KCSAgTGludXguCgkgIFNlY29uZGx5LCBhZnRlciBhc3luYyBkZWxpdmVyeSBkb24ndCBmcmVlIG11dGV4L0dDb25kCgkgIGVtYmVkZGVkIGluc2lkZSB0aGUganVzdC1mcmVlZCBtZXNzYWdlIHN0cnVjdHVyZS4KCSAgVXNlIGEgbmV3IChwcml2YXRlKSBtaW5pIG9iamVjdCBmbGFnIHRvIHNpZ25hbCBHc3RNZXNzYWdlCgkgIHRoYXQgdGhlIG1lc3NhZ2UgYmVpbmcgZnJlZWQgaXMgcGFydCBvZiBhbiBhc3luYyBkZWxpdmVyeQoJICBvbiB0aGUgYnVzIHNvIHRoYXQgdGhlIGRpc3Bvc2UgaGFuZGxlciBjYW4ga2VlcCB0aGUgbWVzc2FnZQoJICBhbGl2ZSBhbmQgdGhlIGJ1cyBjYW4gZnJlZSBpdCBvbmNlIGl0J3MgZG9uZSBjbGVhbmluZyB1cAoJICBzdHVmZi4KCjIwMTUtMDItMTYgMTk6MjQ6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBuaWNlciBidWZmZXIgb2Zmc2V0IHByaW50aW5nIHdoZW4gb2Zmc2V0cyBhcmUgbm90IHNldAoJICBQcmludCB1bnNldCBvZmZzZXRzIGFzICdub25lJyBpbnN0ZWFkIG9mIGh1bW9uZ291cyBudW1iZXJzLAoJICBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoKMjAxNS0wMi0xNiAxMTozNTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGluaXRpYWxpemUgR1ZhbHVlIHRvIGEgdHlwZSBvbmNlLCBub3Qgb24gZXZlcnkgcmV0cnkKCSAgT3RoZXJ3aXNlIHdlJ2xsIGdldCB3YXJuaW5ncyBsaWtlIHRoaXM6CgkgIGNhbm5vdCBpbml0aWFsaXplIEdWYWx1ZSB3aXRoIHR5cGUgJ2dib29sZWFuJywgdGhlIHZhbHVlIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQgYXMgJ2dib29sZWFuJwoKMjAxNS0wMi0xNCAxMjoxNTowMyArMDEwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogY2hlY2sgdXJpIGJlZm9yZSB1c2luZyBpdCBpbiBnc3RfcGFkX2NyZWF0ZV9zdHJlYW1faWRfaW50ZXJuYWwKCSAgSWYgYW4gZWxlbWVudCBpbXBsZW1lbnRzIHdyb25nbHkgdGhlIFVSSSBxdWVyeSBhbmQgc2V0IHRoZSB1cmkgdG8gTlVMTCBhbmQgaWYKCSAgdGhlIGVsZW1lbnQgY2FsbHMgZ3N0X3BhZF9jcmVhdGVfc3RyZWFtX2lkIGF0IHNvbWUgcG9pbnQsIGl0IHdpbGwgbGVhZCB0byBjcmFzaAoJICBhcyB0aGUgdXJpIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBOVUxMIGluIHRoZSBnc3RfcGFkX2NyZWF0ZV9zdHJlYW1faWRfaW50ZXJuYWwKCSAgZnVuY3Rpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQ1MjAKCjIwMTUtMDItMTMgMTk6NDM6MjQgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgdGltZWR2YWx1ZWNvbnRyb2xzb3VyY2U6IERvIG5vdCB3cm9uZ2x5IHNlbmQgdmFsdWUtcmVtb3ZlZAoJICBBbmQgYXZvaWQgZnJlZWluZyBzb21ldGhpbmcgd2UgZG8gbm90IG93bgoKMjAxNS0wMi0wNCAxNTowNjoxNyArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogU2V0IEdTVF9WQUxJREFURV9QTFVHSU5fUEFUSAoKMjAxNS0wMi0xMiAxMzozNDo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBkb2N1bWVudGF0aW9uIGFuZCBkZWJ1ZyBtZXNzYWdlIGFmdGVyIGxhdGVuY3kgdXBkYXRlcwoJICBDaGFuZ2VzIGRvY3MgYW5kIG1lc3NhZ2UgYWNjb3JkaW5nIHRvIGxhdGVuY3kgaGFuZGxpbmcgZml4CgoyMDE1LTAyLTEyIDE0OjUwOjE1ICswMDAwICBGcsOpZMOpcmljIFdhbmcgPGZyZWQud2FuZ0BmcmVlLmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBmZHNyYzogdXNlIGdfYXNjaWlfc3RydG91bGwoKSB0byBjb252ZXJ0IHNpemUgc3RyaW5nIGluIHVyaQoJICBzc2NhbmYoKSBkb2Vzbid0IGhhbmRsZSBHX0dVSU5UNjRfRk9STUFUIHdlbGwgb24gbWluZ3c2NCBpdAoJICBhcHBlYXJzLCBsZWFkaW5nIHRvIGNvbXBpbGVyIHdhcm5pbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MDM0CgoyMDE1LTAyLTEyIDE0OjAzOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rcygpIGNhbiByZXR1cm4gTlVMTCBpZiB0aGVyZSBhcmUgbm9uZQoKMjAxNS0wMi0xMiAxNDowMzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZXR1cm4gTlVMTCBpbnN0ZWFkIG9mIEZBTFNFIGZvciBwb2ludGVycwoKMjAxNS0wMi0xMiAxMzo1NTozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJbXBsZW1lbnQgbW9yZSB1c2VmdWwgZGVmYXVsdCBoYW5kbGluZyBmb3IgdGhlIExBVEVOQ1kgcXVlcnkKCSAgQmVmb3JlIHdlIGp1c3QgdG9vayB0aGUgdmFsdWVzIGZyb20gdGhlIGZpcnN0IHBhZCB0aGF0IHN1Y2NlZGVkIHRoZSBxdWVyeSwKCSAgbm93IHdlIGFjY3VtdWxhdGUgdGhlIHJlc3VsdHMgb2YgZXZlcnkgc2lua3BhZCBwcm9wZXJseSBhbmQgcmV0dXJuIHRoYXQKCSAgcmVzdWx0LgoKMjAxNS0wMi0xMiAxMToyNjoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkgIGRlc2lnbi9wYXJ0LWxhdGVuY3k6IE1pbm9yIGxvZ2ljIGZpeAoJICBUaGUgbWF4aW11bSBsYXRlbmN5IHdpbGwgYmUgdGhlIGVsZW1lbnQncyBtaW5pbXVtIGxhdGVuY3kgb3IgYmlnZ2VyLAoJICBub3QgYmlnZ2VyIHRoYW4gdGhlIGVsZW1lbnQncyBtaW5pbXVtIGxhdGVuY3kgb3IgYmlnZ2VyLgoKMjAxNS0wMi0xMSAxMzo0MTo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEltcHJvdmUgYW5kIGZpeCBMQVRFTkNZIHF1ZXJ5IGhhbmRsaW5nCgkgIFRoaXMgbm93IGZvbGxvd3MgdGhlIGRlc2lnbiBkb2NzIGV2ZXJ5d2hlcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDQxMDYKCjIwMTUtMDItMTEgMTI6MjA6MzkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJICBkZXNpZ24vcGFydC1sYXRlbmN5OiBBZGQgbW9yZSBkZXRhaWxzIGFib3V0IG1pbi9tYXggbGF0ZW5jeSBoYW5kbGluZwoJICBUaGVzZSBkb2NzIG1pc3NlZCBtYW55IGRldGFpbHMgdGhhdCB3ZXJlIG5vdCBvYnZpb3VzIGFuZCBiZWNhdXNlIG9mIHRoYXQKCSAgaGFuZGxlZCBpbiBhIGZldyBkaWZmZXJlbnQsIGluY29tcGF0aWJsZSB3YXlzIGluIGRpZmZlcmVudCBlbGVtZW50cyBhbmQgYmFzZQoJICBjbGFzc2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ0MTA2CgoyMDE1LTAyLTA3IDA1OjE2OjIzICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICB0ZXN0czogRml4IGNsb2NrIHJlZ3Jlc3Npb24gdGVzdAoJICBGaXggdXAgdGhlIHZhbHVlcyB0aGUgdGVzdCBpcyBjaGVja2luZyBmb3Igbm93IHRoYXQKCSAgdGhlIGNsb2NrIHJlZ3Jlc3Npb24gcmV0dXJucyBwYXJhbWV0ZXJzIHN0YXJ0aW5nIGZyb20KCSAgdGhlIGVuZCBvZiB0aGUgcmVncmVzc2lvbiByYW5nZS4KCjIwMTUtMDItMDcgMDQ6MjI6MjIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBEb24ndCB1cGRhdGUgdGhlIGNsb2NrIHdoZW4gaXQgZGVzeW5jaAoJICBBZGQgYSBob2xkIG9mZiB3aGVuIHRoZSBjbG9jayBjYWxpYnJhdGlvbiBzdWRkZW5seSBsb3NlcyBzeW5jaCwKCSAgYXMgaXQgbWF5IGJlIGEgZ2xpdGNoLCBidXQgYWxzbyBtYWtlIHN1cmUgd2UgdXBkYXRlIGlmIGl0IHN0YXlzCgkgIGRlc3luY2hlZCBmb3IgbW9yZSB0aGFuIGEgZmV3IHNlY29uZHMKCjIwMTUtMDItMDYgMDY6MDc6NDMgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBNYWtlIHRoZSBSVFQgYXZlcmFnZSBpZ25vcmUgbGFyZ2UgdmFsdWVzIG1vcmUgZm9yY2VmdWxseS4KCSAgU21vb3RoIGxhcmdlciBSVFRzIGEgbGl0dGxlIGhhcmRlciwgc28gZXhjZXNzaXZlbHkgbGFyZ2UgdmFsdWVzCgkgIHBlcnR1cmIgdGhlIGF2ZXJhZ2UgYSBiaXQgbGVzcywgYW5kIHRoZXJlZm9yZSBnZXQgZmlsdGVyZWQgb3V0CgkgIG1vcmUgc3Ryb25nbHkKCjIwMTUtMDItMDUgMjI6NTU6MzkgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLWxpbnJlZy5jOgoJICBjbG9jazogTWFrZSBsaW5lYXIgcmVncmVzc2lvbiB4L3kgYmFzZSBzdGFydCBmcm9tIG1heGltdW0gb2JzZXJ2YXRpb24uCgkgIFByb2plY3QgdGhlIHJlc3VsdHMgb2YgdGhlIGxpbmVhciByZWdyZXNzaW9uIHRvIHRoZSBlbmQgb2YgdGhlCgkgIHJlZ3Jlc3Npb24gcmFuZ2UsIHNvIHRoZXkncmUgbW9yZSBkaXJlY3RseSBjb21wYXJhYmxlIHRvIHJlc3VsdHMKCSAgZ29pbmcgZm9yd2FyZAoKMjAxNS0wMi0wNSAxMzo0OTo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgIm9mZnNldCIgcHJvcGVydHkgdG8gZ28gd2l0aCBnc3RfcGFkX3NldF9vZmZzZXQoKQoJICBTbyB3ZSBjYW4gc2V0IHRoZSBvZmZzZXQgdmlhIGdzdC1sYXVuY2guCgoyMDE1LTAyLTAyIDA4OjIyOjQ3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGFkZCBtb3JlIGRldGFpbCB0byBsb2dnaW5nIHdoZW4gbm90IGxvYWRpbmcgYSBwbHVnaW4KCSAgSW1wcm92ZSB0aGUgbG9nIG1lc3NhZ2VzIGFuZCBhZGQgZS5nIHRoZSB2ZXJzaW9uIG51bWJlciB3ZSBjaGVja2VkLgoKMjAxNS0wMi0wMiAxNzozNzo0NCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IGEgdHlwbyBpbiBhIGRvY3N0cmluZy4KCjIwMTUtMDItMDEgMTQ6MjM6MjYgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgYnVpbGQ6IENoZWNrIHRoYXQgX01TQ19WRVIgbWFjcm8gaXMgZGVmaW5lZAoKMjAxNS0wMi0wMSAwMzozOTowMyArMDIwMCAgSWx5YSBLb25zdGFudGlub3YgPGlseWEua29uc3RhbnRpbm92QGdtYWlsLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogQWRkIHRocmVhZCBuYW1lIHN1cHBvcnQgb24gT1MgWCBhbmQgaU9TCgoyMDE1LTAxLTI5IDE2OjM3OjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLWxpbnJlZy5jOgoJICBjbG9jazogRG9uJ3QgdXNlIGludmFsaWQgb2JqZWN0cyBmb3IgR1NUX0RFQlVHX09CSkVDVCgpCgkgIE5vdCBzdXJlIHdoYXQgImNsb2NrIiBhY3R1YWxseSBpcyBoZXJlLCBpdCBtdXN0IGJlIHNvbWV0aGluZyBkZWZpbmVkIGJ5IG9uZSBvZgoJICB0aGUgaGVhZGVycyB0aGF0IGFyZSBpbmNsdWRlZC4KCjIwMTUtMDEtMjkgMTI6MTA6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRG9jdW1lbnQgdGhhdCBnc3RfYnVmZmVyX2NvcHlfcmVnaW9uKCkgYWNjZXB0cyAtMSBhcyBzaXplIHRvIGNvcHkgdW50aWwgdGhlIGVuZAoJICBJdCdzIGp1c3QgYSB3cmFwcGVyIGFyb3VuZCBnc3RfYnVmZmVyX2NvcHlfaW50bygpIGFmdGVyIGFsbC4KCjIwMTQtMTItMDkgMTY6Mjg6NTYgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogQWRkIG5ldyBza2lwIGZsYWdzIGZvciBjbGFyaWZ5aW5nIHRyaWNrIG1vZGUgcGxheWJhY2suCgkgIEFkZCBHU1RfU0VFS19GTEFHX1RSSUNLTU9ERV9LRVlfVU5JVFMgYW5kCgkgIEdTVF9TRUVLX0ZMQUdfVFJJQ0tNT0RFX05PX0FVRElPLCBhbmQgcmVuYW1lIEdTVF9TRUVLX0ZMQUdfU0tJUAoJICB0byBHU1RfU0VFS19GTEFHX1RSSUNLTU9ERSAod2l0aCBiYWNrd2FyZHMgY29tcGF0IGRlZmluZSkuCgkgIERvIHRoZSBzYW1lIGZvciB0aGUgY29ycmVzcG9uZGluZyBTRUdNRU5UIGZsYWdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1NjY2CgoyMDE1LTAxLTIzIDA4OjU5OjI3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGZpeCBhbm90aGVyIHR5cG8gaW4gdGhlIGRvY3MKCjIwMTUtMDEtMjIgMjM6MTA6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggaW5kZW50aW9uCgoyMDE1LTAxLTIxIDE0OjEwOjAyICswMDAwICBEYXZpZCBXYXJpbmcgPGRhdmlkLndhcmluZ0ByZC5iYmMuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IG5ldyBVUkkgcGFyc2luZyB0ZXN0cyBiYXNlZCBvbiBHTmV0J3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzE5NQoKMjAxNS0wMS0yMSAxNDowOTo0NSArMDAwMCAgRGF2aWQgV2FyaW5nIDxkYXZpZC53YXJpbmdAcmQuYmJjLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCBwYXJzaW5nIGlzc3VlcwoJICBNYWtlIGhvc3QgSVBzIGluIHNxdWFyZSBicmFja2V0cyBzdG9yZSBvbmx5IHRoZSBJUCwgaS5lLiBzdHJpcCB0aGUgYnJhY2tldHMuCgkgIFN0cmlwIGxlYWRpbmcgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGluIFVSSXMuCgkgIEZhaWwgcGFyc2luZyB3aGVuIGhvc3QgcGFydCBkb2VzIG5vdCBtYXRjaCBhbnkgdmFsaWQgZm9ybWF0cyBmcm9tIFJGQzM5ODYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMxOTUKCjIwMTUtMDEtMTkgMTk6MTU6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogQWRkIHBhcnNpbmcgdW5pdCB0ZXN0IGJhc2VkIG9uIEdOZXQncwoJICBQbHVzIHNvbWUgbmV3IFVSSXMgdG8gcGFyc2UuCgkgIGh0dHBzOi8vZ2l0Lmdub21lLm9yZy9icm93c2UvYXJjaGl2ZS9nbmV0L3BsYWluL3Rlc3RzL2NoZWNrL2duZXQvZ25ldHVyaS5jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDMxOTUKCjIwMTUtMDEtMjIgMTE6Mjk6MTggKzAxMDAgIEhlaW5yaWNoIEZpbmsgPGhmaW5rQHRvb2xzb25haXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEZpeCBkb2Mgb2YgR1NUX0NIRUNLUyBhbmQgR1NUX0NIRUNLU19JR05PUkUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzMzNQoKMjAxNS0wMS0yMSAxODowNzowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogQWRkIF9mYWlsX3VubGVzcygpIGNvbXBhdGliaWxpdHkgZnVuY3Rpb24gYXJvdW5kIF9ja19hc3NlcnRfZmFpbGVkKCkKCSAgV2UgZXhwb3J0ZWQgdGhpcyBpbiA8IDEuNSBhbmQgaXQgd2FzIGF1dG9tYXRpY2FsbHkgdXNlZCBieSBtYW55IG1hY3JvcwoJICBmcm9tIHRoZSBoZWFkZXIuIEtlZXAgaXQgZXhwb3J0ZWQgZm9yIG5vdy4KCjIwMTUtMDEtMjEgMTQ6MTI6MjIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogSW5saW5lIGFwcGx5X3BhZF9vZmZzZXQoKQoJICBBdm9pZCBkb2luZyBhIGZ1bmN0aW9uIGNhbGwgZm9yIHNvbWV0aGluZyB3aGljaCB3aWxsIG1vc3RseSBiZSB1bnVzZWQKCjIwMTUtMDEtMjEgMTQ6MTA6MDYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IGRlYnVnIG1lc3NhZ2UKCjIwMTUtMDEtMjEgMTE6NDU6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogRml4IFBST0JFX05PX0RBVEEgbWFjcm8KCSAgVGhlIHByb2JsZW0gd2FzIHRoYXQgdGhlIG1hY3JvIHdhcyBhbHdheXMgdXNlZCB3aXRoICdyZXQnIGFzIHRoZSBkZWZhdWx0dmFsCgkgIGFyZ3VtZW50LgoJICBUaGlzIHdvdWxkIHJlc3VsdCBpbiB0aGUgbWFjcm8gZXZlbnR1YWxseSBleHBhbmRpbmcgdG8KCSAgaWYgKEdfVU5MSUtFTFkgKHJldCAhPSByZXQgJiYgcmV0ICE9IEdTVF9GTE9XX09LKSkKCSAgLi4uIHJldCAhPSByZXQgd2lsbCBhbHdheXMgZmFpbCwgYW5kIHRoZXJlZm9yZSB3ZSdkIG5ldmVyIGNhbGwgdGhlCgkgIGZvbGxvd2luZyBsaW5lLgoJICBJbnN0ZWFkIG9mIHRoYXQsIHN0b3JlIHRoZSBwcmV2aW91cyB2YWx1ZSBsb2NhbGx5IGZvciBjb21wYXJpc2lvbgoKMjAxNS0wMS0yMSAyMjo0NDo1OSArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEZpeCBkb2NzIHR5cG8uIENsb2NrIGJ1cyBtZXNzYWdlcyBhcmUgR1NUX01FU1NBR0VfRUxFTUVOVAoKMjAxNS0wMS0xNSAyMjozMjoyOCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEltcGxlbWVudCByYXRlIGxpbWl0cyBmb3IgcG9sbGluZyBhbmQgZml4IHVwIHNrZXcgbGltaXRzCgkgIEFkZCB0aGUgbWluaW11bS11cGRhdGUtaW50ZXJ2YWwgcHJvcGVydHkgdG8gdGhlIGNsb2NrLCB3aXRoIGEgZGVmYXVsdAoJICBvZiA1MG1zIGFuZCBkb24ndCBzZW5kIHBvbGxpbmcgcmVxdWVzdHMgZmFzdGVyIHRoYW4gdGhhdC4gVGhhdCBoZWxwcyB0bwoJICBlbnN1cmUgd2Ugc3ByZWFkIHRoZSBpbml0aWFsIG9ic2VydmF0aW9ucyBvdXQgYSBsaXR0bGUgLSBzdGFydHVwIHRha2VzCgkgIGEgbGl0dGxlIGxvbmdlciwgYnV0IHRyYWNraW5nIGlzIG1vcmUgc3RhYmxlLgoJICBNb3ZlIHRoZSBkaXNjb250IHNrZXcgbGltaXRpbmcgY29kZSBpbnNpZGUgYW4gaWYgc3RhdGVtZW50LCBzbyB0aGF0CgkgIGl0J3Mgb25seSBkb25lIHdoZW4gdGhlIGxpbmVhciByZWdyZXNzaW9uIHN1Y2NlZWRzIGFuZCB0aGUgY2xvY2sKCSAgcGFyYW1ldGVycyBtaWdodCBhY3R1YWxseSBjaGFuZ2UuCgoyMDE1LTAxLTE1IDEwOjA1OjMyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjbG9jay1saW5yZWcuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICBjbG9jazogSW1wcm92ZSBzbGF2aW5nIHJlZ3Jlc3Npb24uCgkgIEFkZCBkb21haW4gY2hlY2tzIGZvciB0aGUgaW5wdXQgdmFsdWVzLCBhbmQgYSB2YXJpYWJsZSBwcmVjaXNpb24KCSAgY2FsY3VsYXRpb24gdGhhdCBsb29wcyBpZiBuZWNlc3NhcnkgdG8gZW5zdXJlIHdlIG5ldmVyIG92ZXJmbG93CgkgIGFjY3VtdWxhdG9ycyBhbmQgdGhlbiBzaWxlbnRseSBwcm9kdWNlIGdhcmJhZ2UgcmVzdWx0cy4KCSAgTWFrZSB0aGUgKG5vbi1wdWJsaWMpIGxpbmVhciByZWdyZXNzaW9uIGZ1bmN0aW9uIGF2YWlsYWJsZSBmb3IKCSAgdW5pdCB0ZXN0aW5nIGJ5IHB1dHRpbmcgaXQgaW4gYSBzZXBhcmF0ZSBzb3VyY2UgZmlsZSB0aGUgdGVzdAoJICBjYW4gaW5jbHVkZS4gQWRkIGEgdW5pdCB0ZXN0IHRoYXQgdGhlIG5ldyByZWdyZXNzaW9uIGZ1bmN0aW9uCgkgIHByb2R1Y2VzIHNlbnNpYmxlIHJlc3VsdHMgZm9yIHNldmVyYWwgaW5wdXRzIHRha2VuIGZyb20gcmVhbC13b3JsZAoJICBjYXB0dXJlcy4KCjIwMTUtMDEtMTAgMjE6NDI6MDAgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvbmV0Y2xvY2svLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbmV0Y2xvY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL25ldGNsb2NrL25ldGNsb2NrLWNsaWVudC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9uZXRjbG9jay9uZXRjbG9jay1zZXJ2ZXIuYzoKCSAgbmV0Y2xvY2s6IEFkZCBzaW1wbGUgbmV0d29yayBjbG9jayBzZXJ2ZXIgYW5kIGNsaWVudCBleGFtcGxlcwoKMjAxNS0wMS0xMCAyMTo0MjowMCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEltcGxlbWVudCBzZW5kaW5nIHN0YXRpc3RpYyBidXMgbWVzc2FnZXMgYW5kIGRpc2NvbnQgbGltaXRzCgkgIEFsbG93IHNldHRpbmcgYSBHc3RCdXMgb24gdGhlIG5ldHdvcmsgY2xvY2sgY2xpZW50CgkgIHZpYSBhIG5ldyAnYnVzJyBvYmplY3QgcHJvcGVydHkuIElmIGEgYnVzIGlzIHNldCwgdGhlCgkgIGNsb2NrIHdpbGwgb3V0cHV0IGFuIGVsZW1lbnQgbWVzc2FnZSBjb250YWluaW5nIHN0YXRpc3RpY3MKCSAgYWJvdXQgbmV3IGNsb2NrIG9ic2VydmF0aW9ucyBhbmQgdGhlIGNsb2NrIGNvcnJlbGF0aW9uLgoJICBXaGVuIHRoZSBsb2NhbCBjbG9jayBpcyBzeW5jaHJvbmlzZWQgd2l0aCB0aGUgcmVtb3RlLCBsaW1pdCB0aGUKCSAgbWF4aW11bSBqdW1wIGluIHRoZSBjbG9jayBhdCBhbnkgcG9pbnQgdG8gYmUgb25lIGF2ZXJhZ2UgUlRUIHRvCgkgIHRoZSBzZXJ2ZXIuIEFsc28sIHB1Ymxpc2ggaW4gdGhlIGJ1cyBtZXNzYWdlIHdoZXRoZXIgd2UgYXJlCgkgIHN5bmNoZWQgd2l0aCB0aGUgcmVtb3RlIG9yIG5vdC4KCjIwMTUtMDEtMTAgMjE6NDI6MDAgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFkZCBnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uX3VuYXBwbGllZCgpCgkgIGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb25fdW5hcHBsaWVkKCkgYWRkcyBhIG5ldyBtYXN0ZXIvc2xhdmUgY2xvY2sKCSAgb2JzZXJ2YXRpb24gYW5kIHJ1bnMgdGhlIHJlZ3Jlc3Npb24gd2l0aG91dCBhY3RpdmF0aW5nIHRoZSBuZXcKCSAgY2FsaWJyYXRpb24gcmVzdWx0cy4KCjIwMTQtMTItMTYgMjI6NTE6MjIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IEFkZCBnc3RfY2xvY2tfYWRqdXN0X3dpdGhfY2FsaWJyYXRpb24oKQoJICBnc3RfY2xvY2tfYWRqdXN0X3dpdGhfY2FsaWJyYXRpb24oKSB1c2VzIGRpcmVjdGx5IHBhc3NlZCBjYWxpYnJhdGlvbgoJICBwYXJhbWV0ZXJzLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBjbG9jaydzIGN1cnJlbnQgY2FsaWJyYXRpb24sCgkgIGFsbG93aW5nIGZvciBjYWxjdWxhdGlvbnMgdXNpbmcgcGVuZGluZyBvciBvbGQgY2FsaWJyYXRpb24gcGFyYW1zCgoyMDE1LTAxLTIxIDA5OjQ1OjE2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXQtc2VsZWN0b3I6IENvbnN0aWZ5IG5lZ290aWF0aW9uIG1vZGUgR0VudW1WYWx1ZSB0YWJsZQoKMjAxNS0wMS0yMCAxMDozNTo0NyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGZpeCB0eXBvIGluIEdzdEV2ZW50IGRvY3MKCSAgc2VuZCAtPiBzZW50CgoyMDE1LTAxLTIwIDA5OjE5OjEwICswMTAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBSZW1vdmUgZ25vbmxpbiBmcm9tIHRoZSBzY3JpcHRzCgkgIEl0IGlzIG5vdCBtYWludGFpbiBhbnltb3JlIGFuZCBpdHMgZmVhdHVyZSBhcmUgbm93IGluc2lkZSB0aGUgR1N0cmVhbWVyCgkgIEVkaXRpbmcgU2VydmljZXMgKGZvciB0aGUgdGltZSBiZWluZykuCgoyMDE1LTAxLTE2IDE5OjE3OjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFBhc3Mgc3RydWN0cyB3ZSBwbGFuIHRvIG1vZGlmeSBhcm91bmQgYnkgcG9pbnRlciwgbm90IHZhbHVlCgkgIE90aGVyd2lzZSB0aGUgc3RydWN0IGlzIGdvaW5nIHRvIGJlIGNvcGllZCwgd2hpY2ggaXMgbm90IHZlcnkgZWZmaWNpZW50LiBBbmQKCSAgYWxzbyBoYXMgdGhlIG5pY2Ugc2lkZSBlZmZlY3QgdGhhdCBtb2RpZmljYXRpb25zIG9mIHRoZSBzdHJ1Y3QgbWlnaHQgYmUKCSAgZG9uZSBpbiBhIGNvcHksIGFuZCB3ZSBsYXRlciB1c2UgdGhlIG9yaWdpbmFsIHN0cnVjdCB3aXRob3V0IHRoZSBjaGFuZ2VzLgoJICBDYXVzZWQgTEFURU5DWSBxdWVyaWVzIHRvIGFsd2F5cyByZXR1cm4gdGhlIGluaXRpYWxpemF0aW9uIHZhbHVlcyBpbiBvbmUgb2YgbXkKCSAgdGVzdHMsIGluc3RlYWQgb2YgdGhlIGFjdHVhbCB2YWx1ZXMgcmVwb3J0ZWQgYnkgY2hpbGQgZWxlbWVudHMuCgoyMDE1LTAxLTE0IDEwOjUyOjExICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHNlbmQgZ2FwIGV2ZW50cyB3aGVuIGRyb3BwaW5nIGJ1ZmZlcnMKCjIwMTUtMDEtMTMgMTg6MTE6MzkgKzAwMDAgIFBoaWxsaXAgV29vZCA8cGhpbGxpcC53b29kQGR1bmVsbS5vcmcudWs+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogZml4IGluY29ycmVjdCBwcmVzZXQgdmVyc2lvbiBjb21wYXJpc29uCgkgIFVzZSBhcHBfdmVyc2lvbiBpZiB0aGVyZSBhcmUgbm8gc3lzdGVtIHByZXNldHMsIHNvIHRoYXQgaWYgdGhlCgkgIGFwcGxpY2F0aW9uIHByZXNldHMgYXJlIG5ld2VyIHRoYW4gdGhlIHVzZXIgcHJlc2V0cyB0aGV5IGFyZSBtZXJnZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDI4NzcKCjIwMTUtMDEtMTIgMTY6MDM6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCBwb2ludGVyCgkgIENJRCAxMjYyMjg2CgoyMDE1LTAxLTEyIDE1OjU1OjQ3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmMmM2Yjk1IHRvIGJjNzZhOGIKCjIwMTUtMDEtMTEgMjM6MDA6MjkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogZml4IHNvcnRpbmcgcHJlc2V0cwoJICBUaGUgZ2xpYiBkb2NzIGFyZSBub3QgY2xlYXIgb24gdGhpcywgYnV0IHRoZSBxc29ydCBtYW4tcGFnZSBpcyAtIHRoZQoJICBHQ29tcGFyZURhdGFGdW5jIGRvZXMgbm90IGdldCB0aGUgc3RyaW5ncywgYnV0IHBvaW50ZXJzIHRvIHRoZW0uCgoyMDE0LTEyLTMxIDE4OjUyOjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGZpeCBzaWxseSBHUXVldWUgaXRlcmF0aW9uIGNvZGUKCSAgTm90IGFjdGl2ZSBieSBkZWZhdWx0IHRob3VnaC4KCjIwMTUtMDEtMDQgMjM6MjQ6NTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogZG9uJ3QgcmV0dXJuIGVtcHR5IHByZXNldCBsaXN0cwoJICBBZGQgYSBzaG9ydGN1dCBmb3IgdGhlIGNhc2VzIHdoZXJlIGFuIGVsZW1lbnQgaW1wbGVtZW50cyB0aGUgcHJlc2V0IGlmYWNlIGJ1dAoJICBoYXMgbm8gcHJlc2V0cyBhbmQgcmV0dXJuIE5VTEwgaW5zdGVhZCBvZiBhbiBlbXB0eSBsaXN0IGluIHRoYXQgY2FzZS4KCjIwMTUtMDEtMDQgMjM6MDg6NDcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogb25seSBwcmludCBwcmVzZXRzIGxpbmUgaWYgbnVtLXByZXNldHMgPiAwCgkgIEFsc28gY2hlY2sgZm9yIGFuIGVtcHR5IHN0cnYuCgoyMDE1LTAxLTA0IDIyOjUxOjA5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IGZpeCBvdXRwdXQgZm9yIC1hCgkgIFVzZSBuX3ByaW50IHRvIGVuc3VyZSBhbGwgbGluZXMgYXJlIHByZWZpeGVkIHdpdGggdGhlIGVsZW1lbnQgbmFtZS4KCjIwMTQtMTItMjkgMTE6NTQ6MDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGlnbm9yZSBsaWJjaGVjayBoZWFkZXJzIHRoYXQgdXNlIGRveHlnZW4gY29tbWVudHMKCjIwMTQtMTItMjkgMTE6NTI6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBmaXggdHdvIGd0ay1kb2Mgd2FybmluZ3MKCSAgT25lIGJ5IGNvcnJlY3RpbmcgdGhlIGVuZC1vZi1jb21tZW50IG1hcmtlciBhbmQgb25lIGJ5IG1ha2luZyBzdXJlIHRoZSBmdW5jdGlvbgoJICBwcm90b3R5cGUgaW4gdGhlIGhlYWRlciBpcyBpbiBzeW5jIHdpdGggdGhlIGMgZmlsZSBhbmQgZG9jLWJsb2IuCgoyMDE0LTEyLTI2IDIzOjIyOjMwICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgbWlzc2luZyBpbnRlcmZhY2VzIHRvIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MjA1NwoKMjAxNC0xMi0yNyAxNToxNTozMCArMDUzMCAgTmlyYmhlZWsgQ2hhdWhhbiA8bmlyYmhlZWtAY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggb3V0ZGF0ZWQgZXhhbXBsZSBjb2RlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbgoJICBHc3RJdGVyYXRvciBubyBsb25nZXIgcmV0dXJucyBhIHJlZmNvdW50ZWQgZ3BvaW50ZXIKCjIwMTQtMTItMjQgMTM6NDY6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBzYW1lIHdhaXRpbmcgZnVuY3Rpb24gZm9yIEVPUyBhbmQgbm9uLUVPUyB3YWl0aW5nCgoyMDE0LTEyLTI0IDEzOjQ0OjA5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFdha2UgdXAgYWxsIHdhaXRpbmdzIHBhZHMgZGlyZWN0bHkgaWYgd2UgZm9yd2FyZCB0aGUgRU9TIGV2ZW50CgkgIE90aGVyd2lzZSB0aGV5IG1pZ2h0IHdhaXQgYSBiaXQgbG9uZ2VyIHVubmVjZXNzYXJpbHkuCgkgIEFsc28gZG8gc29tZSBtaW5vciBjbGVhbnVwLgoKMjAxNC0xMi0yNCAxMDoxMzo1MSArMDgwMCAgU29uZyBCaW5nIDxiMDY0OThAZnJlZXNjYWxlLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogQmxvY2sgd2hlbiByZWNlaXZpbmcgYW4gRU9TIGV2ZW50IG9uIGEgZGVhY3RpdmF0ZWQgcGFkCgkgIC4uLiBhbmQgb25seSB1bmJsb2NrIHdoZW4gZWl0aGVyIGEpIHRoZSBwYWQgYmVjb21lcyBhY3RpdmUgYW5kIHRoZSBldmVudAoJICBzaG91bGQgYmUgZm9yd2FyZGVkIG9yIGIpIHRoZSBhY3RpdmUgcGFkIHdlbnQgRU9TIGl0c2VsZi4KCSAgT3RoZXJ3aXNlIGl0IGNhbiBoYXBwZW4gdGhhdCB3ZSBzd2l0Y2ggZnJvbSBhIGxvbmdlciB0cmFjayB0aGF0IGlzIG5vdCBFT1MgeWV0CgkgIHRvIGEgc2hvcnRlciB0cmFjayB0aGF0IGFscmVhZHkgaXMgRU9TLCBidXQgdGhlIHNob3J0ZXIgdHJhY2sgd29uJ3QgaGF2ZSBhbnkKCSAgcG9zc2liaWxpdHkgdG8gc2VuZCBpdHMgRU9TIGV2ZW50IGRvd25zdHJlYW0gYW55bW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDk0OQoKMjAxNC0xMi0yMyAxMjo1NDo1MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBLZWVwIGEgcmVmIG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIHNpbmtwYWQgYXJvdW5kCgkgIE90aGVyd2lzZSB3ZSBjYW4ndCBiZSBzdXJlIHRoYXQgdGhlIHBvaW50ZXIgcG9pbnRzIHRvIGEgc3RpbGwgZXhpc3RpbmcKCSAgcGFkIGluc3RhbmNlIGFmdGVyIHJlbGVhc2luZyB0aGUgbG9jay4KCjIwMTQtMTItMjMgMTI6NTM6NTggKzAxMDAgIFNvbmcgQmluZyA8YjA2NDk4QGZyZWVzY2FsZS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogR2V0IHRoZSBhY3RpdmUgc2lua3BhZCBhZ2FpbiBhZnRlciB0YWtpbmcgdGhlIGxvY2sgd2hlbiBoYW5kbGluZyBldmVudHMKCSAgSXQgbWlnaHQgaGF2ZSBjaGFuZ2VkIGluIHRoZSBtZWFudGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTg5MwoKMjAxNC0xMi0yMiAxMzowODozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBTaG9ydC1jaXJjdWl0IENBUFMgcXVlcnkgaGFuZGxpbmcgaWYgdHJhbnNmb3JtX2NhcHMgcmV0dXJucyBFTVBUWSBjYXBzCgkgIEJvdGggZm9yIHRoZSBwZWVyIGZpbHRlciBjYXBzIGFuZCB0aGUgY29udmVydGVkIGNhcHMgYmFzZWQgb24gdGhlIHBlZXIgY2Fwcy4KCSAgSWYgdGhlIHBlZXIgZmlsdGVyIGNhcHMgYXJlIEVNUFRZLCB0aGUgcGVlciBjYXBzIHF1ZXJ5IHdpbGwgYWxzbyByZXR1cm4KCSAgRU1QVFkuIFRoZXJlJ3Mgbm8gbmVkIHRvIGJvdGggZG93bnN0cmVhbS91cHN0cmVhbSB3aXRoIHRoaXMgcXVlcnkuCgoyMDE0LTEyLTIyIDExOjQ1OjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogTUFJTlRBSU5FUlM6CgkgIE1BSU5UQUlORVJTOiBVcGRhdGUgbXkgbWFpbCBhZGRyZXNzCgoyMDE0LTEyLTIxIDE0OjEyOjI5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogdXNlIGEgY29uc3RhbnQgZm9yIHRoZSBtYXggcGFyYW0gbGVuZ3RoCgkgIEltcHJvdmUgcmVhZGFiaWxpdHkgYnkgdXNpbmcgYSBkZWZpbmUgZm9yIHRoZSBtYXgtY2hhcnMuIEFsc28gdXNlIHRoZSB1bmljb2RlCgkgIGVsbGlwc2lzIGFzIGRvdCBmaWxlcyBhcmUgdXRmLTguCgoyMDE0LTEyLTE1IDE0OjAzOjU0ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHByaW50IHByZXNldCBuYW1lcwoJICBJZiB0aGUgZWxlbWVudCBzdXBwb3J0cyBwcmVzZXRzIGFuZCBzaGlwcyBzb21lLCBwcmludCB0aGVtLgoJICBGaXhlcyAjNzQxNDI3CgoyMDE0LTEyLTE5IDExOjM1OjI0ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogQWRkIG5ldyBtYXhpbXVtIGxldmVsIGRlYnVnZ2luZwoJICBBUEk6IEdTVF9MRVZFTF9NQVgKCSAgQnkgY29tcGlsaW5nIGdzdHJlYW1lciAob3IgcGx1Z2lucykgd2l0aCBHU1RfTEVWRUxfTUFYIGRlZmluZWQsIG9ubHkKCSAgdGhlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGF0IG9yIGJlbG93IHRoYXQgbGV2ZWwgd2lsbCBiZSBjb21waWxlZCBpbi4KCSAgVGhpcyBhbGxvd3MgY29tcGlsaW5nIGluIHNvbWUgZGVidWdnaW5nIChsaWtlIGVycm9ycyBhbmQgd2FybmluZ3MpIHdoaWNoCgkgIGhlbHBzIGluIGRlYnVnZ2luZywgYnV0IHdpdGhvdXQgdGhlIGZ1bGwgY3B1L21lbW9yeSBvdmVyaGVhZCBvZiBhbGwgZGVidWdnaW5nCgkgIGVuYWJsZWQuCgoyMDE0LTEyLTE4IDEyOjA0OjIyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogZml4IEdJIGFubm90YXRpb24KCSAgQWRkIG1pc3NpbmcgOiB0byBhbm5vdGF0aW9uCgoyMDE0LTExLTEzIDE0OjUzOjU5ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZToganVtcCBvdmVyIGxhcmdlIHNraXBzIGluIHB1bGwgbW9kZQoJICBUaGlzIGJ5cGFzc2VzIHRoZSBkdW1waW5nIG9mIGJ1ZmZlcnMgd2Ugc3RpbGwgaGF2ZSB0byBkbyBpbiBwdXNoIG1vZGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzAwNTMKCjIwMTQtMTAtMjUgMTc6MTY6MjUgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgZGVidWd1dGlsczogVHJ1bmNhdGUgcGFyYW1ldGVyIHZhbHVlcyB0aGF0IGFyZSB0b28gbG9uZwoJICBUaGlzIHJlbW92ZXMgc29tZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkdW1wcywgYnV0IGltcHJvdmVzIHJlYWRhYmlsaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTY1CgoyMDE0LTEyLTE4IDEwOjUzOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlZjFmZmRjIHRvIGYyYzZiOTUKCjIwMTQtMTItMTYgMTY6MzE6MjEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlL2NhcHM6IEFkZCBnc3Rfe3N0cnVjdHVyZSxjYXBzfV9maWx0ZXJfYW5kX21hcF9pbl9wbGFjZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk3NjUKCjIwMTQtMTItMTYgMTg6MTQ6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogQWRkIHNpbXBsZSB1bml0IHRlc3QgZm9yIGZvcmVhY2goKSBhbmQgbWFwX2luX3BsYWNlKCkKCjIwMTQtMTEtMDcgMTE6MTU6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgZ3N0X2NhcHNfZm9yZWFjaCgpIGFuZCBnc3RfY2Fwc19tYXBfaW5fcGxhY2UoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NzY1CgoyMDE0LTEyLTE2IDE1OjUzOjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmdzCgoyMDE0LTEyLTE0IDEyOjU0OjMyICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSAgY2hlY2s6IEhhdmUgYXV0b3Rvb2xzIGdlbmVyYXRlIGludGVybmFsLWNoZWNrLmgKCSAgUHJldmlvdXNseSBHU3RyZWFtZXIgZ290IGFjY2VzcyB0byB0aGUgbGliY2hlY2sgaW50ZXJmYWNlIGJ5IGluY2x1ZGluZwoJICBsaWJzL2dzdC9jaGVjay9jaGVjay5oIHdoaWNoIGluIHR1cm4gaW5jbHVkZWQgaW50ZXJuYWwtY2hlY2suaCBpbiB0aGUKCSAgc2FtZSBkaXJlY3RvcnkuIGludGVybmFsLWNoZWNrLmggd2FzIGdlbmVyYXRlZCBieSBjb3B5aW5nCgkgIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmggd2hpY2ggaW4gdHVybiB3YXMgZ2VuZXJhdGVkIGZyb20KCSAgY2hlY2suaC5pbiBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuIEluIHRoaXMgY2FzZSBnZW5lcmF0aW5nCgkgIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmggaXMgdW5uZWNlc3NhcnksIGluIGFkZGl0aW9uIHRoaXMgZmlsZQoJICB3YXMgYWNjaWRlbnRhbGx5IGRpc3RyaWJ1dGVkIGluIGdlbmVyYXRlZCBwcm9qZWN0IHRhcmJhbGxzLgoJICBOb3cgbGlicy9nc3QvY2hlY2svaW50ZXJuYWwtY2hlY2suaCBpcyBnZW5lcmF0ZWQgZGlyZWN0bHkgZnJvbQoJICBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluIGJ5IGNvbmZpZ3VyZS4gVGhpcyBtZWFucyB0aGF0IHRoZQoJICBsaWJjaGVjayBzb3VyY2UgbXVzdCBpbmNsdWRlIGludGVybmFsLWNoZWNrLmggaW5zdGVhZCBvZiB0aGUgcHJldmlvdXNseQoJICBnZW5lcmF0ZWQgbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC4gSG93ZXZlciB0aGUgdW5uZWNlc3NhcnkKCSAgaW50ZXJtZWRpYXRlIHN0ZXAgaXMgbm93IHNraXBwZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDEzNTkKCjIwMTQtMTItMTYgMTA6MTM6MDMgLTA1MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogRG9uJ3QgY2hlY2sgc2l6ZSBpbiBjb25maWcgdmFsaWRhdGlvbgoJICBQb29scyBhcmUgYWxsb3dlZCB0byBjaGFuZ2UgdGhlIHNpemUgaW4gb3JkZXIgdG8gYWRhcHQgcGFkZGluZy4gU28KCSAgZG9uJ3QgY2hlY2sgdGhlIHNpemUuIE5vcm1hbGx5IHBvb2wgd2lsbCBjaGFuZ2UgdGhlIHNpemUgd2l0aG91dAoJICBmYWlsaW5nIHNldF9jb25maWcoKSwgYnV0IGl0IHRoZXkgZW5kdXAgY2hhbmdpbmcgdGhlIHNpemUgYmVmb3JlCgkgIHRoZSB2YWxpZGF0ZSBtZXRob2QgbWF5IGZhaWwgb24gYSBmYWxzZSBwb3NpdGl2ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MTQyMAoKMjAxNC0xMi0xNiAxMjoyMTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBsb2cgcmVhc29uIGZvciBkaXNjYXJkZWQgYnVmZmVycwoJICBQRVJGT1JNQU5DRSBsb2cgdGhlIHJlYXNvbiB3aHkgYSBidWZmZXIgY291bGQgbm90IGJlIHJlY3ljbGVkIGluIHRoZQoJICBidWZmZXJwb29sLgoKMjAxNC0xMi0xNSAxNDo1MzoyOCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogbTQvY2hlY2stY2hlY2tzLm00OgoJICBjaGVjazogVXBkYXRlIHZlcnNpb24gbnVtYmVyIG9mIGluY2x1ZGVkIGxpYmNoZWNrCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NDE1NTAKCjIwMTQtMTItMTIgMjE6MDI6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSBleHBvcnRzCgoyMDE0LTEyLTEyIDIxOjU0OjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBwcmVzZXQgYXBpCgoyMDE0LTEyLTEyIDIxOjM4OjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIHByZXNldDogYWRkIGdzdF9wcmVzZXRfaXNfZWRpdGFibGUoKQoJICBBZGQgYSBmdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgcHJlc2V0IGlmYWNlIGltcGxlbWVudGF0aW9uIGlzIGVkaXRhYmxlIGFuZAoJICBkb2N1bWVudCB0aGlzIGZyb20gdGhlIGltcGxlbWVudGVycyBwZXJzcGVjdGl2ZS4KCSAgQVBJOiBnc3RfcHJlc2V0X2lzX2VkaXRhYmxlKCkKCjIwMTQtMTItMTIgMTQ6MjM6MTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWYgZmlsZQoKMjAxNC0xMi0xMiAxMzo1NzozOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBjb21waWxlciB3YXJuaW5nCgkgIGdzdGRlYnVndXRpbHMuYzogSW4gZnVuY3Rpb24gJ2dzdF9kZWJ1Z19iaW5fdG9fZG90X2RhdGEnOgoJICBnc3RkZWJ1Z3V0aWxzLmM6NjgzOjUzMDogZXJyb3I6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZCBbLVdlcnJvcl0KCSAgZ19yZXR1cm5faWZfZmFpbCAoR1NUX0lTX0JJTiAoYmluKSk7CgoyMDE0LTEyLTEyIDEzOjE1OjAyICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkgIGRlYnVndXRpbHM6IEFkZCBhIGdzdF9kZWJ1Z19iaW5fdG9fZG90X2RhdGEoKSBtZXRob2QKCSAgVGhpcyBwcm92aWRlcyB0aGUgZG90IGZpbGUgYXMgYSBzdHJpbmcsIHJhdGhlciB0aGFuIGR1bXBpbmcgdG8gYSBmaWxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQxNDI1CgoyMDE0LTEyLTEwIDExOjE3OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IG1pbm9yIGNvc21ldGljIGNoYW5nZQoJICBObyBuZWUgdG8gYWJicmV2IHZhcmlhYiBuYW0gaGVyZSwgbmljZXIgdG8gcmVhZCBpZiBmdWxsLgoKMjAxNC0xMi0xMCAxMToxNjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiB1c2UgR1NUX0JVRkZFUl9PRkZTRVRfTk9ORSBmb3IgYnVmZmVyIG9mZnNldAoKMjAxNC0xMi0wNyAxMjo1NToyNiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSAgY2hlY2s6IEF2b2lkIHJlcXVyaW5nICh1KWludG1heF90IGluIG1hY3JvcwoJICBQcmV2aW91c2x5IGVtYmVkZGVkIGxpYmNoZWNrIHZlcnNpb25zIGRpZCBub3QgZGVwZW5kIG9uICh1KWludG1heF90IGFuZAoJICBkb2luZyBzbyB3b3VsZCByZXF1aXJlIHByb2plY3RzIHVzaW5nIEdTdHJlYW1lcidzIGNoZWNrIGZyYW1ld29yayB0byBhZGQKCSAgQVhfQ1JFQVRFX1NURElOVF9IIHRvIHRoZWlyIGNvbmZpZ3VyZS5hYy4gQSB3b3JrYXJvdW5kIGlzIHRvIGZhbGxiYWNrIHRvCgkgIGdsaWIgdHlwZXMuIFRoaXMgcGF0Y2ggYXNzdW1lcyB0aGF0IGdsaWIuaCBpcyBhbHdheXMgaW5jbHVkZWQgYmVmb3JlCgkgIGludGVybmFsLWNoZWNrLmggd2hpY2ggaXMgb2sgc2luY2UgZXZlcnl0aGluZyBHc3RyZWFtZXIgd291bGQgaW5jbHVkZQoJICBnc3QvZ3N0Y2hlY2suaCBpbnN0ZWFkIG9mIGRpcmVjdGx5IGluY2x1ZGluZyBpbnRlcm5hbC1jaGVjay5oLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODI2CgoyMDE0LTEyLTA2IDE5OjAzOjA0ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jbG9ja19nZXR0aW1lLmM6CgkgIGNoZWNrOiBGaXggY29tcGlsYXRpb24gZXJyb3IgZm9yIGlPUwoJICBsaWJjaGVjayBpbmNsdWRlcyBDb3JlU2VydmljZXMgZm9yIGl0cyBjb21wYXQgZm9yIGNsb2NrX2dldHRpbWUoKSwKCSAgZXZlbiB0aG91Z2ggaXQgbmV2ZXIgdXNlcyBhbnl0aGluZyBpdCBkZWNsYXJlcy4gTGV0J3MgcmVtb3ZlIGl0LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODI2CgoyMDE0LTExLTE1IDEzOjI2OjQ3ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5oOgoJKiBtNC9jaGVjay1jaGVja3MubTQ6CgkgIGNoZWNrOiBBcHBseSBHU3RyZWFtZXItc3BlY2lmaWMgcGF0Y2hlcwoJICBSZWludHJvZHVjZWQgcGF0Y2hlczoKCSAgKiBNYWtlIHN1cmUgdGhhdCBmYWlsX2lmKDEpIGFjdHVhbGx5IGZhaWxzCgkgIGZyb20gY29tbWl0IDlmOTlkMDU2YTI2M2U3MWE1ZTYxODEyMjQ4MjlkZWY5MDZjZjAyMjYKCSAgTmV3IHBhdGNoZXMgZHVlIHRvIHVwZGF0ZWQgbGliY2hlY2sgKGJhc2VkIG9uIDAuOS4xNCk6CgkgICogQ2hlY2tzIGluIG00L2NoZWNrLWNoZWNrcy5tNCB0byBjYXRlciBmb3IgbmV3IGRlcGVuZGVuY2llcwoJICAqIENvbmRpdGlvbmFsIGNvbXBpbGUtdGltZSBjb21wYXQgUE9TSVggZmFsbGJhY2tzIGZvciBsaWJjaGVjawoJICAqIEF2b2lkIHJlbGF0aXZlIHBhdGhzIGZvciBsaWJjaGVjayBoZWFkZXIgZmlsZXMKCSAgKiBNYWtlIHRpbWVyX2NyZWF0ZSgpIHVzYWdlIGRlcGVuZCBvbiBwb3NpeCB0aW1lcnMsIG5vdCBsaWJydAoJICAqIFJlbHkgb24gZGVmYXVsdCBBWF9QVEhSRUFEIGJlaGF2aW9yIHRvIGFsbG93IEhBVkVfUFRIUkVBRCB0byBiZSB1c2VkCgkgIHdoZW4gY2hlY2tpbmcgZm9yIHR5cGVzIGFuZCBmdW5jdGlvbnMgKGxpa2UgY2xvY2tfZ2V0dGltZSgpKQoJICAqIEF2b2lkIGRvdWJsZSBkZWNsYXJhdGlvbiBvZiBjbG9ja19nZXR0aW1lKCkgd2hlbiBhdmFpbGFiZSBvdXRzaWRlIG9mCgkgIGxpYnJ0IGJ5IG1ha2luZyBjb21wYXQgY2xvY2tfZ2V0dGltZSgpIGRlY2xhcmF0aW9uIGNvbmRpdGlvbmFsCgkgICogY2hlY2sgMC45LjkgcmVuYW1lZCBfZmFpbF91bmxlc3MoKSBhbmQgMC45LjEyIGxhdGVyIHJlbmFtZWQgaXQgYWdhaW4KCSAgdG8gX2NrX2Fzc2VydF9mYWlsZWQoKSwgc28gQVNTRVJUX3tDUklUSUNBTCxXQVJOSU5HfSgpIG5vdyBjYWxscyB0aGlzCgkgIGZ1bmN0aW9uCgkgICogUmVtb3ZlIGxpYmNoZWNrIGZhbGxiYWNrIGluZnJhc3RydWN0dXJlIGZvciBtYWxsb2MoKSwgcmVhbGxvYygpLAoJICBnZXR0aW1lb2ZkYXkoKSBhbmQgc25wcmludGYoKSBzaW5jZSBlaXRoZXIgdGhleSBhcHBlYXIgdG8gYmUKCSAgYXZhaWxhYmxlIG9yIHRoZXkgaW50cm9kdWNlIGV2ZW4gbW9yZSBkZXBlbmRlbmNpZXMuCgkgIFRoZSByZXN1bHQgaXMgYW4gZW1iZWRkZWQgY2hlY2sgaW4gZ3N0cmVhbWVyIHRoYXQgaGFzIGJlZW4gdGVzdGVkIGJ5CgkgIHJ1bm5pbmcgY2hlY2sgdGVzdHMgaW4gY29yZSwgLWJhc2UsIC1nb29kLCAtYmFkLCAtdWdseSBhbmQgcnRzcC1zZXJ2ZXIKCSAgb24gTGludXgsIE9TWCBhbmQgV2luZG93cy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzgyNgoKMjAxNC0xMS0xNSAxMjo1MzozMiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svYWxhcm0uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jbG9ja19nZXR0aW1lLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2xpYmNvbXBhdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9saWJjb21wYXQuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svbG9jYWx0aW1lX3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svc3Ryc2lnbmFsLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL3RpbWVyX2NyZWF0ZS5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay90aW1lcl9kZWxldGUuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svdGltZXJfc2V0dGltZS5jOgoJICBjaGVjazogSW1wb3J0IHZlcnNpb24gMC45LjE0CgkgIFRoaXMgbGlmdHMgdGhlIGZpbGVzIGFsbW9zdCB2ZXJiYXRpbSAodGhlIGNoYW5nZXMgYmVpbmcgcnVubmluZyB0aG91Z2gKCSAgZ3N0LWluZGVudCBhbmQgZml4aW5nIHRoZSBGU0YgYWRkcmVzcykgZnJvbSB0aGUgdXBzdHJlYW0gcmVzcG9zaXRvcnkuCgkgIFRoZXJlZm9yZSB0aGlzIGNvbW1pdCByZXZlcnRzIHNvbWUgR1N0cmVhbWVyLXNwZWNpZmljIHBhdGNoZXMgdG8gY2hlY2sKCSAgdGhhdCB3aWxsIGJlIHJlaW50cm9kdWNlZCBuZXh0LgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3ODI2CgoyMDE0LTExLTA0IDE5OjExOjUwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmQ6IFByb3BhZ2F0ZSBpbnB1dCBidWZmZXIgb2Zmc2V0CgkgIFRoZSBpbml0aWFsIGJ1ZmZlcnMgbWlnaHQgaGF2ZSBub24tZGVmYXVsdCBvZmZzZXRzLCBtYWtlIHN1cmUgdGhleSBnZXQKCSAgcHJvcGFnYXRlZCBpZiBwcmVzZW50LgoKMjAxNC0xMC0wNyAxNjo0NDo0NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsYW1wIHJlcG9ydGVkIHBvc2l0aW9uIGJhc2VkIG9uIGRpcmVjdGlvbgoJICBXaGVuIHVzaW5nIGEgbmVnYXRpdmUgcmF0ZSAocmF0ZSBiZWluZyBzZWdtZW50LnJhdGUgKiBzZWdtZW50LmFwcGxpZWRfcmF0ZSksCgkgIHdlIHdpbGwgZW5kIHVwIHJlcG9ydGluZyBkZWNyZWFzaW5nIHBvc2l0aW9ucywgdGhlcmVmb3JlIGFkanVzdCB0aGUgY2xhbXBpbmcKCSAgYWdhaW5zdCBsYXN0IHJlcG9ydGVkIHZhbHVlIGFjY29yZGluZ2x5LgoJICBGaXhlcyBwb3NpdGlvbnMgZ2V0dGluZyBwcm9wZXJseSByZXBvcnRlZCB3aXRoIGFwcGxpZWRfcmF0ZSA8IDAuMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MDkyCgoyMDE0LTExLTI4IDE0OjE3OjU0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIERvbid0IGNvbXBhcmUgYm9vbGVhbnMgZm9yIGVxdWFsaXR5IHRvIFRSVUUgYW5kIEZBTFNFCgkgIFRSVUUgaXMgMSwgYnV0IGV2ZXJ5IG90aGVyIG5vbi16ZXJvIHZhbHVlIGlzIGFsc28gY29uc2lkZXJlZCB0cnVlLiBDb21wYXJpbmcKCSAgZm9yIGVxdWFsaXR5IHdpdGggVFJVRSB3b3VsZCBvbmx5IGNvbnNpZGVyIDEgYnV0IG5vdCB0aGUgb3RoZXJzLgoJICBBbHNvIG5vcm1hbGl6ZSBib29sZWFucyBpbiBhIGZldyBwbGFjZXMuCgoyMDE0LTExLTMwIDIzOjUwOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIHBsdWdpbnM6IGZpeCBidWlsZCBvbiB3aW5kb3dzCgkgIGdzdGVsZW1lbnRzX3ByaXZhdGUuYzogSW4gZnVuY3Rpb24gJ2dzdF93cml0ZXZfYnVmZmVycyc6CgkgIGdzdGVsZW1lbnRzX3ByaXZhdGUuYzoyMzY6NTE6IGVycm9yOiAnRVdPVUxEQkxPQ0snIHVuZGVjbGFyZWQKCjIwMTQtMTEtMjggMTU6MDk6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiB1c2Ugd3JpdGV2KCkgaW4gOjpyZW5kZXIoKSB0byB3cml0ZSBvdXQgbWVtb3JpZXMgd2l0aG91dCBtZXJnaW5nIHRoZW0KCjIwMTQtMTEtMjggMTU6MDQ6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgZmlsZXNpbms6IGltcGxlbWVudCA6OnJlbmRlcl9saXN0KCkgZnVuY3Rpb24gdGhhdCB1c2VzIHdyaXRldigpCgoyMDE0LTExLTI4IDE0OjQ3OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiB1c2Ugd3JpdGV2KCkgaW4gOjpyZW5kZXIoKSB0byB3cml0ZSBvdXQgbWVtb3JpZXMgd2l0aG91dCBtZXJnaW5nIHRoZW0KCjIwMTQtMTEtMjggMTQ6Mzk6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBmZHNpbms6IGltcGxlbWVudCA6OnJlbmRlcl9saXN0KCkgdXNpbmcgd3JpdGV2KCkKCSAgV3JpdGUgb3V0IG11bHRpcGxlIGJ1ZmZlcnMgcG9zc2libHkgY29udGFpbmluZyBtdWx0aXBsZQoJICBtZW1vcmllcyB3aXRoIG9uZSB3cml0ZXYoKSBjYWxsLCB3aXRob3V0IG1lcmdpbmcgdGhlCgkgIGJ1ZmZlciBtZW1vcmllcyBmaXJzdCwgbGlrZSA6OnJlbmRlcigpIGRvZXMgY3VycmVudGx5LgoKMjAxNC0xMS0yOCAxNDozODozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5oOgoJICBwbHVnaW5zOiBhZGQgaGVscGVyIGZ1bmN0aW9uIGZvciB3cml0aW5nIGJ1ZmZlcnMgb3V0IHdpdGggd3JpdGV2KCkKCjIwMTQtMTEtMjggMTQ6MTU6MzAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXBkYXRlIHRoZSBkdXJhdGlvbiB2YXJpYWJsZSBiZWZvcmUgZW1pdHRpbmcgdGhlIGJ1cwoJICBPdGhlcndpc2UgdGhlIGFwcGxpY2F0aW9uIG1pZ2h0IHN0aWxsIGdldCB0aGUgb2xkIHZhbHVlIGlmIGl0IGFza3MKCSAgYmV0d2VlbiB0aGUgbWVzc2FnZSBhbmQgdGhlIHJlYWwgdXBkYXRlLgoKMjAxNC0xMS0yOCAxNjoyNTowMiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpeCBkb2MgYW5kIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2Ygc2VuZF9ldmVudAoJICBUaGUgZG9jdW1lbnRhdGlvbiBzdGF0ZXMgdGhhdCBnc3RfZWxlbWVudF9zZW5kX2V2ZW50IGlzIHRvICJzZW5kIGFuIGV2ZW50CgkgIHRvIGFuIGVsZW1lbnQiLgoJICBUaGVyZWZvcmUgd2UgKnNlbmQqIHVwc3RyZWFtIGV2ZW50cyB0byBhIHNvdXJjZSBwYWQgYW5kIGRvd25zdHJlYW0gZXZlbnRzCgkgIHRvIGEgc2luayBwYWQKCjIwMTQtMTEtMjggMTE6MTY6MDAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBGaWd1cmUgZGVmYXVsdCBzZW5kX2V2ZW50IGRpcmVjdGlvbiBoYW5kbGluZwoJICBJZiB3ZSBnZXQgYSBkb3duc3RyZWFtIGV2ZW50IHdlIHdhbnQgdG8gc2VuZCBpdCB0byBhIHJhbmRvbSBTSU5LIHBhZAoJICAoYW5kIHZpY2UtdmVyc2EpLgoKMjAxNC0xMS0yNyAxODowMDo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBDb21wYXJlIGNvcnJlY3QgY2FwcyB2YXJpYWJsZSBhZ2FpbnN0IE5VTEwgYmVmb3JlIGNvbXBhcmluZyBjYXBzCgoyMDE0LTExLTI3IDE3OjEwOjE5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmMzJjZmNkIHRvIGVmMWZmZGMKCjIwMTQtMTEtMTAgMDk6NTg6NDcgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOnVuaW5zdGFsbGVkOiBNYWtlIHN1ciB0aGUgR0VTIFRlc3RNYW5hZ2VyIGlzIHJlZ2lzdGVyZWQKCSAgU28gdGhhdCB3aGVuZXZlciB1c2VyIHdvcmsgd2l0aCBHc3RWYWxpZGF0ZSB0aGV5IGNhbiBydW4gR0VTIHRlc3RzCgkgIHdpdGhpbiB0aGUgZ3N0LXVuaW5zdGFsbGVkIGVudmlyb25tZW50CgoyMDE0LTExLTI2IDIxOjQ4OjA1ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxnaXRAYXJ1bnJhZ2hhdmFuLm5ldD4KCgkqIGNvbW1vbjoKCSogbTQvYXhfcHRocmVhZC5tNDoKCSAgYnVpbGQ6IFVwZGF0ZSBheF9wdGhyZWFkLm00IGFuZCBtb3ZlIGl0IHRvIGNvbW1vbgoJICBIYXMgc29tZSB1cGRhdGVzIGZvciBDbGFuZyBzdXBwb3J0IChtaWdodCBub3Qgd29yayB3aXRoIG5ld2VyIENsYW5nCgkgIHByb3Blcmx5LCB5ZXQpLCBBSVggc3VwcG9ydCwgYW5kIHNvbWUgbWlzYyBmaXhlcy4KCjIwMTQtMTEtMjUgMTc6NDY6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIHRyaWdnZXJjb250cm9sc291cmNlOiBGaXggc2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoZSBkb2NzCgoyMDE0LTExLTI1IDA5OjM5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGFkZCBHU1RfR0xfKiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gJ1J1bm5pbmcgR1N0cmVhbWVyJyBzZWN0aW9uCgoyMDE0LTExLTIzIDA1OjQ1OjI0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHBlcmNlbnRhZ2UgaXMgcmVsYXRpdmUgdG8gaGlnaC1wZXJjZW50CgkgIFdoZW4gY29tcGFyaW5nIHBlcmNlbnRhZ2UgdmFsdWVzLCBjb21wYXJlIHdpdGggMC0xMDAgc2NhbGUgYXMgaXQKCSAgaGFzIGFscmVhZHkgYmVlbiBtYWRlIHJlbGF0aXZlIHRvIDAtaGlnaF9wZXJjZW50LCBvdGhlcndpc2Ugd2UgbWFyawoJICB0aGUgcXVldWUgYXMgbm90IGJ1ZmZlcmluZyBhbmQgcmVwb3J0IGEgNTAlIHRvIHRoZSB1c2VyLiBUaGlzIGxlYWRzIHRvCgkgIGEgYnVmZmVyaW5nIHN0YWxsIGFzIHRoZSB1c2VyIGFzc3VtZXMgdGhlIHF1ZXVlIGlzIHN0aWxsIGJ1ZmZlcmluZyBidXQKCSAgaXQgdGhpbmtzIGl0IGlzbid0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2OTY5CgoyMDE0LTExLTIzIDA1OjQyOjUxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcGVyY2VudGFnZSBpcyBhbiBhYnNvbHV0ZSB2YWx1ZQoJICBtdWx0aXF1ZXVlJ3MgcXVldWVzIHN0b3JlZCBwZXJjZW50IHZhbHVlIGlzIHRoZSBwZXJjZW50YWdlIGZyb20gMAoJICB0byAxMDAgKG1heC1zaXplLSopIGFuZCBzaG91bGQgYmUgY29tcGFyZWQgd2l0aCB0aGUgcmVxdWVzdGVkIGxpbWl0CgkgIChoaWdoX3BlcmNlbnRhZ2UpIHNldCBieSB0aGUgdXNlciBhbmQgbm90IHdpdGggMTAwJSB0byBjaGVjayBpZgoJICBidWZmZXJpbmcgc2hvdWxkIHN0b3AuIE90aGVyd2lzZSB3ZSBhcmUgb25seSBzdG9wcGluZyBidWZmZXJpbmcgd2hlbiB0aGUKCSAgcXVldWUgZ2V0cyBjb21wbGV0ZWx5IGZ1bGwuCgoyMDE0LTExLTIwIDIxOjMzOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEZpeCBjYXBzIGVxdWFsaXR5IGNoZWNrCgkgIEluc3RlYWQgb2YgY2hlY2tpbmcgaWYgb3VyIG91dGNhcHMgYXJlIGVxdWl2YWxlbnQgdG8gdGhlIHByZXZpb3VzIGluY2FwcywgYW5kCgkgIGlmIHRoYXQgaXMgdGhlIGNhc2Ugbm90IHNldHRpbmcgYW55IGNhcHMgb24gdGhlIHBhZC4uLiBjb21wYXJlIGFnYWluc3Qgb3VyCgkgIHByZXZpb3VzIG91dGNhcHMgYmVjYXVzZSB0aGF0J3Mgd2hhdCB3ZSBjYXJlIGFib3V0LgoJICBGaXhlcyBzb21lIGNhc2VzIHdoZXJlIHRoZSBvdXRjYXBzIGJlY2FtZSBlcXVpdmFsZW50IHRvIHRoZSBwcmV2aW91cyBpbmNhcHMsCgkgIGJ1dCB0aGUgcHJldmlvdXMgb3V0Y2FwcyB3ZXJlIGRpZmZlcmVudCBhbmQgd2Ugd2VyZSB0aGVuIHNlbmRpbmcgYnVmZmVycwoJICBkb3duc3RyZWFtIHRoYXQgd2VyZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBjYXBzIHdlIGZvcmdvdCB0byBzZXQgb24gdGhlIHBhZC4KCSAgUmVzdWx0aW5nIGluIGNyYXNoZXMgb3IgaW1hZ2UgY29ycnVwdGlvbi4KCjIwMTQtMTEtMjAgMTM6MzM6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBiaXNvbiB2ZXJzaW9uIGNoZWNrIHBhdGNoCgkgIEZpeCBjb25maWd1cmUgY2hlY2sgd2l0aCBiaXNvbiBkZXZlbG9wbWVudCB2ZXJzaW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4OTQ2CgoyMDE0LTExLTIwIDEzOjM0OjMyICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGRvbid0IG92ZXJyZWFkIGlucHV0IHdoZW4gc2VhcmNoaW5nIGZvciAiCgkgIFdoZW4gc2VhcmNoaW5nIGZvciB0aGUgc3RyaW5nIHRlcm1pbmF0b3IgZG9uJ3QgcmVhZCBwYXN0IHRoZSBlbmRpbmcKCSAgMC1ieXRlIHdoZW4gZXNjYXBpbmcgY2hhcmFjdGVycy4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgdmFyaW91cyBlc2NhcGluZyBjYXNlcy4KCjIwMTQtMTEtMDMgMTc6NDY6NTcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZhaWwgZHJvcHBlZCBxdWVyaWVzCgkgIFByZXZpb3VzbHksIGRyb3BwaW5nIGEgcXVlcnkgZnJvbSBhIHBhZCBwcm9iZSB3b3VsZCBkZWVtIHRoZQoJICBxdWVyeSBzdWNjZWVkZWQsIGFuZCB0aGUgY2FsbGVyIG1pZ2h0IHRoZW4gYXNzdW1lIHRoZSBxdWVyeSdzCgkgIHJlc3VsdHMgYXJlIHZhbGlkLCBhbmQgdGh1cyBkZXJlZmVyZW5jZSBhbiBpbnZhbGlkIG9iamVjdAoJICBzdWNoIGFzIGEgR3N0Q2Fwcy4KCSAgV2Ugbm93IGFzc3VtZSBkcm9wcGVkIHF1ZXJpZXMgZGlkIG5vdCBzdWNjZWVkLiBEcm9wcGVkIGV2ZW50cwoJICBhbmQgYnVmZmVycyBhcmUgc3RpbGwgZGVlbWVkIGEgc3VjY2Vzcy4KCSAgQWRkZWQgYmFjayBhZnRlciBwcmV2aW91cyByZXZlcnQsIGFzIGl0J3MgYmVlbiBkb3VibGUgY2hlY2tlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDAwMwoKMjAxNC0xMS0xMiAxMzo1NToyMyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBmYWlsIGRyb3BwZWQgcXVlcmllcyIKCSAgVGhpcyB3YXMgcHVzaGVkIGJ5IG1pc3Rha2UgYWxvbmcgd2l0aCBhbiB1bnJlbGF0ZWQgcGF0Y2guCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYzcxMDNjZTRiOGMxZGE3ZGNmYmNmMmVjODNhNDJhMzc2ZmI4OTZlMS4KCjIwMTQtMDUtMTMgMTE6MTg6MDggKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbGxvdyBza2lwcGluZyBtb3JlIGRhdGEgdGhhbiB3ZSBjdXJyZW50bHkgaGF2ZQoJICBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHNraXBwaW5nIGxhcmdlIHVud2FudGVkIGRhdGEsIHN1Y2ggYXMKCSAgbGFyZ2UgYWxidW0gYXJ0LCB3aGVuIHdlIGtub3cgdGhlIHNpemUgb2YgaXQgZnJvbSBhIG1ldGFkYXRhCgkgIGhlYWRlci4KCjIwMTQtMTEtMDMgMTc6NDY6NTcgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZhaWwgZHJvcHBlZCBxdWVyaWVzCgkgIFByZXZpb3VzbHksIGRyb3BwaW5nIGEgcXVlcnkgZnJvbSBhIHBhZCBwcm9iZSB3b3VsZCBkZWVtIHRoZQoJICBxdWVyeSBzdWNjZWVkZWQsIGFuZCB0aGUgY2FsbGVyIG1pZ2h0IHRoZW4gYXNzdW1lIHRoZSBxdWVyeSdzCgkgIHJlc3VsdHMgYXJlIHZhbGlkLCBhbmQgdGh1cyBkZXJlZmVyZW5jZSBhbiBpbnZhbGlkIG9iamVjdAoJICBzdWNoIGFzIGEgR3N0Q2Fwcy4KCSAgV2Ugbm93IGFzc3VtZSBkcm9wcGVkIHF1ZXJpZXMgZGlkIG5vdCBzdWNjZWVkLiBEcm9wcGVkIGV2ZW50cwoJICBhbmQgYnVmZmVycyBhcmUgc3RpbGwgZGVlbWVkIGEgc3VjY2Vzcy4KCjIwMTQtMTEtMTIgMTE6MzA6NTEgKzAxMDAgIEhhYWtvbiBTcG9yc2hlaW0gPGhhYWtvbi5zcG9yc2hlaW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhc2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogRml4IHBhdXNlL3N0b3AgcmFjZSBjb25kaXRpb24KCSAgSWYgYSB0YXNrIHRocmVhZCBpcyBjYWxsaW5nIHBhdXNlIG9uIGl0IHNlbGYgYW5kIHRoZQoJICBjb250cm9sbGluZy8ibWFpbiIgdGhyZWFkIHN0b3BzIHRoZSB0YXNrLCBpdCBjb3VsZCBlbmQgaW4gYSByYWNlCgkgIHdoZXJlIGdzdF90YXNrX2Z1bmMgbG9vcHMgYW5kIHRoZW4gY2hlY2tzIGZvciBwYXVzZWQgYWZ0ZXIgdGhlCgkgIGNvbnRyb2xsaW5nIHRocmVhZCBqdXN0IGNoYW5nZWQgdGhlIHRhc2sgc3RhdGUgdG8gc3RvcHBlZC4KCSAgSGVuY2UgdGhlIHRhc2sgd291bGQgYWN0dWFsbHkgY2FsbCBmdW5jIGFnYWluIGV2ZW4gdGhvdWdoIGl0IHdhcwoJICBib3RoIHBhdXNlZCBhbmQgc3RvcHBlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDAwMQoKMjAxNC0xMS0xMCAxMDowMTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBEb24ndCBjaGVjayBib29sZWFucyBmb3IgZXF1YWxpdHkgaW4gdGhlIHVuaXQgdGVzdAoJICBFdmVyeSB2YWx1ZSBvdGhlciB0aGFuIDAvRkFMU0UgaXMgVFJVRSwgPT0gVFJVRSB3aWxsIG9ubHkgY2hlY2sgZm9yIDEuCgoyMDE0LTExLTA1IDExOjUwOjQ3ICswMTAwICBKYW4gQWxleGFuZGVyIFN0ZWZmZW5zIChoZWZ0aWcpIDxqc3RlZmZlbnNAbWFrZS50dj4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RvYmplY3Q6IEFkZCBnc3Rfb2JqZWN0X2hhc19wYXJlbnQoKQoJICBBZGRzIGdzdF9vYmplY3RfaGFzX3BhcmVudCwgd2hpY2ggd29ya3MgbGlrZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcgoJICBidXQgZG9lcyBub3QgYXNjZW5kIGZ1cnRoZXIuCgkgIEFQSTogZ3N0X29iamVjdF9oYXNfcGFyZW50KCkKCjIwMTQtMTEtMDkgMTA6Mzc6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRG9uJ3QgYm90aGVyIHRoZSBzdWJjbGFzcyB3aXRoIHNldHRpbmcgdGhlIHNhbWUgY2FwcyBtdWx0aXBsZSB0aW1lcwoKMjAxNC0xMS0wOSAxMDozMjoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IGJvdGhlciB0aGUgc3ViY2xhc3Mgd2l0aCBzZXR0aW5nIHRoZSBzYW1lIGNhcHMgbXVsdGlwbGUgdGltZXMKCjIwMTQtMTEtMDkgMTA6Mjk6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG9uJ3QgYm90aGVyIHRoZSBzdWJjbGFzcyB3aXRoIHNldHRpbmcgdGhlIHNhbWUgY2FwcyBtdWx0aXBsZSB0aW1lcwoKMjAxNC0xMS0wNyAwODoyMjowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiByZW1vdmUgY29uZGl0aW9uYWwgZm9yIEdfVkFMVUVfQ09MTEVDVF9JTklUCgkgIFRoaXMgQVBJIGlzIGluIGdsaWIgc2luY2UgMi4yNCBhbmQgd2UgY3VycmVudGx5IHJlcXVpcmUgMi4zMiBhbmQgYWxyZWFkeSB1c2UKCSAgdGhpcyB1bmNvbmRpdGlvbmFsbHkgZWxzZXdoZXJlLgoKMjAxNC0xMS0wNSAxOTowOTozOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiByZW1vdmUgY29tbWVudGVkIGNvZGUKCSAgVGhlIEdRdWFyayB3YXMgbmV2ZXIgdXNlZC4KCjIwMTQtMTEtMDcgMTE6MzQ6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGdzdGNvbmZpZzogUHV0IGdzdGNvbmZpZy5oIGludG8gJChsaWJkaXIpL2dzdHJlYW1lci0xLjAvaW5jbHVkZQoJICBJdCdzIGFyY2hpdGVjdHVyZSBkZXBlbmRlbnQgYW5kIHNob3VsZCBub3QgYmUgcGxhY2VkIGludG8gdGhlIGluY2x1ZGUKCSAgZGlyZWN0b3J5IGFzIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgYWxsIHRob3NlIGhlYWRlcnMgYXJlIGFyY2hpdGVjdHVyZQoJICBpbmRlcGVuZGVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTc2NwoKMjAxNC0xMS0wNyAxMDo1Njo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdhcm5pbmdzCgkgIGdzdHVyaS5jOjk5NzogRXJyb3I6IEdzdDogU2tpcHBpbmcgaW52YWxpZCBHVEstRG9jIGNvbW1lbnQgYmxvY2s6CgkgIC8qKiBwcml2YXRlIEdzdFVyaSBmdW5jdGlvbnMgKiovCgkgIF4KCSAgZ3N0dXJpLmM6MTE3OTogRXJyb3I6IEdzdDogU2tpcHBpbmcgaW52YWxpZCBHVEstRG9jIGNvbW1lbnQgYmxvY2s6CgkgIC8qKiBSRkMgMzk4NiBmdW5jdGlvbnMgKiovCgkgIF4KCjIwMTQtMTAtMjQgMjE6MjU6NTQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgZGF0YXF1ZXVlOiBGaXggZ3N0X2RhdGFfcXVldWVfbmV3KCkgZGVzY3JpcHRpb24uCgkgIFJld29yZCB0aGUgZnVuY3Rpb24gZG9jcywgd2hpY2ggaGF2ZW4ndCBtYWRlIGFueSBzZW5zZSBzaW5jZQoJICBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCgpIHdhcyByZW1vdmVkIGEgZmV3IHllYXJzIGFnby4KCjIwMTQtMTEtMDMgMTg6Mjc6MjEgKzAxMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFuc3dlciB0aGUgcXVlcnkgcG9zaXRpb24gd2hlbiByZWNlaXZpbmcgaXQgZnJvbSB1cHN0cmVhbQoJICBDdXJyZW50bHkgd2UgYXJlIGp1c3QgcmV0dXJuaW5nIEZBTFNFLCBidXQgd2UgZG8gaGF2ZSB0aGUgaW5mb3JtYXRpb24KCSAgd2Ugc2hvdWxkIGp1c3QgYW5zd2VyIHRoZSBxdWVyeSB0aGUgc2FtZSB3YXkgYXMgd2hlbiBhbnN3ZXJpbmcgdGhyb3VnaAoJICB0aGUgR3N0RWxlbWVudC5xdWVyeSB2bWV0aG9kIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk1ODAKCjIwMTQtMTAtMjIgMTQ6MDc6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogQWRkIGFuIG9wdGlvbmFsIGRlbGF5ZWQgY2FwcyBjaGFuZ2UgbW9kZQoJICBJbiB0aGlzIG1vZGUgd2UgYWNjZXB0IHByZXZpb3VzbHkgc2V0IGZpbHRlciBjYXBzIHVudGlsCgkgIHVwc3RyZWFtIHJlbmVnb3RpYXRlcyB0byBzb21ldGhpbmcgdGhhdCBpcyBjb21wYXRpYmxlCgkgIHRvIHRoZSBjdXJyZW50IGZpbHRlciBjYXBzLgoJICBUaGlzIGFsbG93cyBkeW5hbWljIGNhcHMgY2hhbmdlcyBpbiB0aGUgcGlwZWxpbmUgZXZlbgoJICBpZiB0aGVyZSBpcyBhIHF1ZXVlIGJldHdlZW4gYW55IGNvbnZlcnNpb24gZWxlbWVudAoJICBhbmQgdGhlIGNhcHNmaWx0ZXIuIFdpdGhvdXQgdGhpcyB3ZSB3b3VsZCBnZXQgbm90LW5lZ290aWF0ZWQKCSAgZXJyb3JzIGlmIHRpbWluZyBpcyBiYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkwMDIKCjIwMTQtMTEtMDIgMjA6MTY6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogbWlub3IgY29kZSBjbGVhbi11cAoJICBBbmQgZ2V0IHJpZCBvZiBnX2xpc3RfcHJlcGVuZC9nX2xpc3RfcmV2ZXJzZQoJICBhbnRpLXBhdHRlcm4gd2hpbGUgd2UncmUgYXQgaXQuCgoyMDE0LTExLTAyIDE4OjUxOjA4ICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGVuc3VyZSBHU3RyZWFtZXIgaW5pdGlhbGl6YXRpb24gZGVidWcgbWVzc2FnZSBpcyBkaXNwbGF5ZWQKCSAgVGhlIEdTVF9JTkZPICgiaW5pdGlhbGl6ZWQgR1N0cmVhbWVyIHN1Y2Nlc2Z1bGx5IikgaXMgY3VycmVudGx5IGF0IHRoZSBlbmQgb2YKCSAgZ3N0X2luaXRfY2hlY2sgd2hpY2ggaXNuJ3QgZ3VhcmFudGVlZCB0byBiZSBydW4gc2luY2UgR1N0cmVhbWVyIGNhbiBiZQoJICBpbml0aWFsaXplZCBieSB1c2luZyBpbml0X3ByZSBhbmQgaW5pdF9wb3N0IGRpcmVjdGx5IGZyb20gR09wdGlvbkNvbnRleHQgbGlrZQoJICBnc3QtbGF1bmNoIGRvZXMuIEVuc3VyZSB0aGlzIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGJ5IG1vdmluZyBpdCB0byBpbml0X3Bvc3QuCgoyMDE0LTExLTAxIDE5OjU2OjQxICswMDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzLmJnQHNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jOiBEbyBub3QgdXNlIGRlcHJlY2F0ZWQgZ3RrLWRvYyAnUmVuYW1lIHRvJyB0YWcKCSAgR09iamVjdCBpbnRyb3NwZWN0aW9uIEdUSy1Eb2MgdGFnICJSZW5hbWUgdG8iIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGNoYW5naW5nIHRvCgkgIHJlbmFtZS10byBhbm5vdGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5NTE0CgoyMDE0LTExLTAxIDIyOjMwOjMwICswMTAwICBBdXLDqWxpZW4gWmFuZWxsaSA8YXVyZWxpZW4uemFuZWxsaUBkYXJrb3NwaGVyZS5mcj4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBhZGQgR19QQVJBTV9ERVBSRUNBVEVEIHRvIGtub3duIGZsYWdzCgkgIERpc3BsYXkgJ2RlcHJlY2F0ZWQnIGluc3RlYWQgb2YgZmxhZyB2YWx1ZSB3aGVuIHVzaW5nIEdfUEFSQU1fREVQUkVDQVRFRAoJICBpbiBlbGVtZW50IHByb3BlcnRpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzk1MTgKCjIwMTQtMTAtMzEgMTY6MTA6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkgIHRlc3RzOiByZWZhY3RvciB0b29scyBjaGVjayBhIGxpdHRsZQoJICBVc2UgYW4gYXJyYXkgb2YgY29uc3RhbnQgc3RyaW5ncyBzbyBpZiBhcmd1bWVudHMgZ2V0CgkgIHJlbW92ZWQgZnJvbSBpdCB0aGV5IGFyZSBub3QgY29uc2lkZXJlZCBsZWFrZWQsIGFuZAoJICB2YWxncmluZCBpcyBoYXBweS4gU3RpbGwgc29tZSBzdHVmZiBsZWFraW5nIGluIEdMaWIKCSAgdGhvdWdoLgoKMjAxNC0xMC0zMCAyMzoxNDo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICB0ZXN0czogZml4IG91dC1vZi1ib3VuZHMgbWVtb3J5IGFjY2VzcyBpbiBieXRlcmVhZGVyIHVuaXQgdGVzdAoJICBDYXVnaHQgYnkgLWZzYW5pdGl6ZT1hZGRyZXNzIC8gbGliYXNhbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczOTQzMQoKMjAxNC0xMC0yOCAxOToxNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBtYWtlIGdzdF9pbml0KCkgdGhyZWFkLXNhZmUKCSAgQmVjYXVzZSB3ZSBjYW4sIGFuZCB0aGVyZSBpc24ndCByZWFsbHkgYW55CgkgIHJlYXNvbiBub3QgdG8gZG8gc28uCgoyMDE0LTEwLTI4IDA5OjI4OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSAgdGVzdHM6IGZkc3JjOiBkb24ndCBpZ25vcmUgcmV0dXJuIHZhbHVlIG9mIHdyaXRlKCkKCSAgQ2F1c2VzIGNvbXBpbGVyIHdhcm5pbmdzIG9uIHNvbWUgc3lzdGVtcy4KCjIwMTQtMTAtMjggMDA6MDQ6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJICB0ZXN0czogZml4IGZkc3JjIHRlc3QgY29ybmVyIGNhc2UKCSAgTWFrZSBwaXBlIHNvY2tldCBub24tYmxvY2tpbmcsIHNvIHdlIGRvbid0CgkgIGVuZCB1cCBiZWluZyBibG9ja2VkIGluIGEgd3JpdGUgb24gdGhlIHBpcGUKCSAgd2hpbGUgdGhlIHNyYyBpcyBlb3MgYW5kIG5vdCByZWFkaW5nIGRhdGEKCSAgYW55IG1vcmUsIGFuZCB0aHVzIHdlIG5ldmVyIHVuYmxvY2sgYW5kIG5ldmVyCgkgIG5vdGljZSB0aGF0IHdlJ3JlIGRvbmUuIFRoaXMgd291bGQgaGFwcGVuCgkgIHF1aXRlIHJlbGlhYmx5IG9uIHRoZSBycGkuCgoyMDE0LTEwLTI3IDE3OjU2OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4NGQwNmNkIHRvIDdiYjJiY2UKCjIwMTQtMTAtMjUgMTc6MTU6NDIgKzA1MzAgIEFydW4gUmFnaGF2YW4gPGFydW5AYWNjb3N0ZWQubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogVHJpdmlhbCB0eXBvIGZpeAoKMjAxNC0xMC0yNCAxMjo1MTowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvbid0IHVubG9jayBtdXRleCB0aGF0IGlzIG5vdCBsb2NrZWQKCSAgRml4ZXMgJ0F0dGVtcHQgdG8gdW5sb2NrIG11dGV4IHRoYXQgd2FzIG5vdCBsb2NrZWQnCgkgIHdhcm5pbmcgd2l0aCBuZXdlciBHTGlicyB3aGVuIHNpbmsgaXMgc2h1dCBkb3duIGluCgkgIGNlcnRhaW4gc2l0dWF0aW9ucy4gVHJpZ2dlcmVkIGJ5IHRoZSBkZWNvZGViaW4KCSAgdGVzdF9yZXVzZV93aXRob3V0X2RlY29kZXJzIHVuaXQgdGVzdCBpbiAtYmFzZQoJICBzb21ldGltZXMsIGVzcC4gb24gc2xvd2VyIG1hY2hpbmVzLgoKMjAxNC0xMC0yMiAxODoyNToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZvciBuZXcgX2dldF90eXBlKCkgZnVuY3Rpb24gZm9yIEdzdENvbnRyb2xQb2ludAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NjE2CgoyMDE0LTA5LTI5IDIxOjEwOjE0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJICB0aW1lZHZhbHVlY29udHJvbHNvdXJjZTogQWRkIHNvbWUgc2lnbmFscyBhYm91dCB2YWx1ZXMgY2hhbmdlcwoJICBJbiBvcmRlciBmb3IgdXNlciB0byBiZSBhYmxlIHRvIHRyYWNrIGNoYW5nZXMgaW4gdGhlIHZhbHVlIHNldCBpbgoJICBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZSB0aGUgZm9sbG93aW5nIHNpZ25hbHMgaGF2ZSBiZWVuIGFkZGVkOgoJICAqIHZhbHVlLWFkZGVkCgkgICogdmFsdWUtcmVtb3ZlZAoJICAqIHZhbHVlLWNoYW5nZWQKCSAgVG8gYmUgYWJsZSB0byB1c2UgYSBHc3RDb250cm9sUG9pbnQgdG8gYmUgbWFyc2hhbGxlZCBpbnRvIHRoZSBzaWduYWxzLAoJICB0aGUgR3N0Q29udHJvbFBvaW50IHN0cnVjdHVyZSBpcyBub3cgcmVnaXN0ZXJkIGFzIGEgR0JveGVkIHR5cGUuCgkgIE5ldyBBUEk6CgkgIH5+fn5+fn4KCSAgKiBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZTo6dmFsdWUtYWRkZWQKCSAgKiBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZTo6dmFsdWUtcmVtb3ZlZAoJICAqIEdzdFRpbWVkVmFsdWVDb250cm9sU291cmNlOjp2YWx1ZS1hZGRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NjE2CgoyMDE0LTEwLTIxIDEzOjAxOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBhOGM4OTM5IHRvIDg0ZDA2Y2QKCjIwMTQtMTAtMjEgMTI6MTg6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiByZW1vdmUgZHVwbGljYXRlIGdzdF9tZXNzYWdlX2dldF90eXBlKCkgaW4gaW5pdAoJICBTcG90dGVkIGJ5OiBKYW4gU3RlZmZlbnMKCjIwMTQtMTAtMjEgMTI6NTc6NDUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBSRUFETUU6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmU3NTQ5OCB0byBhOGM4OTM5CgoyMDE0LTEwLTIwIDE2OjM5OjM4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogaW5jbHVkZSB0aGUgYWN0dWFsIGRlbHRhIGluIHRoZSBtZXNzYWdlCgkgIEluY2x1ZGluZyB0aGUgYWN0dWFsIGRlbHRhIGluIHRoZSBtZXNzYWdlIG1ha2VzIGl0IGVhc3kgdG8gc2VlLCBpZiB0aGUgbmV3CgkgIGJ1ZmZlciBpcyBiZWhpbmQgb3IgYWhlYWQgYW5kIGhvdyBtdWNoLgoKMjAxNC0xMC0xOCAxODo0Mzo0MyArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFRpZHkgaW5pdGlhbGlzYXRpb24KCSAgVXNlIHNvbWUgbWFjcm9zIHRvIG1ha2Ugb3VyIHZhbHVlIGZ1bmN0aW9ucyBzZXR1cCBhIGJpdAoJICB0aWRpZXIsIGFuZCBtaWNyby1vcHRpbWlzZSBhIGZldyByZWFsbG9jcyBieSBzZXR0aW5nIGFuCgkgIGluaXRpYWwgc2l6ZSBmb3IgdGhlIGdsb2JhbCB0eXBlIGFycmF5cy4KCjIwMTQtMTAtMTggMTc6Mjc6MDQgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluZGVudDoKCSAgZ3N0LWluZGVudDogUnVuIGluZGVudCB0d2ljZS4gT25jZSBpcyBub3QgaWRlbXBvdGVudCwgdHdpY2Ugc2VlbXMgdG8gYmUuCgoyMDE0LTEwLTE2IDEwOjEzOjE0ICswNDAwICBBbmRyZWkgU2FyYWtlZXYgPHNhcmFrdXNoYUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogV2FrZSB1cCBhbnkgd2FpdGluZyBzdHJlYW1zIGlmIHRoZSBjdXJyZW50IG9uZSBnb2VzIEVPUwoJICBPdGhlcndpc2Ugd2UgbWlnaHQgaGF2ZSB1bmxpbmtlZCBzdHJlYW1zIHdhaXRpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOTgKCjIwMTQtMTAtMTcgMTI6NDE6MDQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgdHlwZWZpbmQ6IHNpbXBsaWZ5IHJlZ2lzdHJhdGlvbiBjb2RlCgkgIFJlbW92ZSBhIHVzZWxlc3MgYXNzZXJ0ICh3ZSBqdXN0IGluc3RhbnRpYXRlZCB0aGlzIHR5cGUpLiBEcm9wIHRoZSBmcmVlJ2luZyBvZgoJICB0aGUgZXh0ZW5zaW9uIGFycmF5LiBBcyB3ZSBqdXN0IGNyZWF0ZWQgdGhlIGluc3RhbmNlIHRoaXMgaXMgYWx3YXlzIE5VTEwuCgoyMDE0LTEwLTE2IDEwOjU1OjM2ICswMjAwICBGZWxpeCBTY2h3YXJ6IDxmZWxpeC5zY2h3YXJ6QG9zcy5zY2h3YXJ6LmV1PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcW9zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgIGRvY3M6IHB3ZDogZml4IHR5cG9zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg2MTIKCjIwMTQtMTAtMTEgMTk6Mjg6MjEgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3Auc3ZlbnNzb25AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogQWRkIGEgdGVzdCBmb3IgcmVtb3ZpbmcgYSBidXMgd2F0Y2gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNTE5NQoKMjAxNC0wOC0xOSAyMzoyODo1MiArMDIwMCAgTGludXMgU3ZlbnNzb24gPGxpbnVzcC5zdmVuc3NvbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVzOiBBZGQgYSBmdW5jdGlvbiB0byByZW1vdmUgYSBidXMgd2F0Y2gKCSAgSWYgYSBidXMgd2F0Y2ggaXMgYWRkZWQgdG8gdGhlIG5vbiBkZWZhdWx0IG1haW4gY29udGV4dCBpdCdzIG5vdAoJICBwb3NzaWJsZSB0byByZW1vdmUgaXQgdXNpbmcgZ19zb3VyY2VfcmVtb3ZlKCkuCgkgIEZpeGVzOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MTk1CgoyMDE0LTEwLTA4IDIyOjUxOjU2ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBVcGRhdGUgR3N0UU9TVHlwZSBkb2N1bWVudGF0aW9uIGEgYml0CgkgIENvcnJlY3Rpb24gZm9yIHdobyBpcyBwcm9kdWNpbmcgZGF0YSB0b28gZmFzdCwgYW5kIHNvbWUgb3RoZXIgbWlub3IKCSAgY2xhcmlmaWNhdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxNjYKCjIwMTQtMTAtMDggMTY6MDM6MjAgKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtYWxsb2NhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkgIGRvY3M6IHB3ZzogZml4IHR3byB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTUzCgoyMDE0LTEwLTA4IDE1OjM3OjM3ICswMjAwICBHdWlsbGF1bWUgRGVzbW90dGVzIDxndWlsbGF1bWUuZGVzbW90dGVzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgZG9jczogcHdnOiBmaXggdHlwbyBpbiAnRHluYW1pYyBuZWdvdGlhdGlvbicgc2VjdGlvbgoJICBUaGUgcG9pbnQgb2YgdGhpcyBleGFtcGxlIGlzIHRvIHNob3cgaG93IHRvIHNldCBjYXBzCgkgIG9uIHRoZSBzb3VyY2UgcGFkIG9uY2UgaXQgaGFzIGJlZW4gc2V0IG9uIHRoZSBzaW5rIHBhZC4KCSAgU28sIGluIHBhc3N0aHJvdWdoIG1vZGUsIHRoZSBjYXBzIGlzIGp1c3QgY29waWVkIHRvIHRoZQoJICBzb3VyY2UgcGFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTUzCgoyMDE0LTEwLTA4IDA5OjM3OjQxIC0wNzAwICBBbGVpeCBDb25jaGlsbG8gRmxhcXXDqSA8YWxlaXhAb2Jsb25nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBkb24ndCBsb2NrIG11bHRpcXVldWUgd2hlbiBwdXNoaW5nIHNlcmlhbGl6ZWQgcXVlcmllcwoJICBJZiB3ZSBhcmUgcHVzaGluZyBhIHNlcmlhbGl6ZWQgcXVlcnkgaW50byBhIHF1ZXVlIGFuZCB0aGUgcXVldWUgaXMKCSAgZmlsbGVkLCB3ZSB3aWxsIGVuZCBpbiBhIGRlYWRsb2NrLiBXZSBuZWVkIHRvIHJlbGVhc2UgdGhlIGxvY2sgYmVmb3JlCgkgIHB1c2hpbmcgYW5kIGFjcXVpcmUgaXQgYWdhaW4gYWZ0ZXJ3YXJkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3Nzk0CgoyMDE0LTEwLTA4IDAxOjMzOjUxICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVzZSBHU1RfUFRSX0ZPUk1BVCBpbiBkZWJ1ZyB0byBvdXRwdXQgYnVmZmVyIGRldGFpbHMKCSAgVXNlICVHU1RfUFRSX0ZPUk1BVCBpbnN0ZWFkIG9mICVwIGluIGRlYnVnIG91dHB1dCBzbyBhbGwgdGhlIGJ1ZmZlcgoJICBkZXRhaWxzIGFyZSBvdXRwdXQKCjIwMTQtMTAtMDYgMTM6Mzg6MjEgKzAyMDAgIE5pY29sYXMgSHVldCA8bmljb2xhcy5odWV0QHBhcnJvdC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGZpeCBtdWx0aS10aHJlYWQgZW50cnkgc3RhdHVzIGlzc3VlCgkgIFJ1bm5pbmcgdHdvIHRocmVhZHMsIG9uZSBleGVjdXRpbmcgdGhlIHRpbWVyIGFuZCBvbmUgdW5zY2hlZHVsaW5nIGl0LCB0aGUKCSAgdW5zY2hlZHVsZWQgc3RhdHVzIHNldCBieSB0aGUgc2Vjb25kIHRocmVhZCBpcyBzb21ldGltZXMgb3ZlcndyaXR0ZW4gYnkgdGhlCgkgIGZpcnN0IG9uZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzk5OQoKMjAxNC0xMC0wMyAxNDowNDo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggY29tcGlsYXRpb24KCjIwMTQtMTAtMDMgMTQ6NDQ6NDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IGV4dHJhY3Qgc29tZSBjb21tb24gY29kZSBpbnRvIGhlbHBlcnMKCjIwMTQtMTAtMDMgMTQ6MDE6NTkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IHNtYWxsIGNvZGUgY2xlYW51cHMKCSAgUmVuYW1lIFRJTUVTVEFNUCAtPiBQVFMuIE1vdmUgYSB2YXIgZG93biB0byB0aGUgc2NvcGUgd2hlcmUgaXQgaXMgdXNlZC4gVXNlCgkgIGdfcXVldWVfZnJlZV9mdWxsKCkuCgoyMDE0LTEwLTAzIDEzOjQ3OjQyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggcHJpbnRmIGZvcm1hdAoJICBUaGUgcGFkY291bnQgaXMgdWludC4gQWxzbyBhZGQgY29tbWVudHMgdG8gdGhlIGluc3RhbmNlIHZhcnMuCgoyMDE0LTEwLTAyIDAzOjMwOjI0ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBsZWFrIGNhcHMgaW4gZ3N0X2Jhc2VfcGFyc2VfcHJvY2Vzc19zdHJlYW1oZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzc2MgoKMjAxNC0xMC0wMyAxMzoxNDoyNSArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBiYXNlcGFyc2U6IHNldF9zaW5rX2NhcHMgdmZ1bmMgc2hvdWxkJ3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIGNhcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzc2MgoKMjAxNC0xMC0wMyAwOTo1NzozNyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpcy5iZ0BzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBtYXJrIHRoZSBwYXR0ZXJuIHByb3BlcnR5IGFzIHVudXNlZAoJICBSZXZlcnQgdGhlIHByZXZpb3VzIGNvbW1pdCB3aGljaCByZW1vdmVzIHRoZSBwYXR0ZXJuIHByb3BlcnR5IG9mIGZha2VzcmMgYmVjYXVzZQoJICBkb2luZyBzbyB3aWxsIGJyZWFrIEFCSS4gQnJpbmdpbmcgdGhlIHByb3BlcnR5IGJhY2sgYnV0IG1hcmtpbmcgaXQgYXMgdW51c2VkCgkgIGluIHRoZSBwcm9wZXJ0eSBzdHJpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc2ODMKCjIwMTQtMTAtMDMgMDk6MDE6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogZG9uJ3QgbGVhayBjYXBzIGluIGdzdF9iYXNlX3BhcnNlX3Byb2Nlc3Nfc3RyZWFtaGVhZGVyIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDVlOGI0YmYwODUxODBmN2E0YzdhZTZlYzBmNTI1YmFlYWVkZDRkZjguCgkgIFRoaXMgY2F1c2VzIHJlZmNvdW50aW5nIGNyaXRpY2FscyBpbiB0aGUgYmFzZXBhcnNlIHVuaXQgdGVzdC4KCjIwMTQtMTAtMDIgMTM6NDU6MzQgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXMuYmdAc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIGZha2VzcmM6IHJlbW92aW5nIHVudXNlZCBwYXR0ZXJuIG9wdGlvbgoJICBFdmVudGhvdWdoIHRoZSAicGF0dGVybiIgcHJvcGVydHkgb2YgZmFrZXNyYyBjYW4gYmUgc2V0LCBpdCBpcyBuZXZlciB1c2VkLiBUaGUKCSAgb25seSBwYXR0ZXJuIHN1cHBvcnRlZCBpcyB0aGUgZGVmYXVsdCAweDAwIC0+IDB4ZmYsIGFuZCBpZiBhIHBhdHRlcm4gaXMgc2V0IGJ5CgkgIHRoZSB1c2VyIGl0IGlzIGlnbm9yZWQuIFJlbW92aW5nIHRoZSB1bnVzZWQgcHJvcGVydHkgYW5kIHZhcmlhYmxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NjgzCgoyMDE0LTEwLTAyIDE0OjU1OjIyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogQWRkIG1pc3NpbmcgYnJlYWsgaW4gc3dpdGNoCgoyMDE0LTEwLTAyIDExOjAwOjMyICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogdXBkYXRlIHNlZ21lbnQgcG9zaXRpb24gb24gR0FQIGV2ZW50cyB0byBjYWxjdWxhdGUgbGV2ZWxzIHByb3Blcmx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc0OTgKCjIwMTQtMTAtMDIgMTA6NTc6NDMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVwZGF0ZSBzZWdtZW50IHBvc2l0aW9uIG9uIEdBUCBldmVudHMgdG8gY2FsY3VsYXRlIGxldmVscyBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDk4CgoyMDE0LTA5LTI3IDIwOjEwOjM0ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHVwZGF0ZSBzZWdtZW50IHBvc2l0aW9uIG9uIEdBUCBldmVudHMgdG8gY2FsY3VsYXRlIGxldmVscyBwcm9wZXJseQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3NDk4CgoyMDE0LTEwLTAyIDAzOjMwOjI0ICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCBsZWFrIGNhcHMgaW4gZ3N0X2Jhc2VfcGFyc2VfcHJvY2Vzc19zdHJlYW1oZWFkZXIKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzc2MgoKMjAxNC0xMC0wMiAxMDoxMzoyOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBQdXNoIHBlbmRpbmcgZXZlbnRzIGJlZm9yZSBhIGJ1ZmZlciBhbHNvIGlmIHVwc3RyZWFtIG5ldmVyIGNvbmZpZ3VyZWQgY2FwcyBidXQgd2UgaGF2ZSBzcmNwYWQgY2FwcyBhbHJlYWR5CgkgIE90aGVyd2lzZSB3ZSBuZXZlciBzZW5kIHBlbmRpbmcgZXZlbnRzIGRvd25zdHJlYW0gdGhhdCBhcnJpdmUgYWZ0ZXIgd2UKCSAgY29uZmlndXJlZCBjYXBzIG9uIHRoZSBzcmNwYWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc3MzUKCjIwMTQtMDktMjkgMTc6NDg6MjkgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRG9uJ3QgdW5jb25kaXRpb25hbGx5IHVzZSBnX2xpc3RfY29weV9kZWVwKCkKCSAgV2UgZG9uJ3QgZGVwZW5kIG9uIEdMaWIgMi4zNCB5ZXQgYW5kIGp1c3QgZm9yIHRoaXMgc2VlbXMgYSBiaXQgdXNlbGVzcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzU4NAoKMjAxNC0wOS0yOSAxNjoyMjo0NyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEluY2x1ZGUgb3VyIG93biBCU0QgbGljZW5zZWQgY29weSBvZiBzdHJjYXNlc3RyKCkgZm9yIFdpbmRvd3MgYW5kIG90aGVycwoKMjAxNC0wOS0yOSAxNTo1NDozNyArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgdXJpOiBGaXggY29tcGlsZXIgd2FybmluZ3Mgd2l0aCBnY2MKCSAgVGhlc2UgYXJlIGFjdHVhbGx5IG5vdCB0cnVlLgoJICBnc3R1cmkuYzogSW4gZnVuY3Rpb24gJ19nc3RfdXJpX3N0cmluZ190b190YWJsZS5jb25zdHByb3AnOgoJICBnc3R1cmkuYzoxMzE2OjI3OiBlcnJvcjogJ3BjdF9rdl9zZXAnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdlcnJvcj1tYXliZS11bmluaXRpYWxpemVkXQoJICBmb3IgKG5leHRfc2VwID0gc3RyY2FzZXN0ciAodmFsdWUsIHBjdF9rdl9zZXApOyBuZXh0X3NlcDsKCSAgXgoJICBnc3R1cmkuYzoxMjgzOjI0OiBlcnJvcjogJ3BjdF9wYXJ0X3NlcCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV2Vycm9yPW1heWJlLXVuaW5pdGlhbGl6ZWRdCgkgIG5leHRfc2VwID0gc3RyY2FzZXN0ciAobmV4dF9zZXAgKyAxLCBwY3RfcGFydF9zZXApKSB7CgkgIF4KCjIwMTQtMDktMjkgMTI6MTk6MzUgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogRml4IG1lbW9yeSBsZWFrIGluIGdzdF91cmlfam9pbigpCgkgIFRoZSBtZXJnZWQgcGF0aCBzZWdtZW50cyBhcmUgYSBkZWVwLWNvcGllZCBsaXN0IGFuZCB3ZSBuZWVkIHRvIGZyZWUgdGhlCgkgIGNvbnRhaW5lZCBzdHJpbmdzIHRvbyBpbnN0ZWFkIG9mIGp1c3QgdGhlIGxpc3Qgbm9kZXMgdGhlbXNlbHZlcy4KCjIwMTQtMDctMzEgMjI6MTg6NTMgKzAxMDAgIERhdmlkIFdhcmluZyA8ZGF2aWQud2FyaW5nQHJkLmJiYy5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RVcmk6IEFkZCBHc3RVcmkgbWluaW9iamVjdCB0byBoYW5kbGUgVVJJcyBpbiBhbiBSRkMgMzk4NiBjb21wbGlhbnQgZmFzaGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1MjIxCgoyMDE0LTA5LTI3IDEzOjU3OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IGFkZCBnc3QtcnBpY2Ftc3JjIHRvIGdzdC11bmluc3RhbGxlZAoKMjAxNC0wOS0yNSAyMToyMTowOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGZpeG1lOiBidW1wIGxlZnRvdmVyIDAuMTEgZml4bWUgY29tbWVudHMKCjIwMTQtMDktMjUgMjE6MDQ6MjMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6ICduZXdzZWdtZW50JyB0byAnc2VnbWVudCcgaW4gdGhlIGRvY3MKCSAgQnJpbmdzIHRoZSBhcGktZG9jcyBpbiBzeW5jIHdpdGggdGhlIDEuMCBhcGkgcmVuYW1lLgoKMjAxNC0wOS0yNSAyMDoyMzozMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBtb3ZlIHRoZSBxdWljayByZXR1cm4gdXAKCSAgRG9uJ3QgYXNzaWduIGxvY2FsIHZhcnMgaWYgd2Ugc2tpcCBhbnl3YXkuIEFkZCBsb2dnaW5nIGZvciBmYWlsdXJlIGNvbmRpdGlvCgoyMDE0LTA5LTI1IDE5OjAxOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSAgdGVzdHM6IHBhcmFsbGVsaXNlICdtYWtlIHZhbGdyaW5kJwoJICBVc2UgJChNQUtFKSBpbnN0ZWFkIG9mICdtYWtlJyBpbnNpZGUgdGhlIE1ha2VmaWxlLAoJICBvdGhlcndpc2UgdGhlIG1ha2Ugd2lsbCBydW4gYXMgaWYgLWoxIGhhZCBiZWVuCgkgIHNwZWNpZmllZCBhbmQgY29tcGxhaW4gYWJvdXQgdGhlIGpvYiBzZXJ2ZXIgbm90CgkgIGJlaW5nIGF2YWlsYWJsZSwgYW5kIHdpdGggJChNQUtFKSBpbiBpbmhlcml0cyB0aGUKCSAgcGFyZW50IG1ha2UncyBzZXR0aW5ncyBpdCBzZWVtcy4KCSAgVXBncmFkZSBjb21tb24gc3VibW9kdWxlIGZvciBwYXJhbGxlbCBjaGVjay12YWxncmluZC4KCSAgTGV0IHRoaXMgc2V0dGxlIGEgYml0IGJlZm9yZSB1cGdyYWRpbmcgdGhlIG90aGVyIG1vZHVsZXMuCgoyMDE0LTA5LTI1IDE4OjU3OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZQoJICBJdCdzIHNvcnRlZC4gSWYgaXQncyB1bnNvcnRlZCwgbWFrZSBjaGVjay1leHBvcnRzIGZhaWxzLgoKMjAxNC0wOS0yNSAxODo1NTowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlbW92ZSBjb25mdXNpbmcgd2FybmluZyBhYm91dCBydW5uaW5nIHVuZGVyIHZhbGdyaW5kCgkgIFdlJ3JlIG5vdCBhY3R1YWxseSBkb2luZyBhbnl0aGluZyBkaWZmZXJlbnRseSBhbnl3aGVyZSB3aGVuCgkgIHdlIGRldGVjdCB0aGF0IHdlJ3JlIHJ1bm5pbmcgdW5kZXIgdmFsZ3JpbmQsIHNvIGxldCdzIG5vdAoJICBwcmludCB0aGF0IGNvbmZ1c2luZyBtZXNzYWdlIHRoYXQgbWFrZXMgcGVvcGxlIHdvbmRlciBob3cKCSAgdGhleSBjYW4gc3dpdGNoIGl0IG9mZiBzbyB0aGV5IGNhbiB2YWxncmluZCB0aGUgbm9ybWFsCgkgIGNvZGUgcGF0aHMuIFNlZWluZyB0aGF0IHdlJ3JlIG5vdCBkb2luZyB0aGF0IG5vciBoYXZlIGRvbmUKCSAgc28gaW4gdGhlIGxhc3QgMTAgeWVhcnMgd2UgbWlnaHQganVzdCBhcyB3ZWxsIHJlbW92ZSB0aGUKCSAgZW50aXJlIGNoZWNrIGFjdHVhbGx5LgoKMjAxNC0wOS0yNSAxNjoyMTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBmaXggY2FwcyBsZWFrIGluIGJhc2VwYXJzZSB1bml0IHRlc3QKCjIwMTQtMDktMjUgMTQ6NTQ6MjMgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9mbG93Y29tYmluZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBmbG93Y29tYmluZXI6IGFkZCBhIGdzdF9mbG93X2NvbWJpbmVyX2NsZWFyKCkgbWV0aG9kCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzczNTkKCSAgQVBJOiBnc3RfZmxvd19jb21iaW5lcl9jbGVhcigpCgoyMDE0LTA5LTI0IDEwOjExOjU0ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogSGFuZGxlIGdzdC1weXRob24gaW4gZ3N0LXVuaW5zdGFsbGVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkwODIKCjIwMTQtMDYtMDMgMTQ6MjM6MzAgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBSZW1vdmUgRU9TIGV2ZW50IGZyb20gcGVuZGluZ19ldmVudCBsaXN0IG9uIEZMVVNIX1NUT1AKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTg2OAoKMjAxNC0wOS0yMiAxNDoyNzowNSArMDEwMCAgV2lsbGlhbSBNYW5sZXkgPHdpbGxAd2lsbGlhbW1hbmxleS5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGRvY3M6IEZpeCBHc3RCdWZmZXIgdHlwbyAibWVtb3J5IGJvY2siIC0+ICJtZW1vcnkgYmxvY2siCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzcxMTcKCjIwMTQtMDktMjIgMTc6Mjc6MzEgKzAxMDAgIFdpbGxpYW0gTWFubGV5IDx3aWxsQHdpbGxpYW1tYW5sZXkubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkb2NzOiBJbXByb3ZlIGdzdF9idWZmZXJfZ2V0X21ldGEoKSB0byBjbGVhciB1cCBjb25mdXNpb24KCSAgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGV4aXN0ZW5jZSBvZiBgZ3N0X2J1ZmZlcl9nZXRfbWV0YWAgYXMgaXQgc3VnZ2VzdGVkCgkgIHRvIG1lIHRoYXQgeW91IHNob3VsZCBvbmx5IGF0dGFjaCBvbmUgb2YgYW55IHR5cGUgb2YgR3N0TWV0YSB0byBhIGJ1ZmZlci4KCSAgSXQncyBwZXJmZWN0bHkgZmluZSB0byBhdHRhY2ggbXVsdGlwbGUgZnJvbSBhIHNpbmdsZSBBUEkgc28gSSdtCgkgIGRvY3VtZW50aW5nIHRoYXQgaGVyZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNzEyOQoKMjAxNC0wOS0yMiAxOTowNTozMiArMDIwMCAgTWFyY2luIEtvbG55IDxtYXJjaW4ua29sbnlAZmx5dHJvbmljLnBsPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkgIGRhdGV0aW1lOiBhZGRlZCBtaXNzaW5nIGluY2x1ZGUgZGlyZWN0aXZlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3MTMzCgoyMDE0LTA5LTIzIDE0OjMxOjI5ICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEbyBub3QgZm9yZ2V0IHRvIHJlbGVhc2UgdGhlIFFVRVVFX0xPQ0sgaW4gdGhlIG91dF9mbG93X2Vycm9yIHBhdGgKCSAgQXZvaWRpbmcgZGVhZGxvY2tzIQoKMjAxNC0wOS0yMyAxMjo1MzoxOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkb2NzOiBmaXggYSBzbWFsbCBjb250cmFkaXRpb24gaW4gdGhlIGRvY3MKCSAgVGhlIHZtZXRob2QgZ2V0X3NpemUoKSBzaGFsbCByZXR1cm4gdGhlIHNpemUgaW4gJ2Zvcm1hdCcgYXMgY29uZmlndXJlZCBieQoJICBfc2V0X2Zvcm1hdCgpLgoKMjAxNC0wOS0yMiAwOTozMzowNCArMDIwMCAgVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRG8gbm90IGhvbGQgR1NUX1FVRVVFX0xPQ0sgd2hpbGUgcG9zdGluZyBFUlJPUiBtZXNzYWdlcwoJICBUaGlzIG1pZ2h0IGNyZWF0ZSBkZWFkbG9ja3MgYW5kIHdlIG5lZWQgdG8gYXZvaWQgaG9sZGluZyBlbGVtZW50CgkgIHNwZWNpZmljIGxvY2sgd2hpbGUgcG9zdGluZyBtZXNzYWdlcwoJICBGb3IgZXhhbXBsZSBhIGRlYWRsb2NrIHdpbGwgaGFwcGVuIGlmIHdoaWxlIHBvc3RpbmcgdGhlIG1lc3NhZ2UsCgkgIHNvbWVvbmUgY29ubmVjdGVkIG9uIHRoZSBidXMgKHN5bmMpIHRyaWVzIHRvIERPVCB0aGUgcGlwZWxpbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzcxMDIKCjIwMTQtMDktMTkgMTI6MDI6NDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogZG8gbm90IHBvc3QgYnVmZmVyaW5nIG1lc3NhZ2VzIGhvbGRpbmcgdGhlIGxvY2sKCSAgSXQgbWlnaHQgY2F1c2UgZGVhZGxvY2tzIHRvIHBvc3QgbWVzc2FnZXMgd2hpbGUgaG9sZGluZyB0aGUgcXVldWUyCgkgIGxvY2suIFRvIGF2b2lkIHRoaXMgYSBuZXcgYm9vbGVhbiBmbGFnIGlzIHNldCB3aGVuZXZlciBhIG5ldwoJICBidWZmZXJpbmcgcGVyY2VudCBpcyBmb3VuZC4gVGhlIG1lc3NhZ2UgaXMgcG9zdGVkIGFmdGVyIHRoZSBsb2NrCgkgIGlzIHJlbGVhc2VkLgoJICBUbyBtYWtlIHN1cmUgdGhlIGJ1ZmZlcmluZyBtZXNzYWdlcyBhcmUgcG9zdGVkIGluIHRoZSByaWdodCBvcmRlciwgbWVzc2FnZXMKCSAgYXJlIHBvc3RlZCBob2xkaW5nIGFub3RoZXIgbG9jay4gVGhpcyBwcmV2ZW50cyAyIHRocmVhZHMgdHJ5aW5nIHRvIHBvc3QKCSAgbWVzc2FnZXMgYXQgdGhlIHNhbWUgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjk2OQoKMjAxNC0wOS0xOSAwOTo0MjoxMCArMDUzMCAgUmF2aSBLaXJhbiBLIE4gPHJhdmkua2lyYW5Ac2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIGdzdHVyaTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNvZGUKCSAgZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkoKSBmdW5jdGlvbiBoYXMgbmV3X3VyaSwgbG9jYXRpb24gYW5kIGNvbG9uCgkgIGFyZSBub3QgbmVjZXNzYXJ5LCB0aGV5IGNhbiBiZSByZW1vdmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2ODc3CgoyMDE0LTA5LTE5IDAwOjMzOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IHB3ZzogZml4IHNvbWUgbGlua3MgdG8gdGhlIEFQSSBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY3NjIKCjIwMTQtMDktMTggMTg6NTU6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmVtb3ZlIEZJWE1FCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU4NzgKCjIwMTQtMDktMTcgMjE6NDk6MTggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRml4IHNwZWxsaW5nIGVycm9yCgkgIFRoYW5rIHRvIEFkcmlhbiBPd2VuIGZvciByZXBvcnRpbmcgdGhpcyBlcnJvci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjgzOQoKMjAxNC0wOS0xNyAxNzoxNzoxMCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogZG8gbm90IGxlYWsgc3RpY2t5IGV2ZW50cyBpbiBmbHVzaF9zdG9wCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzY4MTMKCjIwMTQtMDktMTIgMTQ6NDI6MjMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhdm9pZCBnbG9iYWwgdmFyaWFibGUgZm9yIGxvZ19maWxlCgkgIFVzZSB1c2VyX2RhdGEgdG8gcGFzcyB0aGUgbG9nX2ZpbGUgaGFuZGxlIHRvIHRoZSBsb2dnZXItZnVuY3Rpb24uCgkgIElmIG9uZSB3YW50cyB0byBjaGFuZ2UgdGhlIGxvZyB0YXJnZXQgKGUuZy4gR1NUX0RFQlVHX0ZJTEUpLCBzaW1wbHkgY2FsbAoJICBnc3RfZGVidWdfcmVtb3ZlX2xvZ19mdW5jdGlvbigpIGFuZCByZS1hZGQgdGhlIGhhbmRsZXIgd2l0aCB0aGUgbmV3IGxvZy10YXJnZXQKCSAgdXNpbmcgZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24gKCkuCgoyMDE0LTA5LTE2IDEzOjQ4OjE4ICswMjAwICBPZ255YW4gVG9uY2hldiA8b2dueWFuQGF4aXMuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgYW5ub3RhdGlvbnMgdG8gZ3N0X2V2ZW50X3BhcnNlX3RvY19zZWxlY3QoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NzM5CgoyMDE0LTA5LTExIDE4OjAxOjU4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGRvIG5vdCBwb3N0IG1lc3NhZ2VzIGhvbGRpbmcgdGhlIGxvY2sKCSAgSXQgbWlnaHQgY2F1c2UgZGVhZGxvY2tzIHRvIHBvc3QgbWVzc2FnZXMgd2hpbGUgaG9sZGluZyB0aGUgbXVsdGlxdWV1ZQoJICBsb2NrLiBUbyBhdm9pZCB0aGlzIGEgbmV3IGJvb2xlYW4gZmxhZyBpcyBzZXQgd2hlbmV2ZXIgYSBuZXcgYnVmZmVyaW5nIHBlcmNlbnQKCSAgaXMgZm91bmQuIFRoZSBtZXNzYWdlIGlzIHBvc3RlZCBhZnRlciB0aGUgbG9jayBjYW4gYmUgcmVsZWFzZWQuCgkgIFRvIG1ha2Ugc3VyZSB0aGUgYnVmZmVyaW5nIG1lc3NhZ2VzIGFyZSBwb3N0ZWQgaW4gdGhlIHJpZ2h0IG9yZGVyLCBtZXNzYWdlcwoJICBhcmUgcG9zdGVkIGhvbGRpbmcgYW5vdGhlciBsb2NrLiBUaGlzIHByZXZlbnRzIDIgdGhyZWFkcyB0cnlpbmcgdG8gcG9zdAoJICBtZXNzYWdlcyBhdCB0aGUgc2FtZSB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2Mjk1CgoyMDE0LTA5LTE2IDE2OjA3OjQwICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICBkb2NzOiBmaXggdHlwbwoKMjAxNC0wOS0xNiAxMjoxNzo0OCArMDIwMCAgT2dueWFuIFRvbmNoZXYgPG9nbnlhbkBheGlzLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogQWRkIGFubm90YXRpb25zIHRvIGdzdF9xdWVyeV9hZGRfYWxsb2NhdGlvbl9wb29sKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjczNgoKMjAxNC0wOS0xNSAxNjozODoxNyArMDIwMCAgQXVyw6lsaWVuIFphbmVsbGkgPGF1cmVsaWVuLnphbmVsbGlAcGFycm90LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgcmVmZXJlbmNlIGluIHNldF9hbGxvY2F0aW9uIHJhdGhlciB0aGFuIGluIHByZXBhcmVfYWxsb2NhdGlvbgoJICBPdGhlcndpc2Ugd2UgY2FuIGZvcmdldCB0byB1bnJlZiBvYmplY3RzIGluIGVycm9yIGNhc2VzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NjgwCgoyMDE0LTA5LTE1IDEzOjA2OjQwICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IFVzZSB0aGUgbmFtZSBwYXJhbWV0ZXIgb2YgZ3N0X2NoZWNrX3NldHVwX3NyY19wYWRfYnlfbmFtZSgpIGFuZCB0aGUgc2luayB2YXJpYW50CgkgIFRoaXMgd2FzIGhhcmRjb2RlZCB0byAic2luayIgLyAic3JjIiBieSBhY2NpZGVudCBpbiBwcmV2aW91cyByZWZhY3RvcmluZy4KCjIwMTQtMDktMTMgMjA6MTI6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgY29yZWVsZW1lbnRzOiBtYXJrIHByb3BlcnRpZXMgd2l0aCBNVVRBQkxFX1BMQVlJTkcKCjIwMTQtMDktMTEgMTU6NTI6MzIgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGdub21lLm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWRkIGEgZnVuY3Rpb24gdG8gY2hlY2sgZGVzdHJ1Y3Rpb24gb2Ygb2JqZWN0cwoJICBBZGQgYSBtZXRob2QgbGV0dGluZyBwZW9wbGUgdG8gZW5zdXJlIHRoYXQgdW5yZWZmaW5nIG9uZSBvYmplY3QKCSAgbGVhZHMgdG8gaXRzIGRlc3RydWN0aW9uLCBhbmQgcG9zc2libHkgdGhlIGRlc3RydWN0aW9uIG9mIG1vcmUgb2JqZWN0CgkgICh0aGluayBkZXN0cnVjdGlvbiBvZiBhIEdzdEJpbiBldGMuLi4pLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2NDc3CgoyMDE0LTA5LTEyIDE0OjEwOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBkb24ndCBsaXN0IHBhZCBmdW5jdGlvbnMKCSAgRG9uJ3QgcHJpbnQgYWxsIHRoZSBkaWZmZXJlbnQgcGFkIGZ1bmN0aW9ucywgaXQncyBqdXN0CgkgIGNvbmZ1c2luZyBhbmQgbm8gb25lIGhhcyBldmVyIG5lZWRlZCB0byBrbm93IHRoaXMgZm9yCgkgIGFueXRoaW5nIGV2ZXIgYW55d2F5LCBpdCdzIGp1c3QgdXNlbGVzcyBpbmZvcm1hdGlvbi4KCSAgQmVzaWRlcywgd2UgYWxzbyBsYWJlbCB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgYXMKCSAgJ2N1c3RvbScgaW1wbGVtZW50YXRpb25zICh0aGUgY29kZSB0aGF0IHRyaWVzIHRvCgkgIHByZXZlbnQgdGhhdCBkb2Vzbid0IGFjdHVhbGx5IHdvcmsgaXQgc2VlbXMpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM2Mzc3CgoyMDE0LTA5LTEyIDE1OjIyOjE5ICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE1ha2Ugc3VyZSB0aGUgYnVmZmVyIHRvIGdldC9wdWxsX3JhbmdlKCkgaGFzIGF0IGxlYXN0IHRoZSByZXF1ZXN0ZWQgc2l6ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1ODYxCgoyMDE0LTA5LTA1IDE4OjM2OjAyICswMDAwICBUaWFnbyA8dGlhZ29rYXRjaXBpc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogQWRkaW5nIGRvY3VtZW50YXRpb24gdG8gdGhlIGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZF9ieV9uYW1lIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQxOTAKCjIwMTQtMDktMTAgMTQ6NTM6MDAgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkZCBhbm5vdGF0aW9ucyB0byBnc3RfcXVlcnlfc2V0X250aF9hbGxvY2F0aW9uX3Bvb2woKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTczNjQyNAoKMjAxNC0wOS0xMSAwOTozNToxNyArMDIwMCAgUsOpbWkgTGVmw6h2cmUgPHJlbWkubGVmZXZyZUBwYXJyb3QuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogZml4IHR5cG8gaW4gZGVzY3JpcHRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczNjQ1NQoKMjAxNC0wOS0wOSAyMDo0MzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbWlub3IgZG9jcyBmaXgKCjIwMTQtMDktMDMgMTc6Mzg6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBmaXggdHlwbyBpbiBzYW1wbGUgY29kZSBpbiBkb2NzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU5NzUKCjIwMTQtMDgtMjUgMTE6MzQ6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogYWRkIGZsdXNoLXN0b3Agb24gaW5hY3RpdmUgcGFkIHRlc3QKCSAgQ2hlY2sgdGhhdCBwdXNoaW5nIGZsdXNoLXN0b3Agb24gYW4gaW5hY3RpdmUgcGFkIGRvZXMgbm90IGNsZWFyIHRoZQoJICBmbHVzaGluZyBmbGFnLgoKMjAxNC0wOC0yMSAxNTo0OToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgYWNjZXB0IGZsdXNoLXN0b3Agb24gaW5hY3RpdmUgcGFkcwoJICBJbmFjdGl2ZSBwYWRzIHNob3VsZCBhdCBhbGwgdGltZXMgaGF2ZSB0aGUgZmx1c2hpbmcgZmxhZyBzZXQuIFRoaXMgbWVhbnMKCSAgdGhhdCB3aGVuIHdlIGdldCBhIGZsdXNoLXN0b3Agb24gYW4gaW5hY3RpdmUgcGFkIHdlIG11c3QgaWdub3JlIGl0LgoJICBPbiBzaW5rcGFkcywgbWFrZSB0aGlzIG1vcmUgZXhwbGljaXQuIFdlIHVzZWQgdG8gbm90IGNsZWFyIHRoZSBmbHVzaAoJICBmbGFnIGJ1dCByZW1vdmUgdGhlIGV2ZW50cyBhbmQgdGhlbiByZXR1cm4gYW4gZXJyb3IgYmVjYXVzZSB0aGUgZmx1c2hpbmcKCSAgZmxhZyB3YXMgc2V0LiBOb3cganVzdCBzaW1wbHkgcmVmdXNlIHRoZSBldmVudCB3aXRob3V0IGRvaW5nIGFueXRoaW5nLgoJICBPbiBzcmNwYWRzLCBjaGVjayB0aGF0IHdlIGFyZSB0cnlpbmcgdG8gcHVzaCBhIGZsdXNoLXN0b3AgZXZlbnQgYW5kCgkgIHJlZnVzZSBpdC4gV2Ugd291bGQgYWxsb3cgdGhpcyBhbmQgbWFyayB0aGUgc3JjcGFkIGFzIG5vbi1mbHVzaGluZwoJICBhbnltb3JlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MzU3CgoyMDE0LTA4LTI3IDE3OjA2OjU3ICswNTMwICBSYXZpIEtpcmFuIEsgTiA8cmF2aS5raXJhbkBzYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBTZW5kIGFsbCBldmVudHMgdG8gYWN0aXZlIHNyYyBwYWQgYW5kIEVPUyB0byBhbGwgc3JjIHBhZHMKCSAgRml4ZXMgdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTgxMQoKMjAxNC0wOC0yOCAxNzoyNDo1NiArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBmaXggdHlwbyBpbiBhZHZhbmNlZC1kYXRhYWNjZXNzLnhtbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1NjA5CgoyMDE0LTA4LTI2IDIwOjE0OjQwICswMjAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBkbyBub3QgdG91Y2ggbWVtb3J5IHRhZyBmbGFnIHdoZW4gY29weWluZyBidWZmZXIgZmxhZ3MKCSAgVGhlIHRhZyBtZW1vcnkgZmxhZyB3aWxsIGJlIHNldCBsYXRlciBpZiB0aGUgbWVtb3J5IGlzIGFsc28gY29waWVkLiBUaGlzCgkgIHBhdGNoIGF2b2lkcyBidWZmZXJzIGJlaW5nIGZyZWVkIG5lZWRsZXNzbHkgaW4gYnVmZmVycG9vbHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU1NzQKCjIwMTQtMDctMTUgMTY6MDY6NDkgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3Auc3ZlbnNzb25AZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGdzdF9idXNfYWRkX3dhdGNoKCkgY2FuIHJldHVybiAwIG9uIGVycm9yCgkgIEZpeGVzOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MTk1CgoyMDE0LTA4LTI1IDEzOjQ0OjMwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ29zc0Bvc2cuc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGhhbmRsZSBzdHJlYW1oZWFkZXJzIGJ5IHByZXBlbmRpbmcgdGhlbSB0byB0aGUgc3RyZWFtCgkgIEFkZCBhIGZpcnN0X2J1ZmZlciBib29sZWFuIHN0YXRlIGZsYWcgdG8gaGF2ZSBiYXNlcGFyc2UgZG8gYWN0aW9ucwoJICBiZWZvcmUgcHVzaGluZyBkYXRhLiBUaGlzIGlzIHVzZWQgdG8gY2hlY2sgdGhlIGNhcHMgZm9yIHN0cmVhbWhlYWRlcgoJICBidWZmZXJzIHRoYXQgYXJlIHByZXBlbmRlZCB0byB0aGUgc3RyZWFtLCBidXQgb25seSBpZiB0aGUgZmlyc3QgYnVmZmVyCgkgIGlzbid0IGFscmVhZHkgbWFya2VkIHdpdGggdGhlIF9IRUFERVIgZmxhZy4gSW4gdGhpcyBjYXNlLCBpdCBpcyBhc3N1bWVkCgkgIHRoYXQgdGhlIF9IRUFERVIgbWFya2VkIGJ1ZmZlciBpcyB0aGUgc2FtZSBhcyB0aGUgc3RyZWFtaGVhZGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MDcwCgoyMDE0LTA4LTI3IDExOjAxOjAxICswMzAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSAgY29uY2F0OiBBbGxvdyBzZWVraW5nIG9uIHRoZSBjdXJyZW50bHkgcGxheWluZyBzdHJlYW0KCSAgVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggdGhlIHN0cmVhbSB0aW1lIHJlcG9ydGluZy4KCjIwMTQtMDgtMjMgMTI6MjQ6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIGctaSAndHJhbnNmZXIgZnVsbCcgYW5ub3RhdGlvbnMgdG8gY2hhaW4gYW5kIGNoYWluX2xpc3QgZnVuY3Rpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzUyMTAKCjIwMTQtMDgtMjIgMTA6MzI6MzggKzAyMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFubm90YXRlIEdzdFBhZEV2ZW50RnVuY3Rpb24gZXZlbnQgd2l0aCAndHJhbnNmZXIgZnVsbCcKCSAgVGhlIGNhbGxiYWNrIGlzIHN1cHBvc2VkIHRvIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBldmVudCBzbwoJICBiZXN0IHRvIGJlIGV4cGxpY2l0IGFib3V0IGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1MjEwCgoyMDE0LTA4LTIwIDEyOjU1OjUxICswMjAwICBMaW51cyBTdmVuc3NvbiA8bGludXNzbkBheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBhZGQgdGVzdCB0aGF0IHRyaWdnZXJzIGRlYWRsb2NrIGluIHN0YXRlIGNoYW5nZSBvZiBxdWV1ZQoJICBXaGVuIHJlY2VpdmluZyBGTEFTSF9TVE9QIGluIGEgc3RhdGUgdHJhbnNpdGlvbiB0byBSRUFEWSwgYSBxdWV1ZQoJICBlbGVtZW50IGNhbiBlbmQgdXAgd2l0aCBhbiBhY3RpdmUgdGFzayB0aGF0IHdpbGwgbmV2ZXIgZW5kLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0Njg4CgoyMDE0LTA4LTIxIDE0OjAyOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogZml4IHJhY2Ugd2hlbiBmbHVzaC1zdG9wIGV2ZW50IGNvbWVzIGluIHdoaWxzdCBzaHV0dGluZyBkb3duCgkgIERvbid0IHJlLXN0YXJ0IHRoZSBxdWV1ZSBwdXNoIHRhc2sgb24gdGhlIHNvdXJjZSBwYWQgd2hlbiBhCgkgIGZsdXNoLXN0b3AgZXZlbnQgY29tZXMgaW4gYW5kIHdlJ3JlIGluIHRoZSBwcm9jZXNzIG9mIHNodXR0aW5nCgkgIGRvd24sIG90aGVyd2lzZSB0aGF0IHRhc2sgd2lsbCBuZXZlciBiZSBzdG9wcGVkIGFnYWluLgoJICBXaGVuIHRoZSBlbGVtZW50IGlzIHNldCB0byBSRUFEWSBzdGF0ZSwgdGhlIHBhZHMgZ2V0IGRlLWFjdGl2YXRlZC4KCSAgVGhlIHNvdXJjZSBwYWQgZ2V0cyBkZWFjdGl2YXRlZCBiZWZvcmUgdGhlIHF1ZXVlJ3Mgb3duIGFjdGl2YXRlX21vZGUKCSAgZnVuY3Rpb24gb24gdGhlIHNvdXJjZSBwYWRzIGdldHMgY2FsbGVkICh3aGljaCB3aWxsIHN0b3AgdGhlIHRocmVhZCksCgkgIHNvIGNoZWNraW5nIHdoZXRoZXIgdGhlIHBhZCBpcyBhY3RpdmUgYmVmb3JlIHJlLXN0YXJ0aW5nIHRoZSB0YXNrIG9uCgkgIHJlY2VpdmluZyBmbHVzaC1zdG9wIHNob3VsZCBiZSBmaW5lLiBUaGUgcHJvYmxlbSB3b3VsZCBoYXBwZW4gd2hlbiB0aGUKCSAgZmx1c2gtc3RvcCBoYW5kbGVyIHdhcyBjYWxsZWQganVzdCBhZnRlciB0aGUgcXVldWUncyBhY3RpdmF0ZSBtb2RlCgkgIGZ1bmN0aW9uIGhhZCBzdG9wcGVkIHRoZSB0YXNrLgoJICBTcG90dGVkIGFuZCBkZWJ1Z2dlZCBieSBMaW51cyBTdmVuc3NvbiA8bGludXguc3ZlbnNzb25AYXhpcy5jb20+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ2ODgKCjIwMTQtMDgtMDYgMTQ6MDE6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJ5dGVyZWFkZXI6IGFkZCBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdWJfcmVhZGVyKCkgYW5kIF9nZXRfc3ViX3JlYWRlcigpCgkgIEFkZHMgQVBJIHRvIGdldCBvciBwZWVrIGEgc3ViLXJlYWRlciBvZiBhIGNlcnRhaW4gc2l6ZSBmcm9tCgkgIGEgZ2l2ZW4gYnl0ZSByZWFkZXIuIFRoaXMgaXMgdXNlZnVsIHdoZW4gcGFyc2luZyBuZXN0ZWQgY2h1bmtzLAoJICBvbmUgY2FuIGVhc2lseSBnZXQgYSBieXRlIHJlYWRlciBmb3IgYSBzdWItY2h1bmsgYW5kIG1ha2UKCSAgc3VyZSBvbmUgbmV2ZXIgcmVhZHMgYmV5b25kIHRoZSBzdWItY2h1bmsgYm91bmRhcnkuCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3BlZWtfc3ViX3JlYWRlcigpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9zdWJfcmVhZGVyKCkKCjIwMTQtMDctMjUgMTY6Mzk6NDAgKzAyMDAgIEF1csOpbGllbiBaYW5lbGxpIDxhdXJlbGllbi56YW5lbGxpQHBhcnJvdC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogbWFrZSBleHBsaWNpdCB0aGF0IHRoZSBjYXBzIHBhc3NlZCB0byBnc3RfYmFzZV9zcmNfc2V0X2NhcHMoKSBhcmUgJ3RyYW5mZXIgbm9uZScKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzc0MQoKMjAxNC0wOC0xNCAxODo1Mzo0MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvc3NAb3NnLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGFsd2F5cyBwcm94eSBjYXBzIHF1ZXJ5CgkgIE90aGVyd2lzZSBpdCB3b3VsZCBvbmx5IGJlIHByb3hpZWQgZm9yIHRoZSBhY3RpdmUgcGFkIHdoaWNoIGNhbiBsZWFkCgkgIHVwc3RyZWFtIHRvIHVzZSBhbiBpbmNvbXBhdGlibGUgY2FwcyBmb3IgdGhlIGRvd25zdHJlYW0gZWxlbWVudC4KCSAgRXZlbiBpZiBhIHJlY29uZmlndXJlIGV2ZW50IGlzIHNlbnQgdXBzdHJlYW0gd2hlbiB0aGUgcGFkIGlzIGFjdGl2YXRlZCwgdGhpcwoJICB3aWxsIHNhdmUgdGhlIGNhcHMgcmVjb25maWd1cmF0aW9uIGlmIGl0IGlzIGFscmVhZHkgdXNpbmcgYW4gYWNjZXB0YWJsZSBjYXBzLgoKMjAxNC0wOC0xNCAxNDozNzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGJhc2U6IGFuZCBmaXggYnVpbGQgd2l0aCBuZXcgZy1pIGFnYWluCgoyMDE0LTA4LTE0IDE0OjI1OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgYmFzZTogcmVtb3ZlIGctaSBhbm5vdGF0aW9uIHRoYXQgbWFrZXMgb2xkZXIgZy1pci1zY2FubmVyIGNyYXNoCgkgIEp1c3QgcmVtb3ZlIG9uZSBza2lwIGFubm90YXRpb24gdGhhdCBjYXVzZXMgdGhpczoKCSAgKiogKGctaXItY29tcGlsZXI6MTI0NTgpOiBFUlJPUiAqKjogQ2F1Z2h0IE5VTEwgbm9kZSwgcGFyZW50PWVtcHR5CgkgIHdpdGggb2xkZXIgZy1pIHZlcnNpb25zIHN1Y2ggYXMgMS4zMi4xLgoKMjAxNC0wOC0xMyAxNDoxMjowMCArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBkZXN0cm95IHNpZ25hbCB3YXRjaCBmcm9tIHRoZSBjb250ZXh0IGl0IHdhcyBtYXBwZWQgdG8KCSAgRG9uJ3QgcmVseSBvbiBnX3NvdXJjZV9yZW1vdmUoKSBiZWNhdXNlIGl0IG9wZXJhdGVzIG9uIHRoZSBtYWluCgkgIGNvbnRleHQuIElmIGEgc2lnbmFsIHdhdGNoIHdhcyBhZGRlZCB0byBhIG5ldyB0aHJlYWQtZGVmYXVsdCBjb250ZXh0CgkgIGdfc291cmNlX3JlbW92ZSgpIHdvdWxkIGhhdmUgbm8gZWZmZWN0LiBTbyBzaW1wbHkgdXNlCgkgIGdfc291cmNlX2Rlc3Ryb3koKSB0byBhdm9pZCB0aGlzIHByb2JsZW0uCgkgIEFkZGl0aW9uYWxseSB0aGUgc291cmNlX2lkIHdhcyByZW1vdmVkIGZyb20gR3N0QnVzUHJpdmF0ZSBiZWNhdXNlIGl0CgkgIHdhcyByZWR1bmRhbnQgd2l0aCB0aGUgc2lnbmFsIHdhdGNoIEdTb3VyY2UgYWxzbyBzdG9yZWQgaW4gdGhhdAoJICBzdHJ1Y3R1cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ3MTYKCjIwMTQtMDgtMDcgMTI6MTg6MDQgKzAyMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBOb3QgcG9zdCBCVUZGRVJJTkcgbWVzc2FnZSBpZiBvbmUgb2YgdGhlIHNpbmdsZXF1ZXVlIGRvZXNuJ3QgbmVlZCBpdAoJICBJbWFnaW5lIHRoZSBmb2xsb3dpbmcgJ3BpcGVsaW5lJwoJICAtLS0tLS0tLS0tLS0tLQoJICBwMS98ICdmdWxscXVldWUnICB8LS0tICdsYWdneScgZG93bnN0cmVhbQoJICAtLS0tLS0tLS0gIC8gfCAgICAgICAgICAgICAgfAoJICAtfCBkZW11eGVyIHwgICB8IG11bHRpcXVldWUgICB8CgkgIC0tLS0tLS0tLSAgXCB8ICAgICAgICAgICAgICB8CgkgIHAyXHwgJ2VtcHR5cXVldWUnIHwtLS0gJ2Zhc3QnIGRvd25zdHJlYW0KCSAgLS0tLS0tLS0tLS0tLS0KCSAgSW4gdGhlIGNhc2UgZG93bnN0cmVhbSBvZiBvbmUgc2luZ2xlIHF1ZXVlIChmdWxscXVldWUpIGhhcyAoYSBsb3Qgb2YpIGxhdGVuY3kKCSAgKGZvciBleGFtcGxlIGZvciByZXZlcnNlIHBsYXliYWNrIHdpdGggdmlkZW8pLCB3ZSBjYW4gZW5kIHVwIGhhdmluZyB0aGUgb3RoZXIKCSAgU2luZ2xlUXVldWUgKGVtcHR5cXVldWUpIGVtcHRpZWQsIGJlZm9yZSB0aGF0IGZ1bGxxdWV1ZSBnZXRzCgkgIHVuYmxvY2tlZC4gSW4gdGhlIG1lYW50aW1lLCB0aGUgZGVtdXhlciB0cmllcyB0byBwdXNoIG9uIGZ1bGxxdWV1ZSwgYW5kCgkgIGlzIGJsb2NraW5nIHRoZXJlLgoJICBJbiB0aGF0IGNhc2UgdGhlIGN1cnJlbnQgY29kZSB3aWxsIHBvc3QgYSBCVUZGRVJJTkcgbWVzc2FnZSBvbiB0aGUgYnVzIHdoZW4KCSAgZW1wdHlxdWV1ZSBnZXRzIGVtcHRpZWQsIHRoYXQgbGVhZHMgdG8gdGhlIGFwcGxpY2F0aW9uIHNldHRpbmcgdGhlIHBpcGVsaW5lIHN0YXRlIHRvCgkgIFBBVVNFRC4gU28gbm93IHdlIGVuZCB1cCBpbiBhIHNpdHVhdGlvbiB3aGVyZSAnbGFnZ3kgZG93bnN0cmVhbScgaXMKCSAgcHJlcm9sbGVkIGFuZCB3aWxsIG5vdCB1bmJsb2NrIGFueW1vcmUgYmVjYXVzZSB0aGUgcGlwZWxpbmUgaXMgc2V0IHRvCgkgIFBBVVNFRCwgdGhlIGZ1bGxlcXVldWUgZG9lcyBub3QgaGF2ZSBhIGNoYW5jZSB0byBiZSBlbXB0aWVkIGFuZAoJICB0aGUgZW1wdHlxdWV1ZSBjYW4gbm90IGdldCBmaWxsZWQgYW55bW9yZSBzbyBubyBtb3JlIEJVRkVSUklORyBtZXNzYWdlCgkgIHdpbGwgYmUgcG9zdGVkIGFuZCB0aGUgcGlwZWxpbmUgaXMgc3R1Y2tlZCBpbiBQQVVTRUQgZm9yIHRoZSBldGVybml0eS4KCSAgTWFraW5nIHN1cmUgdGhhdCB3ZSBkbyBub3QgdHJ5IHRvICJidWZmZXIiIGlmIG9uZSBvZiB0aGUgc2luZ2xlIHF1ZXVlCgkgIGRvZXMgbm90IG5lZWQgYnVmZmVyaW5nLCBwcmV2ZW50cyB0aGlzIHNpdHV0YXRpb24gZnJvbSBoYXBwZW5pbmcgdGhvdWdoIGl0IGxldHMgdGhlCgkgIG9wb3J0dW5pdHkgZm9yIGJ1ZmZlcmluZyBpbiBhbGwgb3RoZXIgY2FzZXMuCgkgIFRoYXQgaW1wbGVtZW50cyBhIG5ldyBsb2dpYyB3aGVyZSB3ZSBuZWVkIGFsbCBzaW5nbGVxdWV1ZSB0byBuZWVkCgkgIGJ1ZmZlcmluZyBmb3IgdGhlIG11bHRpcXVldWUgdG8gYWN0dWFsbHkgc3RhdGUgYnVmZmVyaW5nIGlzIG5lZWRlZCwKCSAgdGFraW5nIHRoZSBtYXhpbXVtIGJ1ZmZlcmluZyBvZiB0aGUgc2luZ2xlIHF1ZXVlIGFzIHRoZSByZWZlcmVuY2UgcG9pbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MTIKCjIwMTQtMDgtMTMgMTM6MDE6MjMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogT25seSBoYW5kbGUgZmxvdyByZXR1cm5zIDwgRU9TIGFzIGVycm9ycywgbm90IGUuZy4gZmx1c2hpbmcKCjIwMTQtMDgtMTMgMTI6NDA6MzcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogVXNlIGFsbG93LW5vbmUgaW5zdGVhZCBvZiBudWxsYWJsZSB1bnRpbCB3ZSBkZXBlbmQgb24gYSBuZXcgZW5vdWdoIEdJIHZlcnNpb24KCjIwMTQtMDgtMTMgMTI6Mzk6NDcgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZ3N0X2Jpbl9uZXcoKSBjYW4gYWNjZXB0IE5VTEwgYXMgbmFtZQoKMjAxNC0wOC0xMyAxMjozNzowOCArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENsYXJpZnkgZG9jcyBhYm91dCBnc3RfZWxlbWVudF9nZXRfcmVxdWVzdF9wYWQoKSBhbmQgcmVtb3ZlIGRlcHJlY2F0aW9uIHBhcnQKCSAgVGhpcyBmdW5jdGlvbiBpcyBub3QgcmVhbGx5IHBhZCBvciBzbG93IGZvciB0aGUgY29tbW9uIGNhc2Ugb2YgcmVxdWVzdGluZyBhCgkgIHBhZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSB0ZW1wbGF0ZS4gSXQgaXMgb25seSBzbG93ZXIgaWYgeW91IHRvIG5hbWUgeW91ciBwYWRzCgkgIGRpcmVjdGx5IGluc3RlYWQgb2YgbGV0dGluZyB0aGUgZWxlbWVudCBoYW5kbGUgaXQuCgkgIEFsc28gdGhlcmUncyBubyByZWFzb24gdG8gZGVwcmVjYXRlIGl0IGluIGZhdm9yIG9mIGEgbW9yZSBjb21wbGljYXRlZCBmdW5jdGlvbgoJICBmb3IgdGhlIGNvbW1vbiBjYXNlLgoKMjAxNC0wOC0xMyAxMjoyMDo1MSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUG9zdCBlcnJvcnMgaWYgd2UgcmVjZWl2ZSBFT1MgYWZ0ZXIgZG93bnN0cmVhbSByZXBvcnRlZCBhbiBlcnJvcgoJICBUaGVyZSB3aWxsIGJlIG5vIGZ1cnRoZXIgZGF0YSBmbG93IHRoYXQgd291bGQgYWxsb3cgdXMgdG8gcHJvcGFnYXRlIHRoZQoJICBlcnJvciB1cHN0cmVhbSwgY2F1c2luZyBub2JvZHkgYXQgYWxsIHRvIHBvc3QgYW4gZXJyb3IgbWVzc2FnZS4KCjIwMTQtMDgtMTMgMTI6MTU6MDMgKzAzMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBQb3N0IGVycm9ycyB3aGVuIHJlY2VpdmluZyBFT1MgYWZ0ZXIgZG93bnN0cmVhbSByZXR1cm5lZCBhbiBlcnJvcgoJICBUaGVyZSBtaWdodCBiZSBubyBmdXJ0aGVyIGRhdGEgZmxvdyB0aGF0IHdvdWxkIGFsbG93IHVzIHRvIHByb3BhZ2F0ZSB0aGUKCSAgZXJyb3IgdXBzdHJlYW0sIGNhdXNpbmcgbm9ib2R5IHRvIHBvc3QgYW4gZXJyb3IgYXQgYWxsLgoKMjAxNC0wOC0xMyAxMjoxMDozOSArMDMwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBQb3N0IGVycm9ycyBvdXJzZWx2ZXMgaWYgdGhleSBhcmUgcmVjZWl2ZWQgYWZ0ZXIgRU9TCgkgIEFmdGVyIEVPUyB0aGVyZSB3aWxsIGJlIG5vIGZ1cnRoZXIgYnVmZmVyIHdoaWNoIGNvdWxkIHByb3BhZ2F0ZSB0aGUKCSAgZXJyb3IgdXBzdHJlYW0sIHNvIG5vdGhpbmcgaXMgZ29pbmcgdG8gcG9zdCBhbiBlcnJvciBtZXNzYWdlIGFuZAoJICB0aGUgcGlwZWxpbmUganVzdCBpZGxlcyBhcm91bmQuCgoyMDE0LTA4LTEyIDIwOjAzOjA2ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuQGFjY29zdGVkLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9jczogVHJpdmlhbCBwYWQgZG9jdW1lbnRhdGlvbiBmaXgKCSAgUHJlc3VtYWJseSBhIGNvcHktcGFzdG8uCgoyMDE0LTA4LTA4IDA5OjU0OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NvbmNhdC5jOgoJICBjb25jYXQ6IEFkZCB1bml0IHRlc3RzIGZvciBjb25jYXQgZWxlbWVudAoKMjAxNC0wOC0wOCAwOToxMzo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNvbmNhdC5jOgoJICBjb25jYXQ6IEFkZCBkb2N1bWVudGF0aW9uIGFuZCBpbnRlZ3JhdGUgaW50byBkb2N1bWVudGF0aW9uIGJ1aWxkCgoyMDE0LTA4LTA3IDE0OjQyOjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rjb25jYXQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBjb25jYXQ6IEFkZCBuZXcgZWxlbWVudCB0aGF0IGNvbmNhdGVuYXRlcyBtdWx0aXBsZSBzdHJlYW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0NzAKCjIwMTQtMDgtMDkgMTA6NTc6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQG9zZy5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBjYXBzOiBhZGQgY2hlY2sgZm9yIGNhcHMgd2l0aCBmZWF0dXJlcyBpbnRlcnNlY3Rpb24KCSAgQ2hlY2tzIHRoYXQgYSBjYXBzIHdpdGhvdXQgZmVhdHVyZXMgZG9lc24ndCBpbnRlcnNlY3Qgd2l0aAoJICBvbmUgdGhhdCBoYXMgZmVhdHVyZXMKCjIwMTQtMDgtMDcgMTQ6NTQ6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSAgZXhhbXBsZXM6IGNvbnRyb2xsZXI6IGZpeCB0eXBvIGluIGNvbW1lbnRzCgoyMDE0LTA4LTA2IDEzOjU4OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IHVzZSB1bmNoZWNrZWQgaW5saW5lIHZhcmlhbnQgZm9yIGdldF9yZW1haW5pbmcgaW4gbW9yZSBwbGFjZXMKCSAgV2UndmUgYWxyZWFkeSBkb25lIHRoZSBnX3JldHVybl8qX2lmX2ZhaWwgKHJlYWRlciAhPSBOVUxMKQoJICBkYW5jZSBpbiB0aG9zZSBwbGFjZXMsIHNvIG5vIG5lZWQgdG8gZG8gaXQgYWdhaW4uCgoyMDE0LTA4LTA2IDE0OjQzOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBHaG9zdHBhZHMgY2FuIGJlIHJlcXVlc3QgcGFkcyB0b28gYnV0IGNoZWNrIGlmIHRoZSBwYWQgaGFzIGEgdGVtcGxhdGUKCSAgT3RoZXJ3aXNlIHdlIGRlcmVmZXJlbmNlIE5VTEwgaW4gc29tZSBjYXNlcyBhbmQgY3Jhc2guCgoyMDE0LTA4LTA2IDEyOjM0OjQyICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wcm9ncmFtcy54bWw6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSAgdGVzdHM6IEFkZCBtaXNzaW5nIHVucmVmcyBvZiBvYmplY3RzIGFmdGVyIHVzZQoJICBVbnJlZmZpbmcgdGhlIG9iamVjdHMgcmV0dXJuZWQgYnkgZ3N0X2Jpbl9nZXRfYnlfbmFtZSgpIGFuZAoJICBnc3RfcGlwZWxpbmVfZ2V0X3VzZSgpIHdlcmUgbWlzc2luZyBpbiBzZXZlcmFsIHRlc3RzLCBzbyBhZGQgdGhlc2UuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQzNDUKCjIwMTQtMDgtMDYgMTI6NTU6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCB1bml0aXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTQtMDctMTMgMTU6MzE6MDggKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogQWRkIHRlc3QgdmVyaWZ5aW5nIGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsKCkKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzExOQoKMjAxNC0wNy0xMyAxNToyODozMiArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVbnJlZi9yZWxlYXNlIHBhZHMgaW4gZXJyb3IgY2FzZXMgd2hlbiBsaW5raW5nIHBhZHMKCSAgUHJldmlvdXNseSBnc3RfZWxlbWVudF9saW5rX3BhZHNfZnVsbCgpIGZvcmdvdCB0byB1bnJlZmVyZW5jZSBvciByZWxlYXNlCgkgIHJlcXVlc3QgcGFkcyBpbiBzZXZlcmFsIGVycm9yIGNhc2VzLiBBbHNvIGNvbW1lbnRzIHdlcmUgYWRkZWQgbWVudGlvbmluZwoJICB3aHkgcmVsZWFzaW5nIGlzIG5vdCBuZWNlc3NhcnkgaW4gc29tZSBwbGFjZXMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMTkKCjIwMTQtMDgtMDEgMTc6Mjc6MzkgLTAzMDAgIFRpYWdvIENlc2FyIEthdGNpcGlzIDx0aWFnby5rYXRjaXBpc0BkaWdpdHJvLmNvbS5icj4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGdzdGNoZWNrOiBhZGQgZG9jcyBmb3IgZ3N0X2NoZWNrX3NldHVwX3NyY19wYWRfYnlfbmFtZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQxNDIKCjIwMTQtMDctMzEgMTg6MzI6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbW1vbjoKCSAgTWFrZWZpbGU6IEFkZCB1c2FnZSBvZiBidWlsZC1jaGVja3Mgc3RlcAoJICBBbGxvd3MgYnVpbGRpbmcgY2hlY2tzIHdpdGhvdXQgcnVubmluZyB0aGVtCgoyMDE0LTA3LTMwIDE1OjQ2OjIyICswMzAwICBNb2hhbW1lZCBTYW1lZXIgPG1zYW1lZXJAZm9vbGFiLm9yZz4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IEFkZCBtaXNzaW5nIGVycm9yIGNoZWNraW5nIHRvIGRlZmF1bHRfYWxsb2NfYnVmZmVyKCkKCSAgZGVmYXVsdF9hbGxvY19idWZmZXIoKSBjYWxscyBnc3RfYnVmZmVyX25ld19hbGxvY2F0ZSgpIGJ1dCBkb2VzIG5vdCBjaGVjayBmb3IKCSAgZmFpbGVkIGFsbG9jYXRpb24uCgkgIFRoaXMgcGF0Y2ggbWFrZXMgZGVmYXVsdF9hbGxvY19idWZmZXIoKSByZXR1cm4gYW4gZXJyb3IgKEdTVF9GTE9XX0VSUk9SKSBpZgoJICBidWZmZXIgYWxsb2NhdGlvbiBmYWlscy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzk3NAoKMjAxNC0wNy0yOSAxNDoyMTozMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQG9zZy5zaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGF2b2lkIHVzaW5nIGluZmluaXRlIGJ1ZmZlcnMgbGltaXQgaWYgZmluaXRlIGlzIHJlcXVlc3RlZAoJICBJZiB0aGUgY3VycmVudCBtYXgtYnVmZmVycyBsaW1pdCBpdCBpbmZpbml0ZSBhbmQgYSBmaW5pdGUgdmFsdWUgaXMKCSAgcmVxdWVzdGVkLCBzd2l0Y2ggdG8gdGhlIE1BWCAocmVxdWVzdGVkLCBjdXJyZW50LXZhbHVlKSB0byBzZXQgc29tZQoJICBsaW1pdCBidXQgbm90IGJlbG93IHdoYXQgd2Uga25vdyB0aGF0IHdlJ3ZlIG5lZWRlZCBzbyBmYXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM2MzcKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzgzNwoKMjAxNC0wNy0yNCAyMjowMjo1OCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IFVucmVmIHJlZmVyZW5jZSB0byBlbmNsb3NpbmcgYmlucwoJICBQcmV2aW91c2x5IGFsbCByZWZlcmVuY2UgdG8gZW5jbG9zaW5nIGJpbnMgb2YgYW4gZWxlbWVudCB3ZXJlIGxlYWtlZAoJICB3aGVuIGRvaW5nIGRlbGF5aW5nIHNldHRpbmcgYSBwcm9wZXJ0eS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzY5NwoKMjAxNC0wNy0yNyAwMjozNzowOCArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFN1cHBvcnQgU0lHSU5UIChDdHJsK0MpIG9uIFczMgoJICBXMzIgaGFzIG5vIFNJR0lOVCwgYnV0IGl0IGRvZXMgaGF2ZSBTZXRDb25zb2xlQ3RybEhhbmRsZXIoKSwgd2hpY2ggc2V0cyB1cAoJICBhIGhhbmRsZXIgZm9yIEN0cmwrQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzgxNAoKMjAxNC0wNy0yNyAwMzowNjoxNiArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBQcmV2ZW50IGZhbHNlLW5lZ2F0aXZlIGZyb20gV0FLRV9FVkVOVCgpIG9uIFczMgoJICBTZXRFdmVudCgpIHNlZW1zIHRvIG5vdCBjYWxsIFNldExhc3RFcnJvcigwKSBpbnRlcm5hbGx5LCBzbyBjaGVja2luZyBsYXN0CgkgIGVycm9yIGFmdGVyIGNhbGxpbmcgU2V0RXZlbnQoKSBtYXkgcmV0dXJuIHRoZSBlcnJvciBmcm9tIGFuIGVhcmxpZXIgVzMyIEFQSQoJICBjYWxsLiBGaXggdGhpcyBieSBjYWxsaW5nIFNldGxhc3RFcnJvcigwKSBleHBsaWNpdGx5LgoJICBDdXJyZW50bHkgV0FLRV9FVkVOVCgpIGNvZGUgaXMgY3JhbXBlZCBpbnRvIGEgbWFjcm8gYW5kIGRvZXNuJ3QgbG9vayB0byBiZQoJICBlbnRpcmVseSBjb3JyZWN0LiBQYXJ0aWN1bGFybHksIGl0IGRvZXMgbm90IGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YKCSAgU2V0RXZlbnQoKSwgb25seSB0aGUgdGhyZWFkLWxvY2FsIFczMiBlcnJvciB2YWx1ZS4gSXQgaXMgbGlrZWx5IHRoYXQgU2V0RXZlbnQoKQoJICBhY3R1YWxseSBqdXN0IHJldHVybnMgbm9uLXplcm8gdmFsdWUsIGJ1dCB0aGUgY29kZSBtaXN0YWtlbmx5IHRoaW5rcyB0aGF0IHRoZQoJICBjYWxsIGhhcyBmYWlsZWQsIGJlY2F1c2UgR2V0TGFzdEVycm9yKCkgc2VlbXMgdG8gaW5kaWNhdGUgc28uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzM4MDUKCjIwMTQtMDctMjYgMTQ6NDI6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Lmg6CgkgIGdzdDogaW5jbHVkZSBhdG9taWNxdWV1ZS5oIGFnYWluIGluIGdzdC5oCgkgIEl0J3MgYSBwdWJsaWMgaGVhZGVyIG9mIGdzdHJlYW1lciBjb3JlLCBzbyAjaW5jbHVkZSA8Z3N0L2dzdC5oPgoJICBzaG91bGQgbWFrZSB0aGUgQVBJIGF2YWlsYWJsZS4KCjIwMTQtMDctMjUgMTE6NDU6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVsZW1lbnQ6IHJlbW92ZSBwcm90b3R5cGUgZm9yIGZ1bmN0aW9uIHRoYXQgbm8gbG9uZ2VyIGV4aXN0cwoKMjAxNC0wNy0yNCAxNDozOToxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQG9zZy5zaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBieXRlcmVhZGVyOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrCgkgIEFkZHMgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrIGp1c3QgbGlrZQoJICBHc3RBZGFwdGVyIGhhcyBhIF9wZWVrIGFuZCBub24gX3BlZWsgdmVyc2lvbgoJICBVcGdyYWRlZCB0ZXN0cyB0byBjaGVjayB0aGF0IHRoZSByZXR1cm5lZCB2YWx1ZSBpcyBjb3JyZWN0IGluIHRoZQoJICBfcGVlayB2ZXJzaW9uCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMl9wZWVrCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgzNTYKCjIwMTQtMDYtMjYgMTQ6MDk6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBwcmUtYWxsb2NhdGUgYnVmZmVyIGFycmF5IGluIG9uZSBnbyB3aXRoIHRoZSBidWZmZXIgbGlzdAoJICBXZSBjYW4gbm93IGNyZWF0ZSBhbmQgZnJlZSBhIGJ1ZmZlciBsaXN0IHdpdGggb25lIHNsaWNlIGFsbG9jL2ZyZWUKCSAgY2FsbCBpbiBtb3N0IGNhc2VzLCBpbnN0ZWFkIG9mIG9uZSBzbGljZSBhbGxvYy9mcmVlIGZvciB0aGUgbGlzdCwKCSAgb25lIHNsaWNlIGFsbG9jL2ZyZWUgZm9yIHRoZSBHQXJyYXksIGFuZCBvbmUgbWFsbG9jL2ZyZWUgZm9yIHRoZQoJICBHQXJyYXkgYXJyYXkuIEluIHByYWN0aWNlIHdlIGtub3cgdGhlIG1heCBzaXplIG9mIG91ciBidWZmZXIgbGlzdAoJICBmcm9tIHRoZSBzdGFydCwgc28gY2FuIGF2b2lkIHJlYWxsb2NzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyMjg0CgoyMDE0LTA3LTIzIDIxOjI3OjQ4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIHByaXZhdGU6IGFsbG93IGludGVybmFsIGFjY2VzcyB0byB0aGUgZGVidWcgYmFzZS10aW1lCgkgIE1vdmluZyB0aGUgZXh0ZXJuIHRvIHRoZSBoZWFkIGxldHMgdXMgYWNjZXNzIHRoaXMgZnJvbSBvdGhlciBwYXJ0cyBhcyB3ZWxsLiBUaGlzCgkgIGlzIG5lZWVkIGluIHRoZSB0cmFjZXIgYnJhbmNoLgoKMjAxNC0wNy0yMyAwMDoxNToxNyArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bkBhY2Nvc3RlZC5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IFVzZSBnaXQgcHVsbCAtLXJlYmFzZQoJICBObyBwb2ludCBpbnRyb2R1Y2luZyByZWR1bmRhbnQgbWVyZ2UgY29tbWl0cy4KCjIwMTQtMDctMjEgMTI6NDE6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdsaXN0LmM6CgkgIFJldmVydCAidGVzdHM6IHRhZ2xpc3Q6IGFkZCBiYXNpYyB0ZXN0IGZvciB0YWdsaXN0cyBzZXJpYWxpemF0aW9uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg1ZDIzZDE5YjdkZTQwNTQxZDYzYjBiYzc2ZDhiNjQ2YzMyMWFmMjYuCgkgIFRoZXJlIHdhcyBhbHJlYWR5IGEgZ3N0dGFnLmMgdGVzdHMgZmlsZSwgdGhpcyB0ZXN0IGhhcyBiZWVuIG1lcmdlZAoJICBpbiBpdCBpbiB0aGUgcHJldmlvdXMgY29tbWl0CgoyMDE0LTA3LTIxIDEyOjQwOjQ3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGVzdHM6IHRhZzogYWRkIHRoZSBlbXB0eSB0YWdsaXN0IHNlcmlhbGl6YXRpb24gdGVzdAoJICBBZGRzIHRoZSB0ZXN0IHRvIHRoZSBhcHByb3ByaWF0ZSBhbmQgYWxyZWFkeSBleGlzdGluZyBmaWxlLgoKMjAxNC0wNy0xNCAxODo0Njo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGVzdHM6IHRhZ2xpc3Q6IGFkZCBiYXNpYyB0ZXN0IGZvciB0YWdsaXN0cyBzZXJpYWxpemF0aW9uCgkgIE1ha2Ugc3VyZSBpdCB3b3JrcyB3aXRoIGVtcHR5IHRhZ2xpc3RzCgoyMDE0LTA3LTE0IDE4OjI1OjUwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgdGVzdHM6IGdzdHN0cnVjdHVyZTogc2VyaWFsaXphdGlvbiBvZiB0YWcgZXZlbnQgc3RydWN0dXJlCgkgIEFkZHMgYSB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQgdGhlIHNlcmlhbGl6YXRpb24gb2YgYSB0YWcgZXZlbnQgc3RydWN0dXJlCgkgIHdvcmtzIHdpdGhvdXQgcHJvYmxlbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMzEzMQoKMjAxNC0wNy0xNCAxODoyMzo0MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGFkZCBHc3RUYWdMaXN0IGNvbXBhcmUgZnVuY3Rpb24KCSAgV2hlbiBzZXJpYWxpemluZyBHc3RTdHJ1Y3R1cmVzIGZyb20gZXZlbnRzIGluIEdEUCBpdCB3aWxsIGFkZCBhIHRhZ2xpc3QKCSAgYXMgYSBHc3RTdHJ1Y3R1cmUgZmllbGQsIGhhdmluZyB0aGUgY29tcGFyZSBmdW5jdGlvbiBhbGxvd3MgY29tcGFyaXNvbiBvZgoJICBHc3RTdHJ1Y3R1cmVzIHRvIGNoZWNrIGlmIHRoZSBzZXJpYWxpemVkL2Rlc2VyaWFsaXplZCB2ZXJzaW9uIG1hdGNoZXMgdGhlCgkgIG9yaWdpbmFsIG9uZSwgYW1vbmcgb3RoZXIgY2FzZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMzEKCjIwMTQtMDctMDkgMTU6NDg6MTAgKzAyMDAgIFNyaW1hbnRhIFBhbmRhIDxzcmltYW50YUBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogRml4IGZvciByYWN5IEVPUyBldmVudCBoYW5kbGluZwoJICBXaGVuIGVvcyBldmVudHMgYXJlIGZvcndhcmRlZCBzaW11bHRhbmVvdWx5IGZyb20gdHdvIHNpbmtwYWRzIG9uCgkgIGZ1bm5lbCwgaXQgZG9lc25vdCBmb3J3YXJkIHRoZSBlb3MgdG8gc291cmNlcGFkLiBUaGUgcmVhc29uIGlzCgkgIHN0aWNreSBldmVudHMgYXJlIHN0b3JlZCBhZnRlciB0aGUgZXZlbnQgY2FsbGJhY2tzIGFyZSByZXR1cm5lZC4KCSAgVGhlcmVmb3JlIHdoaWxlIG9uZSBpcyBhYm91dCB0byBzdG9yZSB0aGUgc3RpY2t5IGV2ZW50cyBvbiB0aGUgaXRzCgkgIHNpbmtwYWQsIG90aGVyIHNpbmtwYWQgc3RhcnRzIGNoZWNraW5nIGZvciB0aGUgZW9zIGV2ZW50cyBvbiBhbGwgb3RoZXIKCSAgc2lua3BhZHMgYW5kIGFzc3VtZXMgZW9zIGlzIG5vdCBwcmVzZW50IHlldC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjg1MQoKMjAxNC0wNy0xNyAxNjowNTowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogQWRkIHVuaXQgdGVzdCBmb3IgcmVzZXR0aW5nIG9mIHRoZSBzdGFydCB0aW1lCgkgIEFsc28gY2hlY2sgaWYgdGhpcyBwcm9wZXJseSBhZmZlY3RzIGJhc2VzaW5rIGVsZW1lbnRzIHRvIG5vdAoJICByZXBvcnQgdGhlIG9sZCBzdGFydCB0aW1lIGJ1dCB0aGUgcmVhbCBjdXJyZW50IHBvc2l0aW9uIHdoZW4KCSAgc2V0dGluZyB0byBQQVVTRUQgYWdhaW4uCgoyMDE0LTA3LTE1IDE4OjE5OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBSZXNldCB0aGUgc3RhcnQgdGltZSB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvIFJFQURZIHRvbwoKMjAxNC0wNy0xNSAxNzoxOToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogUmVzZXQgc3RhcnQgdGltZSBpbiBSRUFEWS0+UEFVU0VEIGJlZm9yZSBjaGFpbmluZyB1cAoJICBPdGhlcndpc2UgYmluIHdpbGwgY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgY2hpbGQgZWxlbWVudHMgd2l0aG91dAoJICBkaXN0cmlidXRpbmcgdGhlIG5ldyBzdGFydCB0aW1lLgoKMjAxNC0wNi0yOCAxNzo1ODoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHNfcHJpdmF0ZS5jOgoJICBlbGVtZW50czogaW1wcm92ZSBidWZmZXIgZmxhZ3MgdG8gc3RyaW5nIHV0aWxpdHkgZnVuY3Rpb24KCSAgQXZvaWQgcmVsb2NhdGlvbnMgYW5kIHJlZmFjdG9yIHNvIHRoYXQgd2UgZG9uJ3QgY2FsY3VsYXRlCgkgIHRoZSBmaXhlZCBhbmQga25vd24gYXQgY29tcGlsZSB0aW1lIG1heGltdW0gc3RyaW5nIHNpemUKCSAgZXZlcnkgdGltZS4gQWxzbyBza2lwIHRoZSBtaW5pIG9iamVjdCBmbGFncyB3aGljaCB3ZSBhcmUKCSAgbm90IGdvaW5nIHRvIHByaW50IGFueXdheS4KCjIwMTQtMDctMTkgMTg6MDQ6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuNC4wID09PQoKMjAxNC0wNy0xOSAxNjo0Njo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjQuMAoKMjAxNC0wNy0xOSAxNjoyMToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDctMTkgMTI6MTY6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9kYS5wbzoKCSogcG8vc3YucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE0LTA3LTE3IDE1OjUzOjUzICswMjAwICBUaGliYXVsdCBTYXVuaWVyIDx0c2F1bmllckBnbm9tZS5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJldHVybiBGTE9XX0ZMVVNISU5HIHdoZW4gcHVzaGluZyBhIGZyYW1lIG9uIGEgcGFkIHRoYXQgaGFzIGJlZW4gZmx1c2hlZAoJICBXaGVuIGdvaW5nIHRvIFJFQURZLCBpdCBpcyBwb3NzaWJsZSB0aGF0IHdlIGFyZSBzdGlsbCBwdXNpbmcgYSBmcmFtZSBidXQgdGhhdAoJICBvdXIgc3JjcGFkIGhhcyBhbHJlYWR5IGJlZW4gc2V0IHRvIGZsdXNoaW5nLiBJbiB0aGF0IGNhc2Ugd2Ugc2hvdWxkIG5vdAoJICBwb3N0IGFueSBlcnJvciBvbiB0aGUgYnVzIGJ1dCBpbnN0ZWFkIGNsZWFubHkgcmV0dXJuIEZMT1dfRkxVU0hJTkcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMzMjAKCjIwMTQtMDctMTcgMDc6MDc6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBQcm9wYWdhdGUgaW5wdXQgYnVmZmVyIFBUUyBhbmQgRFRTCgkgIFRoZSBpbml0aWFsIGJ1ZmZlcnMgKHRoYXQgd2VyZSB1c2VkIGZvciB0aW1lc3RhbXBpbmcpIG1pZ2h0IGhhdmUgUFRTCgkgIGFuZCBEVFMgc2V0LiBJbiBvcmRlciB0byBmb3J3YXJkIHRob3NlIHByb3Blcmx5LCBnZXQgdGhlIGluaXRpYWwKCSAgUFRTL0RUUyBmcm9tIHRoZSBhZGFwdGVyIGFuZCBzZXQgdGhlbSBvbiB0aGUgcmVjb25zdHJ1Y3RlZCBvdXRwdXQKCSAgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMzMjkxCgoyMDE0LTA3LTEyIDE3OjAxOjIzICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBVbnJlZiBwYWQgdGVtcGxhdGUgYWZ0ZXIgdXNlCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMjEKCjIwMTQtMDctMTQgMTg6MTA6NDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGluaXQgdGFnbGlzdCBndHlwZSB0byB1c2UgaXQgaW4gZ3N0dmFsdWUKCSAgT3RoZXJ3aXNlIGl0IHdpbGwgaGF2ZSBhIDAgdmFsdWUgYW5kIEdzdFRhZ0xpc3Qgd29uJ3QgYmUgZm91bmQKCSAgZm9yIEdzdFZhbHVlIGZ1bmN0aW9ucyAoc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24pCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzMxMzEKCj09PSByZWxlYXNlIDEuMy45MSA9PT0KCjIwMTQtMDctMTEgMTA6NDY6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjkxCgoyMDE0LTA3LTExIDEwOjQxOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNy0xMSAwODo1MTowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2RhLnBvOgoJKiBwby92aS5wbzoKCSAgcG86IFVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTQtMDctMDUgMTg6Mjk6MjkgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdHRvYy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJICBkb2NzOiBGaXggZG9jdW1lbnRhdGlvbiB0eXBvcyBhbmQgaW5jb25zaXN0ZW5jaWVzCgkgICogR3N0R2xvYmFsRGV2aWNlTW9uaXRvciB3YXMgcmVuYW1lZCB0byBHc3REZXZpY2VNb25pdG9yCgkgICogRXhwYW5kIEdTVF9NRVNTQUdFX0RFVklDRSB0byB0aGUgZnVsbCBlbnVtIHZhbHVlIG5hbWVzCgkgICogQ29ycmVjdCB0aGUgaW5jb3JyZWN0IHJlZmVyZW5jZXMgdG8gdGhlIEdzdERldmljZVByb3ZpZGVyIGludGVyZmFjZXMKCSAgKiBEZXNjcmliZSBjYXBzIGFyZ3VtZW50cyBmb3IgZ3N0Y2hlY2sgaW50ZXJmYWNlCgkgICogQWRkIG1pc3NpbmcgZG9jcyBmb3IgR3N0TmV0QWRkcmVzc01ldGEgYW5kIGl0cyBhZGQgZnVuY3Rpb24KCSAgKiBBZGQgZG9jcyBmb3IgdG9jIGhlbHBlciBtYWNyb3MKCSAgKiBBdm9pZCByZWZlcmluZyB0byBHc3RWYWx1ZUxpc3QgdHlwZSBhcyBkb25lIGVsc2V3aGVyZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNzg2CgoyMDE0LTA3LTA1IDE3OjEzOjIxICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBDbGVhbnVwIGludGVyZmFjZSByZWZlcmVuY2VzIGluIGRvY3MKCSAgKiBEZWxldGUgcmVmZXJlbmNlcyB0byByZW1vdmVkIGludGVyZmFjZXMKCSAgKiBBZGQgbWlzc2luZyBkb2N1bWVudGF0aW9uIHNlY3Rpb25zCgkgICogRml4IGR1cGxpY2F0ZSBpbnRlcmZhY2UgcmVmZXJlbmNlcyBmb3IgR3N0RGV2aWNlCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI3ODYKCjIwMTQtMDctMDggMTE6MTc6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBUaGVyZSBpcyBubyBkZWNvZGViaW4yIGFueW1vcmUsIGRvbid0IHByZXRlbmQgb3RoZXJ3aXNlCgoyMDE0LTA3LTA3IDE2OjE0OjMyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGZpeCBlcnJvciBzZXR0aW5nIHdoZW4gdXJpIGlzIGludmFsaWQKCSAgRWxlbWVudHMgc2hvdWxkIGFsd2F5cyBzZXQgdGhlIEdFcnJvcgoKMjAxNC0wNy0wNiAxMjoxMzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGxpYnM6IGdzdGNoZWNrOiBjaGVjayB0aGF0IG11dGV4IGlzIGxvY2tlZCBiZWZvcmUgZ19jb25kX3dhaXQqKCkgaXMgY2FsbGVkCgkgIFNhbml0eSBjaGVjayB0byBjYXRjaCBwcm9ibGVtcyBpbiB1bml0IHRlc3QuCgoyMDE0LTA3LTA2IDEyOjEyOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgbGliczogZ3N0Y2hlY2s6IGluaXQgYW5kIGNsZWFyIGdsb2JhbCBtdXRleCBhbmQgY29uZCB2YXJpYWJsZXMKCjIwMTQtMDctMDYgMTI6MDk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJICB0ZXN0czogZml4IGxvY2tpbmcgaW4gZ3N0cG9sbCB1bml0IHRlc3QKCSAgVGhlIG11dGV4IG5lZWRzIHRvIGJlIGxvY2tlZCB3aGVuIGdfY29uZF93YWl0KigpIGlzCgkgIGNhbGxlZC4KCjIwMTQtMDctMDUgMTY6MjQ6MTggKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgdmlkZW8gYW5kIGJhc2UgbGlicmFyeSBwYXRocyBmcm9tIC1iYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMjc3MAoKMjAxNC0wNy0wNCAxOTo0MDoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBzdXBwcmVzcyBHTGliIHdhcm5pbmdzIHdoZW4gZ3N0LWluc3BlY3RpbmcgZGVwcmVjYXRlZCBwcm9wZXJ0aWVzCgkgIEdMaWIgaW4gZ2l0IHdpbGwgc3BldyBhIGdfd2FybmluZygpIHdoZW4gYSBwcm9wZXJ0eSBtYXJrZWQgYXMKCSAgZGVwcmVjYXRlZCB2aWEgcGFyYW0gc3BlYyBmbGFncyBpcyBhY2Nlc3NlZC4gU3VwcHJlc3MgdGhpcyBieQoJICBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCjIwMTQtMDctMDMgMTA6MTE6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiBXb3JrIGFyb3VuZCBnLWkvcHlnb2JqZWN0L2dqcyBidWcgd2l0aCB+MCBpbiBlbnVtcwoJICBHU1RfTUVTU0FHRV9BTlkgd2FzIGNvbnNpZGVyZWQgYSBsb25nIGJ5IHB5Z29iamVjdCBhbmQgZ2pzLCBhbmQgdGh1cwoJICBjb3VsZG4ndCBiZSB1c2VkIGluIGdzdF9idXNfcG9sbCgpIGFuZCBzaW1pbGFyIEFQSXMgYXMgdGhleSBleHBlY3QgYW4KCSAgaW50LXR5cGVkIGVudW0uCgkgIEp1c3QgdXNlIDB4ZmZmZmZmZmYgaW5zdGVhZCBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMyNjMzCgoyMDE0LTA3LTAyIDA4OjQxOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGRvbid0IHVzZSBwb3N0LUdMaWIgMi4zMiBBUEkgaW4gYnVmZmVybGlzdCB0ZXN0CgkgIGdfcHRyX2FycmF5X2luc2VydCgpIGlzIEdMaWIgPj0gMi40MAoKMjAxNC0wNy0wMSAxMjoyMjo1NiArMDIwMCAgR8O2cmFuIErDtm5zc29uIDxnb3JhbmpuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IHVubG9jayB3aGlsZSBpdGVyYXRpbmcgb3ZlciBhbGwgc3RpY2t5IGV2ZW50cyBmb3IgcmVtb3ZhbAoJICBPdGhlcndpc2Ugd2UgbWlnaHQgZW5kIHVwIGdldHRpbmcgdGhlIGV2ZW50IHJlbW92ZWQgZnJvbSBlbHNld2hlcmUKCSAgYXQgdGhlIHNhbWUgdGltZSB3aGlsZSB3ZSdyZSB1bmxvY2tlZCBmb3IgZ19vYmplY3Rfbm90aWZ5KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1NTYKCjIwMTQtMDctMDEgMTk6MTc6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBQcm94eSB0aGUgYWNjZXB0LWNhcHMgcXVlcnkKCSAgV2UgYWx3YXlzIHdvcmsgaW4gcGFzc3Rocm91Z2ggbW9kZSBzbyB0aGVyZSdzIG5vIHBvaW50IGluIGRvaW5nCgkgIHNvbWV0aGluZyBtb3JlIGNsZXZlciBpbiBiYXNldHJhbnNmb3JtLiBBbHNvIHRoZSBiYXNldHJhbnNmb3JtCgkgIGNvZGUgbGVhZHMgdG8gcHJvYmxlbXMgd2l0aCBpbmNvbXBsZXRlIGNhcHMgYW5kIGRvd25zdHJlYW0KCSAgZWxlbWVudHMgdGhhdCB1c2UgR1NUX1BBRF9GTEFHX0FDQ0VQVF9JTlRFUlNFQ1QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1NTkKCjIwMTQtMDctMDEgMTE6MjE6NTMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVzZXQgUW9TIG9uIHNlZ21lbnQgZXZlbnQKCSAgVGhpcyBhdm9pZHMgc3B1cmlvdXMgd2FybmluZ3MgYWJvdXQgc2xvdyBtYWNoaW5lIHdoZW4gdXBzdHJlYW0KCSAgc2VuZHMgbmV3IHNlZ21lbnRzIHdpdGhvdXQgZmx1c2hpbmcuCgoyMDE0LTA2LTMwIDIzOjM5OjE4IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJICBpbnRyb3NwZWN0aW9uOiBBc3NvcnRlZCBtaW5vciBpbnRyb3NwZWN0aW9uIGFuZCBkb2N1bWVudGF0aW9uIGZpeGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzI1MzQKCjIwMTQtMDYtMzAgMDg6NTk6MTggKzAwMDAgIEd1aWxsYXVtZSBEZXNtb3R0ZXMgPGd1aWxsYXVtZS5kZXNtb3R0ZXNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSAgZGV2aWNlbW9uaXRvcjogU3RvcCB1c2luZyBnX2NsZWFyX3BvaW50ZXIoKQoJICBXZSBkb250J3Qgd2FudCB0byBkZXBlbmQgb24gR0xpYiAyLjM0IGZvciBub3cuCgoyMDE0LTA2LTI5IDE5OjE2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9zcGFyc2VmaWxlLmM6CgkgIHNwYXJzZWZpbGU6IEluaXRpYWxpemUgbWVtb3J5IGluIHVuaXQgdGVzdCB0byBtYWtlIHZhbGdyaW5kIGhhcHB5CgkgIFdlIHdlcmUgd3JpdGluZyB1bml0aWFsaXplZCBzdGFjayBtZW1vcnkgdG8gdGhlIGZpbGUuCgo9PT0gcmVsZWFzZSAxLjMuOTAgPT09CgoyMDE0LTA2LTI4IDEwOjQ1OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy45MAoKMjAxNC0wNi0yOCAxMDo0MTo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTQtMDYtMjcgMTA6NDQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGV2aWNlLmM6CgkgIGRldmljZW1vbml0b3I6IGRvbid0IGZhaWwgd2hlbiBzdGFydGVkIHdpdGhvdXQgYW55IGZpbHRlcnMKCSAgSnVzdCBzaG93IGFsbCBkZXZpY2VzIHRoZW4uCgoyMDE0LTA2LTI3IDEwOjQ0OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJICBkZXZpY2Vwcm92aWRlcmZhY3Rvcnk6IGhhbmRsZSBOVUxMIGNsYXNzZXMgYXJndW1lbnQgYW5kIG1hdGNoIGFueQoKMjAxNC0wNi0yNiAyMTowMDo0MCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2U6IEFkZCB1bml0IHRlc3RzCgoyMDE0LTA2LTI2IDE3OjIyOjI1IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgZGV2aWNlbW9uaXRvcjogSW1wcm92ZSBkb2N1bWVudGF0aW9uCgoyMDE0LTA2LTI2IDE3OjEzOjEyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyLmM6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlbW9uaXRvcjogTWFrZSBpdCBwb3NzaWJsZSB0byBhZGQgbXVsdGlwbGUgZmlsdGVycwoJICBFYWNoIGZpbHRlciB3aWxsIGluY2x1ZGUgYSBHc3RDYXBzIGFuZCBhIHNldCBvZiBjbGFzc2VzIHRvIG1hdGNoCgoyMDE0LTA2LTI2IDE2OjMxOjUxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJICBkZXZpY2U6IEFkZCBwcmUtY29uZGl0aW9ucwoKMjAxNC0wNi0yNiAxNTowODo0NiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0RGV2aWNlTW9uaXRvcjogUmVuYW1lIGZyb20gR3N0R2xvYmFsRGV2aWNlTW9uaXRvcgoKMjAxNC0wNi0yNiAxNDoyODowOSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3RkZXZpY2Vwcm92aWRlci5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXIuaDoKCSogZ3N0L2dzdGRldmljZXByb3ZpZGVyZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZGV2aWNlcHJvdmlkZXJmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgRGV2aWNlUHJvdmlkZXI6IFJlbmFtZSBmcm9tIERldmljZU1vbml0b3IKCjIwMTQtMDYtMjYgMTk6MzE6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBkYXRhcXVldWU6IEhpZGUgZnJvbSBiaW5kaW5ncwoJICBPdGhlciBsYW5ndWFnZXMgaGF2ZSB0aGVpciBvd24gZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgYXJlIG1vcmUgY29udmVuaWVudCB0bwoJICB1c2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzMDMKCjIwMTQtMDYtMjYgMTk6MzA6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkgIHF1ZXVlYXJyYXk6IEhpZGUgZnJvbSBiaW5kaW5ncwoJICBPdGhlciBsYW5ndWFnZXMgaGF2ZSB0aGVpciBvd24gZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgYXJlIG1vcmUgY29udmVuaWVudCB0byB1c2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNTAKCjIwMTQtMDUtMjggMTA6MTQ6NDUgKzAxMDAgIFBoaWxpcCBXaXRobmFsbCA8cGhpbGlwLndpdGhuYWxsQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IEFkZCBtaXNzaW5nIChudWxsYWJsZSkgYW5ub3RhdGlvbnMKCSAgZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UoKSBjYW4gdGFrZSBOVUxMIG1pbmktb2JqZWN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDg3MwoKMjAxNC0wNi0yNiAxOTowMjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEFwcGxpY2F0aW9uIGFuZCBlbGVtZW50IG1lc3NhZ2VzIHNob3VsZCBub3QgaGF2ZSBOVUxMIHN0cnVjdHVyZXMKCSAgSXQgZG9lcyBub3QgbWFrZSBzZW5zZSBmb3IgdGhlbS4KCjIwMTQtMDYtMTEgMTY6MTk6MDEgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBzb21lIG1pc3NpbmcgYWxsb3ctbm9uZSBhbm5vdGF0aW9ucyB0byBpbiBwYXJhbXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk1NwoKMjAxNC0wNi0xMSAxNjowNjoxOSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIG51bGxhYmlsaXR5IGFubm90YXRpb25zIHRvIG91dCBhbmQgaW5vdXQgcGFyYW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NTcKCjIwMTQtMDYtMTEgMTU6MjE6MzQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zIHRvIHJldHVybiB2YWx1ZXMKCSAgU3VwcG9ydCBmb3IgKG51bGxhYmxlKSB3YXMgYWRkZWQgdG8gRy1JIGF0IHRoZSBzYW1lIHRpbWUgYXMgbnVsbGFibGUKCSAgcmV0dXJuIHZhbHVlcy4gIFByZXZpb3VzIHZlcnNpb25zIG9mIEctSSB3aWxsIG5vdCBtYXJrIHJldHVybiB2YWx1ZXMgYXMKCSAgbnVsbGFibGUsIGV2ZW4gd2hlbiBhbiAoYWxsb3ctbm9uZSkgYW5ub3RhdGlvbiBpcyBwcmVzZW50LCBzbyBpdCBpcwoJICBub3QgbmVjZXNzYXJ5IHRvIGFkZCAoYWxsb3ctbm9uZSkgYW5ub3RhdGlvbnMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aAoJICBvbGRlciB2ZXJzaW9ucyBvZiBHLUkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NTcKCjIwMTQtMDYtMTEgMTc6MTU6MzkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBiYXNlOiBhc3NvcnRlZCBpbnRyb3NwZWN0aW9uIGZpeGVzIGFuZCBhZGRpdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTU0MgoKMjAxNC0wNi0xMSAxNzoxMjoyMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBiYXNlOiBhZGQgKG51bGxhYmxlKSBhbm5vdGF0aW9ucyB0byByZXR1cm4gdmFsdWVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE1NDIKCjIwMTQtMDYtMjYgMTQ6MDg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJICB0ZXN0czogYWRkIGFub3RoZXIgYnVmZmVyIGxpc3QgdGVzdCBjYXNlCgoyMDE0LTA2LTI2IDEzOjI0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IHBvcnQgYW5kIHJlLWVuYWJsZSBidWZmZXIgbGlzdCB0ZXN0cwoJICBBbmQgcmVtb3ZlIHNvbWUgd2hpY2ggZG9uJ3QgYXBwbHkgYW55IG1vcmUuCgoyMDE0LTA2LTI2IDExOjU4OjA0ICswMzAwICBHZW9yZ2UgS2lhZ2lhZGFraXMgPGdlb3JnZS5raWFnaWFkYWtpc0Bjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGVuaGFuY2UgdGhlIGdzdGNhcHMgdGVzdF9mZWF0dXJlcyB0byBhbHNvIHRlc3QgZ3N0X2NhcHNfc2V0X2ZlYXR1cmVzKCkKCSAgQ29tcGxpbWVudHMgbXkgcHJldmlvdXMgcGF0Y2ggZm9yIGdzdF9jYXBzX3NldF9mZWF0dXJlcywgd2hpY2ggd291bGQKCSAgcHJldmlvdXNseSBhc3NlcnQgYW5kIGxlYWsgdGhlIG9sZCBHc3RDYXBzRmVhdHVyZXMgaWYgdGhlIGNhcHMgYWxyZWFkeQoJICBoYWQgYSBHc3RDYXBzRmVhdHVyZXMgYW5kIHlvdSB3ZXJlIHRyeWluZyB0byByZXBsYWNlIGl0IHdpdGggYSBuZXcgb25lLgoKMjAxNC0wNi0yNiAxMToxNjozNCArMDMwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVuc2V0IHRoZSBwYXJlbnQgcmVmY291bnQgb2YgdGhlIG9sZCBmZWF0dXJlcyBiZWZvcmUgZnJlZWluZyB0aGVtIGluIGdzdF9jYXBzX3NldF9mZWF0dXJlcygpCgkgIE90aGVyd2lzZSBnc3RfY2Fwc19mZWF0dXJlc19mcmVlKCkgYXNzZXJ0cyBhbmQgdGhlIGZlYXR1cmVzIHN0cnVjdHVyZSBpcyBsZWFrZWQKCjIwMTQtMDYtMTYgMTk6MzA6MDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhdm9pZCByZXR1cm5pbmcgX09LIGZvciBfTk9UX0xJTktFRAoJICBXaGVuIHRoZSBwYXJzZXIgcmVjZWl2ZXMgbm9uLWFsaWduZWQgcGFja2V0cyBpdCBjYW4gcHVzaCBhIGJ1ZmZlcgoJICBhbmQgZ2V0IGEgbm90LWxpbmtlZCByZXR1cm4gd2hpbGUgc3RpbGwgbGVhdmluZyBzb21lIGRhdGEgc3RpbGwgdG8KCSAgYmUgcGFyc2VkLiBUaGlzIHJlbWFpbmluZyBkYXRhIHdpbGwgbm90IGZvcm0gYSBjb21wbGV0ZSBmcmFtZSBhbmQKCSAgdGhlIHN1YmNsYXNzIGxpa2VseSByZXR1cm5zIF9PSyBhbmQgYmFzZXBhcnNlIHdvdWxkIHRha2UgdGhhdAoJICBhcyB0aGUgcmV0dXJuLCB3aGlsZSBpdCB0aGUgZWxlbWVudCBpcyBhY3R1YWxseSBub3QtbGlua2VkLgoJICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgYnkgc3RvcmluZyB0aGUgbGFzdCBmbG93LXJldHVybiBmcm9tIGEgcHVzaAoJICBhbmQgdXNpbmcgdGhhdCBpZiBhIHBhcnNpbmcgb3BlcmF0aW9uIGRvZXNuJ3QgcmVzdWx0IGluIGRhdGEgYmVpbmcKCSAgZmx1c2hlZCBvciBza2lwcGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNDc0CgoyMDE0LTA2LTI1IDExOjQwOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmM6CgkgIGVsZW1lbnRzOiBmaXggY29weXJpZ2h0IGFuZCByZW1vdmUgZ3RrLWRvYyBjaHVuawoJICBUcml2aWFsIGFzIGl0IG1heSBiZSwgdGhpcyBjb2RlIHdhcyBtb3N0bHkgY29waWVkIGZyb20KCSAgc29tZXdoZXJlIGVsc2UuIFRoZSBndGstZG9jIGNodW5rIGlzIG5vdCBuZWVkZWQsIHNpbmNlCgkgIGl0J3Mgbm90IHB1YmxpYyBBUEkuCgoyMDE0LTA2LTAyIDIyOjA3OjUyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IElnbm9yZSBzZWVrIGVycm9yIG9uIG5vbi1zZWVrYWJsZSBmaWxlcwoJICBUaGlzIG1ha2UgaXQgd29ya3Mgd2l0aCBGSUZPcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTE3NgoKMjAxNC0wNi0yMiAxOTozNjoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4zLjMgPT09CgoyMDE0LTA2LTIyIDE4OjA3OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy4zCgoyMDE0LTA2LTIyIDE3OjE1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNi0yMiAxNDoyMzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vc3IucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogVXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxNC0wNi0yMiAxMjo1MjowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBnc3RfY2Fwc19pc19hbnkoKSBhbmQgX2lzX2VtcHR5KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvL3Nob3dfYnVnLmNnaT9pZD03MzE3MDQKCjIwMTQtMDYtMjIgMTI6NTA6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBnc3RfY2Fwc19pc19hbnkoKSBzaG91bGQgcmV0dXJuIFRSVUUgb3IgRkFMU0UKCSAgTm90IHNvbWUgZmxhZyB2YWx1ZSBpbnN0ZWFkIG9mIFRSVUUuIEZpeGVzIGNvZGUgbGlrZQoJICBnc3RfY2Fwc19pc19hbnkoKSA9PSBUUlVFLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTczMTcwNAoKMjAxNC0wNi0wMSAxNjo1Njo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlOiByZW5hbWUgImtsYXNzIiBhbmQgZ2V0X2tsYXNzKCkgdG8gImRldmljZS1jbGFzcyIgYW5kIF9nZXRfZGV2aWNlX2NsYXNzKCkKCSAgVGhlcmUncyBzb21lIHByZWNlZGVudCBpbiBHc3RFbGVtZW50RmFjdG9yeSwgYnV0IGEKCSAgImtsYXNzIiBwcm9wZXJ0eSBqdXN0IHNlZW1zIHdlaXJkLgoKMjAxNC0wNi0yMCAxODozNDo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrczogY2Fwc25lZ286IGFkZCAtLWxvb3BzIGNvbW1hbmQgbGluZSBvcHRpb24KCSAgQW5kIGRlZmF1bHQgdG8gNTAgbG9vcHMuCgoyMDE0LTA2LTIwIDE3OjE0OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcms6IGNhcHNuZWdvOiB1c2UgR09wdGlvbkNvbnRleHQgZm9yIG9wdGlvbiBwYXJzaW5nCgoyMDE0LTA2LTE5IDEyOjEwOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBmaXggY29tcGlsZXIgd2FybmluZ3MgaW4gZ3N0dmFsdWUgdGVzdHMKCSAgQ2FsbGluZyBHU1RfVkFMVUVfSE9MRFNfKigmdikgbm93IHJlc3VsdHMgaW4gYSBjb21waWxlcgoJICB3YXJuaW5nIGFib3V0IHZhbHVlIT1OVUxMIGFsd2F5cyBiZWluZyBmYWxzZSwgc28gY2hlY2sKCSAgdHlwZSBkaXJlY3RseSBpbiB0aG9zZSBjYXNlcy4KCjIwMTQtMDYtMTcgMjI6NDU6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBzaW1wbGlmeSBHU1RfVkFMVUVfSE9MRFMgZm9yIG91ciBib3hlZCBhbmQgZnVuZGFtZW50YWwgdHlwZXMKCSAgQm94ZWQgdHlwZXMgY2FuJ3QgYmUgZGVyaXZlZCBmcm9tLCBhbmQgd2UgZG9uJ3Qgc3VwcG9ydAoJICBkZXJpdmluZyBmcm9tIG91ciBzcGVjaWFsIGZ1bmRhbWVudGFsIHR5cGVzICh0aGUgY29kZQoJICBjaGVja3MgZm9yIEdUeXBlIGVxdWFsaXR5IGluIG1vc3QgcGxhY2VzLgoKMjAxNC0wNi0yMCAxNjo1NTowNiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgR3N0RGV2aWNlOiBEb2N1bWVudCBHc3REZXZpY2UgYW5kIHJlbGF0ZWQgY2xhc3NlcwoKMjAxNC0wNi0xNiAxMzo0Nzo1NSArMDIwMCAgU3JpbWFudGEgUGFuZGEgPHNyaW1hbnRhLnBhbmRhQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIEZpeCBmdW5uZWwgRU9TIGhhbmRsaW5nIGFuZCB3cm9uZyB1bml0dGVzdAoJICBXaGVuIG5vIGRhdGEgaXMgY29taW5nIGZyb20gc2lua3BhZHMgYW5kIGVvcyBldmVudHMKCSAgYXJyaXZlZCBhdCBvbmUgb2YgdGhlIHNpbmtwYWQsIGZ1bm5lbCBmb3J3YXJkcyB0aGUgRU9TCgkgIGV2ZW50IHRvIGRvd25zdHJlYW0uIEl0IGZvcndhcmRzIHRoZSBFT1MgYmVjYXVzZSBsYXN0c2luayBwYWQKCSAgaXMgTlVMTC4gQWxzbyB0aGUgdW5pdCB0ZXN0Y2FzZSBvZiB0aGUgZnVubmVsIGlzIG5vdCBjaGVja2luZwoJICB0aGUgY29ycmVjdCBiZWhhdmlvciBhcyBpdCBzaG91bGQuIFRoZSB1bml0IHRlc3QgY2FzZSBzaG91bGQKCSAgZmFpbCBpZiBvbmUgb2YgdGhlIHNpbmsgcGFkIGhhcyBhbHJlYWR5IEVPUyBwcmVzZW50IG9uIGl0IGFuZAoJICB3ZSBhcmUgdHJ5aW5nIHRvIHB1c2ggb25lIG1vcmUgRU9TLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzE2CgoyMDE0LTA2LTE5IDA4OjA5OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBvcHRpbWlzZSBjaGVja3MgZm9yIGxpc3RzCgkgIE91ciBmdW5kYW1lbnRhbCB0eXBlcyBhcmUgbm9uLWRlcml2YWJsZSwgc28gd2UgY2FuCgkgIGp1c3QgY2hlY2sgZm9yIGVxdWFsaXR5LiBBbHNvIGF2b2lkIGRvaW5nIHRoZSBzYW1lCgkgIGNoZWNrIG11bHRpcGxlIHRpbWVzIGluIGEgY291cGxlIG9mIHBsYWNlcy4KCjIwMTQtMDYtMTkgMDg6MDY6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHVzZSBnX2Fzc2VydCgpIGluIGludGVybmFsIGZ1bmN0aW9uIGZvciBhbHJlYWR5LWNoZWNrZWQgdGhpbmdzCgkgIFNvIHRoZXNlIGdldCBjb21waWxlZCBvdXQgZm9yIHJlbGVhc2VzLgoKMjAxNC0wNi0xOSAwODowNTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogYWRkIGludGVybmFsIF9jYW5fY29tcGFyZV91bmNoZWNrZWQoKQoKMjAxNC0wNi0xOSAwODowMzozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogYWRkIGludGVybmFsIF9saXN0X2NvbmNhdCgpIHRoYXQgdGFrZXMgb3duZXJzaGlwIG9mIGlucHV0IHZhbHVlcwoJICBBdm9pZHMgdW5uZWNlc3NhcnkgY29waWVzLgoKMjAxNC0wNi0xOCAxOTowNjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBzaW1wbGlmeSB2YWx1ZSB0eXBlIGNoZWNrcyBpbiBnZXR0ZXJzCgkgIEp1c3QgY2hlY2sgZm9yIEdUeXBlIGVxdWFsaXR5IGluIGNvbW1vbiBjYXNlcy4KCjIwMTQtMDYtMTkgMDk6Mjk6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCBhIEZJWE1FIDIuMCBmb3IgYSBmcmFjdGlvbiByYW5nZXMgb3B0aW1pemF0aW9uCgkgIEN1cnJlbnRseSB3ZSBsZWFrIHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGVtIGFzIHR3byBHVmFsdWVzIHRoYXQKCSAgY29udGFpbiBhIGZyYWN0aW9uLiBXaXRob3V0IHRoaXMgd2UgY291bGQgc3RvcmUgZnJhY3Rpb24gcmFuZ2VzIGFzCgkgIGRhdGFbMF0gPSAobWluX24gPDwgMzIpIHwgKG1pbl9kKQoJICBkYXRhWzFdID0gKG1heF9uIDw8IDMyKSB8IChtYXhfZCkKCSAgYW5kIHdvdWxkbid0IHJlcXVpcmUgYW4gYWRkaXRpb25hbCBhbGxvY2F0aW9uIHBlciByYW5nZS4KCjIwMTQtMDYtMTkgMDk6MjM6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBNYWtlIHN1cmUgdG8gY2FzdCBpbnQgcmFuZ2UgdmFsdWVzIHRvIGd1aW50cyBiZWZvcmUgc3RvcmluZyB0aGVtCgkgIE90aGVyd2lzZSBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBzZXRzIGFsbCBvZiB0aGUgNjQgYml0cyBkdWUgdG8gdHdvJ3MKCSAgY29tcGxlbWVudCdzIGRlZmluaXRpb24gb2YgbmVnYXRpdmUgdmFsdWVzLgoJICBBbHNvIGFkZCBhIHRlc3QgZm9yIG5lZ2F0aXZlIGludCByYW5nZXMuCgoyMDE0LTA2LTE5IDA3OjU3OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZXhwb3J0cwoKMjAxNC0wNi0xOSAwOTowNToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogU3RvcmUgaW50ZWdlciByYW5nZXMgZGlyZWN0bHkgaW4gYSBHVmFsdWUgd2l0aG91dCBhZGRpdGlvbmFsIGFsbG9jYXRpb24KCSAgTWljcm8gb3B0aW1pemF0aW9uIHRvIHNhdmUgc29tZSBhbGxvY2F0aW9ucy4gTmV4dCBzdGVwIHRvIGRvIHRoaXMKCSAgd2l0aCBmcmFjdGlvbiByYW5nZXMgdG9vLgoKMjAxNC0wNi0xOSAwODo0MzowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZ3N0X3ByaXZhdGU6IEZpeCBkdXBsaWNhdGUgZGVmaW5pdGlvbgoKMjAxNC0wNi0xOSAwODowNTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5oOgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICBnc3Q6IFN0b3JlIG1vcmUgYmFzaWMgdHlwZSBHVHlwZXMgaW4gdmFyaWFibGVzCgkgIE1pY3JvIG9wdGltaXphdGlvbiB0byBjaGFuZ2UgYSBmdW5jdGlvbiBjYWxsIHRvIGEgdmFyaWFibGUgYWNjZXNzCgkgIGZvciBhbGwgb3VyIGJhc2ljIHR5cGVzLgoKMjAxNC0wNi0xOSAwODowNDowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IFN0b3JlIG91ciBmdW5kYW1lbnRhbCB0eXBlIEdUeXBlcyBpbiB2YXJpYWJsZXMKCSAgTWljcm8gb3B0aW1pemF0aW9uIHRvIGNoYW5nZSBhIGZ1bmN0aW9uIGNhbGwgdG8gYSB2YXJpYWJsZSBhY2Nlc3MKCSAgZm9yIGFsbCBvdXIgYmFzaWMgdHlwZXMuCgoyMDE0LTA2LTE3IDA3OjMxOjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogU3BlZWQgdXAgZ3N0X3ZhbHVlX2ludGVyc2VjdC9fc3VidHJhY3QKCSAgQm90aCBnc3RfdmFsdWVfaW50ZXJzZWN0IGFuZCBnc3RfdmFsdWVfc3VidHJhY3Qgd2lsbCBjYWxsCgkgIGdzdF92YWx1ZV9jb21wYXJlIGlmIG9uZSBvZiB0aGVpciBhcmd1bWVudHMgaXNuJ3QgYSBsaXN0LgoJICBnc3RfdmFsdWVfY29tcGFyZSB3aWxsIHRoZW4gcmUtZG8gYSBjaGVjayB0byBzZWUgaWYgb25lIG9mCgkgIHRoZSBhcmd1bWVudHMgaXMgYSBsaXN0IChmb3IgdGhlIHNwZWNpYWwgY2FzZSBvZiBjb21wYXJpbmcgYSB1bml0YXJ5CgkgIHZhbHVlIHdpdGggYSBsaXN0IG9mIGxlbmd0aCAxKS4KCSAgVGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgdmFyaW91cyBHX1ZBTFVFX0hPTERTIHJlcHJlc2VudCBhbiBleHBlbnNpdmUKCSAgYW1vdW50IG9mIGNhbGxpbmcgZ3N0X3ZhbHVlX2NvbXBhcmUgKGFsbW9zdCBoYWxmIG9mIGl0KSB0byBzZWUgaWYKCSAgdGhlIHByb3ZpZGVkIGFyZ3VtZW50cyBhcmUgbGlzdC4gVGhlc2UgY2hlY2tzIGNhbiBiZSBkb25lIHdpdGhvdXQKCSAgd2hlbiB3ZSBrbm93IHRoYXQgdGhlIGFyZ3VtZW50cyBhcmVuJ3QgbGlzdHMuCgkgICogQ3JlYXRlIGEgbmV3ICJub2xpc3QiIGdzdF92YWx1ZV9jb21wYXJlIHdoaWNoIGF2b2lkcyB0aGF0IHNwZWNpYWwKCSAgY2FzZSBjb21wYXJpc2lvbgoJICBCZW5jaG1hcmtzOgoJICB2YWxncmluZC9jYWxsZ3JpbmQ6IGF2ZXJhZ2Ugc3BlZWR1cCBpbiBpbnN0cnVjdGlvbiBjYWxscyBmb3IKCSAgZ3N0X3ZhbHVlX2ludGVyc2VjdCBhbmQgZ3N0X3ZhbHVlX3N1YnRyYWN0IGlzIGFyb3VuZCA1NiUgKE1ha2VzIDYzJQoJICBvZiB0aGUgY2FsbHMgaXQgdXNlZCB0byB0YWtlIHByZXZpb3VzbHkpCgkgIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ286IFdpdGggZGVmYXVsdCBzZXR0aW5ncyAoZGVwdGggNCwgY2hpbGRyZW4gMwoJICA2MDcgZWxlbWVudHMpLCB0aW1lIHRha2VuIGZvciB0cmFuc2l0aW9uIGZyb20gUkVBRFkgdG8gUEFVU0VEOgoJICBCZWZvcmUgOiAwMC4zOTE1MTkxNTMKCSAgQWZ0ZXIgIDogMDAuMjIwMzk3NDkyCgkgIDU2JSBvZiB0aGUgdGltZSBwcmV2aW91c2x5IHVzZWQsICs3NyUgc3BlZWR1cAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNzU2CgoyMDE0LTA2LTE3IDE0OjM5OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IHJlbW92ZSBzb21lIGNydWZ0IGZyb20gdGhlIGJ1ZmZlcmxpc3QgdGVzdAoJICBCdWZmZXJzIG5vIGxvbmdlciBjYXJyeSBjYXBzLCBhbmQgYnVmZmVybGlzdHMgZG9uJ3QgaGF2ZQoJICBncm91cHMgd2hlcmUgYnVmZmVycyBtYXkgbmVlZCB0byBiZSBtZXJnZWQgaW50byBvbmUgYW55IG1vcmUuCgoyMDE0LTA2LTE2IDIwOjMwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IGZvciBnc3RfYnVmZmVyX2xpc3RfcmVtb3ZlKCkKCjIwMTQtMDYtMTYgMjA6Mjk6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBmaXggYnVmZmVyIGxlYWsgaW4gX3JlbW92ZSgpCgoyMDE0LTA2LTE2IDA5OjE4OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RmbG93Y29tYmluZXIuYzoKCSAgZmxvd2NvbWJpbmVyOiBmaXggZy1pIHRyYW5zZmVyIGFubm90YXRpb25zCgoyMDE0LTA2LTE2IDA4OjQxOjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjogRml4ZWQgR0JveGVkQ29weUZ1bmMKCSAgSSdsbCBqdXN0IHF1b3RlIHRoZSBtb3N0IGludGVyZXN0aW5nIG1hbiBpbiB0aGUgd29ybGQ6CgkgICJJIGRvbid0IHVzdWFsbHkgcHVzaCBjb21taXRzLCBidXQgd2hlbiBJIGRvIEkgZG9uJ3QgY29tcGlsZSBpdAoJICBmaXJzdCIKCjIwMTQtMDYtMTQgMTY6MzA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvci5oOgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5jOgoJICBkZXZpY2Vtb25pdG9yOiBzb21lIGRvY3MgYWRkaXRpb25zIGFuZCBmaXhlcwoKMjAxNC0wNi0xNCAxNjoyODo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBleHBvcnRzIGZvciBuZXcgZ2V0X3R5cGUoKSBmdW5jdGlvbgoKMjAxNC0wNi0xNCAxMTozMTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkgIGZsb3djb21iaW5lcjoga2VlcCBhIHJlZiB0byB0aGUgcGFkcyB3ZSdyZSB1c2luZwoJICBOZWVkZWQgZm9yIHVzZSB2aWEgdGhlIGJveGVkIHR5cGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzEzNTUKCjIwMTQtMDYtMTQgMTA6NTQ6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGZsb3djb21iaW5lci5oOgoJICBmbG93Y29tYmluZXI6IGFkZCBib3hlZCB0eXBlIGZvciBiaW5kaW5ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzU1CgoyMDE0LTA2LTExIDE2OjI4OjUxIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJICBpbnRyb3NwZWN0aW9uOiBtaW5vciBhbm5vdGF0aW9uIGFkZGl0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxNTQxCgoyMDE0LTA2LTExIDE5OjA4OjA0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogaW5jbHVkZSBnc3R2ZXJzaW9uLmggaW4gR0lSIGdlbmVyYXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzAyMQoKMjAxNC0wNi0xMCAxMDoyMzoxMyAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogVXNlIGNvbmNpc3RhbnQgZGVyZWZlbmNlIG1ldGhvZAoJICBUaGlzIGlzIG1pbm9yIHN0eWxlIGZpeCB0byBub3QgbWl4ICp2YXIgYW5kIHZhcltOXS4KCjIwMTQtMDYtMTAgMDk6MzU6MzggLTA0MDAgIFN1bmdobyBCYWUgPGJhdmVyLmJhZUBsZ2UuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IFVzZSBwb2ludGVyIGluc3RlYWQgb2YgaW5kZXggYWNjZXNzCgkgIEN1cnJlbnRseSB0aGUgc2NhbiB1c2VzIEJveWVyLW1vb3JlIG1ldGhvZCBhbmQgaXRzIHBlcmZvcm1hbmNlIGlzIGdvb2QuCgkgIGJ1dCwgaXQgY2FuIGJlIG9wdGltaXplZCBmcm9tIGFuIGltcGxlbWVudGF0aW9uIG9mIHZpZXcuCgkgIFRoZSBvcmlnaW5hbCBzY2FuIGNvZGUgaXMgaW1wbGVtZW50ZWQgYnkgYnl0ZSBhcnJheSBhbmQgaW5kZXgtYmFzZWQgYWNjZXNzLgoJICBJbiBfc2Nhbl9mb3Jfc3RhcnRfY29kZSgpLCB0aGUgaW5kZXggaXMgaW5jcmVhc2luZyBmcm9tIHN0YXJ0IHRvIGVuZCBhbmQgdGhlCgkgIGJhc2UgYWRkcmVzcyBvZiB0aGUgYnl0ZSBhcnJheSBpcyByZWZlcnJlZCB0byBhcyByZXR1cm4gdmFsdWUuCgkgIEluIHRoZSBjYXNlLCBpbmRleC1iYXNlZCBhY2Nlc3MgY2FuIGJlIHJlcGxhY2VkIGJ5IHBvaW50ZXIgYWNjZXNzLCB3aGljaAoJICBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBieSByZW1vdmluZyBpbmRleC1yZWxhdGVkIG9wZXJhdGlvbnMuCgkgIEl0cyBwZXJmb3JtYWNlIGlzIGVuaGFuY2VkIGJ5IGFwcHJveGltYXRlbHkgOCUgb24gYXJtLWJhc2VkIGVtYmVkZGVkIGRldmljZXMuCgkgIEFsdGhvdWdoIGl0IHNlZW1zIHRyaXZpYWwsIGl0IGNhbiBhZmZlY3QgdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2UgYmVjYXVzZSB0aGUKCSAgX3NjYW5fZm9yX3N0YXJ0X2NvZGUoKSBmdW5jdGlvbiBpcyB2ZXJ5IG9mdGVuIGNhbGxlZCB3aGVuIEguMjY0L0guMjY1IHZpZGVvIGlzCgkgIHBsYXllZC4KCSAgSW4gYWRkaXRpb24sIHRoZSB0ZWNobmlxdWUgY2FuIGFwcGx5IGZvciBhbGwgYXJjaGl0ZWN0dXJlcyBhbmQgaXQgaXMgZ29vZCBpbgoJICB2aWV3IG9mIHJlYWRhYmlsaXR5IGFuZCBtYWludGFpbmFiaWxpdHkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzE0NDIKCjIwMTQtMDYtMDcgMTA6MTM6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Z2xvYmFsZGV2aWNlbW9uaXRvci5oOgoJICBnbG9iYWxkZXZpY2Vtb25pdG9yOiBwcmV0dGlmeSBoZWFkZXIKCjIwMTQtMDYtMDcgMDk6NDY6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHF1ZXVlYXJyYXkgZXhwYW5zaW9uIGZyb20gMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzQ5CgoyMDE0LTA2LTA2IDE2OjM2OjAwIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBmaXggZXhwYW5kaW5nIHNpemUgb2YgcXVldWUgZnJvbSAxCgkgIFdpdGhvdXQgd2Ugd291bGQgbm90IGFjdHVhbGx5IGV4cGFuZCBhbmQgYWNjZXNzCgkgIG1lbW9yeSBiZXlvbmQgdGhlIGFsbG9jYXRlZCByZWdpb24gZm9yIHRoZSBhcnJheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMTM0OQoKMjAxNC0wNi0wNSAxNjo1NToxNSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBuZW1lcnNvbi5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IGNsZWFyIHVwIGRvY3VtZW50YXRpb24gb2YgZ3N0X2RhdGFfcXVldWVfbmV3CgkgIFRoZSBncG9pbnRlciBhcmd1bWVudCBpcyBwYXNzZWQgdG8gYWxsIHRocmVlIGNhbGxiYWNrcywgbm90IGp1c3Qgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMzAyCgoyMDE0LTA1LTMwIDAwOjE3OjA2IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguYzoKCSAgaW50cm9zcGVjdGlvbjogZml4IHNvbWUgbWlub3IgYW5ub3RhdGlvbiBidWdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5ODIKCjIwMTQtMDYtMDUgMTI6Mzg6MjAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AbmVtZXJzb24uY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBiYXNlOiB1c2UgY29ycmVjdCBzeW50YXggaW4gZG9jdW1lbnRhdGlvbiBtb3JlIGNvbnNpc3RlbnRseQoJICBQcmV2aW91c2x5LCBtYW55IGNvbnN0YW50cyB3ZXJlIHByZWZpeGVkIHdpdGggIyBvciB1bnByZWZpeGVkLAoJICBzb21lIGZ1bmN0aW9ucyBhbmQgbWFjcm9zIHdlcmUgcHJlZml4ZWQgd2l0aCAjIGluc3RlYWQgb2Ygc3VmZml4ZWQKCSAgd2l0aCAoKSwgZXRjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMjkzCgoyMDE0LTA1LTA3IDE4OjI2OjM4ICswODAwICB6aG91bWluZyA8em1hZm94QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUGFzcyByYXRlIG9mIGlucHV0IHNlZ21lbnQgdG8gb3V0cHV0IHNlZ21lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTcwMQoKMjAxNC0wNC0wNyAxNDo0OTo1OSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzX3ByaXZhdGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50c19wcml2YXRlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZ3N0YnVmZmVyOiBmYWN0b3IgdGhyZWUgZmxhZ3MtdG8tc3RyaW5nIGxvb3BzCgoyMDE0LTA2LTAzIDIzOjQyOjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbWFrZSBwcmludGluZyBkYXRldGltZXMgd29yayB3aXRoIEdTVF9QVFJfRk9STUFUCgoyMDE0LTA2LTAzIDIzOjM4OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRhdGV0aW1lOiBjaGFuZ2UgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gdG8gbWluaSBvYmplY3QKCSAgQW5kIG1vdmUgdHlwZSBzdHVmZiBmcm9tIEdzdFZhbHVlIHRvIEdzdERhdGVUaW1lLgoKMjAxNC0wNi0wMyAyMjoxOTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBmaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZQoKMjAxNC0wNi0wMyAyMjoxMjoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IGltcHJvdmUgc3RhcnQvc3RvcCBpbiBidWZmZXJpbmcgcXVlcnkKCSAgVGhlIHN0YXJ0IGFuZCBzdG9wIHNob3VsZCByZXByZXNlbnQgdGhlIGN1cnJlbnRseSBkb3dubG9hZGluZyByZWdpb24uCgkgIFRoZSBlc3RpbWF0ZWQtdG90YWwgc2hvdWxkIHJlcHJlc2VudCB0aGUgcmVtYWluaW5nIHRpbWUgdG8gZG93bmxvYWQKCSAgdGhlIGN1cnJlbnRseSBkb3dubG9hZGluZyByZWdpb24uIFRoaXMgbWFrZXMgaXQgYSBsb3QgbW9yZSB1c2VmdWwKCSAgZm9yIGFwcGxpY2F0aW9ucyBiZWNhdXNlIHRoZXkgY2FuIHRoZW4gdXNlIHRob3NlIHZhbHVlcyB0byB1cGRhdGUKCSAgdGhlIGZpbGwgcmVnaW9uIGFuZCB1c2UgdGhlIGVzdGltYXRlZCB0aW1lIHRvIGRlbGF5IHBsYXliYWNrLgoJICBVcGRhdGUgdGhlIGRvY3Mgd2l0aCB0aGlzIGNsYXJpZmljYXRpb24uCgoyMDE0LTA0LTA3IDE0OjM1OjA0ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGFkZCBzdGF0aWMgYW5kIGNvbnN0IHdoZXJlIGFwcHJvcHJpYXRlCgoyMDE0LTA0LTA3IDE0OjMxOjE3ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGZpeCBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93CgkgIENvdmVyaXR5IDEwMzcxNTUKCjIwMTQtMDYtMDMgMTQ6NDk6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJICBkb3dubG9hZGJ1ZmZlcjogcmVzZXQgcmVhZCBhbmQgd3JpdGUgcG9zaXRpb25zCgkgIFJlc2V0IHRoZSByZWFkIGFuZCB3cml0ZSBwb3NpdGlvbnMgcmlnaHQgYWZ0ZXIgd2Ugb3BlbiB0aGUgZmlsZSBvciBmbHVzaAoJICBpdC4gV2UgYXJlIGFsc28gaW4gdGhlIGJ1ZmZlcmluZyBzdGF0ZSB3aXRoIDAgcGVyY2VudCBidWZmZXJlZCB3aGVuIHdlCgkgIHN0YXJ0LgoKMjAxNC0wNi0wMyAxNDo0NzoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXJzdCBoYW5kbGUgYWxsIG1pbmlvYmplY3RzLCB0aGVuIEdPYmplY3RzCgkgIEZpcnN0IGhhbmRsZSBhbGwgbWluaW9iamVjdHMgYmVmb3JlIHdlIGF0dGVtcHQgdG8gZGVyZWZlcmVuY2UgdGhlIGZpcnN0CgkgIGZpZWxkIHBvaW50ZXIgYW5kIGxvb2sgYXQgdGhlIEdUeXBlLiBXaXRoIHRoZSByZWNlbnQgZ2xpYiBjaGFuZ2UgdG8KCSAgc3BlZWQgdXAgR19JU19PQkpFQ1QsIHRoaXMgY2F1c2VzIGNyYXNoZXMgb24gbWluaW9iamVjdHMgb3RoZXJ3aXNlLgoKMjAxNC0wNi0wMyAxNDo0NjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBHc3REYXRlVGltZSBkb2VzIG5vdCBoYXZlIGEgR1R5cGUgYXMgZmlyc3QgZmllbGQKCSAgR3N0RGF0ZVRpbWUgZG9lcyBub3QgaGF2ZSB0aGUgR1R5cGUgYXMgdGhlIGZpcnN0IGZpZWxkIHNvIHdlIGNhbid0IHVzZQoJICBpdCB0byBkZXRlY3QgaXRzIHR5cGUuCgoyMDE0LTA2LTAzIDE0OjQ1OjIyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHVzZSBtYWNyb3MgdG8gY2hlY2sgdHlwZXMKCSAgVXNlIHRoZSBtYWNyb3MgdG8gY2hlY2sgdGhlIHR5cGUgb2Ygb2JqZWN0cyBpbnN0ZWFkIG9mIGRpcmVjdGx5IHBva2luZwoJICBhdCB0aGUgZmlyc3QgZmllbGQuCgoyMDE0LTA2LTAxIDIzOjUxOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSAgZ2xvYmFsZGV2aWNlbW9uaXRvcjogY29ubmVjdCBzeW5jLW1lc3NhZ2Ugc2lnbmFsIG9uIHRoZSByaWdodCBvYmplY3QKCSAgRml4ZXMgY3JpdGljYWxzIGF0IHJ1bnRpbWUgYW5kIG1ha2VzIHN0dWZmIGFjdHVhbGx5IHdvcmsuCgoyMDE0LTA1LTMxIDE3OjM1OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEtlZXAgc3RpbGwgbWVhbmluZ2Z1bGwgcGVuZGluZyBldmVudHMgb24gRkxVU0hfU1RPUAoJICBPbmx5IEVPUyBhbmQgc2VnbWVudCBzaG91bGQgYmUgZGVsZXRlZCBpbiB0aGF0IGNhc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk4NjgKCjIwMTQtMDUtMzAgMDk6MTM6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBSZXZlcnQgIm1pbmlvYmplY3Q6IEFkZCBtaXNzaW5nIChudWxsYWJsZSkgYW5ub3RhdGlvbnMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTYzNjFlOWI1YzVkMDBkYzc3MTJmZjNhOWFjZmJlMTBkZjdjZDlmZS4KCSAgVGhpcyB3YXMgbm90IHN1cHBvc2VkIHRvIGJlIHB1c2hlZCB5ZXQhCgoyMDE0LTA1LTMwIDA5OjEyOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogSXQncyBwb29sLCBub3QgcG9vLi4uIGV2ZW4gd2hlbiB0YWxraW5nIGFib3V0IGZsdXNoaW5nCgoyMDE0LTA1LTI4IDEwOjE0OjQ1ICswMTAwICBQaGlsaXAgV2l0aG5hbGwgPHBoaWxpcC53aXRobmFsbEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBBZGQgbWlzc2luZyAobnVsbGFibGUpIGFubm90YXRpb25zCgkgIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCkgY2FuIHRha2UgTlVMTCBtaW5pLW9iamVjdHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA4NzMKCjIwMTQtMDUtMzAgMDE6NDI6MTcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogbXVsdGlxdWV1ZTogZml4IGxlYWtzCgoyMDE0LTA1LTI5IDE0OjU0OjM0IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkZXZpY2UuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IGNvbnZlcnQgTlVMTCwgVFJVRSwgYW5kIEZBTFNFIHRvICVOVUxMLCAlVFJVRSwgYW5kICVGQUxTRQoJICBUaGlzIHNob3VsZCBoZWxwIGltcHJvdmUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgZm9yCgkgIGxhbmd1YWdlcyBvdGhlciB0aGFuIEMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzA5NjEKCjIwMTQtMDUtMzAgMDA6MTM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGRvY3M6IGZpeCB0eXBlIGluIEdzdE9iamVjdCBkb2NzCgoyMDE0LTA1LTI5IDE1OjA0OjQ1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQG5lbWVyc29uLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBnc3RfYnVmZmVyX3Bvb2xfaGFzX29wdGlvbigpIGRvY3VtZW50YXRpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDk2MgoKMjAxNC0wNS0yOSAxNDowNzoxNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBzZXQgcGFkcyBuZWVkLXBhcmVudCBmbGFnIHRvIGZhbHNlIHdoZW4gcmVtb3ZpbmcKCSAgV2hlbiBhIHBhZCBpcyBhZGRlZCB0aGUgbmVlZC1wYXJlbnQgZmxhZyBpcyBzZXQgdG8gdHJ1ZSwgc28gd2hlbgoJICB0aGV5IGFyZSByZW1vdmVkIHRoZSBmbGFnIHNob3VsZCBiZSBzZXQgYmFjayB0byBmYWxzZQoJICBUaGlzIHdhcyBwcmV2ZW50aW5nIEdzdFBhZHMgdG8gYmUgcmV1c2VkIGluIGVsZW1lbnRzIChyZW1vdmVkIGFuZAoJICBsYXRlciByZS1hZGRlZCkuIEEgdW5pdCB0ZXN0cyB3YXMgYWRkZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBpcwoJICB3b3JraW5nIG5vdy4KCSAgVGhlIHVzZSBjYXNlIGlzIHRzZGVtdXggdGhhdCBoYXMgYSBwcm9ncmFtLW51bWJlciBwcm9wZXJ0eSBhbmQKCSAgYWxsb3dzIHRoZSB1c2VyIHRvIHN3aXRjaCBwcm9ncmFtcy4gSW4gb3JkZXIgdG8gZG8gdGhhdCB0c2RlbXV4CgkgIHdpbGwgcmVtb3ZlIHRoZSBwYWRzIG9mIHRoZSBjdXJyZW50IHByb2dyYW0gYW5kIGFkZCBmcm9tIHRoZSBuZXcKCSAgb25lcy4gVGhlIHJlbW92ZWQgcGFkcyBhcmUga2VwdCBpbiB0aGUgZGVtdXhlciBmb3IgbGF0ZXIgaWYgdGhlCgkgIHVzZXIgc2VsZWN0cyB0aGUgb2xkIHByb2dyYW0gYWdhaW4uCgoyMDE0LTA1LTI3IDA4OjA5OjM2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBwb3N0IGJ1ZmZlcmluZyBtZXNzYWdlIHdoZW4gcXVldWVzIGZsdXNoCgkgIFRoZSBidWZmZXJpbmcgc3RhdHVzIGdvZXMgYmFjayB0byAwLCBzbyBpbmZvcm0gdGhlIGFwcGxpY2F0aW9uIGFib3V0IGl0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY0MjMKCjIwMTQtMDUtMjkgMTQ6Mzk6MzYgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlOiBJZ25vcmUgVklNIHN3YXAgZmlsZXMKCjIwMTQtMDUtMjcgMTM6MzY6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiB0d28gbWlub3IgZG9jcyBmaXhlcwoKMjAxNC0wNS0yNyAxMDowOTowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGZsb3djb21iaW5lcjogYmVhdXRpZnkgaGVhZGVycyBhIGxpdHRsZQoKMjAxNC0wNS0yNyAxMDowNTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkgIGRvY3M6IGFkZCBHc3RGbG93Q29tYmluZXIKCjIwMTQtMDUtMjcgMDk6NTU6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2Jhc2UuaDoKCSAgYmFzZTogaW5jbHVkZSBmbG93Y29tYmluZXIgaGVhZGVyIGZyb20gYmFzZS5oCgoyMDE0LTA1LTI2IDEyOjMxOjMzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Zmxvd2NvbWJpbmVyLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZmxvd2NvbWJpbmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZmxvd2NvbWJpbmVyOiBhZGQgR3N0Rmxvd0NvbWJpbmVyCgkgIEFkZHMgYSB1dGlsaXR5IHN0cnVjdCB0aGF0IGlzIGNhcGFibGUgb2Ygc3RvcmluZyBhbmQgYWdncmVnYXRpbmcgZmxvdyByZXR1cm5zCgkgIGFzc29jaWF0ZWQgd2l0aCBwYWRzLgoJICBUaGlzIHdheSBhbGwgZGVtdXhlcnMgd2lsbCBoYXZlIGEgc3RhbmRhcmQgZnVuY3Rpb24gdG8gdXNlIGFuZCBoYXZlIHRoZQoJICBzYW1lIGV4cGVjdGVkIHJlc3VsdHMuCgkgIEluY2x1ZGVzIHRlc3RzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjI0CgoyMDE0LTA1LTIzIDEzOjI1OjM1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IHN0b3JlIGxhc3QgZmxvdyByZXR1cm4gYW5kIHByb3ZpZGUgYWNlc3NvciBmdW5jdGlvbgoJICBTdG9yZXMgdGhlIGxhc3QgcmVzdWx0IG9mIGEgZ3N0X3BhZF9wdXNoIG9yIGEgcHVsbCBvbiB0aGUgR3N0UGFkIGFuZCBwcm92aWRlcwoJICBhIGdldHRlciBhbmQgYSBtYWNybyB0byBhY2Nlc3MgdGhpcyBmaWVsZC4KCSAgV2hlbmV2ZXIgdGhlIHBhZCBpcyBpbmFjdGl2ZSBpdCBpcyBzZXQgdG8gRkxVU0hJTkcKCSAgQVBJOiBnc3RfcGFkX2dldF9sYXN0X2Zsb3dfcmV0dXJuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyMjQKCjIwMTQtMDUtMjMgMTU6MjY6NTkgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBBZGQgbWV0aG9kIGFuZCB2aXJ0dWFscyB0byBzZXQgZmx1c2hpbmcgc3RhdGUKCSAgQ3VycmVudGx5IHRoZXJlIGlzIG5vIG90aGVyIHdheSB0byB1bmxvY2sgYSBidWZmZXIgcG9vbCBvdGhlciB0aGVuCgkgIHN0b3BwaW5nIGl0LiBUaGlzIG1heSBoYXZlIHRoZSBlZmZlY3Qgb2YgZnJlZWluZyBhbGwgdGhlIGJ1ZmZlcnMsCgkgIHdoaWNoIGlzIHRvbyBoZWF2eSBmb3IgYSBzZWVrLiBUaGlzIHBhdGNoIGFkZCBhIG1ldGhvZCB0byBlbnRlciBhbmQKCSAgbGVhdmUgZmx1c2hpbmcgc3RhdGUuIEFzIGEgY29udmVuaWVuY2UsIGZsdXNoX3N0YXJ0L2ZsdXNoX3N0b3AKCSAgdmlydHVhbCBhcmUgYWRkZWQgc28gcG9vbCBpbXBsZW1lbnRhdGlvbiBjYW4gYWxzbyB1bmJsb2NrIHRoZWlyIG93bgoJICBpbnRlcm5hbCBwb2xsIGF0b21pY2FsbHkgd2l0aCB0aGUgcmVzdCBvZiB0aGUgcG9vbC4gIFRoaXMgaXMgZnVsbHkKCSAgYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIGRvaW5nIHN0b3Avc3RhcnQgdG8gYWN0dWFsbHkgZmx1c2ggdGhlIHBvb2wKCSAgKGFzIGJlaW5nIGRvbmUgaW4gR3N0QmFzZVNyYykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc2MTEKCjIwMTQtMDUtMjYgMTQ6MjM6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUGFzc3Rocm91Z2ggQUxMT0NBVElPTiBxdWVyaWVzIGluIHBhc3N0aHJvdWdoIG1vZGUgZXZlbiBpZiB3ZSBoYWQgbm8gY2FwcyB5ZXQKCSAgT3IgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgY2FyZSBhYm91dCBjYXBzIGF0IGFsbC4KCSAgQWxzbyByZW1vdmUgYW4gYXNzaWduZWQgYnV0IHVudXNlZCBsb2NhbCB2YXJpYWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDI2OAoKMjAxNC0wNS0yNSAxNjoxMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUKCjIwMTQtMDUtMjUgMTY6NTc6NTkgKzAyMDAgIFBpb3RyIERyxIVnIDxwaW90cmRyYWdAZ21haWwuY29tPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHBvOiB1cGRhdGUgUE9URklMRVMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTczMDcxOAoKMjAxNC0wNS0yMSAxMzoyMzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4zLjIgPT09CgoyMDE0LTA1LTIxIDEzOjA2OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4zLjIKCjIwMTQtMDUtMjEgMTE6Mzk6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDE0LTA1LTIxIDEwOjUwOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDIxMWZhNWYgdG8gMWY1ZDNjMwoKMjAxNC0wNS0xOSAxMTowNToxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHNvbWUgcG9zaXRpdmUgdGVzdGNhc2UgZm9yIHN0cmluZyBkZXNlcmlhbGl6YXRpb24KCjIwMTQtMDUtMTggMTA6NDk6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBSRUFETUU6CgkqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIE1hbmRyYWtlIGFuZCBwYWNrYWdlcyB3ZSBubyBsb25nZXIgcHJvdmlkZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMwMzEyCgoyMDE0LTA1LTE1IDE2OjQxOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDE0LTA1LTE0IDEzOjQwOjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGZpeCBjb21waWxlciB3YXJuaW5nIG9uIHdpbmRvd3MKCSAgZ3N0cGx1Z2lubG9hZGVyLmM6NTg0OjE6IGVycm9yOiBsYWJlbCAnYmVhY2gnIGRlZmluZWQgYnV0IG5vdCB1c2VkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MzAxMjUKCjIwMTQtMDUtMTMgMTk6NTE6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3BhcnNlZmlsZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuaDoKCSAgZWxlbWVudHM6IGRvbid0IGRlcGVuZCBvbiBsaWJnaW8ganVzdCBmb3IgZ19pb19lcnJvcl9mcm9tX2Vycm5vKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTk0OQoKMjAxNC0wNS0xMyAxOTozMDozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHNwYXJzZWZpbGUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzcGFyc2VmaWxlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3BhcnNlZmlsZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHNwYXJzZWZpbGU6IGtlZXAgaXQgcHJpdmF0ZSBhcyBoZWxwZXIgQVBJIGZvciBkb3dubG9hZGJ1ZmZlcgoJICBUaGVyZSdzIG5vIGV4cGVjdGF0aW9uIHRoYXQgYW55IG90aGVyIGVsZW1lbnQgb3IgYXBwbGljYXRpb25zCgkgIG1pZ2h0IHdhbnQgdG8gdXNlIHRoaXMgaGVscGVyIEFQSSBhbnkgdGltZSBzb29uLCBzbyBrZWVwIGl0CgkgIHByaXZhdGUgZm9yIHRoZSB0aW1lIGJlaW5nLiBUaGVyZSB3ZXJlIG9wZW4gcXVlc3Rpb25zIHJlZ2FyZGluZwoJICBwb3J0YWJpbGl0eSBhbmQgYmluZGluZy1mcmllbmRsaW5lc3MgdG9vLgoJICBUaGlzIGFsc28gcmVtb3ZlcyB0aGUgZ2lvIGRlcGVuZGVuY3kgb2YgLWJhc2UgYWdhaW4uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk5NTEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTk0OQoKMjAxNC0wNS0xMyAxOToxNDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgZG9jczogcGljayB1cCBHc3RCYXNlUGFyc2UgaGllcmFyY2h5IGFuZCBwcm9wZXJ0aWVzCgoyMDE0LTA1LTEzIDE5OjEwOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogZXhwb3NlIEdzdFB1c2hTcmNDbGFzcyBpbiBkb2N1bWVudGF0aW9uCgkgIE1pZ2h0IGNvbWUgaW4gaGFuZHkgaW4gY2FzZSBzb21lb25lIHdhbnRzIHRvIGRlcml2ZSBmcm9tIGl0LgoKMjAxNC0wNS0xMiAxNzowMzo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBEb24ndCBsZWFrIHBsdWdpbmxvYWRlciBpbiBlcnJvciBjYXNlcwoJICBDSUQgIzEyMTIxNTQKCjIwMTQtMDUtMTIgMTY6NTk6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBEb24ndCBsZWFrIGZlYXR1cmVzIG9uIGVycm9yIGNhc2VzCgkgIElmIHdlIGZhaWwgdG8gcGFyc2UgZmllbGRzLCB3ZSB3b3VsZCBlbmQgdXAgbGVha2luZyB0aGUgZmVhdHVyZXMgd2UKCSAgcGFyc2VkIGp1c3QgYmVmb3JlCgkgIENJRCAjMTIxMjE1MgoKMjAxNC0wNS0wOSAxNDoyODo1OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IENvcnJlY3RseSByZXNldCBjb25maWd1cmF0aW9uCgkgIFdoZW4gcG9vbCBjYW4ndCB3ZSB1c2UsIGFuZCB3ZSBmYWxsIGJhY2sgdG8gZGVmYXVsdCBwb29sLCB3ZSBuZWVkIHRvCgkgIGNvcnJlY3RseSByZXNldCB0aGF0IHBvb2wgY29uZmlndXJhdGlvbi4KCjIwMTQtMDUtMDkgMTQ6NDY6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogVXNlIG5vbi1mcmVlZCB2YXJpYWJsZQoJICBhZGRyZXNzIGlzIG9ubHkgdXNlZCB0ZW1wb3JhcmlseS4gVXNlIHRoZSBwcm9wZXIgdmFyaWFibGUgaW5zdGVhZC4KCSAgQ0lEICMxMjEyMTg5CgoyMDE0LTA1LTA4IDE3OjMzOjM3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgdGVzdHM6IG11bHRpcXVldWU6IHRlc3QgdG8gY2hlY2sgcXVldWUgb3ZlcnJ1biB3aXRoIHB0cz1ub25lCgkgIENoZWNrcyBpZiBidWZmZXJzIHdpdGggcHRzPW5vbmUgY2FuIGJyZWFrIHRoZSBxdWV1ZSB0aW1lIHNpemUgbGltaXQKCSAgYW5kIGFsbG93IG1vcmUgYnVmZmVycyB0aGFuIGV4cGVjdGVkCgoyMDE0LTA1LTA4IDE0OjQ4OjAwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiBGaXggMzJiaXQgYnVpbGQKCSAgZm9ybWF0ICclbGxpJyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyBpbnQnLCBidXQgYXJndW1lbnQgOCBoYXMgdHlwZSAnZ3NpemUnCgoyMDE0LTA1LTA4IDE0OjEyOjE2IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgcG9vbC1uZWdvOiBDb3JyZWN0bHkgcmVzZXQgdGhlIGNvbmZpZ3VyYXRpb24KCSAgV2hlbiBwb29sIGNhbm5vdCBiZSB1c2VkLCBjb3JyZWN0bHkgcmVzZXQgdGhlIGNvbmZpZ3VyYXRpb24gYmVmb3JlCgkgIGNvbmZpZ3VyYXRpb24gYSBkZWZhdWx0IHBvb2wuCgoyMDE0LTA0LTE1IDE0OjE3OjAwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHBvb2wtbmVnbzogUmV0cnkgc2V0dGluZyBjb25maWd1cmF0aW9uIHdpdGggbW9kaWZpZWQgY29uZmlnCgkgIEJ1ZmZlciBwb29sIHNldF9jb25maWcoKSBtYXkgcmV0dXJuIEZBTFNFIGlmIHJlcXVlc3RlZCBjb25maWd1cmF0aW9uIG5lZWRlZAoJICBzbWFsbCBjaGFuZ2VzLiBSZWdldCB0aGUgY29uZmlnIGFuZCB0cnkgc2V0dGluZyBpdCBhZ2FpbiAodmFsaWRhdGluZyB0aGUKCSAgY2hhbmdlcyBmaXJzdCkuIFRoaXMgZW5zdXJlIHdlIGhhdmUgYSBjb25maWd1cmVkIHBvb2wgaWYgcG9zc2libGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5MTYKCjIwMTQtMDUtMDggMTI6NDc6NDMgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJwb29sLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiBBZGQgYW4gaGVscGVyIHRvIHZhbGlkYXRlIGNvbmZpZwoJICBXaGVuIHdlIGNhbGwgZ3N0X2J1ZmZlcl9wb29sX3NldF9jb25maWcoKSB0aGUgcG9vbCBtYXkgcmV0dXJuIEZBTFNFIGFuZAoJICBzbGlnaHRseSBjaGFuZ2UgdGhlIHBhcmFtZXRlcnMuIFRoaXMgaGVscGVyIGlzIHVzZWZ1bCB0byBkbyB0aGUgbWluaWFsIHJlcXVpcmVkCgkgIHZhbGlkYXRpb24gYmVmb3JlIGFjY2VwdGluZyB0aGUgbW9kaWZpZWQgY29uZmlndXJhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzkxNgoKMjAxNC0wNC0wOCAxOToyNzo1NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogVXBkYXRlIHRoZSBjb25maWd1cmUgZXZlbiBpZiBzZXRfY29uZmlnKCkgcmV0dXJuZWQgZmFsc2UKCSAgQWNjb3JkaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9uLCB3aGVuIHNldF9jb25maWcoKSByZXR1cm4gZmFsc2UsIGl0IHNob3VsZCBiZQoJICBwb3NzaWJsZSB0byByZWFkIHRoZSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBjb25maWcuIFRoaXMgcGF0Y2ggZml4ZXMgdGhlCgkgIGltcGxlbWVudGF0aW9uIHNvIGl0IGlzIG5vdyBhY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5MTYKCjIwMTQtMDUtMDYgMTU6MzU6MTQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogQWRkIHN1cHBvcnQgZm9yIHJlY29uZmlndXJpbmcgYSBwb29sCgkgIElmIGEgcG9vbCBjb25maWcgaXMgYmVpbmcgY29uZmlndXJlZCBhZ2FpbiwgY2hlY2sgaWYgdGhlIGNvbmZpZ3VyYXRpb24gaGF2ZSBjaGFuZ2VkLgoJICBJZiBub3QsIHNraXAgdGhhdCBzdGVwLiBGaW5hbGx5LCBpZiB0aGUgcG9vbCBpcyBhY3RpdmUsIHRyeSBkZWFjdGl2YXRpbmcgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjgyNjgKCjIwMTQtMDUtMDYgMTY6NTk6MzQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHN1cHBvcnQgZm9yIEdzdEFsbG9jYXRpb25QYXJhbXMgY29tcGFyaXNpb24KCSAgVGhpcyBpcyB1c2VmdWwgdG8gY29tcGFyZSBidWZmZXIgcG9vbCBjb25maWd1YXJhdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyODI2OAoKMjAxNC0wNS0wNiAxNjo0Njo1NSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgc3VwcG9ydCBmb3IgR09iamVjdCBjb21wYXJpc2luZyBpbiBzdHJ1Y3R1cmVzCgkgIFRoaXMgaXMgdXNlZnVsIHRvIGFsbG93IGNvbXBhcmluZyBwb29sIGNvbmZpZ3VyYXRpb24gd2hlcmUgYSBHc3RBbGxvY2F0b3IKCSAgaXMgc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MjY4CgoyMDE0LTA1LTA4IDE3OjUwOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGZpeCBjYXNlIHdoZXJlIGdzdF9wbHVnaW5fbG9hZF9maWxlKCkgZGlkbid0IHNldCB0aGUgZXJyb3Igb24gZmFpbHVyZQoKMjAxNC0wNS0wOCAxNjozMDo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5jOgoJICBzcGFyc2VmaWxlOiBhZGQgc29tZSBTaW5jZSBtYXJrZXJzIHRvIGRvY3MKCjIwMTQtMDUtMDggMTY6MjU6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RzcGFyc2VmaWxlLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgc3BhcnNlZmlsZTogc3ByaW5rbGUgR19CRUdJTl9ERUNMUyAvIEdfRU5EX0RFQ0xTCgkgIGZvciBjKyssIGFuZCByZW1vdmUgb3V0ZGF0ZWQgY29tbWVudCwgYW5kIGFkZAoJICBuZXcgdW5pdCB0ZXN0IHRvIC5naXRpZ25vcmUuCgoyMDE0LTA1LTA4IDE2OjQ5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZG93bmxvYWRidWZmZXIuYzoKCSAgZG93bmxvYWRidWZmZXI6IHNtYWxsIGNsZWFudXBzCgoyMDE0LTA1LTA4IDE0OjUxOjEyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmM6CgkgIGRvd25sb2FkYnVmZmVyOiB1cGRhdGUgZG9jcwoKMjAxNC0wNS0wOCAxNDo1MDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZGVmCgoyMDE0LTAyLTIxIDE2OjMyOjUyICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0c3BhcnNlZmlsZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHNwYXJzZWZpbGUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3Rkb3dubG9hZGJ1ZmZlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRvd25sb2FkYnVmZmVyLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3BhcnNlZmlsZS5jOgoJICBBZGQgbmV3IGRvd25sb2FkYnVmZmVyIGVsZW1lbnQKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODAxODMKCjIwMTQtMDUtMDIgMTc6NDI6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwYWRzOiB1cGRhdGUgZG9jcyBmb3IgcmVxdWVzdCBwYWRzCgkgIFdlIHdvdWxkIGxpa2UgdG8gZW5jb3VyYWdlIHRoZSB1c2Ugb2YgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQoKQoKMjAxNC0wNS0wMiAxNzowMjozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkgIGNoZWNrOiB1c2UgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSBpbiBmYWlsX3VubGVzcygpIHNvIHdlIGV4aXQgaW1tZWRpYXRlbHkKCSAgZXhpdCgpIHdpbGwgY2FsbCBhdGV4aXQgaGFuZGxlcnMsIHdoaWNoIG1heSB0cnkgdG8KCSAgY2xlYW4gdXAgdGhpbmdzIG9yIHdhaXQgZm9yIHRoaW5ncyB0byBnZXQgY2xlYW5lZCB1cCwKCSAgd2hpY2ggd2UgZG9uJ3Qgd2FudCBvciBuZWVkLiBXZSBqdXN0IHdhbnQgdG8gc3RvcAoJICBhbmQgbGV0IHRoZSBwYXJlbnQga25vdyBhYm91dCB0aGUgZmFpbHVyZSBhcyBxdWlja2x5CgkgIGFzIHBvc3NpYmxlIGluIGNhc2UgZm9yaygpIGlzIHVzZWQuCgkgIEZpeGVzIHRpbWVvdXRzIG9uIGFzc2VydCBmYWlsdXJlcyBpbiBjaGVja3Mgd2hlcmUKCSAgYW4gZXhpdCBoYW5kbGVyIHdhaXRzIGZvciB0aGluZ3MgdG8gc3RvcCwgYnV0IHRoZXkKCSAgZG9uJ3Qgc3RvcCBiZWNhdXNlIHRoZXkgaGF2ZW4ndCBiZWVuIHNodXQgZG93biwKCSAgYW5kIHRoZXkgaGF2ZW4ndCBiZWVuIHNodXQgZG93biBiZWNhdXNlIHRoZXJlJ3Mgbm8KCSAgc2ltcGxlIHdheSB0byBkbyBzbyBvbiBmYWlsdXJlcy4KCSAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL2NoZWNrL3BhdGNoZXMvNTAvCgoyMDE0LTA1LTA0IDE0OjUyOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBpbml0IGZsYWcgbWFzayBtb3JlIGNvcnJlY3RseQoKMjAxNC0wNS0wNCAxMzozMjo0NiArMDAwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZ19tZW1tb3ZlKCkgaXMgZGVwcmVjYXRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyODExCgoyMDE0LTA1LTAzIDIwOjQ4OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjMuMSA9PT0KCjIwMTQtMDUtMDMgMTc6NDE6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMy4xCgoyMDE0LTA1LTAzIDE3OjM0OjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxNC0wNS0wMyAxNzoyMDo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDE0LTA1LTAzIDEyOjE0OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIG5ldyBkZXZpY2UgcHJvYmluZyBBUEkgdG8gZG9jcyB0YWJsZSBvZiBjb250ZW50cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NDQwCgoyMDE0LTA1LTAyIDIyOjIyOjAzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvYzogQWRkIEdzdERldmljZSogdG8gZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI5NDQwCgoyMDE0LTA1LTAzIDEwOjE0OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiY2IxNTE4IHRvIDIxMWZhNWYKCjIwMTQtMDUtMDEgMTA6Mzc6MTggLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQWx3YXlzIHJlbmRlciBwcmVwYXJlZCBidWZmZXIKCSAgQ3VycmVudGx5LCBpZiBwcmVwYXJlKCkgdGFrZXMgdG9vIG11Y2ggdGltZSwgd2Ugc2tpcCB0aGUgY2FsbCB0byByZW5kZXIoKS4KCSAgVGhlIHNpZGUgZWZmZWN0IG9mIHRoaXMsIGlzIHRoYXQgd2UgZW5kdXAgc3RhcnZpbmcgdGhlIHJlbmRlcigpLiBUaGUgc29sdXRpb24KCSAgaW4gdGhpcyBwYXRjaCBpcyB0byBhbHdheXMgcmVuZGVyIGZyYW1lcyB0aGF0IGFyZSBvbiB0aW1lIGJlZm9yZSBwcmVwYXJlKCkgaXMKCSAgZXhlY3V0ZWQuIFRoaXMgd2lsbCBtYXhpbWl6ZSB0aGUgbnVtYmVyIG9mIGZyYW1lcyB3ZSBkaXNwbGF5IGFuZCBzbW9vdGhseQoJICBkZWdyYWRlIHRoZSByZW5kZXJpbmcgcGVyZm9ybWFuY2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjkzMzUKCjIwMTQtMDUtMDEgMTQ6NTI6MjQgLTA0MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOiBhZGQgbW9yZSBtb2R1bGVzCgkgIEFkZCBtb3JlIGdpdCByZXBvc2l0b3JpZXMgdG8gY2hlY2sgKHNvIGdpdC12ZXJzaW9uLnNoIGlzIGNvbnNpc3RlbnQgd2l0aAoJICBnc3QtdW5pbnN0YWxsZWQpIGFuZCBkaXNwbGF5IHRoZSBkYXRlIG9mIHRoZSBsYXN0IGNvbW1pdCwgd2hpY2ggaXMgbW9yZSB2YWx1YWJsZQoJICBpbmZvcm1hdGlvbiB0aGFuIHRoZSBsYXN0IGNvbW1pdCdzIGhhc2guCgoyMDE0LTA1LTAxIDE4OjQyOjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEFsd2F5cyBmaXJzdCBwb3N0IHRoZSBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2UgZm9yIFBBVVNFRC0+UkVBRFkgYmVmb3JlIHBvc3RpbmcgYW55IHBlbmRpbmcgRU9TIG1lc3NhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzk0OQoKMjAxNC0wNC0xNyAyMToxMDo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFkZCB0ZXN0IGZvciBjaGVja2luZyB0aGF0IEVPUyBhbHdheXMgY29tZXMgYWZ0ZXIgdGhlIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc5NDkKCjIwMTQtMDQtMTUgMTU6NTU6MjUgKzAyMDAgIFN0aWFuIFNlbG5lcyA8c3RpYW5AcGV4aXAuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IGxvZyBtZXNzYWdlIG9mIGJ1ZmZlciBwb2ludGVyCgoyMDE0LTA0LTMwIDE4OjIwOjI4IC0wNDAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgc2NyaXB0cy9naXQtdmVyc2lvbi5zaDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxNC0wNC0zMCAxMDo0NzoxOSAtMDQwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6CgkgIHNjcmlwdHMvZ2l0LXZlcnNpb24uc2g6IGZpeCBtaXN0YWtlbiBjb21tZW50cwoKMjAxNC0wNC0yOCAxMzowMjoxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYXZvaWQgc2lnbmFsaW5nIG92ZXJydW4gb24gdGhlIGZpcnN0IHNlZ21lbnQKCSAgV2hlbiB0aGUgZmlyc3Qgc2VnbWVudCBoYXMgcG9zaXRpb24gIT0gMCBhbmQgcG9zaXRpb24gPiBtYXgtc2l6ZS10aW1lCgkgIGl0IHdpbGwgaW1tZWRpYXRlbGx5IGNhdXNlIHRoZSBtdWx0aXF1ZXVlIHRvIHNpZ25hbCBvdmVycnVuLgoJICBUaGlzIGNhbiBoYXBwZW4gZWFzaWx5IHdpdGggYWRhcHRpdmUgc3RyZWFtcyB3aGVuIHN3aXRjaGluZyBiaXRyYXRlcwoJICBhbmQgc3RhcnRpbmcgYSBuZXcgZ3JvdXAuIFRoZSBzZWdtZW50IGZvciB0aGlzIG5ldyBncm91cCB3aWxsIGhhdmUKCSAgYSBwb3NpdGlvbiB0aGF0IGlzIG11Y2ggZ3JlYXRlciB0aGFuIDAgYW5kIHdpbGwgbGVhZCB0byB0aGlzIGlzc3VlLgoJICBUaGlzIGlzIHBhcnRpY3VsYXJseSBoYXJtZnVsIHdoZW4gdGhlIGFkYXB0aXZlIHN0cmVhbSB1c2VzIG1wZWd0cwoJICB0aGF0IGRvZXNuJ3QgZW1pdCBuby1tb3JlLXBhZHMgYW5kIGl0IG1pZ2h0IGhhcHBlbiB0aGF0IG9ubHkgb25lCgkgIG9mIHRoZSBzdHJlYW0gcGFkcyB3YXMgYWRkZWQgd2hlbiB0aGUgbXVsdGlxdWV1ZSBvdmVycnVucyBhbmQgZ2V0cwoJICB0aGUgZ3JvdXAgcmVhZHkgZm9yIGV4cG9zaW5nLiBTbyB0aGUgdXNlciB3aWxsIG9ubHkgZ2V0IGF1ZGlvIG9yCgkgIHZpZGVvLgoJICBUaGUgc29sdXRpb24gaXMgdG8gZmFsbGJhY2sgdG8gdGhlIHNpbmsgc2VnbWVudCB3aGlsZSB0aGUgc291cmNlIHBhZAoJICBoYXMgbm8gc2VnbWVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTEyNAoKMjAxNC0wNC0yOCAxMDoxNDo1MCArMDIwMCAgWGF2aSBBcnRpZ2FzIDx4YXJ0aWdhc0BmbHVlbmRvLmNvbT4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogZW5oYW5jZW1lbnRzIHRvIHBvcnRpbmcgZ3VpZGUgZG9jdW1lbnRhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NzU0CgoyMDE0LTA0LTI4IDA5OjQzOjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogQWRkIGJvb2xlYW4gdG8gVVJJIHF1ZXJ5IHRvIHNwZWNpZnkgaWYgYSByZWRpcmVjdCBpcyBwZXJtYW5lbnQgb3Igbm90CgoyMDE0LTA0LTI1IDA3OjM4OjAwICswMDAwICBTcmltYW50YSBQYW5kYSA8cGFuZGFfc3JpbWFudGFAeWFob28uY28uaW4+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IENoZWNrIGlmIHRoZSBsYXN0IHBhZCB3YXMgc2V0CgkgIElmIG5vIGRhdGEgaXMgY29taW5nIGJ1dCBvbmx5IEVPUyBpcyBzZW50IGZyb20gYWxsIG9mIHRoZSBzaW5rcGFkLCBpdCBpcyBub3QKCSAgZm9yd2FyZGluZyB0aGUgRU9TLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3OTQ1CgoyMDE0LTA0LTI2IDE3OjAyOjE4ICswMTAwICBGZWxpcGUgT3J0aXogPGZhb3J0aXpjQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZG9jczogYWRkIGRvY3MgZm9yIHZhcmlvdXMgR3N0UGFkIG1hY3JvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzNjUyCgoyMDE0LTA0LTI2IDIzOjEyOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5oOgoJICBSZXZlcnQgImRvY3M6IGFkZCBkb2NzIGZvciB2YXJpb3VzIEdzdFBhZCBtYWNyb3MiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZDE3NDM4ZDVmZDMyMWRhZWM0YWRiZWIyOGE4ZmI1ZDVlMDcyOThkYy4KCSAgVGhpcyBjb21taXQgZmVhdHVyZWQgdGhlIHdyb25nIGF1dGhvciwgc29ycnkuCgoyMDE0LTA0LTI2IDIxOjIxOjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9SRUFETUU6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGRvY3M6IHJlbW92ZSBvdXRkYXRlZCBhbmQgcG9pbnRsZXNzICdMYXN0IHJldmlld2VkJyBsaW5lcyBmcm9tIGRvY3MKCSAgVGhleSBhcmUgdmVyeSBjb25mdXNpbmcgZm9yIHBlb3BsZSwgYW5kIG1vcmUgb2Z0ZW4gdGhhbiBub3QKCSAgYWxzbyBqdXN0IG5vdCB2ZXJ5IGFjY3VyYXRlLiBTZWVpbmcgJ2xhc3QgcmV2aWV3ZWQ6IDIwMDUnIGluCgkgIHlvdXIgZG9jcyBpcyBub3QgdmVyeSBjb25maWRlbmNlLWluc3BpcmluZy4gTGV0J3MganVzdCByZW1vdmUKCSAgdGhvc2UgY29tbWVudHMuCgoyMDE0LTAzLTI2IDE1OjU2OjA4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcjogT25seSBzZXQgVEFHX01FTU9SWSBpZiB0aGUgbWVtb3J5IGhhcyBiZWVuIHJlcGxhY2VkCgkgIEN1cnJlbnRseSB3ZSBzZXQgVEFHX01FTU9SWSBhcyBzb29uIGEgcmVzaXplIGNoYW5nZXMgdGhlIHNpemUgb2Ygb25lCgkgIG9mIHRoZSBtZW1vcnkuIFRoaXMgaGFzIHRoZSBzaWRlIGVmZmVjdCB0aGF0IGJ1ZmZlciBwb29sIGNhbm5vdCBrbm93IGlmCgkgIHRoZSBtZW1vcnkgaGF2ZSBzaW1wbHkgYmVlbiByZXNpemVkLCBvciBpZiB0aGUgbWVtb3J5cyBoYXMgYmVlbiByZXBsYWNlZC4KCSAgVGhpcyBtYWtlIGl0IGhhcmQgdG8gYWN0dWFsbHkgaW1wbGVtZW50IF9yZXNldCgpLiBJbnN0ZWFkLCBvbmx5IHNldCB0aGUKCSAgVEFHX01FTU9SWSBpZiBvbmUgb3IgbW9yZSBtZW1vcnkgaGFzIGJlZW4gcmVwbGFjZWQsIGFuZCBkbyBhIGxpZ2h0CgkgIHNhbml0eSBjaGVjayBvZiB0aGUgc2l6ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzEwOQoKMjAxNC0wNC0yNiAxNzowMjoxOCArMDEwMCAgU2hvd2F5YiBaYWhkYSA8c2hvd2F5Yi56YWhkYUBheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZG9jczogYWRkIGRvY3MgZm9yIHZhcmlvdXMgR3N0UGFkIG1hY3JvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzNjUyCgoyMDE0LTA0LTI1IDE1OjM4OjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFdoZW4gZ29pbmcgdG8gUkVBRFkgbWFrZSBzdXJlIHRvIGFsd2F5cyBkZWFjdGl2YXRlIHBhZHMKCSAgV2UgbWlnaHQgbm90IGhhdmUgcmVhY2hlZCBQQVVTRUQgeWV0IGJlY2F1c2Ugb2YgYW4gYXN5bmMgZXJyb3IsCgkgIGJ1dCBub25ldGhlbGVzcyB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwYWRzIGFyZSBhbHdheXMKCSAgZGVhY3RpdmF0ZWQgaW4gUkVBRFkgc3RhdGUuCgoyMDE0LTA0LTIyIDE4OjIzOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IERvbid0IGxlZnQtc2hpZnQgaW50byB0aGUgc2lnbiBiaXQsIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkCgoyMDE0LTA0LTIyIDE4OjE2OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBVc2UgYW4gdW5zaWduZWQgNjQgYml0IGludGVnZXIgYXMgYSBtYXNrCgkgIFdlIHNoaWZ0IHRoZSBtYXNrIHRvIHRoZSByaWdodCBsYXRlciBhbmQgc2hpZnRpbmcgdGhlIHJlc3VsdAoJICBvZiBzaGlmdGluZyBvdmVyIHRoZSBzaWduIGJpdCBpcyB1bmRlZmluZWQuCgoyMDE0LTA0LTIwIDExOjU5OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1ha2Ugc3VyZSB0byBhbHdheXMgaG9sZCB0aGUgTElWRV9MT0NLIHdoZW4gZ29pbmcgdG8gdGhlIGZsdXNoaW5nIGxhYmVsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg1OTYKCjIwMTQtMDQtMTEgMTk6NTI6MDIgKzAyMDAgIFNyaW1hbnRhIFBhbmRhIDxzcmltYW50YUBheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEhhbmRsZSBlbmQgb2Ygc3RyZWFtIGV2ZW50IG9uIHNpbmsgcGFkCgkgIEhhbmRsZSBlbmQgb2Ygc3RyZWFtIGV2ZW50cyBvbiBzaW5rIHBhZC4gQ2hlY2sgYWxsIHRoZSBzaW5rIHBhZAoJICBoYXMgcmVjZWl2ZWQgZW9zIGJlZm9yZSBmb3J3YXJkaW5nIHRvIHNvdXJjZSBwYWQuCgkgIEZpeGVzIDogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNzk0NQoKMjAxNC0wNC0wNSAxMTozNzo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFByZXZlbnQgZGl2aXNpb24gb3IgbW9kdWxvIGJ5IHplcm8KCSAgVGhlIHN0ZXAgY2FuIGVuZCB1cCBiZWluZyB6ZXJvIGlmIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGlzbid0IGEgdmFsaWQKCSAgcmFuZ2UgR1ZhbHVlLgoJICBJbiB0aG9zZSBjYXNlcywgcmV0dXJuIEZBTFNFLgoJICBXZSBkb24ndCB1c2UgZ19yZXR1cm4qX2lmX2ZhaWwgc2luY2UgaXQgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiB0cmlnZ2VyZWQKCSAgYnkgdGhlIGFib3ZlLW1lbnRpb25uZWQgX2dldF9zdGVwKCkgZnVuY3Rpb25zLgoJICBDSUQgIzEwMzcxMzIKCjIwMTQtMDQtMDkgMTY6NDQ6MDcgKzAyMDAgIEFudG9pbmUgSmFjb3V0b3QgPGFqYWNvdXRvdEBnbm9tZS5vcmc+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGxpYnM6IGctaXItc2Nhbm5lcjogZG8gbm90IGhhcmRjb2RlIGxpYnRvb2wgcGF0aAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2NTcxCgoyMDE0LTA0LTE2IDE5OjQ5OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeS9idWZmZXI6IEluaXRpYWxpc2UgR3N0TWFwSW5mbyB0byB6ZXJvZXMgaWYgbWFwcGluZyBmYWlscwoJICBUaGlzIHNob3VsZCBhbGxvdyBmb3IgbW9yZSBtZWFuaW5nZnVsIGVycm9ycy4gRGVyZWZlcmVuY2luZyBOVUxMCgkgIGlzIG1vcmUgdXNlZnVsIGluZm9ybWF0aW9uIHRoYW4gZGVyZWZlcmVuY2luZyBhIHJhbmRvbSBhZGRyZXNzCgkgIGhhcHBlbmVkIHRvIGJlIG9uIHRoZSBzdGFjay4KCjIwMTQtMDQtMTYgMTc6NDk6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogVW5yZWYgcmV0dXJuIHZhbHVlIG9mIGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgoKSBpbnN0ZWFkIG9mIGxlYWtpbmcgaXQKCjIwMTQtMDQtMTYgMTc6NDg6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogQXV0b21hdGljIGNvZGUgc3R5bGUgZml4ZXMKCjIwMTQtMDQtMTYgMTU6MTc6MDQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBmaXggZXZlbnQvcHJlcm9sbCBkZWFkbG9jayBkaWZmZXJlbnRseQoJICBUaGUgcWxvY2sgaXMgcmVsZWFzZWQgYmV0d2VlbiBwb3BwaW5nIGEgYnVmZmVyIGZyb20gdGhlIHF1ZXVlCgkgIGFuZCBwdXNoaW5nIGl0LiBXaGVuIHRoaXMgYnVmZmVyIGNhdXNlcyB0aGUgc2luayB0byB3YWl0IGluCgkgIHByZXJvbGwsIHRoaXMgbGV0cyBhIHF1ZXJ5IHNlZSB0aGF0IHRoZSBxdWV1ZSBpcyBlbXB0eSwgYW5kCgkgIHB1c2ggdGhlIHF1ZXJ5IHRoZW4gd2FpdCBmb3IgaXQgdG8gYmUgc2VydmljZWQuIEhvd2V2ZXIsIHRoaXMKCSAgd2lsbCBub3QgYmUgZG9uZSB0aWxsIGFmdGVyIHBlcm9sbCwgYW5kIHRoaXMgd2lsbCB0aHVzIGJsb2NrLgoJICBJZiB1cHN0cmVhbSB3YXMgd2FpdGluZyBvbiBidWZmZXJpbmcgdG8gcmVhY2ggMTAwJSBiZWZvcmUKCSAgc3dpdGNoaW5nIHRvIFBMQVlJTkcsIGEgZGVhZGxvY2sgd291bGQgZW5zdWUuCgkgIFRoaXMgaGFkIGJlZW4gZml4ZWQgcmVjZW50bHkgYnkgZmFpbGluZyBxdWVyaWVzIHdoZW4gdGhlCgkgIHF1ZXVlMiB3YXMgYnVmZmVyaW5nLCBidXQgdGhpcyBoYXBwZW5zIHRvIGJyZWFrIHNvbWUgb3RoZXIKCSAgY2FzZSAocGxheWJpbiBvbiBhIGxvY2FsIGh0dHAgc2VydmVyIGFuZCBtYXRyb3NrYSksIHdoaWxlCgkgIHRoaXMgcGF0Y2ggd29ya3MgZm9yIGJvdGguCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MzQ1CgoyMDE0LTA0LTE2IDA3OjU5OjI3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogRml4IGV4cG9ydGVkIHN5bWJvbCBuYW1lCgkgIGl0J3MgX3RlbXBsYXRlIGFuZCBub3QgX3RlbXBsCgoyMDE0LTA0LTE1IDIxOjE2OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFkZCBtaXNzaW5nIHNwYWNlIGluIGRlYnVnIG91dHB1dAoKMjAxNC0wNC0xNSAxMjo1ODo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWRkIG5ldyBBUEkgdG8gc2V0IHVwIHBhZHMgZnJvbSBub24tc3RhdGljIHBhZCB0ZW1wbGF0ZXMKCjIwMTQtMDQtMTQgMjE6MzU6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBGaXggbWVtb3J5IGxlYWsgaW4gdW5pdCB0ZXN0CgoyMDE0LTA0LTEyIDE1OjIyOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiByZXBsYWNlIG5ld2x5LWFkZGVkIEdzdFRlc3RDbG9ja0lETGlzdCBzdHJ1Y3R1cmUgd2l0aCBhIHNpbXBsZSBHTGlzdAoJICBLZWVwIGl0IHNpbXBsZS4gTGlrZWx5IGFsc28gbWFrZXMgdGhpbmdzIGVhc2llciBmb3IgYmluZGluZ3MsCgkgIGFuZCBlZmZpY2llbmN5IGNsZWFybHkgaGFzIG5vdCBiZWVuIGEgY29uc2lkZXJhdGlvbiBnaXZlbiBob3cKCSAgdGhlIGV4aXN0aW5nIGNvZGUgaGFuZGxlZCB0aGVzZSBsaXN0cy4KCjIwMTQtMDQtMTIgMTQ6MzA6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmg6CgkgIGRvY3M6IHRlc3RjbG9jazogZml4IHVwIFNpbmNlIG1hcmtlcnMKCjIwMTQtMDQtMTIgMDA6Mjg6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJICB0ZXN0Y2xvY2s6IGFkZCBiYWNrIGdzdF90ZXN0X2Nsb2NrX3dhaXRfZm9yX3BlbmRpbmdfaWRfY291bnQoKQoJICAuLiBidXQgZGVwcmVjYXRlIGl0LiBBQkkgc3RhYmlsaXR5IGFuZCBhbGwgdGhhdC4KCSAgSXQncyBhIGRhbmdlcm91cyBhbmQgcmFjeSBmdW5jdGlvbiB0byB1c2UuCgoyMDE0LTAzLTIzIDE1OjA4OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoJICBGaXhlcyBjb21waWxlciB3YXJuaW5nLgoKMjAxMy0xMi0xNiAxMDowMTozNyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAZ21haWwuY29tPgoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgdGVzdGNsb2NrOiBhZGQgc3VwcG9ydCBmb3Igd2FpdGluZyBhbmQgcmVsZWFzaW5nIG11bHRpcGxlIEdzdENsb2NrSURzCgkgIEluIG9yZGVyIHRvIGJlIGRldGVybWluaXN0aWMsIG11bHRpcGxlIHdhaXRpbmcgR3N0Q2xvY2tJRHMgbmVlZHMgdG8gYmUKCSAgcmVsZWFzZWQgYXQgdGhlIHNhbWUgdGltZSwgb3IgZWxzZSBvbmUgY2FuIGdldCBpbnRvIHRoZSBzaXR1YXRpb24gdGhhdAoJICB0aGUgb25lIGJlaW5nIHJlbGVhc2VkIGZpcnN0IGNhbiBhZGQgaXRzZWxmIGJhY2sgYWdhaW4gYmVmb3JlIHRoZSBuZXh0CgkgIG9uZSB3YWl0aW5nIGlzIHJlbGVhc2VkLgoJICBUZXN0IGFkZGVkIGZvciBuZXcgQVBJIGFuZCBvbGQgdGVzdHMgcmV3cml0dGVuIHRvIGNvbXBseS4KCjIwMTQtMDQtMDEgMTU6Mzg6NTQgKzAyMDAgIExpbnVzIFN2ZW5zc29uIDxsaW51c3NuQGF4aXMuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGFjY2VzcyB1bm93bmVkIGFuZCBwb3NzaWJseSBhbHJlYWR5IGZyZWVkIGV2ZW50CgkgIERvbid0IHByaW50IHRoZSBuYW1lIG9mIHRoZSBldmVudCB3aGVuIG93bmVyc2hpcCBpcyBnaXZlbiBhd2F5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3NDg0CgoyMDE0LTA0LTEyIDA3OjEzOjAyICswMjAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IHByaW50IHN0cnVjdHVyZSB2YWx1ZXMgb2YgcHJvcGVydGllcwoKMjAxNC0wNC0xMSAyMjozODoyNSArMTAwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEhvbGQgcGFkIG9iamVjdCBsb2NrIHdoZW4gY2hhbmdpbmcgdGFncwoJICBBdm9pZCBzcHVyaW91cyBjcmFzaGVzIHdoZW4gdGFncyBhcmUgcmV0cmlldmVkIGp1c3QgYXMKCSAgbmV3IG9uZXMgYXJyaXZlLgoKMjAxNC0wNC0xMSAxMzo0NToyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBGaXggcmFuZ2UgaXRlcmF0aW9uCgkgIFdlIHdhbnQgdG8gaXRlcmF0ZSBvdmVyIGl0ZW1zIGlkeCB0byBpZHggKyBsZW5ndGgKCSAgV2UgdXNlIHRoZSBsZW4gdmFyaWFibGUgYXMgdGhlIGNvcnJlY3RlZCBudW1iZXIgb2YgbWVtb3J5IHRvIGl0ZXJhdGUKCSAgYW5kIHRoZW4gcHJvcGVybHkgZ28gb3ZlciBhbGwgaXRlbXMuCgkgIEZpeGVzIHRoZSBpc3N1ZSB3aGVyZSBzcGVjaWZ5aW5nIGFueSBpZHggZGlmZmVyZW50IGZyb20gMCBoYWQgbm8gZWZmZWN0CgkgIFNwb3R0ZWQgYnkgY2xhbmcgc3RhdGljIGFuYWx5emVyCgoyMDE0LTA0LTA5IDE3OjAxOjAxICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBlcnJvciBvdXQgd2hlbiB0cnlpbmcgdG8gZml4YXRlIGEgZnJhY3Rpb24gbmVhciBhbiBpbnZhbGlkIHRhcmdldAoKMjAxNC0wNC0wNCAxNzoyODoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogVXBkYXRlIHJ1bm5pbmcgdGltZSBpbiBRb1MgYmFzZWQgb24gdGhlIHBhZCBvZmZzZXRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI2OTcKCjIwMTQtMDQtMDQgMTc6MTU6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQXBwbHkgcGFkIG9mZnNldHMgb24gYWxsIGV2ZW50cywgbm90IGp1c3Qgc2VnbWVudCBldmVudHMKCjIwMTQtMDQtMDQgMTc6MDY6MTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQWRkIHJ1bm5pbmctdGltZS1vZmZzZXQgZmllbGQgdG8gYWxsIGV2ZW50cwoJICBFdmVudHMgcGFzc2luZyB0aHJvdWdoICNHc3RQYWRzIHRoYXQgaGF2ZSBhIHJ1bm5pbmcgdGltZQoJICBvZmZzZXQgc2V0IHZpYSBnc3RfcGFkX3NldF9vZmZzZXQoKSB3aWxsIGdldCB0aGVpciBvZmZzZXQKCSAgYWRqdXN0ZWQgYWNjb3JkaW5nIHRvIHRoZSBwYWQncyBvZmZzZXQuCgkgIElmIHRoZSBldmVudCBjb250YWlucyBhbnkgaW5mb3JtYXRpb24gdGhhdCByZWxhdGVkIHRvIHRoZQoJICBydW5uaW5nIHRpbWUsIHRoaXMgaW5mb3JtYXRpb24gd2lsbCBuZWVkIHRvIGJlIHVwZGF0ZWQKCSAgYmVmb3JlIHVzYWdlIHdpdGggdGhpcyBvZmZzZXQuCgoyMDE0LTA0LTA5IDE2OjQwOjI3ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYXZvaWQgZGl2aWRpbmcgYnkgemVybyB3aGVuIG11bHRpcGx5aW5nIHkveiBieSAwL3gKCSAgVGhlIGdjZCBvZiAwL3ggaXMgMCwgYW5kIHRoaXMgaXMgdGhlbiB1c2VkIGFzIGEgZGVub21pbmF0b3IuCgoyMDE0LTA0LTA5IDE2OjAxOjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBbmQgYWN0dWFsbHkgcnVuIHRoZSBvdGhlciB0ZXN0cyBhZ2FpbgoKMjAxNC0wNC0wOSAxNTo1NzozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBXYWtlIHVwIHRoZSBxdWV1ZXMgaWYgbGltaXRzIGFyZSBjaGFuZ2luZyBpbiBhIHdheSB0aGF0IHdvdWxkIHVuYmxvY2sgdGhlIHF1ZXVlCgoyMDE0LTA0LTA5IDE1OjQyOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBZGQgdGVzdCBmb3IgY2hlY2tpbmcgaWYgcGFkcyBhcmUgd2FrZWQgdXAgd2hlbiBsaW1pdHMgYXJlIGNoYW5nZWQKCjIwMTQtMDQtMDkgMTA6MTU6MzMgKzAyMDAgIEpvc2UgQW50b25pbyBTYW50b3MgQ2FkZW5hcyA8c2FudG9zY2FkZW5hc0BnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBtZW1vcnkgbGVhawoJICBRdWV1ZWQgZnJhbWVzIHdlcmUgbm90IHJlbGVhc2VkIGFmdGVyIGJlaW5nIHB1c2hlZCwgdGhpcwoJICBjYXVzZWQgYSBsZWFrIG9mIHRoZSBHc3RCYXNlUGFyc2VGcmFtZSBzdHJ1Y3R1cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc4ODMKCjIwMTQtMDQtMDcgMTc6NDk6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHVzZSBnX3N0cmVycm9yKCkgaW5zdGVhZCBvZiBzdHJlcnJvcigpCgkgIE5lZWQgVVRGLTggZW5jb2RpbmcuCgoyMDE0LTA0LTA3IDE3OjQ3OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIFJldmVydCAiY2hlY2s6IG9ubHkgY2FsbCBzZXRwZ2lkIG9uIHZhbGlkIGNoaWxkIFBJRHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjkzMTNhZmM3NWI2OGQ5ODZlNDczYjc2YjU1NTQzNDU2ODU3OTEyYi4KCSAgVGhpcyBzaG91bGQgYmUgZml4ZWQgaW4gdXBzdHJlYW0gbGliY2hlY2sgaW5zdGVhZC4gV2Ugd2FudAoJICB0byBrZWVwIGRpZmYgb2Ygb3VyIGxvY2FsIGNvcHkgdG8gdXBzdHJlYW0gbGliY2hlY2sKCSAgdG8gYSBtaW5pbXVtLgoKMjAxNC0wNC0wNyAxNzozMzozNCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHdhcm4gaWYgd2UgY2FuJ3QgcmVtb3ZlIG91ciB0ZW1wb3JhcnkgZmlsZQoJICBJdCdzIG5vdCBmYXRhbCB0aG91Z2gsIHNvIGRvIG5vdCBlcnJvciBvdXQuCgkgIENvdmVyaXR5IDEwMzcxMjEKCjIwMTQtMDQtMDcgMTU6Mzg6MDkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkgIGNoZWNrOiBvbmx5IGNhbGwgc2V0cGdpZCBvbiB2YWxpZCBjaGlsZCBQSURzCgkgIENvdmVyaXR5IDIwNjE4NgoKMjAxNC0wNC0wNyAxNTozODoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBubyBuZWVkIGZvciBhIHRyYW5zbGF0ZWQgbWVzc2FnZSBmb3IgaW1wb3NzaWJsZSBlcnJvciBjYXNlcwoJICBUaGUgbWVzc2FnZSBpcyB0b28gdGVjaG5pY2FsIGFueXdheSwgdGhlIGRlZmF1bHQgbWVzc2FnZSB3b3JrcwoJICBqdXN0IGZpbmUgaGVyZSBhcyB3ZWxsLgoKMjAxNC0wNC0wNyAxNToxODozMiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogY2F0Y2ggZmFpbHVyZSB0byBzZWVrIGJhY2sgdG8gemVybyBhZnRlciBzZWVrIHRlc3QKCSAgVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIHRoZW9yZXRpY2FsbHksIGJ1dCBzaW5jZSBhIHRyYW5zaWVudAoJICBmYWlsdXJlIHdvdWxkIGdldCB1cyB0byBzaWxlbnRseSByZWFkIHdyb25nIGRhdGEsIGl0J3Mgd29ydGgKCSAgZXJyb3Jpbmcgb3V0LiBBbmQgaXQgc2lsZW5jZSB0aGlzOgoJICBDb3Zlcml0eSAyMDYwMzQKCjIwMTQtMDQtMDcgMTE6MzY6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIHBhcnNlOiBEb24ndCBkaXN0IHRoZSBiaXNvbiBhbmQgZmxleCBnZW5lcmF0ZWQgaGVhZGVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI3MjUzCgoyMDE0LTA0LTA2IDExOjIzOjM0ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBIYW5kbGUgY2FwcyBmaWVsZCB2YWx1ZXMgYmVpbmcgTlVMTAoJICBHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFKCkgd291bGQgY2F1c2UgYSBzZWdmYXVsdCB3aGVuZXZlciBpdCBlbmNvdW50ZXJlZCBhbgoJICBlbGVtZW50J3MgY2FwcyB0aGF0IGhhZCBhIGZpZWxkIHZhbHVlIGJlaW5nIE5VTEwuIFN1Y2ggZmllbGRzIGFyZSBzdWNjZXNzZnVsbHkKCSAgaGFuZGxlZCBlLmcuIGJ5IEdTVF8qX09CSkVDVCgpLCBhbmQgd2l0aCB0aGlzIHBhdGNoIHNvIGRvZXMKCSAgR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRSgpLiBFdmVuIGlmIHN0cmluZyBmaWVsZHMgd2l0aCBhIE5VTEwgdmFsdWUgYXJlCgkgIG5vdCBzdXBwb3NlZCB0byBiZSB2YWxpZCBpbiBjYXBzLCBzdWNoIGNhcHMgY2FuIGJlIGNyZWF0ZWQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjc3MDEKCjIwMTQtMDQtMDUgMTE6NDQ6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZW1vdmUgYWx3YXlzLXRydWUtY2hlY2tzCgkgIGEgZ3NpemUgaXMgZ3VhcmFudGVlZCB0byBiZSBwb3NpdGl2ZSBvbiBhbGwgc3lzdGVtcyBzaW5jZSBpdCdzIGFuCgkgIHVuc2lnbmVkIHZhbHVlLgoJICBDSUQgIzEwMzcxNDcKCjIwMTQtMDQtMDUgMTE6NDQ6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IFJlbW92ZSBhbHdheXMtdHJ1ZS1jaGVja3MKCSAgYSBnc2l6ZSBpcyBndWFyYW50ZWVkIHRvIGJlIHBvc2l0aXZlIG9uIGFsbCBzeXN0ZW1zIHNpbmNlIGl0J3MgYW4KCSAgdW5zaWduZWQgdmFsdWUuCgkgIENJRCAjMTAzNzE0NQoJICBDSUQgIzEwMzcxNDYKCjIwMTQtMDQtMDUgMTE6Mzc6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBQcmV2ZW50IGRpdmlzaW9uIG9yIG1vZHVsbyBieSB6ZXJvCgkgIFRoZSBzdGVwIGNhbiBlbmQgdXAgYmVpbmcgemVybyBpZiB0aGUgdW5kZXJseWluZyB2YWx1ZSBpc24ndCBhIHZhbGlkCgkgIHJhbmdlIEdWYWx1ZS4KCSAgSW4gdGhvc2UgY2FzZXMsIHJldHVybiBGQUxTRS4KCSAgV2UgZG9uJ3QgdXNlIGdfcmV0dXJuKl9pZl9mYWlsIHNpbmNlIGl0IHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gdHJpZ2dlcmVkCgkgIGJ5IHRoZSBhYm92ZS1tZW50aW9ubmVkIF9nZXRfc3RlcCgpIGZ1bmN0aW9ucy4KCSAgU3BvdHRlZCBieSBDb3Zlcml0eS4KCjIwMTQtMDMtMjUgMTI6MjM6MzIgKzAxMDAgIEhhYWtvbiBTcG9yc2hlaW0gPGhhYWtvbkBwZXhpcC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEZpeCBjb21wYXJpc29uIG9mIGludC9pbnQ2NCByYW5nZQoJICBDaGVja2luZyBzdGVwIHRocmVlIHRpbWVzIHNlZW1zIHVubmVjZXNzYXJ5LgoJICBBIHNpbWlsYXIgYnVnIHdhcyBmaXhlZCBmb3IgZG91YmxlIHJhbmdlIGluCgkgIGNvbW1pdCAzZWE2YjA0YzEwYjEwZmRlOWQ2MjE5MDA2OGYyNzRiOTQwZWRlZjA3CgoyMDE0LTA0LTAzIDE4OjE3OjAzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggYnVpbGQgd2l0aCBkZWJ1ZyBjYWNoZWQgYnVmZmVycyBlbmFibGVkCgkgIGdzdGlucHV0c2VsZWN0b3IuYzo4MTg6NTogZXJyb3I6IGZvcm1hdCBub3QgYSBzdHJpbmcgbGl0ZXJhbAoJICBhbmQgbm8gZm9ybWF0IGFyZ3VtZW50cyBbLVdlcnJvcj1mb3JtYXQtc2VjdXJpdHldCgoyMDE0LTA0LTAzIDIwOjMxOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBNYWtlIHN1cmUgdG8gc2V0IHRoZSBESVNDT05UIGZsYWcgb24gdGhlIGZpcnN0IGJ1ZmZlciBvZiBlYWNoIEdPUCBpbiByZXZlcnNlIHBsYXliYWNrIG1vZGUKCjIwMTQtMDQtMDMgMTM6MjA6MTEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJlbW92aW5nIGR1cGxpY2F0ZWQgaW5uZXIgaWYKCSAgVGhlIGlubmVyIGlmIHJlcGxpY2F0ZXMgdGhlIHNhbWUgY29kZSBvZiB0aGUgb3V0ZXIgYW5kIGlzIHVzZWxlc3MKCSAgYXMgZmxhZ19zZWdtZW50IHdpbGwgYWx3YXlzIGJlIHRydWUuCgkgIEZvdW5kIGJ5IGNvdmVyaXR5LgoKMjAxNC0wNC0wMyAwNzozNjowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGdzdC1sYXVuY2guMTogUGxheWJpbjIgaXMgZGVhZCwgbG9uZyBsaXZlIHBsYXliaW4KCSAgTG9va3MgbGlrZSB0aGF0IHdhcyB0aGUgbGFzdCByZW1haW5pbmcgbWVudGlvbiBpbiBjb3JlIC4uLgoKMjAxNC0wNC0wMiAyMzo1MjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBBZGQgbWlzc2luZyBcbiBpbiBvdXRwdXQKCjIwMTQtMDQtMDEgMTU6MzU6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgc2NyaXB0czogZ3N0LXVuaW5zdGFsbGVkOiBnc3QtcGx1Z2lucy1nbCBsaWJzIGdvdCBtZXJnZWQgaW50byAtYmFkCgoyMDE0LTAzLTI5IDEwOjE4OjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEluY2x1ZGUgZXZlbnQgdHlwZSBpbiBkZWJ1ZyBvdXRwdXQgd2hlbiBkZWxheWluZyBhIHN0aWNreSBldmVudCBiZWNhdXNlIG9mIG5vdC1saW5rZWQKCjIwMTQtMDMtMjkgMTA6MTY6MTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBzcGxpdHRpbmcgYW5kIHJldmVyc2luZyBvZiBHT1BzIGluIHJldmVyc2UgcGxheWJhY2sgbW9kZQoJICBXZSBpdGVyYXRlIHRoZSBjdXJyZW50IGRpc2NvbnQgZ3JvdXAgYmFja3dhcmRzIGFuZCBwdXNoIGVhY2ggR09QIGZvcndhcmRzLAoJICBzdGFydGluZyBmcm9tIHRoZSBsYXN0IG9uZS4gSG93ZXZlciBpZiB0aGUgZmlyc3QgYnVmZmVyIGluIHRoZSBjdXJyZW50CgkgIGRpc2NvbnQgZ3JvdXAgaXMgYSBrZXlmcmFtZSwgd2Ugd2lsbCBrZWVwIGl0IGFyb3VuZCB1bnRpbCBuZXh0IHRpbWUsCgkgIHdoaWNoIGlzIGZhciBmcm9tIGlkZWFsLiBKdXN0IHB1c2ggaXQuCgoyMDE0LTAzLTI1IDEyOjM4OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBwbGFjZSB0aGUgZGVlcC1ub3RpZnkgb24gdGhlIHJpZ2h0IHBpcGVsaW5lCgkgIElmIHRoZSB0b3BsZXZlbCBiaW4gaXMgbm90IG5vdCBhIHBpcGVsaW5lLCB3ZSBwbGFjZSB0aGUgYmluIGluIGEKCSAgcGlwZWxpbmUuIEFsc28gbWFrZSBzdXJlIHRoYXQgd2UgY29ubmVjdCB0byB0aGUgZGVlcC1ub3RpZnkgb2YgdGhpcyBuZXcKCSAgcGlwZWxpbmUgYmVjYXVzZSB3ZSB3aWxsIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdCgpIGZyb20gaXQgbGF0ZXIuCgoyMDE0LTAzLTI0IDE2OjM0OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNvcHkgbGFzdF9zYW1wbGUgb24gRFJBSU4KCSAgTWFrZSBzdXJlIHdlIGRvbid0IGhvbGQgYSByZWYgdG8gYSBidWZmZXIgZnJvbSBiZWZvcmUgdGhlIERSQUlOIHF1ZXJ5IGJ5CgkgIG1ha2luZyBhIGNvcHkgb2YgdGhlIGxhc3RfYnVmZmVyLgoKMjAxNC0wMy0yNCAxNjoxMTozMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZG9uJ3QgY2xlYXIgVEFHIG9uIE5VTEwgYnVmZmVyCgkgIFdoZW4gdGhlIGJ1ZmZlciBmYWlscyB0byBjb3B5LCBkb24ndCBjbGVhciB0aGUgVEFHIG9uIHRoZSBOVUxMIHBvaW50ZXIuCgoyMDE0LTAzLTIwIDA2OjE0OjMzIC0wNDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGV2ZW50L3ByZXJvbGwgZGVhZGxvY2sKCSAgVGhlIHFsb2NrIGlzIHJlbGVhc2VkIGJldHdlZW4gcG9wcGluZyBhIGJ1ZmZlciBmcm9tIHRoZSBxdWV1ZQoJICBhbmQgcHVzaGluZyBpdC4gV2hlbiB0aGlzIGJ1ZmZlciBjYXVzZXMgdGhlIHNpbmsgdG8gd2FpdCBpbgoJICBwcmVyb2xsLCB0aGlzIGxldHMgYSBxdWVyeSBzZWUgdGhhdCB0aGUgcXVldWUgaXMgZW1wdHksIGFuZAoJICBwdXNoIHRoZSBxdWVyeSB0aGVuIHdhaXQgZm9yIGl0IHRvIGJlIHNlcnZpY2VkLiBIb3dldmVyLCB0aGlzCgkgIHdpbGwgbm90IGJlIGRvbmUgdGlsbCBhZnRlciBwZXJvbGwsIGFuZCB0aGlzIHdpbGwgdGh1cyBibG9jay4KCSAgSWYgdXBzdHJlYW0gd2FzIHdhaXRpbmcgb24gYnVmZmVyaW5nIHRvIHJlYWNoIDEwMCUgYmVmb3JlCgkgIHN3aXRjaGluZyB0byBQTEFZSU5HLCBhIGRlYWRsb2NrIHdvdWxkIGVuc3VlLgoJICBXZSBmaXggaXQgYnkgcmVmdXNpbmcgdGhlIHF1ZXJ5IHdoZW4gYnVmZmVyaW5nLCBhcyBwZXIgV2ltJ3MKCSAgcmVjb21tZW5kYXRpb24gb24gSVJDLgoKMjAxNC0wMy0yMyAxMjo1Mzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgdGVzdHM6IG1ha2UgbmV0Y2xpZW50Y2xvY2sgdGVzdCBmYXN0ZXIgYW5kIGxlc3MgZmxha3kKCjIwMTQtMDMtMjEgMTI6MTY6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGluaXQgbmV3IGZsYWcgdHlwZXMgdG8gcGFzcyBtYWtlIGNoZWNrCgoyMDE0LTAzLTE5IDA5OjMzOjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVcGRhdGUgYnVmZmVyaW5nIHN0YXR1cyBhbmQgbWF5YmUgcG9zdCBidWZmZXJpbmcgbWVzc2FnZSByaWdodCB3aGVuIGVuYWJsaW5nIGJ1ZmZlcmluZwoKMjAxNC0wMy0xOSAwOTozMjo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBVcGRhdGUgYnVmZmVyaW5nIHN0YXR1cyBhbmQgbWF5YmUgcG9zdCBidWZmZXJpbmcgbWVzc2FnZSByaWdodCB3aGVuIGVuYWJsaW5nIGJ1ZmZlcmluZwoKMjAxNC0wMy0xOCAxODoxMjoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBVcGRhdGUgcG9zaXRpb25zIHdlJ3JlIGNoZWNraW5nIGZvciBhZnRlciBhIHN0YXRlIGlzIGxvc3QKCjIwMTQtMDMtMTggMTg6MTE6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBVcGRhdGUgc3RhcnQgdGltZSB3aGVuIHdlIGxvc2Ugb3VyIHN0YXRlCgkgIE90aGVyd2lzZSB3ZSByZXBvcnQgbm90IHRoZSBjb3JyZWN0IHBvc2l0aW9uIHdoaWxlIHRoZSBzdGF0ZSBpcyBsb3N0LgoKMjAxNC0wMy0xOCAxNjo0Nzo0MiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IGNsaXAgdGhlIHJlcG9ydGVkIHBvc2l0aW9uIGluIFBBVVNFRCB0byBhZnRlciB0aGUgbGFzdCBidWZmZXIgZW5kIHRpbWVzdGFtcAoJICBPdGhlcndpc2Ugd2UganVtcCBmb3J3YXJkIHdoZW4gcGF1c2luZywgYW5kIGdvIGJhY2t3YXJkcyBhIGJpdCBhZ2FpbgoJICB3aGVuIHJlc3VtaW5nIHBsYXliYWNrLgoKMjAxNC0wMy0xNyAxMDowNTozMSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGV4cG9ydHMgZm9yIEdzdFRvYyBsb29wCgoyMDE0LTAzLTE3IDEwOjA1OjE4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZXhwb3J0IGZvciBnc3QqZGV2aWNlIHN5bWJvbHMKCjIwMTQtMDMtMTcgMDk6NTE6NDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZW1vbml0b3I6IFVzZSBsb2NhbCBpbmNsdWRlcyBhbmQgdXNlIGdzdF9wcml2YXRlIGJlZm9yZSBhbnl0aGluZwoJICBTaG91bGQgZml4IGJ1aWxkIGlzc3VlcyBvbiBCU0QKCjIwMTQtMDMtMTYgMjA6NTA6NTMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWlucGVjdDogUHJpbnQgZGV2aWNlIG1vbml0b3IKCjIwMTQtMDMtMTYgMTU6NTY6NTkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSogZ3N0L2dzdGRldmljZS5jOgoJKiBnc3QvZ3N0ZGV2aWNlLmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGRldmljZTogQWRkICJrbGFzcyIgdG8gR3N0RGV2aWNlcwoKMjAxNC0wMy0xNiAxODowMjo1NiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJKiBnc3QvZ3N0ZGV2aWNlbW9uaXRvcmZhY3RvcnkuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5Lmg6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmg6CgkgIGRldmljZW1vbml0b3I6IE1ha2UgY2xhc3NlcyBpbnRvIHB1cmUgc3RyaW5ncwoJICBJbnN0ZWFkIG9mIGhhdmluZyBzdHJpbmdzICYgZmxhZ3MsIG1ha2UgdGhlbSBqdXN0IHN0cmluZ3MKCjIwMTQtMDMtMTcgMDY6Mjk6MjcgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIEZpeCBleHRlbmRlZCBtZXNzYWdlIGhhbmRsaW5nIHdpdGggZ3N0X2J1c19wb3BfdGltZWRfZmlsdGVyZWQoKQoJICBNYWtlIHN1cmUgZXh0ZW5kZWQgbWVzc2FnZSB0eXBlcyBkb24ndCBnZXQgYWNjaWRlbnRhbGx5IG1hdGNoZWQKCSAgd2hlbiBub3QgYXNrZWQgZm9yIGluIHRoZSBtYXNrCgoyMDE0LTAzLTE3IDA1OjI0OjEyICsxMTAwICBKYW4gU2NobWlkdCA8amFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiBBdm9pZCBwb2ludGxlc3Mgb2JqZWN0IGxvY2sgZm9yd2FyZGluZyBtZXNzYWdlcy4KCSAgRXZlcnkgaW5zdGFuY2Ugb2YgY2FsbGluZyBiaW5fZG9fbWVzc2FnZV9mb3J3YXJkKCkgZmlyc3QgdG9vayB0aGUKCSAgb2JqZWN0IGxvY2ssIHNvIHRoYXQgYmluX2RvX21lc3NhZ2VfZm9yd2FyZCgpIGNvdWxkIGRyb3AgaXQgYW5kCgkgIHRoZW4gcmVjbGFpbS4gSW5zdGVhZCwgb25seSB0YWtlIHRoZSBvYmplY3QgbG9jayBhZnRlcndhcmQgd2hlcmUKCSAgbmVlZGVkLgoKMjAxNC0wMi0xOSAwMjoyNzozNiArMDEwMCAgTWF0aGlldSBEdXBvbmNoZWxsZSA8bWR1cG9uY2hlbGxlMUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBXaGVuIHNlZWsgZmx1c2hlZCwgaW1tZWRpYXRlbHkgc2V0IGVvc3BhZHMgdG8gMAoJICBUaGlzIHByZXZlbnRzIHNpdHVhdGlvbnMgd2hlcmUgYSBmaXJzdCBicmFuY2ggd291bGQgZ2V0IHNlZWtlZCBhbmQKCSAgcmVjZWl2ZSBhIGJ1ZmZlciBiZWZvcmUgYWxsIGJyYW5jaGVzIGdvdCBzZWVrZWQsIGFuZCB0aHVzIGNvbGxlY3RlZAoJICB3b3VsZCBnZXQgY2FsbGVkIGJhc2VkIG9uIEVPUyBmcm9tIHRoZSBwcmV2aW91cyBzZWdtZW50LgoJICBBcyBhIGNvbnNlcXVlbmNlLCBkdXJpbmcgdGhlIHByb2Nlc3Mgb2Ygc2Vla2luZywgZG9uJ3QgZGVjcmVhc2UKCSAgdGhlIGVvc3BhZHMgbnVtYmVyIHdoZW4gYSBGTFVTSF9TVE9QIGlzIHJlY2VpdmVkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0NTcxCgoyMDE0LTAzLTE2IDE3OjQ3OjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogVW5yZWYgcGVlciBwYWQKCjIwMTQtMDItMTYgMjA6MzU6MDkgKzAxMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1kdXBvbmNoZWxsZTFAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRm9yd2FyZCBzZWVrIGV2ZW50cyB0byB0aGUgcGVlciBkaXJlY3RseQoJICBUYWtlbiBmcm9tIHRoZSBhZGRlciBzZWVrIGhhbmRsaW5nIGNvZGUuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjY0NjEKCjIwMTQtMDEtMDIgMjI6MzA6MTEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IGV4cGFuZCBHc3RUb2NFbnRyeSB3aXRoIGxvb3AgZmllbGRzCgkgIEFkZCBsb29wX3R5cGUgYW5kIHJlcGVhdF9jb3VudCBmaWVsZHMgdG8gR3N0VG9jRW50cnkgcGx1cyBzZXR0ZXJzIGFuZCBnZXR0ZXJzLgoJICBUaGlzIGFsbG93cyB0byByZXByZXNlbnQgZWRpdC1saXN0cyBpbiBhIHRvYyBhcyB3ZWxsIGFzIGxvb3BzIGluIGluc3RydWVtbnRzICh3YXYsIHhpKS4KCSAgQVBJOiBnc3RfdG9jX2VudHJ5X3NldF9sb29wCgkgIEFQSTogZ3N0X3RvY19lbnRyeV9nZXRfbG9vcAoKMjAxNC0wMy0xNiAxNToxOTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RnbG9iYWxkZXZpY2Vtb25pdG9yLmM6CgkgIGdsb2JhbGRldmljZW1vbml0b3I6IHVwZGF0ZSBmb3IgbmV3IG1lc3NhZ2UgQVBJCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTMtMDEtMDggMjE6MzA6NDQgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGdsb2JhbGRldmljZW1vbml0b3IuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdsb2JhbGRldmljZW1vbml0b3I6IEFkZCBkZXZpY2UgbW9uaXRvciBhZ2dyZWdhdG9yCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTQtMDMtMTYgMTQ6MDg6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIHRlc3RzOiBhZGQgdGVzdCBmb3IgZXh0ZW5kZWQgbWVzc2FnZSB0eXBlcyBhbmQgZ3N0X2J1c190aW1lZF9wb3BfZmlsdGVyZWQKCjIwMTQtMDMtMTYgMTQ6MDg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZSwgYnVzOiBkbyBleHRlbmRlZCBtZXNzYWdlIHR5cGVzIHNsaWdodGx5IGRpZmZlcmVudGx5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MDIKCjIwMTQtMDMtMTYgMTQ6MDc6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZml4IGluZGVudGF0aW9uCgoyMDEyLTEwLTE2IDEyOjI3OjA0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGV2aWNlLmM6CgkqIGdzdC9nc3RkZXZpY2UuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuYzoKCSogZ3N0L2dzdGRldmljZW1vbml0b3IuaDoKCSogZ3N0L2dzdGRldmljZW1vbml0b3JmYWN0b3J5LmM6CgkqIGdzdC9nc3RkZXZpY2Vtb25pdG9yZmFjdG9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGV2aWNlbW9uaXRvcjogQWRkIEdzdERldmljZU1vbml0b3IgYW5kIHJlbGF0ZWQKCSAgQWxzbyBhZGQgR3N0RGV2aWNlIGFuZCBHc3REZXZpY2VNb25pdG9yRmFjdG9yeQoJICBBbmQgYWRkIGNvZGUgdG8gdGhlIHJlZ2lzdHJ5IHRvIHNhdmUgdGhlbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDEzLTA4LTE0IDE1OjU2OjExIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IEFkZCBHU1RfTUVTU0FHRV9FWFRFTkRFRAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NDAyCgoyMDE0LTAzLTE2IDExOjA1OjU2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogYWN0dWFsbHkgcmV0dXJuIGRhdGEucmV0CgkgIFRoZSByZXR1cm4gdmFsdWUgZnJvbSBnc3RfcGFkX2ZvcndhcmQoKSBpcyB0aGUgYWdncmVnYXRlZCByZXR1cm4gdmFsdWUgZnJvbSB0aGUgY2FsbGJhY2sgYW5kIHRoZSBjYWxsYmFjayByZXR1cm5zIEZBTFNFIHRvIGNvbnRpbnVlIGl0ZXJhdGluZy4KCjIwMTQtMDMtMTUgMTU6NTQ6MzMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBmb3J3YXJkIHJldHVybiB2YWx1ZSBmcm9tIGdzdF9wYWRfZm9yd2FyZAoJICBJbnN0ZWFkIG9mIGlnbm9yaW5nIHRoZSByZXR1cm4gdmFsdWUgYW5kIGFsd2F5cyByZXR1cm4gVFJVRSBwYXNzIHRoZSBhbHJlYWR5IGFncmVnYXRlZCByZXN1bHQgYmFjay4KCjIwMTQtMDMtMTUgMTM6NTc6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBmaXggbWFrZS1jaGVjayBieSBydW5uaW5nICdtYWtlIHVwZGF0ZS1leHBvcnRzJwoKMjAxNC0wMy0xNCAxMzozMjoxNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIHRlc3RzOiBtdWx0aXF1ZXVlOiBmaXggZW9zIGNvdW50IG9uIHRlc3QgZm9yIG5vdC1saW5rZWQgY2FzZQoJICBGcm9tIHRoZSB0ZXN0IGNhc2U6CgkgIC8qIFRoaXMgdGVzdCBjcmVhdGVzIGEgbXVsdGlxdWV1ZSB3aXRoIDIgc3RyZWFtcy4gT25lIHJlY2VpdmVzCgkgICogYSBjb25zdGFudCBmbG93IG9mIGJ1ZmZlcnMsIHRoZSBvdGhlciBvbmx5IGdldHMgb25lIGJ1ZmZlciwgYW5kIHRoZW4KCSAgKiBuZXctc2VnbWVudCBldmVudHMsIGFuZCByZXR1cm5zIG5vdC1saW5rZWQuIFRoZSBtdWx0aXF1ZXVlIHNob3VsZCBub3QgZmlsbC4KCSAgKi8KCSAgSWYgb25lIG9mIHRoZSBxdWV1ZXMgZ29lcyBFT1MgYW5kIHRoZSBvdGhlciByZXR1cm5zIE5PVF9MSU5LRUQgdGhlIHN0cmVhbQoJICBjYW4gYmUgY29uc2lkZXJlcmVkIEVPUyBhcyBhIE5PVF9MSU5LRUQgbWVhbnMgdGhhdCBvbmUgb2YgdGhlIGJyYW5jaGVzIGhhcyBubwoJICBzaW5rIGRvd25zdHJlYW0gdGhhdCB3aWxsIGJsb2NrIHRoZSBFT1MgbWVzc2FnZSBwb3N0aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1OTE3CgoyMDE0LTAzLTAxIDIzOjE4OjQ0ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogQWRhcHQgZ3N0X2FkYXB0ZXJfY29weSgpIGZvciBiaW5kaW5ncwoJICBUaGlzIGlzIGRvbmUgYnkgaW50cm9kdWNpbmcgYSBuZXcgZ3N0X2FkYXB0ZXJfY29weV9ieXRlcygpIGNhbGwgdGhhdAoJICByZXR1cm5zIGEgR0J5dGVzIHN0cnVjdHVyZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTQ3NgoKMjAxNC0wMy0xNCAxODo0MDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBkb2NzOiBmaXggbXVsdGlxdWV1ZSBkb2NzIGZvciBuZXcgdGVtcGxhdGUgbmFtZXMgZm9vXyVkIC0+IGZvb18ldQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2MzU4CgoyMDE0LTAzLTExIDIxOjU1OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkgIGRvY3M6IHVwZGF0ZSBwbHVnaW4gZG9jcwoKMjAxNC0wMy0xMSAyMTo0NDozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzaW1wbGlmeSBnc3RfcGFkX2xpbmtfZ2V0X25hbWUoKSBhbmQgZml4IFNpbmNlIG1hcmtlcgoJICBIYXMgYWRkZWQgYmVuZWZpdCB0aGF0IGNvbXBpbGVyIG1pZ2h0IHdhcm4gaWYgbW9yZSB2YWx1ZXMKCSAgYXJlIGFkZGVkIHRvIHRoZSBlbnVtLgoKMjAxNC0wMy0xMSAyMTo0NjoxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBhZDogYWRkIGRlYnVnIGhlbHBlciBmb3IgR3N0UGFkTGlua1JldHVybiBuYW1lcwoJICBBZGQgYSBoZWxwZXIgbGlrZSBnc3RfZmxvd19nZXRfbmFtZSgpIGZvciBHc3RQYWRMaW5rUmV0dXJuLiBVc2UgdGhpcyBpbiBjb3JlLgoJICBBUEk6IGdzdF9wYWRfbGlua19nZXRfbmFtZSgpCgoyMDE0LTAzLTExIDIxOjEyOjE1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiB1c2Ugc3RvcmVfc3RpY2t5IGV2ZW50cyBhZGQgYWRkIG1vcmUgbG9nZ2luZwoJICBVc2UgdGhlIHBhZCBhcyBvYmplY3QgZm9yIGxvZ2dpbmcgdG8gZ2V0IG1vcmUgY29udGV4dC4gVXNlCgkgIGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50KCkgaW5zdGVhZCBvZiBzZW5kaW5nIHRoZSBldmVudC4gVGhpcyBhdm9pZHMgYSB3YXJuaW5nCgkgIGFzIGhlcmUgdGhlIHBhZCBpcyBub3QgeWV0IGxpbmtlZCBhbmQgd2UgYWN0dWFsbHkgZG9uJ3Qgd2FudCB0byBzZW5kIGFueXdheS4KCjIwMTQtMDMtMTAgMTA6MDA6MjggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBpZiBidWZmZXJpbmcgaXMgZGlzYWJsZWQgd2hpbGUgYnVmZmVyaW5nLCBwb3N0IDEwMCUgbWVzc2FnZQoJICBBdm9pZHMgc3RhbGwgd2FpdGluZyBmb3IgYnVmZmVyaW5nIHRvIHJlYWNoIDEwMCUKCjIwMTQtMDMtMTAgMDk6NDk6MDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgkgIGJ1ZmZlcmluZ19pdGVyYXRpb24gd2FzIG5ldmVyIHVzZWQKCjIwMTQtMDMtMTAgMDk6NDk6MDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTogcXVldWUyOiBwcmVzZXJ2ZSBsYXN0IGZsb3cgcmVzdWx0IHdoZW4gcHVzaGluZyBldmVudHMKCSAgQXZvaWRzIG1pc3Rha2VubHkgcmV0dXJuaW5nIF9PSyB3aGVuIGRvd25zdHJlYW0gaXMgc3RpbGwKCSAgX05PVF9MSU5LRUQgb24gc3Vic2VxdWVudCByZWNlaXZlZCBwYWQgcHVzaGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU5MTcKCjIwMTQtMDMtMTAgMDk6NDk6MDUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGlmIGJ1ZmZlcmluZyBpcyBkaXNhYmxlZCB3aGlsZSBidWZmZXJpbmcsIHBvc3QgMTAwJSBtZXNzYWdlCgkgIEF2b2lkcyBzdGFsbCB3YWl0aW5nIGZvciBidWZmZXJpbmcgdG8gcmVhY2ggMTAwJQoKMjAxNC0wMy0xMCAwOTo0ODo1OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZG8gbm90IHJlc2V0IGxhc3QgcHVzaCByZXN1bHQgd2hlbiBwdXNoaW5nIGV2ZW50cwoJICBVc2UgdGhlIGxhc3QgcmVzdWx0IGFzIGEgZGVmYXVsdCB3aGVuIHB1c2hpbmcgYSBpdGVtIGZyb20gYSBzaW5nbGUgcXVldWUsCgkgIG90aGVyd2lzZSB0aGUgc3RhdHVzIGdldHMgcmVzZXQgdG8gX09LIHdoZW4gcHVzaGluZyBldmVudHMuCgkgIFRoaXMgY2F1c2VzIHByb2JsZW1zIHdoZW4gbWlzdGFrZW5seSBhY3RpdmF0aW5nIGEgbm90LWxpbmtlZCBzdHJlYW0KCSAgdGhhdCBpcyBiZWluZyBpZ25vcmVkIHVwc3RyZWFtIGFzIGl0IGlzIG5vdCBiZWluZyB1c2VkIChhZGFwdGl2ZQoJICBzY2VuYXJpb3MpLCBpdCB3aWxsIG1ha2UgdGhlIG11bHRpcXVldWUgcG9zdCBhIGJ1ZmZlcmluZyBtZXNzYWdlCgkgIG9uIGEgcGFkIHRoYXQgd29uJ3QgcmVjZWl2ZSBidWZmZXJzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU5MTcKCjIwMTQtMDMtMDcgMjA6NDM6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVyOiBpbnZlcnQgbWVhbmluZyBvZiBHU1RfQlVGRkVSX0ZMQUdfVEFHX01FTU9SWQoJICBJdCdzIG5pY2VyIHRvIG9ubHkgaGF2ZSBpdCBzZXQgd2hlbiBzb21ldGhpbmcgbm90ZXdvcnRoeQoJICBoYXBwZW5lZCBhbmQgb3RoZXJ3aXNlIHVuc2V0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1ODYyCgoyMDE0LTAzLTA2IDIyOjUxOjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBnc3RfcGFkX2FkZF9wcm9iZSgpIHJldHVybiB2YWx1ZSBkb2NzCgkgIEFsc28gZml4IGNvbW1lbnQgdHlwb3MgYW5kIGFkZCBtb3JlIGRldGFpbCBpbiB0aGUgbG9ncy4KCjIwMTQtMDMtMDYgMjA6NDA6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGZha2VzaW5rLCBpZGVudGl0eSwgZmFrZXNyYzogZml4IGRlYnVnIHByaW50aW5nIGlmIFRBR19NRU1PUlkgYnVmZmVyIGZsYWcKCSAgVGhlIElOX0NBUFMgZmxhZyBkb2VzIG5vdCBleGlzdCBhbnkgbW9yZS4KCjIwMTQtMDMtMDYgMTM6MDE6NDAgKzAyMDAgIEdlb3JnZSBLaWFnaWFkYWtpcyA8Z2VvcmdlLmtpYWdpYWRha2lzQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHVzZSBnc3RfcGFkX2dldF9wZWVyIHRvIGFjcXVpcmUgYSByZWZlcmVuY2UgdG8gdGhlIHRhcmdldCBwYWQKCSAgVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGxvY2sgb2YgdGhlIGludGVybmFsIHBhZCBpcyBoZWxkIHdoaWxlIHJlZmVyZW5jaW5nCgkgIGl0J3MgcGVlciAoPSB0aGUgdGFyZ2V0IHBhZCksIHdoaWNoIGVuc3VyZXMgdGhhdCB0aGUgcGVlciBpcyBub3QKCSAgZ29pbmcgdG8gYmUgdW5saW5rZWQvZGVzdHJveWVkIGluIHRoZSBtZWFudGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTgwOQoKMjAxNC0wMy0wNiAxMjo0MDoyMyArMDIwMCAgR2VvcmdlIEtpYWdpYWRha2lzIDxnZW9yZ2Uua2lhZ2lhZGFraXNAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgdGFyZ2V0IHBhZCB3aGlsZSB1bmxpbmtpbmcgaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTgwOQoKMjAxNC0wMy0wMiAwNTowODoyNCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogSWdub3JlIGdjb3YgaW50ZXJtZWRpYXRlIGZpbGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjU0NzgKCjIwMTQtMDMtMDIgMTc6NTU6NDUgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGRvY3M6IEZpeCB0eXBvcyBhbmQgcmVtb3ZlIHVua25vd24gYW5ub3RhdGlvbnMKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNTUxNwoKMjAxNC0wMi0yOCAyMDo1MzozOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkgIGRvY3M6IHVzZSB0aGUgbmV3IG1hcmtkb3duIGZvciBvcmRlcmVkIGxpc3QuCgkgIFRoaXMgd2FzIHBsYWluIHRleHQgdGhhdCBoYWQgYWxsIGxpc3QgaXRlbXMgb25lIGFmdGVyIHRoZSBvdGhlciAoaW5jbHVkaW5nIGEKCSAgcmVwZWF0ZWQgbnVtYmVyKS4gTm93IGl0IHdpbGwgYXRsZWFzdCBsb29rIGdvb2Qgd2hlbiBwcm9jZXNzZWQgd2l0aCBndGstZG9jCgkgIDEuMjAuCgoyMDE0LTAyLTI4IDA5OjM0OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZTE2NzJlIHRvIGJjYjE1MTgKCjIwMTQtMDItMjcgMjI6MjY6MzAgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBkb2NzOiBmaXggcHJvYmxlbXMgaW50cm9kdWNlZCBieSBjMDY4YjIyNWZlZjVhOWJmMAoJICAtIEZpeCBmYWlsaW5nIGJ1aWxkCgkgIC0gRHJvcCBhZGRlZCB0cmFpbGluZyB3aGl0ZXNwYWNlCgoyMDE0LTAyLTI3IDE4OjI3OjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCByZXR1cm4gdmFsdWVzIHRvIGdfcmV0dXJuX2lmX2ZhaWwKCSAgRkl4ZXMgcHJldmlvdXMgY29tbWl0LgoKMjAxNC0wMi0yNyAxODowNjo1NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgZG9jczogY29udmVydCB0aGUgZXhhbXBsZXMgdG8gdXNlIGd0ay1kb2MgbWFya3VwLCBpbnN0ZWFkIG9mIGRvY2Jvb2sKCSAgVGhlIGd0ay1kb2MgbWFya3VwIGlzIGxlc3MgaW50cnVzaXZlIGFuZCBiZXR0ZXIgaGFuZGxlZCB3aGVuIGNyZWF0aW5nIGRvY3MgZm9yCgkgIGxhbmd1YWdlIGJpbmRpbmdzLiBUaGUgdGl0bGVzICh3aGVyZSB1c2VkKSB3aGVyZSBub3QgYWRkaW5nIG11Y2guCgoyMDE0LTAyLTI3IDE2OjQ2OjExICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIG5ldyBBUEkgZG8gZG9jcwoKMjAxNC0wMi0yNyAxNjo0MDozNCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBvbmx5IHJlbGVhc2UgYnVmZmVycyB3aXRoIHdyaXRhYmxlIG1lbW9yeQoJICBDaGVjayBpZiB0aGUgbWVtb3J5IGlzIHdyaXRhYmxlIGJlZm9yZSByZWxlYXNpbmcgdGhlIGJ1ZmZlciBpbnRvIHRoZQoJICBwb29sIGFnYWluLgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGlzIHNjZW5hcmlvLgoKMjAxNC0wMi0yNyAxNjozOTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgZnVuY3Rpb24gdG8gY2hlY2sgd3JpdGFiaWxpdHkgb2YgbWVtb3J5CgkgIENoZWNrIGlmIG1lbW9yeSBpcyB3cml0YWJsZSBpbiBhIGJ1ZmZlciBhbmQgdGh1cyBpcyBleGNsdXNpdmVseSBvd25lZCBieQoJICB0aGlzIGJ1ZmZlci4KCjIwMTQtMDItMjcgMTU6MTQ6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogVXNlIFRBR19NRU1PUlkgdG8gY2hlY2sgbWVtb3J5IGJlZm9yZSByZWxlYXNpbmcKCSAgVGFnIGFsbG9jYXRlZCBidWZmZXJzIHdpdGggVEFHX01FTU9SWS4gV2hlbiB0aGV5IGFyZSByZWxlYXNlZCBsYXRlciwKCSAgb25seSBhZGQgdGhlbSBiYWNrIHRvIHRoZSBwb29sIGlmIHRoZSB0YWcgaXMgc3RpbGwgdGhlcmUgYW5kIHRoZSBtZW1vcnkKCSAgaGFzIG5vdCBiZWVuIGNoYW5nZWQsIG90aGVyd2lzZSB0aHJvdyB0aGUgYnVmZmVyIGF3YXkuCgkgIEFkZCB1bml0IHRlc3QgdG8gY2hlY2sgdmFyaW91cyBzY2VuYXJpb3MuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQ0ODEKCjIwMTQtMDItMjcgMTQ6MzU6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGEgbmV3IGZsYWcgdG8gdHJhY2sgbWVtb3J5IGNoYW5nZXMKCSAgQWRkIGEgZmxhZyB0byBjaGVjayBpZiB0aGUgbWVtb3J5IGNoYW5nZWQgaW4gYSBidWZmZXIuCgoyMDE0LTAyLTI2IDE1OjM2OjQyICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZW1vdmUgd3JvbmcgY29tbWVudAoJICBSZWZjb3VudCBhbmQgd3JpdGFiaWxpdHkgYXJlIG5vdCByZWxhdGVkIGZvciBtZW1vcnkgb2JqZWN0cy4KCjIwMTQtMDItMjUgMTc6NDY6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcmVmYWN0b3IgZnJlZV9idWZmZXIKCSAgTWFrZSBhIGRvX2ZyZWVfYnVmZmVyIG1ldGhvZCB0byBhbHNvIGRlY3JlbWVudHMgdGhlIG51bWJlciBvZiBhbGxvY2F0ZWQKCSAgYnVmZmVycy4gU3RvcCB3aWxsIG5vdyBiZSBzdWNjZXNzZnVsIHdoZW4gYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkLgoKMjAxNC0wMi0yNiAyMjoxMDoyOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWEwN2RhOSB0byBmZTE2NzJlCgoyMDE0LTAyLTI2IDIwOjI0OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogYWRkIGEgbGVnZW5kIHRvIHBpcGVsaW5lIGR1bXBzCgkgIFdlIHVzZSBhIGNvdXBsZSBvZiBzeW1ib2xzIHRvIHJlcHJlc2VudCBzdGF0ZXMvZmxhZ3MuIEFkZCBhIHNob3J0IGV4cGxhbmF0aW9uIGZvciB0aGVtLgoKMjAxMy0wNy0zMSAwOToyNjoyNiArMDIwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IFByaW50IGlmIHRoZXJlIGlzIGEgdGFzayBzdGFydGVkIGZyb20gYSBwYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTE4OQoKMjAxNC0wMi0yNSAxNjoxMToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBVc2UgZ2V0X3VpbnQ2NCgpIGluIGdzdF9zdHJ1Y3R1cmVfZ2V0X2Nsb2NrX3RpbWUoKQoJICBJdHMgY29kZSBpcyBpZGVudGljYWwuCgoyMDE0LTAyLTI1IDE1OjQxOjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQWRkIGdldHRlcnMgZm9yIGludDY0IGFuZCB1aW50NjQgdmFsdWVzCgoyMDE0LTAyLTE5IDIxOjE3OjI3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgYmFzZXNyYzogRG8gbm90IHNlbmQgZW9zIHdoZW4gc2Vla2luZyBhZnRlciBsYXN0IGJ1ZmZlcgoJICBJZiBwdXNoaW5nIHRoZSBsYXN0IGJ1ZmZlciB0cmlnZ2VycyBhIHNlZWsgZnJvbSBkb3duc3RyZWFtLCBkbyBub3QKCSAgZ28gaW50byBFT1MgaWYgYSBuZXcgc2VnbWVudCB3YXMgcmVxdWVzdGVkLgoJICBDb250YWlucyB1bml0IHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDc1NwoKMjAxNC0wMi0yMSAwOTowMzo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHJlbW92ZSBpbnNhbml0eSBhbmQgdGhlIG9sZCBnc3Qtb3Blbm1heAoKMjAxNC0wMi0yMCAxODo0Nzo0MiArMDEwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWRkIHBhdGhzIHRvIGdzdC1kZXZ0b29scy92YWxpZGF0ZQoKMjAxNC0wMi0yMCAxNTozNDozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJZiB3ZSBvbmx5IGhhdmUgYSBzaW5nbGUgcGFkLCBkb24ndCBjb25zaWRlciBhbGwgcGFkcyBub3QgbGlua2VkIGFuZCBncm93IHRoZSBxdWV1ZSBpbmRlZmluaXRlbHkKCjIwMTQtMDItMTkgMTA6NTc6MzMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWxzbyB1c2UgdGhlIGdsb2Igb24gR1NUX0NIRUNLUyB3aGVuIGZvcmNpbmcgdG8gcnVuIGJyb2tlbiB0ZXN0cwoJICBHU1RfQ0hFQ0tTIGNhbiBiZSBzaW1wbHkgInRlc3QqIiB0byBydW4gcnVuIGFsbCB0ZXN0cyAoaW5jbHVkaW5nIHRob3NlIHRoYXQgYXJlCgkgIG1hcmtlZCBicm9rZW4pLiBVcGRhdGUgdGhlIHNwYXJzZSBjb21tZW50cyBhIGJpdCB0byB0ZWxsIGhvdyB0aGlzIHdvcmtzLgoKMjAxNC0wMi0xOCAxNTo0NjozMiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHRydW5jYXRlIHRoZSB0ZW1wIGZpbGUgb24gc2h1dGRvd24KCSAgV2Ugd2FudCB0byBrZWVwIHRoZSBkb3dubG9hZGVkIGZpbGUgdW50cnVuY2F0ZWQgc28gdGhhdCB3ZSBjYW4gdXNlIGl0CgkgIGFnYWluIGxhdGVyLgoJICBGaXhlczogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDM3MwoKMjAxNC0wMi0xOCAxNDoyMToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBtZXJnaW5nIG9mIHJhbmdlcwoJICBNYWtlIGEgbWV0aG9kIHRvIGdldCB0aGUgc2Vla2luZyB0aHJlc2hvbGQuIElmIGRhdGEgaXMgZnVydGhlciBhd2F5IGZyb20KCSAgdGhpcyB0aHJlc2hvbGQgd2Ugd2FudCB0byBwZXJmb3JtIGEgc2VlayB1cHN0cmVhbS4KCSAgV2hlbiB0aGUgY3VycmVudCBkb3dubG9hZGVkIHJhbmdlIGNhbiBtZXJnZSB3aXRoIHRoZSBuZXh0IHJhbmdlLAoJICBhY3R1YWxseSBpbmNsdWRlIHRoZSBkYXRhIG9mIHRoZSBuZXh0IHJhbmdlIGludG8gdGhlIGN1cnJlbnQgcmFuZ2UKCSAgaW5zdGVhZCBvZiBkaXNjYXJkaW5nIGl0LiBBbHNvIGRlY2lkZSBpZiB3ZSBzZWVrIHRvIHRoZSB3cml0ZSBwb3NpdGlvbgoJICBvZiB0aGUgbWVyZ2VkIHJhbmdlIG9yIGNvbnRpbnVlIHJlYWRpbmcuCgoyMDE0LTAyLTE4IDExOjQ5OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbiBhdXRvbWF0aWNfZW9zIG1vZGUsIGRvbid0IG1vZGlmeSB0aGUgc2l6ZQoJICBEb24ndCBzZXQgdGhlIHNpemUgdG8gLTEgaW4gYXV0b21hdGljX2VvcyBtb2RlICh3aGljaCBhbHNvIHVwZGF0ZXMgdGhlCgkgIGR1cmF0aW9uIHRvIC0xKS4gV2Ugb25seSB3YW50IGF1dG9tYXRpY19lb3MgbW9kZSBpbmZsdWVuY2UgdGhlIG1heHNpemUKCSAgY2FsY3VsYXRpb25zIHdpdGhvdXQgYW55IHNpZGUgZWZmZWN0cy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDU2NAoKMjAxNC0wMi0xNyAxMTozNzozMCArMDEwMCAgSmFuIEFsZXhhbmRlciBTdGVmZmVucyAoaGVmdGlnKSA8amFuLnN0ZWZmZW5zQGdtYWlsLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgcHdnOiBVcGRhdGUgcmF3IHByb3BlcnRpZXMKCSAgVXNpbmcgaW5mbyBmcm9tIGdzdC1wbHVnaW5zLWJhc2UvZG9jcy9kZXNpZ24gLgoJICBFbmNvZGVkIHN0cmVhbXMgbWlnaHQgbWFrZSB1c2Ugb2YgdGhlIHJhdyBwcm9wZXJ0aWVzLCBzbyBsaXN0IHRoZW0gYWxsIHVuZGVyIGZvby8qIC4KCSAgRm9yIGZvby9yYXcsIG9ubHkgbm90ZSB3aGljaCBvZiB0aGVzZSBwcm9wZXJ0aWVzIGFyZSBtYW5kYXRvcnkuCgkgIEkgZGlkbid0IHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGUgcmF3IGZvcm1hdHMgeWV0LiBUaG9zZSBtaWdodCBzdGlsbCBiZSBvdXQtb2YtZGF0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDE4NwoKMjAxNC0wMi0xNyAxNzoyODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXA6IHJlbW92ZSBkZWFkIGh0dHAgbGlua3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyNDU2MQoKMjAxNC0wMi0xNSAyMjozNDozMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgZG9jczogYWRkIHRoZSBib3hlZCB0eXBlcyB0byB0aGUgLnR5cGVzLmluCgkgIFRoaXMgbWFrZXMgdGhlbSBzaG93IHVwIGluIHRoZSBvYmplY3QgaGllcmFyY2h5LgoKMjAxNC0wMi0xNSAyMToyMjo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBkb2NzOiBndGtkb2MgaXMgbm90IGdvb2QgYXQgcGFyc2luZyBpbmxpbmUgZnVuY3Rpb25zIGluIGhlYWRlcnMKCSAgTWFyayB0aGUgaW5saW5lIGZ1bmN0aW9uLCBzbyB0aGF0IGd0a2RvYyBza2lwcyB0aGVtLiBBdm9pZHMgc29tZSB3YXJuaW5ncyBhYm91dAoJICB1bnBhcnNhYmxlIGRlY2xhcmF0aW9ucy4KCjIwMTQtMDItMTMgMTI6MDc6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNyYzogQWRkIGdzdF9iYXNlX3NyY19zZXRfYXV0b21hdGljX2VvcygpIEFQSQoJICBUaGlzIGRlZmF1bHRzIHRvIFRSVUUgYW5kIGlmIGl0IGlzIHNldCB0byBGQUxTRSBpdCBpcyB0aGUgc3ViY2xhc3NlcwoJICByZXNwb25zaWJpbGl0eSB0byByZXR1cm4gR1NUX0ZMT1dfRU9TIGZyb20gdGhlIGNyZWF0ZSgpIHZtZXRob2Qgb25jZQoJICB0aGUgc3RyZWFtIGlzIGRvbmUuCgoyMDE0LTAyLTExIDE2OjMwOjMxICswMDAwICBXaWxsaWFtIE1hbmxleSA8d2lsbEB3aWxsaWFtbWFubGV5Lm5ldD4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZG9jczogRml4IGxvY2F0aW9uIG9mIHBsdWdpbnMgYW5kIHJlZ2lzdHJ5IGluIGhvbWUgZGlyZWN0b3JpZXMKCSAgRml4ZXMgb3V0IG9mIGRhdGUgZG9jdW1lbnRhdGlvbiBsZWZ0IG92ZXIgc2luY2UgMC4xMC4gIEluIDEuMCBwbHVnaW5zIGFyZQoJICBzdG9yZWQgaW4gJFhER19EQVRBX0hPTUUgYW5kIHRoZSByZWdpc3RyeSBpbiAkWERHX0NBQ0hFX0hPTUUgY29uZm9ybWFudAoJICB3aXRoIHRoZSBYREcgQmFzZSBEaXJlY3RvcnkgU3BlY2lmaWNhdGlvblsxXS4KCSAgWzFdOiBodHRwOi8vc3RhbmRhcmRzLmZyZWVkZXNrdG9wLm9yZy9iYXNlZGlyLXNwZWMvYmFzZWRpci1zcGVjLWxhdGVzdC5odG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQxMzIKCjIwMTQtMDItMTEgMTM6Mjc6MjUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgZXJyb3I6IEdTVF9SRVNPVVJDRV9FUlJPUl9OT1RfQVVUSE9SSVpFRCB3aWxsIGJlIGF2YWlsYWJsZSBzaW5jZSAxLjIuNAoKMjAxNC0wMi0xMSAxMzowOToxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgZXJyb3I6IEFkZCBSRVNPVVJDRV9OT1RfQVVUSE9SSVpFRCBlcnJvcgoJICBUaGlzIGFsbG93cyB0byBkaXN0aW5ndWlzaCBub3JtYWwgcmVhZCBmYWlsdXJlcyBmcm9tIHJlYWQgZmFpbHVyZXMKCSAgd2hlcmUgd2UgbWlzcyBhdXRob3JpemF0aW9uLgoKMjAxNC0wMi0xMCAxNzowOTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBGaXggeWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI0MDQ1CgoyMDE0LTAyLTEwIDA4OjAwOjM2ICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJyYXNAaG90bWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jczogYWRkIG1pc3Npbmcgc2VxbnVtIGZpbGUgZm9yIGRpc3RyaWJ1dGlvbgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzOTk3CgoyMDE0LTAyLTA5IDE2OjUzOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IGRvY3VtZW50IEdTVF9UQUdfKkVOQ09ESU5HIGVudmlyb25tZW50IHZhcmlhYmxlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxODUwCgoyMDE0LTAyLTA5IDE2OjQ3OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSAgZG9jczogZW5hYmxlIHBhcmFsbGVsIGJ1aWxkIG9mIHN1YmRpcmVjdG9yaWVzCgkgIFdlIGNhbiBidWlsZCBndGsgZG9jcywgQURNLCBQV0cgYW5kIEZBUSBpbiBwYXJhbGxlbC4KCjIwMTQtMDItMDkgMTY6Mzg6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogYWRkIHN1cHBvcnQgZm9yIGJsYWNrbGlzdGluZyBjaGVja3MgdmlhIEdTVF9DSEVDS1NfSUdOT1JFCgoyMDE0LTAyLTA5IDAwOjI1OjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlcGFyc2UuYzoKCSAgdGVzdHM6IGZpeCBsZWFrIGluIGJhc2VwYXJzZSB0ZXN0CgkgIE9yIHJhdGhlciBtYWtlIGl0IG5vdCBzaG93IHVwIGFueSBtb3JlIGJ5IG1vdmluZwoJICBpdCBmcm9tICdkZWZpbml0ZWx5IGxvc3QnIGludG8gJ3Bvc3NpYmx5IGxvc3QnLgoKMjAxNC0wMi0wOCAyMzozOTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICB0ZXN0czogZml4IGxlYWsgaW4gc3lzdGVtY2xvY2sgdGVzdAoKMjAxNC0wMi0wOCAxNjo0Mjo1NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBNYWtlIGNsYW5nIGhhcHB5IHdpdGggb3VyIGdfdnByaW50ZigpIHdyYXBwZXIKCjIwMTQtMDItMDYgMTQ6MTg6MzEgKzA4MDAgIENodW4td2VpIEZhbiA8ZmFuY2h1bndlaUBzcmMuZ25vbWUub3JnPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHdpbmRvd3M6IE1ha2UgR1N0cmVhbWVyIGluc3RhbGxhdGlvbiByZWxvY2F0YWJsZQoJICBVc2UgdGhlIHRlY2huaXF1ZSB0aGF0IGlzIG5vdyBkb25lIGluIEdUSysgc28gdGhhdCB0aGUgcGx1Z2lucyBkbyBub3QgaGF2ZQoJICB0byBiZSBpbnN0YWxsZWQgaW4gYzpcZ3N0cmVhbWVyXGxpYlw8ZGVidWc+XGdzdHJlYW1lci0kKEdTVEFwaVZlcnNpb24pLAoJICBidXQgY2FuIGJlIGluc3RhbGxlZCBpbgoJICA8cGFyZW50X2ZvbGRlcl9vZl9nc3RyZWFtZXJfbWFpbl9kbGw+XGxpYlw8ZGVidWc+XGdzdHJlYW1lci0kKEdTVEFwaVZlcnNpb24pLAoJICBvciBhcyBwZXIgZ193aW4zMl9nZXRfcGFja2FnZV9pbnN0YWxsYXRpb25fZGlyZWN0b3J5X29mX21vZHVsZSgpIGFsbG93cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTExNQoKMjAxMy0xMC0zMCAxNzowMjozNSAtMDUwMCAgQnJlbmRhbiBMb25nIDxiLmxvbmdAY2FibGVsYWJzLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGdzdDogY2xlYXIgZmxvYXRpbmcgcmVmZXJlbmNlcyBmb3IgR3N0VGFzaywgR3N0VGFza1Bvb2wgYW5kIEdzdENvbGxlY3RQYWRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAzNDIKCjIwMTMtMTAtMzAgMTc6MDI6MDIgLTA1MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvY3M6IGdzdF9wYWRfbmV3X2Zyb21fKl90ZW1wbGF0ZSBhbmQgZ3N0X2J1ZmZlcl9wb29sX25ldyBjb25zdHJ1Y3RvcnMgcmV0dXJuIGZsb2F0aW5nIHJlZmVyZW5jZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDM0MgoKMjAxNC0wMi0wNSAxMDoxMTo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSAgY2hlY2s6IFJlbW92ZSBhIG1pbm9yIGxlYWsgaW4gdW5pdCB0ZXN0CgkgIE1ha2VzIHZhbGdyaW5kIGhhcHB5CgoyMDE0LTAyLTA0IDIyOjIzOjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogRml4IGJ1aWxkIGJ5IHVzaW5nIHRoZSBjb3JyZWN0IEMgZmlsZSBuYW1lCgoyMDE0LTAyLTA0IDIxOjM2OjE4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogQ2xlYW4gdXAgY29kZSBhIGJpdCB0byBiZSBzdWl0YWJsZSBmb3IgdGhlIGRvY3MKCjIwMTQtMDEtMDMgMDc6MjU6MzcgLTA4MDAgIFRvZGQgQWd1bG5pY2sgPHRvZGRAYWd1bG5pY2suY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogUmVwbGFjZSBtYW51YWwncyBlZmZlY3Rzd2l0Y2guYyB3aXRoIG5ld2VyIHRlc3QtZWZmZWN0LXN3aXRjaC5jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjExMDAKCjIwMTQtMDEtMjkgMTQ6Mzk6MTkgKzAwMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICB0ZXN0czogYWRkIGNhcHMgZmVhdHVyZXMgdW5pdCB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjM2CgoyMDE0LTAyLTA0IDE4OjQyOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogV2hlbiBnZXR0aW5nIGNhcHNmZWF0dXJlcyBhbmQgbm9uZSBhcmUgdGhlcmUsIHN0b3JlIHN5c21lbSBjYXBzZmVhdHVyZXMKCSAgLi4uIGluc3RlYWQgb2YgcmV0dXJuaW5nIGEgcmVmZXJlbmNlIHRvIGEgZ2xvYmFsIGluc3RhbmNlLiBUaGUgY2FsbGVyIG1pZ2h0CgkgIHdhbnQgdG8gY2hhbmdlIHRoZSBnbG9iYWwgaW5zdGFuY2Ugb3RoZXJ3aXNlLCB3aGljaCBjYXVzZXMgZnVubnkgZWZmZWN0cyBsaWtlCgkgIGFsbCBnbG9iYWwgaW5zdGFuY2VzIGJlaW5nIGNoYW5nZWQgYW5kIGF0IHRoZSBzYW1lIHRpbWUgbm90aGluZyBpbiB0aGUgY2FwcwoJICBiZWluZyBjaGFuZ2VkLgoJICBBcyB0aGUgY2FwcyBtaWdodCBiZSBpbW11dGFibGUgd2hpbGUgd2UgZG8gdGhpcyB3ZSBoYXZlIHRvIGRvIHNvbWUgbWFnaWMKCSAgd2l0aCBhdG9taWMgb3BlcmF0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzIzNgoKMjAxNC0wMi0wNCAxODowMzo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IERvbid0IGdldCB1cyBzeXNtZW0gY2Fwc2ZlYXR1cmVzIGlmIHdlIGp1c3QgY2hlY2sgZm9yIGZpeGVkIGNhcHMKCjIwMTQtMDItMDQgMTc6NDg6NTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogTWFrZSBzdXJlIHRoYXQgdGhlIHN0YXRpYyBBTlkvRU1QVFkgY2Fwc2ZlYXR1cmVzIGFyZSBuZXZlciBtdXRhYmxlCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMjM2CgoyMDE0LTAxLTMxIDA5OjE0OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBkb2NzOiBmaXggbW9yZSBndGstZG9jIHdhcm5pbmdzCgoyMDE0LTAxLTMxIDA4OjM1OjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSAgZG9jczogdW5oaWRlIGRvY3MgZm9yIGFsbG9jYXRvcgoJICBVbmhpbmRlIHRoZSBjbGFzcyBkb2NzLiBUZWNoIGd0ay1kb2MgYWJvdXQgR1NUX0VYUE9SVFMuCgoyMDE0LTAxLTMxIDA4OjA4OjM3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogbW9yZSB0ZXN0cyBhbmQgc21hbGwgZG9jIGZpeGVzCgoyMDE0LTAxLTMwIDIxOjI0OjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgdG9vbHM6IFN1cHBvcnQgbm9uLUFTQ0lJIHRhZ3MKCSAgQnkgY2FsbGluZyBzZXRsb2NhbGUoKSB0byBnZXQgdXMgbXVsdGktYnl0ZS9VVEYtOCBzdXBwb3J0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMTY0CgoyMDE0LTAxLTMwIDAzOjIyOjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IHJlc3BlY3QgdGhlICduZWdvdGlhdGlvbi1tb2RlJyBwcm9wZXJ0eQoJICBJZiB0aGUgc2VnbWVudCBldmVudCBpcyBhbGxvd2VkIHRvIGJlIHB1c2hlZCB0byBhbGwgcGFkcyBpdAoJICB3aWxsIGxlYWQgdG8gYW4gYXNzZXJ0aW9uIG9mICdzdGlja3kgZXZlbnQgbWlzb3JkZXJpbmc6CgkgIHNlZ21lbnQgcmVjZWl2ZWQgYmVmb3JlIGNhcHMnIGluIGNhc2UgdGhlIHBhZC1uZWdvdGlhdGlvbi1tb2RlCgkgIGlzIHNldCB0byAnYWN0aXZlJyBvciAnbm9uZScuCgkgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBtYWtpbmcgYWxsIHN0aWNreSBldmVudHMgZm9sbG93IHRoZQoJICBwcm9wZXJ0eSBsaWtlIHRoZSBjYXBzIGV2ZW50IHRvIHByZXZlbnQgbWlzb3JkZXJpbmcgd2FybmluZ3MuCgkgIFdoZW4gYSBuZXcgcGFkIGlzIGFjdGl2YXRlZCB0aGUgY3VycmVudCBzdGlja3kgZXZlbnRzIG9uIHRoZQoJICBzaW5rcGFkIGFyZSBmb3J3YXJkZWQgdG8gaXQgaW4gdGhlIHByb3BlciBvcmRlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzI2NgoKMjAxNC0wMS0zMCAxMjo1NDoyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9vbHN0cmVzcy5jOgoJICBwb29sc3RyZXNzOiBwcmludCBzcGVlZHVwCgoyMDE0LTAxLTMwIDEyOjQyOjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogbWlzYyBjbGVhbnVwcwoJICBSZXZpZXcgdGhlIGRvY3VtZW50YXRpb24sIGNvbW1lbnRzIGFuZCBsb2dnaW5nLiBTZXQgdGhlIGluaXRpYWwgc2l6ZSB0byAxNiBhcwoJICB0aGUgc2l6ZSBpcyByb3VuZGVkIHVwIHRvIHRoZSBuZXh0IHBvd2VyIG9mIHR3byBhbnl3YXkuCgoyMDE0LTAxLTMwIDA4OjExOjEyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhZGQgYSBuZXcgdGVzdHN1aXRlIG9yIHRoZSBwb29sCgkgIFN0YXJ0IHdpdGggc29tZSBiYXNpYyB0ZXN0cy4KCjIwMTQtMDEtMzAgMTI6MjY6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYXZvaWQgZXhjZXNzaXZlIEdzdFBvbGwgYWN0aXZpdHkKCSAgS2VlcCBhbiBleHRyYSB3cml0ZSByZWYgb24gdGhlIGNvbnRyb2wgc29ja2V0LiBUaGlzIGVuc3VyZXMgdGhhdCB3ZQoJICBhdm9pZCBhIHJlYWQvd3JpdGUgb24gdGhlIHNvY2tldCB3aGVuIGdvaW5nIGZyb20gbm9uLWVtcHR5LT5lbXB0eS0+bm90LWVtcHR5LgoJICBXZSByZW1vdmUgdGhlIHdyaXRlIHJlZiBvbmx5IHdoZW4gd2UgYWN0dWFsbHkgYXJlIGVtcHR5IGFuZCB3ZSBuZWVkIHRvCgkgIHdhaXQgZm9yIGZsdXNoaW5nIG9yIGEgbmV3IGJ1ZmZlci4KCSAgVGhpcyBtYWtlcyB0aGUgYnVmZmVycG9vbCBiZW5jaG1hcmsgYWJvdXQgMzAlIGZhc3RlciB0aGFuIHRoZSBwdXJlCgkgIG1hbGxvYyBpbXBsZW1lbnRhdGlvbi4KCjIwMTQtMDEtMzAgMTI6MjU6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogaW1wcm92ZSBkZWJ1ZwoJICBBZGQgb2JqZWN0IHBvaW50ZXIgaW4gZGVidWcgbGluZXMuCgoyMDE0LTAxLTMwIDEwOjQzOjM2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkNDhiZWQzIHRvIDFhMDdkYTkKCjIwMTQtMDEtMjkgMjI6NDY6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIHBhcnQtdG9jOiBlbXBoYXNpemUgdGhhdCB0aGUgbGF0ZXIgY2hhcHRlcnMgYXJlIGRlc2lnbiBkcmFmdCBpZGVhcwoKMjAxNC0wMS0yOSAyMDoyMDo1NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgcGFydC10b2M6IGFkZCBmb3JtYXQgc3BlY2lmaWMgaW5mb3JtYXRpb24KCjIwMTQtMDEtMjkgMTg6MjE6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvb2xzdHJlc3MuYzoKCSAgcG9vbHN0cmVzczogY29kZSBjbGVhbnVwcwoJICBBZGQgYSBmZXcgY29tbWVudHMuIFRlbGwgaW4gdGhlIHJlc3VsdHMsIHdoaWNoIG51bWJlciBhcmUgZnJvbSB3aGljaCB0ZXN0LgoKMjAxNC0wMS0yOSAxMzoyMDoxOSArMDEwMCAgTmljb2xhIE11cmlubyA8bmljb2xhLm11cmlub0BnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiB1c2UgcHJpbnQgYXMgZnVuY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzIyOQoKMjAxNC0wMS0yOCAxMTo1ODo1MyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIHRlc3RzOiBjYXBzZmlsdGVyOiBhZGQgdGVzdCBmb3IgcGVuZGluZ19ldmVudHMgcHVzaGluZwoJICBtYWtlIHN1cmUgdGhhdCBwZW5kaW5nIGV2ZW50cyBhcmUgcHVzaGVkIHdoZW4gY2FwcyBhcmUgYWxyZWFkeQoJICBzZXQgd2hlbiBhIGJ1ZmZlciBpcyByZWNlaXZlZAoKMjAxNC0wMS0yOCAxMToxMjo1NiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogZG8gbm90IGZvcmdldCB0byBwdXNoIHBlbmRpbmcgZXZlbnRzCgkgIFB1c2ggcGVuZGluZyBldmVudHMgYmVmb3JlIGJ1ZmZlcnMgaWYgY2FwcyBpcyBhbHJlYWR5CgkgIHNldAoKMjAxNC0wMS0yNCAxOToxOTowOCArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZG8gbm90IHJlZHVjZSBzaW5nbGUgcXVldWUgYmVsb3cgY3VycmVudCBsZXZlbAoJICBXaGVuIHRoZSBzaW5nbGUgcXVldWUgc2l6ZSB3YXMganVzdCBidW1wZWQgYnkgMSB0byBhbGxvdyBtb3JlIGJ1ZmZlcnMgdG8KCSAgYmUgYWRkZWQsIHRoZSBidWZmZXJzIGxpbWl0IGNvdWxkIGJlIHJlZHVjZWQgdG8gdGhlIGN1cnJlbnQgbGV2ZWwgd2hlbgoJICBzZXR0aW5nIHRoZSBtYXgtc2l6ZS1idWZmZXJzIHByb3BlcnR5LiBUaGlzIHdvdWxkIHJlc3VsdCBpbiBhIHN0YWxsCgkgIHNpbmNlIHRoZSBxdWV1ZSB3b3VsZCBub3QgZ3JvdyBhbnltb3JlIGF0IHRoaXMgcG9pbnQuCgkgIFByZXZlbnQgdGhpcyBieSBub3QgcmVkdWNpbmcgYSBzaW5nbGUgcXVldWUgc2l6ZSBiZWxvdyB0aGUgY3VycmVudAoJICBudW1iZXIgb2YgYnVmZmVycyArIDEuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI1OTcKCjIwMTQtMDEtMjQgMTM6MjA6NDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRvIG5vdCBmb3JnZXQgdG8gY2xlYXIgdGhlIGZvcmNlZF9lb3MgZmxhZwoJICBvdGhlcndpc2UgaXQgd2lsbCBhbHdheXMgdXNlIHRoZSBzZXFudW0gb2YgdGhlIGV2ZW50CgkgIHNlbnQgYnkgdGhlIGFwcGxpY2F0aW9uCgoyMDE0LTAxLTIzIDE1OjUyOjUxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJlc2VydmUgc2VxbnVtIG9mIGVvcyBldmVudHMgc2VudCBieSB0aGUgdXNlcgoJICBTdG9yZSB0aGUgZW9zIGV2ZW50IHNlcW51bSBhbmQgdXNlIGl0IHdoZW4gY3JlYXRpbmcgdGhlCgkgIG5ldyBlb3MgZXZlbnQgdG8gYmUgcHVzaGVkIGRvd25zdHJlYW0uIFRvIGtub3cgaWYgdGhlIGVvcwoJICB3YXMgY2F1c2VkIGJ5IHRoZSBlb3MgZXZlbnRzIHJlY2VpdmVkIG9uIHNlbmRfZXZlbnQsIGEKCSAgJ2ZvcmNlZF9lb3MnIGZsYWcgaXMgdXNlZCB0byB1c2UgdGhlIGNvcnJlY3Qgc2VxbnVtIG9uCgkgIHRoZSBldmVudCBwdXNoZWQgZG93bnN0cmVhbS4KCSAgVXNlZnVsIGlmIHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0byBjaGVjayBpZiB0aGUgRU9TIG1lc3NhZ2UKCSAgd2FzIGdlbmVyYXRlZCBmcm9tIGl0cyBvd24gcHVzaGVkIEVPUyBvciBmcm9tIGFub3RoZXIgc291cmNlCgkgIChzdHJlYW0gcmVhbGx5IGZpbmlzaGVkKS4KCSAgQWxzbyBhZGRzIGEgdGVzdCBmb3IgdGhpcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNzkxCgoyMDE0LTAxLTIzIDE1OjM0OjI3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2VxbnVtcy50eHQ6CgkgIGRvY3M6IGRlc2lnbjogYWRkIHBhcnQtc2VxbnVtcwoJICBIb3BlZnVsbHkgY2xhcmlmaWVzIGhvdyBzZXFudW1zIHNob3VsZCBiZSB1c2VkIGFuZCBjb3BpZWQgZnJvbQoJICBldmVudHMgdG8gZXZlbnRzL21lc3NhZ2VzIHdoZW4gdGhvc2UgYXJlIGhhbmRsZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjI3OTEKCjIwMTQtMDEtMjQgMDk6Mjg6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQnJlYWsgdGhlIGxvb3AgaW1tZWRpYXRlbHkgaWYgd2UgZm91bmQgYW4gZW1wdHkgcXVldWUKCSAgTm8gbmVlZCB0byBjb250aW51ZSBsb29raW5nIGF0IGFsbCB0aGUgb3RoZXJzCgoyMDE0LTAxLTIzIDE1OjQ3OjIzICswMTAwICBQZXIgeCBKb2hhbnNzb24gPHBlcnhqb2hAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWxsb3cgZ3Jvd2luZyBhIHF1ZXVlIGlmIGFsbCBvdGhlciBxdWV1ZXMgYXJlIG5vdCBsaW5rZWQKCSAgSW4gdGhlIGNhc2Ugd2hlcmUgb25lIHNpbmdsZXF1ZXVlIGlzIGZ1bGwgYW5kIGFsbCBvdGhlciBhcmUgbm90IGxpbmtlZCwgdGhlCgkgIGdyb3dpbmcgb2YgdGhlIGZ1bGwgcXVldWUgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkuIFRoZSByZXN1bHQgZGVwZW5kcyBvbiBpZgoJICB0aGUgZnVsbCBxdWV1ZSBpcyBsYXN0IGluIHRoZSBxdWV1ZSBsaXN0IG9yIG5vdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjg5MQoKMjAxNC0wMS0yMiAxMToxMDowMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBNaW5vciBjb2RlIGNsZWFudXAKCSAgIWNoZWNrX3N0aWNreSgpPT1HU1RfRkxPV19PSyBpcyBhIGJpdCBjb25mdXNpbmcsIGNvbXBhcmVkIHRvCgkgIGNoZWNrX3N0aWNreSgpIT1HU1RfRkxPV19PSy4KCjIwMTQtMDEtMjAgMTU6MjY6NTQgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IEFkZGl0aW9uYWwgdGVzdHMgZm9yIHBhcnNlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMDM0CgoyMDE0LTAxLTE4IDE0OjQ4OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBQcm9wZXJseSBjb3B5IG11dGV4ZXMgYXJvdW5kIHdoZW4gY3JlYXRpbmcgYSBjb3B5IG9mIGEgZmlsdGVyIGl0ZXJhdG9yCgoyMDE0LTAxLTE4IDE0OjM0OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgdW5pdCB0ZXN0cyBmb3IgZmlsdGVyaW5nLCByZWN1cnNpdmUgZmlsdGVyaW5nIGFuZCBsb2NraW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTExMzgKCjIwMTQtMDEtMTggMTQ6NDM6MjAgKzAxMDAgIFN0ZXdhcnQgQnJvZGllIDxzdGV3YXJ0QGVoLm9yZz4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogUHJlc2VydmUgdGhlIG1hc3RlciBsb2NrIHdoZW4gY3JlYXRpbmcgcmVjdXJzaXZlIGl0ZXJhdG9yIGZpbHRlcnMgd2l0aCB0aGUgc2FtZSBsb2NrCgkgIFRoaXMgd2F5IHdlIG1ha2Ugc3VyZSB0aGF0IGEpIHRoZSBsb2NrIGlzIGFsd2F5cyB0YWtlbiB3aGVuIGNoZWNraW5nCgkgIHRoZSBjb29raWUgYW5kIGNhbGxpbmcgdGhlIGl0ZXJhdG9yJ3MgbmV4dCBmdW5jdGlvbnMgYW5kIGIpIGl0IGlzCgkgIG5vdCB0YWtlbiB3aGlsZSBjYWxsaW5nIGFueSBvZiB0aGUgaXRlcmF0b3IgZmlsdGVyIGZ1bmN0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTEzOAoKMjAxNC0wMS0xNyAyMjo1MzowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHN0aWNreSBldmVudCBsZWFrIGFmdGVyIHN0aWNreV9ldmVudHNfZm9yZWFjaAoJICBldmVudHNfZm9yZWFjaCBhZGRzIGFuIGV4dHJhIHJlZiB3aGVuIGdpdmluZyB0aGUgZXZlbnQgdG8gdGhlCgkgIHVzZXIgZnVuY3Rpb24uIEluIGNhc2UgaXQgd2FzIHVucmVmZWQgYnkgdGhlIHVzZXIsIHRoaXMgZXh0cmEgcmVmCgkgIGRpc2FwcGVhcmVkLCBidXQgZXZlbnRzX2ZvcmVhY2ggc3RpbGwgc2hvdWxkIHVucmVmIGFnYWluIHRvCgkgIGxvc2UgaXRzIG93biByZWYgYmVmb3JlIHJlbW92aW5nIHRoZSBldmVudCBmcm9tIHRoZSBhcnJheS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMjQ2NwoKMjAxNC0wMS0xNiAyMDoxMTowMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbW92ZSBzb21lIGVudi12YXIgY2hlY2tzIGZyb20gZ3N0IHRvIGdzdGluZm8gYXMgd2VsbAoJICBXZSB3ZXJlIGRvaW5nIHNvbWUgbG9nIHJlbGF0ZWQgaW5pdGlhbGlzYXRpb24gaW4gZ3N0LmMgYWZ0ZXIgY2FsbGluZwoJICBfcHJpdl9nc3RfZGVidWdfaW5pdCgpLiBKdXN0IG1vdmUgaXQgdGhlcmUgZm9yIGNvbnNpc3RlbmN5LgoKMjAxNC0wMS0xNiAxODoxNjozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBPbmx5IHNldCBjYXBzIG9uIHRoZSBzcmNwYWQgaWYgaXQncyBhY3RpdmF0ZWQgaW4gcHVzaCBtb2RlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjIyODkKCjIwMTQtMDEtMTYgMTI6Mjg6NDcgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBTb21lIG1pbm9yIGZpeGVzCgkgIEZpeCBkZXN0cnVjdG9yIHNlZ2ZhdWx0aW5nCgkgIEV4cGVjdCAwIGdyYW1tYXItYW1iaWd1aXRpZXMKCSAgRml4IG9yZGVyIG9mIGJpbi1wcm9wZXJ0aWVzIGFzc2lnbm1lbnQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDAzNAoKMjAxNC0wMS0xNSAxOToyODowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogcmVtb3ZpbmcgZHVwbGljYXRlIGZpZWxkIHBvc2l0aW9uCgkgIEl0IGlzIGFscmVhZHkgc3RvcmVkIGluc2lkZSB0aGUgR3N0U2VnbWVudCBzdHJ1Y3QgYW5kCgkgIHdhcyBvbmx5IGR1cGxpY2F0aW5nIGluZm9ybWF0aW9uLiBBbHNvIHJlbW92ZWQgc29tZQoJICB3ZWlyZCBwb3NpdG9uIGlmL2Vsc2UgdGhhdCB3b3VsZCBwb3NzaWJseSBjaGFuZ2UgdGhlCgkgIHNlZ21lbnQgdGhhdCB3YXMgZ29pbmcgdG8gYmUgcHVzaGVkIGRvd25zdHJlYW0KCjIwMTQtMDEtMTUgMDA6MTI6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHByZXZlbnQgYnVmZmVyaW5nIGZvcmV2ZXIgd2l0aCBwbGF5YmluCgkgIFdoZW4gcHJlcm9sbGluZy9idWZmZXJpbmcsIG11bHRpcXVldWUgaGFzIGl0cyBidWZmZXJzIGxpbWl0IHNldAoJICB0byAwLCB0aGlzIG1lYW5zIGl0IGNhbiB0YWtlIGFuIGluZmluaXRlIGFtb3VudCBvZiBidWZmZXJzLgoJICBXaGVuIHByZXJvbGxpbmcvYnVmZmVyaW5nIGZpbmlzaGVzLCBpdHMgbGltaXQgaXMgc2V0IGJhY2sgdG8gNSwgYnV0CgkgIG9ubHkgaWYgdGhlIGN1cnJlbnQgbGV2ZWwgaXMgbG93ZXIgdGhhbiA1LiBJdCBzaG91bGQgKGFsbW9zdCkgbmV2ZXIgYmUKCSAgYW5kIHRoaXMgd2lsbCBjYXVzZSBwcmVyb2xsaW5nL2J1ZmZlcmluZyB0byBuZWVkIHRvIHdhaXQgdG8gcmVhY2ggdGhlCgkgIGhhcmQgYnl0ZXMgYW5kIHRpbWUgbGltaXRzLCB3aGljaCBhcmUgbXVjaCBoaWdoZXIuCgkgIFRoaXMgY2FuIGxlYWQgdG8gYSB2ZXJ5IGxvbmcgc3RhcnR1cCB0aW1lLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMKCSAgYnkgc2V0dGluZyB0aGUgc2luZ2xlIHF1ZXVlcyB0byB0aGUgbWF4KGN1cnJlbnQsIG5ld192YWx1ZSkgaW5zdGVhZAoJICBvZiBzaW1wbHkgaWdub3JpbmcgdGhlIG5ldyB2YWx1ZSBhbmQgbGV0dGluZyBpdCBhcyBpbmZpbml0ZSgwKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyNTk3CgoyMDE0LTAxLTE1IDExOjEyOjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogZ3N0X3NlZ21lbnRfb2Zmc2V0X3J1bm5pbmdfdGltZSgpIHdpbGwgYmUgYXZhaWxhYmxlIGluIDEuMi4zCgoyMDE0LTAxLTE0IDE2OjE1OjIxIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2M6IFVwZGF0ZSBzZWN0aW9ucyB3aXRoIHRoZSBuZXcgcm91bmRpbmcgbWFjcm9zCgoyMDE0LTAxLTE0IDE2OjE1OjAyIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbDogQWRkIEdTVF9ST1VORF9VUF9OIGFuZCBHU1RfUk9VTkRfRE9XTl9OCgkgIFRoZXNlIGFyZSBnZW5lcmljIHJvdW5kaW5nIG1hY3JvIHRoYXQgd29ya3MgZm9yIGFueSBwb3dlciBvZiB0d28uCgoyMDE0LTAxLTE0IDE2OjQ3OjM4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIHRlZTogQWRkIHVuaXQgdGVzdCBmb3IgcmVxdWVzdGluZyBwYWQgbmFtZXMKCjIwMTQtMDEtMTQgMTY6NDU6NTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICB0ZWU6IE1ha2Ugc3VyZSB0byBnaXZlIHBhZHMgdGhlIG5hbWUgdGhhdCB3YXMgcmVxdWVzdGVkCgkgIEFsc28gY2hlY2sgZm9yIHVuaXF1ZW5lc3MgYW5kIG1ha2Ugc3VyZSB3ZSBjcmVhdGUgYSBuZXcKCSAgcGFkIGluZGV4IHByb3Blcmx5IGlmIHNvbWUgd2VyZSByZXF1ZXN0ZWQgd2l0aCBuYW1lcyBidXQKCSAgdGhlIG5ldyBvbmUgaXMgbm90LgoKMjAxNC0wMS0xNCAxNTo1MjoyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBNYWtlIHN1cmUgdG8gY3JlYXRlIGFuZCBsaW5rIGNoYWlucyBpbiB0aGUgb3JkZXIgYXMgd3JpdHRlbgoJICBNYWtlIHRoaXMgd29yayBhZ2FpbjoKCSAgYXVkaW90ZXN0c3JjICEgdGVlIG5hbWU9dCAgdC5zcmNfMCAhIHF1ZXVlICEgZmFrZXNpbmsgIHQuc3JjXzEgISBxdWV1ZSAhIGZha2VzaW5rCgkgIGFuZCB0aGlzIGZhaWwgYWdhaW46CgkgIGF1ZGlvdGVzdHNyYyAhIHRlZSBuYW1lPXQgIHQuc3JjXzEgISBxdWV1ZSAhIGZha2VzaW5rICB0LnNyY18wICEgcXVldWUgISBmYWtlc2luawoJICBhcyB0ZWUganVzdCBjb3VudHMgaXRzZWxmIGFuZCBkb2VzIG5vdCBjYXJlIGFib3V0IHRoZSBwYWQgbmFtZXMgd2UgcmVxdWVzdAoJICBmcm9tIGl0LgoKMjAxNC0wMS0xNCAxMzo0NTozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBSZW1vdmUgc29tZSBDOTktc3R5bGUgY29tbWVudHMKCjIwMTQtMDEtMTQgMTM6NDQ6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgcGFyc2U6IFVzZSBHU2xpY2UgZm9yIGFsbG9jYXRpbmcgYW5kIGZyZWVpbmcgbGlua3MgYW5kIGNoYWlucwoKMjAxNC0wMS0xNCAxMzo0MjoyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJICBwYXJzZTogQWRkIGNvbW1lbnQgYWJvdXQgd2h5IHdlIGRpc2FibGUgdGhlICJ0cmFjaW5nIgoJICBJdCBkaWQgbm90IHByaW50IGFueXRoaW5nIHVzZWZ1bCBiZWZvcmUgYW55d2F5LCBldmVyeXRoaW5nCgkgIHdhcyBjb21tZW50ZWQgb3V0LgoJICBBbHNvIHJlbW92ZSBzb21lIHVubmVlZGVkIHN0cnVjdCBtZW1iZXJzLgoKMjAxNC0wMS0xNCAxMzozNjoyNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2UtbGF1bmNoOiBBZGQgc29tZSBtb3JlIGZhaWxpbmcgcGlwZWxpbmVzCgkgIEFsc28gY29udmVydCBzb21lIGNvbW1lbnRzIGFib3V0IHZhbGdyaW5kIHdhcm5pbmdzIHRvCgkgIEZJWE1FIGNvbW1lbnRzLiBUaGVzZSB3ZXJlIGxlYWtpbmcgc2luY2Ugc29tZSB0aW1lIGFscmVhZHkuCgoyMDE0LTAxLTEwIDIxOjEwOjE3ICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgcGFyc2U6IFJlZmFjdG9yIGdyYW1tYXIsIG1ha2UgaXQgbW9yZSBjb25zaXN0ZW50IGFuZCBmaXggY29uZmxpY3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAwMzQKCjIwMTQtMDEtMTMgMjA6NDg6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgIGRvY3M6IGVuc3VyZSBHc3RCdWZmZXJQb29scyBzaG93cyB1cCBhcyB3aXRoIEdPYmplY3QgZmVhdHVyZXMKCSAgR3N0QnVmZmVyUG9vbCBpcyBhIEdzdE9iamVjdCwgYWRkIHRoZSBfZ2V0X3R5cGUgZnVuY3Rpb24gdG8gdGhlIHR5cGVzIGZpbGUuCgoyMDE0LTAxLTEzIDA4OjM3OjM3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBiYXNlcGFyc2U6IGFkZCB0ZXN0IGZvciByZXZlcnNlIHBsYXliYWNrIG9uIHBhc3N0aHJvdWdoCgkgIEJhc2VwYXJzZSBzdG9yZXMgYnVmZmVycyBmb3IgcmV2ZXJzZSBwbGF5YmFjayB0byBwdXNoIG9uIHRoZSBuZXh0CgkgIERJU0NPTlQsIHRoZSBpc3N1ZSB3YXMgdGhhdCBpdCB3b3VsZG4ndCBldmVyIGNoZWNrIGZvciBhIGRpc2NvbnQKCSAgb24gcGFzc3Rocm91Z2ggbW9kZSBhcyBpdCBza2lwcyBhbGwgcmVhbCBwYXJzaW5nLiBUaGlzIHRlc3QKCSAgd2FzIGNyZWF0ZSB0byB2ZXJpZnkgdGhpcyBpc3N1ZSBhbmQgcHJldmVudCBpdCBmcm9tIGhhcHBlbmluZyBhZ2FpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxOTQxCgoyMDE0LTAxLTExIDEwOjQ5OjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXBhcnNlLmM6CgkgIHRlc3RzOiBiYXNlcGFyc2U6IGFkZCBiYXNpYyB0ZXN0IGZvciBiYXNlcGFyc2UKCSAgSnVzdCBhIHNtYWxsIHRlc3QgdG8gY2hlY2sgdGhhdCBiYXNpYyBwbGF5YmFjayB3b3JrcwoKMjAxNC0wMS0xMCAwOToxMDowNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIG5vdCBhY2N1bXVsYXRlIGJ1ZmZlcnMgb24gcGFzc3Rocm91Z2ggbW9kZQoJICBJZiBvbiBwYXNzdGhyb3VnaCBkdXJpbmcgcmV2ZXJzZSBwbGF5YmFjaywgZG8gbm90IGFjY3VtdWxhdGUgYnVmZmVycyBhcwoJICBiYXNlcGFyc2Ugd2lsbCBuZXZlciBjaGVjayBmb3IgRElTQ09OVCBmbGFnIHRvIHB1c2ggdGhvc2UgYnVmZmVycy4KCSAgU28ganVzdCBwdXNoIGJ1ZmZlcnMgZG93bnN0cmVhbSBhcyBpZiBpdCB3YXMgZm9yd2FyZCBwbGF5YmFjay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTk0MQoKMjAxNC0wMS0wNiAyMTo0NzoyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBjb25mdXNlIEdTVF9QQURfTU9ERV9OT05FIGFuZCBQVUxMCgkgIFVzZSBhIHN3aXRjaC1jYXNlIHRvIGV4cGxpY2l0bHkgaGFuZGxlIGFsbCBwYWQtbW9kZXMuIFRoaXMgd2F5IHdlIGRvbid0IGxvZyBhbiBlcnJvciB3aGVuIHRoZSBwYWQgaXMgbm90IHlldCBhY3RpdmF0ZWQuCgoyMDE0LTAxLTA5IDA3OjU2OjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFkZCBGSVhNRSBhbmQgZG9jcyBmb3IgdGhlIGRpc2FibGVkIG5vdGlmeSBvbiBwYXJlbnQKCSAgV2UgaGF2ZW4ndCBmb3VuZCBhIHdheSB0byByZS1lbmFibGUgZW1pdHRpbmcgbm90aWZ5IGFuZCBkZWVwLW5vdGlmeSBmb3IgcGFyZW50CgkgIGNoYW5nZXMuIEFkZCBhIEZJWE1FLTIuMCBhbmQgYSBkb2MgYmxvYiBvbiB0aGUgcHJvcGVydHkuIFNlZSAjNjkzMjgxLgoKMjAxNC0wMS0wOCAxNjoyODo1NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHNpc2Euc2Ftc3VuZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIG5vdCBpZ25vcmUgVElNRSBzZWdtZW50cwoJICBUSU1FIHNlZ21lbnRzIGFyZSBiZWluZyBpZ25vcmVkIGFuZCBhIHN0YW5kYXJkIGluaXRpYWxpemVkCgkgIHNlZ21lbnQgaXMgdXNlZCBpbnN0ZWFkLiBUaGlzIGNhdXNlcyBpc3N1ZXMgYXMgbm90IHByb3Blcmx5IGRldGVjdGluZwoJICByZXZlcnNlIHBsYXliYWNrIG9yIG5vdCBjbGlwaW5nIG91dHB1dCBiYXNlZCBvbiB0aGUgc2VnbWVudC4KCSAgVGhpcyBzZWVtcyB0byBiZSBhIHJlZ3Jlc3Npb24gZnJvbSBvbmUgb2YgdGhlIEdzdFNlZ21lbnQvR3N0RXZlbnQKCSAgcmVkZXNpZ25zIG9uIHRoZSAwLjEwIC0+IDEuMCB0cmFuc2l0aW9uCgoyMDE0LTAxLTA4IDE1OjQ3OjEwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBpbXByb3ZlIGNoZWNrLCBhbHNvIGNoZWNrIHN0cmVhbS10aW1lCgoyMDE0LTAxLTA4IDE1OjMxOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBzZWdtZW50IF9vZmZzZXRfcnVubmluZ190aW1lKCkKCSAgQWRkIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG9mZnNldHMgYXJlIGFwcGxpZWQKCSAgY29ycmVjdGx5IGluIHZhcmlvdXMgY2FzZXMuCgoyMDE0LTAxLTA4IDE1OjIzOjAwICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHRha2Ugb2Zmc2V0IGludG8gYWNjb3VudCBpbiBfdG9fcG9zaXRpb24oKQoJICBUYWtlIHRoZSBvZmZzZXQgaW50byBhY2NvdW50IHdoZW4gY29udmVydGluZyBiZXR3ZWVuIHJ1bm5pbmctdGltZSBhbmQKCSAgc2VnbWVudCBwb3NpdGlvbnMuCgoyMDE0LTAxLTA4IDE0OjU3OjA0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgbmV3IHNlZ21lbnQgb2Zmc2V0IG1ldGhvZCB0byBhcHBseSB0aGUgb2Zmc2V0CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjE0MjIKCjIwMTQtMDEtMDggMTQ6NTQ6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHNlZ21lbnQ6IGFkZCBtZXRob2QgdG8gb2Zmc2V0IHRoZSBzZWdtZW50IHJ1bm5pbmctdGltZQoJICBBZGQgYSBtZXRob2QgdGhhdCBjYW4gYXBwbHkgYW4gb2Zmc2V0IHRvIHRoZSBjYWxjdWxhdGVkIHJ1bm5pbmctdGltZSBvZgoJICBhIHNlZ21lbnQuCgoyMDE0LTAxLTA4IDE0OjUyOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHRha2Ugb2Zmc2V0IGludG8gYWNjb3VudCBmb3IgZXhwZWN0ZWQgc2VnbWVudCBwb3NpdGlvbgoJICBUaGUgZmlydCB2YWxpZCBzZWdtZW50IHBvc2l0aW9uIGlzIHN0YXJ0ICsgb2Zmc2V0LgoJICBBbHNvIGFkZCBzb21lIG1vcmUgZGVidWcgYW5kIGEgRklYTUUKCjIwMTQtMDEtMDggMTQ6NTA6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZGVidWcgc2VnbWVudCBvZmZzZXQgZmllbGQgYXMgd2VsbAoKMjAxNC0wMS0wOCAwOTo1MzowOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBbGxvdyBncm93aW5nIGEgcXVldWUgaWYgYWxsIG90aGVyIHF1ZXVlcyBhcmUgbm90IGxpbmtlZAoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTg5MwoKMjAxNC0wMS0wNyAxNjoxODozNyArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZG9uJ3QgdHJ5IHRvIHNlZWsgdG8gLTEgb2Zmc2V0CgkgIFRoZSBvZmZzZXQgY2FuIGJlIC0xIHdoZW4gd2UgYXJlIGNvbmZpZ3VyZWQgaW4gVElNRSBmb3JtYXQuIEluc3RlYWQgb2YKCSAgZmFpbGluZyB0aGUgc2VlayBhbmQgZXJyb3JpbmcsIGRvIHdoYXQgYW5kIG9mZnNldCBvZiAtMSBpcyBzdXBwb3NlZCB0bwoJICBkbyBhbmQgc2ltcGx5IHJlYWQgZnJvbSB0aGUgY3VycmVudCBvZmZzZXQuCgoyMDE0LTAxLTA2IDIxOjA0OjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGRlbW90ZSBlcnJvciB0byB3YXJuaW5nCgkgIFRoaXMgaXMgbm90IGFuIGVycm9yLiBBIHN1YmNsYXNzIHJldHVybmluZyBGQUxTRSBmb3IgaXNfc2Vla2FibGUoKSBpcyBvbmUgd2F5IG9mCgkgIHNheWluZyB0aGF0IHdlIGNhbid0IG9wZXJhdGUgaW4gcHVsbCBtb2RlLgoKMjAxNC0wMS0wMyAxMTo0NzoyMyArMDgwMCAgWWFucGluZ1poYW5nIDx6aGFuZ3lhbnBpbmcyMTBAMTYzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggaGFuZ2luZyBpZiBzaHV0IGRvd24gd2hpbGUgaGFuZGxpbmcgYSBzZXJpYWxpemVkIHF1ZXJ5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEyNTMKCjIwMTQtMDEtMDIgMTY6MjI6MzcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgcGVuZGluZ19zZWdtZW50IGFzIGl0IHdhcyBiZWluZyBtaXN1c2VkCgkgIEl0IHdhc24ndCByZXF1aXJlZCwgaW5zdGVhZCBiYXNlcGFyc2Ugd2FzIHVzaW5nIGl0IHRvIGNoZWNrIHRoZSBtZWRpYQoJICBjYXBzIHRvIGlkZW50aWZ5IGlmIGl0IHdhcyBoYW5kbGluZyBhdWRpbyBvciB2aWRlby4KCSAgVGhlIHBlbmRpbmdfc2VnbWVudCB3YXMgcmVtb3ZlZCBhbmQgYSBjaGVja2VkX21lZGlhIGJvb2xlYW4KCSAgcmVwbGFjZWQgaXQgZm9yIGEgbW9yZSBhY2N1cmF0ZSBuYW1pbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEzNTAKCjIwMTQtMDEtMDIgMTM6NDM6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwdXNoIHBlbmRpbmcgZXZlbnRzIGJlZm9yZSBHQVAgZXZlbnQKCSAgQSBHQVAgZXZlbnQgaXMgaGFuZGxlZCBhcyBhbiBlbXB0eSBidWZmZXIgYnkgc2lua3MgYW5kIHRoZXkgZXhwZWN0CgkgIHRvIHJlY2VpdmUgc3RhcnQgdXAgZXZlbnRzIGJlZm9yZSBHQVAgZXZlbnRzIChsaWtlIGEgc2VnbWVudCkuCgkgIFRoaXMgaXMgaW1wb3J0YW50IHNwZWNpYWxseSBpZiB0aGVyZSBpcyBhIEdBUCBhdCB0aGUgYmVnaW5uaW5nIG9mCgkgIGEgc3RyZWFtIChiZWZvcmUgYW55IGJ1ZmZlcnMpIHNvIHRoYXQgdGhlIHNlZ21lbnQgZXZlbnQgY2FuIGJlCgkgIHB1c2hlZCBkb3duc3RyZWFtIGJlZm9yZSB0aGUgR0FQCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEzNTAKCjIwMTQtMDEtMDIgMTM6NDE6MjUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBwZW5kaW5nIGV2ZW50cyBwdXNoaW5nCgkgIFJlZmFjdG9yIGNvZGUgcmVwZWF0ZWQgMyB0aW1lcyB0byBhIGNvbW1vbiBmdW5jdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMzUwCgoyMDE0LTAxLTAyIDIwOjE3OjU4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkZXNpZ24vcGFydC10b2MudHh0OiB1cGRhdGUgZGVzaWduIGRvY3MKCjIwMTQtMDEtMDIgMTM6MzQ6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIHVuaXQgdGVzdCBmb3IgYWRkaW5nL3JlbW92aW5nIGJsb2NraW5nIHByb2JlcyB3aGlsZSBhIHBhZCBpcyBibG9ja2VkCgkgIEFuZCBtYWtlIHN1cmUgdGhhdCB0aGVzZSBuZXcgcHJvYmVzIGFyZSBhY3R1YWxseSBjYWxsZWQgaWYgdGhleSBzaG91bGQKCSAgaW5zdGVhZCBvZiBzaWxlbnRseSBibG9ja2luZyB0aGUgcGFkIGZvcmV2ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjEyODkKCjIwMTQtMDEtMDIgMTM6MzM6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQ2hlY2sgaWYgbmV3IHByb2JlcyBuZWVkIHRvIGJlIGNhbGxlZCB3aGVuIGFkZGluZy9yZW1vdmluZyBzb21lCgkgIFRoaXMgYWxsb3dzIGJsb2NraW5nIGEgcGFkLCBhZGQgYSBuZXcgYmxvY2tpbmcgcHJvYmUsIHJlbW92aW5nCgkgIHRoZSBmaXJzdCBwcm9iZSBhbmQgdGhlbiBoYXZpbmcgdGhlIHNlY29uZCBwcm9iZSBjYWxsZWQuIFdoaWNoCgkgIGNvdWxkIHRoZW4gZGVjaWRlIHRoYXQgZGF0YS1mbG93IHNob3VsZCBhY3R1YWxseSBjb250aW51ZQoJICBpbnN0ZWFkIG9mIGJsb2NraW5nIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTI4OQoKMjAxNC0wMS0wMiAxMToxMzoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogUmVtb3ZlIGR5biBsb2NrCgkgIEl0IHdhcyB1c2VkIGZvciBwYWQtYWxsb2MgaW4gMC4xMCBidXQgY3VycmVudGx5IGlzIGNvbXBsZXRlbHkgdW51c2VkCgkgIGFuZCBub3QgbmVjZXNzYXJ5LiBBbGwgcGFkIGFjY2VzcyBpcyBwcm90ZWN0ZWQgYnkgdGhlIHRlZSBvYmplY3QgbG9jawoJICBhbmQga2VlcGluZyBhbm90aGVyIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBwYWQuCgoyMDE0LTAxLTAyIDExOjA5OjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBLZWVwIGFub3RoZXIgcmVmIHRvIG91ciBvbmUgYW5kIG9ubHkgc3JjcGFkIGFyb3VuZCB3aGlsZSBwdXNoaW5nCgkgIEEgcGFkIHByb2JlIG9uIHRoYXQgcGFkIG1pZ2h0IG90aGVyd2lzZSBqdXN0IHJlbGVhc2UgdGhlIHBhZCwgZHJvcAoJICB0aGUgbGFzdCByZWZlcmVuY2UgYW5kIGNhdXNlIGdyZWF0IG1pc2VyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTMwMAoKMjAxMy0xMi0zMCAxOTowMzoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBLZWVwIGFuIGV4dHJhIHJlZiBvZiB0aGUgcGFkIHdoZW4gY2FsbGluZyBhbiBJRExFIHByb2JlIGltbWVkaWF0ZWx5CgkgIFRoZSBjYWxsYmFjayBtaWdodCBkZXN0cm95IHRoZSBwYWQuCgoyMDEzLTEyLTMwIDE4OjQ0OjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgY2FsbCBJRExFIHByb2JlcyBpZiB3ZSBhcmUgYWN0dWFsbHkgaWRsZQoJICBBbHNvIG9ubHkgY2hlY2sgdGhlIGRhdGEgdHlwZXMgZm9yIG5vbi1JRExFIHByb2Jlcy4gV2hlbiB3ZQoJICBhcmUgaWRsZSwgd2UgaGF2ZSBubyBkYXRhIHR5cGUgb2J2aW91c2x5LgoJICBQcmV2aW91c2x5IHdlIHdlcmUgY2FsbGluZyBJRExFIHByb2JlcyBkdXJpbmcgZGF0YSBmbG93IHdoZW5ldmVyCgkgIGEgbm9uLWJsb2NraW5nIHByb2JlIHdvdWxkIGJlIGNhbGxlZC4gVGhlIHBhZCB3YXMgdXN1YWxseSBub3QgaWRsZQoJICBhdCB0aGF0IHRpbWUuCgoyMDEzLTEyLTMwIDE2OjEwOjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXR0aW1lcHJvdmlkZXI6IHJlbW92ZSB1bm5lY2Vzc2FyeSBOVUxMIGNoZWNrCgkgIEVycm9yIGlzIG5ldmVyIE5VTEwgd2hlbiB3ZSBicmVhayBvdXQgb2YgdGhlIGxvb3AuCgkgIENPVkVSSVRZIENJRCAxMDM3MTUxCgoyMDEzLTEyLTMwIDE2OjA1OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBSZXZlcnQgIm5ldHRpbWVwcm92aWRlcjogUmVtb3ZlIGRlYWQgY29kZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5NjQ5Y2Q0Y2ExOWE3NWQwMzE5MTE3YTc3YTc2MDllNGI4Yzk2NTMzLgoJICBUaGlzIGlzIG5vdCByaWdodCwgYW5kIGl0J3MgYWxzbyBub3Qgd2hhdCBjb3Zlcml0eQoJICBpcyBjb21wbGFpbmluZyBhYm91dC4KCjIwMTMtMTItMzAgMTY6NDc6MzIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBSZW1vdmUgdW5uZWVkZWQgY2hlY2tzCgkgIGl0ZW0gaXMgZ3VhcmFudGVlZCB0byBiZSBub24tbnVsbC4KCSAgQ09WRVJJVFkgQ0lEIDEwMzcxNTIKCSAgQ09WRVJJVFkgQ0lEIDEwMzcxNTMKCjIwMTMtMTItMzAgMTY6MzQ6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldHRpbWVwcm92aWRlcjogUmVtb3ZlIGRlYWQgY29kZQoJICBlcnIgaXMgYWx3YXlzIE5VTEwgYnkgdGhlIHBvaW50IHdlIHJlYWNoIHRoaXMgbGluZQoJICBDT1ZFUklUWSBDSUQgMTAzNzE1MQoKMjAxMy0xMi0zMCAxNDo0NzoxOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGZpeCBzaW5jZSBtYXJrZXIgYWdhaW4gKDEuMyAtPiAxLjQpCgkgIFNpbmNlIG1hcmtlcnMgc2hvdWxkIHBvaW50IHRvIHRoZSBhcHByb3ByaWF0ZSBzdGFibGUgdmVyc2lvbi4KCjIwMTMtMTItMzAgMTQ6NDA6NDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBmaXggc2luY2UtbWFya2VyIGluIGRvY3MgKHdlJ3JlIGluIDEuMy5YKQoKMjAxMy0xMi0zMCAxNDoyMjozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBhIHRhZyBmb3IgbWlkaSBiYXNlIG5vdGUgbnVtYmVycwoJICBBdWRpbyBmaWxlcyBjb250YWluaW5nIHNhbXBsZWQgaW5zdHJ1bWVudHMgY2FuIGhhdmUgbWV0YWRhdGEgZGVzY3JpYmluZyB0aGUgbm90ZQoJICB0aGF0IHdhcyBwbGF5ZWQgb24gdGhlIGluc3RydW1lbnQuCgoyMDEzLTEyLTMwIDEwOjAxOjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGlnbm9yZSBwcm9iZSBjYWxsYmFjayByZXR1cm4gdmFsdWUgd2hlbiBpbW1lZGlhdGVseSBjYWxsaW5nIElETEUgcHJvYmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTA5NgoKMjAxMy0xMi0yOSAxNDowNjo1NSArMDAwMCAgUGVkcm8gQ8O0cnRlLVJlYWwgPHBlZHJvQHBlZHJvY3IubmV0PgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBzY3JpcHRzOiBnaXQtdXBkYXRlLnNoOiBmaXggZm9yIG5vbi1tYXN0ZXIgYnJhbmNoZXMKCSAgUHVsbCBmcm9tIHRyYWNraW5nIGJyYW5jaCBpbnN0ZWFkIG9mIG9yaWdpbi9tYXN0ZXIsIHNvCgkgIHRoYXQgdGhpcyB3b3JrcyB3aXRoIGUuZy4gMS4yIGFzIHdlbGwuCgoyMDEzLTEyLTI3IDEyOjU1OjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgcGFyc2U6IFVzZSBHTGliIG1hbGxvYy9mcmVlL3JlYWxsb2MgZnVuY3Rpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAxMDAKCjIwMTMtMTItMjYgMTI6MTY6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwOiByZS11c2UgZXhpc3RpbmcgbWFzdGVyIGJyYW5jaCBpZiBpdCBleGlzdHMKCSAgV2hlbiBjcmVhdGluZyBzZXBhcmF0ZSBjaGVja291dCBmb3Igbm9uLW1hc3RlciBicmFuY2hlcy4KCjIwMTMtMTItMjYgMTE6Mzk6MjcgKzAxMDAgIEVyaWsgQW5kcmVzZW4gPGVyaWtAdm9udGFlbmUuZGU+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgZG9jczogZml4IG1lbW9yeSBsZWFrIG9mIGFwcHNpbmsgZXhhbXBsZSBpbiBtYW51YWwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMTA3NgoKMjAxMy0xMi0yMiAyMjozMzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGJlZGFhMCB0byBkNDhiZWQzCgoyMDEzLTEyLTIyIDIyOjA0OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3Igc3RyaW5nIGNoYW5nZXMKCjIwMTMtMTItMjIgMjE6NTY6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBwby9NYWtldmFyczoKCSAgcG86IHNldCBnZXR0ZXh0IGRvbWFpbiBpbiBNYWtldmFycyBzbyB3ZSBkb24ndCBoYXZlIHRvIHBhdGNoIHRoZSBnZW5lcmF0ZWQgTWFrZWZpbGUuaW4uaW4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTQ1NQoKMjAxMy0xMi0yMCAxNDo0MTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEFkZCByb3VuZCBkb3duIDEyOCBtYWNybyBmb3IgY29tcGxldGVuZXNzCgoyMDEzLTExLTEzIDE3OjA2OjIzIC0wNTAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IEFkZCByb3VuZCB1cCAxMjggbWFjcm8KCjIwMTMtMTItMjAgMTQ6MzA6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFNldHRpbmcgdGhlIFBST1hZX0NBUFMgZmxhZyBvbiB0aGUgc3JjcGFkIGRvZXMgbm90IG1ha2UgbXVjaCBzZW5zZQoJICBmdW5uZWwgb3V0cHV0cyB3aGF0ZXZlciBvbmUgb2YgdGhlIHVwc3RyZWFtcyBjdXJyZW50bHkgb3V0cHV0cywgYSBjYXBzCgkgIHF1ZXJ5IHRvIGEgcmFuZG9tIHVwc3RyZWFtIGRvZXMgbm90IGdpdmUgdGhlIHJpZ2h0IGFuc3dlciBoZXJlLgoKMjAxMy0xMi0yMCAxMTozNzo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogUHJveHkgQ0FQUyBhbmQgQUxMT0NBVElPTiBxdWVyaWVzCgoyMDEzLTExLTE4IDEwOjQ2OjAwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0cy5zYW50b3NAc2lzYS5zYW1zdW5nLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBwb3N0IDEwMCUgYnVmZmVyaW5nIGlmIHNpbmdsZSBxdWV1ZSBpcyBub3QgbGlua2VkCgkgIFRoaXMgbWFrZXMgYnVmZmVyaW5nIHN0b3AgaW4gY2FzZSBhIHN0cmVhbSBzd2l0Y2ggaGFwcGVucy4gVGhpcyBpcwoJICBpbXBvcnRhbnQgZm9yIGFkYXB0aXZlIHN0cmVhbXMgdGhhdCBjYW4gZGlzYWJsZSBub3QtbGlua2VkIHN0cmVhbXMKCSAgdG8gYXZvaWQgY29uc3VtaW5nIHRoZSBuZXR3b3JrIGJhbmR3aWR0aC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTU3NQoKMjAxMy0xMi0xOCAwNToxOTo0NiAtMDUwMCAgV2lsbGlhbSBKb24gTWNDYW5uIDx3aWxsaWFtLmpvbi5tY2Nhbm5AZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBkb2NzOiBmaXggcHJvamVjdCBsaW5rcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIwNjY1CgoyMDEzLTEyLTEwIDE1OjUzOjU0ICswMTAwICBEYXZpZCBTdmVuc3NvbiBGb3JzIDxkYXZpZHNmQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVzZSBzZWdtZW50IHN0YXJ0IGlmIERUUyBmb3IgZmlyc3QgYnVmZmVyIGlzIHVuc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAxOTkKCjIwMTMtMTItMTIgMTc6MTc6NDAgKzAwMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0cmVhbWVyLXZhYXBpIHBhdGhzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAzMzcKCjIwMTMtMTItMTQgMjE6MjA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci1ub2lubGluZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXItbm9pbmxpbmUuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLW5vaW5saW5lLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBiaXRyZWFkZXIsIGJ5dGVyZWFkZXIgYW5kIGJ5dGV3cml0ZXIgd2l0aCBubyBpbmxpbmluZyB1c2VkCgoyMDEzLTEyLTE0IDE4OjM4OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJ5dGVyZWFkZXI6IGFkZCBpbmxpbmUgdmFyaWFudCBvZiBnc3RfYnl0ZV9yZWFkZXJfaW5pdCgpCgoyMDEzLTEyLTE0IDE4OjMxOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIGRvY3M6IGZpeCBkb2NzIGZvciBnc3RfcXVldWVfYXJyYXlfcGVla19oZWFkKCkKCjIwMTMtMTItMTQgMTk6MDg6MzUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogRG9uJ3QgZGVmaW5lIHl5c2Nhbl90IHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MjAzMTYKCjIwMTMtMTItMTMgMjI6NTE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogbW92aW5nIHBsdWdpbnM6IG1pbm9yIDAuMTAgLT4gMS4wIGZpeAoJICBTcG90dGVkIGJ5IEpheSBGZW5sYXNvbgoKMjAxMy0xMi0xMSAxNDo0MjozNCArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlOiBkb24ndCBpZ25vcmUgZXZlbnQgcmV0dXJuIHZhbHVlCgkgIFBhc3MgdGhlIGV2ZW50IHJldHVybiB2YWx1ZSB1cHN0cmVhbS4KCSAgUmVtb3ZlIHN0cmFuZ2UgZ290byBjb25zdHJ1Y3QuCgoyMDEzLTEyLTEwIDE4OjMwOjAzIC0wNTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogSGFuZGxlIHRhZ2xpc3QgY29weSBmYWlsdXJlCgkgIElmIHdlIGNvdWxkbid0IGNvcHkgdGhlIHRhZ3MsIGp1c3QgcmV0dXJuIGluc3RlYWQgb2YgdHJ5aW5nIHRvIHVzZSBib2d1cwoJICB2YWx1ZXMuCgoyMDEzLTEyLTEwIDE4OjI1OjIyIC0wNTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBJbmRleCBmZWF0dXJlcyBhcmUgbm8gbW9yZQoJICBTbyByZW1vdmUgY29kZSB0aGF0IHdpbGwgbmV2ZXIgYmUgdXNlZAoKMjAxMy0xMi0xMCAxNzo1MzoyNCAtMDUwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBGaXggY29tcGFyaXNpb24gb2YgZG91YmxlIHJhbmdlCgkgIENoZWNraW5nIHR3aWNlIHRoZSBsb3dlciBib3VuZCBpcyBncmVhdCAoeW91IG5ldmVyIGtub3csIGl0IG1pZ2h0IGNoYW5nZQoJICBiZXR3ZWVuIHRoZSB0d28gY2FsbHMgYnkgc29tZW9uZSB1c2luZyBlbWFjcyBidXR0ZXJmbHktbW9kZSksIGJ1dCBpdCdzIGEgYml0CgkgIG1vcmUgdXNlZnVsIHRvIGNoZWNrIHRoZSBoaWdoZXIgYm91bmQgYXJlIGFsc28gaWRlbnRpY2FsLgoJICBEZXRlY3RlZCBieSBDb3Zlcml0eQoKMjAxMy0xMi0xMCAxNzowOTowNyAtMDUwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCBvdXQtb2YtYm91bmRzIGRldGVjdGlvbgoJICBXZSB3YW50IHRvIGFib3J0IGlmIHdlIGhpZ2hlciB0aGFuIHRoZSBtYXhpbXVtICpPUiogbG93ZXIgdGhhbiB0aGUgbWluaW11bQoJICBhY2NlcHRlZCB2YWx1ZS4KCSAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuCgoyMDEzLTEyLTA3IDE5OjA0OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHJlZ2lzdGVyaW5nIHRoZSBzYW1lIGNhdGVnb3J5IHR3aWNlCgoyMDEzLTEyLTA3IDE5OjMyOjU4ICswMTAwICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJldHVybiBleGlzdGluZyBjYXRlZ29yeSBpZiBhIGRlYnVnIGNhdGVnb3J5IGlzIHJlZ2lzdGVyZWQgdHdpY2UKCSAgSWYgYSBjYXRlZ29yeSB3aXRoIHRoZSBzYW1lIG5hbWUgaXMgZm91bmQgd2hlbiBjcmVhdGluZyBhIG5ldwoJICBvbmUsIHRoZSBmb3VuZCBjYXRlZ29yeSBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGludmFsaWQgcG9pbnRlci4KCSAgRml4ZXMgaXNzdWUgd2l0aCBnc3QtdmFhcGkgKHdoaWNoIHVzZXMgYW4gaW50ZXJuYWwgY29weSBvZiB0aGUKCSAgY29kZWMgcGFyc2VycykgY2F1c2VkIGJ5IGNvbW1pdCBjY2JhOTEzMC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDAzNgoKMjAxMy0xMi0wNyAxNTozODoxOSArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJKiBkb2NzL21hbnVhbC9vdXRsaW5lLnR4dDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgZG9jczogRml4IHR5cG9zIGluIGZ1bmN0aW9uL29iamVjdCBkZXNjcmlwdGlvbnMKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDAyOQoKMjAxMy0xMi0wNyAxNTo0MDozMiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgRml4IHNvbWUgdHlwb3MgaW4gY29kZSBjb21tZW50cyBhbmQgZGVidWcgbWVzc2FnZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcyMDAyOQoKMjAxMy0xMi0wNiAyMDo1MDoxOSArMDAwMCAgU3Rld2FydCBCcm9kaWUgPHN0ZXdhcnRAZWgub3JnPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBkb2NzOiBjbGFyaWZ5IGVuY29kaW5nIG9mIHN0cmluZ3MgaW4gR3N0U3RydWN0dXJlcyBhbmQgdGFnbGlzdHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTI2MgoKMjAxMy0wNy0wMiAyMDoyNzo1OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZXQgZm9ybWF0IHRvIFRJTUUgaWYgZG8tdGltZXN0YW1wIGlzIFRSVUUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjg0MgoKMjAxMy0xMi0wNSAwMDoyNjoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IGRvbid0IHRyeSB0byByZW1vdmUgYWxyZWFkeS1yZW1vdmVkIEdTb3VyY2UgZnJvbSBtYWluIGxvb3AKCSAgSXQncyBjb25zaWRlcmVkIGEgcHJvZ3JhbW1pbmcgZXJyb3IgaW4gcmVjZW50IEdMaWIgdmVyc2lvbnMgbm93LgoJICBXZSBtYXkgYWxyZWFkeSBoYXZlIHJlbW92ZWQgdGhlIHNvdXJjZSBieSByZXR1cm5pbmcgRkFMU0UgZnJvbQoJICB0aGUgY2FsbGJhY2sgaWYgaXQgd2FzIGZpcmVkLiBGaXhlcyB3YXJuaW5nIHdpdGggbmV3ZXIgR0xpYnMKCSAgd2hlbiBpbnRlcnJ1cHRpbmcgYSBwaXBlbGluZSB3aXRoIENvbnRyb2wtQy4KCjIwMTMtMTItMDQgMTc6MzU6MTggLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBNYWtlIHN1cmUgdGhlIHNhbWUgY2F0ZWdvcnkgaXMgbm90IGFkZGVkIHR3aWNlCgoyMDEzLTEyLTA0IDE3OjM1OjAyIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogUHJvdGVjdCBfX2NhdGVnb3JpZXMgbGlzdCBpbiBnZXRfY2F0ZWdvcnkgd2l0aCBsb2NrIHRvbwoKMjAxMy0xMi0wNCAwMDoxMDozNiArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRvY3M6IGFkZCBtaXNzaW5nIGZpbGVzIGZvciBkaXN0cmlidXRpb24KCSAgKiBhZGQgc29tZSBkb2N1bWVudGF0aW9uIGZpbGVzIGluIGRvY3MvZGVzaWduCgkgICogYWRkIGRvY3MvbGlzdC11bGluay54c2wgc28gY2hlY2sgaW4gZG9jcy9tYW51YWwgd29ya3MKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTgxNAoKMjAxMy0xMi0wMyAyMTo0NjoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgQUNDRVBUX0lOVEVSQ0VQVCBmbGFnCgkgIE1ha2UgYSBuZXcgZmxhZyBvbiB0aGUgcGFkIHRoYXQgdHdlYWtzIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBvZiB0aGUKCSAgYWNjZXB0LWNhcHMgZnVuY3Rpb24uIEJ5IGRlZmF1bHQgaXQgd2lsbCBjaGVjayBmb3IgYSBzdWJzZXQgb2YgdGhlCgkgIHF1ZXJ5LWNhcHMgcmVzdWx0IGJ1dCB0aGlzIGlzIG5vdCBhbHdheXMgZGVzaXJhYmxlLiBUaGUgcXVlcnktY2FwcwoJICByZXN1bHQgY29udGFpbnMgYWxsIHRoZSBjb25zdHJhaW50cyB0byBtYWtlIGEgZ29vZCBjYXBzIGRlY2lzaW9uCgkgIHVwc3RyZWFtIGJ1dCBzb21ldGltZXMsIGxpa2UgZm9yIHBhcnNlcnMsIG5vdCBhbGwgdGhlIGNvbnN0cmFpbmVkIGNhcHMKCSAgZmllbGRzIGFyZSBrbm93biB1cHN0cmVhbSBhbmQgdGhlbiBhIHN1YnNldCBjaGVjayB3b3VsZCBmYWlsLiBTd2l0Y2hpbmcKCSAgdG8gYW4gaW50ZXJzZWN0aW9uIG1ha2VzIHRoaXMgd29yayBhZ2Fpbi4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUwMjQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzQwMQoKMjAxMy0xMi0wMiAyMjoyMjozNiAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBXYWtlIHVwIG9uIHJlY29uZmlndXJlIGV2ZW50CgkgIEFmdGVyIHBhdGNoIGJkYTQwNmM0LCB0aGUgc3RhdGUgb2YgdGhlIHNpbmdsZXF1ZXVlIHdhcyBzZXQgdG8gT0ssIGJ1dCBub3RoaW5nCgkgIHdvdWxkIHRoZW4gd2FrZSB1cCB0aGUgdGhyZWFkLCBhcyB0aGUgb3RoZXIgd2FrZXVwIGZ1bmN0aW9ucyBvbmx5IGxvb2sgYXQKCSAgc2luZ2xlcXVldWVzIHRoYXQgYXJlIG1hcmtlZCBhcyBoYXZpbmcgcmVjZWl2ZWQgYXMgbm90LWxpbmtlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODIwMAoKMjAxMy0xMS0zMCAxMjoxNTozNyArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyBkb2NzLCBmaXhpbmcgZG9jIGVycm9ycwoJICAqIGFkZCBtYW55IG1pc3NpbmcgZGVjbGFyYXRpb25zIHRvIHNlY3Rpb25zCgkgICogR3N0Q29udHJvbGxlciBoYXMgYmVlbiByZW1vdmVkLCB1cGRhdGUgZG9jcwoJICAqIHNraXAgR3N0SW5kZXggd2hlbiBnZW5lcmF0aW5nIGRvY3VtZW50YXRpb24KCSAgKiByZXBocmFzZSBzbyBndGtkb2MgZG9lc24ndCBpbWFnaW5lIHJldHVybiB2YWx1ZQoJICAqIGFkZCBtaXNzaW5nIGFyZ3VtZW50IGRlc2NyaXB0aW9uIGZvciBnc3RfY29udGV4dF9uZXcoKQoJICAqIGRvY3VtZW50IEdzdE91dHB1dFNlbGVjdG9yUGFkTmVnb3RpYXRpb25Nb2RlIGFuZCBtb3ZlIHRvIGhlYWRlci1maWxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTk2MTQKCjIwMTMtMTEtMzAgMTQ6NTI6NDAgKzAxMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJhc0Bob3RtYWlsLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgZG9jczogY29zbWV0aWMgY2hhbmdlcyBpbiByZWZlcmVuY2VzL2RlY3JpcHRpb25zCgkgICogZml4IHR5cG8gR3N0QnVmZmVyRmxhZyAtPiBHc3RCdWZmZXJGbGFncwoJICAqIGZpeCB0eXBvIEdzdEZlYXR1cmVzIC0+IEdzdENhcHNGZWF0dXJlcwoJICAqIGZpeCB0eXBvIEdzdEFsbG9jYXRvclBhcmFtcyAtPiBHc3RBbGxvY2F0aW9uUGFyYW1zCgkgICogZml4IHR5cG8gR3N0Q29udHJsU291cmNlcyAtPiBHc3RDb250cm9sU291cmNlCgkgICogZG8gbm90IHJlZmVyIHRvIGdzdGNoZWNrIGFzIGFuIG9iamVjdAoJICAqIG1ha2UgcmVmZXJlbmNlcyBndGtfaW5pdCgpIGFuZCB0Y2FzZV9zZXRfdGltZW91dCgpIG5vdCBiZSByZWZlcmVuY2VzCgkgICogZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpIHJlbmFtZWQgZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoKQoJICAqIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwoKSByZW5hbWVkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKCkKCSAgKiBfZHJvcF9lbGVtZW50KCkgaXMgcmVhbGx5IGdzdF9xdWV1ZV9hcnJheV9kcm9wX2VsZW1lbnQoKQoJICAqIGdzdF9wYWRfYWNjZXB0X2NhcHMoKSB3YXMgcmVtb3ZlZCwgZG8gbm90IHJlZmVyIHRvIGl0CgkgICogc2VwYXJhdGUgR1NUX01FVEFfVEFHX01FTU9SWV9TVFIgZGVjbGFyYXRpb24gZnJvbSBkZXNjcmlwdGlvbgoJICAqIGRvIG5vdCBkZXNjcmliZSByZW1vdmVkIGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdCgpCgkgICogY29ycmVjdGx5IGxpbmsgdG8gR3N0RWxlbWVudENsYXNzJyB2aXJ0dWFsIHNldF9jb250ZXh0KCkKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxOTYxNAoKMjAxMy0xMS0yOSAxNDowMDozNSAtMDUwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgcGFyc2U6IE1hbnVhbGx5IGluc2VydCBwcml2X2dzdF9wYXJzZV95eWdldC9zZXRfY29sdW1uIHByb3RvdHlwZXMgZm9yIG9sZGVyIGZsZXgKCSAgT2xkZXIgdmVyc2lvbnMgb2YgZmxleCAoYmVmb3JlIDIuNS4zNikgZG9uJ3QgYWRkIHRoZSBwcm90b3R5cGUsIHNvIGl0IG11c3QKCSAgYmUgYWRkZWQgbWFudWFsbHkuIFdlIGNhbid0IGNoZWNrIGJ5IHRoZSB2ZXJzaW9uIG51bWJlciwgYmVjYXVzZSBEZWJpYW4vVWJ1bnR1CgkgIHBhdGNoZWQgaXQgaW50byB0aGVpciAyLjUuMzUgYXQgc29tZSBwb2ludC4KCjIwMTMtMTEtMTkgMTE6NDE6NTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHBhZDogZHJvcCBhc3NlcnRpb24gb24gZ3N0X3BhZF9wZWVyX3F1ZXJ5X3Bvc2l0aW9uCgkgIEl0IGlzIGEgJ2JvdGgnIHF1ZXJ5LCBzbyBpdCBjYW4gYmUgc2VudCBib3RoIHdheXMKCjIwMTMtMTEtMTggMTg6MTE6NTYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRzLnNhbnRvc0BzaXNhLnNhbXN1bmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGhhbmRsZSBnYXAgZXZlbnRzCgkgIFVzZSBnYXAgZXZlbnRzIHRvIGFkdmFuY2UgdGhlIHNlbGVjdG9yJ3MgcGFkIHBvc2l0aW9uLgoJICBUaGlzIGlzIHJlbGV2YW50IHRvIGtlZXAgc3luY19zdHJlYW1zIG1vZGUgd29ya2luZyB3aGVuIG9uZSBvZiB0aGUKCSAgc3RyZWFtcyBkb2Vzbid0IGhhdmUgZGF0YSBhbGwgdGhlIHRpbWUuCgoyMDEzLTExLTI5IDE3OjAyOjQxICswMTAwICBXaW0gVGF5bWFucyA8d3RheW1hbnNAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBSZXZlcnQgImdob3N0cGFkOiBjb3B5IHN0aWNreSBldmVudHMgdG8gU1JDIGdob3N0cGFkcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4MTYyYTU4M2E0ZGQ2ODU4MmJmMTg2ZTJlNDdhOGYwZDY4ZmExOTgwLgoJICBBdXRvbWF0aWNhbGx5IGNvcHlpbmcgdGhlIHN0aWNreSBldmVudHMgbWFrZXMgaXQgaW1wb3NzaWJsZSBmb3IgYXBwcwoJICBhbmQgZWxlbWVudHMgdG8gZmlsdGVyIHRoZSBldmVudHMgd2l0aCBldmVudCBwcm9iZXMuIFRoaXMgY2F1c2VzCgkgIHJlZ3Jlc3Npb25zIChTZWUgIzcxOTQzNykuIFRoZSBiZXN0IG9wdGlvbiBpcyB0byBsZXQgdGhlIGFwcC9lbGVtZW50CgkgIGNvcHkgYW5kIGZpbHRlciB0aGUgZXZlbnRzIHRoZW1zZWx2ZXMgYWZ0ZXIgdGhlIGdob3N0cGFkIHRhcmdldCBpcwoJICBzZXQuCgoyMDEzLTExLTE5IDE1OjAzOjM1ICswMTAwICBGYWJpYW4gS2lyc2NoIDxkZXJGYWtpckB3ZWIuZGU+CgoJKiBnc3QvcGFyc2UvLmdpdGlnbm9yZToKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IHNlZ2ZhdWx0aW5nIHByb3RvdHlwZS1taXNtYXRjaAoJICBOb3cgWVlERUJVRyBpcyBhbHdheXMgc2V0LCBzbyBjaGVjayBpdCdzIHZhbHVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTI2NzkKCjIwMTMtMTEtMjcgMTg6MzI6MjIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsb2NrOiBGaXggZG9jc3RyaW5nIGZvciByb3VuZC10cmlwLWxpbWl0IGFuZCB1bmluaXQgYWNjZXNzIHdhcm5pbmcuCgkgIEZpeCBhIHR5cG8gaW4gYSBkb2Mgc3RyaW5nIC0gdGhlIHByb3BlcnR5IGlzIHJvdW5kLXRyaXAtbGltaXQsIG5vdAoJICByb3VuZHRyaXAtbGltaXQuCgkgIFJlbW92ZSBhIGJvZ3VzIEdTVF9XQVJOSU5HIHRoYXQgY2FuIHByaW50IGFuIHVuaW5pdGlhbGlzZWQgdmFyaWFibGUKCSAgYW5kIGlzIHJlZHVuZGFudCBhbnl3YXkuCgoyMDEzLTExLTI2IDExOjU2OjQ2ICswMTAwICBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEFkZCByb3VuZC10cmlwLWxpbWl0IHBhcmFtZXRlcgoJICBTb21ldGltZXMsIHBhY2tldHMgbWlnaHQgdGFrZSBhIHZlcnkgbG9uZyB0aW1lIHRvIHJldHVybi4gU3VjaCBwYWNrZXRzCgkgIHVzdWFsbHkgYXJlIHdheSB0b28gbGF0ZSBhbmQgZGVzdGFiaWxpemUgdGhlIHJlZ3Jlc3Npb24gd2l0aCB0aGVpcgoJICBvYnNvbGV0ZSBkYXRhLiBPbiBXaS1GaSwgcm91bmQtdHJpcHMgb2Ygb3ZlciA3IHNlY29uZHMgaGF2ZSBiZWVuIG9ic2VydmVkLgoJICBJZiB0aGUgbGltaXQgaXMgc2V0IHRvIGEgbm9uemVybyB2YWx1ZSwgcGFja2V0cyB3aXRoIGEgcm91bmQtdHJpcCBwZXJpb2QKCSAgbGFyZ2VyIHRoYW4gdGhlIGxpbWl0IGFyZSBpZ25vcmVkLgoJICBTaWduZWQtb2ZmLWJ5OiBDYXJsb3MgUmFmYWVsIEdpYW5pIDxkdkBwc2V1ZG90ZXJtaW5hbC5vcmc+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTIzODUKCjIwMTMtMTEtMjUgMTk6MDQ6MzggLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEZpeCBnaSBhbm5vdGF0aW9ucyBvZiBnc3Rfc3RydWN0dXJlX25ld19jdXN0b20oKQoKMjAxMy0xMS0yNiAwMjo0Mzo1NCArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEZpeCBDOTkgY29tbWVudAoKMjAxMy0xMS0yNiAwMjoxNzozNiArMTEwMCAgSmFuIFNjaG1pZHQgPGphbkBjZW50cmljdWxhci5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgbmV0Y2xvY2s6IEltcGxlbWVudCByb2xsaW5nLWF2ZXJhZ2UgZmlsdGVyIG9uIG9ic2VydmF0aW9ucy4KCSAgS2VlcCBhIHJvbGxpbmcgYXZlcmFnZSBvZiB0aGUgcm91bmQgdHJpcCB0aW1lIGZvciBuZXR3b3JrIGNsb2NrCgkgIG9ic2VydmF0aW9ucywgZmF2b3VyaW5nIHNob3J0ZXIgcm91bmQgdHJpcHMgYXMgYmVpbmcgbW9yZSBhY2N1cmF0ZS4KCSAgRG9uJ3QgcGFzcyBhbnkgY2xvY2sgb2JzZXJ2YXRpb24gdG8gdGhlIGNsb2NrIHNsYXZpbmcgaWYgaXQgaGFzIGEKCSAgcm91bmQtdHJpcCB0aW1lIGdyZWF0ZXIgdGhhbiAyIHRpbWVzIHRoZSBhdmVyYWdlLgoJICBBY3R1YWwgc2hpZnRzIGluIHRoZSBuZXR3b3JrIHRvcG9sb2d5IHdpbGwgYmUgbm90aWNlZCBhZnRlciBzb21lCgkgIHRpbWUsIGFzIHRoZSByb2xsaW5nIGF2ZXJhZ2UgaW5jb3Jwb3JhdGVzIHRoZSBuZXcgcm91bmQgdHJpcCB0aW1lcy4KCjIwMTMtMTEtMjUgMjA6MzM6NDIgKzExMDAgIEphbiBTY2htaWR0IDxqYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQWRkIGRlYnVnIGludG8gZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X3F1ZXJ5KCkgZm9yIGFjY2VwdF9jYXBzCgoyMDEzLTExLTE0IDE1OjMyOjU5ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsbkBpZ2FsaWEuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBleGl0IHdpdGggYW4gZXJyb3IgY29kZSB3aGVuIGFuIGVycm9yIG9jY3VyZWQKCSAgSWYgdGhlIHBpcGVsaW5lIGZhaWxlZCB0byBwcmUtcm9sbCBvciB0aGUgdXNlciBpbnRlcnJ1cHRlZCB0aGUKCSAgZXhlY3V0aW9uIHRoZW4gc2V0IHRoZSBleGl0IGNvZGUgdG8gYSBwb3NpdGl2ZSB2YWx1ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjMwMAoKMjAxMy0xMS0yMiAwMTozNToxOCArMDEwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBFc2NhcGUgc3RyZWFtIGlkIGZvcm1hdCBpbiBjb21tZW50cwoJICBUaGVzZSBtdXN0IGJlIGVzY2FwZWQgZm9yIGd0ay1kb2MgdG8gcGFyc2UgdGhlIGNvbW1lbnRzIHdpdGhvdXQgd2FybmluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTQ5ODkKCjIwMTMtMTEtMjEgMTU6MDQ6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0OiBnX21lbW1vdmUoKSBpcyBkZXByZWNhdGVkCgkgIEp1c3QgdXNlIHBsYWluIG1lbW1vdmUoKSwgZ19tZW1tb3ZlKCkgaXMgZGVwcmVjYXRlZCBpbgoJICByZWNlbnQgR0xpYiB2ZXJzaW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMjgxMQoKMjAxMy0xMS0yMSAxNDoxMzoxNiArMDEwMCAgV2ltIFRheW1hbnMgPHd0YXltYW5zQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IGNvcHkgc3RpY2t5IGV2ZW50cyB0byBTUkMgZ2hvc3RwYWRzCgkgIFVwZGF0ZSB0aGUgc3RpY2t5IGV2ZW50cyBvbiBTUkMgZ2hvc3RwYWRzIHdoZW4gcmV0YXJnZXRpbmcuIFRoaXMgZW5zdXJlcwoJICB0aGF0IHRoZSBnaG9zdHBhZCBoYXMgdGhlIGV4ZWN0IHNhbWUgc3RpY2t5IGV2ZW50cyBhcyB0aGUgdGFyZ2V0IHBhZC4gV2UKCSAgZG9uJ3Qgd2FudCB0byBkbyB0aGlzIGZvciBTSU5LIGdob3N0cGFkcywgdGhleSBnb3QgdGhlIGV2ZW50cyBmcm9tCgkgIGRvd25zdHJlYW0gYW5kIHdlIGRvbid0IHdhbnQgdG8gb3ZlcndyaXRlIHRoZW0gd2l0aCB0aGUgdGFyZ2V0IHBhZAoJICBldmVudHMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc2MjEKCjIwMTMtMTEtMjEgMTI6Mjg6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3dGF5bWFuc0ByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1vdmUgZGVidWcgZnVuY3Rpb24gY2xvc2VyIHRvIHRoZSBlbnVtIGl0IGRlYnVncwoKMjAxMy0xMS0xOCAyMTozOTo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBjaGVjayByZWFkL3dyaXRlIGJlZm9yZSBjbG9zZWQKCSAgZmlyc3QgdHJ5IHRvIHJlYWQgb3Igd3JpdGUgb24gdGhlIHNvY2tldCBiZWZvcmUgY2hlY2tpbmcgdGhlIGNsb3NlZCBzdGF0ZS4gVGhpcwoJICBtYWtlcyBzdXJlIHdlIGhhbmRsZSBhbGwgZGF0YSBvbiB0aGUgc29ja2V0IGJlZm9yZSBlcnJvcmluZyBvdXQuCgoyMDEzLTExLTE4IDIxOjM3OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogaW1wcm92ZSBkZWJ1ZwoJICBTbyB0aGF0IHdlIGNhbiBzZWUgdGhlIHJldHVybiB2YWx1ZXMgb2YgZnVuY3Rpb25zIGluIHRoZSBsb2cuCgoyMDEzLTExLTE4IDE1OjI4OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogZml4IEdzdEJ1cyB1bml0IHRlc3Qgd2l0aCBsYXRlc3QgR0xpYgoJICBnX3NvdXJjZV9yZW1vdmUoKSB3b3JrcyBvbiB0aGUgZGVmYXVsdCBtYWluIGNvbnRleHQsIGFuZAoJICB3ZSdyZSBkb2luZyB0aGluZ3Mgd2l0aCBhIGN1c3RvbSBjb250ZXh0LiBGaXhlcyB3YXJuaW5nCgkgIHdpdGggbmV3ZXIgR0xpYiB2ZXJzaW9ucy4KCjIwMTMtMTEtMTYgMTI6MjQ6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBkb2NzOiBjb3NtZXRpYyBzaW5jZSBtYXJrZXIgZml4ZXMKCjIwMTMtMTEtMTYgMTU6MTc6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZW5zdXJlIHRvIHByZXNlcnZlIHVwc3RyZWFtIHRpbWVzdGFtcHMKCSAgLi4uIHJhdGhlciB0aGFuIGhhdmUgc3ViY2xhc3MgY29taW5nIHVwIHdpdGggYW4gaW50ZXJuYWxseSBwYXJzZWQgb25lLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MjMwCgoyMDEzLTExLTE1IDA3OjMyOjQ4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFJlc3luYyBpdGVyYXRvciBpZiBuZWNlc3NhcnkKCjIwMTMtMTEtMTMgMTk6NTU6NDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdmFsdWU6IExpc3RzIHdpdGggYWxsIGVxdWFsIGVsZW1lbnRzIGFyZSBlcXVhbCB0byBhIHNpbmdsZSB2YWx1ZQoJICBPdGhlcndpc2UgY2FwcyBjb250YWluaW5nIGY9e1gsIFh9IGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIGY9WAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MjUzCgoyMDEzLTExLTExIDE2OjQ3OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBhZGQgU2luY2UgbWFya2VycyBmb3IgbmV3IEFQSQoKMjAxMy0xMS0xMSAxNzoyOTo0OCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFJlYWxseSB1cGRhdGUgdGhlIGRlZiBmaWxlcwoKMjAxMy0xMS0xMSAxNzowMjozNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmIGZpbGVzCgoyMDEzLTExLTExIDE2OjUwOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWxzbyBleHBvcnQgTERfTElCUkFSWV9QQVRIIGZvciBnc3QtcGx1Z2lucy1nbAoKMjAxMy0xMS0wNSAxMjoyMjo1MSArMDAwMCAgTWF0dGhpZXUgQm91cm9uIDxtYXR0aGlldS5ib3Vyb25AY29sbGFib3JhLmNvbT4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGV4cG9ydCBnc3QtcGx1Z2lucy1nbCBEWUxEX0xJQlJBUllfUEFUSAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExNDg4CgoyMDEzLTExLTA2IDE4OjQ2OjE5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQWx3YXlzIHNlbmQgU0VFSyBldmVudHMgdG8gYWxsIHBhZHMsIGV2ZW4gaWYgb25lIGZhaWxzCgoyMDEzLTExLTA2IDE4OjQxOjEwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBVcGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgZmx1c2hpbmcgc2VlayBoYW5kbGluZwoKMjAxMy0xMS0wNiAxODowNToyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IERvbid0IGxlYWsgc2VlayBldmVudHMKCjIwMTMtMDktMTYgMDk6NTU6NTggKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBpbXBsZW1lbnQgZmx1c2hpbmcgc2VlayBzdXBwb3J0CgkgIEltcGxlbWVudCBjb21tb24gZmx1c2hpbmcgc2VlayBsb2dpYyBpbiBHc3RDb2xsZWN0UGFkcy4gQWRkIG5ldwoJICBBUEkgc28gdGhhdCBlbGVtZW50cyBjYW4gb3B0LWluIHRvIHVzaW5nIHRoZSBuZXcgbG9naWMKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3JjX2V2ZW50X2RlZmF1bHQpIGFuZCBjYW4gZXh0ZW5kIGl0CgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaF9mdW5jdGlvbikgdG8gZmx1c2ggYW55IGludGVybmFsCgkgIHN0YXRlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjc3OSBhbmQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ0MSBmb3IgdGhlCgkgIGJhY2tncm91bmQgZGlzY3Vzc2lvbi4KCSAgQVBJOiBnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaF9mdW5jdGlvbigpCgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc19zcmNfZXZlbnRfZGVmYXVsdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg0MTYKCjIwMTMtMDktMTYgMDg6MzU6MzcgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogY29sbGVjdHBhZHM6IGFkZCBmbHVzaGluZyBzZWVrIHRlc3RzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg0MTYKCjIwMTMtMDktMTYgMDg6MzE6NDcgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogY29sbGVjdHBhZHM6IHR3ZWFrIHN0dWIgX2NvbGxlY3QgdG8gcHVzaCBhbGwgYnVmZmVycwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NDE2CgoyMDEzLTA5LTE2IDA4OjI2OjI1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IGNvbGxlY3RwYWRzOiB1cGRhdGUgbXkgZW1haWwgYWRkcmVzcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NDE2CgoyMDEzLTExLTExIDEzOjI3OjI3ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IERvbid0IHVzZSBnc3RfYnVmZmVyX2dldF9zaXplKCkgd2hlbiBwb3NzaWJsZQoJICBNYWtlcyBxc3RfcXVldWVfbG9ja2VkX2RlcXVldWUgMjAlIGZhc3RlcgoKMjAxMy0xMS0xMSAxMjoyNToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzeXN0ZW1jbG9jazogQWRkIGdzdF9zeXN0ZW1fY2xvY2tfc2V0X2RlZmF1bHQKCSAgVXNlZCBmb3Igc2V0dGluZyB0aGUgZGVmYXVsdCBzeXN0ZW0gY2xvY2sgdGhhdCBpcyBvYnRhaW5lZCB0aHJvdWdoCgkgIGdzdF9zeXN0ZW1fY2xvY2tfb2J0YWluKCksIHdoaWNoIGlzIHNvbWV0aW1lcyBuZWVkZWQgZm9yIHVuaXQKCSAgdGVzdGluZy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTI2OQoKMjAxMy0xMS0wNCAxODo1NzoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJICB0eXBlZmluZDogdXNlIGdfZ2V0X3ByZ25hbWUoKSBmb3IgZXJyb3IgbWVzc2FnZQoKMjAxMy0xMS0wNiAxMDoxNTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IHByb3h5IGNhcHMgYW5kIGFsbG9jYXRpb24KCSAgUHJveHkgdGhlIGNhcHMgcXVlcmllcyBvbiB0aGUgc3JjcGFkIGFzIHdlbGwuCgkgIFByb3h5IHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IG9uIHRoZSBzaW5rcGFkLgoKMjAxMy0xMS0wNSAxMToxNzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gODY1YWEyMCB0byBkYmVkYWEwCgoyMDEzLTExLTA0IDEzOjU2OjM3IC0wODAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0BzaXNhLnNhbXN1bmcuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IFJlbW92ZSBzb21lIGRlYWQgY29kZQoKMjAxMy0xMS0wNCAxMTo0ODo0NyArMDEwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZXhwbGljaXRseSBjYXN0IHRvIEdzdExvY2tGbGFncyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncwoKMjAxMy0xMS0wMiAxNTozNjoxOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogcmVzdXJyZWN0IHNhbml0aXppbmcgc3RhcnQgYW5kIHN0b3AgZm9yIHNlZWtpbmcKCjIwMTMtMTEtMDIgMTU6NDI6MDcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1uYXV3QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBtaW5kIGJvZ2dsaW5nIHdyYXAgd2hlbiBjb21wYXJpbmcgb2Zmc2V0cwoKMjAxMy0xMS0wMiAxNTozODoxMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bW5hdXdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0cnkgZmlyc3QgZnJhbWUgcHRzIGFuZCBkdHMgZm9yIGEgdmFsaWQgc3RhcnQgdGltZXN0YW1wCgoyMDEzLTExLTAyIDE1OjM3OjMwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByaW50IHByb3BlciB2YXJpYWJsZSBpbiBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMTMtMTEtMDEgMTY6MzU6NTkgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogTWFrZSB0aGUgRkFUQUxfRVJST1JTIGZsYWcgYWxzbyB3b3JrIHdpdGhvdXQgYSBHRXJyb3IKCSAgQWxzbyBhZGQgYSB1bml0IHRlc3RzCgoyMDEzLTEwLTIzIDE1OjU2OjIwICswMTAwICBNYXR0aGlldSBCb3Vyb24gPG1hdHRoaWV1LmJvdXJvbkBjb2xsYWJvcmEuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBmaXggcG90ZW50aWFsIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNzU4CgoyMDEzLTEwLTMxIDE2OjE2OjQ4IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0BzaXNhLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZnJhbWVzdGVwLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJICBkb2NzOiBmaXggY29tbW9uIHR5cG9zIGVtaXRlZC9lYWNob3RoZXIvLi4uCgoyMDEzLTEwLTMwIDIxOjUzOjM2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogQWRkIHNvbWUgYXR0cmlidXRlcyBhbmQgcmVvcmdhbml6ZSBjb2RlIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoJICBnc3R1dGlscy5jOjM2NTk6NDE6IGVycm9yOiBmb3JtYXQgc3RyaW5nIGlzIG5vdCBhIHN0cmluZyBsaXRlcmFsCgkgIFstV2Vycm9yLC1XZm9ybWF0LW5vbmxpdGVyYWxdCgkgIGdjaGFyICpleHBhbmRlZCA9IGdfc3RyZHVwX3ZwcmludGYgKHN0cmVhbV9pZCwgdmFyX2FyZ3MpOwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwNjIxCgoyMDEzLTEwLTI1IDE0OjU2OjE2ICswMjAwICBBbnRvbmlvIE9zcGl0ZSA8b3NwaXRlQHN0dWRlbnRpLnVuaW5hLml0PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IHJlbmFtZSB0aGUgInNhbXBsZXJhdGUiIHZhcmlhYmxlIHRvIG1ha2UgZXhhbXBsZSBjb2RlIGNvbXBpbGFibGUKCSAgSW4gb25lIG9mIHRoZSBleGFtcGxlcyBhYm91dCBnc3RfbXlfZmlsdGVyX3NldGNhcHMoKSB0aGVyZSBpcyBhIHZhcmlhYmxlCgkgIGRlY2xhcmVkIGFzICJyYXRlIiwgYnV0IHRoZW4gdGhlIG5hbWUgInNhbXBsZXJhdGUiIGlzIHVzZWQgd2hlbiBzZXR0aW5nCgkgIHRoZSBjYXBzLgoJICBVc2UgdGhlIG5hbWUgInJhdGUiIGV2ZXJ5d2hlcmUgaW4gZ3N0X215X2ZpbHRlcl9zZXRjYXBzKCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MTA4NzYKCjIwMTMtMTAtMjkgMTg6MDk6MzIgKzAxMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIGRvYzogZml4IGZvcndhcmQgcmVmZXJlbmNlIGFib3V0IGdob3N0IHBhZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTA4OQoKMjAxMy0xMC0yOCAxMjo1NToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgIGRvY3M6IGRlc2lnbjogZml4IHNvbWUgZml4ZXMKCjIwMTMtMTAtMjYgMDk6NDg6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5jb20+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSAgZG9jczogZmxlc2ggb3V0IGdzdC11bmluc3RhbGxlZCBlbnRyeSBpbiBmYXEgc29tZSBtb3JlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk5MTYKCjIwMTMtMTAtMTYgMTU6MDA6NDEgKzAyMDAgIEZhYmlhbiBLaXJzY2ggPGRlckZha2lyQHdlYi5kZT4KCgkqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICBkb2NzOiBGQVEgdXBkYXRlIHRvIG1lbnRpb24gY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk5MTYKCjIwMTMtMTAtMjUgMjE6Mjk6MDEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IHNtYWxsIGNsZWFudXBzIGFuZCB1c2Ugb2JqZWN0IGxvZyB2YXJpYW50cyBtb3JlCgoyMDEzLTEwLTI1IDIxOjI4OjMwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIHByaXZhdGU6IHJlbW92ZSBsZWZ0LW92ZXIgY29tbWVudAoJICBUaGUgY2FwcyBhcmUgc2F2ZWQgaW4gdGhlIHJlZ2lzdHJ5LgoKMjAxMy0xMC0yNSAxODo1MTo1MyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogdXNlIGdfc2xpY2VfZnJlZSBmb3Igc2xpY2UgbWVtb3J5CgkgIEF2b2lkIG1lbW9yeSBsaXN0IGNvcnJ1cHRpb24sIGJ1dCBnX2ZyZWUnaW5nIHNsaWNlIG1lbW9yeS4KCjIwMTMtMTAtMjMgMTg6MTY6NTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC10cmFjaW5nLnR4dDoKCSAgZGVzaWduOiBmbGVzaCBvdXQgdGhlIHRyYWNpbmcgZGVzaWduIGEgbGl0dGxlIG1vcmUKCjIwMTMtMTAtMjUgMTE6MDI6MTkgLTA0MDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGRvY3M6IGZpeCB0eXBvcyBpbiBnc3RvYmplY3QKCjIwMTMtMTAtMjEgMTg6MDE6MjEgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LW1ldGEudHh0CgoyMDEzLTEwLTE0IDIyOjAzOjUwIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtZWxlbWVudC1zb3VyY2UudHh0CgoyMDEzLTEwLTE0IDIxOjU0OjMxIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LXNpbmsudHh0CgoyMDEzLTEwLTE0IDE4OjQzOjQwIC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY29udmVudGlvbnMudHh0CgoyMDEzLTEwLTE0IDE4OjM0OjA2IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1jb250cm9sbGVyLnR4dAoKMjAxMy0xMC0xNCAxODoyNDoxOCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRleHQudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY29udGV4dC50eHQKCjIwMTMtMTAtMTQgMTg6MTM6MzUgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY2xvY2tzLnR4dAoKMjAxMy0xMC0xNCAxODowNTo0MyAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtY2Fwcy50eHQKCjIwMTMtMTAtMTQgMTc6NDQ6MjcgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtYnVmZmVyLnR4dAoKMjAxMy0xMC0xNCAxNzoyOToxOSAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtYnVmZmVycG9vbC50eHQKCjIwMTMtMTAtMTQgMDU6Mzk6MTkgLTA3MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHIudmVyZGVqb0BwYXJ0bmVyLnNhbXN1bmcuY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBkb2NzOiBHcmFtIGFuZCBuaXQgZml4ZXMgZm9yIHBhcnQtYnVmZmVyaW5nLnR4dAoKMjAxMy0xMC0xMyAyMToxNjo0NyAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgZG9jczogR3JhbSBhbmQgbml0IGZpeGVzIGZvciBwYXJ0LW1lc3NhZ2VzLnR4dAoKMjAxMy0xMC0xMyAyMDo0Mjo0MCAtMDcwMCAgUmV5bmFsZG8gSC4gVmVyZGVqbyBQaW5vY2hldCA8ci52ZXJkZWpvQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIGRvY3M6IEdyYW0gYW5kIG5pdCBmaXhlcyBmb3IgcGFydC1tZW1vcnkudHh0CgoyMDEzLTEwLTE4IDA4OjU4OjA1ICswMTAwICBQaGlsaXAgV2l0aG5hbGwgPHBoaWxpcC53aXRobmFsbEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgIG5ldDogQ29uc3RpZnkgYSBwYXJhbWV0ZXIgdG8gZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KCkKCSAgRXZlbiB0aG91Z2ggdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHVzZWQsIGl0IHNob3VsZCBiZSBjb25zdCB0byBmaXQgaW4gd2l0aCB0aGUKCSAgY29kaW5nIHN0YW5kYXJkcyBmb3Igb3RoZXIgc2ltaWxhciBwYXJhbWV0ZXJzLiBDbGllbnQgY29kZSBhbHJlYWR5IHBhc3NlcyBpbgoJICBjb25zdCBzdHJpbmdzIHVuZGVyIHRoZSBleHBlY3RhdGlvbiB0aGF0IHRoZXkgd29u4oCZdCBiZSBtb2RpZmllZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDQ0MgoKMjAxMy0xMC0xNSAxMTo0NDowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBNYWtlIHN1cmUgdG8gaW5jbHVkZSBnc3RfcHJpdmF0ZS5oIGJlZm9yZSBnbGliLWNvbXBhdC1wcml2YXRlLmgKCSAgV2UgbmVlZCB0byBkZWZpbmUgdGhlIEdMaWIgbG9nIGRvbWFpbiBiZWZvcmUgaW5jbHVkaW5nIGdsaWIuaCwgd2hpY2ggaXMKCSAgaW5jbHVkZWQgYnkgZ2xpYi1jb21wYXQtcHJpdmF0ZS5oLgoKMjAxMy0xMC0xNCAxODowNzoxNyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50IHRvIHNlY3Rpb25zLnR4dAoJICBTbyBpdCBhcHBlYXJzIGluIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbgoKMjAxMy0wOS0yOSAxNzozNToxMSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2VicmFzQGhvdG1haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHMvZmlsZXNyYzogU2V0IGxvY2F0aW9uIGluIHdyb25nIHN0YXRlCgkgIEFsc28gcmVtb3ZlIGluY29ycmVjdCBjb21tZW50IGFib3V0IGNvZGUgcG9zc2libHkgbm90IGJlaW5nIHJlYWNoYWJsZQoJICB0aGF0IGlzIG5vdyBleGVyY2lzZWQgYnkgdGhlIGZpbGVzcmMgdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5ODMxCgoyMDEzLTEwLTEyIDE2OjE2OjA5ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogRml4IHRyYW5zZmVyIGFubm90YXRpb25zIGZvciBwYXJzZV9sYXVuY2ggZnVuY3Rpb25zLgoJICBnc3RfcGFyc2VfbGF1bmNodiwgZ3N0X3BhcnNlX2xhdW5jaHZfZnVsbCBhbmQgZ3N0X3BhcnNlX2xhdW5jaF9mdWxsCgkgIGFsbCByZXR1cm4gZmxvYXRpbmcgcmVmcywgdGhlIHNhbWUgYXMgZ3N0X3BhcnNlX2xhdW5jaCwgd2hpY2gganVzdAoJICBjYWxscyBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwgaW50ZXJuYWxseSBhbnl3YXkuCgkgIEFkZCBhIHVuaXQgdGVzdCBhc3NlcnRpb24gdG8gY2hlY2sgaXQncyB0cnVlLgoJICBTcG90dGVkIGJ5IG5lbWVxdSBvbiBJUkMuCgoyMDEzLTEwLTEwIDA4OjMwOjI3IC0wNzAwICBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyLnZlcmRlam9AcGFydG5lci5zYW1zdW5nLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGdzdC9nc3QuYzoKCSogdGVzdHMvbWlzYy90ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoOgoJICBjb3JlOiBGaXggbWF4IERFQlVHX0xFVkVMIGluY29uZ3J1ZW5jZSBvbiA1IHZzIDkKCSAgSW4gdGhlIGRvY3MgYW5kIHRoZSBhdXRvY29tcGxldGlvbiBsb2dpYyB0aGUgbWF4aW11bQoJICB2YWx1ZSBqdW1wZWQgaW5jb25ncnVlbnRseSBiZXR3ZWVuIDUgYW5kIDkuCgoyMDEzLTEwLTEwIDEzOjE5OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBTa2lwIHRlc3Rfc3Vic2V0X2R1cGxpY2F0aW9uIHVudGlsIHRoZSBidWcgaXMgZml4ZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTI1MwoKMjAxMy0xMC0xMCAxMjo1Njo1NCArMDIwMCAgRmFiaWFuIEtpcnNjaCA8ZGVyRmFraXJAd2ViLmRlPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgZG9jczogRml4IHNvbWUgcmVmZXJlbmNlIFVSSXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTgwNAoKMjAxMy0xMC0wMiAxMzowMzo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogQWRkIGEgdGVzdGNhc2UgZm9yIHN1YnNldCBjaGVja3Mgb24gbGlzdHMgd2l0aCBkdXBsaWNhdGVkIGl0ZW1zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkyNTMKCjIwMTMtMTAtMDkgMTU6MzY6NDggLTAzMDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IENhbGwgdGhlIGNvbGxlY3RlZCBmdW5jdGlvbiB3aGlsZSBpdCByZXR1cm5zIEZMT1dfT0sKCSAgVGhpcyBhbGxvd3MgdXMgdG8gbWFrZSBzdXJlIHRoZSBlbGVtZW50cyBpcyBFT1MgYW5kIGRvZXMgbm90IGhhdmUKCSAgcmVtYWluaW5nIGJ1ZmZlcnMgdG8gYmUgZHJhaW5lZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwOTYzNwoKMjAxMy0xMC0wNSAxMDowODozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogZml4IGZ1bmN0aW9uIG5hbWUgaW4gcW9zIGRlc2lnbiBkb2NzCgoyMDEzLTEwLTAyIDEyOjMwOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogdXNlIHRjYXNlX3NraXBfYnJva2VuX3Rlc3QoKSB0byBza2lwIGJyb2tlbiBtdWx0aXF1ZXVlIHRlc3QKCSAgU28gdGhhdCB3ZSBnZXQgYSB3YXJuaW5nIGluIHRoZSBvdXRwdXQgdGhhdCByZW1pbmRzIHVzIHRoYXQKCSAgc29tZXRoaW5nIG5lZWRzIHRvIGJlIGZpeGVkLgoKMjAxMy0xMC0wMiAxMToyNDowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIGNoZWNrOiBEaXNhYmxlIG11bHRpcXVldWUgdGVzdF9vdXRwdXRfb3JkZXIgY2hlY2sKCSAgVGhlIGNoZWNrIGl0c2VsZiBpcyByYWN5LgoJICAoQ0tfRk9SSz1ubyBHU1RfQ0hFQ0s9dGVzdF9vdXRwdXRfb3JkZXIgbWFrZSBlbGVtZW50cy9tdWx0aXF1ZXVlLmZvcmV2ZXIpLgoJICBUaGUgcHJvYmxlbSBpcyBpbmRlZWQgdGhlIHRlc3QgYW5kIG5vdCB0aGUgYWN0dWFsIGVsZW1lbnQgYmVoYXZpb3VyLgoJICBUaGUgb2JqZWN0cyB0byBwdXNoIGFyZSBiZWluZyBwdWxsZWQgb3V0IG9mIHRoZSBzaW5nbGUgaW50ZXJuYWwgcXVldWVzIGluIHRoZQoJICByaWdodCBvcmRlciBhbmQgYXQgdGhlIHJpZ2h0IHRpbWUuLi4KCSAgQnV0IGJldHdlZW46CgkgICogdGhlIG1vbWVudCB0aGUgZ2xvYmFsIG11bHRpcXVldWUgbG9jayBpcyByZWxlYXNlZCAod2hpY2ggd2FzIHVzZWQgdG8gZGV0ZWN0CgkgIGlmIHdlIHNob3VsZCBwb3AgYW5kIHB1c2ggZG93bnN0cmVhbSB0aGUgbmV4dCBidWZmZXIpCgkgICogYW5kIHRoZSBtb21lbnQgaXQgaXMgcmVjZWl2ZWQgYnkgdGhlIHNvdXJjZSBwYWQgKHdoaWNoIGRvZXMgdGhlIGNoZWNrKQoJICA9PiBhbm90aGVyIHNpbmdsZSBxdWV1ZSAobGlrZSB0aGUgdW5saW5rZWQgcGFkKSBtaWdodCBwb3AgYW5kIHB1c2ggYSBidWZmZXIKCSAgZG93bnN0cmVhbQoJICBXaGF0IHNob3VsZCB3ZSBkbyA/IFB1dHRpbmcgYSBiaWdnZXIgbWFyZ2luIG9mIGVycm9yIChzYXkgNSBidWZmZXJzKSBkb2Vzbid0CgkgIGhlbHAsIGl0J2xsIGV2ZW50dWFsbHkgZmFpbC4KCSAgSSBjYW4ndCBzZWUgaG93IHdlIGNhbiBkZXRlY3QgdGhpcyByZWxpYWJseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODY2MQoKMjAxMy0wOS0yNSAxOTowNjo1NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dHMuc2FudG9zQHBhcnRuZXIuc2Ftc3VuZy5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBjYXBzIHNlcmlhbGl6YXRpb24gd2hlbiB0aGVyZSBhcmUgY2FwcyBpbnNpZGUgY2FwcwoJICBXcmFwIGNhcHMgc3RyaW5ncyBzbyB0aGF0IGl0IGNhbiBoYW5kbGUgc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uCgkgIG9mIGNhcHMgaW5zaWRlIGNhcHMuIE90aGVyd2lzZSB0aGUgdmFsdWVzIGZyb20gdGhlIGludGVybmFsIGNhcHMgYXJlIHBhcnNlZAoJICBhcyBpZiB0aGV5IHdlcmUgZnJvbSB0aGUgdXBwZXIgb25lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg3NzIKCjIwMTMtMDktMjggMDg6NDA6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogQ2hlY2sgZXJyb3JzIG9uIHRoZSBwcm9wZXIgZmQKCSAgTW9zdCBsaWtlbHkgYSBjb3B5LXBhc3RlIGVycm9yIGZyb20gdGhlIGJsb2NrIGJlZm9yZS4KCSAgSWYgd2UncmUgZ29pbmcgdG8gY2hlY2sgZm9yIGVycm9yL2Nsb3NlZCBvbiB0aGUgd3JpdGUgZmQuLi4gZG8gaXQKCSAgb24gdGhlIHdyaXRlIGZkCgoyMDEzLTA5LTI2IDE0OjA5OjAyIC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCBzcGVsbGluZyBvZiAiZ2VuZXJpYyIgaW4gR3N0QmFzZVNyYydzIGRvY3VtZW50YXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDg4NzAKCjIwMTMtMDktMjYgMTE6MzI6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogb25seSBjaGVjayBldmVudCBvcmRlciB3aGVuIHNvbWV0aGluZyBjaGFuZ2VkCgkgIENoZWNrIHRoZSBldmVudCBvcmRlciBpbiBkYXRhZmxvdyBvbmx5IHdoZW4gc29tZXRoaW5nIGNoYW5nZWQgaW5zdGVhZAoJICBvZiBmb3IgZWFjaCBidWZmZXIuCgoyMDEzLTA5LTI0IDE4OjI4OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogUkVBRE1FOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDZiMDNiYTcgdG8gODY1YWEyMAoKMjAxMy0wOS0yNCAxNTowNToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEFjdHVhbGx5IHVzZSAxLjMuMC4xIGFzIHZlcnNpb24gdG8gbWFrZSBjb25maWd1cmUgaGFwcHkKCjIwMTMtMDktMjQgMTU6MDA6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4yLjAgPT09CgoyMDEzLTA5LTI0IDE0OjA3OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4yLjAKCjIwMTMtMDktMjQgMTQ6MDY6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTMtMDktMjQgMTM6MTA6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkgIGNvbnRleHQ6IEFkZCB0ZXN0IGZvciB0aGUgY29udGV4dCBjYWNoaW5nIGluIEdzdEJpbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjY4CgoyMDEzLTA5LTI0IDEyOjQ3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgUmV2ZXJ0ICJQb3RlbnRpYWwgR3N0Q29udGV4dCByZWdyZXNzaW9uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGU2NTgzNzk1MzRlYjRhOTBiNjU0ZDkwZjFkMGJkZjg2ZjM3YzZlMzEuCgkgIFRoaXMgdGVzdCBjb21taXQgc2hvdWxkJ3ZlIG5ldmVyIGJlZW4gcHVzaGVkLiBPb3BzLgoKMjAxMy0wOS0yNCAxMjo0Njo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE1ha2Ugc3VyZSB0byBjYWNoZSBjb250ZXh0IHR5cGVzIHRoYXQgd2UgZGlkIG5vdCBzdG9yZSB5ZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODY2OAoKMjAxMy0wOS0yNCAxMDoyOTowNiArMDEwMCAgQWxleCBBc2hsZXkgPGJ1Z3ppbGxhQGFzaGxleS1mYW1pbHkubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIFBvdGVudGlhbCBHc3RDb250ZXh0IHJlZ3Jlc3Npb24KCSAgU2luY2UgdGhlIHJlZmFjdG9yaW5nIG9mIEdzdENvbnRleHQgKGNvbW1pdHMKCSAgcWM5ZmEyNzcxYjUwOGU5YWFlZWNjNzAwZTY2ZTk1ODE5MDQ3NmYsCgkgIGE3ZjVkYzhiOGFmODM3ZjAxNzgyZDE1NzIzNzk5NDhmZjYyZGFhYjcsCgkgIDY5MDMyNmY5MDZkYzgyZTQxZWE1OGI4MWNkYjJlM2U4OGI3NTQsCgkgIGQzNjdkYzFiMGQ0ZWNiMzdmNGQyNzI2N2UwM2Q3YmYwYzZjMDZhNiwgYW5kCgkgIDgyZDE1OGFlZDNmMmU4NTQ1ZTFlN2QzNTA4NTA4NWZmNThmMTgpIEkgYW0gbm8gbG9uZ2VyIGFibGUgdG8gZ2V0CgkgIGEgc2hhcmVkIGNvbnRleHQgZm9yIGFuIGVsZW1lbnQgdGhhdCBpcyB1c2VkIHR3aWNlIGluIGEgcGlwZWxpbmUuCgkgIEkgdXNlZCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgZWdsZ2xlc3NpbmsgYXMgbXkgcmVmZXJlbmNlIGZvcgoJICBpbXBsZW1lbnRpbmcgdGhlIEdzdENvbnRleHQgbG9naWMuCgkgIEFzIHRoZSBjb2RlIHdhcyB0aWVkIHRvIGEgaGFyZHdhcmUgZGVjb2RlciwgSSBoYXZlIHBvcnRlZCB0aGUKCSAgR3N0Q29udGV4dCBjb2RlIHRvIGZha2VzaW5rIHRvIHNob3cgdGhlIHByb2JsZW0uIFVzaW5nIHRoZSBvbGQKCSAgQVBJIGEgc2luZ2xlIEV4YW1wbGVNZ3IgaW5zdGFuY2UgaXMgY3JlYXRlZCwgYnV0IHVzaW5nIHRoZSBuZXcKCSAgQVBJIGVhY2ggZWxlbWVudCBpcyBjcmVhdGluZyBpdHMgb3duIGluc3RhbmNlLgoKMjAxMy0wOS0yNCAxMDo0MjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogTWFrZSBzdXJlIHRoYXQgdGhlIG9iamVjdCBsb2NrIGlzIGFsd2F5cyB0YWtlbiB3aGVuIGFjY2Vzc2luZyB0aGUgcHJpdmF0ZSBwYWQgbGlzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjM2CgoyMDEzLTA5LTE3IDIzOjIzOjM0ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBVc2UgcHJpdmF0ZSBwYWQgbGlzdCBpbiBzZXRfZmx1c2hpbmdfdW5sb2NrZWQKCSAgcGFkcy0+ZGF0YSBpcyB0aGUgcHVibGljIGxpc3QuIEl0IGlzIGR5bmFtaWNhbGx5IHJlYnVpbHQgYXQgZWFjaCBjYWxsIHRvCgkgIGNoZWNrX2NvbGxlY3RlZCwgaW4gY2hlY2tfcGFkcyB0byBiZSBzcGVjaWZpYy4gV2hlbiB5b3UgYWRkIGEgcGFkIGFuZAoJICBjb2xsZWN0cGFkcyBoYXZlIGJlZW4gc3RhcnRlZCwgaXQgaXMgbm90IGFkZGVkIHRvIHRoZSBwdWJsaWMgbGlzdC4KCSAgVGh1cyB0aGVyZSBleGlzdHMgYSBwb3NzaWJsZSByYWNlIHdoZXJlIDoKCSAgMSkgWW91IHdvdWxkIGFkZCBhIHBhZCB0byBjb2xsZWN0cGFkcyB3aGlsZSBydW5uaW5nLgoJICAyKSBZb3Ugc2V0IGNvbGxlY3RwYWRzIHRvIGZsdXNoaW5nIGJlZm9yZSBjaGVja19jb2xsZWN0ZWQgaGFzIGJlZW4gY2FsbGVkIGFnYWluCgkgIC0+IHRoZSBwYWQgaXMgbm90IHNldCB0byBmbHVzaGluZwoJICAzKSB0aGUgcGFkIHN0YXJ0cyBwdXNoaW5nIGRhdGEgYXMgZG93bnN0cmVhbSBtaWdodCBub3QgYmUgcHJlcGFyZWQsIGluIHRoZSBjYXNlCgkgIG9mIGFkZGVyIGl0IHRoZW4gcmV0dXJucyBGTE9XX0ZMVVNISU5HLgoJICA0KSBlbGVtZW50cyBsaWtlIGRlbXV4ZXJzLCB3aGVuIHRoZXkgZ2V0IGEgRkxPV19GTFVTSElORywgc3RvcCB0aGVpciB0YXNrcywKCSAgbmV2ZXIgdG8gYmUgc2VlbiBhZ2Fpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwODYzNgoKMjAxMy0wOS0yMyAxMTo0NzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdHRlc3RjbG9jay5jOgoJICB0ZXN0czogaGFuZGxlIHVuc2NoZWR1bGVkIGVudHJpZXMgY29ycmVjdGx5CgkgIE1ha2UgdGhlIHRlc3RjbG9jayByZXR1cm4gR1NUX0NMT0NLX1VOU0NIRURVTEVEIHdoZW4gYW4gdW5zY2hlZHVsZWQgZW50cnkgaXMKCSAgdXNlZCBmb3IgZ3N0X2Nsb2NrX3dhaXQoKSBvciBnc3RfY2xvY2tfd2FpdF9hc3luYygpLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NjA1CgoyMDEzLTA5LTIyIDExOjA5OjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogQWxsb3cgc3BlY2lmeWluZyB0aGUgY2hlY2tvdXQgZGlyZWN0b3J5IGJ5IGVudiB2YXJpYWJsZQoJICBGb3Igc29tZSByYXJlIGNhc2VzLCBvbmUgbWlnaHQgbm90IGJlIGFibGUgdG8gdXNlIHRoZSBoYXJkY29kZWQgJEhPTUUvZ3N0CgkgIGxvY2F0aW9uIHlldCB3b3VsZCBzdGlsbCB3YW50IHRvIHVzZSB0aGUgZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCBhcy1pcyAod2hpY2gKCSAgaGFzIHRoZSBiZW5lZml0IG9mIGJlaW5nIGNvbnN0YW50bHkgdXBkYXRlZCkuCgkgIEZvciB0aGVzZSBjYXNlcywgdGhlIGNoZWNrb3V0IGRpcmVjdG9yeSBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlCgkgIEdTVF9VTklOU1RBTExFRF9ST09UIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBFeDoKCSAgZXhwb3J0IEdTVF9VTklOU1RBTExFRF9ST09UPSRIT01FL3NvbWV3aGVyZS93aXRoL2NoZWNrb3V0cwoJICBBbmQgdGhlbiBqdXN0IGNhbGwgZ3N0LXVuaW5zdGFsbGVkIGRpcmVjdGx5OgoJICAkR1NUX1VOSU5TVEFMTEVEX1JPT1QvZ3N0cmVhbWVyL2dzdC11bmluc3RhbGxlZAoKMjAxMy0wOS0yMCAxNjoxNjoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI2MTM2NjEgdG8gNmIwM2JhNwoKMjAxMy0wOS0xOSAxODo0MjozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNzRhNjg1NyB0byBiNjEzNjYxCgoyMDEzLTA5LTE5IDE3OjM0OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxMmFmMTA1IHRvIDc0YTY4NTcKCjIwMTMtMDktMTkgMTc6MTI6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suYzoKCSAgY2hlY2s6IHRlc3RjbG9jazogZml4IGZ1bmN0aW9uIGd1YXJkcwoJICBTaG91bGQgYmUgZ19yZXR1cm5fKigpIG5vdCBnX2Fzc2VydCgpLCBldmVuIGlmIGl0J3MgZm9yIHRlc3RzIG9ubHkuCgoyMDEzLTA5LTE5IDE2OjQzOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIGNoZWNrOiB0ZXN0Y2xvY2s6IGRvbid0IHB1dCBjb2RlIHdpdGggc2lkZS1lZmZlY3RzIGluIGdfYXNzZXJ0KCkKCSAgRml4ZXMgdW5pdCB0ZXN0IGZhaWx1cmVzIHdoZW4gLURHX0RJU0FCTEVfQVNTRVJUIGlzIHVzZWQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDY1NTEKCjIwMTMtMDktMTkgMTI6MDc6NTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgZ3N0Y29udGV4dDogRml4IHJldHVybiB2YWx1ZXMgc29tZSBtb3JlCgkgIFJldHVybiB2YWx1ZSBpcyBhIGJvb2xlYW4gbm90IGEgcG9pbnRlcgoKMjAxMy0wOS0xOSAxMTo0OToyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogRml4IHJldHVybiB2YWx1ZXMgZm9yIGdzdF9jb250ZXh0X2hhc19jb250ZXh0X3R5cGUoKSBpbiBhc3NlcnRpb25zCgoyMDEzLTA5LTE5IDExOjM0OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS45MCA9PT0KCjIwMTMtMDktMTkgMTA6NDg6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS45MAoKMjAxMy0wOS0xOSAxMDowNTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wOS0xOSAwOTo0OTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRleHQ6IEFkZCBjb252ZW5pZW5jZSBmdW5jdGlvbiBnc3RfY29udGV4dF9oYXNfY29udGV4dF90eXBlKCkKCjIwMTMtMDktMTkgMDk6NDI6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9oci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zCgoyMDEzLTA5LTE4IDIzOjA3OjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBJbXBsZW1lbnQgZ2V0dGluZyB0aGUgbmFtZSBvZiB0aGUgY29udGV4dCBtZXNzYWdlIHR5cGVzCgoyMDEzLTA5LTE3IDIxOjM2OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogRml4IHVuaXQgdGVzdCBmb3IgR3N0Q29udGV4dCBjaGFuZ2VzCgoyMDEzLTA5LTE3IDE0OjM0OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFVwZGF0ZSBmb3IgR3N0Q29udGV4dCBjaGFuZ2VzCgoyMDEzLTA5LTE3IDE0OjI5OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udGV4dDogVXBkYXRlIGRvY3MKCjIwMTMtMDktMTcgMTQ6MjU6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJbXBsZW1lbnQgY29udGV4dCBjYWNoaW5nIGFuZCBwcm9wYWdhdGlvbiBhZ2FpbgoKMjAxMy0wOS0xNyAxMzo1MDowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIG1lc3NhZ2UvcXVlcnk6IFNpbXBsaWZ5IENPTlRFWFQgbWVzc2FnZXMvcXVlcmllcyB0byBvbmx5IGNvbnRhaW4gYSBzaW5nbGUgdHlwZQoKMjAxMy0wOS0xNyAxMzozMzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogVXBkYXRlIGRvY3VtZW50YXRpb24KCjIwMTMtMDktMTcgMTM6Mjg6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGNvbnRleHQ6IENoYW5nZSBHc3RDb250ZXh0IHRvIGNvbnRhaW4gb25seSBhIHNpbmdsZSBjb250ZXh0CgkgIEl0IHdhcyB1bmludHVpdGl2ZSB0aGF0IEdzdENvbnRleHQgd2FzIGFjdHVhbGx5IGEgbGlzdCBvZiBkaWZmZXJlbnQKCSAgY29udGV4dHMuIEdzdENvbnRleHQgbm93IGlzIG9ubHkgYSB0eXBlIHN0cmluZyBhbmQgYSBzdHJ1Y3R1cmUgdG8KCSAgY29udGFpbiB0aGUgYWN0dWFsIGNvbnRleHQuCgoyMDEzLTA5LTE3IDEzOjEyOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IFJlbW92ZSBHc3RDb250ZXh0IGNhY2hpbmcKCjIwMTMtMDktMTcgMTM6MTA6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkgIGNvbnRleHQ6IEFkZCBwZXJzaXN0ZW50IHF1YWxpZmllciBmb3IgYSBjb250ZXh0CgkgIE5vbi1wZXJzaXN0ZW50IGNvbnRleHRzIGFyZSByZW1vdmVkIHdoZW4gZWxlbWVudHMgZ28gYmFjawoJICB0byBOVUxMIHN0YXRlLCBwZXJzaXN0ZW50IGNvbnRleHRzIGFyZSBub3QuIEFwcGxpY2F0aW9ucwoJICBtb3N0IGxpa2VseSB3YW50IHRvIHNldCBwZXJzaXN0ZW50IGNvbnRleHRzLgoKMjAxMy0wOS0xNyAxMzoxMDoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBNYWtlIENPTlRFWFQgcXVlcnkgdXBzdHJlYW0gYW5kIGRvd25zdHJlYW0KCjIwMTMtMDktMTcgMTM6MDk6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBldmVudDogUmVtb3ZlIENPTlRFWFQgZG93bnN0cmVhbSBldmVudAoJICBUaGlzIGlzIGdvaW5nIHRvIGJlIGltcGxlbWVudGVkIHdpdGggYW4gdXBzdHJlYW0gcXVlcnkgaW5zdGVhZAoJICBmb3IgY29uc2lzdGVuY3kgYW5kIHNpbXBsaWNpdHkuCgoyMDEzLTA5LTEzIDE0OjQxOjQ1ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXNoZ0BheGlzLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBTdG9wIGFsbCB1bnVzZWQgdGhyZWFkcyBpbiBHVGhyZWFkUG9vbCBpbiBnc3RfZGVpbml0KCkKCSAgU2luY2UgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIG1heCB1bnVzZWQgdGhyZWFkcyBpbiBHVGhyZWFkUG9vbCBoYXMgYmVlbgoJICBjaGFuZ2VkIGZyb20gMCB0byAyIGl0IG5lZWRzIHRvIGJlIHNldCB0byAwIHRvIHN0b3AgYWxsIHRocmVhZHMgb3IKCSAgdmFsZ3JpbmQgd2lsbCByZXBvcnQgdGhlbSBhcyBtZW1vcnkgbGVha3MuCgoyMDEzLTA5LTEwIDE2OjM5OjMwICswMTAwICBSaWNvIFR6c2NoaWNoaG9seiA8cmljb3R6QHQtb25saW5lLmRlPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZ3M6IGZpeCBwc3BlYyByZWxheGF0aW9uIGZvciBjb250cm9sIHNvdXJjZSBwcm9wZXJ0aWVzCgkgIFRoZSBjaGFuZ2Ugc2hvdWxkIGhhdmUgYmVlbiBmcm9tIFBBUkFNX0NPTlNUUlVDVF9PTkxZIHRvCgkgIFBBUkFNX0NPTlNUUlVDVCwgb3RoZXJ3aXNlIGJpbmRpbmdzIGFyZSBhZmZlY3RlZCwgc2luY2UKCSAgdGhleSBsb29rIGZvciB0aGUgQ09OU1RSVUNUIGZsYWcuCgkgIFNlZSBlYzU1MzYzZAoKMjAxMy0wOS0xMCAxMDoxNTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBPbmx5IHVwZGF0ZSBjdXJyZW50IGxldmVsIGlmIHdlIGFscmVhZHkgZG93bmxvYWRlZCBhIHJhbmdlCgkgIE90aGVyd2lzZSBxdWV1ZS0+bGV2ZWwgaXMgTlVMTCBhbmQgZGVyZWZlcmVuY2luZyB0aGF0IGlzIG5vdCBhIGdvb2QKCSAgaWRlYSBpbiBnZW5lcmFsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NjQ4CgoyMDEzLTA5LTA5IDE1OjQwOjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBEZXByZWNhdGUgR1NUX01FVEFfVEFHX01FTU9SWQoJICBUaGUgR1F1YXJrcyBhcmUgbm90IGV4cG9ydGVkIGJ5IGFueSBwdWJsaWMgQVBJCgoyMDEzLTA4LTIyIDAwOjAyOjI4ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWV0YTogQWRkIGEgI2RlZmluZSBmb3IgbWVtb3J5IG1ldGFkYXRhCgoyMDEzLTA4LTIyIDAwOjAxOjQ0ICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogaW1wbGVtZW50IGEgZGVmYXVsdCB0cmFuc2Zvcm1fbWV0YS4gSWYgYSBtZXRhZGF0YSBoYXMgbm8gZGVwZW5kZW5jeSBhcyBzaG93biBieSB0aGUgdGFncywgY29weSBpdC4KCjIwMTMtMDgtMjIgMjE6MzI6MzYgKzAyMDAgIE1hdGhpZXUgRHVwb25jaGVsbGUgPG1hdGhpZXUuZHVwb25jaGVsbGVAZXBpdGVjaC5ldT4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IEFQSTogQWRkIGdzdF9tZXRhX2FwaV90eXBlX2dldF90YWdzKCkgdG8gZ2V0IGFsbCBtZXRhIHRhZ3MuCgoyMDEzLTA5LTA5IDE0OjIxOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9jYXBzZmlsdGVyLmM6CgkgIHRlc3RzL2NhcHNmaWx0ZXI6IEZpeCBtZW1vcnkgbGVhayBhbmQgY29tcGFyZSBjYXBzIGRpcmVjdGx5IGluc3RlYWQgb2Ygc3RyY21wKCkKCjIwMTMtMDktMDYgMjM6MDM6NTQgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICB0ZXN0cy9jYXBzZmlsdGVyOiBUZXN0IGNhcHMtcmVsYXRlZCBxdWVyaWVzIGFuZCBwcm9wZXJ0eQoKMjAxMy0wOS0wNiAxNTowOTo0NiAtMDMwMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgVXBkYXRlIHRoZSBidWZmZXJpbmcgc3RhdGUgYmVmb3JlIHN0YWxsaW5nIGZvciBtb3JlIGRhdGEKCSAgSW4gc29tZSBjYXNlcyB0aGUgd2FpdCBmb3IgbW9yZSBkYXRhIHdhcyBoYXBwZW5pbmcgd2l0aG91dCB1cGRhdGluZwoJICB0aGUgYnVmZmVyaW5nIHN0YXRlLCBtZWFuaW5nIHRoZSBBUEkgdXNlciB3b3VsZCBub3QgYmUgYWJsZSB0byBub3RpY2UKCSAgaXQgc2hvdWxkIHBhdXNlIHRoZSBwaXBlbGluZSBhbmQgdXBkYXRlIFVJIHRvIGluZGljYXRlIHRoYXQgaXMgdGhlCgkgIGNhc2UsIHRoZSB2aWRlbyB3b3VsZCBsaWtlbHkgc3R1dHRlciBpbnN0ZWFkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3NjQ4CgoyMDEzLTA5LTA0IDE1OjI4OjEwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJlc2VydmUgc2VxbnVtIG9uIHNlZ21lbnRzIGFmdGVyIHNlZWtzCgkgIFRoZSBzZXFudW0gb2YgdGhlIHNlZ21lbnQgYWZ0ZXIgYSBzZWVrIHNob3VsZCBiZSB0aGUgc2FtZSBvZgoJICB0aGUgc2VlayBldmVudC4gRG93bnN0cmVhbSBlbGVtZW50cyBtaWdodCByZWx5IG9uIHNlcW51bXMgdG8KCSAgaWRlbnRpZnkgZXZlbnRzIHJlbGF0ZWQgdG8gYSBzZWVrLgoJICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgd2hlbiBhIGRlbXV4ZXIgbWFwcyBhIFRJTUUgc2VlawoJICBpbnRvIGEgQllURVMgc2VlayBmb3IgdXBzdHJlYW0gYW5kIGl0IG5lZWRzIHRvIGlkZW50aWZ5IHRoZQoJICBjb3JyZXNwb25kaW5nIHNlZ21lbnQgZXZlbnQgYW5kIG1hcCBpdCBiYWNrIGludG8gVElNRSB0byBwdXNoCgkgIGRvd25zdHJlYW0sIHBvc3NpYmx5IHVzaW5nIHRoZSB2YWx1ZXMgZnJvbSB0aGUgb3JpZ2luYWwgc2VlawoJICBldmVudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzUzMAoKMjAxMy0wOS0wNSAxNDoxNDo0MiArMDIwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVybWVyYWxpQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IERvbid0IHVucmVmIE5VTEwgR3N0Q29sbGVjdERhdGEKCSAgSWYgYSBwYWQgaXMgcmVtb3ZlZCB3aGlsZSBhIGNvbGxlY3RwYWRzIGVsZW1lbnQgKHNheSBhZGRlcikgaXMgaW4gYSBjaGFpbgoJICBmdW5jdGlvbiB3YWl0aW5nIHRvIGJlIGNvbGxlY3RlZCwgdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSB0aGF0IGFuIHVucmVmIGhhcHBlbnMKCSAgb24gYSBOVUxMIHBvaW50ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc1MzYKCjIwMTMtMDktMDQgMTc6MTE6MjAgKzAyMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luZy5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgUmVtb3ZlIFB5WE1MIGZyb20gc3BlYyBmaWxlLCBpdCBpcyBub3QgbG9uZ2VyIG5lZWRlZAoKMjAxMy0wOS0wNCAxNDo0MDo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEFkZCBtaXNzaW5nIGJyZWFrIGFmdGVyIGhhbmRsaW5nIHRoZSBHQVAgZXZlbnQKCSAgVGhhbmtzIHRvIEVkd2FyZCBIZXJ2ZXkgZm9yIG5vdGljaW5nLgoKMjAxMy0wOS0wNCAwOToxODo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgdG9vbHM6IG1vdmUgZ3N0LXBsb3QtdGltZWxpbmUucHkgaW50byBzY3JpcHRzIGRpcmVjdG9yeQoJICBTbyBpdCdzIG5vdCBpbiBQQVRIIGluIGFuIHVuaW5zdGFsbGVkIHNldHVwICh0aHdhcnRpbmcKCSAgZ3N0LXBsYXkgYXV0b2NvbXBsZXRpb24pLgoKMjAxMy0wOS0wMyAyMzo1OTowNSArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCByZWR1Y2Ugc2luZ2xlIHF1ZXVlIHZpc2libGUgc2l6ZSBiZWxvdyBpdHMgY3VycmVudCBsZXZlbAoJICBJZiB0aGUgbXVsdGlxdWV1ZSBoYXMgYXV0b21hdGljYWxseSBncm93biBjaGFuY2VzIGFyZSBnb29kIHRoYXQKCSAgd2Ugd2lsbCBjYXVzZSB0aGUgcGlwZWxpbmUgdG8gc3RhcnZlIGlmIHRoZSBtYXhpbXVtIGxldmVsIGlzIHJlZHVjZWQKCSAgYmVsb3cgdGhhdCBhdXRvbWF0aWNhbGx5IGdyb3duIHNpemUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcxNTYKCjIwMTMtMDktMDIgMTM6NTM6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IERvbid0IGFkanVzdCBzZWdtZW50LT5zdGFydCB0byB0aGUgY3VycmVudCB0aW1lIHdoZW4gc3dpdGNoaW5nIHBhZHMKCSAgVGhpcyBkb2VzIG5vdCBtYWtlIGFueSBzZW5zZSBhdCBhbGwgYW5kIGJyZWFrcyB0aW1lc3RhbXAtPnJ1bm5pbmdfdGltZQoJICBjYWxjdWxhdGlvbnMgaW4gdW5wcmVkaWN0YWJsZSB3YXlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MTMwCgoyMDEzLTA4LTI5IDIzOjE4OjMxICswMjAwICBNYXRoaWV1IER1cG9uY2hlbGxlIDxtYXRoaWV1LmR1cG9uY2hlbGxlQGVwaXRlY2guZXU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogRGVsZXRlIGxpbmsgZGlyZWN0bHkgaW4gcGVuZGluZ19ldmVudHMuCgkgIFdoZW4gcmVtb3ZpbmcgYSBzZWdtZW50IGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3MDg4CgoyMDEzLTA4LTI5IDExOjA3OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZGVtb3RlIGxvZyBtZXNzYWdlLCBkb24ndCBzcGFtIElORk8gbGV2ZWwgd2hlbiBoYW5kbGluZyBidWZmZXIgbGlzdHMKCjIwMTMtMDgtMjggMTM6MjY6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjQgPT09CgoyMDEzLTA4LTI4IDEyOjM2OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuNAoKMjAxMy0wOC0yOCAxMjozNjowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wOC0yOCAxMjozMDowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2hyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTMtMDgtMjcgMDk6MzE6MjIgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogcGxlYXNlIGdjYyAoYXZvaWQgYSB3YXJuX3VudXNlZF9yZXN1bHQgd2FybmluZykKCjIwMTMtMDgtMjcgMDc6NTE6MzUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICBmaWxlc2luazogZmx1c2ggKGRpc2NhcmQgZGF0YSkgb24gRkxVU0hfU1RPUAoJICBSZXNldCB0aGUgd3JpdGUgcG9zaXRpb24gdG8gMCBhbmQgdHJ1bmNhdGUgdGhlIGZpbGUgb24gRkxVU0hfU1RPUC4KCjIwMTMtMDgtMjcgMDc6MDU6MTEgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSAgdGVzdHM6IGZpbGVzaW5rOiBzbWFsbCByZWZhY3RvcmluZwoKMjAxMy0wOC0yNiAxMzoxOToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGdzdC1sYXVuY2g6IGRvbid0IHByaW50IHByb3BlcnRpZXMgYmVpbmcgcmVzZXQgd2hlbiBzaHV0dGluZyBkb3duCgkgIEl0J3MganVzdCBub2lzZS4KCjIwMTMtMDgtMjIgMTk6MDE6MzIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IHB1c2ggb3V0IGlkZW50aWNhbCBjYXBzCgkgIFRoaXMgYXZvaWRzIHRyaWdnZXJpbmcgcGxlbnR5IG9mIGV4dHJhIGNvZGUvbWV0aG9kcy9vdmVyaGVhZCBkb3duc3RyZWFtIHdoZW4KCSAgd2UgY2FuIGp1c3QgcXVpY2tseSBjaGVjayB3aGVuZXZlciB3ZSB3YW50IHRvIHNldCBjYXBzIHdoZXRoZXIgdGhleSBhcmUKCSAgaWRlbnRpY2FsIG9yIG5vdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NjAwCgoyMDEzLTA4LTIxIDEyOjIxOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBkb2NzOiBmbGVzaCBvdXQgZ3N0X3NhbXBsZV9nZXRfYnVmZmVyKCkgYSBsaXR0bGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjQ3OAoKMjAxMy0wOC0yMCAyMzo1OToyOSAtMDcwMCAgS2VycmljayBTdGFsZXkgPGtlcnJpY2tAa2Vycmlja3N0YWxleS5jb20+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogbWFrZSBncmFtbWFyLnkgd29yayB3aXRoIEJpc29uIDMKCSAgWVlMRVhfUEFSQU0gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBpbiBCaXNvbiAzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NDYyCgoyMDEzLTA4LTIwIDE3OjE1OjQxICswOTAwICBXb25jaHVsIExlZSA8Y2h1bDA4MTJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJICBzYW1wbGU6IEFkZCBnc3Rfc2FtcGxlX2NvcHkoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NDU0CgoyMDEzLTA4LTE5IDE0OjU1OjIyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IGdzdF9idWZmZXJfbWVtY21wKCkgd2hlcmUgdGhlIGJ1ZmZlciBpcyBzbWFsbGVyIHRoYW4gc2l6ZQoJICBBbHNvIGFkZCB1bml0IHRlc3RzIGZvciBnc3RfYnVmZmVyX21lbWNtcAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2MTYyCgoyMDEzLTA4LTIwIDE3OjA2OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGZsZXNoIG91dCBnc3RfZWxlbWVudF9xdWVyeV97ZHVyYXRpb24scG9zaXRpb259IGRvY3MgYSBiaXQKCjIwMTMtMDgtMTQgMTY6MTg6NTkgKzAxMDAgIE1hdHRoaWV1IEJvdXJvbiA8bWF0dGhpZXUuYm91cm9uQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBoYW5kbGUgcHVibGlzaGVyIGFuZCBpbnRlcnByZXRlZC1ieSB0YWdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU5OTkKCjIwMTMtMDgtMjAgMTM6NTg6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBEb24ndCBjYWxsIG1lbWNweSgpIHdpdGggTlVMTCBzcmMgYW5kIDAgbGVuZ3RoCgoyMDEzLTA4LTIwIDEwOjE2OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBQcm9wZXJseSB1bmxvY2sgdGhlIHNpbmtwYWQgc3RyZWFtaW5nIHRocmVhZCB3aGVuIGRlYWN0aXZhdGluZyB0aGUgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU4MzUKCjIwMTMtMDgtMjAgMTA6MTY6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUHJvcGVybHkgdW5sb2NrIHRoZSBzaW5rcGFkIHN0cmVhbWluZyB0aHJlYWQgd2hlbiBkZWFjdGl2YXRpbmcgdGhlIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2MzYwCgoyMDEzLTA4LTE5IDE2OjM4OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQ2xlYW4gdXAgYWZ0ZXIgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIHN0b3BwZWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTgzNQoKMjAxMy0wOC0xOSAxNjozODo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBDbGVhbiB1cCBhZnRlciB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgc3RvcHBlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1ODM1CgoyMDEzLTA4LTE5IDE2OjM4OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBDbGVhbiB1cCBhZnRlciB0aGUgc3RyZWFtaW5nIHRocmVhZCBoYXMgc3RvcHBlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1ODM1CgoyMDEzLTA3LTAxIDE0OjA0OjQ2IC0wNjAwICBCcmVuZGFuIExvbmcgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogQWRkIEdTVF9GTEFHX05PX1NJTkdMRV9FTEVNRU5UX0JJTlMKCSAgVGhpcyBtYWtlcyBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSByZXR1cm4gYW4gZWxlbWVudCBpbnN0ZWFkIG9mCgkgIGEgYmluIGlmIHRoZXJlJ3Mgb25seSBvbmUgZWxlbWVudC4gQWxzbyBjaGFuZ2VkIGdzdHBhcnNlLmMgdG8gdXNlIHRoaXMsCgkgIHNvIGdzdC1sYXVuY2ggd29uJ3QgY3JlYXRlIHN1cGVyZmx1b3VzIGJpbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDM0MDUKCjIwMTMtMDgtMTYgMjA6MzY6NTMgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiByZXR1cm4gTlVMTCB3aGVuIHBhcnNpbmcgdXJpIHJlZGlyZWN0aW9uIHRoYXQgd2FzIG5vdCBzZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjE2MAoKMjAxMy0wOC0xOCAxMTo0ODo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IFVwZGF0ZSBzaW5jZSBtYXJrZXIgZm9yIGdzdF9idWZmZXJfZXh0cmFjdF9kdXAoKSB0byAxLjAuMTAKCjIwMTMtMDgtMTYgMTY6NDU6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IGNyYXNoIG9uIEVPUyBpZiBxdWV1ZSBpcyBlbXB0eQoJICBGaXhlcyBzcHVyaW91cyBjcmFzaCBpbiB0ZXN0X3NpbXBsZV9zaHV0ZG93bl93aGlsZV9ydW5uaW5nCgkgIHVuaXQgdGVzdC4KCjIwMTMtMDgtMTYgMTY6Mjg6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IGNoYW5nZSBnbG9iYWwgYnVmZmVyaW5nIHN0YXRlIGZyb20gd2l0aGluIHF1ZXJ5IGhhbmRsZXIKCSAgV2hlbiBhIGJ1ZmZlcmluZyBxdWVyeSBpcyBoYW5kbGVkIGl0IHVzZXMgdGhlIGdldF9idWZmZXJpbmdfcGVyY2VudCgpCgkgIGZ1bmN0aW9uIHRvIGdldCBzb21lIHN0YXRpdGljcy4gVW5mb3J0dW5hdGVseSB0aGlzIGZ1bmN0aW9uIGFsc28KCSAgY2FsY3VsYXRlcyB3aGV0aGVyIHRoZSBxdWV1ZSBzaG91bGQgYmUgYnVmZmVyaW5nIGFuZCBhZGFwdHMgdGhlCgkgIGdsb2JhbCBxdWV1ZTIgc3RhdGUgaW4gY2FzZSBvZiBzdGF0ZSB0cmFuc2l0aW9ucyBmcm9tL3RvIGJ1ZmZlcmluZwoJICAoaW5jbHVkaW5nIHdoZXRoZXIgYSBidWZmZXJpbmcgbWVzc2FnZSB3YXMgcG9zdGVkIG9uIHRoZSBidXMhKS4KCSAgVGhpcyBtZWFucyB0aGF0IHRoZXJlIGlzIGEgcmFjZSB3aGljaCBjYW4gY2F1c2UgYnVmZmVyaW5nIG1lc3NhZ2VzCgkgIHRvIG5ldmVyIHBvc3RlZCBpZiB0aGUgZ2xvYmFsIHN0YXRlIGNoYW5nZXMgaGFwcGVuIGFzIGEgcmVzdWx0IG9mIGFhCgkgIHF1ZXJ5IGluc3RlYWQgb2YgcmVzdWx0aW5nIGZyb20gYnl0ZXMgZmxvd2luZyBpbi9vdXQuCgkgIFNwb3R0ZWQgYnkgU2pvZXJkIFNpbW9ucy4KCSAgQ2hhbmdlIHRvIG9ubHkgcXVlcnkgc3RhdGUgaW4gZ2V0X2J1ZmZlcmluZ19wZXJjZW50KCkgYW5kIHVwZGF0ZQoJICBzdGF0ZSBvbmx5IGluIHVwZGF0ZV9idWZmZXJpbmcoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTMzMgoKMjAxMy0wOC0xNiAxMjo1NDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdXBkYXRlIGJ1ZmZlcmluZyB3aGVuIGNoYW5naW5nIGNhcGFjaXR5CgkgIFdoZW4gdGhlIGNhcGFjaXR5IG9mIHRoZSBxdWV1ZSBjaGFuZ2VzLCBtYWtlIHN1cmUgd2UgcG9zdCBhbiB1cGRhdGVkIGJ1ZmZlcmluZwoJICBtZXNzYWdlIGJlY2F1c2Ugd2UgbWlnaHQgc3VkZGVubHkgaGF2ZSBjb21wbGV0ZWQgdGhlIGJ1ZmZlcmluZyBzdGFnZS4KCjIwMTMtMDgtMTUgMTU6MzU6MDggKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBGcmVlIHRocmVhZCBwb29scyBpbiBnc3RfZGVpbml0KCkKCjIwMTMtMDgtMTYgMTE6MDM6MzAgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IENhbGwgZ3N0X2RlaW5pdCgpIGF0IGV4aXQgb2YgYWxsIHByb2Nlc3NlcwoKMjAxMy0wOC0xNCAyMTo0MToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogc2ltcGxpZnkgaW50ZXJuYWwgZ3N0X2Nsb2NrX3JldHVybl9nZXRfbmFtZSgpIGhlbHBlcgoKMjAxMy0wOC0xNCAxNzo0NDo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXByb3ZlIGZsdXNoLXN0YXJ0IGhhbmRsaW5nCgkgIFVzZSBjdXN0b20gY29kZSB0byBpbXBsZW1lbnQgZmx1c2gtc3RvcCwgd2UgY2FuJ3QgcmV1c2UgdGhlIHNldF9mbHVzaGluZyBjb2RlCgkgIGJlY2F1c2Ugd2UgY2FuJ3QgdG91Y2ggdGhlIGxpdmVfcGxheWluZyBmbGFnIGFuZCB3ZSBuZWVkIHRvIHNpZ25hbCB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZC4KCjIwMTMtMDgtMTQgMTc6MTQ6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogc3RvcCBmbHVzaGluZyBpbiBmbHVzaC1zdG9wCgoyMDEzLTA4LTE0IDE2OjU4OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBmbHVzaCBiZXR0ZXIKCSAgVW5sb2NrIHRoZSBzdHJlYW1pbmcgdGhyZWFkIHdoZW4gZmx1c2hpbmcgc28gdGhhdCB3ZSBjYW4KCSAgaW5zZXJ0IHRoZSBmbHVzaC1zdG9wIGNvcnJlY3RseS4KCjIwMTMtMDgtMTQgMTU6NDY6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogaWdub3JlIC5kaXJzdGFtcAoKMjAxMy0wOC0xNCAwNzoyMTowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IERvbid0IHVzZSBub2Rpc3QgaGVhZGVycyBvbiBnaXIgc2Nhbm5lcgoJICBKdXN0IGNyZWF0ZXMgbm9pc2UgYW5kIGJvZ3VzIHN5bWJvbHMKCjIwMTMtMDgtMDcgMTg6MjA6MDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3Q6IG1pbm9yIGRvY3N0cmluZyBmaXh1cHMgdG8gbWFrZSBnLWkgaGFwcHkKCSAgbm90ZTogdGhlICNpZm5kZWYgbW92ZSBpcyBhY3R1YWxseSBhIG1vdmUgb2YgdGhlICJTRUNUSU9OIiBkb2NzdHJpbmcKCjIwMTMtMDgtMTMgMTc6MTQ6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogLmdpdGlnbm9yZToKCSAgLmdpdGlnbm9yZTogSWdub3JlIGZpbGVzIGZyb20gYXV0b21ha2UgdGVzdC1kcml2ZXIKCjIwMTMtMDgtMDcgMTg6MjQ6NDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBZGQgYSBwcm9wZXJ0eSB0byBkaXNhYmxlIHBhc3N0aHJvdWdoCgkgIEluIHNvbWUgc3BlY2lmaWMgY2FzZXMgKGxpa2UgdHJhbnNtdXhpbmcpIHdlIHdhbnQgdG8gZm9yY2UgdGhlIGVsZW1lbnQKCSAgdG8gYWN0dWFsbHkgcGFyc2UgYWxsIGluY29taW5nIGRhdGEgZXZlbiBpZiB0aGUgZWxlbWVudCBkZWVtcyBpdCBpcyBub3QKCSAgbmVjZXNzYXJ5LgoJICBUaGlzIHByb3BlcnR5IHNpbXBseSBpZ25vcmVzIHJlcXVlc3RzIGZyb20gdGhlIGVsZW1lbnQgdG8gZW5hYmxlIHBhc3N0aHJvdWdoCgkgIG1vZGUgd2hpY2ggcmVzdWx0cyBpbiBwcm9jZXNzaW5nIGFsd2F5cyBiZWluZyBlbmFibGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NjIxCgoyMDEzLTA4LTA3IDIxOjI2OjAxIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRhdGFxdWV1ZTogYWRkIGdzdF9kYXRhX3F1ZXVlX3B1c2hfZm9yY2UKCSAgQWRkcyBhIHZhcmlhbnQgb2YgdGhlIF9wdXNoIGZ1bmN0aW9uIHRoYXQgZG9lc24ndCBjaGVjayB0aGUgcXVldWUgbGltaXRzCgkgIGJlZm9yZSBhZGRpbmcgdGhlIG5ldyBpdGVtLiBJdCBpcyB1c2VmdWwgd2hlbiBwdXNoaW5nIGFuIGVsZW1lbnQgdG8gdGhlCgkgIHF1ZXVlIHNob3VsZG4ndCBsb2NrIHRoZSB0aHJlYWQuCgkgIE9uZSBwYXJ0aWN1bGFyIHNjZW5hcmlvIGlzIHdoZW4gdGhlIHF1ZXVlIGlzIHVzZWQgdG8gc2VyaWFsaXplIGJ1ZmZlcnMKCSAgYW5kIGV2ZW50cyB0aGF0IGFyZSBnb2luZyB0byBiZSBwdXNoZWQgZnJvbSBhbm90aGVyIHRocmVhZC4gVGhlCgkgIGRhdGFxdWV1ZSBzaG91bGQgaGF2ZSBhIGxpbWl0IG9uIHRoZSBhbW91bnQgb2YgYnVmZmVycyB0byBiZSBzdG9yZWQgdG8KCSAgYXZvaWQgbGFyZ2UgbWVtb3J5IGNvbnN1bXB0aW9uLCBidXQgZXZlbnRzIGNhbiBiZSBjb25zaWRlcmVkIHRvIGhhdmUKCSAgbmVnbGlnaWJsZSBpbXBhY3Qgb24gbWVtb3J5IGNvbXBhcmVkIHRvIGJ1ZmZlcnMuIFNvIGl0IGlzIHVzZWZ1bCB0byBiZQoJICB1c2VkIHRvIHB1c2ggaXRlbXMgaW50byB0aGUgcXVldWUgdGhhdCBjb250YWluIGV2ZW50cywgZXZlbiB0aG91Z2ggdGhlCgkgIHF1ZXVlIGlzIGFscmVhZHkgZnVsbCwgaXQgc2hvdWxkbid0IG1hdHRlciBpbnNlcnRpbmcgYW4gaXRlbSB0aGF0IGhhcwoJICBubyBzaWduaWZpY2F0aXZlIHNpemUuCgkgIFRoaXMgc2NlbmFyaW8gaGFwcGVucyBvbiBhZGFwdGl2ZSBlbGVtZW50cyAoZGFzaGRlbXV4IC8gbXNzZGVtdXgpIGFzCgkgIHRoZXJlIGlzIGEgc2luZ2xlIGRvd25sb2FkIHRocmVhZCBmZXRjaGluZyBidWZmZXJzIGFuZCBwdXR0aW5nIGludG8gdGhlCgkgIGRhdGFxdWV1ZXMgZm9yIHRoZSBzdHJlYW1zLiBUaGlzIHNhbWUgZG93bmxvYWQgdGhyZWFkIGNhbiBhbHMgZ2VuZXJhdGUKCSAgZXZlbnRzIGluIHNvbWUgc2l0dWF0aW9ucyBhcyBjYXBzIGNoYW5nZXMsIGVvcyBvciBhIGludGVybmFsIGNvbnRyb2wKCSAgZXZlbnRzLiBUaGVyZSBjYW4gYmUgYSBkZWFkbG9jayBhdCBwcmVyb2xsIGlmIHRoZSBmaXJzdCBidWZmZXIgZmV0Y2hlZAoJICBpcyBsYXJnZSBlbm91Z2ggdG8gZmlsbCB0aGUgZGF0YXF1ZXVlIGFuZCB0aGUgZG93bmxvYWQgdGhyZWFkIGFuZCB0aGUKCSAgbmV4dCBpdGVyYXRpb24gb2YgdGhlIGRvd25sb2FkIHRocmVhZCBkZWNpZGVzIHRvIHB1c2ggYW4gZXZlbnQgdG8gdGhpcwoJICBzYW1lIGRhdGFxdWV1ZSBiZWZvcmUgZmV0Y2hpbmcgYnVmZmVycyB0byBvdGhlciBzdHJlYW1zLCBpZiB0aGlzIHB1c2gKCSAgbG9ja3MsIHRoZSBwaXBlbGluZSB3aWxsIGJlIHN0dWNrIGluIHByZXJvbGwgYXMgbm8gbW9yZSBidWZmZXJzIHdpbGwgYmUKCSAgZG93bmxvYWRlZC4KCSAgVGhlcmUgaXMgYSBzb21ld2hhdCBjb21tb24gcHJhY3RpY2UgaW4gZGFzaCBzdHJlYW1zIHRvIGhhdmUgYSBzaW5nbGUKCSAgdmVyeSBsYXJnZSBidWZmZXIgZm9yIGF1ZGlvIGFuZCBvbmUgZm9yIHZpZGVvLCBzbyB0aGlzIHdpbGwgYWx3YXlzCgkgIGhhcHBlbiBhcyB0aGUgZG93bmxvYWQgdGhyZWFkIHdpbGwgaGF2ZSB0byBwdXNoIGFuIEVPUyByaWdodCBhZnRlcgoJICBmZXRjaGluZyB0aGUgZmlyc3QgYnVmZmVyIGZvciBhbnkgc3RyZWFtLgoJICBBUEk6IGdzdF9kYXRhX3F1ZXVlX3B1c2hfZm9yY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTY5NAoKMjAxMy0wOC0xMyAxMzowNjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBzeXNtZW06IE9ubHkgY29weSB0aGUgcmVxdWVzdGVkIHBhcnQgb2YgbWVtb3J5IGluc3RlYWQgb2YgdGhlIGNvbXBsZXRlIHNvdXJjZSBtZW1vcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTY3OAoKMjAxMy0wOC0xMyAxMjoxMToxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IGFkZCBTaW5jZSBtYXJrZXJzIGZvciBuZXcgQVBJIGFuZCBhZGQgdG8gZXhwb3J0cyBmaWxlCgoyMDEzLTA3LTIzIDE2OjI1OjI3ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggYW5ub3RhdGlvbiBmb3IgZ3N0X3F1ZXJ5X3BhcnNlX3VyaQoKMjAxMy0wNC0xOSAxMjoxNDo1NCArMDIwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIG5ldyByZWRpcmVjdGlvbiB1cmkgdGhlIFVSSSBxdWVyeQoKMjAxMy0wOC0xMiAwOToyNTozNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBhZGQgc29tZSBtaXNzaW5nICd0cmFuc2ZlciBub25lJyBnaSBhbm5vdGF0aW9ucwoJICBUaGUgY3VycmVudCBkb2N1bWVudGF0aW9uIGlzIGNvbnRyb3ZlcnNlLCB3aGlsZSBpdCBzdGF0ZXMgdGhhdCB0aGUKCSAgcmV0dXJuZWQgdmFsdWUgaXMgdmFsaWQgb25seSB3aGlsZSB0aGUgcXVlcnkgaXMgaXMgdmFsaWQsIHdoaWNoIHByZXN1bWVzCgkgIGEgJ3RyYW5zZmVyIG5vbmUnIHBvbGljeS4gQnV0IHRoZSB0b29sdGlwIGZvciB0aGUgJ291dCcgYW5ub3RhdGlvbgoJICBzdGF0ZXMgdGhlIGRlZmF1bHQgaXMgJ3RyYW5zZmVyLWZ1bGwnLgoJICBBZGQgdGhlIG1pc3NpbmcgJ3RyYW5zZmVyIG5vbmUnIGFubm90YXRpb25zIHRvIGZpeCB0aGlzLgoKMjAxMy0wOC0wOCAxMjowODozMSArMDIwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IEFjY2VsZXJhdGUgTVBFRy9IMjY0IHN0YXJ0IGNvZGUgc2Nhbm5pbmcKCSAgQWNjZWxlcmF0ZSBNUEVHL0gyNjQgc3RhcnQgY29kZSBzY2FubmluZyB1c2luZyBCb3llci1Nb29yIGJhZCBjaGFyYWN0ZXIKCSAgaGV1cmlzdGljLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyMzU3CgoyMDEzLTA4LTEwIDExOjMxOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBnLWk6IGFsbG93IGNsb2NrIHRvIGJlIE5VTEwgaW4gZ3N0X3BpcGVsaW5lX3VzZV9jbG9jaygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU3NTEKCjIwMTMtMDgtMDcgMTQ6MTc6MjggLTAzMDAgIEFkcmlhbiBQYXJkaW5pIDxwdWJsaWNvQHRhbmdvcGFyZG8uY29tLmFyPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sbGVyOiBmaXhlcyBpbnQgb3ZlcmZsb3cgd2l0aCBwcm9wZXJ0aWVzIHRoYXQgc3BhbiArLUlOVF9NQVgKCSAgV2hlbiB0aGUgcmFuZ2UgZm9yIGEgcHJvcGVydHkgaXMgZGVmaW5lZCBhcyAtSU5UX01BWC0xIC4uIElOVF9NQVgsIGxpa2UKCSAgdGhlIHhwb3MgaW4gYSB2aWRlb21peGVyIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBpbiB0aGUgbWFjcm8KCSAgZGVmaW5pdGlvbnMgb2YgY29udmVydF9nX3ZhbHVlX3RvXyMjdHlwZSAoYW5kIHRoZSBlcXVpdmFsZW50IGluCgkgIGNvbnZlcnRfdmFsdWVfdG9fIyN0eXBlKQoJICB2ID0gcHNwZWMtPm1pbmltdW0gKyAoZyMjdHlwZSkgUk9VTkRJTkdfT1AgKChwc3BlYy0+bWF4aW11bSAtIHBzcGVjLT5taW5pbXVtKSAqIHMpOwoJICBhcmUgY29udmVydGVkIHRvOgoJICB2ID0gLTIxNDc0ODM2NDggKyAoZyMjdHlwZSkgUk9VTkRJTkdfT1AgKCgyMTQ3NDgzNjQ3IC0gLTIxNDc0ODM2NDgpICogcyk7CgkgICgyMTQ3NDgzNjQ3IC0gLTIxNDc0ODM2NDgpIG92ZXJmbG93cyB0byAtMSBhbmQgdGhlIG5ldCByZXN1bHQgaXM6CgkgIHYgPSAtMjE0NzQ4MzY0OCArIChnIyN0eXBlKSBST1VORElOR19PUCAoLTEgKiBzKTsKCSAgc28gdiBvbmx5IHRha2VzIHRoZSB2YWx1ZXMgLTIxNDc0ODM2NDggZm9yIHMgPT0gMCBhbmQgMjE0NzQ4MzY0NwoJICBmb3IgcyA9PSAxLgoJICBSZXdyaXRpbmcgdGhlIGV4cHJlc3Npb24gYXMgbWluaW11bSooMS1zKSArIG1heGltdW0qcyBnaXZlcyB0aGUgY29ycmVjdAoJICByZXN1bHQgaW4gdGhpcyBjYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy8vc2hvd19idWcuY2dpP2lkPTcwNTYzMAoKMjAxMy0wOC0wMiAxMzozMTo1OSArMDIwMCAgTHVib3N6IFNhcm5lY2tpIDxsdWJvc3pAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogYWRkIHN1YmRpci1vYmplY3RzIHRvIEFNX0lOSVRfQVVUT01BS0UKCSAgRml4ZXMgd2FybmluZ3Mgd2l0aCBhdXRvbWFrZSAxLjE0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDUzNTAKCjIwMTMtMDgtMDIgMTY6MjE6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgZGVzaWduOiBmaXggdHlwbwoKMjAxMy0wNy0yOSAxNTo0ODozMiArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBiYWNrd2FyZHMgc2Vla3MgaW50byB1bmRvd2xvYWRlZCByYW5nZXMKCSAgV2hlbiBpbiBkb3dubG9hZCBidWZmZXJpbmcgbW9kZSBxdWV1ZTIgZGlkbid0IGNoZWNrIGlmIGEgcmFuZ2Ugb2Zmc2V0IGlzCgkgIGluIGEgdW5kb3dubG9hZGVkIHJhbmdlIGJlZm9yZSB0aGUgY3VycmVudGx5IGluLXByb2dyZXNzIHJhbmdlLiBDYXVzaW5nCgkgIHNlZWtzIHRvIGFuIGVhcmxpZXIgb2Zmc2V0IHRvLCB3ZWxsLCB0YWtlIGEgd2hpbGUuCgoyMDEzLTA3LTMwIDE5OjI3OjIzICswMjAwICBLamFydGFuIE1hcmFhcyA8a21hcmFhc0Bnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIGRvY3M6IHNvbWUgc21hbGwgZ3RrLWRvYyBtYXJrdXAgZml4ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTE1NgoKMjAxMy0wNy0zMCAxOToyNzoyMyArMDIwMCAgS2phcnRhbiBNYXJhYXMgPGttYXJhYXNAZ25vbWUub3JnPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZ2lzdGVyIG5ldyBjb2xvciBtb2RlIGVudW0sIGZpeGluZyAnbWFrZSBjaGVjaycKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTE1NgoKMjAxMy0wNC0xNiAxOTowNDo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBBdm9pZCB1c2luZyBidWZmZXJfZ2V0X3NpemUgaW4gdGlnaHQgbG9vcHMKCSAgQ2FsbGluZyBnc3RfYnVmZmVyX2dldF9zaXplIHJlcHJlc2VudGVkIDIvMyBvZiB0aGUgY29zdCBvZiBoZWxwZXJfZmluZF9wZWVrCgkgIHdoaWNoIHdhcyBjYWxsZWQgd2hlbmV2ZXIgYSB0eXBlZmluZGZ1bmN0aW9uIHdhbnRlZCB0byBwZWVrIGF0IGRhdGEuCgkgIFdlIGFscmVhZHkga25vdyB0aGUgc2l6ZSAoZnJvbSB0aGUgR3N0TWFwSW5mbyksIHNvIGp1c3QgdXNlIHRoYXQuCgoyMDEzLTA3LTI5IDE5OjM4OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcG8vTElOR1VBUzoKCSogcG8vYmcucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2x0LnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2wucG86CgkqIHBvL3N2LnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMy0wNy0yOSAxOToxMzowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiByZXZlcnQgYWNjaWRlbnRhbCByZS13aW5kaW5nIG9mIGNvbW1vbiBzdWJtb2R1bGUKCjIwMTMtMDctMjYgMTY6MTU6MjQgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBDbGFyaWZ5IHRoZSBlc3RpbWF0ZWQtdG90YWwgZG9jdW1lbnRhdGlvbgoJICBUd2VhayB0aGUgZG9jdW1lbnRhdGlvbiBzbGlnaHRseSB0byBjbGFyaWZ5IHRoYXQgdGhlIGVzdGltYXRlZC10b3RhbCBpbgoJICBhIGEgQnVmZmVyaW5nIHF1ZXJ5IHRoZSB0b3RhbCByZW1haW5pbmcgdGltZSBvZiBhIGRvd25sb2FkLCBub3QgdGhlCgkgIHRvdGFsIHRpbWUgZm9yIHRoZSBjb21wbGV0ZSBkb3dubG9hZC4gQWxzbyBpbmRpY2F0ZSB0aGUgdW5pdCB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0OTM0CgoyMDEzLTA3LTI2IDE1OjA4OjEzICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRm9yd2FyZCB0aGUgc2NoZWR1bGUgcXVlcnkgdXBzdHJlYW0KCSAgV2hlbiBhc2tlZCBhYm91dCB0aGUgc2NoZWR1bGluZyBmbGFncyBmaXJzdCBjaGVjayB3aXRoIHVwc3RyZWFtIGFuZAoJICBzaW1wbHkgYWRkIHRoZSBfU0VFS0FCTEUgZmxhZyB3aGVuIHVzaW5nIGEgdGVtcG9yYXJ5IGZpbGUgYXMgc3RvcmFnZS4KCSAgVGhpcyBlbmFibGVzIHRoZSBmb3J3YXJkaW5nIG9mIF9TRVFVRU5USUFMIGFuZCBfQkFORFdJRFRIX0xJTUlURUQgZnJvbQoJICBzb3VyY2VzIGlmIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDkyNwoKMjAxMy0wNy0yOSAxNDo0NzoxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjEuMyA9PT0KCjIwMTMtMDctMjkgMTM6MzQ6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjEuMwoKMjAxMy0wNy0yOSAxMzozMDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEzLTA3LTI5IDEyOjEwOjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlOiBGaXggaGFuZGxpbmcgb2YgU0VHTUVOVCBxdWVyeQoJICBUaGUgdmFsdWVzIHNob3VsZCBiZSBpbiBzdHJlYW0tdGltZSwgYW5kIHN0YXJ0L3N0b3Agc2hvdWxkIG5vdAoJICBiZSBzd2FwcGVkIGZvciBuZWdhdGl2ZSByYXRlcy4KCjIwMTMtMDctMjkgMTE6MDU6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBPbmx5IGFkdmFuY2Ugb2Zmc2V0IGJ5IHRoZSBudW1iZXIgb2YgYnl0ZXMgd2UgYWN0dWFsbHkgcmVhZAoJICBUaGVyZSBtaWdodCBiZSBhIHNob3J0IHJlYWQgYXQgRU9TLgoKMjAxMy0wNy0yOSAxMDo0ODozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBJbXBsZW1lbnQgU0VHTUVOVCBxdWVyeQoKMjAxMy0wNy0yNiAxODozNjowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggU2luY2U6IG1hcmtlciBmb3IgbmV3IGdzdF9idWZmZXJfZXh0cmFjdF9kdXAoKQoKMjAxMy0wNy0yNiAxMjoxOTozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogZGVidWcgdGhlIGNsb2NrIHJldHVybiB2YWx1ZXMKCjIwMTMtMDctMjUgMTI6MjA6MTQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHNlcW51bSBoYW5kbGluZyBmb3Igc2Vla3MKCSAgVXNlIHRoZSBzYW1lIHNlcW51bSBhcyB0aGUgc2VlayBmb3IgZmx1c2hlcy9zZWdtZW50cyB0aGF0IGFyZQoJICBjYXVzZWQgYnkgdGhlIHNlZWsuIEFsc28gZG8gdGhlIHNhbWUgZm9yIHNlZ21lbnQgZXZlbnRzCgkgIEZpeGVzICM2NzYyNDIKCjIwMTMtMDctMjQgMTA6Mjk6MzAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcGFyc2UgZGVidWcgbGV2ZWxzID4gOQoKMjAxMy0wNy0yNCAxNjo1Nzo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBGaXggY29weSZwYXN0ZSBtaXN0YWtlcyBpbiB0aGUgYml0bWFzayBmdW5jdGlvbiBkb2NzCgoyMDEzLTA3LTI0IDExOjIxOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBEb24ndCBzaGFkb3cgdmFyaWFibGVzIHRoYXQgYXJlIHNldCBpbnNpZGUgb3VyIHNjb3BlIGFuZCB0aGVuIHVzZWQgb3V0c2lkZSBvdXIgc2NvcGUKCSAgRml4ZXMgdW5pbml0aWFsaXplZCB1c2Ugb2YgdGhlc2UgdmFyaWFibGVzLgoKMjAxMy0wNy0yNCAxMDozMDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODZ3Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBSZW1vdmUgb3RoZXIgaW50ZXJmYWNlIHN0cnVjdHMgZnJvbSB0aGUgQUJJIHRlc3RzIHRvbwoKMjAxMC0xMC0xNSAxMzoxNjo1OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4NncuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IFJlbW92ZSBHc3RUYWdTZXR0ZXIgZnJvbSBBQkkgY2hlY2tzCgkgIEludGVyZmFjZXMgY2FuIGhhdmUgbmV3IG1lbWJlcnMgYWRkZWQgd2l0aG91dCBicmVha2luZyBBQkksIHNvCgkgIHJlbW92ZSBpdCBmcm9tIHRoZSBjaGVjay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzc5OQoKMjAxMy0wNy0yMyAxNTozOTo1MyAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSAgbGliY2hlY2s6IEVzY2FwZSBzdHJpbmdzIGluIHRoZSBnZW5lcmF0ZWQgeG1sIGZpbGVzCgkgIFRoaXMgaXMgY29weSBwYXN0ZWQgZnJvbSB1cHN0cmVhbSBsaWJjaGVjawoKMjAxMy0wNy0yMyAxODo1Mzo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUHJpbnQgc29tZSBkZWJ1ZyBvdXRwdXQgaWYgYSBzdHJlYW0tc3RhcnQgZXZlbnQgd2l0aG91dCBncm91cC1pZCBhcnJpdmVzCgkgIElkZWFsbHkgYWxsIGVsZW1lbnRzIHdvdWxkIGltcGxlbWVudCBoYW5kbGluZyBvZiB0aGF0IHRvIGdldCBwcm9wZXIKCSAgc3RyZWFtLXN0YXJ0IG1lc3NhZ2UgaGFuZGxpbmcgYW5kIG90aGVyIHRoaW5ncy4KCjIwMTMtMDctMjIgMTg6MDM6MDEgKzAyMDAgIEFybmF1ZCBWcmFjIDxhdnJhY0BmcmVlYm94LmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBGaXggbWlzc2luZyBwYWQgYWN0aXZhdGlvbiBub3RpZmljYXRpb24KCSAgQSBuZXcgYWN0aXZlIHBhZCBtaWdodCBub3QgYmUgbm90aWZpZWQgaW4gc29tZSBjYXNlcywgd2hpY2ggcmVzdWx0cwoJICBpbiB0aGUgY3VycmVudCB0cmFjayBudW1iZXIgbm90IGJlaW5nIHNldCBpbiBwbGF5YmluLgoJICBUaGUgYWN0aXZlLXBhZCBub3RpZmljYXRpb24gaXMgb25seSBzZW50IGluIHRoZSBjaGFpbiBhbmQgc2lua19ldmVudAoJICBmdW5jdGlvbnMsIGFuZCBvbmx5IHdoZW4gdGhlIGJ1ZmZlciBvciBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgYWN0aXZlCgkgIHBhZCBzZWxlY3Rpb24gaXMgZnJvbSB0aGUgbmV3bHkgYWN0aXZhdGVkIHBhZC4gU28gaW4gdGhlIG90aGVyIGNhc2UKCSAgdGhlIG5vdGlmaWNhdGlvbiB3aWxsIG5ldmVyIGJlIHNlbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ2OTEKCjIwMTMtMDctMjIgMTc6MjU6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBoYW5kbGUgZGVzZXJpYWxpc2F0aW9uIG9mIG5vbmV4aXN0YW50IGVudW0gdmFsdWUgbW9yZSBncmFjZWZ1bGx5CgoyMDEzLTA3LTIyIDE0OjEyOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IHB1c2ggbmV3IHN0cmVhbS1zdGFydCBldmVudHMgb24gc3RyZWFtIGNoYW5nZSB1bmxlc3MgdGhleSBhbGwgaGF2ZSBncm91cCBpZHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDQwOAoKMjAxMy0wNy0yMiAxMjowNjoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFVzZSBuZXcgZ3JvdXAtaWQgaW4gc3RyZWFtLXN0YXJ0IGV2ZW50CgoyMDEzLTA3LTIyIDEyOjA2OjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlOiBVc2UgbmV3IGdyb3VwLWlkIGZpZWxkIGluIHN0cmVhbS1zdGFydCBldmVudCBhbmQgbWVzc2FnZQoKMjAxMy0wNy0yMiAxMTo0MjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IFVzZSB0aGUgbmV3IGdyb3VwLWlkIGZpZWxkIG9mIHRoZSBzdHJlYW0tc3RhcnQgbWVzc2FnZSBmb3Igc3RyZWFtLXN0YXJ0IG1lc3NhZ2UgYWdncmVnYXRpb24KCSAgSWYgYWxsIHN0cmVhbS1zdGFydCBtZXNzYWdlcyBoYWQgYSBncm91cCBpZCAoZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KSwKCSAgd2Ugb25seSBjb25zaWRlciBhIHN0cmVhbSBzdGFydGVkIGlmIGFsbCBoYWQgdGhlIHNhbWUgZ3JvdXAgaWQuCgkgIEluIDIuMCB3ZSBzaG91bGQgbWFrZSB0aGUgZ3JvdXAgaWQgbWFuZGF0b3J5LgoKMjAxMy0wNy0yMiAxMTo0MTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogQWRkIG5ldyBncm91cC1pZCBmaWVsZCB0byB0aGUgc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIEFsbCBzdHJlYW1zIHRoYXQgaGF2ZSB0aGUgc2FtZSBncm91cCBpZCBhcmUgc3VwcG9zZWQgdG8gYmUgcGxheWVkCgkgIHRvZ2V0aGVyLCBpLmUuIGFsbCBzdHJlYW1zIGluc2lkZSBhIGNvbnRhaW5lciBmaWxlIHNob3VsZCBoYXZlIHRoZQoJICBzYW1lIGdyb3VwIGlkIGJ1dCBkaWZmZXJlbnQgc3RyZWFtIGlkcy4gVGhlIGdyb3VwIGlkIHNob3VsZCBjaGFuZ2UKCSAgZWFjaCB0aW1lIHRoZSBzdHJlYW0gaXMgc3RhcnRlZCwgcmVzdWx0aW5nIGluIGRpZmZlcmVudCBncm91cCBpZHMKCSAgZWFjaCB0aW1lIGEgZmlsZSBpcyBwbGF5ZWQgZm9yIGV4YW1wbGUuCgoyMDEzLTA3LTE4IDIzOjI5OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBjb21tb246IHJldmVydCBhY2NpZGVudGFsIGNoYW5nZSBvZiBjb21tb24gc3VibW9kdWxlCgoyMDEzLTA3LTE4IDE0OjM5OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBnc3Q6IEFkZCBzb21lIG1vcmUgU2luY2U6IDEuMgoKMjAxMy0wNy0xOCAxNDozNDozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogQWRkIHNvbWUgU2luY2U6IDEuMgoKMjAxMy0wNy0xOCAxNToxMDoxMCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbmZvOiBBZGQgZGVidWcgY29sb3IgbW9kZSBvcHRpb24KCSAgVGhpcyBhbGxvd3MgdG8gZXhwbGljaXRlbHkgc2V0IHRoZSBkZWJ1ZyBvdXRwdXQgY29sb3IKCSAgbW9kZSB0byBVTklYIG9uIGV2ZXJ5IHBsYXRmb3JtLCBlbmFibGUgaXQgKHVzZSBwbGF0Zm9ybQoJICBkZWZhdWx0IGNvbG9yIG1vZGUpIG9yIGVuYWJsZSBpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDMyMAoKMjAxMi0wNC0xOCAxNDozNTozMiArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBGaXggYmxhY2sgYW5kIHVuZGVybGluZSBjb2xvcmluZyBvbiBXMzIKCSAgRml4ZXMgIzY3NDMyMAoKMjAxMi0wNC0xOCAxNDoxMjoxNiArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBDdXQgZG93biBzcmMgZmlsZSBuYW1lcyBmb3IgTWluR1cgdG9vCgkgIEZpeGVzICM2NzQzMjAKCjIwMTMtMDctMTYgMTc6NDc6NDUgKzAyMDAgIE5pY29sYSBNdXJpbm8gPG5pY29sYS5tdXJpbm9AZ21haWwuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogRml4IGdzdC1wbHVnaW5zLWdsIGluIHVuaW5zdGFsbGVkIHNldHVwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDM0OTkKCjIwMTMtMDctMTYgMTU6MzU6MDggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IFRha2UgYWNjb3VudCBvZiB0aGUgc2tpcCBpbiBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcl9mYXN0KCkKCSAgSW5jbHVkZSByZWdyZXNzaW9uIHRlc3QKCjIwMTMtMDctMTUgMTU6NDE6NDQgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkYXB0ZXI6IEFkZCBmdW5jdGlvbiB0byByZXR1cm4gYnVmZmVyIGNvbXBvc2VkIG9mIG11bHRpcGxlIG1lbW9yaWVzCgkgIEFQSTogZ3N0X2FkYXB0ZXJfdGFrZV9mYXN0KCkKCjIwMTMtMDctMTYgMTY6MjQ6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogRG9uJ3QgYXNzZXJ0IGlmIG5vIGNvbnRleHQgaXMgc2V0IGluIHRoZSBxdWVyeQoKMjAxMy0wNy0xNiAxNDo0NzowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSAgYmVuY2htYXJrczogaWdub3JlIG5ldyBiZW5jaG1hcmsgYmluYXJ5CgoyMDEzLTA3LTE2IDE0OjQ2OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogc3ByaW5rbGUgc29tZSBTaW5jZSAxLjIgbWFya2VycyBpbiBkb2NzCgoyMDEzLTA3LTE2IDE0OjQ0OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICB0aW1lcHJvdmlkZXI6IGctaTogYWxsb3cgTm9uZSBhcyBhZGRyZXNzIGZvciBnc3RfbmV0X3RpbWVfcHJvdmlkZXJfbmV3KCkKCjIwMTMtMDctMTYgMTU6MzQ6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IFJldHVybiBhbiBlbXB0eSBHc3RDb250ZXh0IGlmIG5vbmUgd2FzIHNldCB5ZXQKCjIwMTMtMDctMTYgMTU6MTY6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBBZGQgZ3N0X3F1ZXJ5X2hhc19jb250ZXh0X3R5cGUoKQoKMjAxMy0wNy0xNiAxMTozNjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IG9ubHkgYmxvY2sgc2VyaWFsaXplZCBxdWVyeSB3aGVuIGl0J3Mgc2FmZQoJICBXZSBtdXN0IGJlIGNlcnRhaW4gdGhhdCB3ZSBkb24ndCBjYXVzZSBhIGRlYWRsb2NrIHdoZW4gYmxvY2tpbmcgdGhlIHNlcmlhbGl6ZWQKCSAgcXVlcmllcy4gT25lIHN1Y2ggZGVhZGxvY2sgY2FuIGhhcHBlbiB3aGVuIHdlIGFyZSBidWZmZXJpbmcgYW5kIGRvd25zdHJlYW0gaXMKCSAgYmxvY2tlZCBpbiBwcmVyb2xsIGFuZCBhIHNlcmlhbGl6ZWQgcXVlcnkgYXJyaXZlcy4gRG93bnN0cmVhbSB3aWxsIG5vdCB1bmJsb2NrCgkgIChhbmQgYWxsb3cgb3VyIHF1ZXJ5IHRvIGV4ZWN1dGUpIHVudGlsIHdlIGNvbXBsZXRlIGJ1ZmZlcmluZyBhbmQgYnVmZmVyaW5nIHdpbGwKCSAgbm90IGNvbXBsZXRlIHVudGlsIHdlIGNhbiBhbnN3ZXIgdGhlIHF1ZXJ5Li4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjg0MAoKMjAxMy0wNy0xNSAxMTozNjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEEgbmV3bHkgYWN0aXZhdGVkIHBhZCBzaG91bGQgYmUgbWFya2VkIGFzIG5lZWRpbmcgcmVjb25maWd1cmF0aW9uCgoyMDEzLTA3LTE1IDExOjMyOjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBEb24ndCBjb25zaWRlciBmbHVzaGluZyBwYWRzIGFzIG5lZWRpbmcgcmVjb25maWd1cmF0aW9uIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDk0OGE5ZDJmMmI3MjhmNWZiNjBiZTQ1ZDQ3YTgxOGNlYmViNjBjN2QuCgkgIFRoaXMgaXMgcmFjeSBhbmQgdHJ5aW5nIHRvIHJlY29uZmlndXJlIGFuZCBmYWlsIGlzIHN0aWxsIGJldHRlcgoJICB0aGFuIG5vdCB0cnlpbmcgdG8gcmVjb25maWd1cmUgYXQgYWxsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MTAwCgoyMDEzLTA3LTE1IDExOjMyOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTGVhdmUgdGhlIGxvb3AgZnVuY3Rpb24gZmFzdGVyIGlmIHdlJ3JlIGZsdXNoaW5nCgkgIEVzcGVjaWFsbHkgZG9uJ3QgZXZlbiB0cnkgdG8gc2VuZCBzdHJlYW0tc3RhcnQgZXZlbnQgb3IgdHJ5CgkgIHRvIG5lZ290aWF0ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDEwMAoKMjAxMy0wNy0xMiAxMDowODoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERlYWN0aXZhdGUgYW5kIHJlbW92ZSBwYWQgd2l0aG91dCB0aGUgaW5wdXRzZWxlY3RvciBsb2NrCgkgIE90aGVyd2lzZSB3ZSBtaWdodCBnZXQgZGVhZGxvY2tzIGNhdXNlZCBieSBsb2NrIG9yZGVyIGludmVyc2lvbjoKCSAgRHVyaW5nIHRoZSBjaGFpbiBmdW5jdGlvbiB0aGUgc3RyZWFtIGxvY2sgaXMgZmlyc3QgbG9ja2VkIGFuZCB0aGVuIHRoZQoJICBpbnB1dHNlbGVjdG9yIGxvY2suIER1cmluZyBwYWQgcmVsZWFzZSB3ZSBmaXJzdCBsb2NrZWQgdGhlIGlucHV0c2VsZWN0b3IKCSAgbG9jayBhbmQgdGhlbiBkZWFjdGl2YXRpbmcgdGhlIHBhZCB3b3VsZCBsb2NrIHRoZSBzdHJlYW0gbG9jay4KCSAgVGhlcmUncyBubyByZWFzb24gd2h5IHRoZSBpbnB1dHNlbGVjdG9yIGxvY2sgc2hvdWxkIGJlIHJlcXVpcmVkIHdoaWxlCgkgIGRlYWN0aXZhdGluZyBhbmQgcmVtb3ZpbmcgdGhlIHBhZCwgaXQncyBvbmx5IG5lZWRlZCBiZWZvcmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQwMDIKCjIwMTMtMDctMTEgMTY6NTc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMS4xLjIgPT09CgoyMDEzLTA3LTExIDE1OjEyOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4xLjIKCjIwMTMtMDctMTEgMTU6MTE6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wNy0xMCAxNTo1MjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEFsd2F5cyBmb3J3YXJkIGNsb2NrLWxvc3QgbWVzc2FnZSBpZiB3ZSdyZSBub3QgYSB0b3AtbGV2ZWwgYmluCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IG5vIGJpbiBtaXNzZXMgdGhlIGNsb2NrLWxvc3QgbWVzc2FnZXMsIGluZGVwZW5kZW50CgkgIG9mIHRoZSBzdGF0ZSwgYW5kIGNvdWxkIHJldHVybiBhbiBvbGQsIG5vbi13b3JraW5nIGNsb2NrIGZyb20KCSAgZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMoKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTk5NwoKMjAxMy0wNy0xMCAxNDozMDozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEtlZXAgcHJldmlvdXMgYWN0aXZlIHNpbmtwYWQgYXJvdW5kIHVudGlsIHdlJ3JlIGRvbmUgd2l0aCBpdAoJICBPdGhlcndpc2Ugd2UnbGwgc2VuZCBhIG5ldyBzZWdtZW50IGV2ZW50IGRvd25zdHJlYW0gZm9yIGVhY2ggYnVmZmVyLgoKMjAxMy0wNy0wOCAxNToyNjozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogZml4IHR5cGUgb2YgZ3N0X21lbW9yeV9hbGlnbm1lbnQgdG8gbWF0Y2ggZGVjbGFyYXRpb24KCSAgRml4ZXMgY29tcGlsZXIgd2FybmluZ3Mgc3VjaCBhcwoJICBnc3RhbGxvY2F0b3IuYzo2MTo4OiBlcnJvcjogY29uZmxpY3RpbmcgdHlwZXMgZm9yICdnc3RfbWVtb3J5X2FsaWdubWVudCcKCSAgLi4vZ3N0L2dzdGFsbG9jYXRvci5oOjUyOjE4OiBub3RlOiBwcmV2aW91cyBkZWNsYXJhdGlvbiBvZiAnZ3N0X21lbW9yeV9hbGlnbm1lbnQnIHdhcyBoZXJlCgoyMDEzLTA3LTA1IDIxOjM2OjI3ICswMjAwICBQaW90ciBEcsSFZyA8cGlvdHJkcmFnQGdtYWlsLmNvbT4KCgkqIHBvL1BPVEZJTEVTLmluOgoJICBwbzogdXBkYXRlIFBPVEZJTEVTLmluCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDM2ODIKCjIwMTMtMDctMDQgMjA6Mzk6MjYgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEbyBub3QgbG9jayBhIG11dGV4IHRoYXQgZG9lcyBub3QgZXhpc3QKCSAgVGhlIEdTVF9MSVZFX0xPQ0sgaXMgb24gR3N0QmFzZVNyYywgbm90IG9uIGl0cyBzb3VyY2UgcGFkLgoKMjAxMy0wNy0wMyAyMToyMzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVzZXQgUFRTIGFmdGVyIHNlZWsKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjc3OAoKMjAxMy0wNy0wMyAxMzowMzo0OSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgQWRkIGZldyBtaXNzaW5nIGFsbG93LW5vbmUgYW5ub3RhdGlvbgoKMjAxMy0wNy0wMyAwOToyNzoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBuZXcgLWJhZCBtcGVndHMgbGliCgkgIEFuZCByZW1vdmUgc2lnbmFscHJvY2Vzc29yL3ZpZGVvIGxpYnMgZnJvbSAtYmFkIHdoaWNoIGhhdmUgZ29uZQoJICBhd2F5IG9yIHdlcmUgbWVyZ2VkIGludG8gLWJhc2UuCgoyMDEzLTA3LTAxIDIwOjM1OjIxIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogUmUtcHVzaCBhbGwgc3RpY2t5IGV2ZW50cyB3aGVuIGJ1ZmZlcnMgY29tZSBmcm9tIGEgZGlmZmVyZW50IHBhZAoJICBEb24ndCBzcGVjaWFsIGNhc2Ugc2VnbWVudC9jYXBzLCBqdXN0IHB1c2ggYWxsIHN0aWNreSBldmVudHMgd2hlbiB0aGV5IGFyZQoJICByZWNlaXZlZCBvbiB0aGUgY3VycmVudGx5IGFjdGl2ZSBwYWQgb3Igd2hlbiB0aGUgYWN0aXZlIHBhZCBjaGFuZ2VzLgoKMjAxMy0wNy0wMSAyMDoyMToxMCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogVXNlIGRlZmF1bHQgcGFkIGZ1bmN0aW9uIGZvciB1cHN0cmVhbSBldmVudC9xdWVyaWVzCgkgIFRoZSBkZWZhdWx0IGZ1bmN0aW9ucyBpbiAxLnggYWxyZWFkeSBkbyB0aGUgcmlnaHQgdGhpbmcKCjIwMTMtMDctMDEgMjA6MTg6NTggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSAgdGVzdHM6IFJlbW92ZSBmdW5uZWwgcGFkX2FsbG9jIHRlc3QKCjIwMTMtMDctMDEgMjA6MDc6MDMgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQ2hhbmdlIHN0cmVhbV9pZCBwYXJhbWV0ZXIgbmFtZSB0byBtYXRjaCBHdGtEb2MKCjIwMTMtMDctMDEgMTE6MTA6MDAgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hc2hnQGF4aXMuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBjaGVjazogQWRkZWQgZ3N0X2NoZWNrX3NldHVwX2V2ZW50c193aXRoX3N0cmVhbV9pZCgpCgkgIEFkZGVkIGEgbmV3IGZ1bmN0aW9uIGdzdF9jaGVja19zZXR1cF9ldmVudHNfd2l0aF9zdHJlYW1faWQoKSwgc2luY2UKCSAgZ3N0X2NoZWNrX3NldHVwX2V2ZW50cygpIGRvZXMgbm90IHdvcmsgd2l0aCBtdWx0aXBsZSBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMzc3CgoyMDEzLTA2LTMwIDE4OjM5OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgY29uc2lkZXIgZmx1c2hpbmcgcGFkcyBhcyBuZWVkaW5nIHJlY29uZmlndXJhdGlvbgoJICBSZW5lZ290aWF0aW9uIGFuZCByZWNvbmZpZ3VyYXRpb24gd2lsbCBmYWlsIGJlY2F1c2UgYWxsIHF1ZXJpZXMKCSAgYW5kIGV2ZW50cyB3b24ndCBiZSBhY2NlcHRlZCBieSB0aGUgcGFkIGlmIGl0J3MgZmx1c2hpbmcuIEluIHRoZQoJICBiZXN0IGNhc2UgdGhpcyBqdXN0IGNhdXNlcyB1bm5lZWRlZCB3b3JrIGFuZCBzcHVyaW91cyB3YXJuaW5ncyBpbgoJICB0aGUgZGVidWcgbG9ncywgaW4gdGhlIHdvcnN0IGNhc2UgaXQgY2F1c2VzIGVsZW1lbnRzIHRvIGZhaWwgY29tcGxldGVseS4KCjIwMTMtMDYtMjQgMjM6MjU6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG9ubHkgYmxvY2sgc2VyaWFsaXplZCBxdWVyeSB3aGVuIGl0J3Mgc2FmZQoJICBXZSBtdXN0IGJlIGNlcnRhaW4gdGhhdCB3ZSBkb24ndCBjYXVzZSBhIGRlYWRsb2NrIHdoZW4gYmxvY2tpbmcgdGhlIHNlcmlhbGl6ZWQKCSAgcXVlcmllcy4gT25lIHN1Y2ggZGVhZGxvY2sgY2FuIGhhcHBlbiB3aGVuIHdlIGFyZSBidWZmZXJpbmcgYW5kIGRvd25zdHJlYW0gaXMKCSAgYmxvY2tlZCBpbiBwcmVyb2xsIGFuZCBhIHNlcmlhbGl6ZWQgcXVlcnkgYXJyaXZlcy4gRG93bnN0cmVhbSB3aWxsIG5vdCB1bmJsb2NrCgkgIChhbmQgYWxsb3cgb3VyIHF1ZXJ5IHRvIGV4ZWN1dGUpIHVudGlsIHdlIGNvbXBsZXRlIGJ1ZmZlcmluZyBhbmQgYnVmZmVyaW5nIHdpbGwKCSAgbm90IGNvbXBsZXRlIHVudGlsIHdlIGNhbiBhbnN3ZXIgdGhlIHF1ZXJ5Li4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjg0MAoKMjAxMy0wNi0xOSAxMjozMDo0NyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIGEgZmlsdGVyIHRvIHRoZSBjYXBzX3F1ZXJ5IGRvbmUgYnkgYWNjZXB0Y2FwcwoJICBVc2UgdGhlIGNhcHMgdGhhdCB0aGUgcGFkIGlzIGFza2VkIHRvIGFjY2VwdCBhcyBmaWx0ZXIgZm9yIHRoZSBxdWVyeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNjMyCgoyMDEzLTA2LTE5IDEyOjE5OjAyICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBvcHRpbWl6ZSBkZWZhdWx0IGFjY2VwdGNhcHMgaW1wbGVtZW50YXRpb24KCSAgUGFzcyB0aGUgZml4ZWQgY2FwcyB3ZSdyZSBhc2tlZCB0byBhY2NlcHQgYXMgYSBmaWx0ZXIgZm9yIHRoZSBjYXBzCgkgIHF1ZXJ5LCBzbyB3ZSBkb24ndCBnZXQgYSBmdWxseS1leHBhbmRlZCBzZXQgb2YgY2FwcyBiYWNrICh3aGljaCB3ZSBkb24ndAoJICBuZWVkIGFuZCBjYW4gdGFrZSBhIGxvdCBvZiB0aW1lIGZvciBpbnRlcnNlY3Rpb24pLgoJICBUaGlzIHJlZHVjZXMgdGhlIHRpbWUgZm9yIGNhbWVyYWJpbiB0byBwcm9kdWNlIGEgc2Vjb25kIGZyYW1lIG9uIGEKCSAgbG9naXRlY2ggQzkxMCBjYW1lcmEgZnJvbSBhcm91bmQgNTIgc2Vjb25kcyB0byBhIGJpdCBsZXNzIHRoZW4gMTYKCSAgc2Vjb25kcyBvbiBteSBzeXN0ZW0uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI2MzIKCjIwMTMtMDYtMTkgMDk6MTk6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogQXZvaWQgY29tYmluYXRvcmlhbCBleHBsb3Npb24gd2hlbiBtZXJnaW5nIHRhZ3MKCSAgV2hlbiBhcHBlbmRpbmcvcHJlcGVuZGluZyB0YWdzLCBhdm9pZCByZS1jcmVhdGluZyAoYW5kIGNvcHlpbmcpIGxpc3RzIGlmIHdlIGFscmVhZHkKCSAgaGF2ZSBvbmUgYW5kIGluc3RlYWQganVzdCBhcHBlbmQvcHJlcGVuZCB0aGUgR1ZhbHVlIHRvIHRoZSBsaXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNTQ1CgoyMDEzLTA2LTE5IDEwOjUzOjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEb24ndCBob2xkIHRoZSBxdWV1ZSBtdXRleCB3aGlsZSBkb2luZyBzZXJpYWxpemVkIHF1ZXJpZXMgZG93bnN0cmVhbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNTIwCgoyMDEzLTA2LTE5IDEwOjQ1OjQ1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogQWRkIHVuaXQgdGVzdCBmb3IgbWFwX3JhbmdlKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjYxNwoKMjAxMy0wNi0xOSAwODozNjoyMiArMDIwMCAgUGF1bCBIRU5SWVMgPHZpc2VjaGVsbGVAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCB3cm9uZyBzaXplL2luZGV4IGhhbmRsaW5nIHdoZW4gbWVyZ2luZyBtZW1vcnkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjYxNwoKMjAxMy0wNi0xOCAxMTozOTo1NSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlzdC11bGluay54c2w6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIGZpbGUgZm9yIGRvYy1saW5rIGNoZWNrCgoyMDEzLTA2LTE3IDExOjEyOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb29sc3RyZXNzLmM6CgkgIHRlc3RzOiBhZGQgc3RyZXNzIHRlc3QgZm9yIGJ1ZmZlcnMgYW5kIHBvb2xzCgoyMDEzLTA2LTE3IDEwOjI1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2FsbCBzdGF0ZSBjaGFuZ2UgaW4gYWxsIGNhc2VzCgkgIFdoZW4gd2UgYXN5bmNocm9ub3VzbHkgZ28gZnJvbSBSRUFEWSB0byBQTEFZSU5HLCBhbHNvIGNhbGwgdGhlCgkgIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIHVwZGF0ZSB0aGVpciBzdGF0ZSBmb3IgUExBWUlORy4KCSAgQmVjYXVzZSB0aGUgUFJFUk9MTCBsb2NrIGlzIG5vdCByZWN1cnNpdmUsIHdlIGNhbid0IG1ha2UgdGhpcyB3aXRob3V0CgkgIHJhY2VzIGFuZCB3ZSBtdXN0IGFzc3VtZSBmb3Igbm93IHRoYXQgdGhlIHN1YmNsYXNzIGNhbiBoYW5kbGUgY29uY3VycmVudCBjYWxscwoJICB0byBQQVVTRUQtPlBMQVlJTkcgYW5kIFBMQVlJTkctPlBBVVNFRC4gV2UgY2FuIG1ha2UgdGhpcyBhc3N1bXB0aW9uIGJlY2F1c2Ugbm90CgkgIG1hbnkgZWxlbWVudHMgYWN0dWFsbHkgZG8gc29tZXRoaW5nIGluIHRob3NlIHN0YXRlIGNoYW5nZXMgYW5kIHRoZSBvbmVzIHRoYXQKCSAgZGlkIHdvdWxkIGJlIGJyb2tlbiBldmVuIG1vcmUgd2l0aG91dCB0aGlzIGNoYW5nZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjI4MgoKMjAxMy0wNi0xNiAxNTowNzozNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSAgZG9jczogZml4IHNvbWUgZXh0ZXJuYWwgbGlua3MKCjIwMTMtMDYtMTYgMTQ6NDU6MDggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJICBkb2NzOiBjaGVjayBmb3IgYnJva2VuIGxpbmtzIGluIGRvY3MKCSAgVGhlIGNoZWNrIGlzIGRvbmUgdXNpbmcgY3VybCAoaWYgYXZhaWxhYmxlKS4gSXQgbGlzdHMgdGhlIGN1cmwgZXhpdCBjb2RlICsgaHR0cAoJICBzdGF0dXMgY29kZSAoZm9yIHRob3NlID4gMzk5KSB0b2dldGhlciB3aXRoIHRoZSB1c2Ugb2YgdGhlIHVybCBpbiB0aGUgY29kZS4gVGhlCgkgIGNoZWNrIGlzIG5vdCBmYXRhbC4KCjIwMTMtMDYtMTYgMTM6MDU6MjEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgZG9jczogY2hhbmdlIGh0dHBzIHRvIGh0dHAgdXJscwoJICBUaGFuayB5b3UgYnJvd3NlciBmb3IgbmVlZGxlc3NseSBjaGFuZ2luZyB0byBodHRwcyBmb3Igc3RhdGljIGRvYyBwYWdlcy4KCjIwMTMtMDYtMTYgMTE6NDE6NTIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2ZhcS9kZXZlbG9waW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgZG9jczogdXBkYXRlIGxpbmtzIHRvIGRldmVsb3Blci5nbm9tZS5vcmcKCSAgVGhlIFVSTCBsYXlvdXQgaGFzIGNoYW5nZWQuIEZpeCB0aGUgbGlua3MgYW5kIGNvbW1lbnQgb3V0IG9uZSBwYXJhZ3JhcGggd2hlcmUKCSAgdGhlIGRvYyBpcyBnb25lLgoJICBGaXhlcyAjNzAyMTM1CgoyMDEzLTA2LTE0IDEzOjA1OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQWRkIGdzdF9zdHJ1Y3R1cmVfbmV3X2Zyb21fc3RyaW5nKCkKCSAgQ29udmVuaWVuY2UgQVBJIGZvciBiaW5kaW5ncywgZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZygpIHJldHVybnMKCSAgYSB0dXBsZSAoc3RydWN0dXJlLCBlbmRfcHRyKSBpbiBiaW5kaW5ncyBhbmQgaXMgdW5pbnR1aXRpdmUgdG8gdXNlCgkgIGJlY2F1c2Ugb2YgdGhhdC4KCjIwMTMtMDYtMTMgMDg6MzY6MjMgKzAyMDAgIEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRG9uJ3QgaW50ZXJjZXB0IC0taGVscCBpbiBnc3RfaW5pdCgpCgkgIEJlZm9yZSB0aGlzIHBhdGNoIGdzdF9pbml0IHdvdWxkIGludGVyY2VwdCAtLWhlbHAsIGNhdXNpbmcgZm9yIGV4YW1wbGUKCSAgY2hlZXNlJ3MgLS1oZWxwIHRvIGxvb2sgbGlrZSB0aGlzOgoJICBbaGFuc0BzaGFsZW0gY2hlZXNlXSQgY2hlZXNlIC0taGVscAoJICBVc2FnZToKCSAgY2hlZXNlIFtPUFRJT04uLi5dIC0gR1N0cmVhbWVyIGluaXRpYWxpemF0aW9uCgkgIEhlbHAgT3B0aW9uczoKCSAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgaGVscCBvcHRpb25zCgkgIC0taGVscC1hbGwgICAgICAgICAgICAgICAgICAgICAgICBTaG93IGFsbCBoZWxwIG9wdGlvbnMKCSAgLS1oZWxwLWdzdCAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgR1N0cmVhbWVyIE9wdGlvbnMKCSAgZ3N0X2luaXQgaXMgdGhlIG9ubHkgZ2Zvb19pbml0IGZ1bmN0aW9uIHdoaWNoIGRvZXMgdGhpcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjA4OQoKMjAxMy0wNi0xMiAwOTo0NTo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCB1cmlkb3dubG9hZGVyIGxpYiBpbiAtYmFkIHRvIHNlYXJjaCBwYXRocwoJICBFdmVuIGlmIGl0IG1pZ2h0IG5vdCBiZSBhcm91bmQgZm9yIGxvbmcuCgoyMDEzLTA2LTExIDEwOjI1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFJlbW92ZSB1bnJlZiB0aGF0IHNob3VsZCBub3QgYmUgdGhlcmUKCSAgV2Uga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgY29udGV4dCBhcm91bmQgYWxsIHRoZSB0aW1lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxOTg1CgoyMDEzLTA2LTA5IDE3OjIwOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IEltcHJvdmUgR3N0Q29udGV4dCBoYW5kbGluZwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwOTY3CgoyMDEzLTA2LTA3IDEzOjA3OjM3ICswMjAwICBLaW0gTGFtIDxraW1AcmVkZ2lhbnRzb2Z0d2FyZS5jb20+CgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJICB3aW4zMjogRG9uJ3QgaW5jbHVkZSBnc3Rjb2xsZWN0cGFkcy5jIHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE2MDMKCjIwMTMtMDUtMzEgMDk6Mzk6NTUgLTA2MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IHNlbmQgbm90aWZ5OjphY3RpdmUgc2lnbmFsIGZvciBpbnB1dC1zZWxlY3RvciBwYWRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMzE5CgoyMDEzLTA2LTA2IDE2OjQ2OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBPbmx5IGZvcmNlLXVwZGF0ZSB0aGUgZHVyYXRpb24gZm9yIGR5bmFtaWMgc291cmNlcyB3aGVuIGRvaW5nIHRoZSBEVVJBVElPTiBxdWVyeQoJICBEb2luZyBpdCBhZnRlciBldmVyeSBzaW5nbGUgY3JlYXRlKCkgaXMgbm90IHZlcnkgZWZmaWNpZW50IGFuZCBub3QgbmVjZXNzYXJ5LgoJICBFc3BlY2lhbGx5IG9uIG5ldHdvcmsgZmlsZSBzeXN0ZW1zIGZzdGF0KCkgaXMgbm90IGNhY2hlZCBhbmQgY2F1c2VzIG5ldHdvcmsKCSAgdHJhZmZpYywgbWFraW5nIHRoZSBzb3VyY2UgcG9zc2libHkgdW51c2FibGUgc2xvdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1MjAzNwoKMjAxMy0wNi0wNSAxODozNjo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDEuMS4xID09PQoKMjAxMy0wNi0wNSAxNzo1ODo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDEuMS4xCgoyMDEzLTA2LTA1IDE2OjA2OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMy0wNi0wNSAxNToxNDoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAwOThjMGQ3IHRvIDAxYTdhNDYKCjIwMTMtMDYtMDUgMTE6MDI6NTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IEFkZCBfYXBwZW5kX2FuZF90YWtlX3ZhbHVlKCkgcHVibGljIHZhcmlhbnRzCgkgIEFQSTogZ3N0X3ZhbHVlX2FycmF5X2FwcGVuZF9hbmRfdGFrZV92YWx1ZQoJICBBUEk6IGdzdF92YWx1ZV9saXN0X2FwcGVuZF9hbmRfdGFrZV92YWx1ZQoJICBXZSB3ZXJlIGFscmVhZHkgdXNpbmcgdGhpcyBpbnRlcm5hbGx5LCB0aGlzIG1ha2VzIGl0IHB1YmxpYyBmb3IgY29kZQoJICB3aGljaCBmcmVxdWVudGx5IGFwcGVuZHMgdmFsdWVzIHdoaWNoIGFyZSBleHBlbnNpdmUgdG8gY29weSAobGlrZQoJICBzdHJ1Y3R1cmVzLCBhcnJheXMsIGNhcHMsIC4uLikuCgkgIEF2b2lkcyBjb3BpZXMgb2YgdGhlIHZhbHVlcyBmb3IgdXNlcnMuIFRoZSBwYXNzZWQgR1ZhbHVlIHdpbGwgYWxzbwoJICBiZSAwLW1lbXNldCdlZCBmb3IgcmUtdXNlLgoJICBOZXcgdXNlcnMgY2FuIHJlcGxhY2UgdGhpcyBraW5kIG9mIGNvZGU6CgkgIGdzdF92YWx1ZV8qX2FwcGVuZF92YWx1ZShteWNvbnRhaW5lciwgJm15dmFsdWUpOwoJICBnX3ZhbHVlX3Vuc2V0KCZteXZhbHVlKTsKCSAgYnk6CgkgIGdzdF92YWx1ZV8qX2FwcGVuZF9hbmRfdGFrZV92YWx1ZShteWNvbnRhaW5lciwgJm15dmFsdWUpOwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNjMyCgoyMDEzLTA1LTI5IDE3OjIwOjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBVc2UgaW50ZXJuYWwgZnVuY3Rpb24gZm9yIGJ1ZmZlcl9uZXdfd3JhcHBlZAoJICBTaGF2ZXMgfjEwJSBpbnN0cnVjdGlvbiBjYWxscyBmcm9tIHRoZSB0b3RhbCBjb3N0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE2MzMKCjIwMTMtMDUtMzAgMjI6NTc6NDkgLTA2MDAgIEJyZW5kYW4gTG9uZyA8c2VsZkBicmVuZGFubG9uZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IHJldHVybiBGQUxTRSBmb3IgImFjdGl2ZSIgcHJvcGVydHkgaWYgc2VsZWN0b3IgaXMgTlVMTAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMzIzCgoyMDEzLTA2LTAxIDE0OjAwOjIyICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICBtYW51YWw6IHVwZGF0ZSBlbGVtZW50cyB0byBtYXRjaCB0aGUgcmVzdCBvZiAiQm9vc3QgcHJpb3JpdHkgb2YgYSB0aHJlYWQiIHNlY3Rpb24KCjIwMTMtMDYtMDEgMTM6NTU6NTAgKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogZml4IGNvbW1lbnQgaW4gZWZmZWN0c3dpdGNoIGV4YW1wbGUKCjIwMTMtMDYtMDEgMTM6NDk6MTggKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIG1hbnVhbDogZml4IGEgdHlwbyBpbiAiSW5zZXJ0aW5nIGRhdGEgd2l0aCBhcHBzcmMiIHNlY3Rpb24KCjIwMTMtMDYtMDEgMTM6MjI6MjIgKzAxMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkqIGRvY3MvcHdnL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgIHB3ZzogZml4IGEgZmV3IHR5cG9zCgoyMDEzLTA1LTMxIDIzOjM3OjA3ICswMTAwICBBbmRyemVqIEJpZW5pZWsgPGFuZHloZWxwQGdtYWlsLmNvbT4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHJlbW92ZSBkb3VibGUgInRoZSIKCjIwMTMtMDUtMjggMjM6MzQ6NTQgKzAxMDAgIEtyenlzenRvZiBLb25vcGtvIDxrcnp5c3p0b2Yua29ub3Brb0BnbWFpbC5jb20+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IGltcHJvdmUgZ2l0LXVwZGF0ZS5zaCBzdGF0dXMgbWVzc2FnZQoJICBCeSBkZWZhdWx0IHdoZW4gdGhlIHNjcmlwdCBpcyBhYm91dCB0byBleGl0IChub3JtYWxseSBvciBkdWUgdG8gYW4gZXJyb3IpLAoJICBpdCBjaGVja3Mgd2hldGhlciAkRVJST1JfTE9HIGZpbGUgZXhpc3RzLiAgSWYgdGhlIGxvZyBmaWxlIGV4aXN0cywgdGhlCgkgIHNjcmlwdCBwcmludHMgYSAiRmFpbHVyZXM6ICIgbWVzc2FnZSBwcmVmaXggYW5kIGR1bXBzIHRoZSBsb2cgZmlsZSB0byB0aGUKCSAgb3V0cHV0LgoJICBBcHBhcmVudGx5IHRoZSBsb2cgZmlsZSBpcyBhbHdheXMgY3JlYXRlZCBhbmQgaWYgdGhlIHVwZGF0ZS9idWlsZCBpcwoJICBzdWNjZXNzZnVsLCB0aGUgc2NyaXB0IGZpbmlzaGVzIHdpdGggYSBiaXQgbWlzbGVhZGluZyAiRmFpbHVyZXM6ICIgbWVzc2FnZS4KCSAgQW4gaW1wcm92ZW1lbnQgcHJvdmlkZWQgd2l0aCB0aGlzIGNoYW5nZSBsZXRzIHRoZSBsb2cgZmlsZSB0byBiZSBjcmVhdGVkIGFzCgkgIG5lZWRlZCwgaS5lLiBpZiB0aGVyZSdzIGFuIGVycm9yIG1lc3NhZ2UgdG8gYmUgcHJpbnRlZC4gIElmIHRoZSBmaWxlCgkgIGRvZXNuJ3QgZXhpc3RzLCB0aGUgc2NyaXB0IHByaW50cyBhICJVcGRhdGUgZG9uZSIgbWVzc2FnZSB3aGljaCBjbGVhcmx5CgkgIGluZGljYXRlcyBzdWNjZXNzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMTc3CgoyMDEzLTA1LTMwIDA3OjAzOjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBjaGVjazogZml4IHBvc2l0aW9uIHVuaXQgdGVzdAoKMjAxMy0wNS0zMCAwNjo1MToyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIHdpdGhvdXQgY2xvY2sKCSAgV2hlbiBubyBiYXNlIHRpbWUgb3Igd2hlbiBzeW5jIGlzIGRpc2FibGVkLCB1c2UgdGhlIHNhbWUgbG9naWMgYXMKCSAgaW4gcGF1c2VkIHRvIHJlcG9ydCBwb3NpdGlvbi4gVGhlIGxvZ2ljIGluIFBMQVlJTkcgYXNzdW1lcyB3ZSB1c2UgdGhlCgkgIGNsb2NrLgoKMjAxMy0wNS0yOSAxMTozNjozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IG1lbW9yeSBsZWFrIGluIHRoZSB1bml0IHRlc3QKCjIwMTMtMDUtMjggMTI6NDQ6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBBZGQgc3VwcG9ydCBmb3IgY2hlY2tpbmcgc3VidGl0bGUvbWV0YWRhdGEgZmFjdG9yeSB0eXBlcwoKMjAxMy0wNS0yOCAxMjo0MToyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEFkZCBzdXBwb3J0IGZvciBjaGVja2luZyBvbmx5IHRoZSBtZWRpYSB0eXBlIG9mIGEgZmFjdG9yeQoJICBBbmQgd2hpbGUgYXQgaXQgYWxzbyBhZGQgTWV0YWRhdGEgYW5kIFN1YnRpdGxlIG1lZGlhIHR5cGVzLgoKMjAxMy0wNS0yNyAxNjozODoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICAobXVsdGkpcXVldWU6IERvbid0IGFjY2VzcyBxdWVyeSBpdGVtcyBkdXJpbmcgZmx1c2hpbmcKCjIwMTMtMDUtMjcgMTY6MjI6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGRvIHNlcmlhbGl6ZWQgcXVlcmllcyB3aGVuIHdlJ3JlIGZsdXNoaW5nCgkgIEp1c3QgaW1tZWRpYXRlbHkgZmFpbCB0aGUgcXVlcnksIG90aGVyd2lzZSB3ZSB3b3VsZCB3YWl0IGZvcmV2ZXIKCSAgZm9yIHRoZSBxdWVyeSB0byBiZSBhbnN3ZXJlZC4KCjIwMTMtMDUtMjcgMTY6MDg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXJzdCBzZXQgcXVlcnkgcmVzdWx0LCB0aGVuIHNpZ25hbCBHQ29uZAoKMjAxMy0wNS0yNyAxNTo1OTowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IEZpeCBoYW5kbGluZyBvZiBzZXJpYWxpemVkIHF1ZXJpZXMKCSAgRHVyaW5nIEZMVVNIX1NUQVJUIHRoZSBxdWVyeSBuZWVkcyB0byBiZSB1bmJsb2NrZWQgYWxyZWFkeSwgb3RoZXJ3aXNlCgkgIGl0IGNhbiBsZWFkIHRvIGRlYWRsb2NrcyBpZiB0aGUgRkxVU0hfU1RBUlQgaXMgdGhlIHJlc3VsdCBvZiBzb21ldGhpbmcKCSAgZG9uZSBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkIG9mIHRoZSBzcmNwYWQgKHRoZSBxdWV1ZSB3aWxsIG5ldmVyIGJlCgkgIGVtcHRpZWQhKS4KCjIwMTMtMDUtMjcgMTU6NDE6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVbmJsb2NrIGFueSB3YWl0aW5nIHNlcmlhbGl6ZSBxdWVyaWVzIG9uIEZMVVNIX1NUQVJUCgkgIEZpeGVzIHNvbWUgZGVhZGxvY2tzIGR1cmluZyBmbHVzaGluZy4KCSAgQW5kIHN0b3JlIHF1ZXVlIGl0ZW1zIGRpZmZlcmVudGx5IHRvIG5vdCBhY2NpZGVudGlhbGx5IHJlYWQKCSAgYWxyZWFkeSB1bnJlZmZlZCBxdWVyaWVzIHdoZW4gZmx1c2hpbmcuIFF1ZXJpZXMgYXJlIG93bmVkIGJ5CgkgIHVwc3RyZWFtIGFuZCBub3QgdXMuCgoyMDEzLTA1LTI3IDEzOjAxOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZS9xdWV1ZTIvbXVsdGlxdWV1ZTogV2hlbiBmbHVzaGluZywgbWFrZSBzdXJlIHRvIG5vdCBsb3NlIGFueSBzdGlja3kgZXZlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg4MjQKCjIwMTMtMDUtMjcgMTI6NDA6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBTdG9yZSBzdGlja3kgZXZlbnRzIGV2ZW4gaWYgdGhlIHBhZCBpcyBmbHVzaGluZwoJICBCdXQgZG8gdGhpcyBvbmx5IGZvciBldmVudHMgdGhhdCBhcmUgbm90IGRyb3BwZWQgYnkgZmx1c2hpbmcsCgkgIGkuZS4gZG8gaXQgb25seSBmb3IgZXZlcnl0aGluZyBleGNlcHQgU0VHTUVOVCBhbmQgRU9TLgoJICBXaXRob3V0IHRoaXMgd2UgbWlnaHQgZHJvcCBhIENBUFMgZXZlbnQgaWYgZmx1c2hpbmcgaGFwcGVucwoJICBhdCBhbiB1bmZvcnR1bmF0ZSB0aW1lIGFuZCBub2JvZHkgaXMgcmVzZW5kaW5nIHRoZSBDQVBTIGV2ZW50LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwODA2CgoyMDEzLTA1LTI1IDIyOjAzOjUzIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IERvbid0IHJlYWQgc3RpY2t5IGZsYWcgZnJvbSB1bnJlZmVkIGV2ZW50CgoyMDEzLTA1LTI0IDIzOjI4OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBmaXggcHJvcGVydHkgZGVzY3JpcHRpb24gZm9yIG5vdy11bnVzZWQgImFsbG9jLXBhZCIgcHJvcGVydHkKCSAgU2hvdWxkIHByb2JhYmx5IHByb3h5IEFMTE9DQVRJT04gcXVlcmllcyBvbiB0aGF0IHRob3VnaCwgaWYgc2V0LgoJICBCdXQgd2hhdCBlbHNlPyBDQVBTIGFuZCBBQ0NFUFRfQ0FQUyB0b28/CgoyMDEzLTA1LTI0IDIzOjAxOjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSAwLjEwLWlzbSBmcm9tIGRvY3MKCSAgZ3N0X2J1ZmZlcl9wYWRfYWxsb2MoKSBuZXZlciBleGlzdGVkLCBhbmQgZ3N0X3BhZF9hbGxvY19idWZmZXIoKQoJICBkb2Vzbid0IGV4aXN0IGFueSBtb3JlIGVpdGhlciwgc28gZG9uJ3QgbWVudGlvbiBpdCBpbiB0aGUgZG9jcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NDcxNAoKMjAxMy0wNS0yNCAxOToyMjoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBZGQgc3VwcG9ydCBmb3Igc2VyaWFsaXplZCBxdWVyaWVzIGlmIHVzaW5nIGEgbWVtb3J5IHF1ZXVlCgoyMDEzLTA1LTI0IDE4OjQ3OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBTZXQgdGhlIGxhc3Qgc2VyaWFsaXplZCBxdWVyeSByZXN1bHQgdG8gRkFMU0Ugd2hlbiBmbHVzaGluZwoKMjAxMy0wNS0yNCAxODo0Mjo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEluaXRpYWxpemUgYWxsIEdzdE11bHRpUXVldWVJdGVtIGZpZWxkcyBpbiBib3RoIGNvZGUgcGF0aHMKCjIwMTMtMDUtMjQgMTg6Mzg6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBhY2Nlc3MgdGhlIHF1ZXJ5IGFmdGVyIHNpZ25hbGxpbmcgdGhlIHdhaXRpbmcgdGhyZWFkCgkgIEl0IG1pZ2h0J3ZlIGZyZWUnZCB0aGUgcXVlcnkgYWxyZWFkeS4KCjIwMTMtMDUtMjQgMTg6MzA6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBNYWtlIHN1cmUgdG8gYWx3YXlzIHNpZ25hbCBhbnkgcG9zc2libGUgcGVuZGluZyBzZXJpYWxpemVkIHF1ZXJpZXMKCSAgQW5kIGRvbid0IHVucmVmIHRoZW0gd2hlbiBmbHVzaGluZyB0aGUgcXVldWUsIHRoZXkncmUgb3duZWQgYnkgdGhlIGNhbGxlciEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDM0MgoKMjAxMy0wNS0yNCAxNDozNzoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJldHVybiBHU1RfRkxPV19FUlJPUiBpZiB0aGUgYWxsb2NhdG9yIGRpZCBub3QgYWxsb3cgdG8gYWxsb2NhdGUgYSBidWZmZXIKCjIwMTMtMDUtMjQgMTY6MjQ6MTAgKzA5MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIGRvY3M6IFJlbW92ZSBtZW50aW9uIG9mIGdjb25mKiBlbGVtZW50cwoJICBJbnN0ZWFkIHJlY29tbWVuZCBwdWxzZXNyYy9zaW5rIGZvciBhdWRpbywgdGhlcmUgaXMgbm90aGluZyBHTk9NRQoJICBzcGVjaWZpYyBmb3IgdmlkZW8uCgoyMDEzLTA1LTE1IDEzOjIyOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBIYW5kbGUgdGhlIGZvcmNlLWNhcHMgcHJvcGVydHkgbW9yZSBzaW1pbGFyIHRvIGFsbCB0eXBlZmluZGluZyBjb2RlIGZsb3cKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgZXZlbnRzIGhhcHBlbiBpbiBvcmRlciBhbmQgc2ltcGxpZmllcyB0aGUgY29kZSBhIGJpdC4KCjIwMTMtMDUtMTUgMTE6MjE6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IEZpeCBldmVudCBoYW5kbGluZyBpbiBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KCkKCjIwMTMtMDUtMTUgMTA6NTE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ZWRjZDg1IHRvIDA5OGMwZDcKCjIwMTMtMDUtMTAgMTY6MDM6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgY2hlY2sgaWYgd2UgZ2V0IGJ1ZmZlcnMgYmVmb3JlIHN0cmVhbS1zdGFydC9zZWdtZW50IGlmIGNvbXBpbGluZyB3aXRob3V0IEdfRElTQUJMRV9BU1NFUlQKCSAgSW4gcmVsZWFzZXMgdGhpcyBpcyBzZXQgdXN1YWxseS4KCjIwMTMtMDUtMDkgMTc6MTc6MTQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogQWRkIGhlbHBlciB0aGF0IHNlbmRzIGluaXRpYWwgZXZlbnRzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03MDAwMzMKCjIwMTMtMDUtMDkgMTc6MjI6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmcKCjIwMTMtMDUtMDkgMTc6MjE6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE1ha2Ugc3VyZSBwZW5kaW5nLCBvbGRlciBzdGlja3kgZXZlbnRzIGFyZSBzZW50IGRvd25zdHJlYW0gaW4gZHluYW1pYyBsaW5raW5nIHNjZW5hcmlvcwoJICBJZiBhIHBhZCBibG9jayB3YXMgdHJpZ2dlcmVkIGZyb20gc2VuZGluZyBhIHN0aWNreSBldmVudCBkb3duc3RyZWFtLCBpdAoJICBjb3VsZCBoYXBwZW4gdGhhdCB0aGUgcGFkIGJsb2NrIGlzIHJlbGlua2luZyBwYWRzLCB3aGljaCB0aGVuIHJlcXVpcmVzCgkgIHRvIHJlc2VuZCBwcmV2aW91cyBzdGlja3kgZXZlbnRzLgoKMjAxMy0wNS0wOSAxMzozMjowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mdW5uZWwuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogRml4IGV2ZW50IG9yZGVyIHdhcm5pbmdzIGFuZCBkYXRhZmxvdyBiZWZvcmUgc3RyZWFtLXN0YXJ0L3NlZ21lbnQgZXZlbnQKCjIwMTMtMDUtMDkgMTM6MzE6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgYmFzZXRyYW5zZm9ybTogUHJvcGVybHkgcG9ydCB1bml0IHRlc3QgdG8gYWN0dWFsbHkgdXNlIGNhcHMgYW5kIGNoZWNrIHJlc3VsdHMKCjIwMTMtMDUtMDkgMTI6NTA6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogU3RvcmUgc3RpY2t5IGV2ZW50cyBvbiB0aGUgc3JjcGFkIGlmIHdlJ3JlIGRyb3BwaW5nIHRoZW0gYmVjYXVzZSBvZiBsZWFraW5nCgoyMDEzLTA1LTA5IDEyOjI3OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IEFsd2F5cyBmb3J3YXJkIHN0aWNreSBldmVudHMgdG8gYWxsIHBhZHMKCjIwMTMtMDUtMDkgMTI6MTU6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZvcndhcmQgYWxsIHN0aWNreSBldmVudHMsIGluY2x1ZGluZyBzdHJlYW0tc3RhcnQKCjIwMTMtMDUtMDkgMTE6MDU6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFdhcm4gaWYgZGF0YSBmbG93IGhhcHBlbnMgYmVmb3JlIHN0cmVhbS1zdGFydCBvciBzZWdtZW50IGV2ZW50CgoyMDEzLTA1LTA5IDEwOjU5OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGxldCBnc3RfcGFkX3N0aWNreV9ldmVudHNfZm9yZWFjaCgpIGl0ZXJhdGUgb3ZlciBleGlzdGluZyBldmVudHMKCjIwMTMtMDUtMDkgMTA6Mjk6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IElmIHdlIHB1c2ggc3RpY2t5IGV2ZW50cyBiZWNhdXNlIG9mIGFub3RoZXIgc3RpY2t5IGV2ZW50LCBvbmx5IHB1c2ggdGhvc2UgdGhhdCBjb21lIGJlZm9yZSB0aGUgbmV3IGV2ZW50CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk5MzcKCjIwMTMtMDUtMDkgMDk6NTA6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IEFkZCBtb3JlIGRlYnVnIG91dHB1dCBhbmQgZm9yd2FyZCBjYXBzIGV2ZW50cyBpbW1lZGlhdGVseSB0b28KCjIwMTMtMDUtMDkgMDk6NDI6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE5vIHN0aWNreSBldmVudHMgbXVzdCBhcnJpdmUgYWZ0ZXIgRU9TCgoyMDEzLTA1LTA5IDA5OjM4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBGaXggdHlwbyBpbiBsYXN0IGNvbW1pdAoKMjAxMy0wNS0wOCAxOTo0NDowOSAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSW1wcm92ZSB3YXJuaW5nIG1lc3NhZ2UgbmFtaW5nIGV2ZW50cyB0eXBlIG5hbWUKCSAgV2l0aCB0aGlzIHBhdGNoLCBtZXNzYWdlIHNob3VsZCBsb29rIGxpa2UgwqhTdGlja3kgZXZlbnQgbWlzb3JkZXJpbmcsIGdvdAoJICAnY2FwcycgYmVmb3JlICdzdHJlYW0tc3RhcnQnwqggbWFraW5nIGl0IGZhc3RlciB0byBkZWJ1Zy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODE4OAoKMjAxMy0wNS0wOCAxODoxOTo0OCAtMDQwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogT25seSBpbmZvcmNlIFNUUkVBTV9TVEFSVCwgQ0FQUyBhbmQgU0VHTUVOVCBvcmRlcmluZwoJICBQcmV2aW91cyBwYXRjaCB3YXMgaW5mb3JjaW5nIGEgY29tcGxldGUgb3JkZXJpbmcgb2YgdGhlIHN0aWNreSBldmVudHMsIHdoaWxlCgkgIGluIGZhY3QsIG9ubHkgU1RSRUFNX1NUQVJULCBDQVBTIGFuZCBTRUdNRU5UIGV2ZW50cyBuZWVkIHByb3BlciBvcmRlcmluZy4KCSAgU2VlOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MTg4CgoyMDEzLTA1LTA5IDA5OjMyOjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgY2Fwc2ZpbHRlcjogU2VuZCBhbGwgZXZlbnRzIHRoYXQgc2hvdWxkIGhhcHBlbiBhZnRlciBDQVBTIGFmdGVyIHRoZSBDQVBTIGV2ZW50CgoyMDEzLTA1LTA4IDIxOjQ1OjA4IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuaDoKCSAgY2Fwc2ZpbHRlcjogU2VuZCBjYXBzIGJlZm9yZSBzZWdtZW50CgkgIEluIHRoZSBjYXNlIHRoZSBzb3VyY2UgaGFzIG5vIGNhcHMsIGNhcHMgbXVzdCBiZSBzZW50IGJlZm9yZSBzZWdtZW50LiBUaGlzCgkgIGZpeGVzIGZldyB1bml0IHRlc3RzIHRoYXQgd2hlcmUgZmFpbGluZyBkdWUgdG8gdGhlIG5ldyBtaXNvcmRlcmluZyB3YXJuaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk5OTY4CgoyMDEzLTA1LTA3IDIxOjUzOjM3IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEZXRlY3QsIGZpeCBhbmQgd2FybiB3aGVuIHN0aWNreSBldmVudHMgYXJlIGluIHdyb25nIG9yZGVyCgkgIFdlIGNhbiBwcmV2ZW50IGJ1Z2d5IGVsZW1lbnQgZnJvbSBjYXVzaW5nIG90aGVyIGVsZW1lbnRzIHRvIGZhaWwgb3IgY3Jhc2gKCSAgYnkgc29ydGluZyBzdGlja3kgZXZlbnQgYXQgaW5zZXJ0aW9uLiBJbiB0aGlzIGNhc2UsIHdlIGFsc28gd2FybiBhcyB0aGlzCgkgIGlzIG5vdCBzdXBwb3NlZCB0byBoYXBwZW4uCgkgIFNlZTogaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODE4OAoKMjAxMy0wNS0wOCAxMDoyNjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgdGVzdHM6IGFkZCBzb21lIGJhc2ljIGNoZWNrcyBmb3IgZ3N0X2J1ZmZlcl9maWxsKCkKCjIwMTMtMDUtMDggMTA6MjU6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWxsb3cgY2FsbGluZyBfZmlsbCgpIHdpdGggYSBOVUxMIGRhdGEgcG9pbnRlciBpZiBzaXplIGlzIDAgYnl0ZXMKCjIwMTMtMDUtMDcgMTY6NDY6MzIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEFkZCBGSVhNRSBjb21tZW50IGZvciB1bnVzZWQgYXNzaWdubWVudCByZXN1bHRzCgoyMDEzLTA1LTA3IDE1OjE4OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICBkb2NzOiBmaXggdHlwbyBpbiBtZXRhZGF0YSBzZWN0aW9uIGluIGFwcCBkZXYgbWFudWFsCgkgIFRoZXJlJ3Mgbm8gZ190YWdfbGlzdF9nZXRfeHl6KCkuCgoyMDEzLTA1LTA3IDE0OjQ3OjA5ICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IEZpeCB0aGUgZnVuY3Rpb24gc2lnbmF0dXJlIGFuZCBhIG1pbm9yIHR5cG8gZml4CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk4MjcKCjIwMTMtMDUtMDYgMTg6NDc6NDQgLTA0MDAgIE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTZW5kIHN0cmVhbS1zdGFydCBiZWZvcmUgYW55dGhpbmcgZWxzZQoJICBUbyBkbyBzbywgc2VuZCBzdHJlYW0tc3RhcnQgd2hlbiB0aGUgc3RyZWFtaW5nIHRocmVhZCBnb2VzIHVwIGZvciB0aGUgZmlyc3QKCSAgdGltZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5OTc2NwoKMjAxMi0xMi0yNiAxMTo1NDo1MSArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IEFsbG93IDEuMCBhbmQgMC4xMCBzY3JpcHRzIGluc3RhbGxlZCBzaW11bHRhbmVvdXNseQoJICBBcyBsb25nIGFzIHRoZSBzY3JpcHRzJyBmaWxlbmFtZXMgYXJlIGRpZmZlcmVudCwgYW5kIHRoZSBfZ3N0X2luc3BlY3QKCSAgYW5kIF9nc3RfbGF1bmNoIGZ1bmN0aW9ucyBhcmUgbmFtZWQgZGlmZmVyZW50bHksIHRoZSBjb21wbGV0aW9uIHNjcmlwdHMKCSAgZm9yIEdTdHJlYW1lciAxLjAgYW5kIDAuMTAgY2FuIGJlIGluc3RhbGxlZCBzaWRlLWJ5LXNpZGUgaW4KCSAgL2V0Yy9iYXNoX2NvbXBsZXRpb24uZC4KCSAgT24gbXkgMC4xMCBicmFuY2jigKAgdGhlIGNvbXBsZXRpb24gc2NyaXB0IGlzIHJlbmFtZWQgdG8KCSAgImdzdHJlYW1lci1jb21wbGV0aW9uLTAuMTAiIGFuZCB0aGUgZnVuY3Rpb25zIGFyZSByZW5hbWVkIHRvCgkgICJfZ3N0X2luc3BlY3RfMF8xMCIgYW5kICJfZ3N0X2xhdW5jaF8wXzEwIi4gVGhlIHJlbWFpbmluZyBoZWxwZXIKCSAgZnVuY3Rpb25zIHNob3VsZCByZW1haW4gaWRlbnRpY2FsICh0aGUgY29tbWFuZC1saW5lIGludGVyZmFjZSB0bwoJICBnc3QtaW5zcGVjdCBoYXNuJ3QgY2hhbmdlZCwgbm9yIGhhcyB0aGUgZm9ybWF0IG9mIHRoZSBnc3QtbGF1bmNoCgkgIHBpcGVsaW5lKSwgc28gaXQgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIDEuMCBzY3JpcHQgb3ZlcnJpZGVzIHRoZSAwLjEwCgkgIHNjcmlwdCdzIGRlZmluaXRpb25zLgoJICBOb3RlIHRoYXQgSSBkb24ndCBleHBlY3QgdGhlcmUgdG8gYmUgYW5vdGhlciBHU3RyZWFtZXIgMC4xMCByZWxlYXNlLCBzbwoJICB0aGUgMC4xMCBjb21wbGV0aW9uIHNjcmlwdCB3aWxsIHByb2JhYmx5IG5ldmVyIGJlIG9mZmljaWFsbHkgcmVsZWFzZWQ7CgkgIGJ1dCBpdCBpcyBzdGlsbCB3b3J0aHdoaWxlIGFsbG93aW5nIGJvdGggc2NyaXB0cyB0byBiZSBpbnN0YWxsZWQKCSAgYWxvbmdzaWRlIGVhY2ggb3RoZXIsIGZvciB0aG9zZSB3aG8gaW5zdGFsbCB0aGUgMC4xMCBjb21wbGV0aW9uIHNjcmlwdAoJICBtYW51YWxseS4KCSAgRml4ZXM6ICM2OTA1MTUKCSAg4oCgIGh0dHBzOi8vZ2l0aHViLmNvbS9kcm90aGxpcy9nc3RyZWFtZXIvYmxvYi9iYXNoLWNvbXBsZXRpb24tMC4xMC90b29scy9nc3RyZWFtZXItY29tcGxldGlvbi0wLjEwCgoyMDEyLTEyLTIxIDE4OjEzOjUzICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkqIHRlc3RzL21pc2MvdGVzdC1nc3RyZWFtZXItY29tcGxldGlvbi5zaDoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBDb21wbGV0ZSBvcHRpb24gJiBwcm9wZXJ0eSB2YWx1ZXMgb24gYmFzaCAzLjIKCSAgQmFzaCAzJ3MgY29tcGxldGlvbiBkb2Vzbid0IHNwbGl0IHdvcmRzIGJ5IGNoYXJhY3RlcnMgaW4KCSAgQ09NUF9XT1JEQlJFQUtTLiBJbiBwYXJ0aWN1bGFyIGl0IGRvZXNuJ3Qgc3BsaXQgYXQgIj0iIHNpZ25zLiBOb3cKCSAgX2dzdF9sYXVuY2hfcGFyc2UgaGFuZGxlcyBib3RoIGJhc2ggMyBhbmQgNCBmb3JtYXQgb2YgQ09NUF9XT1JEUy4KCSAgTm90ZSB0aGF0ICIke2N1ciUlPSp9IiBtZWFucyBjdXIncyB2YWx1ZSB3aXRoIHRoZSBsb25nZXN0IHBvc3NpYmxlIG1hdGNoCgkgIG9mICI9KiIgZGVsZXRlZCBmcm9tIHRoZSBlbmQ7ICIke2N1ciMqPX0iIG1lYW5zIGN1cidzIHZhbHVlIHdpdGggdGhlCgkgIHNob3J0ZXN0IHBvc3NpYmxlIG1hdGNoIG9mICIqPSIgZGVsZXRlZCBmcm9tIHRoZSBiZWdpbm5pbmcuIFNlZQoJICBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL1NoZWxsLVBhcmFtZXRlci1FeHBhbnNpb24uaHRtbAoJICBSZWdhcmRsZXNzIG9mIHRoZSB2ZXJzaW9uIG9mIGJhc2ggcnVubmluZyB0aGUgdW5pdCB0ZXN0cywgSSBjYW4gdGVzdCBmb3IKCSAgYm90aCBiZWhhdmlvdXJzIGJlY2F1c2UgdGhlIHVuaXQgdGVzdCBwb3B1bGF0ZXMgQ09NUF9XT1JEUyBtYW51YWxseS4gU28KCSAgdGhpcyB0ZXN0cyB0aGUgYmFzaCAzIGJlaGF2aW91cjoKCSAgdGVzdF9nc3RfaW5zcGVjdF9jb21wbGV0aW9uIC0tZ3N0LWRlYnVnLWxldmVsPTQKCSAgYW5kIHRoaXMgdGVzdHMgdGhlIGJhc2ggNCBiZWhhdmlvdXI6CgkgIHRlc3RfZ3N0X2luc3BlY3RfY29tcGxldGlvbiAtLWdzdC1kZWJ1Zy1sZXZlbCA9IDQKCjIwMTItMTItMjEgMDg6NTY6MjYgKzAwMDAgIERhdmlkIFJvdGhsaXNiZXJnZXIgPGRhdmlkQHJvdGhsaXMubmV0PgoKCSogdGVzdHMvbWlzYy90ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoOgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IEJhc2ggMy4yIGNvbXBhdGliaWxpdHkgZml4ZXMKCSAgQ29tcGF0aWJsZSB3aXRoIGJhc2ggMy4yOyBkb2Vzbid0IHJlcXVpcmUgdGhlIGJhc2gtY29tcGxldGlvbiBwYWNrYWdlIGF0CgkgIGFsbCAodGhvdWdoIHRoZSBlYXNpZXN0IHdheSB0byBpbnN0YWxsIHRoaXMgc2NyaXB0IGlzIHN0aWxsIHRvIGluc3RhbGwKCSAgYmFzaC1jb21wbGV0aW9uLCBhbmQgdGhlbiBkcm9wIHRoaXMgc2NyaXB0IGludG8gL2V0Yy9iYXNoX2NvbXBsZXRpb24uZCkuCgkgIE5vdGUgdGhhdCBiYXNoIDMgZG9lc24ndCBicmVhayBDT01QX1dPUkRTIGFjY29yZGluZyB0byBjaGFyYWN0ZXJzIGluCgkgIENPTVBfV09SREJSRUFLUywgc28gInByb3BlcnR5PXZhbCIgbG9va3MgbGlrZSBhIHNpbmdsZSB3b3JkLCBzbyB0aGlzCgkgIHdvbid0IGNvbXBsZXRlIHByb3BlcnR5IHZhbHVlcyAob24gYmFzaCAzKS4gU2ltaWxhcmx5LAoJICAiLS1nc3QtZGVidWctbGV2ZWw9PFRBQj4iIHdvbid0IGNvbXBsZXRlIHByb3Blcmx5IChvbiBiYXNoIDMpLCBidXQKCSAgIi0tZ3N0LWRlYnVnLWxldmVsIDxUQUI+IiB3aWxsLgoJICBGb3IgdGhhdCByZWFzb24sIEkgbm93IG9mZmVyICItLWdzdC1kZWJ1Zy1sZXZlbCIgZXRjIGFzIGNvbXBsZXRpb25zCgkgIGluc3RlYWQgb2YgIi0tZ3N0LWRlYnVnLWxldmVsPSIuCgkgIEZ1bmN0aW9ucyAiX2luaXRfY29tcGxldGlvbiIgYW5kICJfcGFyc2VfaGVscCIgd2VyZSBwcm92aWRlZCBieSB0aGUKCSAgYmFzaC1jb21wbGV0aW9uIHBhY2thZ2UgPj0gMi4wOyBub3cgSSByb2xsIG15IG93biBlcXVpdmFsZW50IG9mCgkgICJfcGFyc2VfaGVscCIsIGFuZCBpbnN0ZWFkIG9mICJfaW5pdF9jb21wbGV0aW9uIiBJIHVzZQoJICAiX2dldF9jb21wX3dvcmRzX2J5X3JlZiIgd2hpY2ggaXMgYXZhaWxhYmxlIGZyb20gYmFzaC1jb21wbGV0aW9uIDEuMgoJICBvbndhcmRzLiBJZiB0aGUgYmFzaC1jb21wbGV0aW9uIHBhY2thZ2UgaXNuJ3QgYXZhaWxhYmxlIGF0IGFsbCBJIHVzZQoJICBiYXNoJ3MgcmF3IGZhY2lsaXRpZXMsIGF0IHRoZSBleHBlbnNlIG9mIG5vdCBjb21wbGV0aW5nIHByb3Blcmx5IHdoZW4KCSAgdGhlIGN1cnNvciBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgd29yZC4KCSAgVGhlIGJ1aWx0aW4gImNvbXBvcHQiIGRvZXNuJ3QgZXhpc3QgaW4gYmFzaCAzOyB0aG9zZSB1c2VycyB3aWxsIGp1c3QKCSAgaGF2ZSB0byBsaXZlIHdpdGggdGhlIGluY29udmVuaWVuY2Ugb2YgInByb3BlcnR5PSIgY29tcGxldGluZyB0bwoJICAicHJvcGVydHk9ICIgd2l0aCBhIHRyYWlsaW5nIHNwYWNlLiBQcm9wZXJ0eSB2YWx1ZXMgYXJlbid0IGNvbXBsZXRlZAoJICBwcm9wZXJseSBhbnl3YXkgb24gYmFzaCAzIChzZWUgYWJvdmUpLgoJICAiW1sgLXYgdmFyIF1dIiB0byB0ZXN0IHdoZXRoZXIgYSB2YXJpYWJsZSBpcyBzZXQsIGFsc28gZG9lc24ndCBleGlzdCBpbgoJICBiYXNoIDMuIE5laXRoZXIgZG9lcyAiOzsmIiB0byBmYWxsIHRocm91Z2ggaW4gYSAiY2FzZSIgc3RhdGVtZW50LgoJICBJbiB0aGUgdW5pdCB0ZXN0czoKCSAgKiBPbiBteSBzeXN0ZW0gKE9TIFgpLCAiIyEvYmluL2Jhc2giIGlzIGJhc2ggMy4yLCB3aGVyZWFzCgkgICIjIS91c3IvYmluL2VudiBiYXNoIiBpcyB0aGUgNC4yIHZlcnNpb24gSSBidWlsdCBteXNlbGYuCgkgICogSSBoYXZlIHRvIGluaXRpYWxpc2UgYXJyYXkgdmFyaWFibGVzIGxpa2UgImV4cGVjdGVkPSgpIiwgb3IgYmFzaCAzCgkgIHRyZWF0cyAiKz0iIGFzIGFwcGVuZGluZyB0byBhbiBhcnJheSBhbHJlYWR5IHBvcHVsYXRlZCB3aXRoIG9uZSBlbXB0eQoJICBzdHJpbmcuCgoyMDEyLTEyLTE5IDEwOjQ2OjUwICswMDAwICBEYXZpZCBSb3RobGlzYmVyZ2VyIDxkYXZpZEByb3RobGlzLm5ldD4KCgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBTdXBwb3J0IGdzdC1pbnNwZWN0LCBhbmQgZ3N0LWxhdW5jaCBlbGVtZW50IHByb3BlcnRpZXMKCSAgQ29tcGxldGVzIG9wdGlvbnMgbGlrZSAiLS1nc3QtZGVidWctbGV2ZWwiIGFuZCB0aGUgdmFsdWVzIG9mIHNvbWUgb2YKCSAgdGhvc2Ugb3B0aW9uczsgY29tcGxldGVzIGdzdC1sYXVuY2ggcGlwZWxpbmUgZWxlbWVudCBuYW1lcywgcHJvcGVydHkKCSAgbmFtZXMsIGFuZCBldmVuIHByb3BlcnR5IHZhbHVlcyAoZm9yIGVudW0gb3IgYm9vbGVhbiBwcm9wZXJ0aWVzIG9ubHkpLgoJICBEb2Vzbid0IGNvbXBsZXRlIGFsbCBjYXBzIHNwZWNpZmljYXRpb25zLCBub3IgZWxlbWVudCBuYW1lcyBzcGVjaWZpZWQKCSAgZWFybGllciBpbiB0aGUgcGlwZWxpbmUgd2l0aCAibmFtZT0uLi4iLgoJICBUaGUgR1N0cmVhbWVyIHZlcnNpb24gbnVtYmVyIGlzIGhhcmQtY29kZWQgaW50byB0aGUgY29tcGxldGlvbiBzY3JpcHQ6CgkgIFRoaXMgcGF0Y2ggaXMgb2ZmIHRoZSBtYXN0ZXIgYnJhbmNoIGFuZCBoYXMgdGhlIHZlcnNpb24gaGFyZC1jb2RlZCBhcwoJICAiMS4wIjsgaXQgbmVlZHMgdG8gYmUgdXBkYXRlZCBpZiBiYWNrcG9ydGVkIHRvIHRoZSAwLjEwIGJyYW5jaC4gWW91CgkgIGNvdWxkIGFsd2F5cyBjcmVhdGUgYSAiZ3N0cmVhbWVyLWNvbXBsZXRpb24uaW4iIHRoYXQgaGFzIHRoZSBhcHByb3ByaWF0ZQoJICB2ZXJzaW9uIGluc2VydGVkIGJ5ICJjb25maWd1cmUiLCBidXQgSSdkIHJhdGhlciBub3QgZG8gdGhhdC4gVGhlCgkgIGhhcmQtY29kZWQgdmVyc2lvbiBpcyBjb25zaXN0ZW50IHdpdGggdGhlIHByZXZpb3VzIGltcGxlbWVudGF0aW9uIG9mCgkgIGdzdHJlYW1lci1jb21wbGV0aW9uLCB3aGljaCBoYWQgdGhlIHJlZ2lzdHJ5IHBhdGggaGFyZC1jb2RlZCBhcwoJICB+Ly5nc3RyZWFtZXItMS4wL3JlZ2lzdHJ5LnhtbC4KCSAgTm90ZSB0aGF0IEdTdHJlYW1lciAwLjEwIGluc3RhbGxzICJnc3QtaW5zcGVjdCIgYW5kICJnc3QtaW5zcGVjdC0wLjEwIi4KCSAgImdzdC1pbnNwZWN0IC0taGVscCIgb25seSBwcmludHMgNCBmbGFncyAoLS1oZWxwLCAtLXByaW50LCAtLWdzdC1tbSwKCSAgZ3N0LWxpc3QtbW0pIHdoZXJlYXMgImdzdC1pbnNwZWN0LTAuMTAgLS1oZWxwLWFsbCIgcHJpbnRzIHRoZSBmdWxsIGxpc3QKCSAgb2YgZmxhZ3MuIFRoZSBzYW1lIGFwcGxpZXMgdG8gImdzdC1sYXVuY2giIGFuZCAiZ3N0LWxhdW5jaC0wLjEwIi4KCSAgR1N0cmVhbWVyIDEuMCBvbmx5IGluc3RhbGxzICJnc3QtaW5zcGVjdC0xLjAiLCBub3QgImdzdC1pbnNwZWN0Ii4KCSAgUmVxdWlyZXMgYmFzaCA0OyBvbmx5IHRlc3RlZCB3aXRoIGJhc2ggNC4yLiBSZXF1aXJlcyAiYmFzaC1jb21wbGV0aW9uIgoJICAod2hpY2ggeW91IGluc3RhbGwgd2l0aCB5b3VyIHN5c3RlbSdzIHBhY2thZ2UgbWFuYWdlcikuCgkgIFB1dCB0aGlzIGluIC9ldGMvYmFzaF9jb21wbGV0aW9uLmQvIG9yIGluIGBwa2ctY29uZmlnCgkgIC0tdmFyaWFibGU9Y29tcGF0ZGlyIGJhc2gtY29tcGxldGlvbmAsIHdoZXJlIGl0IHdpbGwgYmUgbG9hZGVkIGF0IHRoZQoJICBiZWdpbm5pbmcgb2YgZXZlcnkgbmV3IHRlcm1pbmFsIHNlc3Npb247CgkgIG9yIGluIGBwZ2stY29uZmlnIC0tdmFyaWFibGU9Y29tcGxldGlvbnNkaXIgYmFzaC1jb21wbGV0aW9uYCwgcmVuYW1lZCB0bwoJICBtYXRjaCB0aGUgbmFtZSBvZiB0aGUgY29tbWFuZCBpdCBjb21wbGV0ZXMgKGUuZy4gImdzdC1sYXVuY2gtMS4wIiwgd2l0aAoJICBhbiBhZGRpdGlvbmFsIHN5bWxpbmsgbmFtZWQgImdzdC1pbnNwZWN0LTEuMCIpLCB3aGVyZSBpdCB3aWxsIGJlCgkgIGF1dG9sb2FkZWQgd2hlbiBuZWVkZWQuCgkgIHRlc3QtZ3N0cmVhbWVyLWNvbXBsZXRpb24uc2ggaXMgKGZvciBub3cpIGluIHRlc3RzL21pc2MgLS0gaXQgbWlnaHQgYmUKCSAgd29ydGggY3JlYXRpbmcgInRlc3RzL2NoZWNrL3Rvb2xzIiwgd2l0aCBhbGwgdGhlIG5lY2Vzc2FyeSBhdXRvbWFrZQoJICBib2lsZXJwbGF0ZSwgYW5kIG1vdmluZyB0ZXN0LWdzdHJlYW1lci1jb21wbGV0aW9uLnNoIHRoZXJlLCBhbmQgaGF2ZSBpdAoJICBydW4gYXV0b21hdGljYWxseSB3aXRoICJtYWtlIGNoZWNrIi4KCSAgSUYgWU9VJ1JFIE5FVyBUTyBCQVNIIENPTVBMRVRJT04gU0NSSVBUUwoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgkgICJjb21wbGV0ZSAtRiBfZ3N0X2xhdW5jaCBnc3QtbGF1bmNoLTEuMCIgbWVhbnMgdGhhdCBiYXNoIHdpbGwgcnVuIHRoZQoJICBmdW5jdGlvbiAiX2dzdF9sYXVuY2giIHRvIGdlbmVyYXRlIHBvc3NpYmxlIGNvbXBsZXRpb25zIGZvciB0aGUgY29tbWFuZAoJICAiZ3N0LWxhdW5jaC0xLjAiLgoJICAiX2dzdF9sYXVuY2giIG11c3QgcmV0dXJuIHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBpbiB0aGUgYXJyYXkgdmFyaWFibGUKCSAgQ09NUFJFUExZLiAoTm90ZSBvbiBiYXNoIHN5bnRheDogIlY9KGEgYiBjKSIgYXNzaWducyB0aHJlZSBlbGVtZW50cyB0bwoJICB0aGUgYXJyYXkgIlYiKS4KCSAgImNvbXBnZW4iIHByaW50cyBhIGxpc3Qgb2YgcG9zc2libGUgY29tcGxldGlvbnMgdG8gc3RhbmRhcmQgb3V0cHV0LiBUcnkKCSAgaXQ6CgkgIGNvbXBnZW4gLVcgImFiYzEgYWJjMiBkZWYiIC0tICJhIgoJICBjb21wZ2VuIC1mIC0tICIvIgoJICBUaGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgd29yZCBjdXJyZW50bHkgYmVpbmcgY29tcGxldGVkOyBjb21wZ2VuIHVzZXMgaXQKCSAgdG8gZmlsdGVyIG91dCB0aGUgbm9uLW1hdGNoaW5nIGNvbXBsZXRpb25zLiBXZSBwdXQgIi0tIiBmaXJzdCwgaW4gY2FzZQoJICB0aGUgd29yZCBjdXJyZW50bHkgYmVpbmcgY29tcGxldGVkIHN0YXJ0cyB3aXRoICItIiBvciAiLS0iLCBzbyB0aGF0IGl0CgkgIGlzbid0IHRyZWF0ZWQgYXMgYSBmbGFnIHRvIGNvbXBnZW4uCgkgIEZvciB0aGUgZG9jdW1lbnRhdGlvbiBvZiBDT01QX1dPUkRTLCBDT01QX0NXT1JELCBldGMgc2VlCgkgIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvQmFzaC1WYXJpYWJsZXMuaHRtbCNpbmRleC1DT01QXzAwNWZDV09SRC0xODAKCSAgU2VlIGFsc286CgkgICogaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9Qcm9ncmFtbWFibGUtQ29tcGxldGlvbi5odG1sCgkgICogaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9Qcm9ncmFtbWFibGUtQ29tcGxldGlvbi1CdWlsdGlucy5odG1sCgkgIFRoZSBiYXNoLWNvbXBsZXRpb24gcGFja2FnZSBwcm92aWRlcyB0aGUgaGVscGVyIGZ1bmN0aW9uCgkgICJfaW5pdF9jb21wbGV0aW9uIiB3aGljaCBwb3B1bGF0ZXMgdmFyaWFibGVzICJjdXIiLCAicHJldiIsIGFuZCAid29yZHMiLgoJICBTZWUKCSAgaHR0cDovL2Fub25zY20uZGViaWFuLm9yZy9naXR3ZWIvP3A9YmFzaC1jb21wbGV0aW9uL2Jhc2gtY29tcGxldGlvbi5naXQ7YT1ibG9iO2Y9YmFzaF9jb21wbGV0aW9uO2g9ODcwODExYjQ7aGI9SEVBRCNsNjM0CgkgIE5vdGUgdGhhdCBieSBkZWZhdWx0LCBiYXNoIGFwcGVuZHMgYSBzcGFjZSB0byB0aGUgY29tcGxldGVkIHdvcmQuIFdoZW4KCSAgdGhlIGNvbXBsZXRpb24gaXMgInByb3BlcnR5PSIgd2UgZG9uJ3Qgd2FudCBhIHRyYWlsaW5nIHNwYWNlOyBjYWxsaW5nCgkgICJjb21wb3B0IC1vIG5vc3BhY2UiIG1vZGlmaWVzIHRoZSBjdXJyZW50bHktZXhlY3V0aW5nIGNvbXBsZXRpb24KCSAgYWNjb3JkaW5nbHkuIFNlZQoJICBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYmFzaC9tYW51YWwvaHRtbF9ub2RlL1Byb2dyYW1tYWJsZS1Db21wbGV0aW9uLUJ1aWx0aW5zLmh0bWwjaW5kZXgtY29tcG9wdAoKMjAxMi0xMS0xMyAxNjozNjo0NiArMDAwMCAgRGF2aWQgUm90aGxpc2JlcmdlciA8ZGF2aWRAcm90aGxpcy5uZXQ+CgoJKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246IFVwZGF0ZWQgdG8gd29yayB3aXRoIHRoZSBiaW5hcnkgcmVnaXN0cnkKCSAgVGhlIG9yaWdpbmFsIHJlZ2lzdHJ5IHdhcyBpbiB4bWwgZm9ybWF0ICh+Ly5nc3RyZWFtZXItKi9yZWdpc3RyeS54bWwpLiBBCgkgIGJpbmFyeSByZWdpc3RyeSBmb3JtYXQgd2FzIGFkZGVkIGluIDIwMDcgKGNvbW1pdCBlYmYwYzlkMykgYW5kIG1hZGUgdGhlCgkgIGRlZmF1bHQgaW4gMjAwOCAoY29tbWl0IDNmMzlmZDdlKS4gSW4gMC4xMCB5b3UgY291bGQgc3RpbGwgY2hvb3NlIGF0CgkgICJjb25maWd1cmUiIHRpbWUgdG8gdXNlIHRoZSB4bWwgcmVnaXN0cnkgaW5zdGVhZDsgaW4gMS4wIHRoZSBiaW5hcnkKCSAgcmVnaXN0cnkgaXMgeW91ciBvbmx5IGNob2ljZS4KCSAgVGhpcyBjaGFuZ2UgdG8gZ3N0cmVhbWVyLWNvbXBsZXRpb24gc2hvdWxkIHdvcmsgd2l0aCBlaXRoZXIgZm9ybWF0CgkgIGJlY2F1c2UgaXQgcGFyc2VzIHRoZSBvdXRwdXQgb2YgImdzdC1pbnNwZWN0IiBpbnN0ZWFkIG9mIHJlYWRpbmcgdGhlCgkgIHJlZ2lzdHJ5IGZpbGUgZGlyZWN0bHkuCgkgIE5vdGUgdGhhdCBfZ3N0X2xhdW5jaCBubyBsb25nZXIgbmVlZHMgYW4gZXhwbGljaXQgInJldHVybiAwIiBiZWNhdXNlLAoJICB1bmxpa2UgdGhlIHByZXZpb3VzIGdyZXAgY29tbWFuZCwgY29tcGdlbiBhbHdheXMgcmV0dXJucyAwICh1bmxlc3MgYQoJICBnZW51aW5lIGVycm9yIG9jY3VycykuCgkgIEp1c3QgbGlrZSB0aGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gYnkgRGF2aWQgU2NobGVlZiwgdGhpcyAib25seQoJICBjb21wbGV0ZXMgbmFtZXMgb2YgZmVhdHVyZXMsIGJ1dCB0aGF0J3MgOTAlIG9mIHdoYXQgSSB3YW50IGl0IGZvci4iCgoyMDEzLTA0LTI5IDIxOjExOjM2ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nLXRvLTEuMC50eHQ6IG5pdCBjbGFyaWZpY2F0aW9uCgkgIEl0IGlzIHRoZSBwcm9jZXNzIGNvbnRleHQgdGhhdCBtYXR0ZXJzLgoKMjAxMy0wNC0yOSAxMzoyMDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogQWx3YXlzIGxlYXZlIFRZUEVGSU5EIG1vZGUgd2hlbiB3ZSdyZSBzdG9wcGluZyB0eXBlZmluZGluZwoKMjAxMy0wNC0yOSAxMzowMzoyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU2ltcGxpZnkgY29kZQoJICBUaGlzIGlzIG9ubHkgY2FsbGVkIHdoZW4gaW4gVFlQRUZJTkQgbW9kZS4KCjIwMTMtMDQtMjkgMTI6NTg6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFB1c2ggcGVuZGluZyBldmVudHMgaW5kZXBlbmRlbnQgb2YgdGhlIGV4aXN0ZW5jZSBvZiBhIGRvd25zdHJlYW0gY2hhaW4gZnVuY3Rpb24gYW5kIHBlZXIKCSAgRG93bnN0cmVhbSBtaWdodCBjcmVhdGUgYSBwZWVyIG9ubHkgYXMgcmVzdWx0IG9mIHRoZSBldmVudHMgaW4gdGhlb3J5LgoKMjAxMy0wNC0yOSAxMjo1Njo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogT25seSBwdXNoIENBUFMgZXZlbnQgb25jZSBpZiB3ZSBnZXQgb25lIGZyb20gdXBzdHJlYW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5Mjc4NAoKMjAxMy0wNC0yOSAxMjo1NDoyNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogU3RvcCB0eXBlZmluZGluZyBpZiB3ZSBnZXQgYSBDQVBTIGV2ZW50IGZyb20gdXBzdHJlYW0KCjIwMTMtMDQtMjkgMTI6NTI6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEltcHJvdmUgaGFuZGxpbmcgb2YgR0FQIGV2ZW50cwoJICBUaGVyZSdzIHN0aWxsIHJvb20gZm9yIGltcHJvdmVtZW50IHRob3VnaC4KCjIwMTMtMDQtMjkgMTI6NDg6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEZvcndhcmQgZXZlbnRzIHRoYXQgc2hvdWxkIGhhcHBlbiBiZWZvcmUgdGhlIGNhcHMgZXZlbnQgZGlyZWN0bHkKCSAgVGhlcmUncyBubyBwb2ludCBpbiBzdG9yaW5nIHRoZW0gYW5kIHNlbmRpbmcgdGhlbSBsYXRlciwgYW5kIGRvaW5nIHNvIHdvdWxkCgkgIGxhdGVyIHJlcXVpcmUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBldmVudHMgdGhhdCBzaG91bGQgY29tZSBiZWZvcmUgY2FwcyBhbmQKCSAgYWZ0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI3ODQKCjIwMTMtMDQtMjkgMTI6NDg6MTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IE9ubHkgcHVzaCBwZW5kaW5nIGJ1ZmZlcnMgYW5kIGV2ZW50cyBpZiB3ZSBoYXZlIGNhcHMKCjIwMTMtMDQtMjkgMTI6Mzk6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJlbW92ZSBjb2RlIHRoYXQgd291bGQgY2F1c2UgY2FwcyB0byBiZSBzZW50IHR3aWNlCgkgIFdoZW5ldmVyIHdlIHNldCB0eXBlZmluZC0+Y2FwcyB3ZSB3aWxsIGFsc28gc2VuZCBhIGNhcHMgZXZlbnQgZG93bnN0cmVhbS4KCjIwMTMtMDQtMjcgMjA6MzM6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBpbXByb3ZlIGFsbG9jYXRpb24gZG9jcwoKMjAxMy0wNC0yNyAxMTo0NjoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBzZXQgQ0tfVElNRU9VVF9NVUxUSVBMSUVSIG9uIEFSTQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk1NTk5CgoyMDEzLTA0LTI3IDAwOjA1OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdHlwZWZpbmQ6IGZpeCBjYXBzIGxlYWsgd2hlbiB1c2VkIGluIGNvbm5lY3Rpb24gd2l0aCB1cmlkZWNvZGViaW4gYW5kIHBsYXliaW4KCSAgRG9uJ3QgbGVhayBmb3JjZWQgc2luayBjYXBzLgoKMjAxMy0wNC0yMiAxODowODo0MyAtMDMwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sbGVyOiBGaXggZWxlbWVudC10eXBlIGFubm90YXRpb25zCgoyMDEzLTA0LTI1IDE2OjM4OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBUcnkgdG8gbm90IHB1c2ggcmVhZC1vbmx5IGJ1ZmZlcnMKCSAgV2Ugc2hvdWxkIG9ubHkgaW5jcmVhc2UgdGhlIHJlZmNvdW50IGJlZm9yZSBwdXNoaW5nIGlmIHdlJ3JlCgkgIHJlYWxseSBnb2luZyB0byB1c2UgdGhlIGJ1ZmZlciBhZnRlcndhcmRzLgoKMjAxMy0wNC0yNSAwNzoxNTozOSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZEBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBhZGQgY2hlY2sgZm9yIEZMVVNIIHBhZCBwcm9iZXMKCjIwMTMtMDQtMjQgMDg6NDA6MzIgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IHJ1biBwcm9iZXMgZm9yIEZMVVNIIGV2ZW50cyBzZW50IHdpdGggZ3N0X3BhZF9zZW5kX2V2ZW50CgkgIE1vdmUgcHJvYmUgaGFuZGxpbmcgaW4gZ3N0X3BhZF9zZW5kX2V2ZW50X3VuY2hlY2tlZCBzbyB0aGF0IHByb2JlcyBhcmUgcnVuIGZvcgoJICBGTFVTSCBldmVudHMgdG9vLgoKMjAxMy0wNC0yNCAxNTo1ODo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXRjbG9jazogQWRkIHN1cHBvcnQgZm9yIElQdjYKCjIwMTMtMDQtMjQgMTI6MzA6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nLXRvLTEuMC50eHQ6IGFkZCB0cm91Ymxlc2hvb3Rpbmcgc2VjdGlvbgoJICBBZGQgbm90ZSBhYm91dCAiY2Fubm90IHJlZ2lzdGVyIGV4aXN0aW5nIHR5cGUgYEdzdE9iamVjdCciIHdhcm5pbmcuCgoyMDEzLTA0LTIzIDExOjQ3OjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogT25seSBpbmZlciBUUyBpZiBQVFMgaW50ZXJwb2xhdGlvbiBpcyBlbmFibGVkCgkgIE90aGVyd2lzZSB0aGlzIGlzIGJyZWFraW5nIHRpbWVzdGFtcHMgb2YgZm9ybWF0cyB0aGF0CgkgIG5lZWQgcmVvcmRlcmluZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5NzY2MgoKMjAxMy0wNC0yMyAxMToxNzowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBub3RpZnkgY2FwcyBwcm9wZXJ0eSBvbiBOVUxMIGFzIHdlbGwKCSAgQWxzbyBub3RpZnkgdGhlIGNhcHMgcHJvcGVydHkgd2hlbiBpdCBjaGFuZ2VzIHRvIE5VTEwKCjIwMTMtMDQtMjMgMTE6MTY6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogY2xhcmlmeSBsb2NraW5nCgoyMDEzLTA0LTIyIDIzOjUwOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogTUFJTlRBSU5FUlM6CgkqIFJFQURNRToKCSogUkVBRE1FLnN0YXRpYy1saW5raW5nOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNjYjNkM2MgdG8gNWVkY2Q4NQoKMjAxMy0wNC0xOSAxNTowMToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC1jb250ZXh0LnR4dDoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSAgcGFydC1jb250ZXh0OiBXcml0ZSBzb21lIGRlc2lnbiBkb2N1bWVudGF0aW9uIGFib3V0IEdzdENvbnRleHQKCjIwMTMtMDQtMTkgMTM6MjE6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgcGFydC1jYXBzOiBBZGQgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjYXBzIGZlYXR1cmVzLCBjYXBzIHNlbWFudGljcyBhbmQgaG93IHRvIHVzZSB0aGVtCgoyMDEzLTA0LTE5IDExOjIzOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgY2Fwc2ZlYXR1cmVzOiBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCBBTlkgR3N0Q2Fwc0ZlYXR1cmVzCgoyMDEzLTA0LTE5IDEwOjI0OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IHNldCBsYXN0X3JlbmRlcl90aW1lIGlmIHdlJ3JlIGNoZWNraW5nIGZvciBhIGxhdGUgYnVmZmVyIGJlZm9yZSA6OnByZXBhcmUoKQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBhdCBsZWFzdCBvbmUgYnVmZmVyIHBlciBzZWNvbmQgaXMgcmVuZGVyZWQgaWYgYnVmZmVycwoJICBhcmUgZHJvcHBlZCBiZWZvcmUgOjpwcmVwYXJlLiBXaXRob3V0IHRoaXMgY2hhbmdlLCBhdCBsZWFzdCBvbmUgYnVmZmVyIHBlcgoJICBzZWNvbmQgd291bGRuJ3QgYmUgdG9vIGxhdGUgYmVmb3JlIDo6cHJlcGFyZSBhbnltb3JlIGJ1dCB3b3VsZCBiZSBkcm9wcGVkCgkgIGJlZm9yZSA6OnJlbmRlciBiZWNhdXNlIG9mIGxhc3RfcmVuZGVyX3RpbWUgYmVpbmcgc2V0IGJlZm9yZSA6OnByZXBhcmUKCSAgYWxyZWFkeS4KCjIwMTMtMDItMDggMDM6NTc6NDQgLTAyMDAgIEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzIChhbmRydW5rbykgPGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZCBjb21wYXJlIGZ1bmN0aW9uIGZvciBjYXBzCgoyMDEzLTAxLTE1IDE2OjU3OjIwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRhdGFxdWV1ZTogYWRkIGdzdF9kYXRhX3F1ZXVlX3BlZWsKCSAgVGhpcyBmdW5jdGlvbiB3b3JrcyBqdXN0IGxpa2UgZ3N0X2RhdGFfcXVldWVfcG9wLCBidXQgaXQgZG9lc24ndAoJICByZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBxdWV1ZS4KCSAgVXNlZnVsIHdoZW4gaW5zcGVjdGluZyBtdWx0aXBsZSBHc3REYXRhUXVldWVzIHRvIGRlY2lkZSBmcm9tIHdoaWNoCgkgIHRvIHBvcCB0aGUgZWxlbWVudCBmcm9tLgoJICBBZGQ6IGdzdF9kYXRhX3F1ZXVlX3BlZWsKCjIwMTMtMDQtMTggMTA6MTQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGlnbm9yZSBuZXcgdGVzdCBiaW5hcnkKCjIwMTMtMDQtMTggMTA6MTM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiB1cGRhdGUgZm9yIGxhdGVzdCBjb250ZXh0IEFQSSBjaGFuZ2VzCgoyMDEzLTA0LTE4IDEwOjE3OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250ZXh0LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250ZXh0OiBBZGQgZ3N0X2NvbnRleHRfd3JpdGFibGVfc3RydWN0dXJlKCkgYW5kIGxldCBnZXRfc3RydWN0dXJlKCkgcmV0dXJuIGNvbnN0IGFnYWluCgoyMDEzLTA0LTE4IDAwOjQ0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSAgcHJpbnRmOiBmaXggaGFuZGxpbmcgb2Ygb2xkIHByaW50ZiBleHRlbnNpb24gc3BlY2lmaWVycyBmb3IgQUJJIGNvbXBhdGliaWxpdHkKCSAgRml4ZXMgYWJvcnQgd2hlbiB0aGUgb2xkIHNwZWNpZmllcnMgYXJlIHVzZWQuIEZpeCB1cCB0aGUgY29udmVyc2lvbgoJICBzcGVjaWZpZXIsIGl0IHdvdWxkIGdldCBvdmVyd3JpdHRlbiB3aXRoICdjJyBiZWxvdyB0byB0aGUgZXh0ZW5zaW9uCgkgIGZvcm1hdCBjaGFyLCB3aGljaCB0aGVuIGxhdGVyIGlzIHVuaGFuZGxlZCwgbGVhZGluZyB0byB0aGUgYWJvcnQuCgkgIEFsc28gZml4IHVwIGFuZCBlbmFibGUgdW5pdCB0ZXN0IGZvciB0aGlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9wcm9jZXNzX2J1Zy5jZ2kKCjIwMTMtMDQtMTggMDA6Mjg6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3Igb2xkIHByaW50ZiBleHRlbnNpb24gc3BlY2lmaWVycwoJICBUbyBtYWtlIHN1cmUgd2UgbWFpbnRhaW4gYmluYXJ5IGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgb2xkCgkgIHNwZWNpZmllcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTgyNDIKCjIwMTMtMDQtMTggMDA6MTk6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogcnVuIHNraXBwZWQgdGVzdHMgaWYgZXhwbGljaXRseSByZXF1ZXN0ZWQgdmlhIEdTVF9DSEVDS1MKCSAgSWYgYSB0ZXN0IHRoYXQncyBkaXNhYmxlZCB3aXRoIHRjYXNlX3NraXBfYnJva2VuX3Rlc3QoKSBpcyBsaXN0ZWQKCSAgaW4gdGhlIEdTVF9DSEVDS1MgZW52aXJvbm1lbnQgdmFyaWFibGUsIHJ1biBpdCBhbnl3YXkuCgoyMDEzLTA0LTE3IDEzOjQ3OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogQWRkIEdzdENvbnRleHQgc3VwcG9ydAoJICBnc3QtbGF1bmNoIHdpbGwgY29sbGVjdCBhbGwgdGhlIGNvbnRleHRzIGZyb20gdGhlIHBpcGVsaW5lIGVsZW1lbnRzCgkgIGFuZCB1cGRhdGUgdGhlIG92ZXJhbGwgcGlwZWxpbmUgY29udGV4dCB3aXRoIGl0LgoKMjAxMy0wNC0xNyAxMjo0NDoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRleHQuYzoKCSAgY29udGV4dDogQWRkIHVuaXQgdGVzdCBmb3IgR3N0Q29udGV4dAoKMjAxMy0wNC0xNyAxMjoxNzo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29udGV4dC5jOgoJKiBnc3QvZ3N0Y29udGV4dC5oOgoJICBjb250ZXh0OiBSZXR1cm4gYSBub24tY29uc3QgR3N0U3RydWN0dXJlIHRvIG1ha2UgY29kZSBzaW1wbGVyIGFuZCB1cGRhdGUgZG9jcwoKMjAxMy0wMy0yOSAxNDo1Njo1NyArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgIHF1ZXJ5OiBuZXcgX0JBTkRXSURUSF9MSU1JVEVEIGZsYWcKCSAgU291cmNlIGVsZW1lbnRzIHdpdGggbGltaXRlZCBiYW5kd2lkdGggY2FwYWJpbGl0aWVzIGFuZCBzdXBwb3J0aW5nCgkgIGJ1ZmZlcmluZyBmb3IgZG93bnN0cmVhbSBlbGVtZW50cyBzaG91bGQgc2V0IHRoaXMgZmxhZyB3aGVuIGFuc3dlcmluZwoJICBhIHNjaGVkdWxpbmcgcXVlcnkuIFRoaXMgaXMgdXNlZnVsIGZvciB0aGUgb24tZGlzayBidWZmZXJpbmcgc2NlbmFyaW8KCSAgb2YgdXJpZGVjb2RlYmluIHRvIGF2b2lkIGNoZWNraW5nIHRoZSBVUkkgcHJvdG9jb2wgYWdhaW5zdCBhIGxpc3Qgb2YKCSAgaGFyZGNvZGVkIHByb3RvY29scy4KCSAgQnVnIDY5MzQ4NAoKMjAxMy0wNC0xNiAwOTo1NTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogZml4IG1pc3NpbmcgZmxhY2RlYyBpbiBwb3J0aW5nLXRvLTEuMCBwaXBlbGluZSBleGFtcGxlCgoyMDEzLTA0LTE2IDA5OjAzOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBhZGQgbm90ZSBhYm91dCBkZWNvZGVycyBhbmQgcGFyc2VycyB0byBwb3J0aW5nLXRvLTEuMCBkb2MKCjIwMTItMTAtMjQgMTE6NTg6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgIGdzdDogQWRkIGJldHRlciBzdXBwb3J0IGZvciBzdGF0aWMgcGx1Z2lucwoJICBBUEk6IEdTVF9QTFVHSU5fU1RBVElDX0RFQ0xBUkUoKQoJICBBUEk6IEdTVF9QTFVHSU5fU1RBVElDX1JFR0lTVEVSKCkKCSAgQmFzZWQgb24gYSBwYXRjaCBieSBIw6V2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPi4KCSAgVGhpcyBub3cgYWxsb3dzIEdTVF9QTFVHSU5fREVGSU5FKCkgdG8gY3JlYXRlIGEgc3RhdGljIHBsdWdpbiBpZgoJICBHU1RfUExVR0lOX0JVSUxEX1NUQVRJQyBpcyBkZWZpbmVkLiBUaGUgcmVzdWx0aW5nIHBsdWdpbiBjYW4gYmUKCSAgc3RhdGljYWxseSBsaW5rZWQgb3IgZHluYW1pY2FsbHkgbGlua2VkIGR1cmluZyBjb21waWxhdGlvbiBidXQKCSAgY2FuJ3QgYmUgZHluYW1pY2FsbHkgbG9hZGVkIGR1cmluZyBydW50aW1lLgoJICBBbHNvIGFkZHMgR1NUX1BMVUdJTl9TVEFUSUNfREVDTEFSRSgpIGFuZCBHU1RfUExVR0lOX1NUQVRJQ19SRUdJU1RFUigpLAoJICB3aGljaCBhbGxvd3MgdG8gcmVnaXN0ZXIgYSBzdGF0aWMgbGlua2VkIHBsdWdpbiBlYXNpbHkuCgkgIEl0IGlzIHN0aWxsIHJlcXVpcmVkIHRvIG1hbnVhbGx5IHJlZ2lzdGVyIGV2ZXJ5IHNpbmdsZSBzdGF0aWNhbGx5IGxpbmtlZAoJICBwbHVnaW4gZnJvbSBpbnNpZGUgdGhlIGFwcGxpY2F0aW9uIGFzIHRoaXMgY2FuJ3QgYmUgYXV0b21hdGVkIGluIGEgcG9ydGFibGUKCSAgd2F5LgoJICBBIG5ldyBjb25maWd1cmUgcGFyYW1ldGVyIC0tZW5hYmxlLXN0YXRpYy1wbHVnaW5zIHdhcyBhZGRlZCB0aGF0IGFsbG93cwoJICB0byBidWlsZCBhbGwgcGx1Z2lucyB3ZSBidWlsZCBoZXJlIGFzIHN0YXRpYyBwbHVnaW5zLgoJICBGaXhlcyBidWcgIzY2NzMwNS4KCjIwMTMtMDQtMTIgMTM6NTA6MzkgKzEyMDAgIERvdWdsYXMgQmFnbmFsbCA8ZG91Z2xhc0BwYXJhZGlzZS5uZXQubno+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgbWFudWFsOiBQYXRjaCBtYW51YWwgdG8gcmVmZXIgdG8gcG9ydGluZyBndWlkZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3ODQ1CgoyMDEzLTA0LTEzIDE5OjQzOjEwICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBGaXggdGhlIEdzdFBsdWdpbkZlYXR1cmUgbmFtZSBjb21wYXJpc29uLgoJICBUaGUgZ3N0X3BsdWdpbl9mZWF0dXJlX3JhbmtfY29tcGFyZV9mdW5jKCkgc2hvdWxkIHJldHVybgoJICBuZWdhdGl2ZSB2YWx1ZSwgaWYgdGhlIHJhbmsgb2YgYm90aCBQbHVnaW5GZWF0dXJlcyBhcmUgZXF1YWwgYW5kCgkgIHRoZSBuYW1lIG9mIGZpcnN0IFBsdWdpbkZlYXR1cmUgY29tZXMgYmVmb3JlIHRoZSBzZWNvbmQgb25lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3OTkwCgoyMDEzLTA0LTE0IDE3OjU0OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyNzM2NTkyIHRvIDNjYjNkM2MKCjIwMTMtMDQtMTQgMTc6MjU6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGFlZDg3YWUgdG8gMjczNjU5MgoKMjAxMy0wNC0xNCAxMTozMzo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLmg6CgkgIHByaW50ZjogZGlzYWJsZSBzb21lIHVudXNlZCBwcmludGYgdmFyaWFudHMKCjIwMTMtMDQtMTQgMTE6MjM6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSAgcHJpbnRmOiB1c2Ugc3ByaW50ZigpIHRvIHdvcmsgYXJvdW5kIGdsaWJjIGNvbXBsYWluaW5nIGFib3V0ICVuIGluIGEgd3JpdGFibGUgZm9ybWF0IHN0cmluZwoJICBEb24ndCB1c2Ugc25wcmludGYoKSwgYnV0IHVzZSBzcHJpbnRmIGluc3RlYWQgYW5kIGRvIG91ciBvd24KCSAgbGVuZ3RoIGNhbGN1bGF0aW9ucywgYmVjYXVzZSBnbGliYyBtYXkgY29tcGxhaW4gYWJvdXQgdXMgcGFzc2luZwoJICAlbiBpbiBhIGZvcm1hdCBzdHJpbmcgaWYgdGhlIHN0cmluZyBpcyBpbiB3cml0YWJsZSBtZW1vcnksIGFuZAoJICBoZXJlIHRoZSBmb3JtYXQgc3RyaW5nIGlzIGFsd2F5cyBpbiB3cml0YWJsZSBtZW1vcnkgc2luY2Ugd2UKCSAgY29uc3RydWN0IGl0IG9uIHRoZSBmbHkuIFRoaXMgaGFwcGVucyBpZiBnbGliYyBoYXMgYmVlbiBjb21waWxlZAoJICB3aXRoIF9GT1JUSUZZX1NPVVJDRT0yLCB3aGljaCBzZWVtcyB0byBiZSB0aGUgY2FzZSBvbiBzb21lCgkgIGRpc3Ryb3Mvc3lzdGVtcykuIE9uIHRoZSB1cHNpZGUsIHdlIG5vdyB1c2UgdGhlIHNwcmludGYgY29kZSBwYXRoCgkgIG9uIGFsbCBzeXN0ZW1zIHdoaWNoIHNob3VsZCBiZSBiZXR0ZXIgZnJvbSBhIG1haW50ZW5hbmNlIHBvaW50CgkgIG9mIHZpZXcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc5NzAKCjIwMTMtMDQtMTMgMTI6MTg6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOgoJICB0ZXN0czogc2tpcCBhbGwgR3N0UG9sbCB0ZXN0cyBvbiBXaW5kb3dzCgkgIEFzIHRoZXkgZG9uJ3Qgd29yayB0aGVyZSwgYW5kIGl0J3Mgbm9uLXRyaXZpYWwgdG8gZml4LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NjA5CgoyMDEzLTA0LTEzIDEyOjAwOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IG9ubHkgYWRkIGEgJyonIGZvciBub24tJ2dwb2ludGVyJyBwb2ludGVycwoJICBTcG90dGVkIGJ5IEpvc2UgQW50b25pbyBTYW50b3MgQ2FkZW5hLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NzkxCgoyMDEzLTA0LTEyIDE0OjQ4OjI5ICswMjAwICBHd2Vub2xlIEJlYXVjaGVzbmUgPGd3ZW5vbGUuYmVhdWNoZXNuZUBpbnRlbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHBsdWdpbjogZml4IG5hbWUgZXhwYW5zaW9uIGZvciBHU1RfUExVR0lOX0RFRklORSBtYWNybwoJICBNYWtlIEdTVF9QTFVHSU5fREVGSU5FIHVzZSBHX1NUUklOR0lGWSgpIHRvIGNvbnZlcnQgdGhlIG5hbWUgYXJndW1lbnQKCSAgaW50byBhIG1lYW5pbmdmdWwgc3RyaW5nLiBUaGUgYWR2YW50YWdlIG9mIHRoaXMgaXMgdGhhdCBgbmFtZScgY2FuIGJlCgkgIGV4cGFuZGVkIGZyb20gb3RoZXIgbWFjcm9zIGRlZmluZWQgaW4gdGhlIHBsdWctaW4gZWxlbWVudC4KCSAgU2lnbmVkLW9mZi1ieTogR3dlbm9sZSBCZWF1Y2hlc25lIDxnd2Vub2xlLmJlYXVjaGVzbmVAaW50ZWwuY29tPgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3ODcyCgoyMDEzLTA0LTEzIDExOjM1OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogYWRkIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5ncwoKMjAxMy0wNC0xMiAyMzo1ODo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIHByaW50ZjogZG9uJ3QgYnVpbGQgaWYgZGVidWdnaW5nIHN1YnN5c3RlbSB3YXMgZGlzYWJsZWQKCjIwMTMtMDQtMTAgMTE6NTE6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvZ3N0LXByaW50Zi5oOgoJICBwcmludGY6IGRlYWwgd2l0aCBzb21lIG9mIHRoZSBIQVZFX0ZPTyB1c2VkIGluIHRoZSBwcmludGYgY29kZQoJICBQcm9iYWJseSBuZWVkcyBzb21lIG1vcmUgd29yayBmb3IgTVNWQy4KCjIwMTMtMDQtMDggMTk6NDI6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3ByaW50Zi9SRUFETUU6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGZpeCBhbGxvY2EgdXNlIGZvciB3aW5kb3dzIHdpdGggbWluZ3czMgoJICBEb24ndCB1c2UganVzdCBHTElCX0hBVkVfQUxMT0NBX0ggdG8gY2hlY2sgaWYgYWxsb2NhIGlzIGF2YWlsYWJsZSwKCSAgdGhhdCdzIGp1c3QgZm9yIHRoZSBoZWFkZXIuIEdMaWIgbWF5IGRlZmluZSBhbGxvY2EgZm9yIHVzIG90aGVyd2lzZQoJICB0b28gaXJyZXNwZWN0aXZlIG9mIEdMSUJfSEFWRV9BTExPQ0FfSC4KCSAgRml4ZXMgY29tcGlsZXIgd2FybmluZyB3aXRoIG1pbmd3MzI6CgkgIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOjczOjA6IHdhcm5pbmc6ICJhbGxvY2EiIHJlZGVmaW5lZAoKMjAxMy0wNC0wNyAyMDoxMToyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L3ByaW50Zi9NYWtlZmlsZS5hbToKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogZW5hYmxlIGFuZCBmaXggY29tcGlsZXIgd2FybmluZ3MKCSAgQnV0IHN1cHByZXNzIC1XZm9ybWF0LW5vbmxpdGVyYWwgd2FybmluZ3Mgc2luY2Ugc3ByaW50ZgoJICBpcyB1c2VkIHdpdGggYSBydW50aW1lLWdlbmVyYXRlZCBmb3JtYXQgc3RyaW5nIGluIG91cgoJICB2YXNucHJpbnRmIGltcGxlbWVudGF0aW9uLgoKMjAxMy0wNC0wNyAxODoyMTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuaDoKCSAgcHJpbnRmOiBmaXggdXAgZG9kZ3kgdXNlIG9mICNpZiBIQVZFX0ZPTyBhbmQgI2lmICFIQVZFX0ZPTwoJICBTaG91bGQgdXNlICNpZmRlZiBhbmQgI2lmbmRlZi4KCjIwMTMtMDQtMDcgMTc6MzY6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL01ha2VmaWxlLmFtOgoJICBwcmludGY6IG1hcmsgaW50ZXJuYWwgZnVuY3Rpb25zIGFzIGludGVybmFsCgoyMDEzLTA0LTA3IDE3OjI5OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSAgcHJpbnRmOiBza2lwIHBvaW50ZXIgZXh0ZW5zaW9uIHNpZ25pZmllciBjaGFycyBhZnRlciAlcAoJICBTbyB0aGV5IGRvbid0IGdldCBwcmludGVkIGFmdGVyIHRoZSBzZXJpYWxpc2VkIHBvaW50ZXIgc3RyaW5nLgoKMjAxMy0wNC0wNyAxNzoyMToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJICBwcmludGY6IGRvbid0IGxlYWsgc2VyaWFsaXNlZCBwb2ludGVyIGV4dGVuc2lvbiBzdHJpbmdzCgoyMDEzLTA0LTA3IDE3OjAyOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSAgcHJpbnRmOiBoYW5kbGUgb2xkIEdTVF9QVFJfRk9STUFUICVQIGFuZCBHU1RfU0VHTUVOVF9GT1JNQVQgJVEgZGVmaW5lcyB0b28KCSAgRm9yIGJpbmFyeSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCjIwMTMtMDQtMDcgMTY6NDE6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1hcmdzLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLWFyZ3MuaDoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtcGFyc2UuaDoKCSogZ3N0L3ByaW50Zi92YXNucHJpbnRmLmM6CgkgIHByaW50ZjogbWFrZSBwcmludGYgcGFyc2VyIHJlY29nbmlzZSBvdXIgcG9pbnRlciBleHRlbnNpb24gZm9ybWF0CgkgIGFuZCBjYWxsIHRoZSBob29rIHRvIGdldCBhIHN0cmluZyBmb3IgdGhlIHBvaW50ZXIgaW5zdGVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzA4MQoKMjAxMy0wMy0zMCAxODoyODozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvUkVBRE1FOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1leHRlbnNpb24uYzoKCSogZ3N0L3ByaW50Zi9wcmludGYtZXh0ZW5zaW9uLmg6CgkgIHByaW50ZjogYWRkIGluZnJhc3RydWN0dXJlIGZvciBwb2ludGVyIGV4dGVuc2lvbnMgaG9vawoJICBEb2VzIG5vdCBkbyBhbnl0aGluZyB5ZXQuIE9uIGEgc2lkZW5vdGUsIHdlIGNhbid0IGp1c3QgdXNlCgkgICVwXDAwMSBvciBzbyB0byBzaWduYWwgdGhlIGV4dGVuc2lvbiBiZWNhdXNlIGctaSBjb21wbGFpbnMKCSAgYWJvdXQgYW4gaW52YWxpZCBhc2NpaSBjaGFyYWN0ZXIgdGhlbiwgc28gaGF2ZSB0byByZXNvcnQgdG8KCSAgc29tZXRoaW5nIG1vcmUgZWxhYm9yYXRlLCBzdWNoIGFzICVwXGFBIGV0Yy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzA4MQoKMjAxMy0wMy0zMCAxNzoyMDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiB1c2UgbmV3IGludGVybmFsIHByaW50ZiBmb3IgZGVidWcgbWVzc2FnZSBwcmludGluZwoJICBhbmQgcmVtb3ZlIGFsbCB0aGUgcHJpbnRmIGV4dGVuc2lvbi9zcGVjaWZpZXIgc3R1ZmYgZm9yCgkgIHRoZSBzeXN0ZW0gcHJpbnRmLiBOZXh0IHdlIG5lZWQgdG8gYWRkIGJhY2sgdGhlIGN1c3RvbQoJICBzcGVjaWZpZXJzIHRvIG91ciBvd24gcHJpbnRmIGltcGxlbWVudGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjEzMDgxCgoyMDEzLTAzLTMwIDE1OjEzOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvTWFrZWZpbGUuYW06CgkqIGdzdC9wcmludGYvUkVBRE1FOgoJKiBnc3QvcHJpbnRmL2FzbnByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL2dzdC1wcmludGYuaDoKCSogZ3N0L3ByaW50Zi9wcmludGYtYXJncy5jOgoJKiBnc3QvcHJpbnRmL3ByaW50Zi1hcmdzLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLXBhcnNlLmg6CgkqIGdzdC9wcmludGYvcHJpbnRmLmM6CgkqIGdzdC9wcmludGYvcHJpbnRmLmg6CgkqIGdzdC9wcmludGYvdmFzbnByaW50Zi5jOgoJKiBnc3QvcHJpbnRmL3Zhc25wcmludGYuaDoKCSAgcHJpbnRmOiBhZGQgb3VyIG93biBwcmludGYgaW1wbGVtZW50YXRpb24gZm9yIGRlYnVnIGxvZ2dpbmcKCSAgV2Ugd2lsbCBhZGQgc3VwcG9ydCBmb3Igb3VyIG93biBwcmludGYgbW9kaWZpZXJzLCBzbyB3ZSBjYW4KCSAgZ2V0IG5pY2UgZGVidWcgbG9nIG91dHB1dCBvbiBhbGwgb3BlcmF0aW5nIHN5c3RlbXMgaXJyZXNwZWN0aXZlCgkgIG9mIHRoZSBzcGVjaWZpYyBsaWJjIHZlcnNpb24gdXNlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMzA4MQoKMjAxMy0wNC0xMiAxNjoxMzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGF2b2lkIHRyaWdnZXJpbmcgYW4gYXNzZXJ0aW9uCgkgIFdoZW4gZGVzZXJpYWxpemF0aW9uIG9mIHRoZSBzdHJ1Y3R1cmUgZmFpbHMsIHJldHVybiBhIE5VTEwgdGFnbGlzdCBpbnN0ZWFkIG9mCgkgIGFzc2VydGluZy4KCjIwMTMtMDQtMTEgMTQ6NTQ6MzIgKzAyMDAgIEpvc2UgQW50b25pbyBTYW50b3MgQ2FkZW5hcyA8c2FudG9zY2FkZW5hc0BnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogYWRkIHBvaW50ZXIgbWFyayB0byBzaWduYWwgYW5kIGFjdGlvbiByZXR1cm4gdHlwZXMgdGhhdCBhcmUgcG9pbnRlcnMKCSAgV2hlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYSBzaWduYWwgb3IgYWN0aW9uIGlzIGEgcG9pbnRlciwgaXQKCSAgc2hvdWxkIGhhdmUgYW4gYXN0ZXJpc2sgdG8gbWFyayBpdCBhcyBzdWNoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk3NzkxCgoyMDEzLTA0LTExIDIyOjMyOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiBkb2N1bWVudCB0eXBlIGNoYW5nZSBvZiBwbGF5YmluJ3MgY29ubmVjdGlvbi1zcGVlZCBwcm9wZXJ0eSBpbiBwb3J0aW5nIGRvY3MKCjIwMTMtMDQtMTEgMTQ6MzE6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogYWRkIF9nc3RfbWF4X21lbW9yeSgpIGZ1bmN0aW9uCgkgIEFkZCB0aGUgYSBmdW5jdGlvbiB0byBxdWVyeSB0aGUgbWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IGJsb2NrcyB0aGF0IGNhbiBiZQoJICBhZGRlZCB0byBhIGJ1ZmZlci4gQWxzbyBpbXByb3ZlIHRoZSBkb2NzIGZvciBfaW5zZXJ0X21lbW9yeSgpLgoKMjAxMy0wNC0xMSAxNDowNDo0NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBub3RpZnkgb2YgY2hhbmdlZCBib3VuZCBhZGRyZXNzCgkgIE5vdGlmeSB3aGVuIHRoZSBib3VuZCBhZGRyZXNzIGlzIGtub3duLCBqdXN0IGxpa2UgdGhlIHBvcnQuCgoyMDEzLTA0LTExIDEzOjU1OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBsYXVuY2g6IGhhbmRsZSBQUk9HUkVTUyBtZXNzYWdlcwoJICBXYWl0IGZvciBhbGwgUFJPR1JFU1MgbWVzc2FnZXMgKGlmIGFueSkgdG8gY29tcGxldGUgYmVmb3JlIGdvaW5nIHRvIHRoZSBQTEFZSU5HCgkgIHN0YXRlLiBUaGlzIGlzIHRoZSBvbmx5IHdheSB3ZSBjYW4gd2FpdCBmb3IgbGl2ZSBlbGVtZW50cyB0byBjb21wbGV0ZSB0aGVpcgoJICBvcGVyYXRpb25zLgoJICBUaGlzIGlzIGludGVyZXN0aW5nIGZvciBlbGVtZW50cyBsaWtlIHJ0c3BzcmMgdGhhdCBkbyBzb21lIGFzeW5jaHJvbm91cyBuZXR3b3JrCgkgIHJlcXVlc3RzIGFzIHBhcnQgb2YgZ29pbmcgdG8gdGhlIFBBVVNFRCBzdGF0ZS4gSXQgY291bGQgYmUgcG9zc2libGUgdGhhdCBpdCwgZm9yCgkgIGV4YW1wbGUsIHByb3ZpZGVzIGEgY2xvY2sgYW5kIHRoZW4gd2Ugd291bGQgbGlrZSB0byB3YWl0IHVudGlsIGl0IGNvbXBsZXRlcwoJICBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlIHByb3ZpZGVkIGNsb2NrIHdoZW4gZ29pbmcgdG8gUExBWUlORy4KCjIwMTMtMDQtMTEgMTU6MDU6MDggKzEyMDAgIERvdWdsYXMgQmFnbmFsbCA8ZG91Z2xhc0BwYXJhZGlzZS5uZXQubno+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIFRvZ2dsZSB1cHN0cmVhbSBhbmQgZG93bnN0cmVhbSBpbiBSRUNPTkZJR1VSRSBwYXJhZ3JhcGguCgoyMDEzLTA0LTExIDEwOjExOjI1ICsxMjAwICBEb3VnbGFzIEJhZ25hbGwgPGRvdWdsYXNAcGFyYWRpc2UubmV0Lm56PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBHc3RDb2xsZWN0UGFkcyBkb2N1bWVudGF0aW9uOiBnc3RfY29sbGVjdF9wYWRzX3JlYWQgaXMgZ29uZS4KCjIwMTMtMDQtMTAgMjE6MjQ6MzggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZml4IHRoZSBwcmVjb25kaXRpb24gZm9yIGdzdF9idXNfZGlzYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24oKQoJICBVc2UgdGhlIHJpZ2h0IHZhcmlhYmxlIGFuZCBpbnZlcnQgdGhlIHRlc3QuIFRoZSBwcmVjb25kaXRpb24gc2hvdWxkIGNhdGNoCgkgIHNvbWVvbmUgY2FsbGluZyB0byBvbmNlIHRvbyBvZnRlbi4KCjIwMTMtMDQtMDkgMTk6Mzc6MDYgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogSW5pdCBkZWJ1ZyBjYXRlZ29yeSBiZWZvcmUgZXZlciB1c2luZyBpdAoKMjAxMy0wNC0wOSAyMDo1OTozNiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMDRjN2ExZSB0byBhZWQ4N2FlCgoyMDEzLTA0LTAzIDIxOjMyOjU0ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIFVzZSB4bHN0cHJvYyBpbnN0ZWFkIG9mIGRvY2Jvb2syaHRtbAoKMjAxMy0wNC0wOSAxMDoxNzo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXRjbGllbnRjbG9jazogYmluZCBzb2NrZXQgYmVmb3JlIHF1ZXJ5aW5nIGxvY2FsIGFkZHJlc3MKCSAgRmFpbHMgb24gd2luZG93cyBvdGhlcndpc2UuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc2MDgKCjIwMTMtMDQtMDggMTM6MTQ6MzUgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IEFsc28gY2hlY2sgZm9yIGNsb2NrX2dldHRpbWUgaW4gbGlicHRocmVhZAoJICBsaWJ3aW5wdGhyZWFkcyBwcm92aWRlcyBQT1NJWCB0aW1lIEFQSS4KCSAgSXQgYWxzbyBwcm92aWRlcyBsaWJwdGhyZWFkIGFsaWFzIGZvciBpdHNlbGYsIGZvciBjb21wYXRpYmlsaXR5LCBzbyB0aGF0CgkgIGlzIHdoYXQgd2Ugd2lsbCBsaW5rIHdpdGguCgkgIEZpeGVzICM2OTc1NTAKCjIwMTMtMDQtMDggMTU6MzA6MDcgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBjbG9jazogRG8gdXNlIEhBVkVfQ0xPQ0tfR0VUVElNRQoJICBGaXhlcyAjNjk3NTQ5CgoyMDEzLTA0LTA4IDE0OjQyOjE1ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2dy5oOgoJICBsaWJzYWJpOiBTcGVjaWFsIHN0cnVjdCBzaXplIHZhbHVlcyBmb3IgVzMyCgkgIFRoZXNlIGFjY291bnQgZm9yIGJvdGggcG9zc2libGUgdHlwZSBzaXplIG1pc21hdGNoIEFORCAtbW1zLWJpdGZpZWxkcwoJICBwYWNraW5nLiBTaXplcyBhcmUgdGFrZW4gZnJvbSBhbiBpNjg2LXc2NC1taW5ndzMyLWJ1aWx0IEdTdHJlYW1lciwKCSAgZ2NjIDQuOC4wLCBtaW5ndy13NjQgc3ZuLXI1Njg1LgoJICBGaXhlcyAjNjk3NTUxCgoyMDEzLTA0LTA5IDA5OjIyOjM5ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGZpeCBHc3RQYWQgdGVzdCBvbiB3aW5kb3dzIGFuZCBpbiBDS19GT1JLPW5vIG1vZGUKCSAgTmVlZCB0byBjbGVhciBidWZmZXIgbGlzdHMgYXQgdGhlIGVuZCBvZiBlYWNoIHRlc3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTc2MTAKCjIwMTMtMDQtMDYgMTY6MDk6NTQgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBGaXggc3BhY2UgaW4gZmF1bHQgbWVzc2FnZQoKMjAxMy0wNC0wNiAyMjoxMDo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkgIGNhcHNmZWF0dXJlczogQ29weSBBTlkgZmxhZyB3aGVuIGNvcHlpbmcgY2FwcyBmZWF0dXJlcyB0b28KCjIwMTMtMDQtMDYgMjE6NDk6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgY2FwczogSGFuZGxlIEFOWSBjYXBzIGZlYXR1cmVzIHByb3Blcmx5IGluIG1vcmUgcGxhY2VzCgoyMDEzLTA0LTA2IDIxOjIxOjM5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEFkZCB0ZXN0IGZvciBvcGVyYXRpb25zIG9uIGNhcHMgd2l0aCBBTlkgZmVhdHVyZXMKCjIwMTMtMDQtMDYgMjE6MDk6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogUHJvcGVybHkgaGFuZGxlIEFOWSBjYXBzIGZlYXR1cmVzIGluIGNhcHMgb3BlcmF0aW9ucwoKMjAxMy0wNC0wNSAyMToxMDo0OCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiB1cGRhdGUgc2lnbmFsIGRvY3MgZm9yIGdzdF9idXNfZW5hYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbigpCgoyMDEzLTA0LTA1IDEwOjE1OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGlnbm9yZSBlbXB0eSBub3QtbGlua2VkIHF1ZXVlcwoJICBXZSBuZWVkIHRvIGlnbm9yZSB0aGUgbm90LWxpbmtlZCBxdWV1ZXMgaW4gdGhlIHVuZGVycnVuIGFuZCBvdmVycnVuIGNhbGxiYWNrcwoJICBiZWNhdXNlIHRoZXkgYXJlIGV4cGVjdGVkIHRvIGJlIGVtcHR5LgoKMjAxMy0wNC0wNCAyMzoxMjo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBjYXBzIGZlYXR1cmUgbGVhawoJICBGaXhlcyBsZWFrcyBpbiAxNCBjb3JlIHVuaXQgdGVzdHMgaW5jbHVkaW5nCgkgIGdzdC9nc3RjYXBzLgoKMjAxMy0wNC0wNCAxOToxNjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBzdGFydCBwdXNoaW5nIGFnYWluIG9uIFJFQ09ORklHVVJFCgkgIFdoZW4gd2UgZ290IE5PVF9MSU5LRUQgYmVmb3JlIGFuZCB3ZSByZWNlaXZlIGEgUkVDT05GSUdVUkUgZXZlbnQsIHN0YXJ0IHB1c2hpbmcKCSAgYWdhaW4gb24gdGhlIHNvdXJjZSBwYWQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MzA0CgoyMDEzLTA0LTA0IDE5OjA3OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzdGFydCBwdXNoaW5nIGFnYWluIG9uIFJFQ09ORklHVVJFCgkgIFdoZW4gd2UgZ290IE5PVF9MSU5LRUQgYmVmb3JlIGFuZCB3ZSByZWNlaXZlIGEgUkVDT05GSUdVUkUgZXZlbnQsIHN0YXJ0IHB1c2hpbmcKCSAgYWdhaW4gb24gdGhlIHNvdXJjZSBwYWQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2MzA0CgoyMDEzLTA0LTA0IDE5OjA2OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogc3RhcnQgcHVzaGluZyBhZ2FpbiBvbiBSRUNPTkZJR1VSRQoJICBXaGVuIHdlIGdvdCBOT1RfTElOS0VEIGJlZm9yZSBhbmQgd2UgcmVjZWl2ZSBhIFJFQ09ORklHVVJFIGV2ZW50LCBzdGFydCBwdXNoaW5nCgkgIGFnYWluIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjMwNAoKMjAxMy0wNC0wNCAxNzo1OToxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBzaW1wbGlmeSBpc19zdWJzZXQgY2hlY2sKCSAgSXRlcmF0ZSBvdmVyIHRoZSBmaWVsZHMgb2YgdGhlIHN1cGVyc2V0IGluc3RlYWQgb2YgdGhvc2Ugb2YgdGhlIHN1YnNldC4KCSAgVGhpcyB3YXkgd2UgY2FuIGNoZWNrIHRoZSBwcmVzZW5jZSBvZiB0aGUgc3Vic2V0IGZpZWxkIGFuZCBkbyB0aGUgc3Vic2V0IGNoZWNrCgkgIGluIG9uZSBpdGVyYXRpb24uCgoyMDEzLTA0LTA0IDE3OjQ2OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXBkYXRlIGRvY3MsIGlzX3N1YnNldCgpIHdvcmtzIG5vdwoKMjAxMy0wNC0wNCAxNjozOToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBkb2NzCgoyMDEzLTA0LTA0IDE2OjIwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCBnc3RfcGFkX3N0b3JlX3N0aWNreV9ldmVudCgpCgkgIFJld2lyZSBzb21lIGludGVybmFsIGZ1bmN0aW9ucyBhbmQgZXhwb3NlIGEgbmV3CgkgIGdzdF9wYWRfc3RvcmVfc3RpY2t5X2V2ZW50KCkgZnVuY3Rpb24uCgkgIEFQSTogZ3N0X3BhZF9zdG9yZV9zdGlja3lfZXZlbnQoKQoKMjAxMy0wNC0wNCAxNTo0NToyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBjbGFyaWZ5IGRvY3MKCjIwMTMtMDQtMDQgMTU6NDU6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1ZwoKMjAxMy0wNC0wNCAxMDoxNzozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGRvbid0IFdBUk4sIGp1c3QgREVCVUcKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjkxMQoKMjAxMy0wMy0zMCAxMTowNjo1OSArMDAwMCAgTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogRml4IHNlZWtpbmcgd2hlbiBwb3NpdGlvbiBpcyBzbGlnaHRseSBvdXRzaWRlIHRoZSBzZWdtZW50CgkgIFZlcnkgb2Z0ZW4sIHdoZW4gdGhlIGVuZCBvZiBhIHNlZ21lbnQgaXMgZGV0ZWN0ZWQgYnkgZGVtdXhlciwgdGhlIHBvc2l0aW9uCgkgIGlzIHNsaWdodGx5IG91dHNpZGUgdGhlIHNlZ21lbnQgYm91bmRhcmllcy4gQ3VycmVudGx5LCBpZiB0aGF0IGlzIHRoZSBjYXNlCgkgIHRoZSBiYXNlIHdpbGwgYmUgc2V0IHRvIE5PTkUgaW5zdGVhZCBvZiBub3JtYWwgYWNjdW11bGF0aW9uLiBUaGlzIHdvdWxkCgkgIGJyZWFrIG5vbi1mbHVzaGluZyBzZWVrcyBpbiBvZ2dkZW11eCBhbmQgbW9zdCBsaWtlbHkgb3RoZXIgZGVtdXhlcnMuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTY4OTkKCjIwMTMtMDQtMDMgMTc6Mjk6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEzLTA0LTAzIDE2OjAyOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBzdHJlYW0gZmxhZ3MKCjIwMTMtMDQtMDIgMTg6MTc6MDAgLTA2MDAgIEJyZW5kYW4gTG9uZyA8Yi5sb25nQGNhYmxlbGFicy5jb20+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmctdG8tMS4wLnR4dDogc3VidGl0bGUgdGV4dCBtZWRpYSB0eXBlcyBjaGFuZ2VkIGFzIHdlbGwKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzE1MwoKMjAxMy0wNC0wMiAyMzo1MTowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGRvY3M6IG1vcmUgc2luY2UgbWFya2VycyBhbmQgb3RoZXIgZG9jcyBmaXhlcwoKMjAxMy0wNC0wMiAyMzoyMTozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuYzoKCSAgZG9jczogYWRkIHNpbmNlIG1hcmtlcnMgdG8gY2Fwc2ZlYXR1cmVzIGRvY3MKCjIwMTMtMDQtMDIgMjM6MTg6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dpdC11cGRhdGUuc2g6CgkgIHNjcmlwdHM6IGFkZCBzb21lIG1vcmUgbW9kdWxlcyB0byBnaXQtdXBkYXRlLnNoCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTcwNTgKCjIwMTMtMDQtMDIgMjM6MDQ6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgdW5pbnN0YWxsZWQgb3JjL29yYy10ZXN0Ly5saWJzIHRvIGxpYnJhcnkgcGF0aHMKCSAgVGhpcyBpcyBuZWVkZWQgYnkgdGhlIHVuaXQgdGVzdHMgaW4gZ3N0LXBsdWdpbnMtYmFzZSwgLWdvb2QgZXRjLgoJICBTcG90dGVkIGJ5IEFsZXggS2F5ZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NzA5MwoKMjAxMy0wNC0wMiAyMjoxMzoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmM6CgkqIGdzdC9nc3RjYXBzZmVhdHVyZXMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IEFkZCBHU1RfQ0FQU19GRUFUVVJFU19BTlkKCSAgVGhpcyBpcyBlcXVhbCB0byBhbnkgb3RoZXIgY2FwcyBmZWF0dXJlcyBidXQgcmVzdWx0cyBpbiB1bmZpeGVkIGNhcHMuIEl0CgkgIHdvdWxkIGJlIHVzZWQgYnkgZWxlbWVudHMgdGhhdCBvbmx5IGxvb2sgYXQgdGhlIGJ1ZmZlciBtZXRhZGF0YSBvciBhcmUKCSAgY3VycmVudGx5IHdvcmtpbmcgaW4gcGFzc3Rocm91Z2ggbW9kZSwgYW5kIGFzIHN1Y2ggZG9uJ3QgY2FyZSBhYm91dCBhbnkKCSAgc3BlY2lmaWMgZmVhdHVyZXMuCgoyMDEzLTA0LTAxIDIyOjEzOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogbWlub3IgY29zbWV0aWMgY2hhbmdlcwoJICBMZXQncyBub3QgdXNlIHVnbHkgbGVhZGluZyB1bmRlcnNjb3JlcyBmb3IKCSAgc3RhdGljIGZ1bmN0aW9ucy4KCjIwMTMtMDQtMDEgMjE6MjM6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggb2JqZWN0IHByaW50aW5nIG9mIGNhcHMgZmVhdHVyZXMgaW4gZGVidWcgbG9nCgoyMDEzLTA0LTAxIDE2OjM4OjQzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdHJhY2luZy50eHQ6CgkgIGRyYWZ0LXRyYWNpbmc6IHVwZGF0ZSBkcmFmdCBkZXNpZ24gd2l0aCB0aW1lciBpZGVhcwoKMjAxMy0wMy0zMCAxNzowMzo0NCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlZmFjdG9yIHByZXR0eSBwcmludGluZyBvYmplY3RzCgkgIEV4dHJhY3QgZm9ybWF0dGVycyBpbnRvIGxvY2FsIGZ1bmN0aW9ucy4gQ2hhbmdlIHRoZSBzdHJ1Y3R1cmUgZmlsdGVyaW5nIHNvIHRoYXQKCSAgaXQgd29ya3MgZm9yIHRhZ2xpc3RzIHRvby4KCjIwMTMtMDMtMzAgMTY6Mzk6MzggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBtYWtlIHBvc3RfbWVzc2FnZSBhbmQgcXVlcnkgbW9yZSBhbGlrZQoKMjAxMy0wNC0wMSAxMDoyMDowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogUHJpbnQgY2FwcyBmZWF0dXJlcyB0b28KCjIwMTMtMDQtMDEgMTA6MTk6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJICBjYXBzZmVhdHVyZXM6IEZvciBjb3B5aW5nIGZlYXR1cmVzIGl0J3Mgbm90IHJlcXVpcmVkIHRvIGhhdmUgbm8gcGFyZW50IHJlZmNvdW50CgoyMDEzLTA0LTAxIDEwOjE5OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IFNldCBmZWF0dXJlcycgcGFyZW50IHJlZmNvdW50IGluIGdzdF9jYXBzX3NldF9mZWF0dXJlcygpIHRvbwoKMjAxMy0wNC0wMSAxMDoxODozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBTZXQgc3lzbWVtIGZlYXR1cmVzIGlmIGV4cGxpY2l0ZWx5IHJlcXVlc3RlZAoKMjAxMy0wMy0zMSAxOTowOTo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICBkZXNpZ246IEFkZCB0aGUgY2FwcyBmZWF0dXJlcyBhbmQgZGVzY3JpYmUgaG93IHRoZSBjYXBzIG9wZXJhdGlvbnMgYWN0dWFsbHkgd29yawoKMjAxMy0wMy0zMCAxNTozNToxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiBnc3QvZ3N0Y2Fwc2ZlYXR1cmVzLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHNmZWF0dXJlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2FwczogQWRkIG5ldyBkYXRhIHR5cGUgZm9yIGhhbmRsaW5nIGNhcHMgZmVhdHVyZXMgdG8gdGhlIGNhcHMKCSAgVGhlc2UgYXJlIG1lYW50IHRvIHNwZWNpZnkgZmVhdHVyZXMgaW4gY2FwcyB0aGF0IGFyZSByZXF1aXJlZAoJICBmb3IgYSBzcGVjaWZpYyBzdHJ1Y3R1cmUsIGZvciBleGFtcGxlIGEgc3BlY2lmaWMgbWVtb3J5IHR5cGUKCSAgb3IgbWV0YS4KCSAgU2VtYW50aWNhbGx5IHRoZXkgY291bGQgYmUgdGhvdWdoIG9mIGFzIGFuIGV4dGVuc2lvbiBvZiB0aGUgbWVkaWEKCSAgdHlwZSBuYW1lIG9mIHRoZSBzdHJ1Y3R1cmVzIGFuZCBhcmUgaGFuZGxlZCBleGFjdGx5IGxpa2UgdGhhdC4KCjIwMTMtMDMtMzEgMTU6MzA6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGFkZCBTRUxFQ1QgYW5kIFVOU0VMRUNUIHN0cmVhbSBmbGFncyBmb3Igc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIFNvIGRlbXV4ZXJzIGNhbiBzaWduYWwgd2hpY2ggYXVkaW8vdmlkZW8vc3VidGl0bGUgc3RyZWFtcyBzaG91bGQKCSAgYmUgc2VsZWN0ZWQgYnkgZGVmYXVsdCBhbmQgd2hpY2ggc2hvdWxkIG5vdCBiZSBzZWxlY3RlZAoJICBhdXRvbWF0aWNhbGx5LgoJICBBUEk6IEdTVF9TVFJFQU1fRkxBR19TRUxFQ1QKCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfVU5TRUxFQ1QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTk2OAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwOTExCgoyMDEzLTAxLTA2IDIwOjI3OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBhZGQgc3RyZWFtIGZsYWdzIHRvIHN0cmVhbS1zdGFydCBldmVudAoJICBBUEk6IGdzdF9ldmVudF9zZXRfc3RyZWFtX2ZsYWdzKCkKCSAgQVBJOiBnc3RfZXZlbnRfcGFyc2Vfc3RyZWFtX2ZsYWdzKCkKCSAgQVBJOiBHU1RfU1RSRUFNX0ZMQUdfTk9ORQoJICBBUEk6IEdTVF9TVFJFQU1fRkxBR19TUEFSU0UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwMDY0OAoKMjAxMy0wMy0zMSAxMToyNjozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBBZGQgQVBJIHRvIGdldCB0aGUgbGFzdCBzZXQgY29udGV4dCBmcm9tIGFuIGVsZW1lbnQKCSAgRWxlbWVudHMgc2hvdWxkIG92ZXJyaWRlIEdzdEVsZW1lbnQ6OnNldF9jb250ZXh0KCkgYW5kIGFsc28gY2FsbAoJICBnc3RfZWxlbWVudF9zZXRfY29udGV4dCgpIHRvIGtlZXAgdGhpcyBjb250ZXh0IHVwLXRvLWRhdGUgd2l0aAoJICB0aGUgdmVyeSBsYXRlc3QgY29udGV4dCB0aGV5IGludGVybmFsbHkgdXNlLgoKMjAxMy0wMy0zMCAxNDowNDoyOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXRyYWNpbmcudHh0OgoJICBkZXNpZ246IGFkZCBpbml0aWFsIHRyYWNpbmcgZGVzaWduIGRvYwoKMjAxMy0wMy0zMCAxMTo0NzoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogTGV0IGdzdF9wYWRfZ2V0X2FsbG93ZWRfY2FwcygpIHBhc3MgdGhlIGNhcHMgb3duIGNhcHMgYXMgZmlsdGVyCgkgIFRoaXMgd2lsbCByZWR1Y2UgdGhlIG51bWJlciBvZiBjYXBzIGNyZWF0ZWQgZG93bnN0cmVhbSBhbmQgd2UgZG9uJ3QKCSAgbmVlZCB0byBpbnRlcnNlY3QgaW4gdGhlIHZlcnkgZW5kIHdpdGggdGhlIHBhZCdzIG93biBjYXBzLgoKMjAxMy0wMy0zMCAxMDoyNDoyNyArMDEwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4ZXMgY29tcGlsZXIgd2FybmluZwoJICBnc3RiYXNlc2luay5jOiBJbiBmdW5jdGlvbiAnZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCc6CgkgIGdzdGJhc2VzaW5rLmM6MzIwNDogd2FybmluZzogJ3JldCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uCgoyMDEzLTAzLTI5IDE5OjAxOjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogZml4IGdpciB3YXJuaW5nCgoyMDEzLTAzLTI5IDE4OjQ5OjE0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIFJldmVydCAicHdnOiBGaXggZXhhbXBsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1ZDY0ZjI3ZDg4MTI3NGE0MGYwNDQxYmI4YzViMzgxNmZkZmM1YjllLgoJICAqc2lnaCoKCjIwMTItMTEtMDYgMDk6NDE6NTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiBGaXggZXhhbXBsZQoKMjAxMi0xMS0xMSAxMzo1MjoyNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIFNFR01FTlQgc3RpY2t5IGV2ZW50cyB3aGVuIGZsdXNoaW5nCgkgIFdoZW4gZmx1c2hpbmcsIGl0IGlzIGV4cGVjdGVkIHRoYXQgdXBzdHJlYW0gd2lsbCBzZW5kIGEgU0VHTUVOVAoJICBldmVudCBhZnRlcndhcmRzLgoJICBUaGlzIGFsc28gYXZvaWRzIHN0cmF5IFNFR01FTlQgZXZlbnRzIGZyb20gY29taW5nIHRocm91Z2ggYWZ0ZXIgYQoJICBmbHVzaC4KCjIwMTMtMDMtMjggMTU6MzU6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogQWRkIG5ldyBHc3RDb250ZXh0IG1pbmlvYmplY3QgZm9yIHNoYXJpbmcgY29udGV4dHMgaW4gYSBwaXBlbGluZQoKMjAxMy0wMy0yOCAxNjo0Mjo1MCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkgIGFyZ2ItY29udHJvbGJpbmRpbmc6IGZpeCBtZXNzZWQgdXAgcHJvcGVydHkgc2V0dGVyCgkgIFRoaXMgd2FzIG1pc2Fzc2lnbmluZyB0aGUgY29udHJvbCBzb3VyY2VzLiBJdCB3YXMgYWxzbyBsZWFraW5nIHRoZSBvbGQgdmFsdWVzIGlmCgkgIGEgY29udHJvbCBzb3VyY2Ugd291bGQgYmUgcmVwbGFjZWQuCgoyMDEzLTAzLTI3IDE4OjI1OjA4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlc2V0IG5leHRfcHRzIHVwb24gU0VHTUVOVCBldmVudAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxNDgxCgoyMDEzLTAyLTI2IDE5OjU4OjQ5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IG1vcmUgaW50ZXItdGltZXN0YW1wIHRyYWNraW5nCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0ODEKCjIwMTMtMDMtMjYgMTk6MjI6MTggLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBBZGQgYW5ub3RhdGlvbnMgYW5kIHB5Z2kgZnJpZW5kbHkgZXh0cmFjdGlvbiBmdW5jdGlvbgoJICBBUEk6IGdzdF9idWZmZXJfZXh0cmFjdF9kdXAKCjIwMTMtMDMtMjcgMTc6MDg6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmc6IGhvcGVmdWxseSBjbGFyaWZ5IGEgbGl0dGxlCgoyMDEzLTAzLTI1IDE4OjExOjU0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBVcGRhdGUgZG9jcyBmb3IgZ3N0X3BhZF9jcmVhdGVfc3RyZWFtX2lkX3ByaW50ZigpCgkgIFRvIGluZGljYXRlIHRoYXQgZm9ybWF0IHN0cmluZ3Mgc2hvdWxkIGJlIGFscGhhIHNvcnRhYmxlLgoKMjAxMy0wMy0yNSAwOToxNjowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBBZGQgdW5pdCB0ZXN0IGZvciBHU1RfQ0FQU197QU5ZLE5PTkV9IGFuZCBHU1RfU1RBVElDX0NBUFNfe0FOWSxOT05FfQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2NDM1CgoyMDEzLTAzLTI1IDA5OjE5OjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IEZpeCBnc3Rfc3RhdGljX2NhcHNfZ2V0KEdTVF9TVEFUSUNfQ0FQU19OT05FKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2NDM1CgoyMDEzLTAzLTIxIDIxOjAwOjU0IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCBzZW5kIGVycm9yIGlmIG5lZ290aWF0ZSBmYWlscyBiZWNhdXNlIHdlIGFyZSBmbHVzaGluZwoJICBOZWdvdGlhdGlvbiBtYXkgYmUgYWJvcnRlZCBieSBhIGZsdXNoIGZyb20gYW5vdGhlciB0aHJlYWQgdGhhdCBuZWVkIHRvCgkgIHN0b3AgdGhlIHRhc2sgKGkuZS4gc2VlaykuIENoZWNrIHRoYXQgY2FzZSBhbmQgc2lsZW50bHkgcGF1c2UgdGhlIHRhc2suCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYzNTcKCjIwMTMtMDMtMjQgMTc6NTM6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBzb21lIGRvY3VtZW50YXRpb24gdXBkYXRlcwoKMjAxMy0wMy0yMiAyMDowMjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1xdWVyeWZuLnhtbDoKCSAgZG9jczogZml4IHR5cG8gaW4gcXVlcnkgZnVuY3Rpb24gZXhhbXBsZSBpbiBQbHVnaW4gV3JpdGVyJ3MgR3VpZGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjE0MgoKMjAxMy0wMy0wNyAxMjoxMTozMCArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzaGdAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIHRlc3RzOiBmaXggc3B1cmlvdXMgZmFpbHVyZSBpbiB0ZXN0X2NvbGxlY3QgY29sbGVjdHBhZHMgdGVzdAoJICBwb3AoKSBpbiBjb2xsZWN0ZWQgY2FsbGJhY2suCgkgIFRoZXJlIHdlcmUgdGhyZWUgdGhyZWFkcyBpbiB0aGUgdGVzdCBjYXNlcyB0aGF0IGhhbmdlZDogdGhlIHRlc3QgdGhyZWFkIGFuZCB0d28KCSAgdGhyZWFkcyB0aGF0IHB1c2ggYnVmZmVycy4gRWFjaCB0aHJlYWQgcHVzaCBvbmUgYnVmZmVyIG9uIG9uZSBwYWQuIFRoZXJlIGFyZQoJICB0d28gcGFkcyBpbiB0aGUgY29sbGVjdHBhZHMgc28gdGhlIHNlY29uZCBidWZmZXIgd2lsbCB0cmlnZ2VyIHRoZQoJICBjb2xsZWN0LWNhbGxiYWNrLgoJICBUaGlzIGlzIHdoYXQgaGFwcGVucyB3aGVuIHRoZSBoYW5nIG9jY3VyczoKCSAgVGhlIGZpcnN0IHRocmVhZCBwdXNoZXMgYSBidWZmZXIgYW5kIGluaXRpYWxpemVzIGEgY29va2llIHRvIHRoZSB2YWx1ZSBvZiBhCgkgIGNvdW50ZXIgaW4gdGhlIGNvbGxlY3RwYWRzIG9iamVjdCBhbmQgd2FpdHMgb24gYSBjb25kIGZvciB0aGUgY291bnRlciB0byBjaGFuZ2UKCSAgYW5kIGZvciBzb21lb25lIHRvIGNvbnN1bWUgdGhlIGJ1ZmZlciAoaS5lLiBfcG9wKCkgaXQpLgoJICBUaGUgc2Vjb25kIHRocmVhZCBwdXNoZXMgYSBidWZmZXIgYW5kIGNhbGxzIHRoZSBjb2xsZWN0ZWQgY2FsbGJhY2ssIHdoaWNoCgkgIHNpZ25hbHMgdGhlIGNvbmQgdGhhdCB0aGUgdGVzdCB0aHJlYWQgaXMgd2FpdGluZyBmb3IuCgkgIFRoZSB0ZXN0IHRocmVhZCBwb3BzIGJvdGggYnVmZmVycyAod2l0aG91dCBob2xkaW5nIGFueSBsb2NrKS4gRWFjaCBjYWxsIHRvCgkgIF9wb3AoKSBpbmNyZWFzZXMgdGhlIGNvdW50ZXIgYnJvYWRjYXN0cyB0aGUgY29uZGl0aW9uIHRoYXQgdGhlIGZpcnN0IHRocmVhZCBpcwoJICBub3cgd2FpdGluZyBmb3IuIEl0IHRoZW4gam9pbnMgYm90aCB0aHJlYWRzIChoYW5ncykuCgkgIFRoZSBmaXJzdCB0aHJlYWQgd2FrZXMgdXAgYW5kIHJldHVybnMsIHNpbmNlIGl0cyBidWZmZXIgaGFzIGJlZW4gY29uc3VtZWQuCgkgIFRoZSBzZWNvbmQgdGhyZWFkIHN0YXJ0cyBleGVjdXRpbmcgYWdhaW4uIFdoZW4gdGhlIGNhbGxiYWNrLCBjYWxsZWQgYnkgdGhlCgkgIHNlY29uZCB0aHJlYWQsIGhhcyByZXR1cm5lZCBpdCBpbml0aWFsaXplcyBhIGNvb2tpZSB0byB0aGUgdmFsdWUgb2YgYSBjb3VudGVyLAoJICB3aGljaCBoYXMgYWxyZWFkeSBwcmVtYXR1cmVseSBiZWVuIGluY3JlYXNlZCBieSB0aGUgdGVzdCB0aHJlYWQgd2hlbiBpdCBwb3BwZWQKCSAgdGhlIGJ1ZmZlcnMsIGFuZCB3YWl0J3Mgb24gYSBjb25kIGZvciB0aGUgY291bnRlciB0byBjaGFuZ2UgYW5kIGZvciBzb21lb25lIHRvCgkgIGNvbnN1bWUgdGhlIGJ1ZmZlciAoaS5lLiBfcG9wKCkgaXQpLiBTaW5jZSB0aGUgYnVmZmVyIGhhcyBhbHJlYWR5IGJlZW4gcG9wZWQKCSAgYW5kIHRoZSBjb3VudGVyIGhhcyBhbHJlYWR5IGJlZW4gaW5jcmVhc2VkIGl0IHdpbGwgYmUgc3R1Y2sgZm9yZXZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTU1NQoKMjAxMy0wMy0xNiAxMjowNTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHJlbW92ZSBmZm1wZWcgbGlicyBmcm9tIGR5bmFtaWMgbGlua2VyIHBhdGhzCgkgIFdlIGxpbmsgdGhvc2UgbGlicyBpbnRvIHRoZSBwbHVnaW4gc3RhdGljYWxseSwgb3IgdXNlIGV4dGVybmFsCgkgIHN5c3RlbSBsaWJzLCBidXQgbmV2ZXIgdGhlIGludGVybmFsIHNuYXBzaG90IGR5bmFtaWNhbGx5LgoKMjAxMy0wMy0xNiAxMjowMDo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBnc3QtZWRpdGluZy1zZXJ2ZXMgdG8gR0lfVFlQRUxJQl9QQVRICgkgIFNvIHB5Z2kgY2FuIGZpbmQgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU5MzcKCjIwMTMtMDMtMTIgMTM6NTM6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBtYWtlIHN1cmUgc2xvdyBHU1RfUkVBRF9VSU5UKiB2YXJpYW50cyBkb24ndCBoYXZlIHVuZXhwZWN0ZWQgc2lkZSBlZmZlY3RzCgkgIEZpeGVzIHVuaXQgdGVzdCBvbiBzeXN0ZW1zIHdoZXJlIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzIGlzIG5vdCBwb3NzaWJsZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5NTU5OQoKMjAxMy0wMy0wNSAxMToxNDo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBkb24ndCBleGl0IHRoZSBsb29wIG9uIGJ1ZmZlcmluZyBpbiBwYXVzZWQKCSAgV2hlbiB3ZSByZWNlaXZlIGEgYnVmZmVyaW5nIG1lc3NhZ2Ugb2YgMTAwJSBpbiB0aGUgcGF1c2VkIHN0YXRlLCB3ZSBleGl0CgkgIHRoZSBldmVudF9sb29wIGFuZCBtb3ZlIHRvIHRoZSBQTEFZSU5HIHN0YXRlLiBXaGF0IHNob3VsZCBoYXBwZW4gaXMgdGhhdAoJICB3ZSB3YWl0IGZvciBib3RoIEFTWU5DLURPTkUgYW5kIDEwMCUgYnVmZmVyaW5nIGJlZm9yZSBjb250aW51ZWluZy4KCjIwMTMtMDMtMDggMTM6MTU6MzIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBjb250cm9sbGVyIGRlc2lnbiBhbmQgYWRkIHNvbWUgdGhvdWdocyBmb3IgZnV0dXJlIHN0dWZmCgoyMDEzLTAzLTA4IDA4OjEzOjA2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBkb2NzOiBtZW50aW9uIGNsaXBwaW5nIG9mIHZhbHVlcyBpbiBjb250cm9sLWJpbmRpbmcgZG9jcwoKMjAxMy0wMy0wOCAwODoxMDoyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGNvZGUgY2xlYW51cHMKCSAgVXNlIGEgcHJvcGVydHkgZm9yIGFjY2Vzc2luZyB0aGUgY29udHJvbC1zb3VyY2Ugb24gdGhlIGJpbmRpbmcuIERyb3AgYmFzZV9pbml0CgkgIG9uIHRoZSB0ZXN0IG9iamVjdC4KCjIwMTMtMDMtMDcgMTE6NDY6MzMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBnc3RfcXVlcnlfZ2V0X25fYWxsb2NhdGlvbl9wYXJhbXMoKSByZXR1cm5zIGEgbmV3IHJlZiB0byB0aGUgYWxsb2NhdG9yCgoyMDEzLTAzLTA3IDExOjM1OjAzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBhIGJvZ3VzIHRlc3QKCSAgV2UgcHJldmlvdXNseSBmb3Jnb3QgdG8gaW5pdGlsaXplIHRoZSBhbXBsaXRkZSBwcm9wZXJ0eSB0byB0aGUgZGVmYXVsdCBhbmQgdGh1cyBpdCB3YXMgMC4wLiBUaGVyZWZvcmUgYSBkZWZhdWx0IGxmbyBjb250cm9sc291cmNlIHJldHVybmVkIGEgc2VyaWVzIG9mIDAuMCBhbmQgdGhlIHRlc3Qgd2FzIGFzc2VydGluZyBvbiB0aGF0LgoKMjAxMy0wMy0wNyAwOToxNToxNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xiaW5kaW5nOiByZWxheCB0aGUgcHNwZWMgZm9yIHRoZSBjb250cm9sLXNvdXJjZQoJICBXZSBjYW4gY2hhbmdlIGNvbnRyb2wgc291cmNlcyBvbiBjb250cm9sYmluZGluZ3MuCgoyMDEzLTAzLTA3IDA5OjEyOjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmbzogc2V0IGEgc2Vuc2libGUgbG93ZXIgYm91bmRhcnkgZm9yIHRoZSBmcmVxdWVuY3kKCSAgVXNlIERCTF9NSU4sIHdoaWNoIGlzIGEgdGhlIHNtYWxsZXMgZG91YmxlIGdyZWF0ZXIgdGhhbiB6ZXJvIHRoYXQgaXMgbm90IGluCgkgIGRlbm9ybWFsIGZvcm1hdC4gVGhpcyBleHBvc2VzIHRoZSBsaW1pdCBiZXR0ZXIgdGhhbiB0aGUgcnVudGltZSBjaGVjay4KCjIwMTMtMDMtMDYgMjM6NTk6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDJkZTIyMWMgdG8gMDRjN2ExZQoKMjAxMy0wMy0wNiAxNjo0MDoyNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBsZm9jb250cm9sc291cmNlOiBpbml0IHRoZSBhbXBsaXR1ZGUgdG8gdGhlIGRlZmF1bHQgYW5kIHVwZGF0ZSB0aGUgZG9jcwoKMjAxMy0wMy0wNSAxMTozMDoyMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGQgYWxsIHRoZSBiYXNlL2JhZCBsaWJyYXJpZXMgYW5kIHJlbW92ZSBvYnNvbGV0ZSBvbmVzCgoyMDEzLTAzLTAzIDE2OjAwOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHVzZSBvZiB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgkgIFJ1bm5pbmcgc3VpdGUocyk6IEdzdEJhc2VTaW5rCgkgID09MjIwMjM9PSBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCgkgID09MjIwMjM9PSAgICBhdCAweDUwNUZGQ0U6IGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMgKGdzdGJhc2VzaW5rLmM6MTkzNikKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTA2OEM4MDogZ3N0X2Jhc2Vfc2lua19kb19zeW5jIChnc3RiYXNlc2luay5jOjIzNzkpCgkgID09MjIwMjM9PSAgICBieSAweDUwNkJDRDI6IGdzdF9iYXNlX3NpbmtfZGVmYXVsdF93YWl0X2V2ZW50IChnc3RiYXNlc2luay5jOjI5MDMpCgkgID09MjIwMjM9PSAgICBieSAweDUwNjMzQTQ6IGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9ldmVudCAoZ3N0YmFzZXNpbmsuYzoyOTE4KQoJICA9PTIyMDIzPT0gICAgYnkgMHg2RjVDMjE2OiBnc3RfZmFrZV9zaW5rX2V2ZW50IChnc3RmYWtlc2luay5jOjM4MykKCSAgPT0yMjAyMz09ICAgIGJ5IDB4NTA1RjE2NDogZ3N0X2Jhc2Vfc2lua19ldmVudCAoZ3N0YmFzZXNpbmsuYzozMTA4KQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MkZBMDkwOiBnc3RfcGFkX3NlbmRfZXZlbnRfdW5jaGVja2VkIChnc3RwYWQuYzo0ODIyKQoJICA9PTIyMDIzPT0gICAgYnkgMHg1MzAzNzU2OiBnc3RfcGFkX3NlbmRfZXZlbnQgKGdzdHBhZC5jOjQ5ODQpCgkgID09MjIwMjM9PSAgICBieSAweDQwMTY1QjogYmFzZXNpbmtfdGVzdF9nYXAgKGJhc2VzaW5rLmM6MTQ4KQoKMjAxMy0wMy0wMyAxMjowNjozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogRml4IG1lbW9yeSBjb3B5aW5nIGxvZ2ljIGluIGNvcHlfaW50bygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTUwMzUKCjIwMTMtMDMtMDMgMTE6Mjg6MzIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBVc2UgY29ycmVjdCBwcmludCBmb3JtYXQgc3BlY2lmaWVycyB0byBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTMtMDItMjIgMTQ6MjI6MDEgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBGaXggbWlzc3BlbGxpbmdzIG9mICdjb250aW51b3VzJwoKMjAxMy0wMi0yMiAxNDo1Njo0OSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiB0YWtlIERUUyBpbnRvIGFjY291bnQKCSAgSW1wb3J0YW50bHksIHRoaXMgcGF0Y2ggY29udmVydHMgRFRTIHRvIHJ1bm5pbmcgdGltZS4gIExlc3MgaW1wb3J0YW50bHksCgkgIGFuZCBwb3NzaWJseSBhIHByb2JsZW0gZm9yIHNvbWUgbXV4ZXJzLCBpcyB0aGF0IGl0IG9yZGVycyBidWZmZXJzIGJ5CgkgIERUUyAoaWYgaXQgaXMgdmFsaWQsIG90aGVyd2lzZSBQVFMpLiAgVGhpcyBpcyBnZW5lcmFsbHkgY29ycmVjdCwgYnV0CgkgIG1pZ2h0IGJlIHNvbWV3aGF0IHN1cnByaXNpbmcgdG8gbXV4ZXJzLgoJICBBbHNvIG5vdGUgdGhhdCBvbmNlIGNvbnZlcnRlZCB0byBydW5uaW5nIHRpbWUsIERUUyBjYW4gZW5kIHVwIG5lZ2F0aXZlLgoKMjAxMy0wMi0yOCAyMjo1OTo0MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBtYW51YWw6IGltcHJvdmUgdGhlIGNvbnRyb2xsZXIgZG9jcyBhIGxpdHRsZSBtb3JlCgkgIFJld29yZCBzb21lIHNlY3Rpb25zLiBFeHBsYWluIHZhbHVlIG1hcHBpbmdzIGJldHRlci4KCjIwMTMtMDItMjggMTk6NDA6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LWxpYmF2IHRvIHBrZy1jb25maWcgcGF0aAoKMjAxMy0wMi0yNyAyMjoxNTo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIHNlZWtpbmc6IGFkZCBtb3JlIGxvZ2dpbmcgZm9yIHNlZWtpbmcKCSAgRXNwZWNpYWxseSBhZGQgbG9nZ2luZyB0byBlcnJvciBjb2RlIHBhdGhzLgoKMjAxMy0wMi0yNyAxMDowOTo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBHcmFjZWZ1bGx5IGhhbmRsZSBnc3RfbWVtb3J5X2NvcHkoKSByZXR1cm5pbmcgTlVMTCB3aXRob3V0IGNyYXNoaW5nCgkgIGdzdF9idWZmZXJfY29weV9pbnRvKCkgYW5kIGdzdF9idWZmZXJfcmVzaXplX3JhbmdlKCkgY2FuIG5vdyBmYWlsLgoKMjAxMy0wMi0yNiAxNzozMzozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFsbG9jYXRvcjogc21hbGwgaW50ZXJuYWwgY2xlYW51cHMKCSAgUmVuYW1lIFN5c3RlbSBtZW1vcnkgYWxsb2NhdG9yIHRvIEdzdEFsbG9jYXRvclN5c21lbSBhbmQgdGhlIG1lbW9yeSB0bwoJICBHc3RNZW1vcnlTeXN0ZW0uCgoyMDEzLTAyLTI2IDE1OjM3OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1ldGhvZCB0byBjaGVjayBtZW1vcnkgdHlwZQoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgaWYgYSBtZW1vcnkgd2FzIGFsbG9jYXRlZCBmcm9tIGFuIGFsbG9jYXRvciBvZgoJICBhIGdpdmVuIHR5cGUuCgkgIEFQSTogZ3N0X21lbW9yeV9pc190eXBlKCkKCjIwMTMtMDItMjYgMTU6MzY6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBpbXByb3ZlIGRvY3MgYSBsaXR0bGUKCjIwMTMtMDItMjYgMTU6MzI6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkgIHVzZSBHU1RfTUVTU0FHRV9EVVJBVElPTl9DSEFOR0VEIGluIGRvY3MgYW5kIGNvZGUKCjIwMTMtMDItMjYgMTQ6NDA6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogZG9uJ3QgdW5yZWYgYWxsb2NhdG9yIHRvbyBzb29uCgkgIFVucmVmIHRoZSBhbGxvY2F0b3IgKmFmdGVyKiB3ZSBoYXZlIGZyZWVkIHRoZSBtZW1vcnkuIFdlIGFsc28gbmVlZCB0byBrZWVwCgkgIGEgcmVmIHRvIHRoZSBhbGxvY2F0b3IgYXJvdW5kIGJlY2F1c2UgZm9sbG93aW5nIHRoZSBub3cgZnJlZWQgbWVtb3J5IHdvdWxkCgkgIGxlYWQgdG8gY3Jhc2hlcy4KCjIwMTMtMDItMjYgMDk6MDg6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IEZpeCBpbnZlcnRlZCBsb2dpYyBmb3IgZGVjaWRpbmcgaWYgbWVtb3J5IHNob3VsZCBiZSBzaGFyZWQgb3IgY29waWVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTQ3MTcKCjIwMTMtMDItMjYgMDc6NTA6MTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIHBvcnRpbmc6IG1lbnRpb24gc2VnbWVudCBhY2N1bXVsYXRpb24gaW4gdGhlIHBvcnRpbmcgZ3VpZGUKCSAgVGhpcyBuZWVkcyBtb3JlIGRldGFpbCwgYnV0IGF0IGxlYXN0IGdpdmVzIHBlb3BsZSBhIGhpbnQgb24gdGhlIGlzc3VlLgoKMjAxMy0wMi0yNiAwNzo0ODozNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRvY3M6IHMvc3RhcnQvZG9uZS8gY29weSduJ3Bhc3RlIG1pc3Rha2UKCjIwMTMtMDItMjUgMTM6NTc6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcXVlcnk6IEFkZCBuZXcgQVBJIHRvIHJlbW92ZSBhbGxvY2F0aW9uIHBhcmFtcyBhbmQgcG9vbHMgZnJvbSB0aGUgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMy0wMi0yNSAxMzoyNDozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IERvY3VtZW50IHRoYXQgdGhlIGZpcnN0IGFsbG9jYXRvciBpbiB0aGUgYWxsb2NhdGlvbiBxdWVyeSBzaG91bGQgYWxsb3cgbWFwcGluZyB0byBzeXN0ZW0gbWVtb3J5CgoyMDEzLTAyLTI0IDA5OjI0OjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBhbGxvY2F0b3IKCSAgT3RoZXJ3aXNlIHRoZSBhbGxvY2F0b3IgbWlnaHQgZ2V0IGZyZWVkIHdoaWxlIGl0J3Mgc3RpbGwgdXNlZAoJICBieSB0aGUgbWVtb3J5CgoyMDEzLTAyLTI0IDA5OjMzOjAzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBJZiBzaGFyaW5nIGEgR3N0TWVtb3J5IGZhaWxzLCBmYWxsIGJhY2sgdG8gY29weWluZyBpdAoKMjAxMy0wMi0yMyAxODozNjoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogcG9ydGluZy10by0xLjAudHh0OiBzb21lIGVsZW1lbnQgbmFtZXMgaGF2ZSBjaGFuZ2VkCgoyMDEzLTAyLTIzIDA4OjE5OjQ4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBJdCdzIGNvbnRpZ3VvdXMsIG5vdCBjb250aW5vdXMKCjIwMTMtMDItMjIgMTI6NDE6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEFkZCBuZXcgbWVtb3J5IGZsYWcgdG8gc3BlY2lmeSB0aGF0IG1lbW9yeSBjYW4ndCBiZSBtYXBwZWQKCjIwMTMtMDItMjIgMDk6MDI6MjIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IEFkZCBtZW1vcnkgZmxhZyB0byBtYXJrIHBoeXNpY2FsbHkgY29udGlub3VzIG1lbW9yeQoKMjAxMy0wMi0xNiAyMzowMjoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkb24ndCBwYXNzIE5VTEwgb3V0Y2FwcyB0byB0cmFuc2Zvcm1fc2l6ZSBvbiBzaHV0ZG93bgoJICBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSBvbiB0aGUgc291cmNlIHBhZCBtaWdodCB5aWVsZCBOVUxMIGNhcHMKCSAgaWYgd2UncmUgYmVpbmcgc2h1dCBkb3duIGFuZCB0aGUgc291cmNlIHBhZCBoYXMgYWxyZWFkeSBiZWVuCgkgIGRlYWN0aXZhdGVkIGJ5IHRoZSBvdGhlciB0aHJlYWQgdGhhdCdzIGNoYW5naW5nIHN0YXRlLiBKdXN0IGJhaWwKCSAgb3V0IGluIHRoYXQgY2FzZSwgaW5zdGVhZCBvZiBwYXNzaW5nIE5VTEwgY2FwcyB0byB0aGUgdHJhbnNmb3JtX3NpemUKCSAgZnVuY3Rpb24sIHdoaWNoIGl0IG1pZ2h0IG5vdCBleHBlY3QuCgkgIEZpeGVzIHNwdXJpb3VzIHdhcm5pbmdzIGluIGF1ZGlvcmVzYW1wbGUgc2h1dGRvd24gdW5pdCB0ZXN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzOTk2CgoyMDEzLTAyLTIxIDEwOjE4OjE0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IEFkZCBPUkMKCjIwMTMtMDItMTkgMTg6MDA6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYXZvaWQgdW5leHBlY3RlZCBzaWRlLWVmZmVjdHMgb2YgR1NUX1dSSVRFXyogbWFjcm9zCgkgIE1ha2Ugc3VyZSB0aGUgZGF0YSBhcmd1bWVudCBpcyBvbmx5IGV2YWx1YXRlZCBvbmNlLgoKMjAxMy0wMi0xOSAxNzozNjo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgY2hlY2s6IGFkZCBzb21lIG1vcmUgZmFpbF91bmxlc3NfKigpIG1hY3JvcyBmb3IgY29udmVuaWVuY2UKCSAgQVBJOiBmYWlsX3VubGVzc19lcXVhbHNfaW50X2hleAoJICBBUEk6IGFzc2VydF9lcXVhbHNfaW50X2hleAoJICBBUEk6IGZhaWxfdW5sZXNzX2VxdWFsc19pbnQ2NF9oZXgKCSAgQVBJOiBhc3NlcnRfZXF1YWxzX2ludDY0X2hleAoJICBBUEk6IGZhaWxfdW5sZXNzX2VxdWFsc191aW50NjRfaGV4CgkgIEFQSTogYXNzZXJ0X2VxdWFsc191aW50NjRfaGV4CgkgIEFQSTogZmFpbF91bmxlc3NfZXF1YWxzX3BvaW50ZXIKCSAgQVBJOiBhc3NlcnRfZXF1YWxzX3BvaW50ZXIKCjIwMTMtMDItMTkgMTI6NDI6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IGFkZCBuZXcgLWJhc2UgYWxsb2NhdG9ycyBsaWJyYXJ5IHRvIGdzdC11bmluc3RhbGxlZCBzZWFyY2ggcGF0aHMKCjIwMTMtMDItMTggMjA6NDc6MDQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBhZGQgdHdvIG1vcmUgdGVzdHMgdXNpbmcgY29sbGVjdHBhZHMgd2l0aGluIGFuIGVsZW1lbnQKCSAgQWRkIGEgc3RhdGljIHBsdWdpbiB3aXRoIGEgcnVkaW1lbnRhcnkgZWxlbWVudCB1c2luZyBjb2xsZWN0cGFkcyBhbmQgZG8gc29tZQoJICBwaXBlbGluZSBiYXNlZCB0ZXN0cy4KCjIwMTMtMDItMTcgMTI6NTA6MDMgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIGRvY3M6IEZpeCBzb21lIGFtYmlndW91cyB3b3JkaW5nCgoyMDEzLTAyLTE3IDE5OjUzOjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJICB0cmlnZ2VyY29udHJvbHNvdXJjZTogYWRkIG1pc3NpbmcgZW5kX2l0ZXIgY2hlY2sgZm9yIHNlcXVlbmNlCgkgIEF2b2lkIGFjY2Vzc2luZyB0aGUgZW5kLWl0ZXIsIHRoaXMgaXMgYSBtYXJrZXIgd2l0aG91dCBhIGRhdGEgZmllbGQuCgoyMDEzLTAyLTE3IDEzOjIwOjIwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogbGluayB0byB0aGUgYXBwcm9wcmlhdGUgbWVzc2FnZXMgZnJvbSBnc3RfZWxlbWVudHNfc2V0X3N0YXRlKCkgZG9jcwoJICBGb3IgYW4gYXN5bmMgc3RhdGUgY2hhbmdlIHJldHVybiBvbmUgd291bGQgd2FpdCBmb3IgQVNZTkNfRE9ORSBvciBTVEFURV9DSEFOR0VELgoKMjAxMy0wMi0xNiAxNDoyMDowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgc2luY2UgbWFya2VyIGZvciBuZXcgQ09QWV9ERUVQIGJ1ZmZlciBmbGFnCgoyMDEzLTAyLTE2IDE0OjU5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIG9wdGlvbiB0byBkZWVwIGNvcHkgYSBidWZmZXIKCSAgQWRkIGEgYnVmZmVyIGNvcHkgZmxhZyB0byBmb3JjZSBhIG1lbW9yeSBjb3B5IGluIGFsbCBjYXNlcy4KCjIwMTMtMDItMTQgMTQ6MDk6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIFJldmVydCAidXRpbHM6IFVzZSBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUoKSBpbiBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxYTFhOWUxNDNmYjBlMTU1ZDc2MjdhYThlNDg5Y2Q1ZDA0YmMwOTNjLgoJICBUaGlzIGJyZWFrcyB0aGUgcGlwZWxpbmVzL3RhZ3NjaGVja2luZyB1bml0IHRlc3QgZm9yIHNvbWUgcmVhc29uCgkgIChmYWtlc3JjICEgY2Fwc2ZpbHRlciAhIHF0bXV4IGxpbmtpbmcgZmFpbHMgbm93KS4gSXQgbWlnaHQgYmUKCSAgYSBidWcgaW4gdGhlIHVuaXQgdGVzdCBvZiBjb3Vyc2UsIGJ1dCBzb21lb25lIHdpbGwgbmVlZCB0bwoJICBpbnZlc3RpZ2F0ZSB0aGlzLiBSZXZlcnRpbmcgZm9yIG5vdy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjUwOAoKMjAxMy0wMi0xNSAxMzowODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhbGxvY2F0b3IuYzoKCSAgYWxsb2NhdG9yOiBpbXByb3ZlIGZhbGxiYWNrIGNvcHkgZnVuY3Rpb24KCSAgT25seSB1c2UgdGhlIGFsbG9jYXRvciBvZiB0aGUgY29waWVkIG1lbW9yeSB3aGVuIHdlIGNhbiB1c2UgdGhlIGRlZmF1bHQKCSAgX2FsbG9jIGZ1bmN0aW9uIG9uIGl0LiBPdGhlcndpc2Ugd2Ugd2lsbCBoYXZlIHRvIHVzZSB0aGUgZGVmYXVsdAoJICBhbGxvY2F0b3IgZm9yIHRoZSBjb3B5LgoKMjAxMy0wMi0xNCAxMzo1NToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogZml4IGxvY2F0aW9uIGluIHVzZXIncyBob21lIGRpcmVjdG9yeSB3aGVyZSBHU3RyZWFtZXIgbG9va3MgZm9yIHBsdWdpbnMKCSAgSXQncyBiYXNlZCBvbiB0aGUgeGRnIHVzZXIgZGF0YSBkaXIgbm93IGluIDEuMC4KCjIwMTMtMDEtMjUgMDY6NTA6MjcgLTAzMDAgIE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVzZSBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUoKSBpbiBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUoKQoJICBtb3RpdmF0aW9uIGNvbWVzIGZyb206IC8qIEZJWE1FOiB3aHkgbm90IGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZSAocGFkKTsgKi8KCSAgdGhpcyBjb2RlIHBhdGggaXMgcXVpdGUgbmljZXIsIHdlIG5vdyBvbmx5IHJldmVydCB0byBjcmVhdGluZyB0aGUgdGVtcGxhdGUKCSAgaWYgZ3N0X3BhZF9nZXRfcGFkX3RlbXBsYXRlIGZhaWxzLgoJICB3aXRoIHRoaXMgZm9yaywgd2UgZ2FpbiBhIG5vbi1hbGxvY2F0aW9uIG9mIEdzdENhcHMgKnRlbXBsY2FwcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNTA4CgoyMDEzLTAyLTEzIDAwOjI3OjI4ICswMDAwICBLcnp5c3p0b2YgS29ub3BrbyA8a3J6eXN6dG9mLmtvbm9wa29AZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBVc2UgZ191bml4X3NpZ25hbF9hZGQoKSB0byBoYW5kbGUga2V5Ym9hcmQgaW50ZXJydXB0aW9uCgkgIEN1cnJlbnQgaW1wbGVtZW50YXRpb24gdXNlcyBhIHRyYWRpdGlvbmFsIHNpZ25hbCBoYW5kbGVyIGFuZCBhIDI1MG1zCgkgIHRpbWVvdXQgY2FsbGJhY2sgaW4gdGhlIGV2ZW50IGxvb3AuICBBZGRpbmcgYSBHU291cmNlIHdpdGgKCSAgZ191bml4X3NpZ25hbF9hZGQoKSB0byB0aGUgR01haW5Mb29wIGlzIGEgbXVjaCBtb3JlIGVsZWdhbnQgc29sdXRpb24uCgkgIFRoZSBzaWduYWwgaGFuZGxlciB3aXRoIHRoaXMgYXBwcm9hY2ggY2FuIHNlbmQgYSBtZXNzYWdlIHRvIHRoZSBidXMKCSAgZGlyZWN0bHkgcmF0aGVyIHRoYW4gc2V0IGEgZmxhZyBhcyBhbGwgZGlzcGF0Y2hpbmcgaW50cmljYWNpZXMgYXJlIGhhbmRsZWQKCSAgYnkgR0xpYi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MzQ4MQoKMjAxMy0wMi0xNCAwMDowNzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBmbGVzaCBvdXIgJ1J1bm5pbmcgR1N0cmVhbWVyJyBiaXRzIGEgYml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM2MDcKCjIwMTMtMDItMTMgMjM6Mjc6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGZsZXNoIG91dCBnc3QtbGF1bmNoLTEuMCBtYW4gcGFnZSBhIGxpdHRsZQoJICBGaXggdXAgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgcmVnaXN0cnkuCgkgIE1lbnRpb24gbW9yZSBvcHRpb25zIGZvciBHU1RfREVCVUcgKHdpbGRjYXJkcyBhbmQKCSAgbmFtZWQgZGVidWcgbGV2ZWxzKS4KCSAgRXhwbGFpbiB3aGF0IHRvIGRvIHdpdGggdGhlIGRvdCBmaWxlcyB0aGF0IGNhbiBiZQoJICBwcm9kdWNlZCBieSBzZXR0aW5nIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTM2MDcKCjIwMTItMTItMjcgMDA6MDM6MDYgKzAxMDAgIEdlcnQgTWljaGFlbCBLdWx5ayA8Z2t1bHlrQHlhaG9vLmRlPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICBkb2NzOiBmaXggYWR2YW5jZWQtbWV0YWRhdGEgY29kZSBleGFtcGxlIGluIG1hbnVhbAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwNzUxCgoyMDEzLTAyLTEzIDE2OjUyOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFjY2VwdCBOVUxMIGVycm9yIGFyZ3VtZW50IGluIGdzdF9tZXNzYWdlX3BhcnNlX3tlcnJvcix3YXJuaW5nLGluZm99CgkgIEFuZCBzaW1wbGlmeSBjb2RlIGEgYml0IHdoaWxlIGF0IGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNzA0CgoyMDEzLTAyLTEzIDE3OjAwOjIzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFJlbW92ZSBzZXQtc3R5bGUgYml0bWFzayBpbnRlcnNlY3Rpb24vdW5pb24vc3VidHJhY3Rpb24gZnVuY3Rpb25zCgkgIFNldCBvcGVyYXRpb25zIG9uIHRoZSBiaXRtYXNrcyBkb24ndCBtYWtlIG11Y2ggc2Vuc2UgYW5kIHJlc3VsdAoJICBpbiBpbnZhbGlkIGNhcHMgd2hlbiB1c2VkIGFzIGEgY2hhbm5lbC1tYXNrLiBUaGV5IGFyZSBub3cgaGFuZGxlZAoJICBleGFjdGx5IGxpa2UgaW50ZWdlcnMuCgkgIFRoaXMgZnVuY3Rpb25hbGl0eSB3YXMgbm90IHVzZWQgYW55d2hlcmUgZXhjZXB0IGZvciB0ZXN0cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTM3MAoKMjAxMy0wMi0xMyAxMToxOTowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogVGhlIGxhdGVuY3kgcXVlcnkgc2hvdWxkIHJldHVybiBUUlVFIGJ5IGRlZmF1bHQsIGRpZmZlcmVudCB0byBvdGhlciBxdWVyaWVzCgkgIEZpeGVzIHVuaXQgdGVzdCBmYWlsdXJlcyBjYXVzZWQgYnkgZjNkMjY4ZGU3ZjdmYjExNjE3NzhhOWE5NWUwZDU0ZDhjODllZjYyNgoKMjAxMy0wMi0xMyAxMDo0NjozNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHN0cnVjdHVyZTogTWFrZSBzdXJlIHRoYXQgc3Vic2V0cyBoYXZlIGFsbCBmaWVsZHMgb2YgdGhlIHN1cGVyc2V0CgkgICJ2aWRlby94LWgyNjQscGFyc2VkPShib29sZWFuKXRydWUiIGlzIG5vdCBhIHN1cGVyc2V0IG9mCgkgICJ2aWRlby94LWgyNjQsc3RyZWFtLWZvcm1hdD0oc3RyaW5nKWJ5dGUtc3RyZWFtLGFsaWdubWVudD0oc3RyaW5nKW5hbCIKCSAgZm9yIGV4YW1wbGUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTMzNjUKCjIwMTMtMDItMTIgMTI6MzI6MjMgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB1cGRhdGUgZXhwb3J0cyBmb3IgYmFzZXBhcnNlIEFQSSBjaGFuZ2VzCgoyMDEzLTAyLTEyIDEyOjMxOjQyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGRvYyB0eXBvCgoyMDEzLTAyLTExIDE2OjUxOjQ4IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIGdzdF9iYXNlX3BhcnNlX3NldF90c19hdF9vZmZzZXQoKQoJICBTZXRzIHRoZSBidWZmZXIgdGltZXN0YW1wcyBiYXNlZCBvbiBsYXN0IHNlZW4gdGltZXN0YW1wcyBhdCBhCgkgIHBhcnRpY3VsYXIgb2Zmc2V0IGludG8gdGhlIGZyYW1lLgoJICBBUEk6IGdzdF9iYXNlX3BhcnNlX3NldF90c19hdF9vZmZzZXQoKQoKMjAxMy0wMi0xMSAxNjo0Mjo0MSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IEFkZCBnc3RfYWRhcHRlcl9wcmV2X1twZF10c19hdF9vZmZzZXQoKQoJICBPcmlnaW5hbCBwYXRjaCB3cml0dGVuIGJ5IE1pY2hhZWwgU21pdGggPG1zbWl0aEByZGlvLmNvbT4uCgkgIEFQSTogZ3N0X2FkYXB0ZXJfcHJldl9wdHNfYXRfb2Zmc2V0KCkKCSAgQVBJOiBnc3RfYWRhcHRlcl9wcmV2X2R0c19hdF9vZmZzZXQoKQoKMjAxMy0wMi0wOSAxODoxNDowOSArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBxdWVyeSBzaW5rIGVsZW1lbnRzIGFuZCBzb3VyY2UgcGFkcyBvZiB0aGUgYmluCgkgIGdzdF9iaW5fcXVlcnkoKSBub3cgZm9yd2FyZHMgdGhlIHF1ZXJ5IHRvIHRoZSBzb3VyY2UgcGFkcyBhcyB3ZWxsIGlmCgkgIG5vbmUgb2YgdGhlIHNpbmtzIG9mIHRoZSBiaW4gc2F0aXNmaWVkIHRoZSBxdWVyeS4gVGhpcyBoZWxwcyBpbiB0aGUKCSAgY2FzZSBvZiBEVVJBVElPTiBxdWVyaWVzIGRvbmUgYSBiaW4gY29udGFpbmluZyBhIHNvdXJjZSBlbGVtZW50LgoJICBGaXhlcyBidWcgNjM4NzQ5CgoyMDEzLTAyLTA3IDEyOjQ3OjAyICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogTGV0IGdzdF9iaW5fc2VuZF9ldmVudCgpIHNlbmQgZXZlbnRzIHRvIGdob3N0IHBhZHMgYXMgd2VsbAoKMjAxMy0wMi0xMSAyMjo1MjoyNSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgY29tcGF0OiBraWxsIG1vcmUgdXNlcyBvZiBnc3RfcGFkX3NldF9jYXBzKCkKCjIwMTMtMDItMTIgMDA6MDg6NTEgKzExMDAgIFRpbSAnbWl0aHJvJyBBbnNlbGwgPG1pdGhyb0BtaXRoaXMuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGRpbmcgb2Zmc2V0IHRvIEdzdFNlZ21lbnQgc2VyaWFsaXplL2Rlc2VyaWFsaXplLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzNTg3CgoyMDEzLTAyLTA5IDEyOjMyOjAyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtbmF1d0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGltcHJvdmUgUFRTIGludGVycG9sYXRpbmcKCSAgLi4uIGFuZCB0cmFja2luZyBvZiBEVFMuICBGaXhlcyBjYXNlcyB3aGVyZSBQVFMgaXMgbG9ja2VkIG9uIHRvIHRoZQoJICBEVFMgb2YgYW4gaW5jb21pbmcgYnVmZmVyIHdpdGggbm8gUFRTIHdpdGggaW52YWxpZCBkYXRhLCBsZWFkaW5nIHRvCgkgIG5vIG91dGdvaW5nIFBUUyAoc2luY2UgaXQgaXMgbm90IGFsbG93ZWQgc21hbGxlciB0aGFuIERUUykuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE0ODEKCjIwMTMtMDItMDggMjE6Mjg6MTggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IGFkZCBtb3JlIHBvcnRpbmcgZGV0YWlscwoKMjAxMy0wMi0wOCAyMToyMTo0OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGJpbmRpbmc6IGVycm9yIGhhbmRsaW5nIGZvciBiaW5kaW5nIGNvbnRyb2xzb3VyY2VzIHRvIHdyb25nIHByb3BlcnRpZXMKCSAgQWRkIHdhcm5pbmcgaWYgcHJvcGVydHkgaXMgbm90IHN1aXRhYmxlIGZvciBjb250cm9sbGluZy4gV2hlbiBhZGRpbmcgYSBjb250cm9sLQoJICBiaW5kaW5nIGNoZWNrIHRoYXQgcHNwZWMhPU5VTEwuCgoyMDEzLTAyLTA3IDEzOjA4OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogcmVtb3ZlIG9sZCBkb2NzIGFib3V0IGl0ZXJhdG9ycwoKMjAxMy0wMi0wNyAxMjo1MjoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZW1vdmUgb2xkIGNvbW1lbnQKCSAgVGhlIGl0ZXJhdG9ycyBub3cgcmV0dXJuIGEgR1ZhbHVlIGFuZCBub3QgdGhlIG9iamVjdCBkaXJlY3RseSBhbnltb3JlLgoKMjAxMy0wMi0wNyAxMjo1MDowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZXNldCBHVmFsdWUgZnJvbSBpdGVyYXRvciBhZnRlciB1c2FnZQoKMjAxMy0wMi0wNSAxNzoxNTozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSAgdGVzdHM6IGFkZCBiYXNlc2luayB0ZXN0CgoyMDEzLTAyLTA1IDE3OjE5OjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIHN5bmMgb2YgRU9TIGFmdGVyIGl0ZW0gd2l0aG91dCBkdXJhdGlvbgoJICBBZnRlciBhIGJ1ZmZlciBvciBHQVAgd2l0aG91dCBkdXJhdGlvbiwgYW4gRU9TIGV2ZW50IHNob3VsZCBiZSByZW5kZXJlZAoJICBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIHRoZSBlbmQgb2YgdGhlIHNlZ21lbnQuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI4NjgKCjIwMTMtMDItMDIgMTE6NTU6NTIgLTA4MDAgIE5hdGUgQm9nZGFub3dpY3ogPG5hdGV6YkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0cGlwZWxpbmU6IGZpeCBmYWlsZWQgYXNzZXJ0aW9uIGNhdXNlZCBieSBzZWVraW5nIHBpcGVsaW5lIHdpdGggTlVMTCBjbG9jawoJICBVbmRlciBjZXJ0YWluIEdTVF9TVEFURV9DSEFOR0VEX1BBVVNFRF9UT19QTEFZSU5HIHRyYW5zaXRpb25zLCBhIHBpcGVsaW5lIHdpdGgKCSAgYSBOVUxMIGNsb2NrIHdpbGwgZmFpbCBhbiBhc3NlcnRpb24gZHVlIHRvIGFuIHVuY2hlY2tlZCBjYWxsIHRvIGdzdF9vYmplY3RfcmVmKCkuCgkgIFRoaXMgaXMgZml4ZWQgYnkgc2ltcGx5IGFkZGluZyBhIGNoZWNrIGFuZCBvbmx5IHJlZi1pbmcgaWYgdGhlIGNsb2NrIGlzIG5vdCBOVUxMLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkzMDY1CgoyMDEzLTAyLTA1IDEzOjQ0OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IGNoYW5nZSBhcmd1bWVudCBuYW1lIGZvciBkb2NzCgoyMDEzLTAyLTA0IDEwOjMwOjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IG9yZGVyIG9mIGNhcHMgb24gYW4gdW5uZWdvdGlhdGVkIGxpbmsKCSAgaGVhZGxhYmVsIGlzIHRoZSBzaW5rX3BhZCAod2hlcmUgdGhlIGxpbmsgcG9pbnRzIHRvKSBhbmQgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgoKMjAxMy0wMi0wMSAyMTo1OTo0MSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSAgZG9jczogdXBkYXRlIHRoZSBjb250cm9sbGVyIGRvY3MKCSAgQWRkIHRoZSBjb250cm9sIGJpbmRpbmdzIHRvIHRoZSBkb2NzLiBBZGQgYSBsaXR0bGUgbW9yZSBkZXRhaWwuCgoyMDEzLTAyLTAxIDIxOjU3OjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBwb3J0aW5nOiBhIGZldyB1cGRhdGVzIGZvciB0aGUgcG9ydGluZyBndWlkZQoKMjAxMy0wMS0zMCAxMzowNjo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IGNhbid0IHBhc3MgYSBHVHlwZSB0aHJvdWdoIEdJTlRfVE9fUE9JTlRFUgoJICBVc2UgR1NJWkVfVE9fUE9JTlRFUiBpbnN0ZWFkLiBzaXplb2YoR1R5cGUpIG1heSBiZSBsYXJnZXIKCSAgdGhhbiBzaXplb2YoZ3Vsb25nKSBhbmQgc2l6ZW9mKGludCksIHNvIHRoZSBjYXN0cyBtYXkKCSAgY2hvcCBvZmYgc29tZSBiaXRzIGZyb20gdGhlIEdUeXBlIHZhbHVlIG9uIHNvbWUgYXJjaGl0ZWN0dXJlcy4KCjIwMTMtMDEtMjkgMTI6NDA6NTIgKzAxMDAgIEFsZXhhbmRlciBTY2hyYWIgPGFsZXhhc0BheGlzLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiB1bml0IHRlc3QgdG8gdHJpZ2dlciB0aGUgcXVldWUvZmx1c2hpbmcgcmFjZSBjb25kaXRpb24gYnVnIGZvciBhbGxvY2F0aW9uIHF1ZXJpZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0yOCAxMTowNToyOCArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHF1ZXJ5IGZyb20gcXVldWUgaWYgcXVldWUgaXMgZmx1c2hpbmcKCSAgV2hlbiBxdWVyeWluZyBhIHF1ZXVlIHRoYXQgaXMgZmx1c2hpbmcgd2UgZW5kIHVwIGFkZGluZwoJICBhIHF1ZXJ5IHRvIHRoZSBxdWV1ZWFycmF5IHdpdGhvdXQgdGFraW5nIGEgcmVmZXJlbmNlIHRvCgkgIHRoYXQgcXVlcnkgKGJlY2F1c2UgdGhlIG5vcm1hbCBmdW5jdGlvbmFsaXR5IGlzIHRvIGJsb2NrCgkgIHVudGlsIHRoYXQgcXVlcnkgaXMgZG9uZSBhbmQgZGlzY2FyZGVkIGZyb20gdGhlIHF1ZXVlKS4KCSAgVGhpcyBsYXRlciBjYXVzZXMgcHJvYmxlbSBpZiB0aGUgcXVlcnkgaXMgdW5yZWZmZWQgb3V0c2lkZQoJICBvZiB0aGUgcXVldWUgYmVmb3JlIHdlIGRpc2NhcmQgdGhlIHF1ZXVlLiBUaGVyZSBpcyBhIGNoZWNrCgkgIHRvIGF2b2lkIHVucmVmZmluZyBhbnkgbGluZ2VyaW5nIHF1ZXJ5LW9iamVjdHMsIGJ1dCBzaW5jZQoJICB0aGUgcXVlcnkgaGFzIGJlZW4gZGVsZXRlZCB0aGF0IGNoZWNrIGZhaWxzLgoJICBUaGlzIGNvbW1pdCBkZXBlbmRzIG9uIG90aGVyIGZpeGVzIGRvbmUgdG8gZ3N0X3F1ZXVlX2FycmF5X2ZpbmQoKQoJICBhbmQgZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTMwIDExOjU1OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJICBxdWV1ZWFycmF5OiBtYWtlIF9maW5kKCkgZmluZCB0aGUgdmFsdWUgaWYgbm8gY29tcGFyZSBmdW5jdGlvbiBpcyBwcm92aWRlZAoJICBBbGxvdyBOVUxMIGFzIGNvbXBhcmUgZnVuY3Rpb24gZm9yIGRpcmVjdCB2YWx1ZSBsb29rdXAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI2OTEKCjIwMTMtMDEtMzAgMTE6MzQ6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHRlc3RzOiBjaGVjayByZXR1cm4gdmFsdWUgb2YgZ3N0X3F1ZXVlX2FycmF5X2Ryb3BfZWxlbWVudCgpIHRvbwoJICBXYXMgYWRkZWQgd2hlbiB0aGUgQVBJIHdhcyBtYWRlIHB1YmxpYyBpbiBnaXQgbWFzdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjkxCgoyMDEzLTAxLTI5IDIyOjU0OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIHRlc3RzOiBvbmUgbW9yZSB0ZXN0IGZvciBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoJICBDb25mbGljdHM6CgkgIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jCgoyMDEzLTAxLTI4IDExOjA1OjI4ICswMTAwICBBbGV4YW5kZXIgU2NocmFiIDxhbGV4YXNAYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogZml4IGdzdF9xdWV1ZV9hcnJheV9maW5kKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoKMjAxMy0wMS0yOCAxMTowNToyOCArMDEwMCAgQWxleGFuZGVyIFNjaHJhYiA8YWxleGFzQGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkgIHF1ZXVlYXJyYXk6IGZpeCBnc3RfcXVldWVfYXJyYXlfZHJvcF9lbGVtZW50KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjY5MQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jCgoyMDEzLTAxLTI5IDE2OjU1OjIzICswMjAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci1kb2NzLmg6CgkgIGRvY3M6IGFsaWduIHRoZSBjb21tZW50cyBjb3JyZWN0bHkgd2l0aCB0aGUgZGVjbGFyYXRpb24gaW4gYml0cmVhZGVyIGRvY3MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjgwOQoKMjAxMy0wMS0yOSAwOTo0NToyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBoYW5kbGUgcmVuZWdvdGlhdGlvbiBjb3JyZWN0bHkKCSAgRG9uJ3QgcmV0cnkgdG8gbmVnb3RpYXRlIHdoZW4gd2UgZmFpbCB0byBuZWdvdGlhdGUgYnV0IGluc3RlYWQgcHJvZHVjZSBhCgkgIE5PVF9ORUdPVElBVEVEIGVycm9yLiBXZSBvbmx5IHdhbnQgdG8gcmV0cnkgbmVnb3RpYXRpb24gaWYgdGhlIHJlc3VsdCBmcm9tCgkgIGdzdF9wYWRfcHVzaCgpIHJldHVybmVkIE5PVF9ORUdPVElBVEVELgoKMjAxMy0wMS0yOCAyMDo0MToyMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYTk0MjI5MyB0byAyZGUyMjFjCgoyMDEzLTAxLTI4IDEzOjA1OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIGV4YW1wbGU6IGZpeCBGSVhNRSBpbiBleGFtcGxlCgkgIFVzZSBzZXRwcmlvcml0eSB0byByYWlzZSBwcmlvcml0eQoKMjAxMy0wMS0yNyAwNjoyMDo1MSAtMDgwMCAgU2ltb24gRmVsdG1hbiA8c2ZlbHRtYW5Ac3JjLmdub21lLm9yZz4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZy1pOiBhZGQgYnVpbHQgZW51bXR5cGVzIGhlYWRlcnMgYW5kIHNvdXJjZXMgdG8gZ2lyIGNyZWF0aW9uCgkgIEFkZCBnc3RlbnVtdHlwZXMuaC9jIGZvciBpbmNsdXNpb24gd2l0aCBnLWlyLXNjYW5uZXIuIFRoaXMgZml4ZXMKCSAgcHJvYmxlbXMgd2hlcmUgaW50cm9zcGVjdGlvbiBiYXNlZCBiaW5kaW5ncyB0aGluayBHc3RTdGF0ZSBpcwoJICB0eXBlbGVzcyBkdWUgdG8gdGhlIEdUeXBlIG5vdCBiZWluZyBpbmNsdWRlZCBhcyBhbiBhbm5vdGF0aW9uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMTg1CgoyMDEzLTAxLTI3IDA5OjE4OjAwICswNTMwICBCLlByYXRoaWJoYSA8cHJhdGhpYmhhYkBjZGFjLmluPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJICB0ZXN0czogdXNlIGdfdGltZW91dF9hZGRfc2Vjb25kcyBpbiBwaXBlbGluZSBzdHJlc3MgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkyNjEyCgoyMDEzLTAxLTI0IDE3OjUwOjMxIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogUHV0IHRoZSByaWdodCBwYXRoIGZvciB0aGUgZ3N0dHRlc3RjbG9jayBpbmNsdWRlIGZpbGUKCjIwMTMtMDEtMjQgMTU6NTA6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogcmVuYW1lIHZhcmlhYmxlCgkgIFRoZSBmaWx0ZXIgdmFyaWFibGUgd2FzIHVzZWQgdHdpY2UgZm9yIGRpZmZlcmVudCB0aGluZ3MuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTI0MzIKCjIwMTMtMDEtMTcgMjE6MzU6NDggLTAzMDAgIE5pdiBTYXJkaSA8eGFpa2lAZXZpbGdpZ2dsZS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdF9wYWRfY2hlY2tfcmVjb25maWd1cmU6IG9ubHkgcmVtb3ZlIGZsYWcgaWYgc2V0LgoJICB0aGUgY29kZSBpZmVkIGEgZGVidWcgc3RhdGVtZW50LCB0aGF0IGNhbid0IGJlIHJpZ2h0LiBhbnl3YXksIHRoZSB3YXkgaXQgaXMsCgkgIHdlIGRvbid0IHJlYWxseSBuZWVkIHRoYXQgYnJhbmNoLCBhcyB3ZSBzZXQgdGhlIGZsYWcgdG8gdW5zZXQgb25seSBpZiBzZXQKCSAgKGFuZCB0aGF0IGNhbid0IGZhaWwpIGhlbmNlIHRoZSBlbmQgcmVzdWx0IGlzIGFsd2F5cyB0byB1bnNldCB0aGUgZmxhZy4KCSAgU2lnbmVkLW9mZi1ieTogTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTk4NQoKMjAxMy0wMS0xNyAyMTo0MzoyNSAtMDMwMCAgTml2IFNhcmRpIDx4YWlraUBldmlsZ2lnZ2xlLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBzZXQgTkVFRF9SRUNPTkZJR1VSRSBmbGFnIGlmIG5lZ290aWF0ZSBmYWlscwoJICBXaGVuIG5lZ290aWF0aW9uIGZhaWxzLCBtYXJrIHRoZSBwYWQgYXMgbmVlZGluZyBhIHJlY29uZmlndXJlIGFnYWluIHNvCgkgIHRoYXQgaXQgZ2V0cyBwaWNrZWQgdXAgYWdhaW4gbmV4dCB0aW1lLgoJICBTaWduZWQtb2ZmLWJ5OiBOaXYgU2FyZGkgPHhhaWtpQGV2aWxnaWdnbGUuY29tPgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxOTg2CgoyMDEzLTAxLTE5IDEyOjUxOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCBnc3RfcGFkX2dldF9zdHJlYW1faWQoKSB1dGlsaXR5IGZ1bmN0aW9uCgkgIEFQSTogZ3N0X3BhZF9nZXRfc3RyZWFtX2lkKCkKCjIwMTMtMDEtMTggMTY6MDU6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICB0b29sczogbWlub3IgYWRkaXRpb24gdG8gZ3N0LWxhdW5jaC0xLjAgbWFuIHBhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjAxNQoKMjAxMy0wMS0xOCAxNjowMToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHRvb2xzOiB1cGRhdGUgZ3N0LWxhdW5jaC0xLjAgbWFuIHBhZ2UgZm9yIG5ldyBkZWJ1ZyBsZXZlbHMKCSAgVGhlcmUgYXJlIG1vcmUgZGVidWcgbGV2ZWxzIHRoZXNlIGRheXMsIG5vdCBvbmx5IDAtNS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MjAxNQoKMjAxMy0wMS0xNyAwMDozODoxNCAtMDYwMCAgRGFuaWVsIETDrWF6IDx5b3NveUBkYW5pZWxkaWF6Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJICB0ZXN0czogZml4IEFCSSBjaGVjayBzdHJ1Y3Qgc2l6ZXMgZm9yIEFSTQoJICBhbmQgcmUtZW5hYmxlIEFCSSBjaGVjayBmb3IgQVJNLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxODI4CgoyMDEzLTAxLTE2IDE3OjI0OjQyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBkb2NzOiBhZGQgYSBub3RlIHRvIHRoZSBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpIGRvY3MgYWJvdXQgYnVmZmVyIGZsYWdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODIxMTAKCjIwMTMtMDEtMTYgMTE6Mjk6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgdGVzdHM6IGRpc2FibGUgQUJJIGNoZWNrcyBmb3IgYXJjaGl0ZWN0dXJlcyB3aGVyZSB0aGUgc3RydWN0IHNpemVzIGFyZSBub3QgdXAtdG8tZGF0ZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkxODI4CgoyMDEzLTAxLTE1IDE1OjAzOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMmEwNjhjZSB0byBhOTQyMjkzCgoyMDEzLTAxLTE1IDEzOjQ3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgVXNlIEdTVF8qXzFfMCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZXZlcnl3aGVyZQoJICBUaGUgXzFfMCBzdWZmaXhlZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgb3ZlcnJpZGUgdGhlCgkgIG5vbi1zdWZmaXhlZCBvbmVzLCBzbyBpZiB3ZSdyZSBpbiBhbiBlbnZpcm9ubWVudCB0aGF0CgkgIHNldHMgdGhlIF8xXzAgc3VmZml4ZWQgb25lcywgc3VjaCBhcyBqaGJ1aWxkLCB3ZSBuZWVkCgkgIHRvIHNldCB0aG9zZSB0byBtYWtlIHN1cmUgb3VycyBhY3R1YWxseSBhbHdheXMgZ2V0CgkgIHVzZWQuCgoyMDEzLTAxLTE1IDEzOjQ3OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0ZWQgc3RyaW5nCgoyMDEzLTAxLTE1IDA5OjQyOjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogYWRkIGFsbG93LW5vbmUgYW5ub3RhdGlvbiBmb3IgZ3N0X3BpcGVsaW5lX25ldygpJ3MgbmFtZSBwcm9wZXJ0eQoKMjAxMy0wMS0xNCAyMDowMjo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBtaW5vciBHc3RCYXNlUGFyc2UgZG9jcyBmaXhlcwoJICBFeHBvc2UgZG9jcyBmb3IgZ3N0X2Jhc2VfcGFyc2VfZmluaXNoX2ZyYW1lKCkuCgoyMDEzLTAxLTE0IDE3OjAxOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogaGFuZGxlIG1hcCBmYWlsdXJlCgoyMDEzLTAxLTE0IDE3OjAwOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBtYXAgZmFpbHVyZQoKMjAxMy0wMS0xNCAxNzowMDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBoYW5kbGUgbWFwIGZhaWx1cmUKCjIwMTMtMDEtMTMgMTQ6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCB2ZnVuY3MgdG8gaW50ZXJjZXB0IHF1ZXJpZXMKCSAgVXNlZnVsIGZvciB2aWRlbyBwYXJzZXMgdGhhdCB3YW50IHRvIGF0dGFjaCBtYXR0ZXIgb3IKCSAgZmluZCBvdXQgaWYgZG93bnN0cmVhbSBzdXBwb3J0cyBjZXJ0YWluIG1ldGFzLgoJICBBUEk6IEdzdEJhc2VQYXJzZUNsYXNzOjpzcmNfcXVlcnkoKQoJICBBUEk6IEdzdEJhc2VQYXJzZUNsYXNzOjpzaW5rX3F1ZXJ5KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTQ3NQoKMjAxMy0wMS0xMiAyMDo1NDoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHVwIG5hbWUgb2YgZGVmYXVsdCBldmVudCB2ZnVuY3MKCjIwMTMtMDEtMTAgMTE6MzQ6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSAgY29udHJvbGJpbmRpbmc6IGhpZGUgb25lIHVudXNlZCB0eXBlZGVmCgkgIFRoaXMgaXMgbm90IHVzZWQgaW50ZXJuYWxseS4KCjIwMTMtMDEtMTAgMTE6MzM6NDIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSAgZG9jczogaW1wcm92ZSBhcGkgZG9jcyBmb3IgY29udHJvbHNvdXJjZSBhbmQgLWJpbmRpbmcKCjIwMTMtMDEtMDUgMTY6MzA6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgdGVzdHM6IGZpeCBsZWFrIGluIGdob3N0cGFkIHVuaXQgdGVzdAoJICBUaGUgY3JlYXRlZCBwYWQgaXMgbmV2ZXIgdXNlZCBhbmQgb3ZlcndyaXR0ZW4gd2l0aAoJICBhbm90aGVyIG5ld2x5LWNyZWF0ZWQgcGFkIGEgZmV3IGxpbmVzIGJlbG93LgoKMjAxMy0wMS0wNCAxMjoyNzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgZG9jczogbWlub3Igc3lzdGVtc2Nsb2NrIGRvYyBmaXgKCjIwMTMtMDEtMDMgMTA6MTY6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSW5pdGlhbGl6ZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlCgoyMDEyLTEyLTMwIDIzOjM1OjQ4ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiByZXR1cm4gZ3NzaXplIGZyb20gZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fKiBmdW5jdGlvbnMKCSAgQXMgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIC0xIHdoZW4gdGhlIG1hdGNoIGlzIG5vdCBmb3VuZAoKMjAxMy0wMS0wMSAxMDoyMzo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBDaGVjayBpZiBidWZmZXJzIGFyZSB0b28gbGF0ZSBiZWZvcmUgY2FsbGluZyBwcmVwYXJlL3ByZXBhcmVfbGlzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjkwOTM2CgoyMDEyLTEyLTMwIDIzOjQ4OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHJlcGxhY2UgZGVwcmVjYXRlZCBBTV9DT05GSUdfSEVBREVSIHdpdGggQUNfQ09ORklHX0hFQURFUlMKCSAgQU1fQ09ORklHX0hFQURFUiBoYXMgYmVlbiByZW1vdmVkIGluIHRoZSBqdXN0LXJlbGVhc2VkIGF1dG9tYWtlIDEuMTM6CgkgIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYXV0b21ha2UvMjAxMi0xMi9tc2cwMDAzOC5odG1sCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA4ODEKCjIwMTItMTItMjIgMTY6NTA6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGNhcHMsIHN0cnVjdHVyZSwgIHRhZ2xpc3Q6IG1pY3JvLW9wdGltaXNhdGlvbnMKCSAgQXZvaWQgc29tZSB1bm5lY2Vzc2FyeSBHVmFsdWUgY29weWluZyBieSBtYWtpbmcgdXNlIG9mCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfdGFrZV92YWx1ZSgpIHdoZXJlIHBvc3NpYmxlLgoKMjAxMi0xMi0yMiAxNjoyOTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogc29tZSBtaWNyby1vcHRpbWlzYXRpb25zCgkgIEF2b2lkIHVubmVjZXNzYXJ5IHZhbHVlIGNvcHlpbmcsIGFuZCB1bm5lY2Vzc2FyeSBpbml0L3Vuc2V0CgkgIGN5Y2xlcyB3aGljaCBhbGwgZ28gdGhyb3VnaCB0aGUgdmFsdWUgdGFibGUuIFRoZXJlJ3MgYSBidW5jaAoJICBvZiBwbGFjZXMgd2hlcmUgd2UgY29weSBhIHZhbHVlIGFuZCB0aGVuIHVuc2V0IGl0IGluIHRoZSBuZXh0CgkgIGxpbmUsIGluc3RlYWQgb2YganVzdCB0YWtpbmcgb3ZlciB0aGUgc291cmNlIHZhbHVlLgoKMjAxMi0xMi0yMiAxNjo1Mzo0NyArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBmaXggbG9jYXRpb24gb2YgcmVwb3NpdG9yeSB3aXRoIHNzaAoKMjAxMi0xMi0yMSAxNjozNjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJICBiaW46IGFkZCBmbGFnIHRvIGRpc2FibGUgcmVzeW5jIHN0YXRlIGNoYW5nZQoJICBBZGQgYSBHU1RfQklOX0ZMQUdfTk9fUkVTWU5DIHRoYXQgZGlzYWJsZXMgYSByZXN5bmMgd2hlbiBhbiBlbGVtZW50IGlzIGFkZGVkLAoJICByZW1vdmVkIG9yIGxpbmtlZCBpbiB0aGUgYmluLiBUaGlzIGlzIGludGVyZXN0aW5nIGZvciBjb21wbGV4IGJpbnMgdGhhdAoJICBkeW5hbWljYWxseSBhZGQgZWxlbWVudHMgdG8gdGhlbXNlbHZlcyBhbmQgd2FudCB0byBtYW5hZ2UgdGhlIHN0YXRlIG9mIHRob3NlCgkgIGVsZW1lbnRzIHdpdGhvdXQgaW50ZXJmZXJlbmNlIGZyb20gcmVzeW5jcy4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA0MjAKCjIwMTItMTItMjEgMTA6MDk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBzeW5jaHJvbml6YXRpb24gZG9jdW1lbnQgYSBsaXR0bGUKCjIwMTItMTItMjAgMTY6NDA6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgc3lzdGVtY2xvY2s6IGFkZCBPVEhFUiBjbG9jayB0eXBlCgkgIEFkZCBhbiBPVEhFUiBjbG9jayB0eXBlIHNvIHRoYXQgc3ViY2xhc3NlcyBhcmUgYWJsZSB0byBtYXJrIHRoZW1zZWx2ZXMgYXMKCSAgdXNpbmcgc29tZSBvdGhlciBjbG9jayBzb3VyY2UgdGhhbiB0aGUgcmVhbHRpbWUgb3IgbW9ub3RvbmljIGNsb2NrLgoKMjAxMi0xMi0yMCAxMzozMTowMiArMDEwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rb0BheGlzLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBjb3JyZWN0IG92ZXJydW4gaGFuZGxpbmcKCSAgVGhlIGNvbnRyb2wgb2Ygd2hldGVoZXIgYSBTaW5nbGVRdWV1ZSBpcyBmdWxsIGlzIG5vdCBjb3JyZWN0LgoJICBSZXdyb3RlIHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKCkgc28gaXQgY2hlY2tzIHRoZSBjb3JyZWN0IHZhcmlhYmxlcwoJICB3aGVuIGNoZWNraW5nIGlmIHRoZSBxdWV1ZSBoYXMgcmVhY2hlZCB0aGUgaGFyZCBsaW1pdHMsIGFuZCB0bwoJICBpbmNyZWFzZSB0aGUgbWF4IGJ1ZmZlciBsaW1pdCBvbmNlIGZvciBlYWNoIGNhbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA1NTcKCjIwMTItMTItMjAgMTE6NTk6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGltcGxlbWVudCBidWZmZXJpbmcgcXVlcnkgZm9yIGFsbCBtb2RlcwoJICBBbHNvIGltcGxlbWVudCB0aGUgYnVmZmVyaW5nIHF1ZXJ5IGZvciBTVFJFQU0gbW9kZS4KCjIwMTItMTItMjAgMTE6MzA6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlZmFjdG9yIGJ1ZmZlcmluZyBwZXJjZW50IGFuZCBzdGF0cwoJICBNYWtlIG1ldGhvZHMgdG8gZ2V0IHRoZSBjdXJyZW50IGJ1ZmZlcmluZyBwZXJjZW50IGFuZCB0aGUgc3RhdHMuIFdlIHdpbGwgdXNlCgkgIHRoaXMgaW4gdGhlIHF1ZXJ5IGxhdGVyLgoKMjAxMi0xMi0xMyAxMzo0NzoyOSArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBpbnZhbGlkIG91dHB1dCB0aW1lc3RhbXBzIGluIHNvbWUgY2FzZXMKCjIwMTItMTItMTQgMTU6MjI6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIE5FV1NFR01FTlQgLT4gU0VHTUVOVAoKMjAxMi0xMi0xNCAxNDowMzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwbHVnaW4gZG9jcwoJICBVcGRhdGUgYXJncy9zaWduYWxzIGV0Yy4KCjIwMTItMTItMTQgMTE6MDk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgYWRkIGRlYnVnIGNhdGVnb3J5CgkgIEFkZGluZyBhIGRlYnVnIGNhdGVnb3J5IGlzIG5pY2VyIHRoYW4gbG9nZ2luZyB0byB0aGUgZGVmYXVsdCBjYXRlZ29yeQoKMjAxMi0xMi0xNCAxMTowODo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGltcHJvdmUgZGVidWcKCjIwMTItMTItMTMgMTQ6NDg6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogY2FsbCBfc3RvcCB3aGVuIHN0YXJ0IGZhaWxlZAoJICBXaGVuIHdlIGZhaWxlZCB0byBjb21wbGV0ZSB0aGUgc3RhcnQsIGNhbGwgc3RvcCBhZ2Fpbi4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgYWxsCgkgIHN1Y2Nlc3NmdWxsIGNhbGxzIHRvIF9zdGFydCBhcmUgcGFpcmVkIHdpdGggYSBfc3RvcC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Nzg0NQoKMjAxMi0xMi0xMiAxNjo0NDoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2Jhc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9jaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2NvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L25ldC5oOgoJICBsaWJzOiBVc2UgZm9vL2Zvby5oIGFzIHNpbmdsZS1pbmNsdWRlIGhlYWRlciBjb25zaXN0ZW50bHkgZXZlcnl3aGVyZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4Nzg1CgoyMDEyLTEyLTExIDE2OjQ2OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwYXNzIERUUyBhbmQgUFRTIHRvIGhhbmRsZV9idWZmZXIKCSAgVGhpcyBtYWtlcyBpdCBoYW5kbGUgdGhlIHRpbWVzdGFtcHMgY29ycmVjdGx5IGFuZCBhdm9pZHMgdXNpbmcgYSB3cm9uZyB0aW1lc3RhbXAKCSAgZm9yIHRoZSBvdXRwdXQuCgoyMDEyLTEyLTExIDE2OjQ2OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBpbXByb3ZlIGRlYnVnCgkgIEFkZCBwdHMgYW5kIGR0cyBpbiBkZWJ1ZyBsb2cKCjIwMTItMTEtMDMgMTY6NTk6MzkgKzAwMDAgIEFuZHJ6ZWogQmllbmllayA8YW5keWhlbHBAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiByZXBvcnQgZXhlY3V0aW9uIHRpbWUgaW4gR1NUX1RJTUVfRk9STUFUCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc1MjMKCjIwMTItMTItMTAgMTE6NTU6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogcHJvdGVjdCBhZ2FpbnN0IE5VTEwgZmlsZW5hbWUgaW4gZGVidWcKCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODk5NDgKCjIwMTItMTItMDYgMDk6NDg6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBjbGFyaWZ5IGRvY3MKCjIwMTItMTItMDUgMTQ6NTY6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggZG9jcwoKMjAxMi0xMi0wNSAxNDoyNDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBmaXggMC4xMCBkb2NzIHRvIG1ha2UgbW9yZSBzZW5zZSBpbiAxLjAKCjIwMTItMTItMDUgMTQ6MDM6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IGRvY3MgZm9yIDEuMAoJICBBZGQgcGFyZW50IHRvIGNoYWluIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgdXNlIGl0LgoKMjAxMi0xMS0zMCAxMDo0MTo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGFkZCByZXNldC10aW1lIHR5cGUgc3RyaW5nCgoyMDEyLTExLTMwIDEwOjQxOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHJlbW92ZSBzb21lIGNhc3RzCgoyMDEyLTExLTI4IDE4OjA4OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMS4wLnR4dDoKCSAgZG9jczogYWRkIGxpbmsgdG8gcHl0aG9uIHBvcnRpbmcgZG9jIGFuZCBhcHAgZGV2IG1hbnVhbCB0byBwb3J0aW5nLXRvLTEuMC50eHQKCjIwMTItMTEtMjggMTc6MzY6NTUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogVXBkYXRlIGxpYnRvb2wgdmVyc2lvbmluZwoJICBJbiBvcmRlciBmb3IgMS54IGFuZCAxLih4KzEpIHZlcnNpb25zIHRvIG5vdCBpbnZhZGUgb24gZWFjaCBvdGhlcgoJICB3ZSBuZWVkIHRvIGhhdmUgZGlmZmVyZW50IGxpYiB2ZXJzaW9ucy4KCSAgU28gd2UgbmVlZCBhIGNvbnNpc3RlbnQgYW5kIHByZWRpY3RhYmxlIHNjaGVtZToKCSAgbGlicmFyeSB2ZXJzaW9uIG51bWJlciA9IE1JTk9SICogMTAwICsgTUlDUk8KCSAgRXg6CgkgIDEuMC4wID0+IDAgKGR1aCkKCSAgMS4wLjMgPT4gMwoJICAxLjEuMCA9PiAxMDAKCSAgMS4xLjEgPT4gMTAxCgkgIDEuMi4wID0+IDEyMAoJICAxLjEwLjUgPT4gMTAwNQoJICAuLi4uCgoyMDEyLTExLTI2IDE4OjE2OjUyIC0wNTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCBnc3QtZWRpdGluZy1zZXJ2aWNlcyB0byBQS0dfQ09ORklHX1BBVEgKCjIwMTItMTEtMjYgMDA6NTE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBjbGVhbiB1cCBzZWN0aW9ucyBmaWxlIGZvciBwYWQgcHJvYmUgZGVmaW5lcyB0aGF0IG1vdmVkIGludG8gZW51bQoKMjAxMi0xMS0yNiAwMDoyMDoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBnc3Q6IGRvbid0IHJlcXVpcmUgZ3RocmVhZC0yLjAKCSAgV2UgZG9uJ3QgbmVlZCB0byBsaW5rIHRvIGd0aHJlYWQtMi4wIGFueSBsb25nZXIsIHNpbmNlIGFsbAoJICB0aGUgbm9ybWFsIHRocmVhZC1yZWxhdGVkIHN0dWZmIGlzIGluIEdMaWIgcHJvcGVyLCBhbmQgd2UKCSAgZG9uJ3QgdXNlIGdfdGhyZWFkX2luaXQoKSBhbnkgbW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTA0MwoKMjAxMi0xMS0yNSAyMzo0Mjo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgZ3N0cmVhbWVyLTEuMC5wYzogbW92ZSBnbW9kdWxlLW5vLWV4cG9ydC0yLjAgZGVwZW5kZW5jeSB0byBSZXF1aXJlcy5wcml2YXRlCgkgIFVzZXJzIG9mIEdTdHJlYW1lciBhcmUgbm90IGdlbmVyYWxseSBleHBlY3RlZCB0byB1c2UgdGhlIEdNb2R1bGUgQVBJCgkgIGRpcmVjdGx5LiBzbyBkb24ndCBmb3JjZSB0aGVtIGFsbCB0byBsaW5rIGFnYWluc3QgaXQuCgkgIFdoaWxlIHdlJ3JlIGF0IGl0LCBubyBuZWVkIHRvIGRlZmluZSB0aGlzIHZpYSBjb25maWd1cmUuYWMgcmVhbGx5LCBqdXN0CgkgIHB1dCB0aGUgZGVwZW5kZW5jaWVzIGRpcmVjdGx5IGludG8gdGhlIC5wYy5pbiBmaWxlLgoKMjAxMi0xMS0yNSAyMzoyNjo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJKiBnc3QvZ3N0LmM6CgkgIGRvY3M6IHJlbW92ZSBhbGwgbWVudGlvbiBvZiBnX3RocmVhZF9pbml0KCkKCSAgSXQncyBiZWVuIGRlcHJlY2F0ZWQgc2luY2UgR0xpYiAyLjMyIGFuZCBpc24ndCBuZWVkZWQgYW55CgkgIGxvbmdlci4KCjIwMTItMTEtMjUgMTg6MTE6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IHJlZHVjZSBkZWJ1ZyBsb2cgc3BhbSBhIGJpdAoJICBMb2cgbG9ja2luZy91bmxvY2tpbmcgd2l0aCBUUkFDRSBkZWJ1ZyBsZXZlbC4KCjIwMTItMTEtMjMgMjE6MDk6NDUgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggYW5ub3RhdGlvbiBmb3IgZ3N0X2V2ZW50X3BhcnNlX3N0cmVhbV9zdGFydAoKMjAxMi0xMS0yMyAxMzozNjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBkb2N1bWVudCBtb3JlIHBhZCBwcm9iZSB2YWx1ZXMKCjIwMTItMTEtMjMgMTM6MzQ6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSAgdGVzdGNsb2NrOiByZW1vdmUgdW5uZWNlc3NhcnkgaW5jbHVkZQoKMjAxMi0xMS0yMyAxMzozMjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjbG9jay5jOgoJICB0ZXN0czogZml4IGNsb2NrIHVuaXQgdGVzdCBidWlsZCBmYWlsdXJlIGFmdGVyIGhlYWRlciBjaGFuZ2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg3ODUKCjIwMTItMTEtMjMgMTI6NDc6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZG9uJ3QgdXNlIHBhcmVudGhlc2lzIGZvciBPUmVkIHBhZCBwcm9iZSBmbGFnIGVudW1zCgkgIGdsaWItbWtlbnVtIGRvZXNuJ3QgbGlrZSB0aGVtIGZvciBzb21lIHJlYXNvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODgwNAoKMjAxMi0xMS0yMyAxMDo1ODoyNSArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBQdXQgYWxsIG9mIHRoZSBwcm9iZSB0eXBlcyBpbiB0aGUgZW51bSBzbyB0aGV5IHdvcmsgd2l0aCBiaW5kaW5ncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg4ODA0CgoyMDEyLTExLTIwIDIzOjEzOjMzIC0wODAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZS5oOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXQuaDoKCSAgbGliczogQWRkIG1pc3Npbmcgc2luZ2xlIGluY2x1ZGUgaGVhZGVycyBhbmQgdXNlIHRoZW0gaW4gR0lScwoKMjAxMi0xMS0yMCAxNjozNDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RzOiBkb24ndCB1c2UgZGVwcmVjYXRlZCB0aHJlYWQgQVBJCgoyMDEyLTExLTIwIDE2OjE5OjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIHNvbWUgZGVidWcKCjIwMTItMTEtMjAgMTY6MTk6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZXNldCBTVEFSVF9USU1FIHdoZW4gbmVlZGVkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODU4NzAKCjIwMTItMTEtMjAgMTU6Mzc6MTEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBNYWtlIEctSSBoYXBweSBieSBoaWRpbmcgZ3N0X2dfdGhyZWFkX2dldF90eXBlKCkKCjIwMTItMTEtMjAgMTU6MDc6MzcgKzAxMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPHVyYWV1c0BsaW51eHJpc2luLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBSZW1vdmUgeGZpZyBmcm9tIHNwZWMgZmlsZQoKMjAxMi0xMS0yMCAxNTowNjoxNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IFVzZSB0aGUgR0xpYiBHVHlwZSBmb3IgR1RocmVhZCBpZiBjb21waWxpbmcgYWdhaW5zdCBHTGliIDIuMzUuMyBvciBuZXdlcgoKMjAxMi0xMS0yMCAxMjo1NjoxMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRG9uJ3Qgc2V0IHRoZSBsb2NhbGUgaW4gZ3N0X2luaXQoKQoJICBUaGUgZnVuY3Rpb24gaW5pdF9wcmUoKSBpbiBnc3RyZWFtZXIvZ3N0L2dzdC5jIGNhbGxzIHNldGxvY2FsZShMQ19BTEwsICIiKSwKCSAgd2hpY2ggc2V0cyB0aGUgbG9jYWxlIHRvIHRoZSB2YWx1ZXMgc3BlY2lmaWVkIGluIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaXMKCSAgd3JvbmcgZm9yIHR3byByZWFzb25zOgoJICAxLiBJdCBpcyBhYnNvbHV0ZWx5IG5vdCB0aGUgdGFzayBvZiBhIGxpYnJhcnkgdG8gZGVjaWRlIG9uIHRoZSBjb3JyZWN0IGxvY2FsZQoJICBmb3IgYSBwcm9ncmFtLiAgU29tZSBwcm9ncmFtcyBjaGFuZ2UgdGhlIGxvY2FsZSBmb3IgdmFyaW91cyAoZ29vZCBvciBiYWQpCgkgIHJlYXNvbnMsIGFuZCBsaWJyYXJpZXMgc2hvdWxkIHJlc3BlY3QgdGhhdC4gIFByb2dyYW1zIHdoZXJlIEdTdHJlYW1lcidzCgkgIG92ZXJ3cml0aW5nIG9mIHRoZSBsb2NhbGUgY2F1c2VzIGJ1Z3MgaW5jbHVkZSBFbWFjcyBbMSwgMl0sIFN1YmxpbWUgVGV4dCBbM10sCgkgIGFuZCBMdWEgWzRdLgoJICBbMV0gaHR0cDovL2RlYmJ1Z3MuZ251Lm9yZy9jZ2kvYnVncmVwb3J0LmNnaT9idWc9MTIzOTIKCSAgWzJdIGh0dHA6Ly9idWd6aWxsYS5ub3ZlbGwuY29tL3Nob3dfYnVnLmNnaT9pZD03Nzk0MjYKCSAgWzNdIGh0dHA6Ly93d3cuc3VibGltZXRleHQuY29tL2ZvcnVtL3ZpZXd0b3BpYy5waHA/Zj0zJnQ9ODU0MwoJICBbNF0gaHR0cHM6Ly9naXRodWIuY29tL3Bhdm91ay9sZ2kvaXNzdWVzLzE5CgkgIE5vdGUgdGhhdCBzZXR0aW5nIHRoZSBsb2NhbGUgY2FuIGNhdXNlIHByb2JsZW1zIGZvciBwcm9ncmFtcyB0aGF0IGFyZSBub3QgZXZlbgoJICBsaW5rZWQgYWdhaW5zdCBHU3RyZWFtZXIuICBJbiB0aGUgY2FzZSBvZiBFbWFjcywgZm9yIGV4YW1wbGUsIEdTdHJlYW1lciBzZWVtcwoJICB0byBiZSBpbml0aWFsaXplZCB0aHJvdWdoIEdUSyB2aWEgbGliY2FuYmVycmEuCgkgIDIuIFNldHRpbmcgdGhlIGxvY2FsZSBpcyBub3QgdGhyZWFkLXNhZmUsIGFuZCB0aGVyZWZvcmUgc2hvdWxkIG5vdCBiZSBkb25lIGluIGEKCSAgbGlicmFyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTY1MAoKMjAxMi0xMS0xNiAxOTo0MTo0OCArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZvcndhcmQgc3RyZWFtLXN0YXJ0IGV2ZW50IGluIHB1c2ggbW9kZQoKMjAxMi0xMS0xOSAxMzozODozMCArMDEwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZG9jcy9SRUFETUU6CgkqIGRvY3MvbWFudWFsL3N0YXRlLWRpYWdyYW0uZmlnOgoJKiBkb2NzL3JhbmRvbS93dGF5L3BsYXllci5maWc6CgkgIFJlbW92ZSB0d28gbGFzdCAuZmlnIGZpbGVzIGZyb20gYnVpbGQsIHRoZXkgYXJlIG5vdyByZXBsYWNlZCB3aXRoIC5zdmcgZmlsZXMuIFRoYXQgc2FpZCBJIGRvbid0IHRoaW5rIGVpdGhlciAuZmlnIGZpbGUgd2FzIHN0aWxsIGJlaW5nIHVzZWQgYW55d2hlcmUuIFdpdGggdGhpcyBjaGFuZ2UgYW5kIHRoZSBvbmUgaW4gY29tbW9uIEdTdHJlYW1lciBubyBsb25nZXIgZGVwZW5kcyBvbiB4ZmlnLgoKMjAxMi0xMS0xOSAxMzoxNjo0OCArMDEwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIKCjIwMTItMTEtMTkgMTE6MjM6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGI0OTdjNGYgdG8gYTcyZmFlYQoKMjAxMi0xMS0xOSAxMTo0NTowNyArMDEwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZG9jcy9tYW51YWwvc3RhdGUtZGlhZ3JhbS5zdmc6CgkqIGRvY3MvcmFuZG9tL3d0YXkvcGxheWVyLnN2ZzoKCSAgQWRkIFNWRyB2ZXJzaW9ucyBvZiAuZmlnIGZpbGUKCjIwMTItMTEtMTcgMTA6Mjc6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIGV4YW1wbGVzOiBkb24ndCBjb21waWxlIHRlc3RydHBvb2wgZXhhbXBsZSBpZiBwdGhyZWFkcyBhcmUgbm90IGF2YWlsYWJsZSBsaWtlIG9uIHdpbjMyCgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBpdGFsYXJhYkBnbWFpbC5jb20KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODUxMQoKMjAxMi0xMS0xMyAyMToxMzowMCArMDEwMCAgQXJuYXVkIFZyYWMgPGF2cmFjQGZyZWVib3guZnI+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogZml4IGNsb2NrIGxlYWsgaW4gd2FpdF9ydW5uaW5nX3RpbWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODQ3NwoKMjAxMi0xMS0xNyAwMDoxMzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSAgZ3N0Y29tcGF0Lmg6IG1vdmUgbW9yZSBkZXByZWNhdGVkIEFQSSBpbnRvIHRoZSBkZXByZWNhdGVkIHNlY3Rpb24KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NTU5OAoKMjAxMi0xMS0xNCAxMjoyMDo1NCArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IGRvY3VtZW50YXRpb24gdXBkYXRlCgkgIEdTdGF0aWNSZWNNdXRleCB1c2FnZSBoYXMgYmVlbiByZXBsYWNlZCBieSBHUmVjTXV0ZXgsIHJlZmxlY3QgdGhpcwoJICBjaGFuZ2UgaW4gdGhlIGRvY3VtZW50YXRpb24uCgoyMDEyLTExLTE0IDEwOjU1OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkgIHRlc3RjbG9jazogcG9ydCB0byBuZXcgR0xpYiB0aHJlYWRpbmcgQVBJCgoyMDEyLTExLTEzIDIzOjExOjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBnc3RfYWRhcHRlcl9wcmV2X3RpbWVzdGFtcCAtPiBnc3RfYWRhcHRlcl9wcmV2X3B0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NTk4CgoyMDEyLTExLTEzIDIyOjQyOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0dGVzdGNsb2NrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIHRlc3RjbG9jazogbWlub3IgY2xlYW51cHMsIGFkZCBzaW5jZSBtYXJrZXJzIGZvciBndGstZG9jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODMwMTIKCjIwMTItMDgtMzAgMDE6NTg6NDEgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svbGlicy9nc3R0ZXN0Y2xvY2suYzoKCSAgY2hlY2s6IGFsbG93IEdzdFRlc3RDbG9jayB0byBoYW5kbGUgY2xvY2sgbm90aWZpY2F0aW9ucwoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3BlZWtfaWRfY291bnQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX2hhc19pZCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfcGVla19uZXh0X3BlbmRpbmdfaWQoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX3dhaXRfZm9yX25leHRfcGVuZGluZ19pZCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfd2FpdF9mb3JfcGVuZGluZ19pZF9jb3VudCgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfcHJvY2Vzc19uZXh0X2Nsb2NrX2lkKCkKCSAgQVBJOiBnc3RfdGVzdF9jbG9ja19nZXRfbmV4dF9lbnRyeV90aW1lKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzAxMgoKMjAxMi0xMS0xMyAyMToyOTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogYWRkIGRlcGVuZGVuY3kgb24gZ3N0Y2hlY2sgaGVhZGVyIGZpbGVzIGZvciBleHBvcnRzLnN5bQoJICBTbyBleHBvcnRzLnN5bSBnZXRzIHVwZGF0ZWQgY29ycmVjdGx5LCBhbmQgb3VyIG5ldyBzeW1ib2xzIGdldAoJICBleHBvcnRlZCBjb3JyZWN0bHksIHdoaWNoIG1ha2VzIGctaXItc2Nhbm5lciBtdWNoIGhhcHBpZXIgaW4KCSAgdGVybXMgb2YgbGlua2luZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzAxMgoKMjAxMi0wOC0yOSAxNjoxMToxMCArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdHRlc3RjbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3R0ZXN0Y2xvY2suaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0dGVzdGNsb2NrLmM6CgkgIGNoZWNrOiBhZGQgR3N0VGVzdENsb2NrIGFzIGEgZGV0ZXJtaW5pc3RpYyBjbG9jayBmb3IgdGVzdGluZwoJICBBUEk6IEdzdFRlc3RDbG9jawoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX25ldygpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfbmV3X3dpdGhfc3RhcnRfdGltZSgpCgkgIEFQSTogZ3N0X3Rlc3RfY2xvY2tfc2V0X3RpbWUoKQoJICBBUEk6IGdzdF90ZXN0X2Nsb2NrX2FkdmFuY2VfdGltZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODMwMTIKCjIwMTItMTEtMDkgMjE6MTA6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IGRlYnVnIG1lc3NhZ2UKCjIwMTItMTEtMDggMjA6MjI6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogcmUtaW5kZW50IGhlYWRlciBmaWxlCgkgIFRhYnMgdG8gc3BhY2VzLgoKMjAxMi0xMS0xMiAxMTo0MDo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHZhbHVlOiBBUEk6IEFkZCBib3hlZCB0eXBlIGZvciBHVGhyZWFkCgoyMDEyLTExLTEyIDEwOjMwOjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBGaXggaW5kZW50aW9uIGZvciBwcmludGluZyB0eXBlZmluZGVyIGZlYXR1cmVzCgoyMDEyLTExLTEyIDAxOjQwOjQyICswMTAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBjb21waWxlciB3YXJuaW5nIHdoZW4gZGVidWdnaW5nIGRpc2FibGVkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODgxMzAKCjIwMTItMTEtMTAgMDk6NTA6NDkgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcmVtb3ZlIHVudXNlZCBsYWJlbC4gRml4ZXMgY29tcGlsZXIgd2FybmluZy4KCjIwMTItMTAtMjkgMTI6MDg6MzEgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogZG9uJ3QgZmFpbCBpbiBfc2lua19ldmVudCBmb3Igc3RpY2t5IGV2ZW50cwoJICBJbXBsZW1lbnQgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGdzdF9wYWRfcHVzaF9ldmVudCB3aGVuIHB1c2hpbmcgc3RpY2t5IGV2ZW50cwoJICBmYWlscywgdGhhdCBpcyBkb24ndCBmYWlsIGltbWVkaWF0ZWx5IGJ1dCBmYWlsIHdoZW4gZGF0YSBmbG93IHJlc3VtZXMgYW5kIHVwc3RyZWFtCgkgIGNhbiBhZ2dyZWdhdGUgcHJvcGVybHkuCgkgIFRoaXMgZml4ZXMgc2VnbWVudCBzZWVrcyB3aXRoIGRlY29kZWJpbiBhbmQgdW5saW5rZWQgYXVkaW8gb3IgdmlkZW8gYnJhbmNoZXMuCgkgIEZpeGVzOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3ODk5CgoyMDEyLTExLTA5IDE2OjUwOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgc2ltcGxlIHJhdGUgY29udHJvbAoJICBBZGQgYSBtYXgtYml0cmF0ZSBwcm9wZXJ0eSB0aGF0IHdpbGwgc2xpZ2h0bHkgZGVsYXkgcmVuZGVyaW5nIG9mIGJ1ZmZlcnMgaWYgaXQKCSAgd291bGQgZXhjZWVkIHRoZSBtYXhpbXVtIGRlZmluZWQgYml0cmF0ZS4gVGhpcyBjYW4gYmUgdXNlZCB0byBkbwoJICByYXRlIGNvbnRyb2wgb24gbmV0d29yayBzaW5rcywgZm9yIGV4YW1wbGUuCgkgIEFQSTogR3N0QmFzZVNpbms6Om1heC1iaXRyYXRlCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfbWF4X2JpdHJhdGUoKQoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X21heF9iaXRyYXRlKCkKCjIwMTItMTEtMDggMTU6MzM6MDEgKzExMDAgIE1hdHRoZXcgV2F0ZXJzIDx5c3RyZWV0MDBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogbG9jayBiZWZvcmUgdW5sb2NrIGluIF9nZXRfY29uZmlnCgkgIEZpeGVzIGRlYWRsb2NrIG9uIFdpbmRvd3MKCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Nzg5NgoKMjAxMi0xMS0wNyAxODoxNToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogdXBkYXRlIGNvdXJ0ZXN5IG9mIGF1dG91cGRhdGUKCjIwMTItMTEtMDcgMTc6NTk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBjb21tb246IHVwZGF0ZSBmb3IgQUdfR1NUX1BMVUdJTl9ET0NTIHB5dGhvbiBjaGVja3MKCjIwMTItMTEtMDYgMTg6Mjk6MjggKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBEb2N1bWVudCBHU1RfREVCVUdfRklMRQoKMjAxMi0xMS0wNiAxNzowMzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBmaXggYWxpZ25tZW50IG9mIHJhbmssIGV0Yy4KCjIwMTItMTEtMDYgMTY6NTg6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIGVsZW1lbnRzOiBmaXggbGVhZGluZyBzcGFjZSBpbiBwbHVnaW4gZGVzY3JpcHRpb24gc3RyaW5nCgoyMDEyLTExLTAzIDIwOjQ0OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ09QWUlORzoKCSogZG9jcy9yYW5kb20vTElDRU5TRToKCSogZ3N0L2dldHRleHQuaDoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dsaWItY29tcGF0LmM6CgkqIGdzdC9nbGliLWNvbXBhdC5oOgoJKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZWxlbWVudG1ldGFkYXRhLmg6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtYWNyb3MuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmg6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJKiBnc3QvbWF0aC1jb21wYXQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wcmludC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19ydW4uYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2luaXQuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2NhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5kZXguYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvcXVldWVhcnJheS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtZGlzYWJsZWQuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJKiB0ZXN0cy9jaGVjay90b29scy9nc3RpbnNwZWN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5oOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uaDoKCSogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmg6CgkqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6CgkqIHRlc3RzL21pc2MvbmV0d29yay1jbG9jay11dGlscy5zY206CgkqIHRlc3RzL21pc2MvbmV0d29yay1jbG9jay5zY206CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgRml4IEZTRiBhZGRyZXNzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc1MjAKCjIwMTItMTAtMzEgMTk6MzM6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBhZGQgImZsdXNoLW9uLWVvcyIgcHJvcGVydHkKCSAgSW4gZmx1c2gtb24tZW9zPXRydWUgbW9kZSBhbnkgZGF0YSByZW1haW5pbmcgaW4gdGhlIHF1ZXVlIGlzCgkgIGRpc2NhcmRlZCB3aGVuIGFuIEVPUyBldmVudCBpcyByZWNlaXZlZCwgYW5kIHRoZSBFT1MgcGFzc2VkCgkgIGRvd25zdHJlYW0gYXMgc29vbiBhcyBwb3NzaWJsZSAoaW5zdGVhZCBvZiB3YWl0aW5nIGZvciBhbGwKCSAgYnVmZmVycyBpbiB0aGUgcXVldWUgdG8gZ2V0IHByb2Nlc3NlZCBieSBkb3duc3RyZWFtIGZpcnN0KS4KCSAgTWF5IG9yIG1heSBub3QgYmUgdXNlZnVsIGluIGNhcHR1cmUvZW5jb2Rpbmcgc2NlbmFyaW9zLgoKMjAxMi0xMC0zMSAxODozMjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgY29tbW9uOiB1cGRhdGUgZm9yIHB5dGhvbiBkZXRlY3Rpb24KCSAgRml4ZXMgZG9jcyBidWlsZC4KCjIwMTItMTAtMzEgMTc6Mzc6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBsZXQgQUdfR1NUX1BMVUdJTl9ET0NTIGNoZWNrIGZvciBweXRob24KCSAgQW5kIHVwZGF0ZSBjb21tb24gZm9yIG1vdmUgZnJvbSBBU19QQVRIX1BZVEhPTiB0byBBTV9QQVRIX1BZVEhPTiwKCSAgd2hpY2ggYXMgYSBzaWRlLWVmZmVjdCBzaG91bGQgcGljayB1cCBuZXdlciBweXRob24gdmVyc2lvbnMgYXMgd2VsbC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU2MzkwMwoKMjAxMi0xMC0zMCAxMDowNDo0NCArMTEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogQ2xhcmlmeSBkb2NzIGFib3V0IHRoZSBidWZmZXIgaGFuZGxlciBjYWxsYmFjay4KCSAgQ2xhcmlmeSB0aGF0IHRoZSBjYWxsYmFjayBvd25zIGEgcmVmIG9uIGEgcGFzc2VkIGJ1ZmZlci4KCjIwMTItMTAtMzAgMTA6MDQ6MTQgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBBZGQgRU9TIHN0YXR1cyB0byBkZWJ1ZyBvdXRwdXQgYWJvdXQgZmlsbGVkL3VuZmlsbGVkCgoyMDEyLTEwLTIyIDAwOjMxOjA5ICsxMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNoZWNrOiBBZGQgYSBzaW1wbGUgdGVzdCBmb3IgdGhlIENvbGxlY3RQYWRzIGJ1ZmZlciBjb2xsZWN0IGNhbGxiYWNrCgoyMDEyLTEwLTI5IDEzOjI2OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGctaTogZml4ICJjYW4ndCByZXNvbHZlIGxpYnJhcmllcyB0byBzaGFyZWQgbGlicmFyaWVzOiBnc3RjaGVjay0xLjAiIGJ1aWxkIGVycm9yCgkgIFJldmVydCAtLWxpYnJhcnk9bGliZm9vLTEuMC5sYSAtPiAtLWxpYnJhcnk9Zm9vLTEuMCBjaGFuZ2UgbWFkZQoJICBpbiBwcmV2aW91cyBjb21taXQuIFR1cm5zIG91dCB0aGF0IHdhcyB3cm9uZywgZGVzcGl0ZSB3aGF0IHRoZQoJICBtYW4gcGFnZSBzYXlzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAzNzEwCgoyMDEyLTEwLTI5IDExOjMwOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHBhZDogZG93bmdyYWRlICdjcmVhdGluZyByYW5kb20gc3RyZWFtLWlkJyBkZWJ1ZyBsb2cgbWVzc2FnZQoJICBObyBuZWVkIGZvciBpdCB0byBiZSBhIHdhcm5pbmcuCgoyMDEyLTA2LTEzIDEzOjAyOjQ4ICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBleGNlc3NpdmVseSBoaWdoIG1lbW9yeSB1c2FnZSB3aXRoIGxvbmcgc3RyZWFtcwoJICBMYXJnZSBzdHJlYW1zIHdvdWxkIGluZGV4IG9uZSBmcmFtZSBldmVyeSBzZWNvbmQsIHdoaWNoIGNhbiBnZXQgcXVpdGUKCSAgbGFyZ2Ugd2l0aCBtdWx0aS1ob3VyIHN0cmVhbXMsIHNvIGFkZCBhbiBhZGRpdGlvbmFsIGJ5dGUtYmFzZWQKCSAgbWluaW11bSBkaXN0YW5jZSBhcyB3ZWxsLCB3aGljaCB3aWxsIGtpY2sgaW4gZm9yIGxvbmcgc3RyZWFtcwoJICBhbmQgbWFrZSBzdXJlIHdlIG5ldmVyIGhhdmUgbW9yZSB0aGFuIGEgY291cGxlIG9mIHRob3VzYW5kIGluZGV4CgkgIGVudHJpZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYwNTMKCjIwMTItMTAtMjggMTc6MTc6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBnLWk6IGF2b2lkIG11bHRpcGxlIGxpYnJhcmllcyBpbiB0aGUgc2hhcmVkLWxpYnJhcnkgdGFnCgkgIFVzaW5nIG11bHRpcGxlIGxpYnJhcmllcyBjYXVzZXMgcHJvYmxlbXMgZm9yIHRoZSBDIyBiaW5kaW5ncyBhbmQKCSAgd2lsbCBmb3Igc2ltaWxpYXIgbGFuZ3VhZ2VzIHN1Y2ggYXMgSmF2YSB3aGVuIHRoZXJlIGFyZSBiaW5kaW5ncwoJICBmb3IgdGhlbS4KCSAgQWxzbyBjaGFuZ2UgLS1saWJyYXJ5PWxpYmdzdGZvby1YLmxhIHRvIC0tbGlicmFyeT1nc3Rmb28tWCBhcwoJICB0aGUgbWFuIHBhZ2Ugc3VnZ2VzdHMgaXQgc2hvdWxkIGJlIGRvbmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkzMTUKCjIwMTItMTAtMjggMTU6NTM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luZmVhdHVyZTogYWRkIGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfcGx1Z2luX25hbWUoKQoJICBBUEk6IGdzdF9wbHVnaW5fZmVhdHVyZV9nZXRfcGx1Z2luX25hbWUoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxODMyCgoyMDEyLTEwLTI3IDE0OjQwOjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYWxsb3cgc2V0dGluZyBvZiBHU1RfREVCVUcgbGV2ZWxzIGJ5IG5hbWUKCSAgZS5nLiBHU1RfREVCVUc9KjpJTkZPLCpzcmM6TE9HCgoyMDEyLTA2LTI5IDEyOjM4OjUyIC0wNDAwICBUaGliYXVsdCBTYXVuaWVyIDx0aGliYXVsdC5zYXVuaWVyQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogbWFrZSB1cyBvZiB0aGUgbmV3IGdzdF9kZWJ1Z19zZXRfdGhyZXNob2xkX2Zyb21fc3RyaW5nIGZ1bmN0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxNTIKCjIwMTItMDYtMjkgMTI6MDU6MzYgLTA0MDAgIFRoaWJhdWx0IFNhdW5pZXIgPHRoaWJhdWx0LnNhdW5pZXJAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbmZvOiBhZGQgYSBmdW5jdGlvbiB0byBzZXQgZGVidWcgdGhyZXNob2xkIGZyb20gYSBHU1RfREVCVUctc3R5bGUgc3RyaW5nCgkgIFVzZSB0aGUgc2FtZSBmb3JtYXQgYXMgd2l0aCB0aGUgR1NUX0RFQlVHIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBBUEk6IGdzdF9kZWJ1Z19zZXRfdGhyZXNob2xkX2Zyb21fc3RyaW5nKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3OTE1MgoKMjAxMi0xMC0yNSAxNToyNzoyMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSAgcXVldWVhcnJheTogRml4IHVuaXQgdGVzdAoKMjAxMi0xMC0yMiAxMDoxMzoyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkYXRhcXVldWUvcXVldWVhcnJheTogTWFrZSBwdWJsaWMgQVBJIGFnYWluCgkgIFRoZXNlIGFyZSBhY3R1YWxseSB1c2VkIG91dHNpZGUgb2YgY29yZWVsZW1lbnRzIG5vd2FkYXlzLgoJICBBbHNvIGhpZGUgbG90cyBvZiBpbnRlcm5hbHMgYW5kIGFkZCBwYWRkaW5nIGFuZCBkb2N1bWVudGF0aW9uLgoKMjAxMi0xMC0yNSAxMjoxMDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBmZWF0dXJlIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAxLjAuMiA9PT0KCjIwMTItMTAtMjUgMDA6MDQ6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMS4wLjIKCjIwMTItMTAtMjQgMTY6MTM6MzQgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogbGluayB0ZXN0cnRwb29sIHRvIHB0aHJlYWRzCgkgIEZpeGVzICM2ODY3ODcKCjIwMTItMTAtMjQgMTE6NDY6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBBbGxvdyBHU1RfQ0xPQ0tfVElNRV9OT05FIGFzIGR1cmF0aW9uIGZvciBHQVAgZXZlbnRzCgoyMDEyLTEwLTI0IDExOjE2OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVzZSBuZXcgR0NvbmQgZm9yIGFzeW5jIHN0YXRlIGNoYW5nZQoJICBVc2UgYSBuZXcgR0NvbmQsIHByb3RlY3RlZCB3aXRoIHRoZSBvYmplY3QgbG9jaywgdG8gc2lnbmFsIGNvbXBsZXRpb24KCSAgb2YgdGhlIGFzeW5jIHN0YXRlIGNoYW5nZS4gV2UgY2FuJ3QgcmV1c2UgdGhlIGxpdmUgbG9jayBiZWNhdXNlIHRoYXQKCSAgb25lIGNhbiBiZSBsb2NrZWQgd2hlbiB0aGUgY3JlYXRlIGZ1bmN0aW9uIGJsb2Nrcy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjcyMwoKMjAxMi0xMC0yMiAyMDoyNTo0MyArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogZml4IG1lbW9yeSBsZWFrIGluIF9mYWxsYmFja19tZW1fY29weQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NjU4CgoyMDEyLTEwLTIyIDIwOjMzOjA2ICswMjAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiByZW1vdmUgdmFyaWFibGUgbm90IHJlYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjY1OQoKMjAxMi0xMC0yMiAxNTowNDoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBtNC9heF9wdGhyZWFkLm00OgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBjb25maWd1cmU6IFByb3Blcmx5IGNoZWNrIGZvciBwdGhyZWFkCgkgIFRoZSBvbGQgY2hlY2sgZmFpbGVkIG9uIEFuZHJvaWQgZm9yIGV4YW1wbGUuCgoyMDEyLTEwLTIyIDEwOjI1OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IERvbid0IHVzZSBHU1RfREVCVUcoKSBpbiBnc3RfZGVidWdfYWRkX2xvZ19mdW5jdGlvbigpIGFuZCByZWxhdGVkIGZ1bmN0aW9ucyB1bmNvbmRpdGlvbmFsbHkKCSAgSWYgR1N0cmVhbWVyIHdhcyBub3QgaW5pdGlhbGl6ZWQgeWV0IHRoaXMgd2lsbCBjYXVzZSBnX3dhcm5pbmdzKCkuCgoyMDEyLTEwLTIwIDE5OjQ0OjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBjb2xsZWN0cGFkczogZml4IGctaSBhbm5vdGF0aW9uIGZvciBHc3RDb2xsZWN0UGFkc0J1ZmZlckZ1bmN0aW9uCgkgIFdlIHBhc3Mgb3duZXJzaGlwIG9mIHRoZSBidWZmZXIgdG8gdGhlIGZ1bmN0aW9uLgoKMjAxMi0xMC0yMCAxMjo1NDowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJICBnX3R5cGVfaW5pdCgpIGlzIG5vIGxvbmdlciByZXF1aXJlZCBhbmQgZGVwcmVjYXRlZCBpbiBnbGliID49IDIuMzUuMAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2NDU2CgoyMDEyLTEwLTE5IDEzOjM2OjMzIC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAcmRpby5jb20+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIEdzdFNhbXBsZTogZml4IHR5cG8gaW4gRy1JIGFubm90YXRpb25zLCBhbGxvd3MgY3JlYXRpbmcgR3N0U2FtcGxlcyBmcm9tIGJpbmRpbmdzLgoKMjAxMi0xMC0xOCAxNTozMToxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBGaXggY29tcGlsZXIgd2FybmluZyBhYm91dCBjb25zdG5lc3MKCSAgcGFzc2luZyBhcmd1bWVudCAxIG9mICdnX211dGV4X2xvY2snIGRpc2NhcmRzICdjb25zdCcgcXVhbGlmaWVyIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoJICBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2dfbXV0ZXhfdW5sb2NrJyBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCjIwMTItMTAtMTcgMTY6NDk6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYmluLCBwaXBlbGluZTogdXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9zdGF0aWNfbWV0YWRhdGEoKQoJICBTbyB0aGUgc3RyaW5ncyBhcmVuJ3QgY29waWVkLgoKMjAxMi0xMC0xNiAxMjozMTo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBBUEk6IEFkZCBHc3RFbGVtZW50Ojpwb3N0X21lc3NhZ2UoKSB2ZnVuYwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RlbGVtZW50LmgKCjIwMTItMTAtMTYgMTE6NTQ6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJICBwd2c6IGxpbmsgdG8gY2FwcyBhbmQgcW9zIGNoYXB0ZXJzCgoyMDEyLTEwLTE2IDExOjIwOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcXVlcnlmbi54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogYWRkIHNlY3Rpb24gYWJvdXQgcXVlcnkgZnVuY3Rpb24KCjIwMTItMTAtMTYgMTE6MTI6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ldmVudGZuLnhtbDoKCSAgcHdnOiBmaXggZXZlbnQgZnVuY3Rpb24KCjIwMTItMTAtMTUgMTk6NTY6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBtaW5vciBkb2NzIGZpeGVzCgoyMDEyLTEwLTE1IDE5OjU1OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGZpeCBidWZmZXIgbGVhayBpbiBjbGlwX3RpbWUKCjIwMTItMTAtMTUgMTg6NDQ6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogY2FsbCBjbGlwIGZ1bmN0aW9uIHdpdGggdXNlciBkYXRhCgoyMDEyLTEwLTE1IDE0OjA2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvcHdnLnhtbDoKCSAgcHdnOiByZW9yZGVyIHNvbWUgY2hhcHRlcnMKCSAgUmVvcmRlciBzb21lIGNoYXB0ZXIgc28gdGhhdCB0aGV5IG1hdGNoIHRoZSBzdGVwcyBkb25lIGluIHRoZQoJICBlbGVtZW50LgoKMjAxMi0xMC0xNSAxMzo1OTo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBzbWFsbCB0d2Vha3MgdG8gbmVnb3RpYXRpb24KCjIwMTItMTAtMTUgMTM6NDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogaW1wcm92ZSBuZWdvdGlhdGlvbiBkb2N1bWVudGF0aW9uIHNvbWUgbW9yZQoKMjAxMi0xMC0xNSAxMjoxMDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgIHB3ZzogdXBkYXRlIG5lZ290aWF0aW9uIHBhcnQKCjIwMTItMTAtMTUgMTI6MTA6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBzeW5jaHJvbml6YXRpb24gZG9jcwoKMjAxMi0xMC0xMiAxNjo1ODowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiB3b3JrIG9uIHJld3JpdGluZyBjYXBzIG5lZ290aWF0aW9uIGRvY3MKCjIwMTItMTAtMTIgMTY6MDk6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgZGVzaWduOiByZW5hbWUgcGFzc3Rocm91Z2ggbmVnb3RpYXRpb24KCSAgUmVuYW1lIHBhc3N0aHJvdWdoIG5lZ290aWF0aW9uIHRvIHRyYW5zZm9ybSBuZWdvdGlhdGlvbiB0byBhdm9pZAoJICBjb25mdXNpb24gd2l0aCBwYXNzdGhyb3VnaCBvcGVyYXRpb24uCgoyMDEyLTEwLTEyIDEzOjE1OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICBtYW51YWw6IG5vIG1vcmUgbmV3LWRlY29kZWQtcGFkCgoyMDEyLTEwLTEyIDEzOjEzOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNvbXBpbGluZy54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIG1hbnVhbDogbW92ZSBlbWJlZGRpbmcgZWxlbWVudHMgdG8gc2VwYXJhdGUgY2hhcHRlcgoKMjAxMi0xMC0xMiAxMzowMToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXFvcy54bWw6CgkgIHB3Zzogc21hbGwgZXhhbXBsZSBmb3IgdGhyb3R0bGUKCjIwMTItMTAtMTIgMTI6NTU6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1xb3MueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IGFkZCBpbmZvIGFib3V0IFFvUwoKMjAxMi0xMC0xMiAxMjo1NToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkgIHB3ZzogYWRkcyBzb21lIG1vcmUgbGlua3MKCjIwMTItMTAtMTIgMTI6NTU6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIHFvczogbWVzc2FnZXMgYXJlIHBvc3RlZCwgbm90IGRyb3BwZWQKCjIwMTItMTAtMTIgMTA6MzU6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLXBpcGVsaW5lcy5zdmc6CgkqIGRvY3MvbWFudWFsL2dzdHJlYW1lci1vdmVydmlldy5wbmc6CgkqIGRvY3MvbWFudWFsL21pbWUtd29ybGQucG5nOgoJKiBkb2NzL21hbnVhbC90aHJlYWQtYnVmZmVyaW5nLnBuZzoKCSAgbWFudWFsOiB1cGRhdGUgZ3JhcGhpY3MKCjIwMTItMTAtMTEgMTc6MTA6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1idWZmZXJpbmcueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IGFkZCBleGFtcGxlIG9mIG5vLXJlYnVmZmVyIGJ1ZmZlcmluZyBzdHJhdGVneQoKMjAxMi0xMC0xMSAxNzoxMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICBtYW51YWw6IHNtYWxsIHR3ZWFrcwoKMjAxMi0xMC0xMSAxNzowOToyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYnVmZmVyaW5nIHRpbWUgbGVmdCBpcyBpbiBtaWxsaXNlY29uZHMKCjIwMTItMTAtMTEgMTc6MDc6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkgIG1hbnVhbDogYWRkIHNvbWUgdGV4dCBhYm91dCBiaW4gc3RhdGUgY2hhbmdlIG9yZGVyCgoyMDEyLTEwLTEwIDE2OjQzOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXBsYXliYWNrLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHRhbGsgYWJvdXQgcGxheXNpbmsKCSAgVGFsayBhYm91dCBwbGF5c2luayBhbmQgZ2l2ZSBhbiBleGFtcGxlIG9mIGl0cyB1c2FnZS4KCjIwMTItMTAtMTAgMTM6MDg6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1wbGF5YmFjay54bWw6CgkqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgc29tZXRoaW5nIGFib3V0IHVyaWRlY29kZWJpbgoKMjAxMi0xMC0xMCAxMTozNTowMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBlbnN1cmUgYWxsIHRpbWVzdGFtcHMgYXJlIGluIHNhbWUgdGltZSBkb21haW4KCSAgLi4uIGJ5IG5vdCBvbmx5IHByb2Nlc3NpbmcgaW5jb21pbmcgYnVmZmVycyB0aHJvdWdoIGEgY2xpcCBmdW5jdGlvbiwKCSAgYnV0IGFsc28gb3RoZXIgdGltZXN0YW1wcyBzdWNoIGFzIHRob3NlIGNvbWluZyBmcm9tIEdBUCBldmVudC4KCjIwMTItMTAtMTAgMTA6MzY6MzIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGRvY3M6IGFkanVzdCBzb21lIHBhcmFtZXRlciBtaXNtYXRjaGVzCgoyMDEyLTEwLTEwIDExOjM0OjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb3duZ3JhZGUgR1NUX1dBUk5JTkcgdG8gR1NUX0lORk8KCSAgSXQncyB1c3VhbGx5IG5vdCBhIHByb2JsZW0gaWYgYSBxdWVyeSBmYWlscyBpZiB0aGVyZSdzIG5vIHBlZXIsCgkgIGVzcGVjaWFsbHkgYXMgaXQgd2lsbCBoYXBwZW4gZHVyaW5nIHBhZCBsaW5raW5nIChjYXBzIHF1ZXJ5KQoJICBxdWl0ZSBvZnRlbiBhbmQgc3BhbXMgdGhlIGxvZ3MuCgoyMDEyLTEwLTA5IDE3OjA2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiByZW1vdmUgb3V0ZGF0ZWQgYXV0b3BsdWdnaW5nIHNlY3Rpb24KCSAgUmVtb3ZlIGF1dG9wbHVnZ2luZyBjaGFwdGVyIGFuZCBwb2ludCB0byBkZWNvZGViaW4vcGxheWJpbiBleGFtcGxlcy4KCjIwMTItMTAtMDkgMTY6MTI6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBUYWxrIGFib3V0IHRocmVhZGluZwoJICBSZXdvcmsgdGhlIHRocmVhZGluZyBjaGFwdGVyLgoJICBUYWxrIGFib3V0IHN0cmVhbS1zdGF0dXMgYW5kIGdpdmUgc29tZSBleGFtcGxlcyBvbiBob3cgdG8gY2hhbmdlCgkgIHRoZSB0aHJlYWQgcHJpb3JpdGllcy4KCjIwMTItMTAtMDkgMTU6NTc6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbS1zdGF0dXMudHh0OgoJICBkZXNpZ246IGltcHJvdmUgc3RyZWFtLXN0YXR1cyBkb2N1bWVudAoKMjAxMi0xMC0wOSAxNTozMToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZXRyaWV2ZSB0aGUgcmVzdWx0IGZyb20gc3RhcnRfY29tcGxldGUKCSAgZ3N0X2Jhc2Vfc3JjX3N0YXJ0X2NvbXBsZXRlKCkgY2FuIGZhaWwgd2hlbiB0aGUgdGhyZWFkIGNvdWxkIG5vdCBiZQoJICBzdGFydGVkLCBmb3IgZXhhbXBsZS4gTWFrZSBzdXJlIGl0IGNhdXNlcyB0aGUgc3RhdGUgY2hhbmdlIHRvIGZhaWwgYnkKCSAgcmV0cmlldmluZyB0aGUgcmVzdWx0IGZyb20gX3N0YXJ0X2NvbXBsZXRlKCkuCgoyMDEyLTEwLTA5IDE1OjMxOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcHJvdmUgZGVidWcKCjIwMTItMTAtMDkgMTA6MjQ6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogc21hbGwgZG9jcyBmaXhlcyBhbmQgcmVtb3ZlIGEgMC4xMSBmaXhtZQoKMjAxMi0xMC0wOCAxNjo0MjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYnVmZmVyaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgbWFudWFsOiB0YWxrIGEgYml0IGFib3V0IGJ1ZmZlcmluZwoKMjAxMi0xMC0wOCAxMzoyMjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSAgZG9jczogaW1wcm92ZSBjbG9jayBjaGFwdGVyCgoyMDEyLTEwLTA4IDEwOjM5OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgZXhhbXBsZSBmb3IgZWZmZWN0IHN3aXRjaGluZwoKMjAxMi0xMC0wOCAwOToxMTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkgIGRvY3M6IHNtYWxsIHVwZGF0ZXMKCjIwMTItMTAtMDcgMTY6NDg6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgKGJ1Zy1maXhpbmcpCgo9PT0gcmVsZWFzZSAxLjAuMSA9PT0KCjIwMTItMTAtMDcgMTM6MTA6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAxLjAuMQoKMjAxMi0xMC0wNyAwMDoxNTo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIHRlc3RzOiB1cGRhdGUgc3RydWN0X2kzODYuaCBmb3IgQUJJIGNoZWNrcwoJICBGaXhlcyBtYWtlIGNoZWNrIG9uIDMyLWJpdCB4ODYuCgoyMDEyLTEwLTA2IDE3OjI2OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9wcGMzMi5oOgoJICB0ZXN0czogdXBkYXRlIHN0cnVjdF9wcGMzMi5oIGZvciBBQkkgY2hlY2tzCgkgIEZpeGVzIG1ha2UgY2hlY2sgb24gMzItYml0IFBvd2VyUEMuCgoyMDEyLTEwLTA2IDE0OjU1OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2YzBiNTJjIHRvIDZiYjY5NTEKCjIwMTItMTAtMDYgMTI6MDg6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSAgZXhhbXBsZXM6IC5naXRpZ25vcmUgbW9yZSBiaW5hcmllcyBmcm9tIHRoZSBtYW51YWwKCjIwMTItMTAtMDUgMTY6MDQ6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSAgZG9jczogcmVtb3ZlIG9ic29sZXRlIHBhcnQtYmxvY2sgZG9jdW1lbnQKCSAgTWVyZ2UgdGhlIHBhcnQtYmxvY2sgZG9jdW1lbnQgaW50byBwYXJ0LXByb2JlcwoKMjAxMi0xMC0wNSAwOTo0Mjo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZXNlbmQgZHJvcHBlZCBldmVudHMKCSAgSWYgd2UgdHJ5IHRvIHB1c2ggc3RpY2t5IGV2ZW50cyBidXQgYSBwcm9iZSBkcm9wcGVkIHRoZW0sIHdlIGRvbid0IG1hcmsKCSAgdGhlIGV2ZW50IGFzIHJlY2VpdmVkIGFuZCBtYXJrIHRoZSBwYWQgYXMgUEVORElOR19FVkVOVFMuIFRoaXMgZW5zdXJlcwoJICB0aGF0IHdlIHJlc2VuZCB0aGUgZXZlbnQgdGhlIG5leHQgdGltZS4gRm9yIHRoaXMgd2UgbmVlZCB0byBsZXQgdGhlCgkgIGN1c3RvbSBmbG93IHJldHVybiBmcm9tIHRoZSBwcm9iZSB0cmlja2xlIHVwIHRvCgkgIGdzdF9wYWRfcHVzaF9ldmVudF91bmNoZWNrZWQoKSBzbyB0aGF0IHdlIGNhbiBkaWZmZXJlbnRpYXRlIGJldHdlZW4KCSAgT0sgYW5kIERST1BQRUQgcHJvYmUgcmV0dXJucy4KCjIwMTItMTAtMDUgMDc6MTQ6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3Qgc3RvcmUgc3RpY2t5IGV2ZW50cyBvbiBmbHVzaGluZy9FT1MgcGFkcwoJICBEb24ndCBzdG9yZSBzdGlja3kgZXZlbnRzIG9uIGZsdXNoaW5nIG9yIEVPUyBwYWRzLiBUaGlzIHdhcyBkb25lCgkgIGNvcnJlY3RseSBmb3Igc291cmNlIHBhZHMgYnV0IG5vdCBmb3Igc2luayBwYWRzLgoKMjAxMi0xMC0wNCAxMToyNDowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkb2NzOiBhZGQgU2luY2UgbWFya2VycyBmb3IgbmV3IEFQSSBhbmQgYWRkIGl0IHRvIGRvY3MgYW5kIC5kZWYgZmlsZQoKMjAxMi0xMC0wNCAxMTo1MDo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogYWRkIGR5bmFtaWMgY2Fwc2ZpbHRlciBleGFtcGxlCgoyMDEyLTEwLTA0IDExOjE4OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGRvbid0IHByZWZlciBwYXNzdGhyb3VnaAoJICBCYXNldHJhbnNmb3JtIHNob3VsZCBub3QgdHJ5IHRvIG5lZ290aWF0ZSBpbiBwYXNzdGhyb3VnaCBtb2RlIGJ1dAoJICByZXNwZWN0IHRoZSBvcmRlciBvZiB3aGF0IHdlIHJldHVybiBpbiB0aGUgdHJhbnNmb3JtX2NhcHMgbWV0aG9kLgoJICBBIHR5cGljYWwgY2FzZSBpcyB0aGF0IHlvdSBzcGVjaWZ5IHNvbWUgc3BlY2lmaWMgbmV3IGNhcHMgaW4gdGhlCgkgIGNhcHMgcHJvcGVydHkgYnV0IGFsc28gYWxsb3cgdGhlIGN1cnJlbnQgY2FwcyB0byBwYXNzLgoKMjAxMi0xMC0wNCAxMToxNTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zOiBhZGQgYW4gb3B0aW9uIHRvIHByZWZlciBwYXNzdGhyb3VnaAoJICBCYXNldHJhbnNmb3JtIGF0dGVtcHRzIHRvIGRvIHBhc3N0aHJvdWdoIG1vZGUgcmVnYXJkbGVzcyBvZiB0aGUgb3JkZXIgb2YKCSAgdGhlIHRyYW5zZm9ybV9jYXBzIG1ldGhvZC4gQWRkIGEgbWV0aG9kIHRvIGRpc2FibGUgdGhpcy4KCSAgVGhpcyBpcyBuZWVkZWQgZm9yIGVsZW1lbnRzIGxpa2UgY2Fwc2ZpbHRlciB0aGF0IHdhbnQgdG8gdHJhbnNmb3JtIGNhcHMKCSAgYmFzZWQgb24gdGhlIG9yZGVyIG9mIHRoZSBjYXBzIHByb3BlcnR5LgoKMjAxMi0xMC0wNCAxMDowMToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGltcHJvdmUgc29tZSBjb21tZW50cwoKMjAxMi0xMC0wMyAxNzoxNzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IHRhbGsgc29tZSBtb3JlIGFib3V0IGR5bmFtaWMgcGlwZWxpbmVzCgoyMDEyLTEwLTAzIDEzOjQ5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogZG9uJ3QgcHV0IGVzc2VudGlhbCBsb2dpYyBpbiBnX3JldHVybl92YWxfKgoKMjAxMi0xMC0wMyAxMzo0NToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogZG8gbWV0YWRhdGEgcmVnaXN0cmF0aW9uIHRocmVhZHNhZmUKCSAgV2UgbmVlZCB0byB1c2UgZ19vbmNlIHRvIHJlZ2lzdGVyIHRoZSBtZXRhZGF0YSBpbXBsZW1lbnRhdGlvbnMKCSAgb25seSBvbmNlLgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NTMzMgoKMjAxMi0xMC0wMyAxMzozNToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGhhbmRsZSBtdWx0aXBsZSBpbXBsZW1lbnRhdGlvbiByZWdpc3RyYXRpb24KCSAgRmlyc3QgY2hlY2sgdGhhdCB3ZSBjYW4gYWN0dWFsbHkgcmVnaXN0ZXIgdGhlIGltcGxlbWVudGF0aW9uIGJlZm9yZQoJICBtYWtpbmcgYSBHc3RNZXRhSW5mby4gSWYgd2UgY2FuJ3QgcmVnaXN0ZXIgd2Ugd291bGQgb3RoZXJ3aXNlIGVuZAoJICB1cCB3aXRoIGFuIHVuZGVmaW5lZCB0eXBlIGFuZCBhbiBpbnZhbGlkIEdzdE1ldGFJbmZvLgoJICBJdCdzIHBvc3NpYmxlIHRoYXQgdHlwZSByZWdpc3RyYXRpb24gZmFpbHMgYmVjYXVzZSBhbm90aGVyIG1ldGFkYXRhCgkgIHdpdGggdGhlIHNhbWUgaW1wbGVtZW50YXRpb24gbmFtZSB3YXMgYWxyZWFkeSByZWdpc3RlcmVkLgoKMjAxMi0xMC0wMyAxMzoxMjo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IHVzZSBDREFUQSBmb3IgY29kZSBibG9ja3MKCSAgdGhlbiB3ZSBkb24ndCBoYXZlIHRvIGVzY2FwZSBzcGVjaWFsIHRva2VuIGFueW1vcmUuCgoyMDEyLTEwLTAzIDEzOjA5OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbWFudWFsOiBhZGQgcGFydGlhbCBwcmVyb2xsIGV4YW1wbGUgd2l0aCBwcm9iZXMKCjIwMTItMTAtMDMgMTA6NTM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBhZGQgbW9yZSBzdHVmZiBhYm91dCBwcm9iZXMKCjIwMTItMTAtMDIgMTc6MjM6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgbWFudWFsOiBzdGFydCB0YWxraW5nIGFib3V0IGR5bmFtaWMgcGlwZWxpbmUgY2hhbmdlcwoKMjAxMi0xMC0wMiAxNjo0NzowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBtYW51YWw6IG1vdmUgc2VjdGlvbiBhcm91bmQKCjIwMTItMTAtMDIgMTY6NDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBwd2c6IGFkZCBhcHBzaW5rIGRvY3MKCjIwMTItMTAtMDIgMTY6MTU6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBwd2c6IHJld2l0ZSBkYXRhLWFjY2VzcyBjaGFwdGVyCgkgIFJld3JpdGUgdGhlIGRhdGEtYWNjZXNzIGNoYXB0ZXIgc28gdGhhdCB3ZSB0YWxrIGFib3V0IGFwcHNyYyBpbnN0ZWFkCgkgIG9mIHRoZSBmYWtlc3JjIGhhY2tzLgoKMjAxMi0xMC0wMiAxMzoyMjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLW1ldGFkYXRhLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIHBvL1JFQURNRToKCSogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIGRvY3M6IHNvbWUgMC4xMCAtPiAxLjAgY2hhbmdlcwoKMjAxMi0xMC0wMiAxMzoxMjozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJICBwd2c6IGFkZCBhbGxvY2F0aW9uIHF1ZXJ5IGV4YW1wbGUKCjIwMTItMTAtMDIgMTI6NDk6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBhZGQgYnVmZmVycG9vbCBkb2NzCgoyMDEyLTEwLTAyIDExOjM0OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBmbGVzaCBvdXQgYWxsb2NhdGlvbiBkb2NzCgkgIEFkZCBtb3JlIGV4YW1wbGVzLgoJICBBZGQgZXhhbXBsZSBmb3IgaW1wbGVtZW50aW5nIG5ldyBtZXRhZGF0YS4KCSAgQWRkIHByb2dyYW1zIHRvIHRoZSBkb2NzIChhZ2Fpbj8pLCBpdCBzZWVtcyB0byBjb250YWluIHVzZWZ1bCBpbmZvLgoKMjAxMi0xMC0wMSAxNjo1OTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL3RpdGxlcGFnZS54bWw6CgkgIHB3ZzogYWRkIG5ldyBhdXRob3IKCjIwMTItMTAtMDEgMTY6NTU6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1hbGxvY2F0aW9uLnhtbDoKCSAgcHdnOiBhZGQgYWxsb2NhdGlvbiBkb2NzCgoyMDEyLTEwLTAxIDE2OjQ2OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJICBkb2NzOiB1cGRhdGUgZGVzaWduIGRvY3MKCjIwMTItMTAtMDEgMTM6Mjg6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWFsbG9jYXRpb24ueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkb2NzOiBtb3JlIGRvY3MgZml4ZXMKCSAgRml4IGFsbG9jYXRvciBkZXNpZ24gZG9jCgkgIEFkZCBiZWdpbm5pbmcgb2YgYWxsb2NhdGlvbiBjaGFwdGVyIGluIHRoZSBwd2cKCjIwMTItMTAtMDEgMTE6NDc6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItbWFuYWdlci54bWw6CgkqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkgIHB3ZzogZmluYWwgY2xlYW51cHMgZm9yIDEuMAoKMjAxMi0xMC0wMSAxMToyNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGRvY3MvcHdnL290aGVyLWJhc2UueG1sOgoJICBwd2c6IGZpeCBldmVudHMgYW5kIGJhc2UgY2xhc3NlcwoKMjAxMi0xMC0wMSAxMDo0MDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICBwd2c6IGZpeHVwIHRhZyBkb2NzCgoyMDEyLTEwLTAxIDA5OjQ4OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIHB3ZzogcGF0Y2ggdXAgdGhlIHNlY3Rpb24gYWJvdXQgaW50ZXJmYWNlcwoKMjAxMi0wOS0zMCAwNDowNTozNiArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEZpeCBzZWFtbGVzcyBzZWdtZW50IGZ1bmN0aW9uCgkgIFRoZSAzcmQgcGFyYW1ldGVyIG9mIGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCBpbgoJICAwLjEwIGlzIHRoZSB0aW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RhcnQgb2YgdGhlIG5ldyBzZWdtZW50LAoJICBub3QgdGhlIHBvc2l0aW9uIGluIHRoZSBuZXcgc2VnbWVudC4gRml4IHRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIsCgkgIHRoZSBkb2NzLCBhbmQgdGhlIGltcGxlbWVudGF0aW9uIHRvIG1hdGNoIHRoZSBuZWVkcyBvZiB0aGUgb25seQoJICBleHRhbnQgY29uc3VtZXI6IERWRCBwbGF5YmFjay4KCjIwMTItMDktMjkgMTQ6MzU6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHZhbHVlOiBhdm9pZCBkdXBsaWNhdGVzIHdoZW4gaW50ZXJzZWN0aW5nIGxpc3RzCgkgIEZpeGVzIG5lZ290aWF0aW9uIHRha2luZyBhIHJpZGljdWxvdXMgYW1vdW50IG9mCgkgIHRpbWUgKG11bHRpcGxlIDEwcyBvZiBzZWNvbmRzIG9uIGEgY29yZTIpIHdoZW4KCSAgdGhlcmUgYXJlIGR1cGxpY2F0ZSBlbnRyaWVzIGluIGxpc3RzLgoJICBDb3VsZCBoYXZlIGEgbmVnYXRpdmUgcGVyZm9ybWFuY2UgaW1wYWN0IG9uIG90aGVyCgkgIHNjZW5hcmlvcyBiZWNhdXNlIHdlIG5vdyBoYXZlIHRvIGl0ZXJhdGUgdGhlCgkgIGRlc3QgbGlzdCB0byBhdm9pZCBkdXBsaWNhdGVzLCBidXQgd2UgZG9uJ3QKCSAgaGF2ZSBhIGxvdCBvZiBsaXN0cyBhbnkgbW9yZSB0aGVzZSBkYXlzLCBhbmQKCSAgdGhleSB0ZW5kIHRvIGJlIHNtYWxsIGFueXdheS4gVGhlIG5lZ2F0aXZlcwoJICBhcmUgaG9wZWZ1bGx5IGNvdW50ZXJlZCBieSB0aGUgcG9zaXRpdmUgZWZmZWN0cwoJICBvZiByZWR1Y2luZyB0aGUgbGlzdCBsZW5ndGggZWFybHkgb24gaW4gdGhlCgkgIHByb2Nlc3MuIEFuZCBpbiBhbnkgY2FzZSwgaXQncyB0aGUgcmlnaHQgdGhpbmcKCSAgdG8gZG8uCgkgIEJhc2VkIG9uIHBhdGNoIGJ5IEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0OTgxCgoyMDEyLTA5LTI5IDAwOjI3OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiBtaW5vciB1cGRhdGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTEyMQoKMjAxMi0wOS0yOCAyMzo1Mzo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkgIGZhcTogYWRkIG1pc3NpbmcgPC9wYXJhPiB0YWcKCjIwMTItMDktMjggMTU6MTc6MjcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1pbmlvYmplY3Q6IEFsd2F5cyByZWplY3QgV1JJVEUgbG9ja3Mgb24gUkVBRE9OTFkgbWluaW9iamVjdHMKCSAgVmVyaWZ5IHRoYXQgbWFwcGluZyBhIHJlYWQtb25seSBtZW1vcnkgYXMgcmVhZCBkb2VzbnQgbWFrZSBpdCB3cml0YWJsZQoKMjAxMi0wOS0yOCAyMDozODoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6CgkqIGRvY3MvcmFuZG9tL2F1dG90b29sczoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3M6IHB1cmdlIGFsbCBtZW50aW9uIG9mIGxpYm9pbCwgdXBkYXRlIEZBUQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczMjg1CgoyMDEyLTA5LTI4IDE2OjAzOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIHB3ZzogdXBkYXRlIGZvciAxLjAKCSAgUmV3cml0ZSBjbG9jayBwYXJ0LgoJICBzdGFydCBvbiBpbnRlcmZhY2VzCgoyMDEyLTA5LTI4IDEzOjI1OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtcmVxdWVzdC54bWw6CgkgIHB3ZzogcmV3b3JrIGR5bmFtaWMgcGFkcyBkb2NzCgoyMDEyLTA5LTI4IDEzOjI1OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgIHB3ZzogcmV3b3JrIHNjaGVkdWxpbmcgZG9jcwoKMjAxMi0wOS0yOCAxMzoyNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkgIHB3ZzogcmVtb3ZlIHNvbWUgR1NUX0JPSUxFUlBMQVRFCgoyMDEyLTA5LTI4IDExOjE4OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSAgZG9jczogdXBkYXRlIGFjdGl2YXRpb24gZGVzaWduIGRvY3MKCjIwMTItMDktMjggMTA6NDE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBmaXggYWN0aXZhdGUgZG9jcwoKMjAxMi0wOS0yOCAxMDowNDo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSAgcHdnOiBmaXggbW9yZSBuZWdvdGlhdGlvbiBmb3IgMS4wCgoyMDEyLTA5LTI3IDE2OjU5OjA0ICswMjAwICBPbGl2aWVyIEJsaW4gPG9saXZpZXIuYmxpbkBzb2Z0YXRob21lLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGRvIG5vdCByZWdpc3RlciBwcmludGYgZXh0ZW5zaW9uIGZvciAlcAoJICBUaGlzIGhhcHBlbmVkIHdoZW4gZ2xpYiB3YXMgbm90IHVzaW5nIHN5c3RlbSBwcmludGYsIGFuZCBjYXVzZWQgdGhlCgkgIGludGVybmFsIGdzdHJlYW1lciBwcmludGYgZXh0ZW5zaW9ucyB0byBiZSB1c2VkIGZvciBhbGwgJXAgcHJpbnRmcywKCSAgY2F1c2luZyBjcmFzaGVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0OTcwCgoyMDEyLTA5LTI3IDE3OjIxOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOgoJICBwd2c6IGZpeCBzb21lIG5lZ290aWF0aW9uIHRvIDEuMAoKMjAxMi0wOS0yNyAxNDo0MjowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXByb3BzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctc3RhdGUueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgcHdnOiBtb3JlIHVwZGF0ZXMgZm9yIDEuMAoKMjAxMi0wOS0yNyAxMzo1Nzo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ldmVudGZuLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIHB3ZzogbW9yZSB1cGRhdGVzIGZvciAxLjAKCjIwMTItMDktMjcgMTE6NTM6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICBwd2c6IHVwZGF0ZSBib2lsZXIgdG8gMS4wCgoyMDEyLTA5LTI3IDExOjA2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhbHNvIHJlZiB0aGUgaW50ZXJuYWwgcGFkIGZvciBhY3RpdmF0ZSBmdW5jdGlvbnMKCSAgQWxzbyB0YWtlIGEgcmVmIHRvIHRoZSBpbnRlcm5hbCBwYWQgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9ucwoKMjAxMi0wOS0yNCAxODoyNjoxNiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBwcm94eXBhZDogSG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgaW50ZXJuYWwgcGFkIHdoaWxlIHB1c2hpbmcgdGhyb3VnaCBpdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0ODA5CgoyMDEyLTA5LTI1IDE0OjQ0OjU0IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3RzOiBUZXN0IHRoZSBjYXNlIHdoZXJlIGdob3N0IHBhZHMgYXJlIHJlbW92ZWQgd2hpbGUgc3RyZWFtaW5nCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ4MDkKCjIwMTItMDktMjcgMDk6NDQ6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBlbmFibGUgbGlicmFyeSBhYmkgY2hlY2tzCgoyMDEyLTA5LTI2IDIzOjMyOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZG9jczogZml4IHVwIGJhc2VzcmMvYmFzZXNpbmsgZG9jcyBmb3JtYXR0aW5nCgoyMDEyLTA5LTI2IDE3OjA4OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IGFkZCBhYmkgY2hlY2tzCgkgIEVuYWJsZSBhYmkgY2hlY2tzIGFnYWluLgoJICBGaXggYWJpIHNpemVzIGZvciB4ODZfNjQsIGNvcHkgdGhlIGZpbGUgdG8gb3RoZXIgYXJjaHMuCgoyMDEyLTA5LTI2IDE2OjI2OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgdXBkYXRlIGRvY3MgZm9yIDEuMCBBUEkKCjIwMTItMDktMjYgMTQ6MTU6MDEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IHVzZSBwcm9wZXIgJ3RyYW5zZmVyIGZsb2F0aW5nJyBhbm5vdGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQwOTkKCjIwMTItMDktMjYgMTM6MTk6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogc2VuZCBTVFJFQU0tU1RBUlQgZXZlbnQKCSAgU2VuZCBhIFNUUkVBTV9TVEFSVCBldmVudCB3aGVuIHdlIGFyZSBvcGVyYXRpbmcgaW4gcHVsbCBtb2RlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NDI0CgoyMDEyLTA5LTI2IDEwOjU1OjI4ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IG1hcmsgR3N0U2VnbWVudEZsYWdzIGFzIGZsYWdzIHJhdGhlciB0aGFuIGVudW0KCSAgLi4uIHdoaWNoIHJlYWxseSBtYWtlcyBhIGRpZmZlcmVuY2Ugd2hlbiB0cnlpbmcgdG8gc2VyaWFsaXplCgkgIGEgZmxhZ3MgdmFsdWUgd2hpY2ggaXMgYSBjb21iaW5hdGlvbiBvZiBmbGFncywgd2hpY2ggaXMgaGFyZAoJICB0byBkbyBhcyBhbiBlbnVtIHR5cGUuCgoyMDEyLTA5LTI2IDEwOjU0OjA2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHJldGltZXN0YW1wIGJvdGggcHRzIGFuZCBkdHMgd2hlbiBkb2luZyBzbwoKMjAxMi0wOS0yNiAxNTowMTo0MiArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBNb3ZlIHNvbWUgcnVuIG9mIHRoZSBtaWxsIGRlYnVnIHN0YXRlbWVudHMgdG8gTE9HIGxldmVsCgoyMDEyLTA5LTI2IDE0OjIzOjUyICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE91dHB1dCB0aW1lc3RhbXBzIGFmdGVyIGEgc2Vlay4KCSAgUmVpbml0aWFsaXNlIHRoZSBEVFMgYWZ0ZXIgYSBzZWVrIHNvIGFzIHRvIGNvbnRpbnVlCgkgIGdlbmVyYXRpbmcgdGltZXN0YW1wcyB3aGVuIGJhc2VwYXJzZSBpcyBub3QgZG93bnN0cmVhbQoJICBvZiBhIGRlbXV4ZXIuCgkgIEZpeGVzOiAjNjg0NTM4CgoyMDEyLTA5LTI1IDE3OjA2OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLjEuaW46CgkgIGRvY3M6IHVwZGF0ZXMKCSAgTUlNRS10eXBlIC0+IE1lZGlhIHR5cGUKCSAgRml4IHNvbWUgb2xkIGdzdC1pbnNwZWN0IG91dHB1dAoKMjAxMi0wOS0yNSAxNjo1MzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2ludHJvLWJhc2ljcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICBwd2c6IHVwZGF0ZSBmb3IgMS4wIEFQSQoKMjAxMi0wOS0yNSAxNToxMTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBzZWN0aW9uIGZvciBtZXRhZGF0YQoKMjAxMi0wOS0yNSAxMzowOTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEZhaWwgaWYgbm8gdmFsaWQgZWxlbWVudCBmYWN0b3J5IG1ldGFkYXRhIGlzIHNldAoKMjAxMi0wOS0yNSAxMzowOToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogRmFpbCBpZiBubyB2YWxpZCBwbHVnaW4gbWV0YWRhdGEgaXMgc2V0CgoyMDEyLTA5LTI1IDE1OjA2OjQzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGFsc28gdHJhY2sgYW5kIHN0b3JlIHNlZ21lbnQgaW5mbyBpbiBzaW5nbGUgc2VnbWVudCBtb2RlCgoyMDEyLTA5LTI1IDE0OjQwOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogZml4IHVwIHRoZSBtYW51YWwKCSAgTUlNRS10eXBlIC0+IG1lZGlhIHR5cGVzCgkgIEZpeCB1cCB0aGUgbWFudWFsIGluIHZhcmlvdXMgcGxhY2VzIHdpdGggdGhlIDEuMCB3YXkgb2YgZG9pbmcgdGhpbmdzCgkgIHN1Y2ggYXMgcHJvYmVzLCBzdGF0aWMgZWxlbWVudHMsIHNjaGVkdWxpbmcsIC4uLgoJICBBZGQgcG9ydGluZyBmcm9tIDAuMTAgdG8gMS4wIGNoYXB0ZXIuCgkgIEFkZCBwcm9iZSBleGFtcGxlIHRvIGJ1aWxkLgoJICBSZW1vdmUgc29tZSBkb2NzIGZvciByZW1vdmUgY29tcG9uZW50cyBzdWNoIGFzIEdzdE1peGVyIGFuZAoJICBHc3RQcm9wZXJ0eVByb2JlLCBYTUwuLi4KCjIwMTItMDktMjQgMTY6NTA6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOgoJICBkb2NzOiBnc3QtcHl0aG9uIGlzIG5vIG1vcmUKCSAgZ3N0LXB5dGhvbiBpcyBubyBtb3JlIGFuZCBnc3QtbGliYXYgaXMgb25lIG9mIHRoZSBtYWluIG1vZHVsZXMgdGhhdAoJICB3ZSByZWxlYXNlLgoKMjAxMi0wOS0yNCAxNjozMTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZG9jczogZml4IGJhc2VzaW5rIGRvY3MKCjIwMTItMDktMjQgMTY6MjU6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nZXR0aW5nLnhtbDoKCSogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBkb2NzOiB1cGRhdGUgRkFRCgkgIENoYW5nZSB2ZXJzaW9ucy4KCSAgVXNlIHRvb2xzIHdpdGggdmVyc2lvbiBwcmVmaXguCgoyMDEyLTA5LTI1IDEzOjE1OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIHR5cG8gZml4CgoyMDEyLTA5LTI1IDEzOjE0OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGZpeCB0eXBvIGluIHRyYW5zbGF0ZWQgc3RyaW5nCgkgIFNwb3R0ZWQgYnkgQ2hyaXMgTGVvbmFyZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDc1NQoKMjAxMi0wOS0yNSAwOToyNzo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiBSZW1vdmUgMC4xMS45WC0+MS4wLjAgdmVyc2lvbiBtYW5nbGluZwoKMjAxMi0wOS0yNSAwMTowMjowMyArMDEwMCAgSm9zZXAgVG9ycmEgVmFsbGVzIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgYmVuY2htYXJrczogcHJpbnRmIGZvcm1hdCBmaXhlcyB0byBtYWtlIGludGVsIGNvbXBpbGVyIGhhcHB5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01NTI2NTcKCjIwMTItMDktMjUgMDA6NTU6NTkgKzAxMDAgIEpvc2VwIFRvcnJhIFZhbGxlcyA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkgIE1ha2UgaW50ZWwgY29tcGlsZXIgaGFwcGllcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUyNjU3CgoyMDEyLTA5LTI0IDE2OjMxOjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAoYnVnIGZpeGluZykKCj09PSByZWxlYXNlIDEuMC4wID09PQoKMjAxMi0wOS0yNCAxMjoxOToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDEuMC4wCgoyMDEyLTA5LTI0IDAwOjM5OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0xLjAudHh0OgoJICBkb2NzOiB1cGRhdGUgMC4xMSByZWZlcmVuY2VzIGluIHBvcnRpbmcgZ3VpZGUKCjIwMTItMDktMjQgMDA6Mzc6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTEuMC50eHQ6CgkgIGRvY3M6IHJlbmFtZSBwb3J0aW5nLXRvLTAuMTEudHh0IHRvIHBvcnRpbmctdG8tMS4wLnR4dAoKMjAxMi0wOS0yMyAxOTo1Njo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBmaXggRklYTUUgcHJpbnRpbmcgZm9yIHRjYXNlX3NraXBfYnJva2VuX3Rlc3QoKQoKMjAxMi0wOS0yMyAxNzozMDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHVwZGF0ZSByZWxlYXNlIGRvYwoJICBDcmVhdGUgdGFncyBmb3IgcmVsZWFzZXMgd2l0aG91dCB0aGUgdWdseSBSRUxFQVNFLSBwcmVmaXguCgoyMDEyLTA5LTIzIDEyOjQyOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZG9uJ3QgZm9yd2FyZCByYW5kb20gc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIEl0J3Mgbm90IHJpZ2h0LCBhbmQgd2UgZG9uJ3Qga25vdyB3aGF0IGV4dHJhIHByb3BlcnRpZXMKCSAgdGhhdCBldmVudCBtaWdodCBoYXZlIHNldCBpbiBmdXR1cmUgKGUuZy4gc3BhcnNlbmVzcykuCgkgIFRoaXMgY2hhbmdlIG1lYW5zIGNvbGxlY3RwYWQgdXNlcnMgbmVlZCB0byBjcmVhdGUgdGhlaXIKCSAgb3duIHN0cmVhbS1zdGFydCBldmVudCBub3cuIFdlIGNvdWxkIGFkZCBhIHV0aWxpdHkKCSAgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgc3RyZWFtLXN0YXJ0IGV2ZW50IGJhc2VkIG9uCgkgIHRoZSBpbnB1dCBzdHJlYW0tc3RhcnQgZXZlbnRzLgoKMjAxMi0wOS0yMiAxNjowNzoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNGY5NjJmNyB0byA2YzBiNTJjCgoyMDEyLTA5LTIxIDIxOjEzOjI3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBtYW51YWw6IHVwZGF0ZSBjb250cm9sbGVyIGRvY3VtZW50YXRpb24KCjIwMTItMDktMjEgMjE6MTM6MTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IHVwZGF0ZSBjb250cm9sbGVyIGRvY3VtZW50YXRpb24KCjIwMTItMDktMTggMTU6MjI6MDMgKzAyMDAgIEJhc3RpYW4gV2lua2xlciA8YnV6QG5ldGJ1ei5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIG1hbjogRml4IHN5bnRheCBmb3IgdmFsdWUgbGlzdHMgaW4gY2FwcyBzdHJpbmdzCgkgIFZhbHVlIGxpc3RzIHVzZSBjdXJseSBicmFja2V0cyBpbnN0ZWFkIG9mIHBhcmVudGhlc2VzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQyOTMKCjIwMTItMDktMjAgMTQ6NDg6MTcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgcGFkIHByb2JlcyBvbmx5IG9uY2UKCSAgQWxzbyBhZGQgdGVzdCB0byBtYWtlIHN1cmUgdGhhdCBpZiBhIHBhZCBwcm9iZSBpcyByZW1vdmVkIHdoaWxlIGl0J3MKCSAgY2FsbGJhY2sgaXMgcnVubmluZywgdGhlIGNsZWFudXBfaG9vayBpc24ndCBjYWxsZWQgYWdhaW4gaWYgaXQKCSAgcmV0dXJucyBHU1RfUEFEX1BST0JFX1JFTU9WRQoKMjAxMi0wOS0xOSAxNTowMTo0NiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiBBZGQgZnVuY3Rpb25zIHRvIHNhZmVseSBhY2Nlc3MgR3N0UHJvYmVJbmZvIGRhdGEgcG9pbnRlcgoJICBUaGlzIGlzIHNvIHRoYXQgaW50cm9zcGVjdGlvbiBiYXNlZCBiaW5kaW5ncyBjYW4gYWNjZXNzIGl0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NDAyCgoyMDEyLTA5LTE5IDIzOjI1OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICBkb2NzOiByZW1vdmUgcmVmZXJlbmNlIHRvIDAuOCBHc3RCaW4gQVBJIGZyb20gbWFudWFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQwNDgKCjIwMTItMDktMTkgMTU6MTQ6MzUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogdHJhbnNmb3JtIEdBUCBldmVudCBpbiBzaW5nbGUgc2VnbWVudCBtb2RlCgoyMDEyLTA5LTE5IDA5OjQ0OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBkb2NzOiBjb2xsZWN0cGFkcyBkb2MgZml4ZXMKCjIwMTItMDktMTggMjE6NDk6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2hlY2sgYWNxdWlyZSByZXN1bHQgdmFsdWUKCSAgQ2hlY2sgdGhlIHJlc3VsdCB2YWx1ZSBmcm9tIF9idWZmZXJfcG9vbF9hY3F1aXJlKCkgYW5kIHJldHVybiB0aGUKCSAgdmFsdWUgd2hlbiBhbGxvY2F0aW9uIGZhaWxlZC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDI4NQoKMjAxMi0wOS0xOCAxMjoxNDozNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IHJlZmNvdW50IGJ1ZyBieSB1bnJlZmZpbmcgdGhlIGNvcnJlY3QgdmFyaWFibGUKCj09PSByZWxlYXNlIDAuMTEuOTkgPT09CgoyMDEyLTA5LTE3IDE3OjU2OjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMS45OQoKMjAxMi0wOS0xNyAxMzozNToyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiB3aW4zMi92czEwL0NvbW1vbi5wcm9wczoKCSAgUmVtb3ZlIEdTVF9VU0VfVU5TVEFCTEVfQVBJIGd1YXJkIGFuZCBkZWZpbmVzCgoyMDEyLTA5LTE3IDEzOjA5OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgcGFkOiBBZGQgcGFyZW50IHBhcmFtZXRlciB0byB0aGUgbGluayBhbmQgdW5saW5rIGZ1bmN0aW9ucwoJICBGaXhlcyBwYXJ0IG9mIGJ1ZyAjNjgzOTk1LgoKMjAxMi0wOS0xNiAyMzoyMDo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgc2FtcGxlOiBhZGQgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gZnVuY3Rpb25zIGZvciBHc3RTYW1wbGUKCSAgU2luY2UgdGhlc2UgdGhpbmdzIGFyZSBpbnNpZGUgdGFnbGlzdHMgbm93LCBpdCB3b3VsZCBiZSBnb29kIHRvIGJlCgkgIGFibGUgdG8gcHJpbnQgdGhlbSBhbmQgZGVzZXJpYWxpc2UgdGhlbS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTMyMgoKMjAxMi0wOS0xNSAyMTo1NjowNyArMDIwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8dXJhZXVzQGxpbnV4cmlzaW4ub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFN3aXRjaCB0byBGMTggbmFtaW5nIG9mIHRoZSBwYWNrYWdlCgoyMDEyLTA5LTE1IDE4OjQzOjM5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHVzZSBnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9tZXRhZGF0YSB0byByZXBsYWNlIG9ic29sZXRlIEFQSQoKMjAxMi0wOS0xNCAxNzo1MjoxNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICByZXBsYWNlIGdzdF90YWdfbGlzdF9mcmVlIHdpdGggZ3N0X3RhZ19saXN0X3VucmVmCgoyMDEyLTA5LTE0IDE3OjAwOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICByZXBsYWNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSB3aXRoIGdzdF9lbGVtZW50X2NsYXNzX3NldF9tZXRhZGF0YQoKMjAxMi0wOS0wNiAxNjozMjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IHdoaXRlc3BhY2UgZml4CgoyMDEyLTA5LTE0IDE0OjA4OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgZG9jczogaW5kZXhlcnMgYXJlIG5vIG1vcmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4NDAxOAoKMjAxMi0wOS0xNCAxMzozNDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgdGVzdHM6IGZpeCBmb3IgYXBwc2luayByZXR1cm4gdmFsdWUgYWRkaXRpb24KCjIwMTItMDktMTQgMDI6NTQ6NTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTQgPT09CgoyMDEyLTA5LTE0IDAyOjQ2OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjk0CgoyMDEyLTA5LTE0IDAxOjI4OjQ2ICswMTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHRyeSB0byBwcmV0dHktcHJpbnQgZXZlbnQgYWZ0ZXIgd2UndmUgZ2l2ZW4gYXdheSBvd25lcnNoaXAKCSAgTWlnaHQgY2F1c2UgY3Jhc2hlcyB3aXRoIGRlYnVnIGxvZ2dpbmcgZW5hYmxlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mzk5NgoKMjAxMi0wOS0xNCAwMToxNzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTItMDktMTQgMDA6MzA6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGdzdGNvbXBhdDogZml4IGJhY2t3YXJkcyBjb21wYXQgbWFjcm8gZm9yIGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbgoJICBOYW1lIGl0IHByb3Blcmx5LCBzbyBpdCwgbGlrZSwgd29ya3MuIENsZWFybHkgbm8gb25lIGFjdHVhbGx5CgkgIHVzZWQgdGhhdC4uCgoyMDEyLTA5LTEzIDEyOjAwOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBmaXggZm9ybWF0cyBhIGxpdHRsZQoKMjAxMi0wOS0xMyAxMTozODo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogYWRkIG5ldyBiYXNlcGFyc2UgZnVuY3Rpb24KCjIwMTItMDktMTMgMTE6Mzg6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGRvY3M6IGZvdXJjYyBpcyBubyBtb3JlCgoyMDEyLTA5LTEzIDExOjM1OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXByb2dyYW1zLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBmaXggc29tZSBkb2NzCgkgIGZyb20gZ2l0IGdyZXAgZm9yIGZmbXBlZ2NvbG9yc3BhY2UgYW5kIHgtcmF3LQoKMjAxMi0wOS0xMyAxMDo0ODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIHBhcnNlOiBhZGQgbWlzc2luZyBkZWNsYXJhdGlvbgoKMjAxMi0wOS0xMyAxMDoyNDoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbmRlbnQgZml4CgoyMDEyLTA5LTEyIDIyOjQ0OjM3IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEFkZCBhIG1vZGUvZmxhZyBmb3IgZGlzYWJsaW5nIFBUUyBpbnRlcnBvbGF0aW9uCgkgIFRvIGJlIHVzZWQgYnkgc3ViLWNsYXNzZXMgaW1wbGVtZW50aW5nIHZpZGVvIGZvcm1hdHMgd2l0aCByZW9yZGVyaW5nCgkgIHN1Y2ggYXMgTVBFRy4KCjIwMTItMDktMTAgMTg6Mzg6NTcgLTA3MDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogSGFuZGxlIEdBUCBhbmQgc3RpbGwtZnJhbWUgZXZlbnRzLgoJICBIYWNreSwgYmVjYXVzZSB0aGUgc3RpbGwtZnJhbWUgY29kZSBhbGwgbGl2ZXMgaW4gLWJhc2UsIHdoZXJlIHdlCgkgIGNhbid0IHVzZSBpdCAtIHNvIHRoaXMgaXMgYSBoYWNreSBkdXBsaWNhdGlvbiBvZiAtYmFzZSBjb2RlLiBOb3QKCSAgc3VyZSB3aGljaCB3YXkgdG8gZml4IHRoaXM6IE1vdmUgYmFzZXBhcnNlIHRvIC1iYXNlLCBvciBtb3ZlIHN0aWxsLWZyYW1lCgkgIGV2ZW50cyB0byBjb3JlPwoKMjAxMi0wOS0wNCAxOTozODoyNiAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXN0cnVjdHVyZSBldmVudCBoYW5kbGluZwoJICBNYWtlIHRoZSBldmVudCBoYW5kbGluZyBtb3JlIGxpa2Ugd2hhdCB2aWRlb2RlY29kZXIgZG9lcywKCSAgdG8gZW5zdXJlIHRoYXQgYWxsIGV2ZW50cyBhcmUgcGFzc2VkIHRvIGNoaWxkIGNsYXNzZXMgYmVmb3JlIGJlaW5nCgkgIHBsYWNlZCBvbiB0aGUgcGVuZGluZyBxdWV1ZSBvciBwdXNoZWQgb253YXJkLgoKMjAxMi0wOS0wMyAxMDozMDowOCAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBTdG9yZSBpbmNvbWluZyBjYWNoZWQgZXZlbnRzIGluIHJldmVyc2Ugb3JkZXIKCSAgUmV2ZXJzZSB0aGUgbGlzdCBqdXN0IGJlZm9yZSBzZW5kaW5nLiBQcmVwZW5kaW5nIGlzIG1vcmUgZWZmaWNpZW50CgkgIHRoYW4gYXBwZW5kaW5nLCBzbyB0aGlzIHNhdmVzIHNvbWUgY3ljbGVzLgoKMjAxMi0wOS0wMiAyMzozMjo1MCAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXJzdCBhdHRlbXB0IGF0IGhhbmRsaW5nIGJvdGggRFRTIGFuZCBQVFMKCjIwMTItMDktMTMgMDA6Mzg6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhZGQgd2FybmluZyB3aGVuIHdlIGdldCBzb21ldGhpbmcgZWxzZSB0aGFuIGEgc2FtcGxlIGZvciBhIHNhbXBsZSB0YWcKCSAgRmFjaWxpdGF0ZSBHc3RCdWZmZXIgLT4gR3N0U2FtcGxlIHRyYW5zaXRpb24gZm9yIHNvbWUgdGFncywKCSAgY291bGQgYmUgaGFyZCB0byBjYXRjaCBvdGhlcndpc2Ugd2hlbiBjcmVhdGluZyB0YWdzLCBzaW5jZQoJICBpdCdsbCBvbmx5IGJlIGFwcGFyZW50IGxhdGVyIHdoZW4gc29tZW9uZSB0cmllcyB0byByZWFkIHRoZQoJICB0YWdzLgoKMjAxMi0wOS0xMiAxNDoxNDozMSArMDIwMCAgQW5kcmVhcyBGcmlzY2ggPGZyYXhpbmFzQG9wZW5kcmVhbWJveC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IGRvbid0IGNyYXNoIGlmIG5vIGVsZW1lbnQga2xhc3MgaGFzIGJlZW4gc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM4NjUKCjIwMTItMDktMTIgMjM6MTI6MTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBmaXggYSBtaXNwbGFjZWQgJyknCgoyMDEyLTA5LTEyIDIxOjIwOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGVycm9yOiBkb24ndCB0ZWxsIHBlb3BsZSB0byBmaWxlIGEgYnVnIGZvciBuZWdvdGlhdGlvbiBlcnJvcnMKCjIwMTItMDktMTIgMjA6NTQ6NTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzOiByZW1vdmUgZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwKCSAgUmVuYW1lIGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsKCkgdG8gZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKCkgYW5kIGZpeCBhbGwKCSAgaW52b2NhdGlvbnMuCgoyMDEyLTA5LTEyIDE3OjE2OjQxICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IGZpeCBidWlsZCBvbiBDeWd3aW4KCSAgLi4uIHdoZXJlIF9fZmJ1ZnNpemUgaXMgbm90IGF2YWlsYWJsZQoKMjAxMi0wOS0xMiAxMzowMDoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBSZXZlcnQgInRlc3RzOiBmaXggYnVmZmVyIGxlYWsgaW4gcXVldWUyIHVuaXQgdGVzdCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAyMzJmZDI5NTNlYjAwZjY5NGI2NjdlNzc5NjcwNGY1OTc0Y2VhNDUyLgoJICBUaGlzIHdhcyBhbHJlYWR5IGZpeGVkLgoKMjAxMi0wNS0yNCAxMzowODoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBwb3NzaWJsZSBkYXRhIGNvcnJ1cHRpb24gaW4gcmluZyBidWZmZXIgbW9kZSB3aGVuIHNlZWtpbmcKCSAgRml4IHJhY2UgdGhhdCBjb3VsZCBjYXVzZSBkYXRhIGNvcnJ1cHRpb24gd2hlbiBzZWVraW5nIGluIHJpbmcgYnVmZmVyCgkgIG1vZGUuCgkgIEluIHBlcmZvcm1fc2Vla190b19vZmZzZXQoKSwgY2FsbGVkIGZyb20gdGhlIGRlbXV4ZXIncyBwdWxsX3JhbmdlCgkgIHJlcXVlc3QsIHdlIGRyb3AgdGhlIGxvY2ssIHRlbGwgdXBzdHJlYW0gKHVzdWFsbHkgYSBodHRwIHNvdXJjZSkKCSAgdG8gc2VlayB0byBhIGRpZmZlcmVudCBvZmZzZXQsIHRoZW4gcmUtYWNxdWlyZSB0aGUgbG9jayBiZWZvcmUgd2UKCSAgZG8gdGhpbmdzIHRvIHRoZSByYW5nZXMuIEhvd2V2ZXIsIGJldHdlZW4gdXMgc2VuZGluZyB0aGUgc2VlayBldmVudAoJICBhbmQgcmUtYWNxdWlyaW5nIHRoZSBsb2NrLCB0aGUgc291cmNlIHRocmVhZCBtaWdodCBhbHJlYWR5IGhhdmUgcHVzaGVkCgkgIHNvbWUgZGF0YSBhbmQgbW92ZWQgYWxvbmcgdGhlIHJhbmdlJ3Mgd3JpdGluZ19wb3MgYmV5b25kIHRoZSBzZWVrCgkgIG9mZnNldC4gSW4gdGhhdCBjYXNlIHdlIGRvbid0IHdhbnQgdG8gc2V0IHRoZSB3cml0aW5nIHBvc2l0aW9uIGJhY2sKCSAgdG8gdGhlIHJlcXVlc3RlZCBzZWVrIHBvc2l0aW9uLCBhcyBpdCB3b3VsZCBjYXVzZSBkYXRhIHRvIGJlIHdyaXR0ZW4KCSAgdG8gdGhlIHdyb25nIG9mZnNldCBpbiB0aGUgZmlsZSBvciByaW5nIGJ1ZmZlci4KCSAgUmVwcm9kdWNpYmxlIGRvaW5nIHNlZWstZW11bGF0ZWQgZmFzdC1mb3J3YXJkL2JhY2t3YXJkIG9uIDAwNjY1My4KCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDEyLTA1LTI0IDEzOjA2OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICB0ZXN0czogZml4IGJ1ZmZlciBsZWFrIGluIHF1ZXVlMiB1bml0IHRlc3QKCjIwMTItMDktMTIgMTI6MjM6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IHJlbW92ZSBnbGliIGRlcHJlY2F0aW9uIGNvbXBhdGliaWxpdHkgdHJpY2tlcnkKCjIwMTItMDktMTIgMTI6MjI6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIGNoZWNrOiBwb3J0IHRvIHRoZSBuZXcgR0xpYiB0aHJlYWQgQVBJCgoyMDEyLTA5LTEyIDExOjUyOjI1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgdGVzdHM6IHBvcnQgdG8gbmV3IEdMaWIgdGhyZWFkIEFQSQoKMjAxMi0wOS0xMiAxMTo0OTo1NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOgoJICB0ZXN0czogYmVuY2htYXJrczogYWxpZ24gZXJyb3IgbWVzc2FnZSB3aXRoIGNvZGUKCjIwMTItMDktMTEgMTk6NDk6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGV4cG9zZSBnc3RfcGFkX21vZGVfZ2V0X25hbWUoKSBhbmQgdXNlIGl0IGluIGJhc2VwYXJzZQoKMjAxMi0wOS0xMSAxMzoyMjo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IHVwZGF0ZSBmb3IgZ3N0LWZmbXBlZyAtPiBnc3QtbGliYXYKCSAgTm93IHRoYXQgd2UgaGF2ZSBhIGdzdC1saWJhdiBnaXQgcmVwb3NpdG9yeSAoc3ltbGlua2VkIHRvIGdzdC1mZm1wZWcpLgoKMjAxMi0wOS0xMSAxNzoyNzowMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkanVzdCB0ZXN0IGxvZ2ljIGZvciBzY2hlZHVsaW5nIG1vZGUgd2l0aCBmbGFnUwoKMjAxMi0wOS0xMSAxNjozOTozNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogYWRkIGNvbnZlbmllbmNlIEFQSSB0byBxdWVyeSBmb3Igc2NoZWR1bGluZyBtb2RlIGFuZCBmbGFncwoKMjAxMi0wOS0xMSAxNjoyOToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudHM6IHJlbW92ZSBTVFJFQU1fQ09ORklHCgkgIFdlIHdvbid0IGJlIGFibGUgdG8gaW1wbGVtZW50IHRoaXMgc28gaXQncyBiZXR0ZXIgdG8gbW92ZSBpdCBvdXQgb2YgdGhlIHdheS4KCjIwMTItMDktMTEgMTY6MDk6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIGNvbGxlY3RwYWRzOiBjbGVhbiB1cCBoZWFkZXIgaW5kZW50YXRpb24KCjIwMTItMDktMTEgMTE6MzQ6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGFsbG93IE5VTEwgc3RyZWFtX2lkIGFsc28gd2hlbiAwIHNyY3BhZHMKCSAgV2UgdXN1YWxseSBmaXJzdCBjcmVhdGUgdGhlIHN0cmVhbV9pZCBmb3IgdGhlIHN0cmVhbV9zdGFydCBldmVudCBhbmQgdGhlbiBhZGQKCSAgdGhlIHBhZCB0byB0aGUgZWxlbWVudC4gVGhpcyBtZWFucyB0aGF0IHRoaXMgZnVuY3Rpb25zIHNob3VsZCB3b3JrIHdoZW4gdGhlcmUKCSAgYXJlIG5vIHBhZHMgb24gdGhlIGVsZW1lbnQgeWV0LgoKMjAxMi0wOS0xMCAyMTozOTozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBiYXNlcGFyc2UsIHR5cGVmaW5kOiBvbmx5IGFjdGl2YXRlIGluIHB1bGwgbW9kZSBpZiB1cHN0cmVhbSBpcyBzZWVrYWJsZQoJICBVcHN0cmVhbSBtaWdodCBzdXBwb3J0IHB1bGwgbW9kZSwgYnV0IG9ubHkgc2VxdWVudGlhbCBwdWxscywKCSAgd2hpY2ggaXNuJ3QgZ29ubmEgZG8gbXVjaCBmb3IgdXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQ5MjcKCjIwMTItMDktMTAgMjA6MzA6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nLXRvLTAuMTEudHh0OiBzb21lIG1pbm9yIGZpeGVzCgoyMDEyLTA5LTEwIDE2OjUyOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuYzoKCSAgc2FtcGxlOiBmcmVlIGluZm8gc3RydWN0dXJlIHdpdGggc2FtcGxlIGlmIHRoZXJlIGlzIG9uZSBhbmQgZml4IGNvcHkgd2l0aCBOVUxMIGluZm8gc3RydWN0dXJlCgoyMDEyLTA5LTEwIDEyOjIwOjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgcGFkZGluZyB0byBHc3RNYXBJbmZvCgoyMDEyLTA5LTEwIDEyOjEyOjAyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJICBsaWJzOiBhZGp1c3QgY29tbWVudCBzdHlsZQoKMjAxMi0wOS0xMCAxMjoxMToyMyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0OiByZW1vdmUgc29tZSBkZWZ1bmN0IGNvbW1lbnRlZCBjb2RlCgoyMDEyLTA5LTEwIDEyOjAwOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogaW1wcm92ZSBwb3J0aW5nIGRvYwoKMjAxMi0wOS0xMCAxMDowODowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3Rvb2xzL2dzdGluc3BlY3QuYzoKCSAgdGVzdHM6IGRpc2FibGUgZGVwcmVjYXRpb24gd2FybmluZ3MKCSAgZGVmaW5lIEdMSUJfRElTQUJMRV9ERVBSRUNBVElPTl9XQVJOSU5HUyBlYXJsaWVyIHNvIHRoYXQgaXQgaXMgZGVmaW5lZCBiZWZvcmUKCSAgdGhlIGdsaWIgaGVhZGVycyBhcmUgbG9hZGVkIG9yIGVsc2Ugd2UgdHJpcCBvdmVyIHRoZSBHVmFsdWVBcnJheSBkZXByZWNhdGlvbnMgaW4KCSAgZ3N0LWluc3BlY3QuYy4KCjIwMTItMDktMDcgMDE6MDI6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBkaXJlY3QgY29udHJvbCBiaW5kaW5nIGRvdWJsZSAtPiBpbnQgY29udmVyc2lvbgoJICBSb3VuZCBwcm9wZXJseSB0byBuZWFyZXN0IGludGVnZXIuIEZpeGVzIGNvbnRyb2xsZXIKCSAgdW5pdCB0ZXN0IG9uIFBvd2VyUEMgRzQuCgoyMDEyLTA5LTA2IDE1OjA2OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICBleGFtcGxlczogZml4IGJ1cy9mZCBsZWFrIGluIGhlbGxvIHdvcmxkIGV4YW1wbGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzQ3MAoKMjAxMi0wOS0wNSAxOTo1NToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNDoKCSAgZ3N0LWVsZW1lbnQtY2hlY2subTQ6IGZpeCBhY3Rpb24taWYtZm91bmQgYW5kIG5vdC1mb3VuZCBpbnZvY2F0aW9uCgkgIEFyZ3VtZW50cyBnb3Qgc2hpZnRlZCBiYWNrIGJ5IG9uZS4KCjIwMTItMDktMDUgMTU6Mzc6MTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogaGFuZGxlIEdBUCBldmVudAoKMjAxMi0wOS0wNCAxMjoxMzoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogd2FpdF9lb3MgLT4gd2FpdF9ldmVudAoJICBGaXggYSBGSVhNRS4gTm93IHdlIGNhbiBhbHNvIHBhc3MgdGhlIEdBUCBldmVudCB0byB0aGUgc3ViY2xhc3MuCgoyMDEyLTA5LTAzIDE4OjQ1OjAzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgZXhhbXBsZXM6IHVwZGF0ZSBNYWtlZmlsZS5hbSBhbmRyb2lkIGJpdHMgaW4gY29udHJvbGxlciBleGFtcGxlCgkgIFNob3VsZCBmaXggYnVpbGQgZmFpbHVyZSByZXBvcnRlZCBvbiBJUkMuCgoyMDEyLTA4LTMwIDE5OjE1OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNoZWNrIHN0aWNreSBldmVudHMgYWxzbyBhZnRlciBwYWQgYmxvY2sKCSAgUmVjaGVjayBmb3Igc3RpY2t5IGV2ZW50cyBhZnRlciBkb2luZyBhIHBhZCBibG9jayBiZWNhdXNlIHRoZSBwYWQgYmxvY2sgY291bGQKCSAgaGF2ZSBjYXVzZWQgYSByZWxpbmsgYW5kIHRoZW4gd2UgbmVlZCB0byByZXNlbmQgdGhlIGV2ZW50cyB0byB0aGUgbmV3bHkgbGlua2VkCgkgIHBhZC4KCSAgRml4ZXMgdGhpbmdzIGxpa2Ugc3dpdGNoaW5nIG9mIHZpc3VhbGlzYXRpb25zLgoKMjAxMi0wOS0wMiAwMjowNDoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXBkYXRlIGZvciBnc3RfbWVzc2FnZV9uZXdfZHVyYXRpb24gLT4gX2R1cmF0aW9uX2NoYW5nZWQoKQoKMjAxMi0wOS0wMiAwMToxNzo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiByZW5hbWUgR1NUX01FU1NBR0VfRFVSQVRJT04gLT4gR1NUX01FU1NBR0VfRFVSQVRJT05fQ0hBTkdFRAoJICBUaGUgZHVyYXRpb24gc2hvdWxkIGJlIHJlLXF1ZXJpZWQgdmlhIGEgcXVlcnkgdXNpbmcgdGhlCgkgIG5vcm1hbCBwYXRoLCB3ZSBkb24ndCB3YW50IGFwcGxpY2F0aW9ucyB0byB1c2UgdGhlIHZhbHVlCgkgIGZyb20gdGhlIG1lc3NhZ2UgaXRzZWxmLCBzaW5jZSBpdCBtaWdodCBubyBtYXRjaCB3aGF0IGEKCSAgZHVyYXRpb24gcXVlcnkgZG9uZSBmcm9tIHRoZSBzaW5rIHVwc3RyZWFtIG1pZ2h0IHlpZWxkLgoJICBBbHNvIGRpc2FibGVzIGR1cmF0aW9uIGNhY2hpbmcgaW4gR3N0QmluLiBJdCBzaG91bGQgYmUKCSAgYWRkZWQgYmFjayBhZ2FpbiBhdCBzb21lIHBvaW50LgoKMjAxMi0wOS0wMSAyMzo1NDoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBhZGQgcmVtaW5kZXIgdG8gcmVtb3ZlIEdTVF9VTlNUQUJMRV9BUEkgc3R1ZmYgYmVmb3JlIDEuMC4wCgoyMDEyLTA5LTAxIDE4OjA2OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogLmdpdGlnbm9yZToKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0LWVsZW1lbnQtY2hlY2subTQ6CgkqIGdzdC1lbGVtZW50LWNoZWNrLm00LmluOgoJICBnc3QtZWxlbWVudC1jaGVjay5tNDogcmVuYW1lIEFNX0dTVF9FTEVNRU5UX0NIRUNLIHRvIEdTVF9FTEVNRU5UX0NIRUNLCgkgIEFuZCBhbGxvdyBwYXNzaW5nIG9mIGEgbWluaW11bSB2ZXJzaW9uIChpZiBub3QgbmVlZGVkLCBwYXNzIDEuMCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI5NjgKCjIwMTItMDktMDEgMTc6NTA6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svdG9vbHMvZ3N0aW5zcGVjdC5jOgoJICB0ZXN0czogYWRkIGNoZWNrIGZvciBnc3QtaW5zcGVjdCAtLWV4aXN0cyBmdW5jdGlvbmFsaXR5CgoyMDEyLTA5LTAxIDE3OjQ3OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGFkZCAtLWV4aXN0cyBhbmQgLS1hdGxlYXN0LXZlcnNpb24gb3B0aW9uIHRvIGdzdC1pbnNwZWN0CgkgIEZvciBjaGVja2luZyBpZiBhbiBlbGVtZW50IGV4aXN0cyB3aXRoIGEgZ2l2ZW4gbWluaW11bSB2ZXJzaW9uLgoJICBXaWxsIHVzZSB0aGF0IGluIG91ciBuZXcgR1NUX0VMRU1FTlRfQ0hFQ0sgbTQgbWFjcm8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODI5NjgKCjIwMTItMDktMDEgMTc6MzI6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogZGlzYWJsZSB2ZXJzaW9uIG1hbmdsaW5nIGZvciBwb3N0LTEuMC4wIHJlbGVhc2UKCSAgSnVzdCBpbiBjYXNlIHdlIGRvbid0IGdyZXAgZm9yIEZJWE1FIDEuMCBiZWZvcmUgdGhlIHJlbGVhc2UuCgoyMDEyLTA4LTMxIDExOjMxOjQ1IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBNYWtlIEdBUCBldmVudHMgYWN0dWFsbHkgdHJpZ2dlciBwcmVyb2xsCgkgIFNsaWdodGx5IGhhY2t5IGFwcHJvYWNoIG5lZWRpbmcgcmVmaW5lbWVudAoKMjAxMi0wOC0zMSAwNjoyNToyMiAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IG1ha2Ugc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzIG1vcmUgdmVyYm9zZQoKMjAxMi0wOC0zMSAwNjoyMzo1MyAtMDcwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBnaG9zdHBhZDogTWFrZSBzb21lIGRlYnVnZ2luZyBtb3JlIHZlcmJvc2UKCSAgQWxzbywgcmVtb3ZlIGFuIHVubmVjZXNzYXJ5ICNpbmNsdWRlIGluIGlucHV0LXNlbGVjdG9yCgoyMDEyLTA4LTI4IDE1OjQ0OjQ4IC0wNzAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBHc3RTZWdtZW50OiBGaXggZG9jIGRlc2NyaXB0aW9uIHN0cmluZyBsYXN0X3N0b3AtPnBvc2l0aW9uCgoyMDEyLTA4LTMwIDE5OjQ3OjU3ICswMTAwICBBcm5hdWQgVnJhYyA8YXZyYWNAZnJlZWJveC5mcj4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBmaXggY2xvY2sgbGVhawoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTk3CgoyMDEyLTA4LTI5IDIyOjU3OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBvdXRwdXQgZ3N0LWluc3BlY3QgZXJyb3JzIHRvIHN0ZGVycgoKMjAxMi0wOC0yOCAwNzozOTo1MCArMDIwMCAgQWxiYW4gQnJvd2FleXMgPHByYWhhbEB5YWhvby5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBjcmFzaCBzZXJpYWxpc2luZyBhIDAgZmxhZ3MgdmFsdWUgd2hlbiB0aGVyZSdzIG5vIG5hbWUgZm9yIGl0CgkgIEZpeGVzIHNlZ2ZhdWx0IHdoZW4gZG9pbmcgZ3N0LWxhdW5jaC0xLjAgLXYgLW0gY2FtZXJhYmluCgkgIChlbmNvZGViaW4gbm90aWZpZXMgYSAwIHZhbHVlIGZvciBpdHMgImZsYWciIHByb3BlcnR5KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mjk1OAoKMjAxMi0wOC0yNCAyMzoxNDo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBsb2cgcGVyZm9ybWFuY2Ugd2FybmluZyBkZWJ1ZyBtZXNzYWdlIGlmIGdsaWIgZW11bGF0ZXMgYXRvbWljIG9wcwoKMjAxMi0wOC0yMyAxMzo1MToyNyArMDEwMCAgTGlvbmVsIExhbmR3ZXJsaW4gPGxsYW5kd2VybGluQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiB1c2UgY29uZmlndXJlLWRldGVjdGVkIG9yIGV4dGVybmFsbHkgcHJvdmlkZWQgZ2xpYi1ta2VudW1zCgkgIFRvIGVhc2UgY3Jvc3MtY29tcGlsYXRpb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc2MjAKCjIwMTItMDgtMjIgMTM6Mjk6MzQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDY2OGFjZWUgdG8gNGY5NjJmNwoKMjAxMi0wOC0yMiAxMzoxNDo1NiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIGd0ay1kb2MgcmVxIHRvIDEuMTIgKG1hci0yMDA5KQoJICBUaGlzIGFsbG93cyB1cyB0byBlLmcuIHVuY29uZGl0aW9uYWxseSB1c2UgZ3RrZG9jLXJlYmFzZS4KCjIwMTItMDgtMjEgMTM6MzA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIF9tYWtlX3dyaXRhYmxlCgoyMDEyLTA4LTIxIDAwOjAzOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBzb21lIG1lZGlhIHR5cGUgY2hhbmdlcyBpbiBwb3J0aW5nLXRvLTAuMTEudHh0IGRvYwoKMjAxMi0wOC0yMCAxMzo1MTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtaW5vciB1cGRhdGUgdG8gcG9ydGluZyBkb2MgZm9yIGNoaWxkIHByb3h5IGxvb2t1cCBtZXRob2QKCSAgQW5kIGEgdHlwbyBmaXguCgoyMDEyLTA4LTIwIDExOjMxOjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJICBhbGxvY2F0b3I6IG1ha2UgYSBjb3B5IHdpdGggdGhlIHNhbWUgYWxpZ25tZW50CgkgIFdoZW4gbWFraW5nIGEgY29weSBvZiB0aGUgbWVtb3J5IGFsbG9jYXRlZCBmcm9tIHRoZSBkZWZhdWx0IG1lbW9yeSBhbGxvY2F0b3IsCgkgIG1ha2Ugc3VyZSB0aGUgbmV3IGNvcHkgaGFzIHRoZSBzYW1lIGFsaWdubWVudCBhcyB0aGUgb3JpZ2luYWwgbWVtb3J5LgoJICBTZWUgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDc5NgoKMjAxMi0wOC0xOSAxNzo1MTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWFrZSBzZWVraW5nIGluIERFRkFVTFQgZm9ybWF0IHdvcmsgaWYgdGhlIHN1YmNsYXNzIGNhbiBjb252ZXJ0IGZvciB1cwoJICBXZSBvbmx5IGRlYWwgaW4gVElNRSBmb3JtYXQgb3Vyc2VsdmVzLCBidXQgaWYgdGhlIHN1YmNsYXNzIGNhbiBoYW5kbGUKCSAgY29udmVydGluZyBvdGhlciBmb3JtYXRzIGludG8gVElNRSBmb3JtYXQsIHdlIGNhbiBzdXBwb3J0IHRoYXQgdG9vLgoJICBGaXhlcyBzZWVraW5nIGluIERFRkFVTFQgKHNhbXBsZSkgZm9ybWF0IHdpdGggZmxhY3BhcnNlLAoJICBhbmQgdGhlIGZsYWNkZWMgdW5pdCB0ZXN0LgoKMjAxMi0wOC0xOCAyMTo0MjoyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IG1pbm9yIGZpeGVzIHRvIGdzdC1sYXVuY2ggbWFuIHBhZ2UKCjIwMTItMDgtMTcgMTI6MjM6NTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIHByZXNldDogaW1wbGVtZW50IGNoaWxkX3Byb3h5IHN1cHBvcnQKCSAgRWxlbWVudHMgc3VjaCBhcyB0aGUgR3N0SWlyRXF1YWxpemVyTkJhbmRzIHdvdWxkIHNvIGZhciBub3Qgc3RvcmUgdGhlIHByb3BlcnRpZXMKCSAgb2YgdGhlaXIgY2hpbGRyZW4uIE5vdyB3ZSBhbHNvIGdyYWIgdGhlIHByb3BlcnRpZXMgb2YgY2hpbGQgZWxlbWVudHMgYW5kIHRyeSB0bwoJICByZXN0b3JlIHRoZW0uCgoyMDEyLTA4LTE0IDE4OjQ0OjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBXYWl0IGZvciBvdGhlciBzdHJlYW1zIHRvIGFkdmFuY2Ugb24gdW5zZWxlY3RlZCBwYWRzCgkgIE90aGVyd2lzZSB3ZSBlbmQgdXAgZHJvcHBpbmcgYSBsb3Qgb2YgZGF0YSBpbiB0aGUgY2FzZSB3aGVyZSBkYXRhIHN0YXJ0cwoJICBhcnJpdmluZyBvbiB0aGUgbm9uLXNlbGVjdGVkIHBhZCwgcmVzdWx0aW5nIGluIGJpZyBnYXBzIGluIHN0cmVhbSBzd2l0Y2hpbmcKCjIwMTItMDgtMTQgMTg6NDM6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE1vcmUgZGVidWcgc3RhdGVtZW50cwoKMjAxMi0wOC0xNCAxODo0MjozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3QgZm9yd2FyZCBzdHJlYW0tc3RhcnQgc3RpY2t5IGV2ZW50cwoJICBPbmx5IG9uZSBTVFJFQU1fU1RBUlQgZXZlbnQgc2hvdWxkIGJlIGxldCB0aHJvdWdoLCBlbHNlIGl0IHdpbGwKCSAgY29uZnVzZSBkb3duc3RyZWFtIGVsZW1lbnRzIHRoYXQgdGhpbmsgYSBuZXcgc3RyZWFtIGlzIHN0YXJ0aW5nCgkgIHdoZXJlYXMgaW4gZmFjdCB3ZSBhcmUganVzdCBzd2l0Y2hpbmcgdG8gYSBkaWZmZXJlbnQgaW5wdXQuCgkgIEluIHRoZSBmdXR1cmUgd2UgbWlnaHQgd2FudCB0byBsZXQgdGhlbSB0aHJvdWdoIGJ1dCB3aXRoIHRoZSBzYW1lCgkgIHNlcXVlbmNlIG51bWJlci4KCjIwMTItMDgtMTQgMTU6NDY6MzUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkb2NzOiBBZGQgbmV3IGJhc2VzcmMvYmFzZXRyYW5zZm9ybSBBUEkgdG8gdGhlIGRvY3MKCjIwMTItMDgtMDcgMTc6Mzg6NTMgKzAyMDAgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCA8dmphcXVlekBpZ2FsaWEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBnZXR0ZXJzIGZvciBwb29sIGFuZCBhbGxvY2F0b3IKCSAgU29tZXRpbWVzIGEgdHJhbnNmb3JtIGZpbHRlciB3b3VsZCBuZWVkIHRoZSBidWZmZXIgcG9vbCBvciB0aGUgbWVtb3J5CgkgIGFsbG9jYXRvciBuZWdvdGlhdGVkIGJ5IHRoZSBiYXNlIGNsYXNzLCBmb3IgZXhhbXBsZSwgZm9yIHF1ZXJ5aW5nIGRpZmZlcmVudAoJICBwYXJhbWV0ZXJzLCBzdWNoIGFzIGEgYmlnZ2VyIG51bWJlciBvZiBidWZmZXJzIHRvIGFsbG9jYXRlIGJ5IHRoZSBidWZmZXIgcG9vbC4KCSAgVGhpcyBwYXRjaCBleHBvc2UgYSB0d28gZ2V0dGVycyBhY2Nlc3NvcnM6IG9uZSBmb3IgdGhlIGJ1ZmZlciBwb29sIGFuZCB0aGUKCSAgb3RoZXIgZm9yIHRoZSBtZW1vcnkgYWxsb2NhdG9yLgoKMjAxMi0wOC0wNyAxNzozNTo0OCArMDIwMCAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGdldHRlcnMgZm9yIHBvb2wgYW5kIGFsbG9jYXRvcgoJICBTb21ldGltZXMgdGhlIHNvdXJjZXMgd291bGQgdXNlIHRoZSBidWZmZXIgcG9vbCBvciB0aGUgbWVtb3J5IGFsbG9jYXRvciBmb3IKCSAgc29tZXRoaW5nIGVsc2UgdGhhbiBqdXN0IGFsbG9jYXRpbmcgb3V0cHV0IGJ1ZmZlcnM7IGZvciBleGFtcGxlLCBxdWVyeWluZyBmb3IKCSAgZGlmZmVyZW50IHBhcmFtZXRlcnMsIHN1Y2ggYXMgYSBiaWdnZXIgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gYWxsb2NhdGUgYnkgdGhlCgkgIHBvb2wuCgkgIFRoaXMgcGF0Y2ggZXhwb3NlIGEgdHdvIGdldHRlcnMgYWNjZXNzb3JzOiBvbmUgZm9yIHRoZSBidWZmZXIgcG9vbCBhbmQgdGhlCgkgIG90aGVyIGZvciB0aGUgbWVtb3J5IGFsbG9jYXRvci4KCjIwMTItMDgtMTQgMDA6Mzk6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZWdpc3RyeTogcmVtb3ZlIHNvbWUgdW51c2VkIGFuZCBpbiB0aGVpciBjdXJyZW50IGZvcm0gcG9pbnRsZXNzIEFQSQoJICBOb3Qgc28gdXNlZnVsOiBqdXN0IGFkZHMvcmVhZHMgc3R1ZmYgZnJvbSBhbiBpbnRlcm5hbCBHTGlzdCB3aXRob3V0CgkgIGFjdHVhbGx5IGRvaW5nIGFueXRoaW5nIHdpdGggdGhvc2UgcGF0aHMsIHNvIHJlbW92ZSBmb3Igbm93OgoJICBnc3RfcmVnaXN0cnlfYWRkX3BhdGgKCSAgZ3N0X3JlZ2lzdHJ5X2dldF9wYXRoX2xpc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYwODg0MQoKMjAxMi0wOC0xMiAxMzoyNzowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBmaXggdXAgZm9yIGdzdF9jaGlsZF9wcm94eV9sb29rdXAoKSBvbmx5IHdvcmtpbmcgb24gY2hpbGQgcHJveHkgaW50ZXJmYWNlcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNjgxCgoyMDEyLTA4LTEyIDEzOjI0OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgY2hpbGRwcm94eTogbWFrZSBnc3RfY2hpbGRfcHJveHlfbG9va3VwKCkgYSBwcm9wZXIgR3N0Q2hpbGRQcm94eSBtZXRob2QKCSAgTm8gbG9uZ2VyIGFjY2VwdCBhbnkgb2xkIEdPYmplY3RzLiBUaGlzIG1ha2VzIHRoaW5ncyBuaWNlciBmb3IKCSAgYmluZGluZ3MuIElmIGEgdXRpbGl0eSBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgYm90aCBuaWNlbHkKCSAgaXMgZGVlbWVkIHdvcnRod2hpbGUsIHdlIGNhbiBzdGlsbCBhZGQgb25lIHRvIGdzdHV0aWxzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxNjgxCgoyMDEyLTA4LTEzIDAwOjAxOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiB3aGVuIHNlcmlhbGlzaW5nIGFycmF5cyBvciBsaXN0cywgaGFuZGxlIHR5cGVzIHdlIGNhbid0IHNlcmlhbGlzZSBtb3JlIGdyYWNlZnVsbHkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTMyMgoKMjAxMi0wOC0xMiAxOTozOTo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IGFkZCBzb21lIG1vcmUgZGV0YWlscyB0byBmYWlsdXJlIG1lc3NhZ2VzCgkgIE1lbnRpb24gcGFkIHdoZXJlIHRoZSBwcm9ibGVtIG9jY3VyZWQsIGFuZCB0aGUgZXZlbnQgbmFtZS4KCjIwMTItMDgtMTIgMTg6MzY6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOgoJICB0ZXN0czogZml4IGNvbGxlY3RwYWRzIHRlc3QKCSAgQWZ0ZXIgYW4gRU9TIHdlIG11c3Qgc2VuZCBhIEZMVVNIX1NUT1AgZXZlbnQgaWYKCSAgd2Ugd2FudCB0byBzZW5kIGRhdGEgYWdhaW4uCgoyMDEyLTA4LTEyIDE4OjMxOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBmaXggbGVhayBpbiBnc3RfZXZlbnRfcGFyc2Vfc3RyZWFtX3N0YXJ0KCkKCSAgZ3N0X3N0cnVjdHVyZV9pZF9nZXQoKSB3aWxsIG1ha2UgYSBjb3B5IG9mIHRoZSBzdHJpbmcKCSAgZXh0cmFjdGVkLCBidXQgd2UncmUgYXNzaWduaW5nIGl0IHRvIGEgY29uc3QgZ2NoYXIgKi4KCjIwMTItMDgtMTIgMTY6NDA6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IG1ha2UgcGlwZWxpbmUgdGVzdCB2YWxncmluZCBjbGVhbgoKMjAxMi0wOC0xMiAxNjozNzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgdGVzdHM6IGZpeCBwaXBlbGluZSB1bml0IHRlc3QKCSAgV2hpY2ggd2FzIGRpc2FibGVkIGJlY2F1c2UgaXQgZmFpbGVkLgoKMjAxMi0wOC0xMiAxNTo0ODoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBmaXggdW50ZXJtaW5hdGVkIHF1b3RlZCBzdHJpbmcgaW4gY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoCgoyMDEyLTA4LTEyIDAwOjEyOjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogbWVudGlvbiBnc3RfdmlkZW9fZm9ybWF0X3BhcnNlX2NhcHMoKSBpbiBwb3J0aW5nIGd1aWRlCgoyMDEyLTA4LTExIDIyOjE5OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogZml4IHVwIGRvY3MgYSBiaXQKCjIwMTItMDgtMTEgMjI6MTg6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggdXAgZy1pIGFubm90YXRpb24gZm9yIF9sb29rdXAoKSBwYXJhbXNwZWMgcmV0dXJuIHZhbHVlCgkgIE5vIHJlZiBpcyByZXR1cm5lZCBoZXJlLgoKMjAxMi0wOC0xMSAyMjoxNzozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZSBmb3IgbmV3IGJ1ZmZlciBmdW5jdGlvbnMKCjIwMTItMDgtMTAgMjI6NTg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCByZXZlcnNlIHBsYXliYWNrIHdpdGggdXBzdHJlYW0gZGVtdXhlcnMgdGhhdCBzdXBwb3J0IGl0CgkgIERvbid0IGp1c3QgcmV0dXJuIEZBTFNFIGZvciBzZWVrIGV2ZW50cyB3aXRoIG5lZ2F0aXZlIHJhdGVzIHdoZW4KCSAgb3BlcmF0aW5nIGluIHB1c2ggbW9kZS4gQW4gdXBzdHJlYW0gZGVtdXhlciBtYXkgc3VwcG9ydCB0aGlzIGp1c3QKCSAgZmluZSwgc28gaWYgd2UncmUgbm90IG9wZXJhdGluZyBpbiBwdWxsIG1vZGUgYWx3YXlzIGNoZWNrIHVwc3RyZWFtCgkgIGZpcnN0IGlmIGl0IGNhbiBoYW5kbGUgdGhlIHNlZWsgZXZlbnQuIFRoaXMgZml4ZXMgcmV2ZXJzZSBwbGF5YmFjawoJICB3aGVyZSB0aGUgdXBzdHJlYW0gZGVtdXhlciBzdXBwb3J0cyBpdCAoZS5nLiB3aXRoIHF0ZGVtdXgpLiBUaGUKCSAgc2FtZSBjb2RlIHdvdWxkIHdvcmsgZmluZSBpbiAwLjEwLCBiZWNhdXNlIGJhc2VwYXJzZSB3aWxsIGp1c3QKCSAgY2FsbCB0aGUgZGVmYXVsdCBwYWQgZXZlbnQgaGFuZGxlciBpZiBGQUxTRSB3YXMgcmV0dXJuZWQgZnJvbSB0aGUKCSAgYmFzZXBhcnNlIGV2ZW50IGhhbmRsZXIsIGFuZCB0aGUgcGFkIGV2ZW50IGhhbmRsZXIgd2lsbCBqdXN0CgkgIGZvcndhcmQgaXQgdXBzdHJlYW0uIEluIDAuMTEgdGhlIGJhc2VjbGFzcyBvciBzdWJjbGFzcyBpcwoJICByZXNwb25zaWJsZSBmb3IgY2hhaW5pbmcgdXAgdG8gdGhlIHBhcmVudCBjbGFzcyBvciBmb3J3YXJkaW5nIHRoZQoJICBldmVudCB1cHN0cmVhbSBpbiBhbnkgY2FzZS4KCSAgRGlzYWJsZSByZXZlcnNlIHBsYXliYWNrIGluIHB1bGwgbW9kZSBmb3Igbm93LCB0aGVyZSBzZWVtcyB0bwoJICBiZSBzb21ldGhpbmcgZ29pbmcgd3Jvbmcgd2l0aCB0aGUgc2VnbWVudCBjb25maWd1cmF0aW9uIGluIHRoYXQKCSAgY2FzZS4KCjIwMTItMDgtMDQgMTE6NDg6NTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkbyBub3QgZXJyb3Igb24gbm90LW5lZ290aWF0ZWQKCSAgRG9uJ3QgZXJyb3Igb3V0IHRvbyBlYXJseSBhbmQgbGV0IHVwc3RyZWFtIGRlY2lkZSBpZiBpdCBjYW4KCSAgd29ya2Fyb3VuZCBhIG5vdC1uZWdvdGlhdGVkIHByb2JsZW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTE5OAoKMjAxMi0wOC0wNCAxMTo0ODoxMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJldHJ5IG9uIG5vdC1uZWdvdGlhdGUgaWYgYSByZWNvbmZpZ3VyZSBpcyBwZW5kaW5nCgkgIEJlZm9yZSBlcnJvcmluZyBvdXQgb24gbm90LW5lZ290aWF0ZWQgcmV0dXJucywgY2hlY2sgaWYgdGhlIHBhZAoJICBoYXMgdGhlIHJlY29uZmlndXJlIGZsYWcgc2V0IGFuZCByZXRyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTE5OAoKMjAxMi0wOC0wNCAxMTo0MjowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCBnc3RfcGFkX25lZWRzX3JlY29uZmlndXJlCgkgIEFkZCBhbiBhbHRlcm5hdGl2ZSB2ZXJzaW9uIG9mIGdzdF9wYWRfY2hlY2tfcmVjb25maWd1cmUgdGhhdCBkb2Vzbid0CgkgIGNsZWFyIHRoZSByZWNvbmZpZ3VyZSBmbGFnLgoJICBVc2VmdWwgZm9yIGluY3JlYXNpbmcgZXJyb3IgcmVzaWxpZW5jZSB3aXRob3V0IGR1cGxpY2F0aW5nIHRoZQoJICByZWNvbmZpZ3VyZSBjb2RlIGluIHBhZCB0YXNrIGZ1bmN0aW9ucy4KCSAgQVBJOiBnc3RfcGFkX25lZWRzX3JlY29uZmlndXJlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODExOTgKCjIwMTItMDctMjkgMTU6NDQ6NDUgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBHU1RfUEFEX0xJTktfQ0hFQ0tfREVGQVVMVCB0byBHc3RQYWRMaW5rQ2hlY2sKCSAgVGhpcyBhbGxvd3MgaW50cm9zcGVjdGlvbi1iYXNlZCBiaW5kaW5ncyB0byBhY2Nlc3MKCSAgR3N0LlBhZExpbmtDaGVjay5ERUZBVUxUIGluc3RlYWQgb2YKCSAgR3N0LlBBRF9MSU5LX0NIRUNLX0RFRkFVTFQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgzMDEKCjIwMTItMDctMjkgMTQ6NTc6NDEgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IG1hcmsgZ3N0X2J1ZmZlcl93cmFwcGVkKiBkYXRhIGFzIGFycmF5CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgzMDEKCjIwMTItMDctMjQgMTM6MjY6MDAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkgIGludHJvc3BlY3Rpb246IGZpeCBzb21lIHdhcm5pbmdzIGdlbmVyYXRlZCBieSBnLWlyLXNjYW5uZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgzMDEKCjIwMTItMDctMzAgMjE6NDY6MTggLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogY29udmVydCBnc3RfYnVmZmVyXyogbWFjcm9zIHRvIGZ1bmN0aW9ucwoJICBHT2JqZWN0IEludHJvc3BlY3Rpb24gZG9lcyBub3Qgc3VwcG9ydCBtYWNyb3MuCgkgIFRoaXMgaXMgbmVlZGVkIGZvciBiaW5kaW5ncy4gV2UgY2FuIHN0aWxsIGFkZCBiYWNrCgkgIG1hY3JvcyBvciBpbmxpbmUgZnVuY3Rpb25zIGFnYWluIGxhdGVyIGlmIHdlIHRoaW5rCgkgIGl0J3Mgd29ydGggaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgzMDEKCjIwMTItMDgtMTAgMTM6NTA6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBmaXggcHJpbnRmIGZvcm1hdCBpbiBkZWJ1ZyBtZXNzYWdlCgoyMDEyLTA4LTEwIDEyOjIzOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZml4IG1heF9idWZmZXJzIGhhbmRsaW5nCgkgIFdoZW4gbWF4X2J1ZmZlcnMgPiAwIGFuZCB0aGUgcG9vbCBpcyBlbXB0eSwgYWN0dWFsbHkgdHJ5IHRvIGFsbG9jYXRlIG1vcmUKCSAgYnVmZmVycyB1cCB0byB0aGUgbWF4X2J1ZmZlcnMgbGltaXQuCgkgIFdlIG5lZWQgdG8gYWRkIGEgY291bnRlciBmb3IgdGhpcyB0byBjb3VudCBob3cgbWFueSBidWZmZXJzIHdlIGFsbG9jYXRlZCBhbmQKCSAgY2hlY2sgdGhpcyBhZ2FpbnN0IHRoZSBtYXhfYnVmZmVycyBsaW1pdC4KCSAgUmVvcmdhbmlzZSBhbmQgY2xlYW4gdXAgc29tZSBjb2RlLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTUzCgoyMDEyLTA4LTEwIDA5OjE5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBzaW1wbGlmeSBieSB1c2luZyBnX3NvY2tldF9jb25kaXRpb25fdGltZWRfd2FpdCgpCgkgIE5vIG5lZWQgdG8gdXNlIGEgY3VzdG9tIG1haW4gY29udGV4dCBhbmQgY3VzdG9tIHRpbWVvdXQgc291cmNlcywKCSAganVzdCB1c2UgZ19zb2NrZXRfY29uZGl0aW9uX3RpbWVkX3dhaXQoKSBpbnN0ZWFkLCB3aGljaCB3YXMgYWRkZWQKCSAgZm9yIGV4YWN0bHkgdGhpcyBjYXNlLgoJICBBbHNvIHNlZW1zIHRvIGhlbHAgd2l0aCB0aGUgdW5pdCB0ZXN0IGRlYWRsb2NraW5nIHdpdGggZ2xpYiAyLjMzLngKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTU3NQoKMjAxMi0wOC0wOSAxOToxNToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogZml4IGRvdWJsZSBzdHJpbmcgZXNjYXBpbmcgaW4gZ3N0X29iamVjdF9kZWZhdWx0X2RlZXBfbm90aWZ5KCkKCSAgTWFrZSBvdXRwdXQgb2YgZ3N0LWxhdW5jaCAtdiByZWFkYWJsZSBhZ2Fpbi4KCSAgbGFzdC1tZXNzYWdlID0gImV2ZW50XCBcIFwgXCpcKlwqXCpcKlwqXCpcIFwoZmFrZXNpbmswOnNpbmtcKVwgRVwgXCh0eXBlOlwgdGFnXCBcKDIwNTEwXClcLFwgR3N0VGFnTGlzdC1zdHJlYW1cLFwgdGFnbGlzdFw9XCh0YWdsaXN0XClcInRhZ2xpc3RcXFwsXFxcIHZpZGVvLWNvZGVjXFxcPVxcXChzdHJpbmdcXFwpSDI2NFxcXCxcXFwKCSAgbWluaW11bS1iaXRyYXRlXFxcPVxcXCh1aW50XFxcKTYzNjYxMVxcXCxcXFwgYml0cmF0ZVxcXD1cXFwodWludFxcXCk5ODA3MjlcXFwsXFxcIG1heGltdW0tYml0cmF0ZVxcXD1cXFwodWludFxcXCkxMTE2NzA3XFxcO1wiXDtcKVwgMHgxNWJjNzYwIgoJICB2cy4KCSAgbGFzdC1tZXNzYWdlID0gZXZlbnQgICAqKioqKioqIChmYWtlc2luazA6c2luaykgRSAodHlwZTogdGFnICgyMDUxMCksIEdzdFRhZ0xpc3Qtc3RyZWFtLCB0YWdsaXN0PSh0YWdsaXN0KSJ0YWdsaXN0XCxcIHZpZGVvLWNvZGVjXD1cKHN0cmluZ1wpSDI2NFwsXCBtaW5pbXVtLWJpdHJhdGVcPVwodWludFwpODU2MDM5XCxcIGJpdHJhdGUKCSAgXD1cKHVpbnRcKTEwMTk3NDhcLFwgbWF4aW11bS1iaXRyYXRlXD1cKHVpbnRcKTExMTY3MDdcOyI7KSAweDExMTQ5ZTAKCjIwMTItMDgtMDkgMTY6MTg6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBjaGVjayB3cml0YWJpbGl0eQoJICBmaXggdGhlIHdyaXRhYmlsaXR5IGNoZWNrIGZvciBtaW5pb2JqZWN0cy4gV2Ugc2hvdWxkIGNoZWNrIHRoZSBzaGFyZWQgY291bnRlci4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MTQ1MAoKMjAxMi0wOC0wOCAxNjowODo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmM6CgkgIGFsbG9jYXRvcjogU2V0IHRoZSBhbGlnbm1lbnQgYXQgdGhlIGNvcnJlY3QgcGxhY2UgaW4gR3N0QWxsb2NhdGlvblBhcmFtcwoKMjAxMi0wOC0wOCAxNjoxODoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS45MyA9PT0KCjIwMTItMDgtMDggMTU6MDU6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTEuOTMKCjIwMTItMDgtMDggMTQ6NDk6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICB0ZXN0czogcmVtb3ZlIHNpbGx5IHRlc3RfZmFpbF9hYnN0cmFjdF9uZXcgY2hlY2sKCSAgT3VyIGNoZWNrIHdvdWxkIG1ha2Ugc3VyZSB0aGF0IEdMaWIgc2VnZmF1bHRzIHdoZW4KCSAgc29tZW9uZSB0cmllcyB0byBpbnN0YW50aWF0ZSBhbiBhYnN0cmFjdCB0eXBlLCB3aGljaAoJICBpcyBhbiBleHRyZW1lbHkgdXNlZnVsIHRoaW5nIHRvIGNoZWNrIGZvci4KCSAgSW4gbmV3ZXIgR0xpYnMgdGhpcyBpcyBmaXhlZCBhbmQgd2UgZ2V0IGFuIGFib3J0IHdpdGgKCSAgYSBnX2Vycm9yKCkgbm93IGl0IHNlZW1zLCBzbyBsZXQncyBqdXN0IHJlbW92ZSB0aGlzCgkgIGNoZWNrIGVudGlyZWx5LgoKMjAxMi0wOC0wOCAwOTo1MzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgZXhhbXBsZXM6IGRvbid0IHB1dCB0aGluZ3Mgd2l0aCBzaWRlIGVmZmVjdHMgaW5zaWRlIGdfYXNzZXJ0KCkKCSAgVGhleSB3aWxsIGJlIGRlZmluZWQgYXdheSB0byBOT09QcyBvdGhlcndpc2UgaW4gcmVsZWFzZSBidWlsZHMuCgoyMDEyLTA4LTA4IDA5OjEzOjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgZm9yIHN0cmVhbS1pZCBBUEkgYWRkaXRpb25zCgoyMDEyLTA4LTA4IDAwOjU0OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBmb3IgbmV3IEdzdENoaWxkUHJveHk6OmNoaWxkLWFkZGVkIHNpZ25hbCBjYWxsYmFjayBzaWduYXR1cmUKCSAgRml4ZXMgY3Jhc2ggd2l0aCBnc3QtbGF1bmNoLTEuMCB1cmlkZWNvZGViaW4gdXJpPS4uLiBzdWJ1cmk9Li4uICEgLi4KCjIwMTItMDgtMDcgMTA6NDY6MTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEFkZCBhbGxvdy1ub25lIHRvIHRoZSBmdW5jdGlvbiBhcmd1bWVudCBvZiBnc3RfYnVzX3NldF9zeW5jX2hhbmRsZXIoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgxMTM5CgoyMDEyLTA4LTA2IDE2OjMzOjU3ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBkb2NzOiBNYWtlIHN1cmUgc2Nhbm5lciBnZXRzIHJlcXVpcmVkIGxpYnJhcmllcwoKMjAxMi0wOC0wNiAyMDowODowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBwcmludCB3aGljaCBldmVudCB3ZSByZWNlaXZlZCBiZWZvcmUgc3RyZWFtLXN0YXJ0CgoyMDEyLTA4LTA2IDIwOjA0OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCB0cnkgdG8gYW5zd2VyIFVSSSBxdWVyaWVzIHdpdGggTlVMTCBVUklzCgkgIFNob3VsZCBtYWtlIHVuaXQgdGVzdHMgaW4gLWJhc2UgdGhhdCB1c2UgYXBwc3JjIGEgYml0IGhhcHBpZXIuCgoyMDEyLTA3LTI5IDE0OjI1OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgZXZlbnQ6IFVwZGF0ZSBmb3Igc3RyZWFtLXN0YXJ0IGV2ZW50IEFQSSBjaGFuZ2VzCgoyMDEyLTA3LTI4IDA4OjM3OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGV2ZW50OiBBZGQgbmV3IHN0cmVhbS1pZCBmaWVsZCB0byB0aGUgc3RyZWFtLXN0YXJ0IGV2ZW50CgkgIFRoaXMgaXMgc3VwcG9zZWQgdG8gYWxsb3cgdW5pcXVlbHkgaWRlbnRpZnlpbmcgYSBzaW5nbGUgc3RyZWFtLgoKMjAxMi0wNy0yNyAxNzo0MTo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIHRoZSBmaXJzdCBjcmVhdGVkIHBhZCBieSBkZWZhdWx0CgkgIFRoaXMgZ3VhcmFudGVlcyBhIGJpdCBtb3JlIGNvbnNpc3RlbmN5IGluIHdoaWNoIGlucHV0IHN0cmVhbSB3aWxsCgkgIGJlIHNlbGVjdGVkIGJ5IGRlZmF1bHQuIEl0IHdvdWxkIHByZXZpb3VzbHkgYmUgdGhlIGZpcnN0IHBhZCBvbiB3aGljaAoJICBhbiBldmVudC9idWZmZXIvcXVlcnkgd2FzIHJlY2VpdmVkIC4uLiB3aGljaCB3YXMgcmFjeSBhbmQgbm9uLXByZWRpY3RhYmxlLgoKMjAxMi0wNy0yNyAxNzozODozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBTcGVjaWZ5IHRoZSBvcmRlciBvZiBwYWQgaXRlcmF0b3JzCgkgIFRoZSBvcmRlciBvZiByZXR1cm5lZCBwYWRzIHdhc24ndCBzcGVjaWZpZWQgYmVmb3JlLCBzbyBsZXQncyBzcGVjaWZ5CgkgIGl0IGFuZCB1c2UgYW4gb3JkZXIgd2hpY2ggbWlnaHQgcHJvdmUgdGhlIG1vc3QgdXNlZnVsIDogdGhlIG9yZGVyIGluCgkgIHdoaWNoIHBhZHMgd2VyZSBhZGRlZCB0byB0aGUgZWxlbWVudC4KCSAgSWYgc29tZW9uZSBjaGFuZ2VzIHRoZSBvcmRlciwgbWFrZSBzdXJlIHVzZXJzIG9mIHRob3NlIGl0ZXJhdG9ycyBmcm9tCgkgIG5vdyBvbiBkb24ndCByZWx5IG9uIHRoYXQgb3JkZXIgIQoKMjAxMi0wOC0wNSAxNzoxNjoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBhZGQgdGNhc2Vfc2tpcF9icm9rZW5fdGVzdCgpIGRlZmluZQoJICBTa2lwcyBicm9rZW4gdGVzdHMgYnV0IGxvZ3MgYW4gRVJST1ItbGV2ZWwgbWVzc2FnZSB0bwoJICBkcmF3IGF0dGVudGlvbiB0byB0aGF0IGZhY3QuCgoyMDEyLTA4LTA1IDE3OjEyOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICB0ZXN0czogdXBkYXRlIC5naXRpZ25vcmUgZm9yIHF1ZXVlYXJyYXkgdGVzdCBiaW5hcnkKCjIwMTItMDgtMDUgMTc6MTE6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIHRlc3RzOiBmaXggc3B1cmlvdXMgbmV0Y2xpZW50Y2xvY2sgdGVzdCBmYWlsdXJlcwoJICBHaXZlIGNsb2NrcyBhIGJpdCBtb3JlIHRpbWUgdG8gc3luY2hyb25pc2UuCgoyMDEyLTA4LTA1IDE2OjU5OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZSBnZW5lcmF0ZWQgZmlsZXMKCjIwMTItMDgtMDUgMTY6NDE6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IHVzZSBnZW5lcmljIG1hcnNoYWxsZXIgZm9yICJibG9jayIgYWN0aW9uIHNpZ25hbAoKMjAxMi0wOC0wNSAxNjozNzoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTRjY2Y0YyB0byA2NjhhY2VlCgoyMDEyLTA4LTA0IDEzOjM3OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlciwgZGVmYXVsdG1lbTogYWRkIG9wdGlvbiB0byBwb2lzb24gbWVtb3J5IGJlZm9yZSBmcmVlaW5nIGl0CgkgIE1pZ2h0IGJlIHVzZWZ1bCB0byB0cmFjayBkb3duIGNlcnRhaW4gYnVncy4KCjIwMTItMDgtMDMgMjM6NTQ6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVmL3VucmVmIHRhZ2xpc3Qgc2NvcGUgZW51bSBpbiBnc3RfaW5pdCgpCgkgIEZpeGVzIG1ha2UgY2hlY2sgYW5kIGRpc3RjaGVjawoKMjAxMi0wOC0wMyAwMDowNTo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgcGx1Z2luOiB3YXJuIGlmIHBsdWdpbiBuYW1lIHN0YXJ0cyB3aXRoIGEgIgoJICBUaGlzIGNhbiBlYXNpbHkgaGFwcGVuIGFzIHNpZGUtZWZmZWN0IG9mIHRoZSBwbHVnaW4gbmFtZQoJICBpbiBHU1RfUExVR0lOX0RFRklORSBubyBsb25nZXIgYmVpbmcgYSBzdHJpbmcgaW4gMC4xMSwgYnV0CgkgIGEgbmFtZSB0byBHX1NUUklOR0lGWS4KCjIwMTItMDgtMDIgMTM6MTk6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmctdG8tMC4xMSBkb2N1bWVudCB3aXRoIGEgInNvZnQiIEFQSSBjaGFuZ2VzIGNoZWNrbGlzdAoJICBQb2ludCBvdXQgc29tZSBBUEkgY2hhbmdlcyB0aGF0IHRoZSBjb21waWxlciB3b24ndAoJICBiZSBhYmxlIHRvIHdhcm4gYWJvdXQuCgoyMDEyLTA4LTAyIDExOjMzOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGZpeCBwcmludGluZyBvZiBwYXJ0aWFsIGRhdGVzIGluIGdzdC1sYXVuY2gKCjIwMTItMDgtMDIgMTE6MTU6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBSZXZlcnQgInRvb2xzOiBwcmludCBUT0Mgc2NvcGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZWU2YWI3YzkzNjM4YTY1MTlhY2I5NzY2OTlhNmFkMTQ5ZDUyMGE5NS4KCSAgVGhlIGFwcGxpY2F0aW9uIHdpbGwgcHJvYmFibHkgb25seSBldmVyIHJlY2VpdmUgZ2xvYmFsIFRPQ3MsCgkgIHNvIGRvbid0IHJlYWxseSBuZWVkIHRoaXMuCgoyMDEyLTA4LTAxIDE3OjQ5OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IHRhZyBsaXN0IHNjb3BlIHN5bWJvbHMKCjIwMTItMDgtMDEgMTE6NTg6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogc2VuZCBzZWdtZW50X2RvbmUgZXZlbnQgaW4gYWRkaXRpb24gdG8gc2VnbWVudF9kb25lIG1lc3NhZ2UKCjIwMTItMDctMzEgMTc6MjU6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBiYXNlc3JjOiBBZGQgZGVmYXVsdCBoYW5kbGVyIGZvciBVUkkgcXVlcnkgaW4gR3N0VVJJSGFuZGxlciBzdWJjbGFzc2VzCgoyMDEyLTA3LTI4IDE3OjMzOjUyICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJICBjaGVjazogdW5icmVhayBmYWlsICNkZWZpbmUKCSAgVGhlIGZhaWwoKSBkZWZpbml0aW9uIHdhcyBjaGFuZ2VkIHRvIG5vdCBmYWlsIHdpdGggbm9uLUdDQyBjb21waWxlcnMsCgkgIHVuZm9ydHVuYXRlbHkgdGhlIGNoYW5nZSB3YXMgaW5jb3JyZWN0IGFuZCBhcHBlbmRlZCB0aGUgZmlyc3QgYXJndW1lbnQKCSAgb2YgZmFpbCB0byB0aGUgZXhwcmVzc2lvbiBzdHJpbmcgaW5zdGVhZCBvZiBtYWtpbmcgaXQgdGhlIG1lc3NhZ2UuCgkgIFRoaXMgY2hhbmdlIGRvZXMgbWVhbiB0aGF0IGZhaWwoKSBub3cgcmVxdWlyZXMgYSBtZXNzYWdlIHRvIGJlIHBhc3NlZAoJICBhbG9uZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDc1NQoKMjAxMi0wNy0yOSAyMzozNzoxOSArMDIwMCAgSmVucyBHZW9yZyA8bWFpbEBqZW5zZ2Uub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IFVwZGF0ZSBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwODA1CgoyMDEyLTA3LTI5IDIzOjIwOjA3ICswMjAwICBKZW5zIEdlb3JnIDxtYWlsQGplbnNnZS5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFVwZGF0ZSBhbm5vdGF0aW9uIGZvciBnZXRfY29tcGF0aWJsZV9wYWQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY4MDgwNAoKMjAxMi0wNy0yOCAyMToyMzoyNCAtMDQwMCAgVGhpYmF1bHQgU2F1bmllciA8dGhpYmF1bHQuc2F1bmllckBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEZpeCB3cm9uZyAnYXJyYXkgemVyby10ZXJtaW5hdGVkPTEnIGFubm90YXRpb24gZm9yIHN0cmluZ3MKCjIwMTItMDctMjggMTE6MDI6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRvYy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBUT0MgZGVzaWduIGRvY3MgYSBsaXR0bGUKCjIwMTItMDctMjggMDk6NDE6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZXZlbnQ6IG1ha2UgVE9DIGV2ZW50IG11bHRpLXN0aWNreQoJICBXZSBuZWVkIHRvIHNlbmQgdHdvIGtpbmRzIG9mIFRPQ3MgZG93bnN0cmVhbSBhcyBldmVudHMsCgkgIGFuZCBuZWVkIGJvdGggdG8gc3RpY2sgdG8gdGhlIHBhZHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg3NDIKCjIwMTItMDctMjggMDg6MzA6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcHJpbnQgVE9DIHNjb3BlCgoyMDEyLTA3LTI3IDIzOjU2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdG9jOiBhZGQgR3N0VG9jU2NvcGUgYW5kIHJlcXVpcmUgaXQgaW4gdGhlIGNvbnN0cnVjdG9yCgkgIFRoaXMgaXMgYmVjYXVzZSB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gc2lnbmFsIGRpZmZlcmVudCBUT0NzCgkgIHRvIGRvd25zdHJlYW0gZWxlbWVudHMgc3VjaCBhcyBtdXhlcnMgYW5kIHRoZSBhcHBsaWNhdGlvbiwKCSAgYW5kIGJlY2F1c2Ugd2UgbmVlZCB0byBzZW5kIGJvdGggdHlwZXMgYXMgZXZlbnRzIChiZWNhdXNlCgkgIHRoZSBzaW5rIHNob3VsZCBwb3N0IHRoZSBUT0MgbWVzc2FnZXMgZm9yIHRoZSBhcHAgaW4gdGhlCgkgIGVuZCwganVzdCBsaWtlIHRhZyBtZXNzYWdlcyBhcmUgbm93IHBvc3RlZCBieSB0aGUgc2lua3MpLAoJICBhbmQgaGVuY2UgbmVlZCB0byBtYWtlIFRPQyBldmVudHMgbXVsdGktc3RpY2t5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4NzQyCgoyMDEyLTA3LTI3IDIzOjU0OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvY3JlYXRlLXVuaW5zdGFsbGVkLXNldHVwLnNoOgoJICBzY3JpcHRzOiBjcmVhdGUtdW5pbnN0YWxsZWQtc2V0dXAuc2g6IGNoZWNrIGZvciBiYXNpYyBidWlsZCB0b29scyBhbmQgZGVwcwoJICAuLiBiZWZvcmUgY2hlY2tpbmcgb3V0IHN0dWZmLgoKMjAxMi0wNy0yNyAyMzo1MjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGFnOiBBZGQgYSBzY29wZSB0byB0YWdsaXN0cwoJICBUaGlzIHNwZWNpZmllcyBpZiBhIGdpdmVuIHRhZ2xpc3QgYXBwbGllcyB0byB0aGUgY29tcGxldGUKCSAgbWVkaXVtIG9yIG9ubHkgdGhpcyBzcGVjaWZpYyBzdHJlYW0uIEJ5IGRlZmF1bHQgYSB0YWdsaXN0CgkgIGhhcyBhIHN0cmVhbSBzY29wZS4KCSAgRml4ZXMgYnVnICM2Nzc2MTkuCgoyMDEyLTA3LTI3IDE3OjA5OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogYWRkIG9mZnNldCBmaWVsZAoJICBBZGQgYW4gb2Zmc2V0IGZpZWxkIHRoYXQgaXMgdXNlZCB0byB0cmFjayBhdCB3aGF0IHBvc2l0aW9uIHRoZSBzZWdtZW50IHdhcwoJICB1cGRhdGVkLiBUaGlzIGlzIHVzZWQgdG8gc2V0IHRoZSBydW5uaW5nIHRpbWUgdG8gMCB3aGVuIHdlIGRvIGEgZmx1c2hpbmcKCSAgc2VlayB0aGF0IGRvZXNuJ3QgdXBkYXRlIHRoZSBwb3NpdGlvbi4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02ODAzMDYKCjIwMTItMDctMjcgMTU6MTk6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBVcGRhdGUgZm9yIG5ldyBzZWVraW5nIHZhcmlhYmxlIG5hbWUKCSAgV2hlbiBzZWVraW5nLCB0aGUgc3RhcnQgdmFsdWUgYW5kIHR5cGUgYXJlIG5vdyBjYWxsZWQgc3RhcnQgYW5kIHN0YXJ0X3R5cGUuCgoyMDEyLTA3LTI3IDE0OjUzOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogc21hbGwgY2xlYW51cAoJICBNb3ZlIHRoZSBjb2RlIHRvIHVwZGF0ZSB0aGUgc2VnbWVudCBhdCB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbi4KCjIwMTItMDctMjcgMTI6MDU6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFVwZGF0ZSBkb2NzIGFuZCAuZGVmIGZpbGUgZm9yIHRhZ2xpc3QgQVBJIGNoYW5nZQoKMjAxMi0wNy0yNyAxMzowMjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHJlbW92ZSByZWR1bmRhbnQgY2hlY2tzCgkgIFdlIGRvbid0IG5lZWQgdG8gY2hlY2sgdGhlIHNlZ21lbnQgZm9ybWF0IGFueW1vcmUgYmVjYXVzZSB3ZSBhc3NlcnRlZCBvbiB0aGVtCgkgIGJlaW5nIGVxdWFsIGJlZm9yZS4KCjIwMTItMDctMjcgMTI6MjQ6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogaW1wcm92ZSBzZWdtZW50IHRlc3RzCgoyMDEyLTA3LTI3IDEyOjEyOjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS1tZW1vcnkuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5jOgoJICBhbGxvY2F0b3I6IHJlbW92ZSB1c2VyX2RhdGEgZnJvbSBhbGxvYyB2bWV0aG9kCgkgIFJlbW92ZSB0aGUgdXNlcl9kYXRhIGZyb20gdGhlIGFsbG9jIHZtZXRob2QuIFN1YmNsYXNzZXMgdGhhdCBpbXBsZW1lbnQgYSBuZXcKCSAgYWxsb2MgZnVuY3Rpb24gY2FuIGFsc28gaW1wbGVtZW50IHRoZWlyIG93biB2bWV0aG9kIHRvIHBhc3MgZXh0cmEgYXJndW1lbnRzLiBXZQoJICBjYW4gdGhlbiBhbHNvIHJlcXVpcmUgdGhhdCBjdXN0b20gYWxsb2NhdG9ycyBpbXBsZW1lbnQgYW4gYWxsb2MgZnVuY3Rpb24gc28gdGhhdAoJICBnc3RfYWxsb2NhdG9yX2FsbG9jKCkgYWx3YXlzIHdvcmtzLgoKMjAxMi0wNy0yNyAxMDo0MTo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiByZW1vdmUgc2VnbWVudCBhY2N1bXVsYXRpb24gY2hlY2tzCgkgIFJlbW92ZSB0aGUgY2hlY2tzIGJlY2F1c2UgdGhlcmUgaXMgbm8gbW9yZSBzZWdtZW50IGFjY3VtdWxhdGlvbi4KCjIwMTItMDctMjYgMTY6NDQ6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBtYWtlIEdTVF9UQUdfQVBQTElDQVRJT05fREFUQSBhbHNvIGEgR3N0U2FtcGxlCgkgIFRoYXQgd2F5IGFkZGl0aW9uYWwgbWV0YS1kYXRhIGNhbiBiZSBwYXNzZWQgYWxvbmcgd2l0aCBpdC4KCjIwMTItMDctMjYgMTU6NTE6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHRhZ2xpc3Q6IGdzdF90YWdfbGlzdF9nZXRfYnVmZmVyKigpID0+IGdzdF90YWdfbGlzdF9nZXRfc2FtcGxlKigpCgkgIEltYWdlIHRhZ3MgYW5kIG90aGVyIHRhZ3MgYXJlIG5vdyBvZiBHc3RTYW1wbGUgdHlwZS4KCjIwMTItMDctMjYgMTU6MjY6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IHByaW50IGltYWdlIHRhZ3MgYW5kIG90aGVyIEdzdFNhbXBsZSB0YWdzIHByb3Blcmx5CgkgIFRoZXNlIHRhZ3MgYXJlIG5vdyBvZiB0eXBlIEdzdFNhbXBsZSBub3QgR3N0QnVmZmVyLgoKMjAxMi0wNy0yNCAyMTozODozNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzOiByZW1vdmUgdW5pbXBsZW1lbnRlZCBhcGkKCSAgV2UgY2FuIGFsd2F5cyBhZGQgdGhpcyBiYWNrIGlmIHdlIG5lZWQgaXQuIEZpeGVzIHBhcnRzIG9mICM2NzA4NTIuCgoyMDEyLTA3LTI0IDEzOjQ5OjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxzbyBhY2NvdW50IGZvciBmcmFtZSBzaXplIHdoZW4gbWVyZWx5IHNjYW5uaW5nIGZvciBmcmFtZQoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNDk1CgoyMDEyLTA3LTI0IDEzOjQ4OjM5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIG9ic29sZXRlIGZ1bmN0aW9uIHBhcmFtZXRlcgoKMjAxMi0wNy0yNCAxMjozODoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiByZXF1aXJlIGJ5dGVzIGJlZm9yZSB0eXBlZmluZGluZwoJICBSZXF1aXJlIHRoYXQgd2UgaGF2ZSBzb21lIGJ5dGVzIGluIHRoZSBhZGFwdGVyIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIHR5cGVmaW5kLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwNDc5CgoyMDEyLTA3LTIzIDE4OjQ5OjEzICswMjAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDx1cmFldXNAbGludXhyaXNpbi5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZSB3aXRoIGxhdGVzdCBjaGFuZ2VzCgoyMDEyLTA3LTIzIDE2OjI3OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSAgYnVmZmVybGlzdDogcGFzcyBpbmRleCBhcyBnaW50IHRvIF9pbnNlcnQKCSAgTWFrZSB0aGUgaWR4IGFyZ3VtZW50IG9mIF9pbnNlcnQoKSBhIGdpbnQgYmVjYXVzZSB3ZSBhbGxvdyAtMSBhcyBhIHZhbHVlLgoJICBJbXByb3ZlIGFubm90YXRpb24uCgoyMDEyLTA3LTIzIDEzOjQwOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBwbHVnaW5zOiBwcmludCBmbGFncyBiZXR0ZXIKCSAgcHJpbnQgdGhlIGJ1ZmZlciBmbGFncyBhcyBhIGhleCBudW1iZXIgc28gdGhhdCBpdCBiZWNvbWVzIGVhc2llciB0byBzZWUgd2hhdAoJICBmbGFncyBhcmUgc2V0LgoKMjAxMi0wNy0xOCAxNzowMzo0NSArMDIwMCAgU2ViYXN0aWFuIFJhc211c3NlbiA8c2Vicm5AYXhpcy5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBJbXByb3ZlIHdhcm5pbmcgbWVzc2FnZSB3aGVuIHJlLWFkZGluZyBmZCB0byBmZHNldAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwMTgxCgoyMDEyLTA3LTIzIDA4OjQ0OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOThlMzg2ZiB0byA5NGNjZjRjCgoyMDEyLTA3LTIwIDAwOjQ5OjI4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGFkZCBHc3RUYWdMaXN0IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uCgkgIFNvIHdlIGNhbiBzZXJpYWxpc2UvZGVzZXJpYWxpc2UgdGFnbGlzdHMgaW5zaWRlIHN0cnVjdHVyZXMsCgkgIHdoaWNoIHVzZWQgdG8gd29yayBhdXRvbWFnaWNhbGx5IGJlZm9yZSBiZWNhdXNlIEdzdFRhZ0xpc3QKCSAgd2FzIGp1c3QgYSB0eXBlZGVmIHRvIEdzdFN0cnVjdHVyZSAoc2FtZSBmb3IgdGhlIEdUeXBlKSwKCSAgYnV0IG5vdyB0aGF0IGl0J3MgYSBzZXBhcmF0ZSBHVHlwZSB3ZSBuZWVkIHRvIHJlZ2lzdGVyCgkgIGV4cGxpY2l0IGZ1bmN0aW9ucyBmb3IgdGhpcy4KCSAgSGVscHMgd2l0aCBHRFAgc3R1ZmYgaW4gcGlwZWxpbmVzL3N0cmVhbWhlYWRlciB0ZXN0cy4KCjIwMTItMDctMjAgMDk6Mzg6NDcgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBoaWxuQGlnYWxpYS5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgLnBvIGZpbGVzCgoyMDEyLTA3LTE5IDEzOjUxOjIzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgdGVzdHM6IGdzdGJ1ZmZlcjogYWRkIHRlc3RzIGZvciBzb21lIG11bGl0cGxlIG1hcCBjb21iaW5hdGlvbnMKCjIwMTItMDctMTkgMTM6MzU6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBmaXggc2hhcmVkbmVzcyBjaGVjawoKMjAxMi0wNy0xOSAxMzoyMDoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IHJlZnVzZSB3cml0ZSB3aGVuIG9iamVjdCBpcyBzaGFyZWQKCSAgSW4gYWxsIGNhc2VzLCByZWZ1c2UgdG8gd3JpdGUgYW4gb2JqZWN0IHdoZW4gaXQgaXMgc2hhcmVkIGJ5IG1vcmUgdGhhbiBvbmUKCSAgb2JqZWN0IChhbHNvIHdoZW4gdGhlIG9iamVjdCB3YXMgbG9ja2VkIGJlZm9yZSkuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTQ1CgoyMDEyLTA3LTE4IDE1OjIxOjMzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgdGVzdHM6IGdzdGJ1ZmZlcjogZXh0ZW5kIGJ1ZmZlciBjb3B5IHRlc3QKCjIwMTItMDctMTkgMTI6NDI6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNldCBidWZmZXJpbmctbGVmdCB0byAwIG9uIDEwMCUgYnVmZmVyaW5nCgkgIFNldCB0aGUgYnVmZmVyaW5nLWxlZnQgZmllbGQgaW4gdGhlIHF1ZXJ5IHRvIDAgd2hlbiB3ZSBhcmUgY29tcGxldGVseSBidWZmZXJlZC4KCSAgSW1wcm92ZSB0aGUgZGVidWcuCgoyMDEyLTA3LTE5IDEyOjE0OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggYnVmZmVyaW5nIHF1ZXJ5CgkgIEZpeCB0aGUgYnVmZmVyaW5nIHF1ZXJ5LCBmaWxsIGluIHRoZSByaWdodCBidWZmZXJpbmctbGVmdCBhbmQgZXN0aW1hdGVkLXRvdGFsCgkgIHZhbHVlcy4KCjIwMTItMDctMTkgMTA6NTQ6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCB0aGUgYnVmZmVyaW5nLWxlZnQgaW4gdGhlIGJ1ZmZlcmluZyBtZXNzYWdlCgkgIFRoZSBidWZmZXJpbmctbGVmdCBmaWVsZCBpbiB0aGUgYnVmZmVyaW5nIG1lc3NhZ2Ugc2hvdWxkIGNvbnRhaW4gYSB0aW1lIGVzdGltYXRlCgkgIGluIG1pbGxpc2Vjb25kcyBhYm91dCBmb3IgbG9uZyB0aGUgYnVmZmVyaW5nIGlzIGdvaW5nIHRvIHRha2UuIFdlIGNhbiBjYWxjdWxhdGUKCSAgdGhpcyB2YWx1ZSB3aGVuIHdlIGRvIHJhdGVfZXN0aW1hdGVzLgoKMjAxMi0wNy0xOSAxMDoxNDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGltcHJvdmUgYnVmZmVyaW5nIG1lc3NhZ2UgZGVmYXVsdHMKCSAgUmVtb3ZlIHRoZSBlc3RpbWF0ZWQtdG90YWwgZmllbGQsIHRoaXMgc2hvdWxkIG5vdCBiZSBwYXJ0IG9mIHRoZSBidWZmZXJpbmcKCSAgbWVzc2FnZS4KCSAgU2V0IHRoZSBkZWZhdWx0IHZhbHVlIG9mIGJ1ZmZlcmluZy1sZWZ0IHRvIDAgd2hlbiB0aGUgcGVyY2VudCBpcyAxMDAuCgoyMDEyLTA3LTE4IDE3OjQ0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBkZWJ1ZyBsaW5lCgkgIFVzZSBRVUVSWV9UWVBFIG9uIHF1ZXJ5IHR5cGVzLgoKMjAxMi0wNy0xOCAxNzozNTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdob3N0cGFkOiByZW1vdmUgY3VzdG9tIGZ1bmN0aW9uCgkgIFJlbW92ZSBjdXN0b20gcGFkIGZ1bmN0aW9ucywgdGhlIGRlZmF1bHQgb25lcyBhcmUgYmV0dGVyLgoKMjAxMi0wNy0xOCAxNzozMDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBQUk9YWV9TQ0hFRFVMSU5HIGZsYWcKCSAgQWRkIGEgZmxhZyB0aGF0IG1ha2VzIHRoZSBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgZm9yd2FyZCB0aGUgc2NoZWR1bGluZyBxdWVyeS4KCjIwMTItMDctMTggMTc6MzA6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBkb2NzCgoyMDEyLTA3LTE4IDE2OjIwOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBpbXByb3ZlIHF1ZXJ5IGNhcHMgZnVuY3Rpb24KCSAgSW4gdGhlIHByb3h5X3F1ZXJ5X2NhcHMgZnVuY3Rpb24sIGFsc28gZmlsdGVyIGFnYWluc3QgdGhlIGZpbHRlciBpbiB0aGUgcXVlcnkuCgkgIFdlIGRvbid0IG5lZWQgdG8gZmlsdGVyIGFnYWluc3QgdGhlIGZpbHRlciBpbiB0aGUgcXVlcnkgYW55bW9yZSBpbiB0aGUgZGVmYXVsdAoJICBjYXBzIHF1ZXJ5IGZ1bmN0aW9uIGJlY2F1c2Ugd2UgYWxyZWFkeSBkaWQgdGhpcyBpbiB0aGUgcHJveHlfcXVlcnlfY2Fwcy4KCjIwMTItMDctMTggMTE6MTc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSAtMSBzdGVwIGFtb3VudHMKCSAgRGVmaW5lIGEgMCBhbmQgLTEgc3RlcCBhbW91bnQuIFRoZXkgdXNlZCB0byBhbG1vc3QgZG8gdGhlIHNhbWUgdGhpbmcgYnV0IG5vdywgMAoJICBjYW5jZWxzL3N0b3BzIHRoZSBjdXJyZW50IHN0ZXAgYW5kIC0xIGtlZXBzIG9uIHN0ZXBwaW5nIHVudGlsIHRoZSBlbmQgb2YgdGhlCgkgIHNlZ21lbnQuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5Mzc4CgoyMDEyLTA3LTE4IDEyOjMwOjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZml4IGdzdF9xdWVyeV9wYXJzZV9udGhfYWxsb2NhdGlvbl9wb29sKCkgYW5ub3RhdGlvbgoJICBJdCByZXR1cm5zIGEgcmVmIHRvIHRoZSBwb29sLgoKMjAxMi0wNy0xNyAxNTo1Mjo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2hlY2s6IEF2b2lkIGRlYWRsb2NrCgkgIFF1ZXJpZXMgd2lsbCBiZSBzZW50IHdoZW4gcGlwZWxpbmUgZ29lcyBkb3duIHRvIE5VTEwsIHdoaWNoIHdvdWxkCgkgIHJlc3VsdCBpbiB0aGUgcHJvYmUgYmVpbmcgY2FsbGVkIC4uLiBidXQgY2FuJ3QgdGFrZSB0aGUgbG9jay4KCjIwMTItMDctMTcgMTU6NTA6MDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdGdob3N0cGFkOiBGb3J3YXJkIHF1ZXJpZXMgaW4gYm90aCBkaXJlY3Rpb24KCSAgVXNlIHRoZSBwZWVyIG9mIHRoZSBpbnRlcm5hbCBwYWQgdG8gZm9yd2FyZCB0aGVtLCBpbnN0ZWFkIG9mIHRoZQoJICB0YXJnZXQgd2hpY2ggb25seSBleGlzdHMgZm9yIHRoZSBnaG9zdHBhZCAoYW5kIG5vdCB0aGUgaW50ZXJuYWwKCSAgcHJveHkgcGFkKS4KCjIwMTItMDctMTcgMTE6MjA6NDMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogTW9yZSBlbnRyaWVzCgoyMDEyLTA3LTE4IDA5OjE1OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogYW5zd2VyIFNDSEVEVUxJTkcgcXVlcnkKCSAgSW5zdGVhZCBvZiBsZXR0aW5nIHRoZSBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIgZmFpbC4KCjIwMTItMDctMTcgMTk6MjA6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBoYW5kbGUgQ0FQUyBldmVudCBhbmQgZHJvcCBpdCBpZiBvcGVyYXRpbmcgaW4gcmluZyBidWZmZXIgbW9kZQoJICBGaXhlcyAiVW5leHBlY3RlZCBldmVudCBvZiBraW5kIGNhcHMgY2FuJ3QgYmUgYWRkZWQgaW4gdGVtcCBmaWxlIgoJICB3YXJuaW5nIHdoZW4gZG9pbmcgZG93bmxvYWQgYnVmZmVyaW5nLgoKMjAxMi0wNy0xNyAxMjo1Nzo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG1ha2UgX2ZvcmVhY2hfbWV0YSBtb3JlIHBvd2VyZnVsCgkgIE1ha2UgX2ZvcmVhY2hfbWV0YSByZXR1cm4gRkFMU0Ugd2hlbiB0aGUgZm9yZWFjaCBmdW5jdGlvbiByZXR1cm5lZCBGQUxTRS4KCjIwMTItMDctMTcgMTI6NTI6NTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiBpbXByb3ZlIGZvcmVhY2ggZnVuY3Rpb24KCSAgTWFrZSB0aGUgZm9yZWFjaCBmdW5jdGlvbiByZXR1cm4gRkFMU0Ugd2hlbiBvbmUgb2YgdGhlIGZ1bmN0aW9uIGNhbGxzIHJldHVybmVkCgkgIEZBTFNFLgoKMjAxMi0wNy0xNyAxMjo1MDoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMi0wNy0xNyAxMjo0MDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBkZWJ1ZyBzdHJpbmcKCjIwMTItMDctMTcgMDk6NTc6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIHBhcnNlOiBmaXggc29tZSBkZWJ1ZwoKMjAxMi0wNy0xNyAwOTo0ODowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBwYXJzZTogb25seSBlc2NhcGUgc3BhY2VzIG91dHNpZGUgb2YgcXVvdGVzCgkgIFdoZW4gd2UgZXNjYXBlIHNwYWNlcyB0byBrZWVwIGFyZ3VtZW50cyB0b2dldGhlciwgb25seSBlc2NhcGUgd2hlbiB0aGUgc3BhY2UgaXMKCSAgb3V0c2lkZSBhICIiIHN0cmluZy4KCSAgU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzMzMTkKCjIwMTItMDctMTcgMDk6NDQ6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgUmV2ZXJ0ICJwYXJzZTogZXNjYXBlIFwgd2l0aCBhIFwgYXMgd2VsbCwgc28gdGhhdCB3ZSBkb24ndCBsb3NlIHRoZSBcIHdoZW4gdW5lc2NhcGluZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkZDlmZWRiNDFmMWFkYThlMWY4YmQ1MzQ2ZmNjZDNkMDY4ZDU0M2NiLgoJICBUaGlzIGlzIG5vdCB0aGUgcmlnaHQgcGxhY2UgdG8gZXNjYXBlIHRoZSBcLCB3ZSBzaG91bGQgb25seSBlc2NhcGUgdGhlIHNwYWNlcyB0bwoJICBrZWVwIHRoZSBhcmd1bWVudHMgdG9nZXRoZXIgdGhhdCB3ZXJlIHByb3ZpZGVkIGFzIG9uZSBncm91cCAod2l0aCBxdW90ZXMgb24gdGhlCgkgIHNoZWxsKS4KCjIwMTItMDctMTAgMTI6Mjc6MTEgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBzZXQgcmV0dXJuIHR5cGUgb2YgZ3N0X3BhcnNlX2Jpbl8qIHRvIEdzdEJpbiBmb3IgaW50cm9zcGVjdGlvbgoKMjAxMi0wNi0zMCAxMjozMzo0MyAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJICBuZXR0aW1lcGFja2V0OiBhZGQgbWlzc2luZyBhcnJheSBhbm5vdGF0aW9uIHRvIGdzdF9uZXRfdGltZV9wYWNrZXRfbmV3CgoyMDEyLTA2LTI5IDE3OjMzOjQ5IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIG1pc3NpbmcgYXJyYXkgYW5ub3RhdGlvbiB0byBnc3RfZm9ybWF0c19jb250YWlucwoKMjAxMi0wNy0xNiAyMDo1NDoxNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IGFnZ3JlZ2F0ZSBkdXJhdGlvbnMgbGlrZSBpbiBhZGRlcgoJICBTdG9wIHF1ZXJ5aW5nIHRoZSBkdXJhdGlvbiBvbmNlIGFuIGVsZW1lbnQgcmV0dXJuIHVua25vd24gYW5kIHJldHVybiB1bmtub3duCgkgIGFzIGEgZmluYWwgcmVzdWx0LiBUaGlzIGF2b2lkIGV2ZW50dWFsbHkgY3V0dGluZyBvZmYgYSBzdHJlYW0gdG9vIGVhcmx5LgoJICBBZGQgYSB0ZXN0cyB0byBkb2N1ZW1lbnQgdGhlIGJlaGF2aW9yLgoKMjAxMi0wNy0xNiAwMDoyNDo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZToganVzdCByZXR1cm4gTlVMTCBvbiBzaG9ydCBpbnB1dCBzdHJpbmdzIGluc3RlYWQgb2YgYSB3YXJuaW5nCgkgIFdlIHdhbnQgdG8gYmUgYWJsZSB0byB1c2UgdGhpcyBmdW5jdGlvbiBvbiByYW5kb20gbm9uLU5VTEwgaW5wdXQsCgkgIHRoaXMgc2hvdWxkIG5vdCByZXN1bHQgaW4gYSBydW50aW1lLWNyaXRpY2FsLgoKMjAxMi0wNy0xNSAxMjo1OTo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHNlZWthYmlsaXR5IHF1ZXJ5aW5nIHdpdGggZm9ybWF0cyB3aXRoIGhlYWRlcnMgbGlrZSBGTEFDCgkgIE1vdmUgY29kZSB0aGF0IGNoZWNrcyBmb3IgdXBzdHJlYW0gc2Vla2FiaWxpdHkgYW5kIGFsbCB0aGF0IHRvCgkgIHRoZSByaWdodCBwbGFjZSwgb3RoZXJ3aXNlIGl0IHdpbGwgbmV2ZXIgYmUgZG9uZSBmb3IgZm9ybWF0cwoJICB0aGF0IGhhdmUgaGVhZGVycyBzdWNoIGFzIEZMQUMsIGFzIGhhbmRsZV9hbmRfcHVzaCBmcmFtZSB3aWxsCgkgIGJlIGNhbGxlZCB0aGUgZmlyc3QgdGltZSBvbmx5IGFmdGVyIGhlYWRlcnMgaGF2ZSBiZWVuIHByb2Nlc3NlZAoJICAoYW5kIGZyYW1lY291bnQgaXMgPiAwKS4gVGhpcyB0aGVuIG1ha2VzIHVzIHJlcG9ydCB0aGF0IHdlCgkgIGNhbid0IHNlZWssIHdoaWNoIGRpc2FibGVzIHRoZSBzZWVrIGJhciBpbiB0b3RlbS4KCjIwMTItMDctMTQgMjA6MzM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJICBwbHVnaW5zOiBlbWJlZCBHc3RBdWV1ZUFycmF5IGluIGRhdGFxdWV1ZSBzdHJ1Y3QgYXMgd2VsbAoKMjAxMi0wNy0xNCAyMDoyODo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgcGx1Z2luczogZG9uJ3QgdXNlIG9uZS10aW1lIGFycmF5IGluIHBsdWdpbl9pbml0CgoyMDEyLTA3LTE0IDIwOjI2OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBlbWJlZCBHc3RRdWV1ZUFycmF5IHN0cnVjdHVyZQoKMjAxMi0wNy0xNCAyMDowMDozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgcGx1Z2luczogc3ByaW5rbGUgc29tZSBtb3JlIEdfR05VQ19JTlRFUk5BTAoKMjAxMi0wNy0xNCAxOTozODozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlYXJyYXkuaDoKCSAgcGx1Z2luczogYWRkIGluaXQvY2xlYXIgZnVuY3Rpb25zIHRvIEdzdFF1ZXVlQXJyYXkKCjIwMTItMDctMTQgMTk6MjQ6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHF1ZXVlYXJyYXkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZWFycmF5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWVhcnJheS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL3F1ZXVlYXJyYXkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlOiBtYWtlIEdzdFF1ZXVlQXJyYXkgcHJpdmF0ZSB0byBjb3JlZWxlbWVudHMgZm9yIG5vdwoJICBLZWVwIGl0IHByaXZhdGUgdW50aWwgd2UgaGF2ZSBhIHJlYXNvbiB0byBtYWtlIGl0IHB1YmxpYy4KCjIwMTItMDctMTQgMTk6MDg6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBjaGVjayB2YWx1ZSB0eXBlIG1hdGNoZXMgdGFnIHR5cGUgd2hlbiBhZGRpbmcgdmFsdWVzIHRvIGEgdGFnbGlzdAoKMjAxMi0wNy0xNCAxODo1Mjo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IG1ha2UgdGFnbGlzdHMgYW5kIGRhdGV0aW1lIGxvZ2dhYmxlIHZpYSBHU1RfUFRSX0ZPUk1BVAoKMjAxMi0wNy0xMyAxMjowNToxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2VuZCBzZWVrIGV2ZW50IHVwc3RyZWFtIGZpcnN0CgkgIEZpcnN0IHRyeSB0byBsZXQgdXBzdHJlYW0gaGFuZGxlIHRoZSBzZWVrIGV2ZW50LCB0aGVuIGZhaWwgaWYgdGhlIGV2ZW50IGlzCgkgIHNvbWV0aGluZyB3ZSBkb24ndCB1bmRlcnN0YW5kLgoKMjAxMi0wNy0xMyAwOTo0Mzo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdGVzdCByYWNpbmVzcwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NTA2CgoyMDEyLTA3LTEyIDEzOjE3OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGZpeCBnc3QtZmZtcGVnIHBsdWdpbiBwYXRoIGFnYWluCgoyMDEyLTA3LTEyIDEyOjA5OjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IGFkZCBjbHV0dGVyLWdzdCBhbmQgcmVmaW5lIHBsdWdpbiBzZWFyY2ggcGF0aHMKCjIwMTItMDctMTIgMDA6MzQ6MjIgKzEwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBNb3ZlIHN0aWNreSBmbGFnIGNsZWFyaW5nIGNvZGUgdG8gZ3N0X3BhZF9hY3RpdmF0ZV9tb2RlCgkgIFRoZSBnaG9zdHBhZCBjb2RlIGRpcmVjdGx5IGFjdGl2YXRlcy9kZWFjdGl2YXRlcyB0aGUgY2hpbGQgY29kZSBieQoJICBjYWxsaW5nIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSwgcmF0aGVyIHRoYW4gZ3N0X3BhZF9zZXRfYWN0aXZlLCBzbwoJICBtYWtlIHN1cmUgdG8gY2xlYXIgdGhlIGZsYWdzIGluIGdzdF9wYWRfYWN0aXZhdGVfbW9kZSgpLCB3aGljaCBzaG91bGQKCSAgY2F0Y2ggYWxsIGNhc2VzLgoKMjAxMi0wNy0xMSAxMjo0MDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogaW1wcm92ZSBhbm5vdGF0aW9uCgoyMDEyLTA3LTExIDEyOjM3OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIHN0ZXAgZW5kIGNvcnJlY3RseQoJICB3aGVuIHdlIGhhdmUgYSBuZXcgc3RlcCBldmVudCB3aXRoIGEgLTEgYW1vdW50LCBtYWtlIHN1cmUgdGhhdCB3ZSBmb2xsb3cgdGhlCgkgIHJlZ3VsYXIgY29kZSBwYXRoIHNvIHRoYXQgdGhlIHN0b3BfZW5kIGhhbmRsZXIgaXMgY2FsbGVkIGFzIHVzdWFsLiBUaGlzIHRha2VzCgkgIGNhcmUgb2YgZmx1c2hpbmcgdGhlIGJ1ZmZlciBpbiBjYXNlIG9mIGEgZmx1c2hpbmcgc3RlcCBhbmQgYWxzbyBwb3N0cyBhIHN0ZXAgZW5kCgkgIG1lc3NhZ2UuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5Mzc4CgoyMDEyLTA3LTExIDEzOjE0OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIHdpbjMyOiBGaXggZXhwb3J0ZWQgc3ltYm9scyBsaXN0IGZvciByZWFsIG5vdwoKMjAxMi0wNy0xMSAxMToyMToxOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHJlbW92ZSByZW1vdmVkIGFwaSBmcm9tIHRoZSBkb2NzLgoKMjAxMi0wNy0xMSAxMjo0NjozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZWQgZXhwb3J0ZWQgc3ltYm9scyBsaXN0CgoyMDEyLTA3LTExIDEyOjQ1OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvYy5oOgoJICB0b2M6IEFkZCBmdW5jdGlvbnMgdG8gcmV0cmlldmUgdGhlIHBhcmVudCBHc3RUb2MvR3N0VG9jRW50cnkgb2YgYSBHc3RUb2NFbnRyeQoKMjAxMi0wNy0xMCAxODoxNToyMCArMDMwMCAgQW50b24gQmVsa2EgPGFudG9uYmVsa2FAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IEZpeCBnc3RfdG9jX2ZpbmRfZW50cnkoKQoJICBSZWN1cnNpdmUgc2VhcmNoIGZvciB0aGUgcmVxdWlyZWQgZW50cnksIGluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZQoJICB0b3AtbGV2ZWwgZW50cnkgdGhhdCBjb250YWlucyBhbiBlbnRyeSB3aXRoIHRoZSBzZWFyY2ggVUlELgoKMjAxMi0wNy0xMSAxMDoyNjoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFB1c2ggU1RSRUFNX1NUQVJUIGluIHB1bGwtbW9kZQoKMjAxMi0wNy0xMSAxMDoyNDo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRGVtb3RlIFdBUk5JTkcgdG8gREVCVUcKCSAgSXQgaXMgbm90IGFuIGlzc3VlIHRvIGdldCBmaWVsZHMgdGhhdCBkb24ndCBleGlzdCwgY2FsbGluZyBjb2RlIHNob3VsZAoJICBoYW5kbGUgdGhhdC4KCjIwMTItMDctMTAgMTE6NDY6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHBhcnNlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgUmVtb3ZlIDAuMTAtcmVsYXRlZCBkb2N1bWVudGF0aW9uIGFuZCAiU2luY2UiIG1hcmtlcnMKCjIwMTItMDctMTAgMDA6Mzk6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJvdmlkZSBmYWxsYmFjayBpbiBjYXNlIGEgY3JlYXRlIGZ1bmN0aW9uIGRvZXNuJ3Qga25vdyBhYm91dCBwcm92aWRlZCBidWZmZXJzCgkgIEluIDAuMTEgdGhlIGNhbGxlciBtYXkgcHJvdmlkZSBhIGJ1ZmZlciB0byBiZSBmaWxsZWQgYnkgdGhlIHNvdXJjZSB0bwoJICBwdWxsX3JhbmdlL2dldF9yYW5nZS9jcmVhdGUsIGJ1dCBpdCdzIGVhc3kgdG8gbWlzcyB0aGlzIG5ldyBjYXNlIHdoZW4KCSAgcG9ydGluZyBjb2RlIGZyb20gMC4xMC4gUHJvdmlkZSBmYWxsYmFjayB0aGF0IGNvcGllcyB0aGUgY3JlYXRlZCBkYXRhCgkgIGludG8gdGhlIHByb3ZpZGVkIGJ1ZmZlciBmb3Igbm93LgoJICBUaGlzIG1ha2VzIG9nZ2RlbXV4IGluIHB1bGwtbW9kZSB3b3JrIHdpdGggZGF0YXVyaXNyYy4KCjIwMTItMDctMTAgMTA6MzE6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBxdWVyeTogY29weSBzdHJ1Y3R1cmUgaW4gX2FkZF9hbGxvY2F0aW9uX21ldGEoKQoJICBNYWtlIGdzdF9xdWVyeV9hZGRfYWxsb2NhdGlvbl9tZXRhKCkgdGFrZSBhIGNvcHkgb2YgdGhlIHBhc3NlZCBjYXBzIGluc3RlYWQgb2YKCSAgdGFraW5nIG93bmVyc2hpcC4gVGhpcyBtYWtlcyBpdCBlYXNpZXIgZm9yIHRoZSBjYWxsZXIgaW4gbW9zdCBjYXNlcyBiZWNhdXNlIGl0CgkgIGRvZXNuJ3QgaGF2ZSB0byBtYWtlIGEgY29weSBhbmQgZGVhbCB3aXRoIE5VTEwgdmFsdWVzLgoKMjAxMi0wNy0xMCAxMDoxMTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgbmV3IGZsYWdzCgoyMDEyLTA3LTA5IDIzOjQ3OjUzICswMjAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZml4IGV4Y2x1c2l2ZSBsb2NrL3VubG9jayByYWNlCgoyMDEyLTA3LTA5IDIxOjUxOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgYmFzZXNyYywgYmFzZXNpbmssIGJhc2VwYXJzZSwgdHlwZWZpbmQ6IHVzZSBHU1RfU0VHTUVOVF9GTEFHIHdpdGggc2VnbWVudCBmbGFncwoKMjAxMi0wNy0wOSAyMjoxMTozMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IGFsc28gY29weSB0aGUgc2VnbWVudCBmbGFnCgkgIEZpeGVzIHNlZ21lbnRlZCBzZWVrcyAoYXMgdGVzdGVkIGUuZy4gaW4gdGhlIGFkZGVyIHRlc3RzIGluIGJhc2UpLgoKMjAxMi0wNy0wOSAyMDo1NTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJICBwbHVnaW5zOiBzcHJpbmtsZSBHX0dOVUNfSU5URVJOQUwgZm9yIGRhdGFxdWV1ZSBmdW5jdGlvbnMKCSAgQW5kIHJlbW92ZSBwYWRkaW5nLCBzaW5jZSB0aGlzIGlzIG5vdCBwdWJsaWMgQVBJIGFueSBtb3JlLgoKMjAxMi0wNy0wOSAyMDo0ODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIGdzdDogc3ByaW5rbGUgc29tZSBHX0dOVUNfSU5URVJOQUwgZm9yIGludGVybmFsIGZ1bmN0aW9ucwoKMjAxMi0wNy0wOSAyMDowOTo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdGVzdHM6IGZpeCB0b2MgdW5pdCB0ZXN0cwoJICBNZWFudCB0byBjaGVjayBzdWJzdWJlbnRyeSwgbm90IHN1YmVudHJ5LgoKMjAxMi0wNy0wOSAxODo1ODoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkgIHRlc3RzOiBtaW5vciB0b2MgdGVzdCBjbGVhbi11cAoKMjAxMi0wNy0wOSAxODo1MTozNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2NzZXR0ZXIuYzoKCSAgdGVzdHM6IHR1cm4gdG9jIGNoZWNrIG1hY3JvcyBpbnRvIHByb3BlciBmdW5jdGlvbnMKCSAgU28gd2UgY2FuIHNlZSB0aGUgbGluZSBudW1iZXIgb2YgdGhlIGNoZWNrIHRoYXQgZmFpbHMuCgoyMDEyLTA3LTA5IDIwOjMxOjAwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZnMgZmlsZSBmb3IgQVBJIGNoYW5nZXMvYWRkaXRpb24KCjIwMTItMDctMDkgMjA6Mjk6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBjaGVjazogVXBkYXRlIHRlc3RzIGZvciBuZXcgU1RSRUFNX1NUQVJUIG1lc3NhZ2UKCjIwMTItMDctMDkgMjA6Mjg6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVjazogRW5zdXJlIFNUUkVBTV9TVEFSVCBtZXNzYWdlIGlzIHBvc3RlZAoJICBBIFNUUkVBTV9TVEFSVCBtZXNzYWdlIGlzIHBvc3RlZCBpZiBhbmQgb25seSBpZiBhbGwgc2lua3MgaW4gdGhlCgkgIGJpbi9waXBlbGluZSByZWNlaXZlZCB0aGUgU1RSRUFNX1NUQVJUIGV2ZW50CgoyMDEyLTA3LTA5IDIwOjI4OjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFBvc3QgYSBTVFJFQU1fU1RBUlQgbWVzc2FnZSB3aGVuIHdlIHNlZSB0aGUgZXZlbnQKCjIwMTItMDctMDkgMjA6Mjc6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IGNvbGxlY3QgYW5kIGFnZ3JlZ2F0ZSBTVFJFQU1fU1RBUlQgbWVzc2FnZXMKCSAgd2hlbiBhbGwgc2lua3MgaGF2ZSBwb3N0ZWQgYSBTVFJFQU1fU1RBUlQsIHRoZSBiaW4gd2lsbCBmb3J3YXJkIGEKCSAgbmV3IFNUUkVBTV9TVEFSVCBtZXNzYWdlIHRvIHRoZSBwYXJlbnQgYmluIG9yIGFwcGxpY2F0aW9uCgoyMDEyLTA3LTA5IDIwOjA4OjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RtZXNzYWdlOiBOZXcgR1NUX01FU1NBR0VfU1RSRUFNX1NUQVJUCgkgIG1lc3NhZ2UgY291bnRlcnBhcnQgdG8gdGhlIEdTVF9FVkVOVF9TVFJFQU1fU1RBUlQgZXZlbnQKCjIwMTItMDctMDkgMTk6NTk6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVjazogVW5pdCB0ZXN0IGZvciBFT1MgbWVzc2FnZQoJICBNYWtlIHN1cmUgd2UgZ2V0IHRoZSBhZ2dyZWdhdGVkIG1lc3NhZ2UgaWYgYW5kIG9ubHkgaWYgYWxsIHNpbmtzCgkgIHJlY2VpdmVkIGFuIEVPUyBldmVudAoKMjAxMi0wNy0wOSAxOTo1NjoxNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGFkZCBTVFJFQU1fU1RBUlQgaGFuZGxpbmcKCSAgVXNlIGEgZmxhZyB0byBmb3J3YXJkIHRoZSBmaXJzdCBTVFJFQU1fU1RBUlQKCjIwMTItMDctMDkgMTY6MjA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgZG9jczogdXBkYXRlIHN0cmVhbSBkb2NzIGZvciBTRUdNRU5UX1NUQVJUIGV2ZW50CgoyMDEyLTA3LTA5IDE2OjQ4OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogZml4IG1vcmUgZG9jcwoKMjAxMi0wNy0wOSAxNjoyMjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RhbGxvY2F0b3IuaDoKCSAgZG9jczogZml4IGRvY3MgYSBsaXR0bGUgbW9yZQoKMjAxMi0wNy0wOSAxNjowMjo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGFsbG9jYXRvci5jOgoJKiBnc3QvZ3N0YWxsb2NhdG9yLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSAgbWVtb3J5OiBNYWtlIEdzdEFsbG9jYXRvciBhIEdzdE9iamVjdAoJICBNYWtlIEdzdEFsbG9jYXRvciBhIEdzdE9iamVjdCBpbnN0ZWFkIG9mIGEgR3N0TWluaU9iamVjdCwgbGlrZSBidWZmZXJwb29sLgoJICBNYWtlIGEgbmV3IGdzdGFsbG9jYXRvci5jIGZpbGUuIE1ha2UgYSBHc3RBbGxvY2F0b3Igc3ViY2xhc3MgZm9yIHRoZSBkZWZhdWx0CgkgIGFsbG9jYXRvci4KCjIwMTItMDctMDkgMTM6MjA6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogcmVtb3ZlIHVudXNlZCBtYWNyb3MKCjIwMTItMDctMDkgMTM6MjA6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBtYWtlIGFic3RyYWN0CgkgIE1ha2UgdGhlIEdzdENsb2NrIHR5cGUgYWJzdHJhY3QuCgkgIEZpeCBhIGhvcnJpYmxlIGhhY2sgaW4gdGhlIGNsb2NrIHVuaXQgdGVzdC4KCjIwMTItMDctMDkgMTU6Mzc6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogRml4IGhhbmRsaW5nIG9mIG1pbi10aHJlc2hvbGQgYW5kIHNlcmlhbGl6ZWQgcXVlcmllcwoJICBPbmx5IGNvbnNpZGVyIHRoZSBxdWV1ZSBlbXB0eSBpZiB0aGUgbWluaW11bSB0aHJlc2hvbGRzCgkgIGFyZSBub3QgcmVhY2hlZCBhbmQgZGF0YSBpcyBhdCB0aGUgcXVldWUgaGVhZC4gT3RoZXJ3aXNlCgkgIHdlIHdvdWxkIGJsb2NrIGZvcmV2ZXIgb24gc2VyaWFsaXplZCBxdWVyaWVzLgoJICBUaGlzIGFsc28gbWFrZXMgc2VuZGluZyBvZiBzZXJpYWxpemVkIGV2ZW50cywgbGlrZSBjYXBzLCBoYXBwZW4KCSAgZmFzdGVyIGFuZCBwb3RlbnRpYWxseSBpbXByb3ZlcyBuZWdvdGlhdGlvbiBwZXJmb3JtYW5jZS4KCSAgRml4ZXMgYnVnICM2Nzk0NTguCgoyMDEyLTA3LTA5IDEzOjE1OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiByZW1vdmUgcGFkZGluZyBub3cgdGhhdCB0aGUgc3RydWN0cyBhcmUgcHJpdmF0ZQoKMjAxMi0wNy0wOSAxMzoxMjoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGFkZCBnc3RfdG9jX2R1bXAoKSBmdW5jdGlvbiBmb3IgZGVidWdnaW5nCgkgIEFQSTogZ3N0X3RvY19kdW1wKCkKCjIwMTItMDctMDMgMDA6MDc6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGJ1cywgY2xvY2s6IG1ha2Ugc3VyZSB0aGVzZSBuZXZlciBoYXZlIGEgZmxvYXRpbmcgcmVmCgkgIENsZWFyIHRoZSBpbml0aWFsIGZsb2F0aW5nIHJlZiBpbiB0aGUgaW5pdCBmdW5jdGlvbiBmb3IKCSAgYnVzc2VzIGFuZCBjbG9ja3MuIFRoZXNlIG9iamVjdHMgY2FuIGJlIHNldCBvbiBtdWx0aXBsZQoJICBlbGVtZW50cywgc28gdGhlcmUncyBubyBjbGVhciBwYXJlbnQtY2hpbGQgcmVsYXRpb25zaGlwCgkgIGhlcmUuIElkZWFsbHkgd2UnZCBqdXN0IG5vdCBtYWtlIHRoZW0gZGVyaXZlIGZyb20KCSAgR0luaXRpYWxseVVub3duZWQgYXQgYWxsLCBidXQgc2luY2Ugd2Ugd2FudCB0byBrZWVwCgkgIHVzaW5nIEdzdE9iamVjdCBmZWF0dXJlcyBmb3IgZGVidWdnaW5nLCB3ZSdsbCBqdXN0IGRvCgkgIGl0IGxpa2UgdGhpcy4KCSAgVGhpcyBzaG91bGQgYWxzbyBmaXggc29tZSBwcm9ibGVtcyB3aXRoIGJpbmRpbmdzLCB3aGljaAoJICBzZWVtIHRvIGdldCBjb25mdXNlZCB3aGVuIHRoZXkgZ2V0IGZsb2F0aW5nIHJlZnMgZnJvbQoJICBub24tY29uc3RydWN0b3IgZnVuY3Rpb25zIChvciBmdW5jdGlvbnMgYW5ub3RhdGVkIHRvCgkgIGhhdmUgYSAndHJhbnNmZXIgZnVsbCcgcmV0dXJuIHR5cGUpLiBUaGlzIHdvcmtzIG5vdzoKCSAgZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBHT2JqZWN0LCBHc3QKCSAgR09iamVjdC50aHJlYWRzX2luaXQoKQoJICBHc3QuaW5pdChOb25lKQoJICBwaXBlbGluZT1Hc3QuUGlwZWxpbmUoKQoJICBidXMgPSBwaXBlbGluZS5nZXRfYnVzKCkKCSAgcGlwZWxpbmUuc2V0X3N0YXRlKEdzdC5TdGF0ZS5OVUxMKQoJICBkZWwgcGlwZWxpbmU7CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkyODYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzIwMgoKMjAxMi0wNy0wOCAyMDoxNTozMyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IHN1cHByZXNzIGdsaWIgZGVwcmVjYXRpb25zIHdhcm5pbmdzIGZvciBHX1ZBTFVFX0FSUkFZCgoyMDEyLTA3LTA3IDIzOjEzOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHRlc3RzOiBhZGQgbW9yZSB0ZXN0cyBmb3IgZGF0ZXRpbWUgdmFsdWUgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24KCSAgRXNwLiBvZiBwYXJ0aWFsIGRhdGV0aW1lcy4KCjIwMTItMDctMDcgMjI6NDY6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogdXNlIGRhdGV0aW1lIHNlcmlhbGlzZS9kZXNlcmlhbGlzZSBmdW5jdGlvbnMgZm9yIGRhdGV0aW1lcwoJICBUaGlzIHJlLXVzZXMgZXhpc3RpbmcgY29kZSBhbmQgbWFrZXMgc3VyZSB3ZSBwcm9wZXJseSBzZXJpYWxpc2UKCSAgYW5kIGRlc2VyaWFsaXNlIGRhdGV0aW1lcyB3aGVyZSBub3QgYWxsIGZpZWxkcyBhcmUgc2V0ICh0aHVzCgkgIGZpeGluZyBzb21lIHdhcm5pbmdzIHdoZW4gc2VyaWFsaXNpbmcgc3VjaCBkYXRldGltZXMpLgoKMjAxMi0wNy0wNyAyMjo0MDoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogZG8gb3VyIG93biBzZXJpYWxpc2F0aW9uIHNvIHdlIGNhbiBzZXJpYWxpc2UgbWljcm9zZWNvbmRzIGFzIHdlbGwKCSAgV2Ugc3RpbGwgZG9uJ3QgZG8gdGhhdCBpbiBfdG9faXNvODYwMV9zdHJpbmcoKSB0aG91Z2gsIHNpbmNlCgkgIHRoaXMgd2lsbCBwcm9iYWJseSBtb3N0bHkgYmUgdXNlZCBpbiB0YWdzLCB3aGVyZSBpdCBkb2Vzbid0CgkgIG1hdHRlciBzbyBtdWNoIGFuZCB0aGUgbWljcm9zZWNvbmQgYXJndW1lbnQgbWlnaHQgbm90IGJlCgkgIHdlbGwtcmVjZWl2ZWQgYnkgc29tZSB0YWcgcmVhZGVycy4KCjIwMTItMDctMDcgMTk6NDM6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZGF0ZXRpbWU6IHdoZW4gZGVzZXJpYWxpc2luZyBwYXJzZSBtaWNyb3NlY29uZHMgaWYgYXZhaWxhYmxlCgoyMDEyLTA3LTA3IDE2OjAxOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBmaXggc2Vjb25kIHBhcnNpbmcgZmFpbHVyZSBjYXNlIHdoZW4gZGVzZXJpYWxpc2luZyBkYXRldGltZQoJICBXaGVuIHdlIGZhaWwgdG8gcGFyc2UgdGhlIG51bWJlciBvZiBzZWNvbmRzLCByZXNldCB0aGUgdmFsdWUgdG8gLTEKCSAgaW5zdGVhZCBvZiBwYXNzaW5nIHNvbWUgZXJyb3IgdmFsdWUgYXMgc2Vjb25kcy4gQWxzbywgd2UgY2FuIHN0aWxsCgkgIHRyeSB0byBwYXJzZSB0aW1lem9uZSBpbmZvcm1hdGlvbi4KCjIwMTItMDctMDcgMTU6NDQ6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5LmM6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSAgZXhhbXBsZXM6IGZpeCBkZWJ1ZyBsb2cgcHJpbnQgZm9ybWF0cyBpbiBtZW1vcnkgZXhhbXBsZXMKCjIwMTItMDctMDcgMDE6Mzc6NTAgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogQWRkIGRlc3Ryb3kgbm90aWZ5IGFyZ3VtZW50cyB0byBkZWJ1ZyBzdHVicwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NTM1CgoyMDEyLTA3LTA2IDIwOjM3OjA2ICswMjAwICBTZWJhc3RpYW4gUmFzbXVzc2VuIDxzZWJybkBheGlzLmNvbT4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBTZXQgbGNvcHkgc3RyaW5nIGNvbnN0IGV4YWN0bHkgYXMgZ2xpYidzIG1hY3JvCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzk1MzQKCjIwMTItMDctMDYgMTc6MTk6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktdmlkbWVtLmM6CgkgIG1lbW9yeTogZXhwb3NlIHRoZSBHc3RBbGxvY2F0aW9uIHN0cnVjdHVyZQoJICBFeHBvc2UgdGhlIEdzdEFsbG9jYXRpb24gc3RydWN0dXJlIGFuZCBwcm92aWRlIGFuIF9pbml0IGZ1bmN0aW9uLiBUaGlzIG1ha2VzIGl0CgkgIGVhc2llciB0byBtYWtlICdzdWJjbGFzc2VzJyBvZiB0aGUgYWxsb2NhdG9yIHRoYXQgY29udGFpbiBtb3JlIGluZm8uCgkgIEl0IGFsc28gYWxsb3dzIHVzIHRvIGV4cG9zZSB0aGUgZmxhZ3Mgb24gdGhlIGFsbG9jYXRvciBtaW5pb2JqZWN0LgoJICBNYWtlIGEgZmxhZyB0byBub3RlIHRoYXQgdGhlIGFsbG9jYXRvciB1c2VzIGEgY3VzdG9tIGFsbG9jIGZ1bmN0aW9uLgoKMjAxMi0wNy0wNiAxMjo0NToyOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRGVtb3RlIFdBUk5JTkcgdG8gSU5GTwoJICBJdCBpcyBjb21tb24gdG8gdXNlIGdzdF9zdHJ1Y3R1cmVfZ2V0KCkgdG8ga25vdyBpZiBhIGZpZWxkIGlzIHByZXNlbnQKCSAgb3Igbm90LgoKMjAxMi0wNy0wNiAxMTo0MTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogUmVtb3ZlIHVudXNlZCBkZWZpbmUKCjIwMTItMDctMDYgMTE6NDE6MzMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIGNoZWNrOiBnc3Rjb250cm9sbGVyLmggZG9lc24ndCBleGlzdCBhbnltb3JlCgoyMDEyLTA3LTA2IDExOjQwOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBjaGVjazogVXNlIGNvbnNpc3RlbmN5Y2hlY2sgb24gYmFzZXNyYwoKMjAxMi0wNy0wNiAxMTozODo1OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBDaGVjayBmb3IgU1RSRUFNX1NUQVJUIGV2ZW50CgkgIENoZWNrIHRoYXQgaXQgaXMgYWx3YXlzIGJlZm9yZSBhbnkgc2VyaWFsaXplZCBldmVudC4KCjIwMTItMDctMDYgMTA6MTM6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgdHlwZWZpbmRlbGVtZW50OiByZW1vdmUgdW5pbXBsZW1lbnRlZCBtYXhpbXVtIHByb3BlcnR5CgoyMDEyLTA3LTA2IDEwOjA5OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHRlZTogcmVtb3ZlIHVuaW1wbGVtZW50ZWQgaGFzLXNpbmstbG9vcCBwcm9wZXJ0eQoKMjAxMi0wNy0wNiAxMDowNzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlbW92ZSBkZXByZWNhdGVkIHRlbXAtbG9jYXRpb24gdXNlLCBtYWtlIGl0IHJlYWQtb25seQoKMjAxMi0wNy0wNiAwOTo1Nzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IHJlbW92ZSBkZXByZWNhdGVkIGNoZWNrLXBlcmZlY3QgcHJvcGVydHkKCSAgUmVwbGFjZWQgYnkgdGhlIG1vcmUgc3BlY2lmaWMgY2hlY2staW1wZXJmZWN0LXt0aW1lc3RhbXAsb2Zmc2V0fQoKMjAxMi0wNy0wNiAxMTo0OTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBxdWVyeTogdXNlIG1vcmUgZ2VuZXJpYyBzdHJ1Y3R1cmUgZm9yIG1ldGEgcGFyYW1zCgoyMDEyLTA3LTA2IDExOjIyOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogbWFrZSBmaW5kX2FsbG9jYXRpb25fbWV0YSBtZXRob2QKCSAgTWFrZSBnc3RfcXVlcnlfZmluZF9hbGxvY2F0aW9uX21ldGEoKSB0aGF0IGFsc28gcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgbWV0YWRhdGEKCSAgYW5kIHJlcGxhY2VzIGdzdF9xdWVyeV9oYXNfYWxsb2NhdGlvbl9tZXRhKCkuCgoyMDEyLTA3LTA2IDExOjAwOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIHF1ZXJ5OiBhZGQgZmxhZ3MgdG8gYWxsb2NhdGlvbiBxdWVyeQoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFkZCBBUEkgc3BlY2lmaWMgZmxhZ3MgdG8gdGhlIEFMTE9DQVRJT04gcXVlcnkuIFRoaXMgbWFrZXMKCSAgaXQgcG9zc2libGUgdG8gYWxzbyBjaGVjayB3aGF0IGtpbmRzIG9mIHN1YmZlYXR1cmVzIG9mIHRoZSBtZXRhZGF0YSBBUEkgYXJlCgkgIHN1cHBvcnRlZC4KCjIwMTItMDctMDYgMDk6MTE6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSAgdGVzdHM6IHJlbW92ZSB1bnVzZWQgaW5jbHVkZXMKCjIwMTItMDctMDUgMTg6MDc6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9teS12aWRtZW0uYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LXZpZG1lbS5oOgoJICBtZW1vcnk6IGFkZCBtb3JlIGV4YW1wbGVzCgkgIEFkZCBhbiBleGFtcGxlIG9mIGEgY3VzdG9tIGFsbG9jYXRvciB3aXRoIGEgY3VzdG9tIEFQSS4KCjIwMTItMDctMDUgMTc6MTE6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbWVtb3J5X3Rlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvbWVtb3J5L215LW1lbW9yeS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvbXktbWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIGdzdF9tZW1vcnlfaW5pdCgpCgkgIEFkZCBhIG1ldGhvZCB0aGF0IG1lbW9yeSBpbXBsZW1lbnRhdGlvbnMgY2FuIGNhbGwgdG8gaW5pdGlhbGl6ZSB0aGUgc3RhbmRhcmQKCSAgR3N0TWVtb3J5IHN0cnVjdHVyZS4KCSAgTW92ZSB0aGUgcGFyZW50IGhhbmRsaW5nIGluIHRoZSBfZnJlZSBoYW5kbGVyLgoJICBSZWFycmFuZ2Ugc29tZSBpbnRlcm5hbCBmdW5jdGlvbiBwYXJhbWV0ZXJzIHNvIHRoYXQgdGhlIG9yZGVyIGlzIGNvbnNpc3RlbnQuCgkgIEFkZCBtb3JlIG1lbW9yeSBleGFtcGxlcwoKMjAxMi0wNy0wNSAxNjoxNzo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBzb21lIG1pbmlvYmplY3QgZG9jcwoKMjAxMi0wNy0wNSAxNDoyNToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tZW1vcnkvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21lbW9yeS9tZW1vcnlfdGVzdC5jOgoJICB0ZXN0czogYWRkIG1lbW9yeSBleGFtcGxlCgoyMDEyLTA3LTA1IDEyOjI1OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdGVzdHM6IGZpeCB0b2MgdW5pdCB0ZXN0IGJ1aWxkIGJ5IHJlbW92aW5nIHRvYyBxdWVyeSBzdHVmZiB0aGVyZSB0b28KCjIwMTItMDctMDUgMTM6MDM6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogQWRkIGZvcm1hdCBhbmQgcG9zaXRpb24gdG8gdGhlIHNlZ21lbnQtZG9uZSBldmVudAoKMjAxMi0wNy0wNSAxMjo1Mzo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pbmlvYmplY3QudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMi0wNy0wNSAxMjoxNzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGluY3JlYXNlIGFtb3VudCBvZiBwb3NzaWJsZSBmbGFncwoKMjAxMi0wNy0wNSAxMjo1Mjo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGV2ZW50OiBJbXBsZW1lbnQgc2VnbWVudC1kb25lIGV2ZW50CgoyMDEyLTA3LTA1IDEyOjM3OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdG9jLnR4dDoKCSAgcGFydC10b2M6IFJlbW92ZSBzZWN0aW9uIGFib3V0IFRPQyBxdWVyeQoKMjAxMi0wNy0wNSAxMjozNDo0MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGV4cG9ydGVkIHN5bWJvbHMgbGlzdAoKMjAxMi0wNy0wNSAxMjozMTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBSZW1vdmUgdGhlIFRPQyBxdWVyeSwgaXQncyBub3QgdmVyeSB1c2VmdWwgbm93IHRoYXQgd2UgaGF2ZSBzdGlja3kgZXZlbnRzCgoyMDEyLTA3LTAzIDE4OjQ5OjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgcXVhcms6IFJlbW92ZSB1bm5lZWRlZCBxdWFya3MKCjIwMTItMDctMDMgMTg6NDU6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0bmV0LmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogTWFrZSBzdHJ1Y3R1cmVzIG9wYXF1ZSBhbmQgY2xlYW4gdXAgZnVuY3Rpb24gbmFtZXMgYW5kIGZpZWxkcyBhIGJpdAoKMjAxMi0wNy0wNCAxNzowMjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOmZpeCBkZWJ1ZyBjYXRlZ29yeQoKMjAxMi0wNy0wNCAxNjozODoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogYWRkIGxvY2sgZnVuY3Rpb25hbGl0eSB0byBHc3RNaW5pT2JqZWN0CgkgIE1vdmUgdGhlIGxvY2tpbmcgbWV0aG9kcyBmcm9tIEdzdE1lbW9yeSB0byBHc3RNaW5pT2JqZWN0LgoJICBBZGQgYSBtaW5pb2JqZWN0IGZsYWcgdG8gZW5hYmxlIExPQ0tBQkxFIG9iamVjdHMuIExPQ0tBQkxFIG9iamVjdHMgY2FuCgkgIHVzZSB0aGUgbG9jay91bmxvY2sgQVBJIHRvIGNvbnRyb2wgdGhlIGFjY2VzcyB0byB0aGUgb2JqZWN0LgoJICBBZGQgYSBtaW5vYmplY3QgZmxhZyB0aGF0IGFsbG93cyB5b3UgdG8gbG9jayBhbiBvYmplY3QgaW4gcmVhZG9ubHkgbW9kZS4KCSAgTW9kaWZ5IHRoZSBfaXNfd3JpdGFibGUoKSBtZXRob2QgdG8gY2hlY2sgdGhlIHNoYXJlZCBjb3VudGVyIGZvciBMT0NLQUJMRQoJICBvYmplY3RzLiBUaGlzIGFsbG93cyB1cyB0byBjb250cm9sIHdyaXRhYmlsaXR5IHNlcGFyYXRlbHkgZnJvbSB0aGUgcmVmY291bnQgZm9yCgkgIExPQ0tBQkxFIG9iamVjdHMuCgoyMDEyLTA3LTA0IDE2OjA0OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGFkZCBuZXcgbG9ja2luZyBkZWJ1ZyBjYXRlZ29yeQoKMjAxMi0wNy0wNCAxMjoyODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggaXNfZXhjbHVzaXZlCgoyMDEyLTA3LTA0IDEyOjAzOjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBMT0NLX0ZMQUdfUkVBRFdSSVRFIGRlZmluZQoKMjAxMi0wNy0wNCAxMTo0ODozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSAgbWVtb3J5OiB1cGRhdGUgZG9jcwoKMjAxMi0wNy0wNCAxMDoxMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBzbWFsbCBjbGVhbnVwCgoyMDEyLTA3LTAzIDEzOjUwOjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGZvciBuZXcgc3ltYm9scwoKMjAxMi0wNy0wMyAxMzo0Nzo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBGaXggdGhlIE5PX1NIQVJFIGZsYWcgaW4gdGhlIGNvbnN0cnVjdG9yCgkgIFRoZSBOT19TSEFSRSBmbGFnIGRvZXMgbm90IGluZmx1ZW5jZSB0aGUgZXhjbHVzaXZlbmVzcyBvZiB0aGUgYnVmZmVyIGluaXRpYWxseQoJICBidXQgb25seSBpZiBhIF9zaGFyZSBvcGVyYXRpb24gY2FuIGJlIGRvbmUuIE90aGVyd2lzZSwgd2Ugd291bGQgbm90IGJlIGFibGUgdG8KCSAgV1JJVEUgbWFwIGEgYnVmZmVyIG1lbW9yeSBiZWNhdXNlIGl0IHdvdWxkIGhhdmUgYSBzaGFyZSBjb3VudCBvZiBhdCBsZWFzdCAyLgoKMjAxMi0wNy0wMyAxMzo0NzozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBvbmx5IGNoZWNrIHRoZSBsb2NraW5nIHJlZmNvdW50CgoyMDEyLTA3LTAzIDEzOjQ2OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCByZXNpemUKCSAgQ29ycmVjdGx5IHVwZGF0ZSB0aGUgZXhjbHVzaXZlIGxvY2tzCgoyMDEyLTA3LTAzIDEzOjQ1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IFVzZSBsb2NrIGZsYWdzIGZvciBtYXAgZmxhZ3MKCSAgV2UgaW1wbGVtZW50IHRoZSBsb2NraW5nIGluIGdzdF9tZW1vcnlfbWFwIHdpdGggdGhlIGxvY2sgZmxhZ3MsIG1ha2UgbWF0Y2hpbmcKCSAgZmxhZ3MgdGhlIHNhbWUgbnVtYmVyIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgbWFwIGZsYWdzIGRpcmVjdGx5IGFzIGxvY2sgZmxhZ3MuCgoyMDEyLTA3LTAzIDEyOjE4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGxvY2sgbWVtb3J5IEVYQ0xVU0lWRQoJICBsb2NrIHRoZSBtZW1vcnkgdGhhdCB0aGUgYnVmZmVyIHJlZmVyZW5jZXMgYXMgRVhDTFVTSVZFLiBUaGlzIG1ha2VzIHN1cmUgdGhhdAoJICB3aGVuIHdlIHNoYXJlIHRoZSBtZW1vcnkgd2l0aCBvdGhlciBidWZmZXJzIHRoYXQgaXQgYmVjb21lcyB1bndyaXRhYmxlLgoKMjAxMi0wNy0wMyAxMjoxNjoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBjbGVhbnVwIHRoZSBsb2NraW5nIGNvZGUKCSAgY2xlYW51cCBhbmQgZml4IHRoZSBsb2NraW5nIGNvZGUKCjIwMTItMDctMDMgMDk6NDg6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGV4cG9zZSB0aGUgaW50ZXJuYWwgbG9ja2luZyBhcGkKCSAgRXhwb3NlIHRoZSBpbnRlcm5hbGx5IHVzZWQgbWV0aG9kcyBmb3IgbG9ja2luZyBhbmQgdW5sb2NraW5nIHRoZSBvYmplY3QuIFBhc3MKCSAgdGhlIGFjY2VzcyBtb2RlIHRvIHRoZSB1bmxvY2sgZnVuY3Rpb24gZm9yIGV4dHJhIGNoZWNrcyBhbmQgYmVjYXVzZSB3ZSBuZWVkIGl0CgkgIGZvciB0aGUgRVhDTFVTSVZFIGxvY2tzLgoJICBNYWtlIHNvbWUgbmV3IGRlZmluZXMgdG8gc3BlY2lmeSB0aGUgZGVzaXJlZCBsb2NraW5nLgoJICBBZGQgYSBuZXcgRVhDTFVTSVZFIGxvY2sgbW9kZSB3aGljaCB3aWxsIGluY3JlbWVudCB0aGUgc2hhcmVkIGNvdW50ZXIuIE9iamVjdHMKCSAgd2l0aCBhIHNoYXJlZCBjb3VudGVyID4gMSB3aWxsIG5vdCBiZSBsb2NrYWJsZSBpbiBXUklURSBtb2RlLgoKMjAxMi0wNi0yOSAxNjozNzowNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIHRlc3RzOiBnc3RidWZmZXI6IGV4dGVuZCBidWZmZXIgY29weSB0ZXN0CgkgIC4uLiB0byBjaGVjayBmb3IgaW5kZXBlbmRlbmNlIG9mIGNvcGllZCBidWZmZXIuCgoyMDEyLTA3LTA0IDE4OjMyOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogcmVtb3ZlIG91dGRhdGVkIGJpdHMgb2Ygd2FybmluZyBtZXNzYWdlCgkgIEkgdGhpbmsgd2UgY2FuIGJlIHJlYXNvbmFibGUgc3VyZSBwZW9wbGUgYXJlIHVzaW5nIGFuIHVwLXRvLWRhdGUKCSAgZ3N0LXVuaW5zdGFsbGVkIHNjcmlwdCBub3cuCgoyMDEyLTA3LTA0IDE4OjE2OjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIEFkZCB2ZXJzaW9uZWQgdmFyaWFudHMgb2Ygc29tZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKCSAgSW1wcm92ZSBwYXJhbGxlbCBpbnN0YWxsYWJpbGl0eSBpbiBzZXR1cHMgbGlrZSBqaGJ1aWxkIGJ5CgkgIHByb3ZpZGluZyB2ZXJzaW9uZWQgdmFyaWFudHMgb2Ygc29tZSBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CgkgIEdTVF9SRUdJU1RSWV8xXzAKCSAgR1NUX1BMVUdJTl9QQVRIXzFfMAoJICBHU1RfUExVR0lOX1NZU1RFTV9QQVRIXzFfMAoJICBHU1RfUExVR0lOX1NDQU5ORVJfMV8wCgkgIHdpbGwgbm93IGJlIGNoZWNrZWQgYmVmb3JlIGNoZWNraW5nIHRoZSB1bnZlcnNpb25lZCBvbmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5NDA3CgoyMDEyLTA3LTA0IDE3OjU1OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgZG9jczogZml4IHR5cG8gaW4gR3N0U2FtcGxlIGRvY3MKCjIwMTItMDctMDQgMTc6MzY6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIHVyaTogdGhlcmUgYXJlIHZhbGlkIFVSSSBwcm90b2NvbHMgd2l0aCBvbmx5IHR3byBsZXR0ZXJzLCBsaWtlIGZkOi8vCgkgIFdlIGFkZGVkIGEgbWluaW11bSBsZW5ndGggb2YgdGhyZWUgbGV0dGVycyBvcmlnaW5hbGx5IHNvIHdlIHdvdWxkCgkgIGZhaWwgdG8gcmVjb2duaXNlIERPUy9XaW5kb3dzLXN0eWxlIGZpbGVuYW1lcyBhcyB2YWxpZCBVUklzIChhcyB3ZQoJICBzaG91bGQpLiBUd28gc2hvdWxkIGJlIGp1c3QgZmluZSBhcyB3ZWxsLgoKMjAxMC0xMC0xMyAxMzozNjowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IEFQSSBhZGRpdGlvbnMKCjIwMDktMDktMjkgMDk6NTQ6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGRhdGFxdWV1ZS5oOgoJICBkYXRhcXVldWU6IFVzZSBHc3RRdWV1ZUFycmF5CgoyMDA5LTA5LTI4IDE3OjMxOjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBVc2UgbmV3IEdzdFF1ZXVlQXJyYXkgZm9yIGxvY2FsIHN0b3JhZ2UuCgkgIE1ha2VzIF9jaGFpbigpIGFuZCBfbG9vcCgpIDI1JSBmYXN0ZXIKCjIwMDktMDktMjkgMDk6MDY6MTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9xdWV1ZWFycmF5LmM6CgkgIGNoZWNrOiBOZXcgdW5pdCB0ZXN0IGZvciBHc3RRdWV1ZUFycmF5CgoyMDA5LTA5LTI4IDE3OjMwOjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RxdWV1ZWFycmF5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cXVldWVhcnJheS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGxpYnM6IE5ldyBncm93aW5nLW9ubHkgcXVldWUuCgkgIFRoaXMgaXMgYSBxdWV1ZSB3aGljaCBoYXMgdGhlIHNhbWUgQVBJIGFzIEdRdWV1ZSwgZXhjZXB0IHRoYXQ6CgkgICogSXQgdXNlcyBhbiBhcnJheSwgaW5zdGVhZCBvZiBhIGRvdWJsZWQtbGlua2VkLWxpc3QKCSAgKiBUaGUgYXJyYXkgY2FuIG9ubHkgZ3Jvdy4KCSAgVGhpcyBjb2RlIGlzIG5vdC10aHJlYWRzYWZlLiBJdCBpcyB1cCB0byB0aGUgb3duZXIgdG8gbWFrZSBzdXJlIHRoZQoJICBwcm9wZXIgbG9ja2luZyBpcyB0YWtlbiBiZWZvcmUgY2FsbGluZyB0aGlzIEFQSS4KCjIwMTItMDctMDQgMTY6MTY6MDQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIHNlZ21lbnQ6IG1ha2Ugc3VyZSB3ZSBkb24ndCBoYXZlIHVubWFwcGVkIHNlZWsgZmxhZ3MgbGl0dGVyaW5nIG91dCBzZWdtZW50IGZsYWdzCgkgIE1ha2UgR3N0U2Vla0ZsYWcgdG8gR3N0U2VnbWVudEZsYWcgY29udmVyc2lvbiBleHBsaWNpdCwgYW5kCgkgIHNldCBvbmx5IHRob3NlIHNlZWsgZmxhZ3MgaW4gdGhlIHNlZ21lbnQgZmxhZ3Mgd2hpY2ggYXJlCgkgIG1hcHBlZC4gVGhpcyBtYWtlcyBzdXJlIHdlIGRvbid0IGhhdmUgZXh0cmFuZW91cyBmbGFncwoJICBsaXR0ZXJpbmcgb3VyIHNlZ21lbnQgZmxhZyBmaWVsZCwgd2hpY2ggYWxzbyBmaXhlcyB0aGUKCSAgZGVidWcgcHJpbnRpbmcvc2VyaWFsaXNhdGlvbiBvZiBzZWdtZW50IGV2ZW50cyBpbiB0aGUKCSAgZGVidWcgbG9nLgoKMjAxMi0wNy0wNCAxMDoyNDoxMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1pbm9yIHBvcnRpbmctdG8tMC4xMS50eHQgdXBkYXRlCgoyMDEyLTA3LTA0IDEwOjIzOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBtYWtlIGNoZWNrcyBmb3IgZnJvbS90b19nX2RhdGVfdGltZSgpIGFjdHVhbGx5IHdvcmsgcHJvcGVybHkKCjIwMTItMDYtMjkgMjE6NTI6NDcgLTA0MDAgIEpvc2h1YSBNLiBEb2UgPGpvc2hAam9zaGRvZS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGF0ZXRpbWU6IGFkZCBjb252ZXJzaW9uIHRvL2Zyb20gR0RhdGVUaW1lCgkgIEV4cG9zZXMgZXhpc3RpbmcgY29uc3RydWN0b3IuCgkgIEFQSTogZ3N0X2RhdGVfdGltZV90b19nX2RhdGVfdGltZSgpCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV9nX2RhdGVfdGltZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkwODAKCjIwMTItMDctMDQgMDg6NTI6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogcmVtb3ZlIHVudXNlZCBnc3RfcHJpbnRfKiBmdW5jdGlvbnMKCjIwMTItMDctMDMgMjI6MjQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZHM6IG5vIG5lZWQgdG8gZGVhY3RpdmF0ZSBwYWRzIHRoYXQgYXJlIGFscmVhZHkgaW4gUEFEX01PREVfTk9ORQoKMjAxMi0wNy0wMyAyMjoyMDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWRzOiBtYWtlIHBhZCBhY3RpdmF0aW9uIGRlYnVnIGxvZ3MgYSBiaXQgbW9yZSByZWFkYWJsZQoKMjAxMi0wNy0wMyAxOToxNToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBlbGVtZW50IHJlLXVzZSB1c2luZyBmYWtlc3JjCgoyMDEyLTA3LTAzIDE5OjA0OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjbGVhciBFT1MgZmxhZyB3aGVuIGRlYWN0aXZhdGluZyBwYWRzIGZpeGluZyBlbGVtZW50IHJlLXVzZQoKMjAxMi0wNy0wMyAxNzoyNToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBQb3N0IFRPQyBtZXNzYWdlcyBvbiB0aGUgYnVzIGluIHRoZSBzaW5rcywgc2ltaWxhciB0byB0YWdzCgoyMDEyLTA3LTAzIDEyOjM4OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCB0aGUgX2dldF9tYXBwZWQgZnVuY3Rpb24KCSAgRml4IHRoZSBpbnRlcm5hbCBfZ2V0X21hcHBlZCBmdW5jdGlvbi4gZ3N0X21lbW9yeV9tYWtlX21hcHBlZCgpIHRha2VzIG93bmVyc2hpcAoJICBvZiB0aGUgbWVtb3J5IHNvIHdlIG5lZWQgdG8ga2VlcCBhbiBhZGRpdGlvbmFsIHJlZiB1bnRpbCB3ZSBhcmUgZG9uZS4KCjIwMTItMDctMDMgMTI6MjM6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogYWRkIG1vcmUgZGVidWcgbG9nCgoyMDEyLTA3LTAzIDEwOjAyOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogVGhlIEdBUCBldmVudCBpcyAocGFydGlhbGx5KSBpbXBsZW1lbnRlZCBub3csIFNUUkVBTV9DT05GSUcgaXNuJ3QKCjIwMTItMDYtMjggMTY6NDI6MDggKzA4MDAgIENodW4td2VpIEZhbiA8ZmFuY2h1bndlaUBzcmMuZ25vbWUub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZ3M6IGluY2x1ZGUgZ3N0L21hdGgtY29tcGF0LmggZm9yIGlzbmFuKCkKCSAgRHVlIHRvIHRoZSB1c2FnZSBvZiBpc25hbigpLCB3aGVyZSBhbiBpbXBsZW1lbnRhdGlvbiBpcyBhZGRlZCBpbnRvCgkgIGdzdC9tYXRoLWNvbXBhdC5oLiBGaXhlcyBidWlsZCBvbiBWaXN1YWwgQysrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTEyCgoyMDEyLTA2LTI5IDE2OjUyOjMxICswODAwICBDaHVuLXdlaSBGYW4gPGZhbmNodW53ZWlAc3JjLmdub21lLm9yZz4KCgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBtYXRoLWNvbXBhdC5oOiBhZGQgaW1wbGVtZW50YXRpb24gZm9yIGlzbmFuKCkgZm9yIFZpc3VhbCBDKysKCSAgVmlzdWFsIEMrKyBkb2VzIG5vdCBoYXZlIGlzbmFuKCksIHNvIGFkZCBmYWxsYmFjayB0bwoJICBtYXRoLWNvbXBhdC5oIChjb3VsZCB1c2UgX2lzbmFuKCkgaW4gdGhpcyBjYXNlLCBidXQKCSAgdGhpcyBtYWtlcyBpdCB3b3JrIGZvciBhbGwgY2FzZXMgd2hlcmUgaXNuYW4gaXMgbWlzc2luZykuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzkxMTIKCjIwMTItMDYtMjkgMTA6NTY6MzQgKzA4MDAgIENodW4td2VpIEZhbiA8ZmFuY2h1bndlaUBzcmMuZ25vbWUub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rLmM6IGZpeCBHX09TX1dJTjMyICNpZmRlZgoJICBQb3N0cG9uZSB0aGUgI2lmZGVmIHRvIGEgcG9pbnQgYWZ0ZXIgZ2xpYi5oICh2aWEgZ3N0ZmRzaW5rLmgpIGlzIGluY2x1ZGVkCgkgIHNvIHRoYXQgdGhlIG5lZWRlZCBkZWZpbmVzIGFuZCBoZWFkZXIgaW5jbHVkZXMgY2FuIGJlIGRvbmUgY29ycmVjdGx5LAoJICBlc3BlY2lhbGx5IG9uIFZpc3VhbCBDKysgYnVpbGRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc5MTEyCgoyMDEyLTA1LTI3IDIzOjA5OjQzICswMzAwICBSYWltbyBKw6RydmkgPHJhaW1vLmphcnZpQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogZml4IGJ1aWxkIG9mIGRhdGV0aW1lIHVuaXQgdGVzdCBpbiBXaW5kb3dzCgkgIEFsc28gaW5jbHVkZSBjb25maWcuaCBmb3IgYWxsIHRoZSAjaWZkZWYgSEFWRV9YWVouCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY5MzUKCjIwMTItMDYtMjkgMTE6MTk6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogZG9uJ3QgdXNlIGdfc3RyZHVwX3ZhbHVlX2NvbnRlbnRzKCkKCSAgZ19zdHJkdXBfdmFsdWVfY29udGVudHMoKSBkb2VzIHNvbWUgZXh0cmEgZXNjYXBpbmcsIHByZXZlbnRpbmcgdXMgZnJvbSB1c2luZyB0aGUKCSAgb3V0cHV0IG9uIHRoZSBjb25zb2xlIHRvIGJlIHVzZWQgZGlyZWN0bHkuCgoyMDEyLTA2LTI4IDE0OjQxOjQzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICBkb2NzOiBleHBhbmQgYSBiaXQgbW9yZSBvbiBHU1RfREVCVUcgZG9jcwoKMjAxMi0wNi0yOCAxMTowMjoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgX2FwcGVuZF9yZWdpb24gZnVuY3Rpb24KCSAgTWFrZSBhIGdzdF9idWZmZXJfYXBwZW5kX3JlZ2lvbigpIGZ1bmN0aW9uIHRoYXQgYWxsb3dzIHlvdSB0byBhcHBlbmQgYSBtZW1vcnkKCSAgcmVnaW9uIGZyb20gb25lIGJ1ZmZlciB0byBhbm90aGVyLiBUaGlzIGlzIGEgbW9yZSBnZW5lcmFsIHZlcnNpb24gb2YKCSAgZ3N0X2J1ZmZlcl9hcHBlbmQoKS4KCjIwMTItMDYtMjggMDk6MzY6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIERUUyBhbmQgUFRTCgkgIFVzZSBEVFMgYW5kIFBUUyBvZiB0aGUgc3ViY2xhc3MuCgkgIENhbGN1bGF0ZSBQVFMgZnJvbSBEVFMgb24ga2V5ZnJhbWVzLgoKMjAxMi0wNi0yNyAyMzowMToxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICB0ZXN0czogdGVzdCBkYXRldGltZSBkZXNlcmlhbGlzYXRpb24gYSBiaXQgbW9yZQoKMjAxMi0wNi0yNyAyMzowMDowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogaWdub3JlIDAgZGF5cyBvciBtb250aHMgaW4gZGF0ZXMKCSAgSGFuZGxlIDAgbW9udGhzIG9yIGRheXMgY29ycmVjdGx5IGluIGRhdGUgc3RyaW5ncywgc28gdGhhdAoJICAyMDEyLTA2LTAwIGlzIHBhcnNlZCB0aGUgc2FtZSBhcyAyMDEyLTA2LCBmb3IgZXhhbXBsZS4KCjIwMTItMDEtMDEgMTY6Mzg6MDggKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgYnVpbGQ6IE1ha2Ugc3VyZSBBQ19JTkNMVURFU19ERUZBVUxUIGlzIHVzZWQKCSAgV2l0aG91dCB1c2luZyBBQ19JTkNMVURFU19ERUZBVUxUIGV4cGxpY2l0bHksCgkgIGNlcnRhaW4gcGxhdGZvcm1zIHdpbGwgY29tcGxhaW4gdGhhdCB0aGUgaGVhZGVyCgkgIHdhcyBmb3VuZCwgYnV0IG5vdCB1c2FibGUgYnkgdGhlIGNvbXBpbGVyLgoJICBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIG9uIFNvbGFyaXMgd2hlcmUgY2VydGFpbgoJICBoZWFkZXJzIGFyZSBuZWVkZWQgdG8gcHVsbCBpbiBwcm9wZXIgZGVmaW5lcy4KCSAgQWxzbyB1cGdyYWRlIHRvIG5ld2VyIGF1dG9jb25mIHN5bnRheCBhbmQgdXNlIHByb3BlciBxdW90aW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MjkzCgoyMDEyLTA2LTI3IDIwOjUyOjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogZml4IGJ1cyBsZWFrIGluIEdzdEJpbiB0ZXN0X3N0YXRlX2NoYW5nZV9za2lwIHRlc3QKCSAgU3RpbGwgbm90IHZhbGdyaW5kIGNsZWFuIHRob3VnaC4KCjIwMTItMDYtMjcgMTk6NTk6MjkgKzAxMDAgIENocmlzdG9waGUgRmVyZ2VhdSA8dGV1ZkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSAgcGFyc2U6IGVzY2FwZSBcIHdpdGggYSBcIGFzIHdlbGwsIHNvIHRoYXQgd2UgZG9uJ3QgbG9zZSB0aGUgXCB3aGVuIHVuZXNjYXBpbmcKCSAgSWYgd2UgaGF2ZSBhIGZpbGUgY2FsbGVkIEZvb1xCYXIub2dnLCB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcwoJICB0aGF0IGZpbGVuYW1lIHByb3Blcmx5IHRvIGZpbGVzcmMgaW4gZ3N0X3BhcnNlX2xhdW5jaCgpLCBzaW5jZQoJICBnc3RfcGFyc2VfdW5lc2NhcGUoKSB3aWxsIGp1c3QgdW5lc2NhcGUgXHggdG8geC4KCSAgTm90IGNoZXJyeS1waWNraW5nIHRoaXMgaW50byAwLjEwIHNpbmNlIHRoZXJlIGFyZSBhcHBhcmVudGx5CgkgIGFwcHMgdGhhdCB3b3JrIGFyb3VuZCB0aGlzIHByb2JsZW0gYW5kIHdoaWNoIHdvdWxkIGJyZWFrIGlmCgkgIHdlIGZpeGVkIGl0IHRoZXJlIHRvby4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzMxOQoKMjAxMi0wNi0yNyAxNjozNzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IGFubm90YXRlIHNvbWUgb2YgdGhlIHR5cGUgZGVmaW5lcyBmb3IgZy1pCgkgIFR5cGUgaXMgbm90IHBpY2tlZCB1cCB5ZXQgdGhvdWdoLCBhbmQgd2Ugc3RpbGwgbmVlZAoJICB0byBhbm5vdGF0ZSB2YWx1ZXMgZm9yIHRoZSAnc2ltcGxlJyBkZWZpbmVzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3OTI1CgoyMDEyLTA2LTI3IDE0OjQ4OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogYW5ub3RhdGUgR1NUX0NMT0NLX1RJTUVfTk9ORSB3aXRoIGl0cyB2YWx1ZSBmb3IgZy1pCgkgIFRoZSB2YWx1ZSBub3cgZ2V0cyBwaWNrZWQgdXAsIGJ1dCBpdCBzdGlsbCB0aGlua3MgdGhlIHR5cGUKCSAgaXMgYSAnZ2ludCcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg5MjgKCjIwMTItMDYtMjcgMTM6MTk6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBkYXRldGltZSBzZXJpYWxpc2F0aW9uL2Rlc2VyaWFsaXNhdGlvbiB0ZXN0cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MDMxCgoyMDEyLTA2LTI3IDEzOjE2OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRhdGV0aW1lOiBmaXggY29tcGFyZSBmdW5jdGlvbgoJICBUYWtlIGludG8gYWNjb3VudCB0aGF0IG5vdCBhbGwgZmllbGRzIG1pZ2h0IGJlIHZhbGlkICh0aG91Z2ggdGhleQoJICBhcmUgdmFsaWQgaW4gdGhlIEdEYXRlVGltZSBzdHJ1Y3R1cmUpLiBCdXQgd2Ugc2hvdWxkIGp1c3QgcmV0dXJuCgkgIHVub3JkZXJlZCBpZiB0aGUgc2V0IGZpZWxkcyBkb24ndCBtYXRjaC4gQWxzbywgZG9uJ3QgY2hlY2sKCSAgbWljcm9zZWNvbmRzIHdoZW4gY29tcGFyaW5nIGRhdGV0aW1lcywgc2luY2Ugd2UgZG9uJ3Qgc2VyaWFsaXNlCgkgIHRob3NlIGJ5IGRlZmF1bHQgaWYgdGhleSdyZSBhdmFpbGFibGUuIFRoaXMgZW5zdXJlcyBkYXRlIHRpbWVzIGFyZQoJICBzdGlsbCByZWdhcmRlZCBhcyBlcXVhbCBhZnRlciBzZXJpYWxpc2luZytkZXNlcmlhbGlzaW5nLgoKMjAxMi0wNi0xOCAwODowNjo0OSArMDIwMCAgT2xla3NpaiBSZW1wZWwgPGJ1Zy10cmFja0BmaXNoZXItcHJpdmF0Lm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRhdGV0aW1lOiBhZGQgc2VyaWFsaXNhdGlvbiB0byBhbmQgZGVzZXJpYWxpc2F0aW9uIGZyb20gSVNPIDg2MDEgc3RyaW5ncwoJICBTb21lIHRhZyBwYXJzZXJzIGFuZCB3cml0ZXJzIHVzZSBzYW1lIGRhdGV0aW1lIGZvcm1hdCBiYXNlZCBvbiBJU08gODYwMS4KCSAgV2UgY2FuIHJlZHVjZSBzb21lIGNvZGUgYnkgY3JlYXRpbmcgc29tZSBnZW5lcmFsIGZ1bmN0aW9ucyBmb3IgaXQuCgkgIEFQSTogZ3N0X2RhdGVfdGltZV90b19pc284NjAxX3N0cmluZygpCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV9pc284NjAxX3N0cmluZygpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzgwMzEKCjIwMTItMDYtMDcgMTE6MzA6NDggKzAxMDAgIExpb25lbCBMYW5kd2VybGluIDxsbGFuZHdlcmxpbkBnbWFpbC5jb20+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiBhZGQgLS1kaXNhYmxlLXRvb2xzIGFuZCAtLWRpc2FibGUtYmVuY2htYXJrcyBvcHRpb25zCgkgIEFkZCBvcHRpb24gdG8gYXZvaWQgYnVpbGQgYmluYXJpZXMuIFdoZW4gYnVpbGRpbmcgZm9yIHBsYXRmb3JtcyBsaWtlCgkgIGFuZHJvaWQsIHlvdSBtaWdodCB3YW50IHRvIG5vdCBsaW5rIGFueSAiZmluYWwiIGJpbmFyeSwgbW9zdGx5IGJlY2F1c2UKCSAgaXQgcmVxdWlyZXMgc3BlY2lhbCBsaW5rIGZsYWdzIG9yIG90aGVyIHBhcnRzIG9mIGNvZGUgdGhhdCBhcmVuJ3QKCSAgaW4gdGhlIEMgbGlicmFyeS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzYyMQoKMjAxMi0wNi0yNiAyMDo0MToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0b2M6IHB1dCB0b2MgZGlyZWN0bHkgaW50byBldmVudC9tZXNzYWdlL3F1ZXJ5IHN0cnVjdHVyZQoJICBOb3cgdGhhdCBUT0NzIGFyZSByZWZjb3VudGVkIGFuZCBoYXZlIGEgR1R5cGUsIHdlIGNhbiBqdXN0CgkgIHN0dWZmIGEgcmVmIG9mIHRoZSBUT0MgZGlyZWN0bHkgaW50byB0aGUgdmFyaW91cyB0b2MKCSAgZXZlbnQvbWVzc2FnZS9xdWVyeSBzdHJ1Y3R1cmVzIGFuZCBnZXQgcmlkIG9mIGxvdHMgb2YKCSAgY3JhY2t0YXN0aWMgR3N0U3RydWN0dXJlIDwtPiBHc3RUb2Mgc2VyaWFsaXNhdGlvbiBhbmQKCSAgZGVzZXJpYWxpc2F0aW9uIGNvZGUuIFdlIGxvc2Ugc29tZSBUT0Mgc2FuaXR5IGNoZWNraW5nCgkgIGluIHRoZSBwcm9jZXNzLCBidXQgdGhhdCBzaG91bGQgcmVhbGx5IGJlIGRvbmUgd2hlbgoJICBpdCdzIGJlaW5nIGNyZWF0ZWQgYW55d2F5LgoKMjAxMi0wNi0yNiAxODoyMjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIFJldmVydCAiYnVzOiBza2lwIGdzdF9idXNfY3JlYXRlX3dhdGNoIGFzIEdTb3VyY2UgaXMgbm90IGludHJvc3BlY3RhYmxlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzMGUzNmE4OWJjNWMyYTBmMmU0YWI3YTczYmZhNjMwYzFlMDMzNmEuCgkgIFRoaXMgc2hvdWxkbid0IGhhdmUgYmVlbiBwdXNoZWQsIHNpbmNlIEdTb3VyY2UgaXMgbm93IGhhbmRsZWQKCSAgKGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc3MjUpCgoyMDExLTA4LTI5IDEzOjU3OjAzIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBza2lwIGdzdF9idXNfY3JlYXRlX3dhdGNoIGFzIEdTb3VyY2UgaXMgbm90IGludHJvc3BlY3RhYmxlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTItMDYtMjYgMTc6MzU6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogc29tZSBtb3JlIGFkZGl0aW9ucyB0byB0aGUgcG9ydGluZy10by0wLjExIGd1aWRlCgoyMDEyLTA2LTI2IDE3OjI3OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkgIHRvb2xzOiBtaW5vciBjbGVhbi11cAoJICBHZXQgcmlkIG9mIHN1cGVyZmx1b3VzIGFyZ3VtZW50LgoKMjAxMi0wNi0yNiAxNzowNDowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy90b29scy5oOgoJICB0b29sczogcmVtb3ZlIHVzZWxlc3MgZ19zZXRfcHJnbmFtZSgpIHdyYXBwZXIKCjIwMTItMDYtMjYgMTY6NTU6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcG9pbnQgcGVvcGxlIHRvIHJpZ2h0IGJpbmFyeSB3aGVuIGEgY3Jhc2ggaGFwcGVucwoJICAiZ3N0LWxhdW5jaCIgaXMgdGhlIDAuMTAgd3JhcHBlciBzY3JpcHQsIHVzaW5nIHRoYXQgd2l0aAoJICBnZGIgaXMgbm90IGdvaW5nIHRvIHlpZWxkIGdyZWF0IHJlc3VsdHMuCgoyMDEyLTA2LTI2IDE2OjQyOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBidW1wIEdMaWIgcmVxdWlyZW1lbnQgdG8gbm93LXJlbGVhc2VkIHN0YWJsZSB2ZXJzaW9uCgoyMDEyLTA2LTI2IDE2OjQyOjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiByZW1vdmUgc29tZSBkZWFkIGNvZGUgZm9yIG9sZCBHTGliIHZlcnNpb25zCgoyMDEyLTA2LTI1IDIzOjE3OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IGFkZCBtb3JlIGVudHJ5IHR5cGVzCgkgIE1ha2UgZW50cnkgdHlwZXMgbGVzcyBhYnN0cmFjdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODc0MgoKMjAxMi0wNi0xNyAxMjo0ODowNCArMTAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgYSBjb3VwbGUgb2Ygbm90ZXMgZm9yIHRoZSAwLjExIHBvcnRpbmcgZ3VpZGUKCjIwMTItMDYtMjYgMDk6NTE6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogYWRkIHN0ZWFsX3FkYXRhCgkgIFJld29yayB0aGUgcWRhdGEgY29kZSBhIGxpdHRsZQoKMjAxMi0wNi0yNSAxOTo1Mjo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2NzZXR0ZXI6IGNsZWFuIHVwIGFuZCB1cGRhdGUgQVBJIGZvciByZWZjb3VudGVkIFRPQ3MKCSAgTGV0J3Mga2VlcCBpdCBzaW1wbGUgZm9yIG5vdzoKCSAgZ3N0X3RvY19zZXR0ZXJfcmVzZXRfdG9jKCkgLT4gZ3N0X3RvY19zZXR0ZXJfcmVzZXQoKQoJICBnc3RfdG9jX3NldHRlcl9nZXRfdG9jX2NvcHkoKSAtPiByZW1vdmVkCgkgIGdzdF90b2Nfc2V0dGVyX2dldF90b2MoKSAtPiByZXR1cm5zIGEgcmVmIG5vdwoJICBnc3RfdG9jX3NldHRlcl9nZXRfdG9jX2VudHJ5X2NvcHkoKSAtPiByZW1vdmVkLAoJICB1c2UgVE9DIGZ1bmN0aW9ucyBpbnN0ZWFkCgkgIGdzdF90b2Nfc2V0dGVyX2dldF90b2NfZW50cnkoKSAtPiByZW1vdmVkLAoJICB1c2UgVE9DIGZ1bmN0aW9ucyBpbnN0ZWFkCgkgIGdzdF90b2Nfc2V0dGVyX2FkZF90b2NfZW50cnkoKSAtPiByZW1vdmVkLAoJICB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIChyZWZjb3VudC1kZXBlbmRlbnQpCgkgIHdyaXRhYmlsaXR5IG9mIFRPQzsgdXNlIFRPQyBmdW5jdGlvbnMgaW5zdGVhZAoKMjAxMi0wNi0yNSAwOTozMjo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBpbXByb3ZlIGRvY3MKCSAgTWVudGlvbiB0aGF0IGN1c3RvbSBhbGxvY2F0b3IgZnVuY3Rpb25zIGNhbiBwYXNzIHdoYXRldmVyIHRoZXkgd2FudCB0byB0aGUKCSAgdXNlcl9kYXRhLgoKMjAxMi0wNC0wNiAxODowMDozMyArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiB1c2UgR19ERUZJTkVfSU5URVJGQUNFXyogbWFjcm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzY0MQoKMjAxMi0wNC0wNiAxNzo1OTozNSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0b2NzZXR0ZXIuYzoKCSogZ3N0L2dzdHRvY3NldHRlci5oOgoJICB0b2NzZXR0ZXI6IHVzZSBHX0RFRklORV9JTlRFUkZBQ0VfKiBtYWNybwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczNjQxCgoyMDEyLTA2LTI1IDAwOjEwOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiB1cGRhdGUgZGVzaWduIGRvY3MgZm9yIFRPQyBBUEkgY2hhbmdlcyB0b28KCjIwMTItMDYtMjQgMjA6MTA6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvY3NldHRlciwgZ3N0LWxhdW5jaCwgdGVzdHM6IHVwZGF0ZSBmb3IgR3N0VG9jIEFQSSBjaGFuZ2VzCgoyMDEyLTA2LTI0IDIwOjA4OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0b2M6IG1ha2UgR3N0VG9jIGFuZCBHc3RUb2NFbnRyeSBtaW5pIG9iamVjdHMKCSAgQmVjYXVzZSB3ZSBjYW4sIGFuZCBpbiBvcmRlciB0byBtYWtlIHRoZW0gcmVmY291bnRlZC4KCjIwMTItMDYtMjMgMjE6NDI6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggY29uZnVzaW5nIGxvZyBtZXNzYWdlCgoyMDEyLTA2LTIzIDIxOjM1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBmaXggaW50NjQgLSBpbnQ2NCByYW5nZSBpbnRlcnNlY3Rpb24gb24gYmlnIGVuZGlhbiBzeXN0ZW1zCgkgIFdvcmtzIGJldHRlciBpZiB3ZSB1c2UgdGhlIHZfaW50NjQgZmllbGQgb2YgdGhlIEdWYWx1ZSBpbnN0ZWFkIG9mIHZfaW50LgoKMjAxMi0wNi0yMyAxOTo1NjoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgbWluaW9iamVjdHM6IHBhc3MgY29weSwgZGlzcG9zZSBhbmQgZnJlZSBmdW5jdGlvbiB0byBnc3RfbWluaV9vYmplY3RfaW5pdCgpCgkgIFNvIG1pbmkgb2JqZWN0cyBkb24ndCBoYXZlIHRvIHBva2UgaW50byB0aGUgR3N0TWluaU9iamVjdCBwYXJ0CgkgIG9mIHRoZSBzdHJ1Y3R1cmUuIFNhdmVzIGxpbmVzIG9mIGNvZGUsIGFuZCBzZWVtcyBzbGlnaHRseSBjbGVhbmVyLgoJICBXZSBkb24ndCBoYXZlIHByb3BlciBPTyBoaWVyYXJjaGllcyBvciBtZXRob2RzIGhlcmUgYWZ0ZXIgYWxsLgoKMjAxMi0wNi0yMyAxNzowNTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IHJlbW92ZSBzb21lIG91dGRhdGVkIEZJWE1FcyBhbmQgY29tbWVudHMKCjIwMTItMDYtMjMgMTc6MDQ6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIHNhbXBsZTogc29tZSBtb3JlIGctaSBhbm5vdGF0aW9ucwoKMjAxMi0wNi0yMyAxNjo1OToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkgIHNhbXBsZTogYWRkIGNvbXBhcmUgZnVuY3Rpb24gZm9yIEdzdFNhbXBsZQoJICBTaG91bGQgbWFrZSBnc3RfdGFnX2xpc3RfaXNfZXF1YWwoKSB3b3JrIHByb3Blcmx5IHdpdGggaW1hZ2UgdGFncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3MjYzNwoKMjAxMi0wNi0yMyAxNjozMDowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGJ1ZmZlciBjb21wYXJlIGZ1bmN0aW9uCgoyMDEyLTA2LTIzIDE0OjQxOjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB0ZXN0czogYWRkIHVuaXQgdGVzdCBmb3IgZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDU0NjcKCjIwMTItMDYtMjMgMTQ6NDE6MTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogdXBkYXRlIGZvciBnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpKCkgY2hhbmdlCgoyMDEyLTA2LTIzIDE0OjQwOjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaTogYWRkIGVycm9yIGFyZ3VtZW50IHRvIGdzdF9lbGVtZW50X21ha2VfZnJvbV91cmkoKQoJICBTbyBjYWxsZXJzIGNhbiBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdGhlcmUgbm90IGJlaW5nIGEKCSAgaGFuZGxlciBmb3IgdGhlIHByb3RvY29sLCBhbmQgdGhlbSBub3QgYWNjZXB0aW5nIHRoZSBVUkkKCSAgZm9yIHNvbWUgcmVhc29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1NDY3CgoyMDEyLTA2LTIzIDEyOjM3OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhbm5vdGF0ZSBHc3RNYXBJbmZvIGRhdGEgYXMgYXJyYXkgZm9yIGctaQoKMjAxMi0wNi0yMCAxMjo1MzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiByZW1vdmUgcG9pbnRsZXNzIGdldF9zdGF0ZSgpIGluIGdzdC1sYXVuY2gKCSAgU3RhdGUgY2hhbmdlcyB0byBOVUxMIHN0YXRlIGFyZSBhbHdheXMgc3luYy4KCjIwMTItMDYtMjEgMDE6Mjg6NDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBhdm9pZCBub3RpZnktdGFncyBob2xkaW5nIGxvY2sKCSAgdW5sb2NrIGJlZm9yZSBpc3N1aW5nIHRoaXMgbm90aWZpY2F0aW9uIHRvIHByZXZlbnQKCSAgZGVhZGxvY2tzIHdoZW4gb3RoZXIgZWxlbWVudHMgcmVhY3RzIHRvIG5ldyB0YWdzLgoJICBGaXhlcyAjNjc4MjIwCgoyMDEyLTA2LTE4IDE2OjU0OjI5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LXAtYmFkIGdzdC1saWJzIHRvIHRoZSBwYXRoCgkgIE1ha2VzIHZpZGVvcGFyc2VycyBhbmQgY2FtZXJhYmlucyBmcm9tIGJhZCB1c2FibGUgZnJvbSBhbiB1bmluc3RhbGxlZAoJICBlbnZpcm9ubWVudCBhdCBvc3gKCjIwMTItMDYtMjAgMTM6Mjg6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhZGQgZGVzdHJveSBub3RpZnkgdG8gZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24oKQoKMjAxMi0wNi0yMCAxMzoyNzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbgoKMjAxMi0wNi0yMCAxMjoyOTozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvc3RyZWFtLXN0YXR1cy5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGJ1czogYWRkIEdEZXN0cm95Tm90aWZ5IHRvIHNldF9zeW5jX2hhbmRsZXIoKQoKMjAxMi0wNi0yMCAxMjowNjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDYtMjAgMTE6NTk6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIHRhc2s6IGFkZCBzZXBhcmF0ZSBtZXRob2RzIHRvIGFkZCBlbnRlci9sZWF2ZSBjYWxsYmFjawoJICBSZW1vdmUgdGhlIHN0cnVjdHVyZSBvZiBjYWxsYmFja3MgYW5kIHJlcGxhY2Ugd2l0aCBzZXBhcmF0ZSBtZXRob2RzIHRvIHJlZ2lzdGVyCgkgIGVhY2ggY2FsbGJhY2suIFRoaXMgaXMgbXVjaCBtb3JlIGJpbmRpbmcgZnJpZW5kbHkuCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc4OTgKCjIwMTItMDYtMjAgMTA6MzE6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYWRkIEdEZXN0cm95Tm90aWZ5IHRvIF9uZXcKCSAgQWRkIGEgR0Rlc3Ryb3lOb3RpZnkgdG8gdGhlIHVzZXJfZGF0YSB3ZSBwYXNzIHRvIGdzdF90YXNrX25ldygpCgkgIENoYW5nZSBnc3RfcGFkX3N0YXJ0X3Rhc2soKSB0byBhbHNvIHRha2UgdGhlIG5vdGlmeQoKMjAxMi0wNi0yMCAwOTo1ODoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY2xvY2s6IHJlbW92ZSBfZnVsbCB2ZXJzaW9uCgkgIFJlbmFtZSBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsKCkgdG8gZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMoKQoJICBhbmQgcmVtb3ZlIHRoZSBvbGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMoKSB2ZXJzaW9uLgoKMjAxMi0wNi0yMCAwOToyMjo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgIG5ldHRpbWVwYWNrZXQ6IG1ha2UgYm94ZWQKCjIwMTItMDYtMTkgMTk6NTU6MzAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSAgbmV0OiBmaXggc29tZSBhcmd1bWVudCBuYW1lcyBpbiBkb2N1bWVudGF0aW9uCgoyMDEyLTA2LTE5IDE5OjU1OjAyIC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbGxlcjogYXNzb3J0ZWQgbWlub3IgaW50cm9zcGVjdGlvbiBmaXhlcwoKMjAxMi0wNi0xOSAxOTo1Mzo1NCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogYWRkIHNvbWUgbWlzc2luZyBkb2N1bWVudGF0aW9uLCBpbmNsdWRpbmcgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTkgMTg6NDE6MDQgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBiYXNlOiBhZGQgc29tZSBtaXNzaW5nIGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCjIwMTItMDYtMTkgMTc6Mzc6NTkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkgIHRhc2sgcG9vbDogc2V0IHNjb3BlIG9mIGdzdF90YXNrX3Bvb2xfcHVzaCBjYWxsYmFjayB0byBhc3luYwoKMjAxMi0wNi0xOSAxNzozMzo0NSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHRhc2twb29sLmM6CgkgIGludHJvc3BlY3Rpb246IGFkZCBtaXNzaW5nIHJldHVybiB2YWx1ZSBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xOSAxNjowOToxMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgaW50cm9zcGVjdGlvbjogcmVuYW1lIHNvbWUgImRhdGEiIGFyZ3VtZW50cyB0byAidXNlcl9kYXRhIgoJICBHT2JqZWN0IEludHJvc3BlY3Rpb24gd2lsbCBhdXRvbWF0aWNhbGx5IHRyZWF0ICJ1c2VyX2RhdGEiIGFyZ3VtZW50cwoJICBhcyBjbG9zdXJlIGRhdGEuCgoyMDEyLTA2LTE5IDE2OjA4OjQ2IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBhZGQgc29tZSBtaXNzaW5nIGVsZW1lbnQtdHlwZSBhbm5vdGF0aW9ucwoKMjAxMi0wNi0xOSAxNjowNjo0OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXIgcG9vbDogcHV0IEdzdEJ1ZmZlclBvb2xBY3F1aXJlUGFyYW1zIHR5cGVkZWYgYmVmb3JlIHN0cnVjdAoJICBXb3JrcyBhcm91bmQgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU4MTUyNQoKMjAxMi0wNi0xOSAxNjoxNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHByZXJvbGwgYW5kIHN5bmMgb24gZ2FwIGV2ZW50cwoKMjAxMi0wNi0xOSAxNjowODowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlb3JnYW5pemUgdGhlIGNvZGUgYSBsaXR0bGUKCSAgTW92ZSB0aGUgY29kZSB0byBnZXQgdGhlIHN5bmMgdGltZXMgdG9nZXRoZXIuCgoyMDEyLTA2LTE5IDE0OjMwOjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBGaXggZG9jcyB0eXBvCgoyMDEyLTA2LTE5IDE0OjA1OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBhc3NlcnQgYWJvdXQgdGltZXN0YW1wIG92ZXJmbG93cwoJICBBc3NlcnQgd2hlbiBjb252ZXJ0aW5nIHRvIHRpbWV2YWwgYW5kIHRpbWVzcGVjIGFib3V0IG92ZXJmbG93cy4gVGhpcyBjYW4gaGFwcGVuCgkgIG9uIHBsYXRmb3JtcyB3aXRoIDMyYml0cyBsb25nLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc4MTgxCgoyMDEyLTA2LTE5IDEwOjEzOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHJlbW92ZSBnc3RfcGFkX3NldF9jYXBzCgoyMDEyLTA2LTE5IDEwOjMyOjEwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBPbmx5IHByb3h5IHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGZvciB0aGUgYWN0aXZlIHBhZCBhbmQgc2VuZCByZWNvbmZpZ3VyZSBldmVudHMgdG8gdGhlIG9sZC9uZXcgcGFkIHdoZW4gc3dpdGNoaW5nIHBhZHMKCjIwMTItMDYtMTggMTY6MTQ6MTkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1vdmUgZ3N0X3BhZF9zZXRfY2FwcygpIHRvIGNvbXBhdAoJICBXZSB3YW50IGNvZGUgdG8gZXhwbGljaXRseSBzZW5kIGEgY2FwcyBldmVudCBpbnN0ZWFkLgoKMjAxMi0wNi0xOCAxNjoxMzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZml4IHNvbWUgZG9jcwoKMjAxMi0wNi0xOCAxNTo1MjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHNtYWxsIGRvYyBmaXgKCjIwMTItMDYtMTggMTU6Mjg6MjAgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBDYXN0IHRvIHRoZSByaWdodCB2YWx1ZSwgaXQgbWlnaHQgaW5kZWVkIG92ZXJmbG93IGJ1dCB3ZSB3YW50IHRoZSBjb21waWxlciB0bwoJICBpZ25vcmUgdGhhdC4KCjIwMTItMDYtMTggMTU6MjI6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBoaWRlIHFkYXRhIGFycmF5IGxheW91dAoKMjAxMi0wNi0xOCAxNToyMTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IGNsYXJpZnkgcWRhdGEgd3J0IHRvIG1ldGFkYXRhCgoyMDEyLTA2LTE4IDE1OjIxOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgbmV3IGFwaQoKMjAxMi0wNi0xNSAxNjo1Njo0NiAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgaW50cm9zcGVjdGlvbjogYXNzb3J0ZWQgaW50cm9zcGVjdGlvbiBhbmQgZG9jdW1lbnRhdGlvbiBmaXhlcyBpbiBiYXNlCgoyMDEyLTA2LTE1IDE4OjM1OjA1IC0wNzAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgbWlzc2luZyBlbGVtZW50LXR5cGUgYW5ub3RhdGlvbnMKCjIwMTItMDYtMTUgMTY6MTQ6NDkgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBhdG9taWMgcXVldWU6IHJlZ2lzdGVyIGFzIGJveGVkIHR5cGUKCjIwMTItMDYtMTUgMTY6NDM6MzAgLTA3MDAgIEV2YW4gTmVtZXJzb24gPGV2YW5AY29ldXMtZ3JvdXAuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgaW50cm9zcGVjdGlvbjogYXNzb3J0ZWQgaW50cm9zcGVjdGlvbiBhbmQgZG9jdW1lbnRhdGlvbiBmaXhlcwoJICBUaGVzZSBjaGFuZ2VzIGFyZSB0byBjbGVhbiB1cCBzeW50YXggaXNzdWVzIHN1Y2ggYXMgbWlzc2luZyBjb2xvbnMsCgkgIG1pc3Npbmcgc3BhY2VzLCBldGMuLCBhbmQgbWlub3IgaXNzdWVzIHN1Y2ggYXMgYXJndW1lbnQgbmFtZXMgaW4KCSAgaGVhZGVycyBub3QgbWF0Y2hpbmcgdGhlIGltcGxlbWVudGF0aW9uIGFuZC9vciBkb2N1bWVudGF0aW9uLgoKMjAxMi0wNi0xNSAxNDo1MDo0OCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2NzZXR0ZXIuaDoKCSAgdG9jIHNldHRlcjogY2hhbmdlIEdzdFRvY1NldHRlcklGYWNlIHRvIEdzdFRvY1NldHRlckludGVyZmFjZQoJICBXaXRob3V0IHRoaXMgR09iamVjdCBJbnRyb3NwZWN0aW9uIGRvZXMgbm90IHJlY29nbml6ZSB0aGUgY29ubmVjdGlvbgoJICB0byBHc3RUb2NTZXR0ZXIuCgoyMDEyLTA2LTE4IDEyOjE1OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogdXBkYXRlIGRvY3MgYSBsaXR0bGUKCjIwMTItMDYtMTggMTE6MzY6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc2luazogd2FpdF9lb3MoKSAtPiB3YWl0KCkKCSAgUmVuYW1lIGdzdF9iYXNlX3Npbmtfd2FpdF9lb3MoKSB0byBnc3RfYmFzZV9zaW5rX3dhaXQoKSB0byBhdm9pZCBjb25mdXNpb24gYW5kCgkgIGludHJvc3BlY3Rpb24gcHJvYmxlbXMgd2l0aCB0aGUgOjp3YWl0X2VvcyB2bWV0aG9kLiBBbHNvIHRoaXMgbWV0aG9kIGNhbiBiZSB1c2VkCgkgIHRvIHdhaXQgZm9yIG90aGVyIHRoaW5ncyB0aGFuIEVPUy4gVXBkYXRlIHRoZSBkb2NzIGEgbGl0dGxlLgoKMjAxMi0wNi0xOCAxMDoxMzozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6Y2hlY2sgY2FwcyBhcmd1bWVudAoJICBDYXBzIHNob3VsZCBiZSBOVUxMIG9yIGZpeGVkIHdoZW4gY29uZmlndXJlZCBpbiBhIGJ1ZmZlcnBvb2wKCjIwMTItMDYtMTUgMTc6MDE6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBOVUxMIGlzIG5vdCBhIHZhbGlkIGNhcHMgYW55bW9yZQoKMjAxMi0wNi0xNSAxNTo0ODo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVyaW5nLnR4dDoKCSAgZG9jczogcmV2aWV3IHRoZSBidWZmZXJpbmcgZG9jcwoKMjAxMi0wNi0xNSAxNTozNjo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHBlcmNlbnQgc2NhbGluZwoJICBVc2UgX3NjYWxlIGZ1bmN0aW9ucyB0byBzY2FsZSB0aGUgcGVyY2VudCB2YWx1ZXMuCgkgIENvcnJlY3RseSBzY2FsZSB0aGUgcGVyY2VudCB2YWx1ZXMgaW4gdGhlIGJ1ZmZlcmluZyByYW5nZXMuCgoyMDEyLTA2LTE1IDE0OjU0OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIGZsdXNoIHdoZW4gc3RhcnRpbmcKCSAgV2hlbiB3ZSBhcmUgZG9pbmcgdGhlIGluaXRpYWwgc2VlayBpbiBzdGFydHVwLCBhdm9pZCBkb2luZyBhIGZsdXNoCgkgIChhbmQgdW5sb2NrKSBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGUgdGFzayBpcyBub3Qgc3RhcnRlZCB5ZXQuCgoyMDEyLTA2LTE1IDEyOjU4OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMi0wNi0xNSAxMjo1NToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZG9jczogaW1wcm92ZSBBUEkgZG9jcwoKMjAxMi0wNi0xNSAwMDowMDoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIGFsbGxvY2F0b3I6IG5vIG5lZWQgdG8gc3RvcmUgc3RydWN0dXJlIHNpemUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NTQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NTI6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBubyBuZWVkIHRvIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6NDk6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjQ1OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIGNhcHMgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE0IDIzOjQxOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IG5vIG5lZWQgdG8gc3RvcmUgc2l6ZSBvZiB0aGUgbWVzc2FnZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6Mzg6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJICBzYW1wbGU6IG5vIG5lZWQgdG8gc3RvcmUgdGhlIHNpemUgb2YgdGhlIHNhbXBsZSBzdHJ1Y3R1cmUgaW5zaWRlIHRoZSBzdHJ1Y3R1cmUKCjIwMTItMDYtMTQgMjM6MzY6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogbm8gbmVlZCB0byBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgdGFnIGxpc3Qgc3RydWN0dXJlIGluc2lkZSB0aGUgc3RydWN0dXJlCgoyMDEyLTA2LTE1IDExOjI0OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogZXhwYW5kIGRvY3MgYSBsaXR0bGUKCSAgQWRkIGJsdXJiIGFib3V0IHFkYXRhIGFuZCB3ZWFrIHJlZnMuCgoyMDEyLTA2LTE1IDEwOjQ0OjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1pbmlvYmplY3Q6IGFkZCBxZGF0YQoJICBLZWVwIHRyYWNrIG9mIHFkYXRhIGZvciBtaW5pb2JqZWN0cy4gUmV1c2UgdGhlIHdlYWsgcmVmIGFycmF5IGZvciB0aGlzIGJlY2F1c2UKCSAgd2UgY2FuLgoKMjAxMi0wNi0xNSAxMDo1NjoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBlcnJvciBpbiB0aGUgd2VhayByZWYgaGFuZGxpbmcKCSAgV2hlbiAyIHdlYWsgcmVmcyBhcmUgYWRkZWQsIHRoZSBhcnJheSBpcyBub3QgcmVzaXplZCBiaWcgZW5vdWdoLgoJICBTaW1wbGlmeSB0aGUgd2VhayByZWYgaGFuZGxpbmcgY29kZS4KCSAgRnJlZSBtZW1vcnkgd2hlbiB3ZSByZW1vdmUgYWxsIHdlYWsgcmVmcy4KCSAgQWxsb3cgaW5zdGFsbGluZyB0aGUgc2FtZSB3ZWFrIHJlZiBtdWx0aXBsZSB0aW1lcywgbGlrZSBpbiBnb2JqZWN0LgoKMjAxMi0wNi0xNCAxNzoxMToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgbWluaW9iamVjdDogcmVtb3ZlIHRoZSBzaXplIGZpZWxkCgkgIFRoZSBzaXplIGZpZWxkIGlzIHVzZWQgYnkgc3ViY2xhc3NlcyB0byBzdG9yZSB0aGUgdG90YWwgYWxsb2NhdGVkIHNpemUgb2YgdGhlCgkgIG1lbW9yeSBmb3IgdGhpcyBtaW5pb2JqZWN0LiBCZWNhdXNlIG1pbmlvYmplY3QgZG9lc24ndCByZWFsbHkgZG8gYW55dGhpbmcgd2l0aAoJICB0aGlzIGZpZWxkIHdlIGNhbiBtb3ZlIGl0IHRvIHRoZSBzdWJjbGFzc2VzLgoKMjAxMi0wNi0xNCAxNjozMDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogbWFrZSBHc3RNZW1vcnkgYSBtaW5pb2JqZWN0CgoyMDEyLTA2LTE0IDE2OjI3OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBhbHdheXMgcHJpbnQgbWluaW9iamVjdCByZWZjb3VudAoKMjAxMi0wNi0xNCAxNTo0MDo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggY29weSBmdW5jdGlvbgoJICBNYWtlIHRoZSBjb3B5IGZ1bmN0aW9uIG1hcCB0byByZWYgYmVjYXVzZSB3ZSBjYW4ndCBzYWZlbHkgY29weSB0aGUgdXNlcl9kYXRhLgoKMjAxMi0wNi0xNCAxNTozMzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtYWtlIEdzdEFsbG9jYXRvciBhIG1pbmlvYmplY3QKCjIwMTItMDYtMTIgMTM6MjY6MzUgKzAyMDAgIERhdmlkIFN2ZW5zc29uIEZvcnMgPGRhdmlkc2ZAYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBnc3RmdW5uZWw6IGF2b2lkIGFjY2VzcyBvZiBmcmVlZCBwYWQKCSAgU2F2ZSB0aGUgdmFsdWUgb2YgdGhlIHBhZCdzIGdvdF9lb3MgaW4gZ3N0X2Z1bm5lbF9yZWxlYXNlX3BhZCwKCSAgYmVmb3JlIGNhbGxpbmcgZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZC4gVGhpcyBpcyBiZWNhdXNlCgkgIGdzdF9lbGVtZW50X3JlbW92ZV9wYWQgbWF5IGZyZWUgdGhlIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODAxNwoKMjAxMi0wNi0xNCAxNDowNToxNSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggcGFkIHRyYW5zZmVyIGFubm90YXRpb24gZnJvbSBub25lIHRvIGZ1bGwKCSAgc2luY2UgdGhlIHBhZCB3aWxsIGJlIHVucmVmZmVkLgoKMjAxMi0wNi0xMyAxMDo1Mjo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBtZXNzYWdlOiBhZGQgdGhlIHJ1bm5pbmctdGltZSB0byB0aGUgYXN5bmMtZG9uZSBtZXNzYWdlCgkgIEFkZCB0aGUgcnVubmluZy10aW1lIG9mIHRoZSBidWZmZXIgdGhhdCBjYXVzZWQgdGhlIGFzeW5jIG9wZXJhdGlvbiB0byBjb21wbGV0ZQoJICB0byB0aGUgYXN5bmMtZG9uZSBtZXNzYWdlLgoJICBVcGRhdGUgYmluIHRvIGhhbmRsZSB0aGUgbmV3IGFzeW5jLWRvbmUgbWVzc2FnZS4KCjIwMTItMDYtMTMgMTA6NTE6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBwaXBlbGluZTogdXNlIHJlc2V0X3RpbWUgbWVzc2FnZSB0byByZXNldCB0aGUgc3RhcnQgdGltZQoJICBVc2UgdGhlIG5ldyBSRVNFVF9USU1FIG1lc3NhZ2UgdG8gcmVzZXQgdGhlIHN0YXJ0LXRpbWUgb2YgdGhlIHBpcGVsaW5lIHRvIHRoZQoJICByZXF1ZXN0ZWQgdGltZS4KCSAgTWFrZSBiYXNlc2luayByZXF1ZXN0IGEgbmV3IHJ1bm5pbmctdGltZSB3aGVuIHRoZSBmbHVzaC1zdG9wIG1lc3NhZ2UgdGVsbHMgaXQgdG8KCSAgaW5zdGVhc2Qgb2Ygd2FpdGluZyBmb3IgcHJlcm9sbC4KCjIwMTItMDYtMTMgMTA6MTY6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXNzYWdlOiBhZGQgYSBuZXcgbWVzc2FnZSB0byByZXNldCB0aW1lCgkgIEFkZCBhIG5ldyBtZXNzYWdlIHRvIHJlc2V0IHRoZSBwaXBlbGluZSBydW5uaW5nX3RpbWUuIEN1cnJlbnRseSByZXNldGluZyB0aGUKCSAgcGlwZWxpbmUgY2FuIG9ubHkgYmUgcmVxdWVzdGVkIGluIHRoZSBhc3luY19kb25lIG1lc3NhZ2Ugd2hpY2ggbWVhbnMgdGhhdCB0aGUKCSAgcGlwZWxpbmUgbmVlZHMgdG8gYmUgcHJlcm9sbGVkLiBJdCBpcyBiZXR0ZXIgdG8gbW92ZSB0aGlzIHRvIGEgc2VwYXJhdGUgbWVzc2FnZS4KCjIwMTItMDYtMTIgMTc6MTE6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYWx3YXlzIHJlY3Vyc2UgaW50byBiaW5zIHdoZW4gZG9pbmcgc3RhdGUgY2hhbmdlcwoJICBOZXZlciBza2lwIHRoZSBzdGF0ZSBjaGFuZ2Ugb2YgYSBiaW4gYmVjYXVzZSBpdCBuZWVkcyB0byB1cGRhdGUgdGhlIGJhc2UgdGltZSBvZgoJICBpdHMgY2hpbGRyZW4gd2hlbiBuZWVkZWQuCgoyMDEyLTA2LTEzIDAwOjMwOjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBmb3IgbmV3IGRhdGV0aW1lIGFwaQoKMjAxMi0wNi0xMyAwMDoyODowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIGxhdGVzdCBBUEkKCjIwMTItMDYtMTMgMDA6MjU6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogYWRkIG5ldyBkYXRldGltZSBBUEkKCjIwMTItMDYtMTMgMDA6MjE6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBiYXNpYyB1bml0IHRlc3RzIGZvciBwYXJ0aWFsIGRhdGUgdGltZSBmaWVsZHMKCjIwMTItMDYtMTIgMjM6NTI6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJICBkYXRldGltZTogY2xlYW4tdXBzIGFuZCBuZXcgQVBJIGFkanVzdG1lbnRzCgkgIFJlbW92ZSBjb25zdHJ1Y3RvcnMgd2UgZG9uJ3Qgd2FudDoKCSAgZ3N0X2RhdGVfdGltZV9uZXdfeW1kX2goKSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8KCSAgc3VwcG9ydCBob3VyLW9ubHkgZm9yIG5vdzsKCSAgZ3N0X2RhdGVfdGltZV9uZXdfeW1kX2htKCkgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvCgkgIGFkZCBjb25zdHJ1Y3RvcnMgd2l0aCB0aW1lIGluZm8gd2hlcmUgdGhlIGNhbGxlciBkb2Vzbid0CgkgIGhhdmUgdG8gdGhpbmsgYWJvdXQgd2hhdCB0aW1lem9uZSB0aGUgdGltZSBpcyBpbi4KCSAgTG90cyBvZiBjb21wdWxzaXZlIGNsZWFuLXVwLiBEb2NzIGZpeGVzLiBSZXBsYWNlCgkgIGhhc19taW51dGUoKSBhbmQgaGFzX2hvdXIoKSB3aXRoIGhhc190aW1lKCkuCgoyMDEyLTA2LTEyIDIyOjM1OjQyICswMjAwICBPbGVrc2lqIFJlbXBlbCA8YnVnLXRyYWNrQGZpc2hlci1wcml2YXQubmV0PgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RkYXRldGltZS5oOgoJICBkYXRldGltZTogYWxsb3cgR3N0RGF0ZVRpbWUgd2hlcmUgbm90IGFsbCBmaWVsZHMgYXJlIHNldAoJICBJbiBvcmRlciB0byBkZXNlcmlhbGlzZSBhbmQgcmUtc2VyaWFsaXNlIGRhdGVzIGFuZCBkYXRlIHRpbWVzCgkgIGZyb20gdGFncyBwcm9wZXJseSwgd2UgbmVlZCB0byBiZSBhYmxlIHRvIGV4cHJlc3MgcGFydGlhbAoJICBkYXRlcyAoZS5nLiBZWVlZIG9yIFlZWVktTU0pIGFuZCBkYXRlIHRpbWVzLgoJICBXZSBvbmx5IHN1cHBvcnQgcGFydGlhbCBkYXRlIHRpbWVzIHdoZXJlIGFsbCB0aGUgbW9yZQoJICBzaWduaWZpY2FudCBmaWVsZHMgYWJvdmUgdGhlIGZpcnN0IHVuc2V0IGZpZWxkIGFyZSBzZXQKCSAgKGUuZy4gWVlZWS0wMC1ERCBpcyBub3Qgc3VwcG9ydGVkKS4KCSAgQ2FsbGluZyBfZ2V0X2ZvbygpIHdoZW4gZm9vIGlzIG5vdCBzZXQgaXMgbm90IGFsbG93ZWQKCSAgYW55IG1vcmUsIGNhbGxlcnMgbmVlZCB0byBjaGVjayB3aGljaCBmaWVsZHMgYXJlIHNldAoJICBmaXJzdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3Nzc1NwoKMjAxMi0wNi0xMiAyMjo0NTowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IGZpeCB1cCBtaW5vciBpbmNvbnNpc3RlbmN5IGluIHN0cnVjdHVyZSBuYW1lIG9mIHN0YXRlLWNoYW5nZWQgbWVzc2FnZQoKMjAxMi0wNi0xMiAxMTo0MjozMCAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBpbnRyb3NwZWN0aW9uOiBhZGQgc29tZSBtaXNzaW5nIGFubm90YXRpb25zCgoyMDEyLTA2LTEyIDE0OjI0OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBmbHVzaCBldmVudHMgb24gdGhlIGVsZW1lbnQgYXMgd2VsbAoJICBIYW5kbGUgZmx1c2gtc3RhcnQgYW5kIGZsdXNoLXN0b3Agc2VudCBvbiB0aGUgZWxlbWVudCBhcyB3ZWxsIGFuZCBzZW5kIHRoZW0KCSAgZG93bnN0cmVhbS4gTWFrZSBzdXJlIHRvIHNlbmQgYSBzZWdtZW50IGV2ZW50IGFmdGVyIHRoZSBmbHVzaCBzdG9wLgoKMjAxMi0wNi0xMiAxMTowNTowNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGFkZCBhIGZldyBtb3JlIGNvbW1lbnRzCgoyMDEyLTA2LTExIDIwOjM0OjAwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgY2hpbGRwcm94eTogZml4IHNpZ25hbCBoYW5kbGVyIHNpZ25hdHVyZXMgaW4gY2xhc3MKCSAgV2hlbiBhZGRpbmcgdGhlIG5hbWUgcGFyYW1ldGVyLCB3ZSBmb3Jnb3QgdG8gYWRkIGl0IGhlcmUgdG9vLgoKMjAxMi0wNi0xMSAxMDo1OTo0OSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogdXNlIEdzdENoaWxkUHJveHkgaW5zdGVhZCBvZiBHT2JqZWN0IG9uIHRoZSBwdWJsaWMgYXBpCgkgIEZpeCB1c2FnZSBhbmQgYWxzbyBjbGVhbnVwIGdzdF9vYmplY3QgYXBpIHVzZSBvbiBnb2JqZWN0cy4KCjIwMTItMDYtMTEgMTU6NDk6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiByZW1vdmUgdW51c2VkIFVOUEFSRU5USU5HIGZsYWcKCjIwMTItMDYtMTEgMTU6NDE6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVvcmdhbml6ZSBfcmVtb3ZlX2Z1bmMgdG8gYXZvaWQgcmFjZXMKCSAgTWFrZSB0aGUgZ3N0X2Jpbl9yZW1vdmVfZnVuYyBtb3JlIGxpa2UgdGhlIGFkZF9mdW5jLiBDaGVjayBpZiB0aGUgZWxlbWVudCB3ZSB0cnkKCSAgdG8gcmVtb3ZlIGZyb20gdGhlIGJpbiBoYXMgdGhlIGJpbiBhcyB0aGUgcGFyZW50IGFuZCBzZXQgdGhlIHBhcmVudCBmbGFnIHRvIE5VTEwKCSAgaW1tZWRpYXRlbHksIHRoaXMgYWxsb3dzIHVzIHRvIGF2b2lkIGNvbmN1cnJlbnQgcmVtb3ZlIG9wZXJhdGlvbnMgd2l0aG91dCB1c2luZwoJICB0aGUgVU5QQVJFTlRJTkcgZWxlbWVudCBmbGFnLiBBZnRlciB3ZSB1bnBhcmVudGVkIHRoZSBlbGVtZW50IGZyb20gdGhlIGJpbiwgd2UKCSAgdXBkYXRlIHRoZSBiaW4gc3RhdGUgYW5kIHJlbW92ZSB0aGUgZWxlbWVudCBmcm9tIHRoZSBsaXN0LiBGaW5hbGx5IHdlIHVubGluawoJICBhbGwgdGhlIHBhZHMuCgkgIFRoaXMgYXZvaWRzIGEgcmFjZSBjb25kaXRpb24gd2hlcmUgdGhlIGVsZW1lbnQgY291bGQgc3RpbGwgY2xhaW0gdG8gaGF2ZSB0aGUKCSAgYmluIGFzIHRoZSBwYXJlbnQgd2hpbGUgdGhlIGJpbiBkaWRuJ3QgaGF2ZSBhIHBvaW50ZXIgdG8gdGhlIGVsZW1lbnQgYW55bW9yZS4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0Nzc1OQoKMjAxMi0wNi0xMCAxMjo0ODowMCAtMDQwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogT25seSBzZW5kIGNhcHMgd2hlbiBwYWQgaXMgYmVpbmcgYWN0aXZhdGVkCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzc4MTkKCjIwMTItMDYtMTAgMTI6NDE6MTIgLTA0MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBnc3RlbGVtZW50OiBTdGFydCBvdmVyIGlmIHN1YmNsYXNzIHJlbW92ZWQgdGhlIG5leHQgcGFkIHRvbwoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3ODE4CgoyMDEyLTA2LTA5IDE4OjA1OjE0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkYXRldGltZS5jOgoJICBkYXRldGltZTogcmVtb3ZlIGZhbGxiYWNrIGNvZGUgZm9yIG9sZCBHTGlicwoKMjAxMi0wNi0wOSAxNzoxMzowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2NyZWF0ZS11bmluc3RhbGxlZC1zZXR1cC5zaDoKCSAgc2NyaXB0czogYWRkIGNyZWF0ZS11bmluc3RhbGxlZC1zZXR1cCBzY3JpcHQKCSAgTGl0dGxlIHNjcmlwdCB0aGF0IHNldHMgdXAgdGhpbmdzIGluIH4vZ3N0IGFuZCBjbG9uZXMKCSAgdGhlIG1haW4gbW9kdWxlcyBhbmQgcHJpbnRzIHNvbWUgaW5zdHJ1Y3Rpb25zLgoJICBGcm9tIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3dpa2kvVW5pbnN0YWxsZWRTZXR1cAoKMjAxMi0wNi0wOCAxNTo0NTozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgZWxlbWVudHM6IFVzZSBnc3RfcGFkX3NldF9jYXBzKCkgYW5kIGRvbid0IGlnbm9yZSBpdHMgcmV0dXJuIHZhbHVlCgoyMDEyLTA2LTA4IDE1OjQxOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCBpZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfcGFkX3NldF9jYXBzKCkgYW5kIGNhbGwgaXQgYWZ0ZXIgdGhlIHZmdW5jCgoyMDEyLTA2LTA4IDE1OjM2OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFVzZSBnc3RfcGFkX3NldF9jYXBzKCkgaW5zdGVhZCBvZiB0aGUgbWFudWFsIGV2ZW50IGZpZGRsaW5nCgoyMDEyLTA2LTA4IDE1OjMyOjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCByZXR1cm4gdGhlIHJldHVybiB2YWx1ZSBvZiBnc3RfcGFkX3NldF9jYXBzKCkKCSAgZS5nLiBpdCByZXR1cm5zIEZBTFNFIGlmIGluY29tcGF0aWJsZSBjYXBzIGFyZSBzZXQgb24gdGhlIHBhZC4KCjIwMTItMDYtMDYgMTk6MDI6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGdzdHV0aWxzOiBGYXN0ZXIgcmVhZCBtYWNyb3MKCSAgT24gcGxhdGZvcm1zIHRoYXQgY2FuIGRvIHVuYWxpZ25lZCByZWFkL3dyaXRlLCB3ZSBjYW4gcmVhZC93cml0ZSBtdWNoIGZhc3RlcgoJICBieSBqdXN0IGNhc3RpbmcuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01OTk1NDYKCjIwMTItMDYtMDcgMTI6NDk6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIGNoZWNrOiBBZGQgYSB0ZXN0IGZvciBHU1RfUkVBRF8qIG1hY3JvcwoKMjAxMi0wNi0wOCAxNDo0OTo1MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gc3VibW9kdWxlCgoyMDEyLTA2LTA3IDE3OjU4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZWNvbmZpZ3VyZQoJICBVc2UgdGhlIHBhZCBtZXRob2RzIHRvIHNldCBhbmQgY2hlY2sgdGhlIHJlY29uZmlndXJlIGZsYWdzCgkgIENsZWFyIHRoZSByZWNvbmZpZ3VyZSBmbGFnIGJlZm9yZSB3ZSBuZWdvdGlhdGUgc28gdGhhdCB3ZSBkb24ndCBtaXNzIGFueQoJICByZWNvbmZpZ3VyZSBldmVudHMgd2hpbGUgbmVnb3RpYXRpbmcKCjIwMTItMDYtMDcgMTU6NTY6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkyID09PQoKMjAxMi0wNi0wNyAxNTo1NjoxNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgIFJlbGVhc2UgMC4xMS45MgoKMjAxMi0wNi0wNyAxNTo1Mzo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTItMDYtMDcgMTU6Mjg6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgc29vbmVyCgkgIFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSB3ZSBnZXQgdGhlIHRpbWUgb2YgdGhlIGNsb2NrIGJlY2F1c2UgdGhhdCBjb2RlCgkgIG1pZ2h0IHRha2Ugb3RoZXIgbG9ja3MuCgkgIEZpeCBwb3RlbnRpYWwgY2xvY2sgcmVmY291bnQgZXJyb3IgYmVjYXVzZSB3ZSByZWxlYXNlZCB0aGUgb2JqZWN0IGxvY2sgYnV0CgkgIGRpZG4ndCByZWYgdGhlIGNsb2NrLgoKMjAxMi0wNi0wNyAxMDozNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZW1vdmUgMC4xMSBmaXhtZQoJICBXZSBhbHdheXMgcmVxdWlyZSBlbGVtZW50cyB0byBoYXZlIGFuIHVubG9ja19zdG9wIHZtZXRob2QuCgoyMDEyLTA2LTA2IDE4OjExOjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogV2UgbmFtZSB0aGUgcmVnaXN0cnkgYWZ0ZXIgdGhlIHRhcmdldCBjcHUKCSAgQW5kIG5vdCB0aGUgaG9zdCBjcHUKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cmVnaXN0cnkuYwoKMjAxMi0wNi0wNiAxODoxODoxOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDFmYWIzNTkgdG8gMDNhMGU1NwoKMjAxMi0wNi0wNiAxNTo0NToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0b2MuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QgYWZ0ZXIgZXZlbnQgY2hhbmdlCgkgIFNvbWVvbmUgZm9yZ290IHRvIHJ1biBtYWtlIGNoZWNrIGJlZm9yZSBwdXNoaW5nLi4uCgoyMDEyLTA2LTA2IDExOjA2OjMyICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZ3N0YWRhcHRlcjogQWxpZ24gdGhlIGNvbW1lbnQgZGVzY3JpcHRpb24gd2l0aCBwdWJsaWMgYXBpIGluc3RlYWQgb2YgaW50ZXJuYWwgb25lLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NTM2CgoyMDEyLTA2LTA2IDE1OjI5OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHBhZCBjbGVhbnVwIGluIGRpc3Bvc2UKCSAgSW4gdGhlIGRpc3Bvc2UgaGFuZGxlciB3ZSBmaXJzdCBuZWVkIHRvIHJlbGVhc2UgYWxsIHRoZSByZXF1ZXN0IHBhZHMgYW5kIHRoZW4KCSAgcmVtb3ZlIHRoZSByZW1haW5pbmcgcGFkcy4gVGhpcyBpcyBiZWNhdXNlIGl0IGlzIHBvc3NpYmxlIHRoYXQgcmVsZWFzaW5nIHRoZQoJICByZXF1ZXN0IHBhZCBtaWdodCBhbHNvIGNsZWFubHkgcmVtb3ZlIHNvbWUgb2YgdGhlIG90aGVyIGR5bmFtaWMgcGFkcywgbGlrZQoJICB3aGF0IHJ0cHNlc3Npb24gZG9lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzQzNgoKMjAxMi0wNi0wNiAxNDoxNDozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBEb24ndCBtYWtlIHRoZSBUT0MgZXZlbnQgYSBtdWx0aS1zdGlja3kgZXZlbnQKCSAgRWxlbWVudHMgYXJlIHN1cHBvc2VkIHRvIG1lcmdlIHVwc3RyZWFtIGV2ZW50cy4KCjIwMDktMTAtMTMgMTc6MjQ6MzQgKzAyMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgTWFrZSBzdXJlIHRoYXQgdW5saW5rZWQgcGFkcyBkbyBub3QgY2F1c2UgYSByZXR1cm4gZmFsc2Ugb24gbGF0ZW5jeSBldmVudHMuCgkgIENvbnRleHQ6IExhdGVuY3kgY29uZmlndXJhdGlvbiBzaG91bGQgbm90IGJlCgkgIG1lc3NlZCB1cCBiZWNhdXNlIG9mIG5vdC1saW5rZWQgcGFkcy4gSW4gZ2VuZXJhbCwKCSAgb25lIHJldHVybiBGQUxTRSBvbiBsYXRlbmN5IGRpc3RyaWJ1dGlvbiBjYXVzZXMKCSAgdGhlICJvdmVyYWxsIiBwaXBlbGluZSBsYXRlbmN5IGNvbmZpZ3VyYXRpb24gdG8KCSAgZmFpbC4gVGhpcyBzaG93cyB1cCBhcyBub2lzZSBpbiBsb2dzICh3YXJuaW5nKS4KCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCjIwMTItMDYtMDYgMTI6NTI6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBldmVudDogYWRkIG5hbWUgdG8gc3RpY2t5X211bHRpIGV2ZW50cwoJICBUaGUgbmFtZSBvZiB0aGUgZXZlbnQgaXMgdXNlZCB0byBzdG9yZSBtdWx0aXBsZSBzdGlja3kgZXZlbnRzIG9mIGEgY2VydGFpbiB0eXBlCgkgIG9uIGEgcGFkLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2ODU5CgoyMDEyLTA2LTA2IDA5OjU5OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkZXNpZ246IEFsc28gbWVudGlvbiB0aGF0IHRoZSBvcmRlciBvZiB0aGUgZmlsdGVyIGNhcHMgaXMgaW1wb3J0YW50CgoyMDEyLTA2LTA2IDA5OjE1OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBpbXByb3ZlIGRvY3MKCjIwMTItMDYtMDYgMDk6MTM6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogb25seSBzZXJpYWxpemVkIGV2ZW50cyBjYW4ndCBwYXNzIGFmdGVyIEVPUwoJICBPbmx5IHNlcmlhbGl6ZWQgZXZlbnRzIGNhbid0IGJlIHNlbnQgb24gcGFkcyB0aGF0IGFyZSBFT1MuIE90aGVyd2lzZSBhIHNlZWsKCSAgZXZlbnQgd291bGQgYmUgcmVmdXNlZCBhcyB3ZWxsLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc3NTIwCgoyMDEyLTA2LTA1IDE0OjM4OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRvY3M6IHRhbGsgYWJvdXQgdGhlIGZpbHRlciBjYXBzCgoyMDEyLTA2LTAyIDE2OjQ0OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHRhZyBsaXN0IHdyaXRhYmlsaXR5CgoyMDEyLTA2LTAyIDE2OjM4OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkgIGdzdF90YWdfbGlzdF9mcmVlIC0+IGdzdF90YWdfbGlzdF91bnJlZgoKMjAxMi0wNi0wMiAxNjoyOTo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBleHBhbmQgdGFnbGlzdCBzZWN0aW9uIGluIHBvcnRpbmctdG8tMC4xMSBkb2NzIGEgYml0CgoyMDEyLTA2LTA1IDExOjI4OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBuZWdvdGlhdGlvbiBkb2NzCgkgIE1lbnRpb24gdGhhdCB0aGUgYWNjZXB0Y2FwcyBxdWVyeSBkb2VzIG5vdCBoYXZlIHRvIGJlIHJlY3Vyc2l2ZQoKMjAxMi0wNi0wNSAwOTo0MDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIG9ic29sZXRlIGNhcHMgY29kZQoKMjAxMi0wNi0wNSAwOTozOTo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogaW1wcm92ZSBkZWJ1ZwoKMjAxMi0wNi0wNSAwOToyMToxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogZml4IHVuaXQgdGVzdAoJICBCZWZvcmUgd2UgY2FuIGNoYW5nZSB0aGUgY2FwcyBvbiBhIHNpbmtwYWQgd2l0aCBmaXhlZCBjYXBzIHdlIG5lZWQgdG8gdW5maXggdGhlCgkgIHBhZCBjYXBzLgoKMjAxMi0wNi0wNSAwOToxMDowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBwYXVzZSB0YXNrIG9uIEVPUwoJICBFbGVtZW50cyBzaG91bGQgbm90IHJlbHkgb24gY29yZSB0byBwYXVzZSB0YXNrcyBvbiBFT1MuCgoyMDEyLTA2LTA1IDA5OjAwOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBldmVudCB0eXBlIGNoZWNrCgoyMDEyLTA2LTA0IDE2OjE5OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCAncmVzJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24KCjIwMTItMDYtMDQgMTM6MDA6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogRml4IHVuaXQgdGVzdAoKMjAxMi0wNi0wNCAxMjo1Nzo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB2YWx2ZTogRml4IHVuaXQgdGVzdAoKMjAxMi0wNi0wNCAxMTo0Njo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBEb24ndCBhY2NlcHQgYW55IGJ1ZmZlcnMgb3IgZXZlbnRzIGFmdGVyIEVPUwoKMjAxMi0wNi0wNCAxMToxMzowMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsc28gcGVyZm9ybSBzdGF0ZSBwcm9jZXNzaW5nIHVwb24gbm9uLU9LIHJldHVybgoJICAuLi4gc2luY2UgcHJvY2Vzc2luZyBtaWdodCBzdGlsbCBjb250aW51ZSAoaWYgZS5nLiBOT1RfTElOS0VEKQoJICBhbmQgdGhlbiBwcm9wZXIgc3RhdGUgKGUuZy4gb2Zmc2V0KSBuZWVkcyB0byBiZSBtYWludGFpbmVkCgkgIChlLmcuIHRvIGFycmFuZ2UgZm9yIGEgbmV3IGZyYW1lIHNldHVwKS4KCjIwMTItMDYtMDQgMTE6MjU6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEFsd2F5cyByZXR1cm4gZXJyb3JzIGZvciBFT1MgZXZlbnRzIGltbWVkaWF0ZWx5CgkgIEZvciBub24tRU9TIGV2ZW50cyB0aGluZ3Mgd2lsbCBlcnJvciBvdXQgbGF0ZXIgZHVyaW5nIGRhdGEKCSAgZmxvdyBidXQgYWZ0ZXIgRU9TIGV2ZW50cyBubyBkYXRhIGZsb3cgaXMgaGFwcGVuaW5nLgoJICBTZWUgYnVnICM2NzczNDAuCgoyMDEyLTA2LTA0IDA5OjI3OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBPbmx5IGZvcndhcmQgY2FwcyBldmVudHMgdG8gYSBwYWQgaWYgaXQgYWNjZXB0cyB0aGUgY2FwcwoJICBGaXhlcyBidWcgIzY3NzMzNS4KCjIwMTItMDYtMDIgMjA6MDE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogUmV0dXJuIEZBTFNFIGlmIHB1c2hpbmcgb2Ygc3RpY2t5IGV2ZW50cyBmYWlsZWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMGY5MjRiOTIyYzcxMjA1OWQ3NzUyZmMxNWI4MzI1NTE3NDVmZjI3ZS4KCSAgU3RpY2t5IGV2ZW50cyBzaG91bGQgYWx3YXlzIHJldHVybiBUUlVFIHdoZW4gcHVzaGluZyBhbmQgd2lsbAoJICBvbmx5IGNhdXNlIGZhaWx1cmVzIGR1cmluZyBkYXRhIGZsb3cgbGF0ZXIuCgoyMDEyLTA2LTAyIDE2OjE4OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdmFyaWFibGUtc2V0LWJ1dC1ub3QtdXNlZCBjb21waWxlciB3YXJuaW5nCgoyMDEyLTA2LTAyIDE2OjU1OjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBJZiBwdXNoaW5nIGEgc3RpY2t5IGV2ZW50IGZhaWxlZCwgbWFrZSBzdXJlIHRvIGF0IGxlYXN0IHB1c2ggYW55IHBlbmRpbmcgRU9TIGV2ZW50cwoJICBPdGhlcndpc2UgYSBwaXBlbGluZSB3aGVyZSBvbmUgc3RpY2t5IGV2ZW50IGZhaWxzIHRvIGJlIHNlbnQgd2lsbAoJICBuZXZlciBmb3J3YXJkIEVPUyBldmVudHMgZG93bnN0cmVhbS4gVGhpcyBjYW4gY2F1c2UgcGlwZWxpbmVzIHRvCgkgIHdhaXQgZm9yZXZlciBmb3IgRU9TIG9uIGVycm9ycy4KCjIwMTItMDYtMDIgMTY6MDI6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFJldHVybiBGQUxTRSBpZiBwdXNoaW5nIG9mIHN0aWNreSBldmVudHMgZmFpbGVkCgkgIEluc3RlYWQgb2YganVzdCBpZ25vcmluZyBmYWlsdXJlIG9mIHB1c2hpbmcgc3RpY2t5IGV2ZW50cyBhbmQKCSAgcmV0dXJuaW5nIFRSVUUgYXMgaWYgZXZlcnl0aGluZyBpcyBmaW5lLgoKMjAxMi0wNi0wMSAxNjozNDoxNiArMDIwMCAgQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBDb3JyZWN0bHkgZ2V0IGN1cnJlbnQgcnVubmluZyB0aW1lIHdoZW4gc3luY2luZyB0byB0aGUgc2VnbWVudCBpbmZvcm1hdGlvbgoJICBGaXhlcyBidWcgIzY3NzI2My4KCjIwMTItMDYtMDEgMTA6Mjg6MzAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmMWI1YTk2IHRvIDFmYWIzNTkKCjIwMTItMDUtMjUgMjI6NTg6NTcgLTA1MDAgIE1pa2UgUnVwcmVjaHQgPG1pa2UucnVwcmVjaHRAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBBZGQgZnVubmVsIHRlc3QgdG8gY292ZXIgRU9TIGV2ZW50IGhhbmRsaW5nCgkgIFBvcnRlZCBmcm9tIGYzYjJkZDZmIGluIHRoZSAwLjEwIGJyYW5jaAoKMjAxMi0wNS0yNSAyMjo1MjozMyAtMDUwMCAgTWlrZSBSdXByZWNodCA8bWlrZS5ydXByZWNodEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IE9ubHkgZW1pdCBFT1MgZXZlbnQgaWYgYWxsIHNpbmtwYWRzIGhhdmUgcmVjZWl2ZWQgb25lCgkgIElmIG11bHRpcGxlIHNvdXJjZXMgYXJlIHBsdWdnZWQgaW50byB0aGUgZnVubmVsIGFuZCBvbmUgb2YgdGhlCgkgIHNvdXJjZXMgZW1pdHMgYW4gRU9TLCB0aGF0IGV2ZW50IGlzIHByb3BvZ2F0ZWQgdGhyb3VnaCB0aGUgZnVubmVsCgkgIGV2ZW4gdGhvdWdoIG90aGVyIHNvdXJjZXMgY29ubmVjdGVkIHRvIHRoZSBmdW5uZWwgbWF5IHN0aWxsIGJlCgkgIHB1c2hpbmcgZGF0YS4gVGhpcyBwYXRjaCB3YWl0cyB0byBzZW5kIGFuIEVPUyBldmVudCB1bnRpbCB0aGUKCSAgZnVubmVsIGhhcyByZWNlaXZlZCBhbiBFT1MgZXZlbnQgb24gZWFjaCBzaW5rcGFkLgoJICBQb3J0ZWQgZnJvbSBkMzk3ZWE5NyBpbiAwLjEwIGJyYW5jaC4KCjIwMTItMDUtMjkgMTk6MjQ6MjUgLTA1MDAgIE1pa2UgUnVwcmVjaHQgPG1pa2UucnVwcmVjaHRAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIHRlc3RzOiBGaXggaW52YWxpZCByZWFkIHdoZW4gcmVsZWFzaW5nIHJlcXVlc3QgcGFkcyBpbiBmdW5uZWwgdGVzdHMKCjIwMTItMDUtMjkgMTk6MjM6MDcgLTA1MDAgIE1pa2UgUnVwcmVjaHQgPG1pa2UucnVwcmVjaHRAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBGaXggYnVmZmVyIGxlYWsKCjIwMTItMDUtMzEgMTc6NDU6MjkgKzAyMDAgIEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzIChhbmRydW5rbykgPGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRG9uJ3QgdHJ5IHRvIHN5bmMgb24gdGhlIHNlZ21lbnQgaWYgaXQgaGFzIG5vIFRJTUUgZm9ybWF0CgkgIC4uLmFuZCB3YWl0IHVudGlsIGl0IGlzIGFjdHVhbGx5IGNvbmZpZ3VyZWQgYW5kIGhhcyBhIGZvcm1hdCBiZWZvcmUKCSAgdHJ5aW5nIHRvIHN5bmMuCgoyMDEyLTA1LTMxIDE3OjAzOjU0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBObyBuZWVkIHRvIGJyb2FkY2FzdCB0aGUgc2lnbmFsIGluIGZsdXNoLXN0b3AKCSAgRXZlcnl0aGluZyBzdG9wcGVkIGF0IHRoaXMgcG9pbnQgYWxyZWFkeS4KCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYwoKMjAxMi0wNS0zMSAxMzowNzo0OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDkyYjcyNjYgdG8gZjFiNWE5NgoKMjAxMi0wNS0zMSAxMDoxMDo0MSArMDEwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggcHJvcGVydHkgbmFtZSBpbiB0aGUgZG9jcwoJICB0ZW1wLXRlbXBsYXRlLCBub3QgdGVtcC10bXBsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzcxNzAKCjIwMTItMDUtMjggMTQ6Mjk6MDAgLTAzMDAgIEFuZHJlIE1vcmVpcmEgTWFnYWxoYWVzIChhbmRydW5rbykgPGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIGlucHV0c2VsZWN0b3I6IFByb3Blcmx5IHN5bmMgd2hlbiBjaGFuZ2luZyBzdHJlYW1zCgkgIFRoaXMgYWRkcyBwcm9wZXJ0aWVzIHRvIHVzZSB0aGUgY2xvY2sgdGltZSBmb3IgZGVjaWRpbmcgd2hlbgoJICB0byBkcm9wIGJ1ZmZlcnMgZm9yIGluYWN0aXZlIHBhZHMgYW5kIGEgcHJvcGVydHkgdG8gYnVmZmVyIGFsbAoJICBub3QgcmVuZGVyZWQgYnVmZmVycyBmb3IgdGhlIGFjdGl2ZSBwYWQgdG8gYWxsb3cgcGFkIHN3aXRjaGluZwoJICB3aXRob3V0IGxvc2luZyBhbnkgYnVmZmVycyBhdCBhbGwuCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMKCjIwMTItMDUtMzAgMTI6NDQ6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlYzFjNGE4IHRvIDkyYjcyNjYKCjIwMTItMDUtMzAgMTE6MTg6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzNDI5YmE2IHRvIGVjMWM0YTgKCjIwMTItMDUtMjkgMDg6NDg6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogYWRkIGd1YXJkcyB0byBtYWtlIHN1cmUgdGFnbGlzdCBpcyB3cml0YWJsZSB3aGVuIG1vZGlmeWluZyBpdAoJICBOb3cgdGhhdCB0YWdsaXN0cyBhcmUgcmVmY291bnRlZCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZXkncmUKCSAgd3JpdGFibGUgYmVmb3JlIG1vZGlmeWluZyB0aGVtLgoKMjAxMi0wNS0yOCAyMzo1NDoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYXZvaWQgdW5uZWNlc3Nhcnkgc3RyaW5nIGNvcHlpbmcgd2hlbiByZWdpc3RlcmluZyB0YWdzCgkgIEFkZCBnc3RfdGFnX3JlZ2lzdGVyX3N0YXRpYygpIC0gbm8gbmVlZCB0byBjb3B5IGFsbCB0aG9zZQoJICBzdHJpbmcgY29uc3RhbnRzLCB3aGV0aGVyIHRyYW5zbGF0ZWQgb3Igbm90LgoJICBBUEk6IGdzdF90YWdfcmVnaXN0ZXJfc3RhdGljKCkKCjIwMTItMDUtMjggMDA6MDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IGNoZWNrIGZvciBHTGliLUdJTyBjcml0aWNhbHMgYXMgd2VsbAoKMjAxMi0wNS0yOCAwMDowODoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0b2MuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0X3RhZ19saXN0X2ZyZWUoKSAtPiBnc3RfdGFnX2xpc3RfdW5yZWYoKQoKMjAxMi0wNS0yNyAyMzo1ODoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IG1ha2UgR3N0VGFnTGlzdCBhIEdzdE1pbmlPYmplY3QKCSAgV2hpY2ggYWRkcyByZWZjb3VudGluZyBzdXBwb3J0LCBhbmQgb3RoZXIgdGhpbmdzLgoKMjAxMi0wNS0yNyAyMDozMTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBsb2cgZnJlZWluZyBvZiBjYXBzIGF0IHNhbWUgbG9nIGxldmVsIGFzIGNyZWF0aW9uLCBpLmUuIFRSQUNFCgoyMDEyLTA1LTI2IDExOjM3OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2UsIGV2ZW50OiB1cGRhdGUgZm9yIHRhZyBsaXN0cyBub3QgYmVpbmcgc3RydWN0dXJlcyBhbnkgbW9yZQoKMjAxMi0wNS0yMSAwMDozMToyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBtYWtlIHByb3BlciBzdHJ1Y3Qgbm90IGp1c3QgYSBHc3RTdHJ1Y3R1cmUKCjIwMTItMDUtMjUgMTA6Mjg6NDAgKzAyMDAgIEpvc2VwIFRvcnJhIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogRml4IHN0YXRpYyBsaW5raW5nIG9uIE9TIFgKCSAgVGhlIGxpbmtpbmcgYmVoYXZpb3VyIG9mIGV4dGVybmFsIHZhcmlhYmxlcyB0aGF0IGFyZSBub3QgaW5pdGlhbGl6ZWQKCSAgaW4gdGhlIGNvbXBpbGF0aW9uIHVuaXQgd2hlcmUgdGhleSBhcmUgZGVmaW5lZCBpcyB1bmRlZmluZWQuIE9uIE9TIFgKCSAgdGhpcyBjYXVzZXMgYSBsaW5raW5nIGZhaWx1cmUgd2hlbiBzdGF0aWNhbGx5IGxpbmtpbmcgR1N0cmVhbWVyLgoKMjAxMi0wNS0yNSAwOToxNzoxNyArMDEwMCAgTHVpcyBkZSBCZXRoZW5jb3VydCA8bHVpc0BkZWJldGhlbmNvdXJ0LmNvbT4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBmaXZlLWJ1Z3MtYS1kYXk6IHVzZSBzcGxpY2UgdG8gdHJpbSB0aGUgYnVnIGxpc3QKCjIwMTItMDUtMjQgMjM6MzA6MjkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICBmYWtlc3JjOiBwdXQgYnl0ZSBwb3NpdGlvbiByYXRoZXIgdGhhbiBidWZmZXIgY291bnQgaW50byBHU1RfQlVGRkVSX09GRlNFVAoJICBJZiB3ZSdyZSBzZW5kaW5nIGEgc2VnbWVudCBpbiBCWVRFIGZvcm1hdCwgdGhlIG9mZnNldAoJICBzaG91bGQgYmUgaW4gYnl0ZXMgYXMgd2VsbC4KCjIwMTItMDUtMjQgMTE6NDg6MTkgKzAxMDAgIEx1aXMgZGUgQmV0aGVuY291cnQgPGx1aXNAZGViZXRoZW5jb3VydC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSAgZG9jczogZml4IGEgdHlwbyBpbiBwYXJ0LXNlZ21lbnRzLnR4dAoKMjAxMi0wNS0yNCAxMTowMjo1MyArMDIwMCAgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbiBhdCBvcmFjbGUuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZDogZml4IHByb3RvdHlwZSBvZiBoZWxwZXJfZmluZF9zdWdnZXN0CgkgIFRoZSBwcm90byBmb3IgaGVscGVyX2ZpbmRfc3VnZ2VzdCBoYXMgYSBkaWZmZXJlbnQgYXJndW1lbnQgdGhhbiB0aGUgYWN0dWFsCgkgIGZ1bmN0aW9uIGluIHRoZSBzYW1lIGZpbGUgaGFzLiAgVGhpcyBjYXVzZXMgdGhlIFN1biBTdHVkaW8gY29tcGlsZXIgdG8gZmFpbC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjYyNAoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYwoKMjAxMi0wNS0yNCAwODowNzoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2ZpdmUtYnVncy1hLWRheS5wbDoKCSAgc2NyaXB0czogcmVtb3ZlIGEgc3RyYXkgcHJpbnQgZnJvbSBkZWJ1Z2dpbmcgYW5kIGZpeCB1cCBjcm9uIGVudHJ5IGRvY3MKCjIwMTItMDUtMjQgMDk6MDM6MTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIGZpdmUtYnVncy1hLWRheTogTWFrZSAjISB0byBwZXJsIG1vcmUgcG9ydGFibGUKCjIwMTItMDUtMjQgMDc6NTY6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9maXZlLWJ1Z3MtYS1kYXkucGw6CgkgIHNjcmlwdHM6IHJlbW92ZSBmaXhlZCAna25vd24gaXNzdWUnIGZyb20gZml2ZS1idWdzLWEtZGF5IHNjcmlwdAoJICBUaGlzIHdhcyB3aXRoIGNvbW1hcyBhY3R1YWxseSwgYW5kIHNob3VsZCBiZSBmaXhlZCBub3cuCgoyMDEyLTA1LTI0IDA3OjU0OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZml2ZS1idWdzLWEtZGF5LnBsOgoJICBzY3JpcHRzOiBhZGQgZml2ZS1idWdzLWEtZGF5IHNjcmlwdAoJICBDcm9uIGZvZGRlci4KCjIwMTItMDUtMjIgMTQ6Mjc6NDggKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQGludGVsLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICB0ZXN0czogcmVuYW1lIHBsYXliaW4yIHRvIHBsYXliaW4gYW5kIGFkZGluZyBzb21lIGRlYnVnIGluZm8KCjIwMTItMDUtMjIgMTg6Mjc6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICB1cmk6IEFkZCBzb21lIGRlYnVnIHN0YXRlbWVudHMKCjIwMTItMDUtMjIgMTM6NTE6NDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlCgoyMDEyLTA1LTIxIDA5OjE0OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IHBvcnQgdW5pdCB0ZXN0IHRvIDAuMTEKCjIwMTItMDUtMjEgMTU6MTQ6NTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogaW1wcm92ZSB0aGUgc2Vla2luZyBkb2NzIG1vcmUuCgkgIEFsc28gbWVudGlvbiBpdCBvbiBfZWxlbWVudF9zZWVreyxfc2ltcGxlfSBhbmQgYmUgbW9yZSBwcmVjaXNlIHdoeSBpdCBoYXBwZW5zLgoKMjAxMi0wNS0yMSAxMzoxNzoyMSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBmaXggYSB0eXBvIGFuZCBjbGFyaWZ5IGV2ZW50IGhhbmRsaW5nIGEgYml0IG1vcmUKCSAgVGVsbCBhYm91dCBhc3luY19kb25lIG1lc3NhZ2VzIGZvciBzb21lIGV2ZW50cyBhbmQgcmV2aWV3IHRoZSBfZXZlbnRfbmV3X3NlZWsKCSAgZG9jcy4KCjIwMTItMDUtMTggMTU6MDQ6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgYmluOiB0cnkgaGFyZGVyIHRvIGF2b2lkIHN0YXRlIGNoYW5nZXMgaW4gd3JvbmcgZGlyZWN0aW9uCgkgIFdoZW4gdGhlIGJpbiBkb2VzIGFuIHVwd2FyZCBzdGF0ZSBjaGFuZ2UsIHRyeSB0byBhdm9pZCBkb2luZyBhIGRvd253YXJkIHN0YXRlCgkgIGNoYW5nZSBvbiB0aGUgY2hpbGQgYW5kIHZpY2UgdmVyc2EuCgkgIEFkZCBzb21lIG1vcmUgdW5pdCB0ZXN0cyBmb3IgdGhpcyBmaXguCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE4MzMKCjIwMTItMDUtMTggMjA6MTE6NTUgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZml4IC1jLCAtLXRvYyBtZXNzYWdlCgoyMDEyLTA1LTIxIDAxOjQ4OjI5ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgdG9jOiBBZGQgYm94ZWQgdHlwZXMgZm9yIEdzdFRvYyBhbmQgR3N0VG9jRW50cnkKCjIwMTItMDUtMjAgMTg6MjM6NTcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkgIHRvYzogZml4IHR5cGUgb2YgcGFkIHBhcmFtZXRlciB0byBnc3RfdG9jX2VudHJ5X25ld193aXRoX3BhZCgpCgoyMDEyLTA1LTIwIDE4OjE2OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiB1c2UgY29ycmVjdCBHVHlwZSBmb3IgdGFnIGxpc3RzCgoyMDEyLTA1LTIwIDE4OjA2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiBhdm9pZCB1bm5lY2Vzc2FyeSBHVmFsdWUgYWNyb2JhdGljcwoKMjAxMi0wNS0yMCAxNzo0ODo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3R0b2MuYzoKCSAgdG9jOiB1c2UgZ2xvYmFsIHF1YXJrIHRhYmxlCgoyMDEyLTA1LTIwIDE3OjEwOjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJICB0b2M6IGZpeCBpbnRlcm5hbCBUT0MgcXVlcnkgYW5kIGV2ZW50IHN0cnVjdHVyZSBuYW1lcwoJICBNYWtlIHRoZW0gY29uc2lzdGVudCB3aXRoIGFsbCB0aGUgb3RoZXIgcXVlcnkgYW5kIGV2ZW50IG5hbWVzLgoKMjAxMi0wNS0xOSAxNzoyNDo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgcGx1Z2luZmVhdHVyZTogbWFrZSBHc3RQbHVnaW5GZWF0dXJlIHN0cnVjdHVyZSBwcml2YXRlCgkgIE1ha2UgR3N0UGx1Z2luRmVhdHVyZSBvcGFxdWUgdW50aWwgd2UgaGF2ZSB0aW1lIHRvCgkgIGNsZWFuIGl0IHVwIGEgbGl0dGxlLiBPbmx5IEdzdEVsZW1lbnRGYWN0b3J5IGFuZAoJICBHc3RUeXBlZmluZEZhY3RvcnkgZGVyaXZlIGZyb20gaXQsIGFuZCB0aGV5IGFyZQoJICBvcGFxdWUgYWxyZWFkeSwgYW5kIHdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0CgkgIGN1c3RvbSBwbHVnaW4gZmVhdHVyZXMgaW4gdGhlIHJlZ2lzdHJ5IGFueXdheS4KCjIwMTItMDUtMTkgMTc6MjM6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29scywgdGVzdHM6IGRvbid0IGFjY2VzcyB0aGUgR3N0UGx1Z2luRmVhdHVyZSBzdHJ1Y3R1cmUgZGlyZWN0bHkKCjIwMTItMDUtMTkgMTc6MTY6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbmZlYXR1cmU6IGFkZCBnc3RfcGx1Z2luX2ZlYXR1cmVfZ2V0X3BsdWdpbigpCgkgIEFkZCBmdW5jdGlvbiB0byByZXRyaWV2ZSBwbHVnaW4gdGhhdCBwcm92aWRlcyB0aGlzIGZlYXR1cmUuCgkgIEFQSTogZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9wbHVnaW4oKQoKMjAxMi0wNS0xOSAxNjoyMTozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGZvciBnc3RzY2Fub2JqIGNoYW5nZXMKCjIwMTItMDUtMTkgMTU6NTE6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IG1ha2Ugb2JqZWN0IHN0cnVjdCBvcGFxdWUgZm9yIG5vdwoJICBNYWtlIEdzdEVsZW1lbnRGYWN0b3J5IG9wYXF1ZSB1bnRpbCB3ZSBoYXZlIHRpbWUgdG8KCSAgY2xlYW4gaXQgdXAgYSBsaXR0bGUuIEl0J3Mgbm90IHNvbWV0aGluZyBhbnlvbmUKCSAgd291bGQgbmVlZCB0byBkZXJpdmUgZnJvbS4KCjIwMTItMDUtMTkgMTQ6NTk6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGRvbid0IHVzZSBwcml2YXRlIEdzdEVsZW1lbnRGYWN0b3J5IEFQSSBpbiBnc3QtaW5zcGVjdAoKMjAxMi0wNS0xOSAxNDo1MjoyOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50ZmFjdG9yeTogYWRkIGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhX2tleXMoKQoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFkYXRhX2tleXMoKQoKMjAxMi0wNS0xOCAwOTo1MjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBpbXByb3ZlIEVPUyBvbiBzaHV0ZG93biBoYW5kbGluZwoJICBXaGVuIHRoZSAtZSBvcHRpb24gaXMgc2VsZWN0ZWQsIGFsc28gd2FpdCBmb3IgRU9TIHdoZW4gdGhlIHBpcGVsaW5lIHByb2R1Y2VkIGFuCgkgIGVycm9yLgoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwOTk3CgoyMDEyLTA1LTE2IDE4OjUzOjE1ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvY3M6IGZpeCBnc3Rfc3RydWN0dXJlX3RvX3N0cmluZygpIGRvY3MKCjIwMTItMDUtMTYgMTM6MjQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB0aHJvdHRsZS10aW1lIGlzIHVzZWQKCjIwMTItMDUtMTYgMTI6MDg6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGFkZCBwcmVwYXJlIG1ldGhvZAoJICBBZGQgYSBwcmVwYXJlIG1ldGhvZCB0aGF0IGlzIGNhbGxlZCBiZWZvcmUgc3luYyBoYXBwZW5zLiBUaGUgcHVycG9zZSBvZiB0aGlzCgkgIG1ldGhvZCBpcyB0byBwcmVwYXJlIHRoZSByZW5kZXJpbmcgb2YgdGhlIGdpdmluZyBidWZmZXIgc28gdGhhdCB0aGUgZm9sbG93aW5nCgkgIHJlbmRlcigpIGNhbGwgYWZ0ZXIgc3luYyBpcyBhIHF1aWNrIGFzIHBvc3NpYmxlLgoKMjAxMi0wNS0xNiAwOToxNjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCBwb3RlbnRpYWwgZGVhZGxvY2sKCSAgSW4gZ3N0X2Jhc2Vfc3JjX3N0YXJ0X2NvbXBsZXRlKCkgd2UgZG8gYSBwZXJmb3JtX3NlZWsoKSB0aGF0IHdpbGwgZXZlbnR1YWxseQoJICBzdGFydCB0aGUgc3RyZWFtaW5nIHRocmVhZCB3aGljaCBhY3F1aXJlcyB0aGUgbGl2ZSBsb2NrIGFuZCB0aGVuIGdvZXMgdG8gc2xlZXAKCSAgaW4gdGhlIGNhc2Ugb2YgYXBwc3JjLiBSaWdodCBhZnRlciB3ZSBwZXJmb3JtIHNlZWsgd2UgYWxzbyB0cnkgdG8gYWNxdWlyZSB0aGUKCSAgbGl2ZSBsb2NrIHdoaWNoIG1pZ2h0IHRoZW4gZGVhZGxvY2suCgkgIGZpeCB0aGlzIGJ5IHRha2luZyB0aGUgc3RyZWFtIGxvY2sgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIHNlZWsuIFRoaXMgbWFrZXMgc3VyZQoJICB0aGF0IHRoZSBzdHJlYW1pbmcgdGhyZWFkIGNhbm5vdCBzdGFydCBhbmQgZ3JhYiB0aGUgbGl2ZSBsb2NrIHVudGlsIHdlIGFyZSBkb25lCgkgIGFuZCByZWxlYXNlIHRoZSBzdHJlYW0gbG9jayBhZ2Fpbi4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjA0OAoKMjAxMi0wNS0xNSAxOToxMToxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmVtb3ZlIHJlZmVyZW5jZXMgdG8gbW1hcCBpbiBjb21tZW50cyBhbmQgZGVidWcgbWVzc2FnZXMKCjIwMTItMDUtMTUgMTY6Mzg6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRvYy5jOgoJKiBnc3QvZ3N0dG9jLmg6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogUmVuYW1lIGdzdF90b2NfZW50cnlfdHlwZV90b19zdHJpbmcoKSB0byBnc3RfdG9jX2VudHJ5X3R5cGVfZ2V0X25pY2soKQoJICBJdCdzIG1vcmUgY29uc2lzdGVudC4KCjIwMTItMDUtMTUgMTQ6NTk6MDcgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZml4IHByaW50X3RvY19lbnRyeSgpCgoyMDEyLTA1LTE1IDE0OjQ4OjM1ICswMzAwICBBbnRvbiBCZWxrYSA8YW50b25iZWxrYUBnbWFpbC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRvYzogQVBJOiBBZGQgZ3N0X3RvY19lbnRyeV90eXBlX3RvX3N0cmluZygpCgoyMDEyLTA1LTE0IDAzOjU3OjUwICswMjAwICBBbGJhbiBCcm93YWV5cyA8cHJhaGFsQHlhaG9vLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogaWYgc2luayBwYWQgaXMgYWN0aXZhdGVkIGRvIG5vdCBjaGFuZ2UgbW9kZQoJICBJbiBjb21taXQgYmYwOTY0YjYgYSBjaGVjayBmb3IgcGFkIGlzIGFjdGl2YXRlZCB3YXMgbm90IGNhcnJpZWQuCgkgIFRoaXMgbGVhZHMgdG8gYXR0ZW1wdCB0byBwdWxsIHdoaWxlIGluIHB1c2ggbW9kZSB3aGVuIGZvcmNlX2NhcHMKCSAgaXMgc2V0LiBJbiB0aGlzIGNhc2Ugd2l0aG91dCB0aGUgYXR0YWNoZWQgY2hlY2sgZXZlbiB3aGVuIGFjdGl2YXRlZAoJICBpbiBwdWxsIG1vZGUgd2UgYWN0aXZhdGUgYmFjayB0byBwdXNoIG1vZGUuCgkgIFRoaXMgaXMgZnJvbSBjb21tZW50IGluIHByZXZpb3VzIGNvZGUgLCBjYXNlIG51bWJlciBlaWdodDoKCSAgOC4gaWYgdGhlIHNpbmsgcGFkIGlzIGFjdGl2YXRlZCwgd2UgYXJlIGluIHB1bGwgbW9kZS4gc3VjY2VlZC4KCSAgLSAgICAgb3RoZXJ3aXNlIGFjdGl2YXRlIGJvdGggcGFkcyBpbiBwdXNoIG1vZGUgYW5kIHN1Y2NlZWQuCgkgIFB1dHRpbmcgaXQgYmFjayBmaXhlcyBwbGF5YmFjayBvZiB3ZWJtIGluIHdlYmtpdCtnc3RyZWFtZXIgMS4wIC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjAwMwoKMjAxMi0wNS0xMyAxNjo1OToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuOTEgPT09CgoyMDEyLTA1LTEzIDE2OjAyOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgIFJlbGVhc2UgMC4xMS45MQoKMjAxMi0wNS0xMyAxNjowMjoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMTItMDUtMTMgMTU6NTU6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkYzcwMjAzIHRvIDM0MjliYTYKCjIwMTItMDUtMDkgMTQ6MjI6MjAgKzAyMDAgIFNlYmFzdGlhbiBSYXNtdXNzZW4gPHNlYnJuQGF4aXMuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IE9ubHkgaW5jbHVkZSBpbml0L2RlaW5pdCBvZiBhbGxvYyB0cmFjaW5nIHdoZW4gZW5hYmxlZAoJICBGaXhlcyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1ODA2CgoyMDEyLTA1LTExIDA5OjA3OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCBkb2NzCgkgIEdTVF9GTE9XX1dST05HX1NUQVRFIC0+IEdTVF9GTE9XX0ZMVVNISU5HCgoyMDEyLTA1LTEwIDEyOjE1OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgZG9jczogaW1wcm92ZSBidWZmZXJwb29sIGRvY3MKCjIwMTItMDUtMDggMjA6MTI6NDIgKzAzMDAgIEFudG9uIEJlbGthIDxhbnRvbmJlbGthQGdtYWlsLmNvbT4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcHJpbnQgdGFncyBpbiB0b2MKCjIwMTItMDUtMDUgMjI6MTc6NDMgKzAzMDAgIFJhaW1vIErDpHJ2aSA8cmFpbW8uamFydmlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkgIGdzdDogRml4IGNvbXBpbGVyIHdhcm5pbmdzIG9uIG1pbmd3LXc2NAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc1NTI1CgoyMDEyLTA1LTAyIDE0OjAwOjQzICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIHRvIGRlZmF1bHRfbWVtX21hcCgpCgkgIEZpeGVzIGZ1bmN0aW9uIHNpZ25hdHVyZSBmb3IgY29ycmVjdG5lc3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUyODkKCjIwMTItMDUtMDIgMDg6MDg6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgoyMDEyLTA1LTAxIDIyOjM1OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkgIHR5cGVmaW5kZmFjdG9yeTogbWFrZSBvYmplY3Qgc3RydWN0IG9wYXF1ZSBmb3Igbm93CgkgIE1ha2Ugb3BhcXVlIHVudGlsIHdlIGhhdmUgdGltZSB0byBjbGVhbiBpdCB1cCBhIGxpdHRsZS4KCjIwMTItMDUtMDEgMjI6MzA6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkgIHR5cGVmaW5kZmFjdG9yeTogZml4IHJldHVybiB0eXBlIG9mIGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfZXh0ZW5zaW9ucygpCgoyMDEyLTA1LTAxIDIyOjI4OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMsIGJhc2U6IGRvbid0IHBva2UgaW50byBHc3RUeXBlRmluZEZhY3Rvcnkgc3RydWN0LCB1c2UgcHVibGljIEFQSQoKMjAxMi0wNS0wMSAyMjozMzozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGZhY3Rvcnk6IGFkZCBnc3RfdHlwZV9maW5kX2ZhY3RvcnlfaGFzX2Z1bmN0aW9uKCkKCSAgQWRkIEFQSSBzbyBwZW9wbGUgZG9uJ3QgaGF2ZSB0byBwb2tlIHRoZSBzdHJ1Y3QgZm9yIHRoaXMuCgoyMDEyLTA1LTAxIDE1OjUyOjE0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiBVcGRhdGUgZG9jcyBmb3IgZ3N0X2NhcHNfaXNfZXF1YWwKCSAgTlVMTCBjYXBzIGFyZW4ndCB2YWxpZCBjYXBzIGluIDEuMCBhbmQgYXJlbid0IGFjY2VwdGVkIGluCgkgIGdzdF9jYXBzX2lzX2VxdWFsCgoyMDEyLTA1LTAxIDE5OjQ3OjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICB1cmk6IHJlcXVpcmUgVVJJIHByb3RvY29sIGJpdCB0byBiZSBhdCBsZWFzdCAzIGNoYXJhY3RlcnMgdG8gYmUgdmFsaWQKCSAgV2Ugd2FudCB0byByZXR1cm4gRkFMU0Ugd2hlbiBydW4gb24gYSB3aW5kb3dzLXN0eWxlIGZpbGUgcGF0aC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDI5NgoKMjAxMi0wNC0yNiAxNzoyNjo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm0vYmFzZXNyYzogRG8gYnVmZmVycG9vbCBjb25maWd1cmF0aW9uIGluc2lkZSB0aGUgZGVmYXVsdCBkZWNpZGVfYWxsb2NhdGlvbigpIGltcGxlbWVudGF0aW9uCgkgIFRoaXMgYWxsb3dzIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUgaXQsIGFzIGlzIG5lY2Vzc2FyeSBmb3IgZS5nLiB0aGUKCSAgdmlkZW8tY3JvcCBtZXRhLiBJdCBpcyBub3cgbmVjZXNzYXJ5IHRoYXQgYWZ0ZXIgZGVjaWRlX2FsbG9jYXRpb24oKQoJICB0aGVyZSBpcyBhbHdheXMgYSBhbGxvY2F0b3IgYW5kIGEgY29uZmlndXJlZCBidWZmZXIgcG9vbCBpbnNpZGUgdGhlCgkgIHF1ZXJ5LgoKMjAxMi0wNC0yOCAyMTozNzo1NiArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogc2V0IHJlc3VsdCBvbiBhY2NlcHQgY2FwcyBxdWVyeSB3aGVuIHRoZXJlIGlzIG5vIHBlZXIKCjIwMTItMDUtMDEgMTA6NTA6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlbW92ZSBfdHJ5X3RvX21lcmdlX3VwKCkKCSAgSXQgY2F1c2VzIHRoZSB0aW1lc3RhbXAgdG8gZ28gd3JvbmcsIHNob3VsZCBub3QgY2F1c2UgbXVjaCBvZiBhIHBlcmZvcm1hbmNlCgkgIGluY3JlYXNlIGFuZCBpbiB0aGUgY2FzZXMgd2hlcmUgaXQgaXMgZmFzdGVyLCBpdCBpcyBicm9rZW4gaW4gMC4xMCBhcyB3ZWxsLgoJICBXZSBzaG91bGQgdHJ5IHRvIHJldmlldyB0aGlzIHdoZW4gcmV3cml0aW5nIHRoZSBhZGFwdGVyIGZvciAwLjExIG1lbW9yeQoJICBmZWF0dXJlcy4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDc5MQoKMjAxMi0wNS0wMSAwOToyNToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogbWFrZSBpbnRlcm5hbHMgcHJpdmF0ZQoJICBNYWtlIHRoZSBhZGFwdGVyIGZpZWxkcyBwcml2YXRlLgoKMjAxMi0wNC0zMCAyMDoyOToyMSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmVhcnJhbmdlIHN5cy9zdGF0LmggaW5jbHVzaW9uIHBvaW50IGZvciBNaW5HVwoJICBnc3RwbHVnaW4uaCB1c2VkIHRvIGluY2x1ZGUgdGhpcyBmb3IgdXMsIGJ1dCBkb2Vzbid0IGFueSBsb25nZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxNzEKCjIwMTItMDQtMzAgMDk6NTg6MDkgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICBldmVudDogYWRkIG5ldyBzZWVrIHNuYXAgZmxhZ3MKCSAgVGhleSBjYW4gYmUgdXNlZCB0byBzZWxlY3Qgc25hcHBpbmcgYmVoYXZpb3IgKHRvIHByZXZpb3VzLCBuZXh0LCBvcgoJICBuZWFyZXN0IGxvY2F0aW9uLCB3aGVyZSByZWxldmFudCkgd2hlbiBzZWVraW5nLgoJICBUaGUgc2Vla2luZyBpbXBsZW1lbnRhdGlvbiAoZWcsIGRlbXV4ZXIpIG1heSBjdXJyZW50bHkgaWdub3JlIHNvbWUKCSAgb3IgYWxsIG9mIHRoZXNlIGZsYWdzLgoKMjAxMi0wNC0yOSAyMDowNjo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gcmVtb3ZlZCBBUEkgaW4gcGx1Z2luIGRvY3MKCjIwMTItMDQtMjkgMjA6MDY6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGF2b2lkIHNvbWUgcmVsb2NhdGlvbnMKCjIwMTItMDQtMjkgMTg6MzU6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luOiByZW1vdmUgZ3N0X3BsdWdpbl9uYW1lX2ZpbHRlcgoJICBJdCdzIG9ubHkgdXNlZCBpbnRlcm5hbGx5LCBtb3N0IG90aGVyIHVzZXJzIHdpbGwgbGlrZWx5CgkgIHdhbnQgdG8gdXNlIGdzdF9yZWdpc3RyeV9maW5kX3BsdWdpbigpIGRpcmVjdGx5IGluc3RlYWQKCSAgKGFuZCBpZiBub3QsIHRoZXkgY2FuIGVhc2lseSB3YWxrIHRoZSBsaXN0IGFuZCBkb2luZyB0aGUKCSAgc3RyY21wIHRoZW1zZWx2ZXMpLgoKMjAxMi0wNC0yOSAxNzo0NjozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHBsdWdpbjogdXNlIEdzdE9iamVjdCBmbGFncyBmb3IgcGx1Z2luIGZsYWdzCgoyMDEyLTA0LTI5IDE3OjAzOjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIHBsdWdpbjogbWFrZSBHc3RQbHVnaW4gb2JqZWN0IHN0cnVjdHVyZSBvcGFxdWUgZm9yIG5vdwoJICBUaGVyZSdzIG5vIHJlYXNvbiBhbnlvbmUgd291bGQgd2FudCB0byBkZXJpdmUgZnJvbSB0aGlzLCBzbwoJICBqdXN0IG1ha2Ugb3BhcXVlIHVudGlsIHdlIG1hbmFnZSB0byBtYWtlIGFsbCB0aGUgcHJpdmF0ZSBiaXRzCgkgIHByaXZhdGUgcHJvcGVybHkgKHdoaWNoIEknbSBub3QgZG9pbmcgcmlnaHQgbm93IGJlY2F1c2UgaXQncwoJICBtb3JlIGludmFzaXZlIGFuZCBJIGhhdmUgcmVnaXN0cnkgbW9kaWZpY2F0aW9ucyBsb2NhbGx5IHdoaWNoCgkgIHRvdWNoIGFsbCB0aGF0IGNvZGUgYXMgd2VsbCkuCgoyMDEyLTA0LTI5IDE2OjQ5OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiB1c2UgcHVibGljIGFjY2Vzc29ycyBmb3IgcGx1Z2luIGRlc2NyaXB0aW9uIGRldGFpbHMKCSAgTW9zdGx5IGFueXdheSAoZmxhZ3Mgc3RpbGwgbmVlZCBzb3J0aW5nIG91dCkuCgoyMDEyLTA0LTI5IDE2OjQ2OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGx1Z2luOiByZW1vdmUgZ3N0X3BsdWdpbl9nZXRfbW9kdWxlKCkKCSAgVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgcmVhbGx5LCBhbmQgaXQncyBub3QKCSAgY2xlYXIgd2hhdCBhbnlvbmUgd291bGQgZG8gd2l0aCB0aGlzLiBJdCdzIHVudXNlZCBhcwoJICBmYXIgYXMgSSdtIGF3YXJlLCBzbyBqdXN0IHJlbW92ZSBpdCBmb3Igbm93LgoKMjAxMi0wNC0yOSAxNjoyMDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHBsdWdpbjogYWRkIGFjY2Vzc29yIGZvciByZWxlYXNlIGRhdGUgdGltZSBzdHJpbmcgaW4gcGx1Z2luIGRlc2NyaXB0aW9uCgkgIEFQSTogZ3N0X3BsdWdpbl9nZXRfcmVsZWFzZV9kYXRlX3N0cmluZygpCgoyMDEyLTA0LTI5IDE1OjUzOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgdGVzdHM6IHVzZSBwdWJsaWMgYWNjZXNzb3JzIHRvIGdldCBwbHVnaW4gZGVzY3JpcHRpb24gZGV0YWlscwoKMjAxMi0wNC0yOSAxMzoyODowOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogZ2l2ZSB0aGUgMjB0aCBxdWV1ZSBlbGVtZW50IGEgZGlmZmVyZW50IG5hbWUgdGhhbiB0aGUgZmlyc3QgcXVldWUyIG9uZQoJICBGaXhlcyBpc3N1ZSB3aXRoIHRoZSBkZWZhdWx0IG5hbWluZyBzY2hlbWUuCgoyMDEyLTA0LTE4IDE3OjM3OjI1ICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIEZpeCBmb3JtYXQgc3RyaW5nIGluIGdyYW1tYXIueQoJICBGaXhlcyAjNjc0ODQ5CgoyMDEyLTA0LTI1IDIwOjE0OjEzICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZ3M6IGFkZCBjb21tZW50cyBmb3Igc3BhcnNlIGNvbnRyb2wgc291cmNlCgoyMDEyLTA0LTI1IDIwOjEwOjExICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGVtdWxhdGUgX2dldF9nX3ZhbHVlX2FycmF5KCkKCSAgQWRkIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvbiB0aGUgYmFzZWNsYXNzLgoKMjAxMi0wNC0yNSAwOTo0NzoxMCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IGV4cGFuZCB0aGUgYXBpIHRvIG9mZmVyIGZ1bmN0aW9ucyBmb3IgcGxhaW4gYW5kIEdWYWx1ZSBhcnJheXMKCSAgUmVuYW1lIHRoZSBfZ2V0X3ZhbHVlX2FycmF5KCkgZnVuY3Rpb25zIHRvIF9nZXRfZ192YWx1ZV9hcnJheSgpIGFuZCByZWludHJvZHVjZQoJICB0aGUgZm9ybWVyIHRvIG9wZXJhdGUgb24gcGxhaW4gdW5ib3hlZCBjIGRhdGF0eXBlcyAobGlrZSBpbiAwLjEwKS4gVGhlIF9nX3ZhbHVlCgkgIHZhcmlhbnRzIGFyZSBmb3IgYmluZGluZ3Mgd2hpbGUgdGhlIF92YWx1ZSBvbmVzIGFyZSBtb3JlIHN1aXRlZCB0byBwcm9jZXNzaW5nCgkgIGluIGVsZW1lbnRzLgoKMjAxMi0wNC0yNSAxODoxMTowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBBZGQgaW5zYW5pdHksIGluc2FuaXR5LWdzdCBhbmQgZ3N0LWVkaXRpbmctc2VydmljZXMKCjIwMTItMDQtMjUgMDk6MDY6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBSZXNldCB0aGUgYnVmZmVyIGJlZm9yZSByZWxlYXNpbmcgaW50byBwb29sCgkgIFJlc2V0IHRoZSBidWZmZXIgbm90IGFmdGVyIHdlIGFjcXVpcmUgYnV0IGJlZm9yZSB3ZSByZWxlYXNlIGludG8gdGhlIHBvb2wuIFRoaXMKCSAgbWFrZXMgc3VyZSB0aGF0IHRoZSBwb29sIG9ubHkgaGFzIGJ1ZmZlcnMgaW4gYSBjbGVhbiBzdGF0ZSBhbmQgdGhhdCB3ZSBjYW4gc2V0CgkgIGV4dHJhIG1ldGFkYXRhIG9uIGJ1ZmZlcnMgaW4gdGhlIGFjcXVpcmUgbWV0aG9kLiB0aGlzIG1lYW5zIHRoYXQgd2UgbmVlZCB0bwoJICByZW1vdmUgYW4gYXJndW1lbnQgZnJvbSB0aGUgbWV0aG9kLgoKMjAxMi0wNC0yMyAxNTozMjowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBNQVJLRVIgaXMgZm9yIHRoZSBzdGFydCBvZiBhIHRhbGtzcHVydAoKMjAxMi0wNC0yNCAxNjowMTo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcGx1ZyBzb21lIGxlYWtzCgoyMDEyLTA0LTIzIDE3OjA0OjU3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGRvIG5vdCB1bnJlZiBmbHVzaF9zdGFydCB0d2ljZQoJICBCYXNlZCBvbiBwYXRjaCBieSBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKMjAxMi0wNC0yMyAxNjo1NzoxNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogcmVmcmVzaCBza2lwIGZvbGxvd2luZyBtZXJnZV91cCBhdHRlbXB0CgkgIC4uLiBhcyB0aGUgbGF0dGVyIG1pZ2h0IG5vdyBhZGp1c3Qgc2tpcCBhcyB3ZWxsLgoKMjAxMi0wNC0yMyAwOToxODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiBSZW1vdmUgY29tbWEgYXQgZW5kIG9mIGVudW0gbGlzdAoJICBUaGlzIGNvbW1hIGNvbmZ1c2VzIHNvbWUgY29tcGlsZXJzLgoKMjAxMi0wNC0xOCAxNTozMToyMyArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IFJlbW92ZSB1bm5lZWRlZCB1bmxvY2sKCjIwMTItMDQtMTggMDU6MTI6NTUgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggaGFyZGNvZGVkIDAuMTAgdmVyc2lvbiBpbiB3aW4zMiBwbHVnaW5zY2FubmVyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQyOTQKCjIwMTItMDQtMTcgMTU6Mzc6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGFkZCBMT0NLRUQgZmxhZwoJICBBZGQgYSBuZXcgTE9DS0VEIGZsYWcgdG8gdGhlIG1ldGFkYXRhLiBSZWZ1c2UgcmVtb3ZpbmcgTE9DS0VEIG1ldGFkYXRhIGZyb20KCSAgYSBidWZmZXIuCgkgIE1hcmsgdGhlIG1ldGFkYXRhIGZyb20gdGhlIGJ1ZmZlcnBvb2wgTE9DS0VELgoJICBBZGQgdW5pdCB0ZXN0IGZvciBMT0NLRUQgZmxhZwoKMjAxMi0wNC0xNyAxNDozODowMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvajoKCSogd2luMzIvdnMxMC9iYXNlL2Jhc2UudmN4cHJvai5maWx0ZXJzOgoJICBjb2xsZWN0cGFkczI6IHJlbmFtZSB0byBjb2xsZWN0cGFkcwoKMjAxMi0wNC0xNyAxMjo1NDo0NSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZW5zdXJlIHdyaXRhYmxlIGhlYWQgYnVmZmVyIGJlZm9yZSBza2lwcGluZyBwYXJ0IG9mIGl0CgoyMDEyLTA0LTE3IDEyOjI5OjUwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCjIwMTItMDQtMTcgMTI6MjM6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhbHdheXMgcmVjb3JkaW5nIGluY29taW5nIHNlZ21lbnQgaW5mbyBpZiBubyBidWZmZXJfZnVuYyBzZXQKCjIwMTItMDQtMTcgMTA6Mzg6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogdXBkYXRlIHRoZSBkZWJ1ZyBhbmQgdHJhY2UgZW52IHZhciBkb2NzCgoyMDEyLTA0LTE3IDEwOjMzOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiB1c2UgZ19wYXJzZV9kZWJ1Z19zdHJpbmcgaW5zdGVhZCBvZiBhdG9pCgkgIE1ha2UgdGhlIEdTVF9UUkFDRSBlbnYgdmFyaWFibGUgdGFrZSBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHN0cmluZ3MKCSAgZGVzY3JpYmluZyB0aGUgb3B0aW9ucyB0byBlbmFibGUgaW5zdGVhZCBvZiBhIG51bWJlci4KCjIwMTItMDQtMTYgMjE6MTQ6MTcgKzAwMDAgIFlvdW5lc3MgQWxhb3VpIDx5b3VuZXNzLmFsYW91aUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogSWYgcnVubmluZyB3aXRoIC0tcHJpbnQtYWxsLCBmaXggcHJpbnRpbmcgb2YgdGhlIENoaWxkcmVuOiBsaW5lCgoyMDEyLTA0LTE2IDIxOjE0OjAyICswMDAwICBZb3VuZXNzIEFsYW91aSA8eW91bmVzcy5hbGFvdWlAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IElmIHJ1bm5pbmcgd2l0aCAtLXByaW50LWFsbCwgZml4IHByaW50aW5nIG9mIHNpZ25hbCBuYW1lcwoKMjAxMi0wNC0xNiAxNjozNjo1MiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGNvbGxlY3RwYWRzMiBBUEkgdG8gLmRlZiBmaWxlCgoyMDEyLTA0LTE2IDE2OjI5OjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCjIwMTItMDQtMTYgMTY6MjQ6MTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBwcm92aWRlIHF1ZXJ5IGRlZmF1bHQgYW5kIGNhbGxiYWNrIGhhbmRsaW5nCgkgIC4uLiB3aGljaCBwcmVzZW50bHkgbWFpbmx5IHNlcnZlcyB0byBhbnN3ZXIgU0VFS0lORyBxdWVyeSBuZWdhdGl2ZWx5CgkgIHRvIGRpc3N1YWRlIHVwc3RyZWFtIGVuY29kZXJzIGZyb20gZG9pbmcgYW55IHNlZWtpbmcgYW5kCgkgICJoZWFkZXIgZmluYWxpemF0aW9uIiAoc2luY2UgdGhlIHJldHVybmVkIHJlc3VsdCBvZiBwdXNoaW5nIGEKCSAgc3RpY2t5IGV2ZW50IGlzIGZhaXJseSB1c2VsZXNzIG5vd2FkYXlzKS4KCjIwMTItMDQtMTYgMTY6MjQ6MTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBtb2RpZnkgZXZlbnQgaGFuZGxpbmcgdXNpbmcgYSBkZWZhdWx0IGV2ZW50IGhhbmRsZXIKCSAgLi4uIHRoYXQgZWxlbWVudHMgc2hvdWxkICJjaGFpbiB1cCIgdG8uCgoyMDEyLTA0LTE2IDE1OjM1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHNlZ21lbnQ6IGFkZCBydWRlIHNlcmlhbGl6YXRpb24KCSAgQXNzIHNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUgZnVuY3Rpb25zIGZvciBHc3RTZWdtZW50IHNvIHRoYXQgZ2RwIGFuZAoJICBnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyBzaG93IHRoZSBzZWdtZW50IHZhbHVlcy4gV2UgY29udmVydCB0byBhIEdzdFNlZ21lbnQKCSAgZmlyc3QgdG8gbWFrZSB0aGluZ3MgZWFzaWVyLi4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDEwMAoKMjAxMi0wMi0wMyAxNzowODozNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGFzc3VtZSAwIGJhc2VkIHNlZ21lbnQgaWYgbm8gdGltZSBzZWdtZW50IHdhcyBwcm92aWRlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5MzA1CgoyMDEyLTA0LTE2IDEwOjI4OjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGFkZCBzaXplIHRvIGRlYnVnIGxvZwoKMjAxMi0wNC0xNiAxMDoyNzoyOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogU2V0IHNlcXVlbmNlIG51bWJlciBvbiBzZWdtZW50IGV2ZW50cwoKMjAxMi0wNC0xNiAxMDoyMjo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRm9yd2FyZCBhbGwgc3RpY2t5IGV2ZW50cyB3aGVuIHN3aXRjaGluZyBwYWRzCgoyMDEyLTA0LTE2IDEwOjA1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogU3RvcmUgcGFkIHN0YXRlIGRpcmVjdGx5IGluc2lkZSB0aGUgcGFkcyBpbnN0ZWFkIG9mIEdPYmplY3QgcWRhdGEKCjIwMTItMDQtMTYgMDk6NDU6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFNlbmQgcmVjb25maWd1cmUgZXZlbnQgb24gdGhlIG5ldyBhY3RpdmUgcGFkIHdoZW4gcGFkcyBhcmUgc3dpdGNoZWQKCjIwMTItMDQtMTYgMDk6MDg6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2ZGIyNWJlIHRvIGRjNzAyMDMKCjIwMTItMDQtMTQgMDM6Mjc6MjkgKzAyMDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgUmVtb3ZlIHNraXBwZWQgcGFydCBvZiBidWZmZXIgd2hlbiBtYXBwaW5nIHRoZSBhZGFwdGVyCgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQwODUKCjIwMTItMDQtMTQgMTA6MjQ6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFkZCBhbm90aGVyIGFkYXB0ZXIgdGVzdAoJICBUZXN0IHBlcmZvcm1hbmNlIG9mIG1lcmdpbmcKCjIwMTItMDQtMTQgMTA6MjM6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkZWJ1ZwoKMjAxMi0wNC0xMyAxNDoyMjozNCArMDIwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoIHVubG9ja3MgdGhlIHF1ZXVlIHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzQwNDQKCjIwMTItMDQtMTMgMTM6MzY6MzcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IE1vZGVybml6ZSBhdXRvdG9vbHMgc2V0dXAgYSBiaXQKCSAgQWxzbyB3ZSBub3cgb25seSBjcmVhdGUgdGFyLmJ6MiBhbmQgdGFyLnh6IHRhcmJhbGxzLgoKMjAxMi0wNC0xMyAxMzozNjo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ2NGZlMTUgdG8gNmRiMjViZQoKMjAxMi0wNC0xMyAxMTo1ODo0OSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBwbHVnIGNhcHMgbGVhawoKMjAxMi0wNC0xMyAwODoxMDoxOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZzogb25seSB0YWtlIGEgd2VhayByZWYgb24gdGhlIG9iamVjdAoJICBGaXhlcyB0aGUgbGVha3MgaW4gdGhlIHRlc3RzLiBBZGRlZCBhIFRPRE8gY29tbWVudCB0byBldmVudHVhbGx5IHJld29yayB0aGlzCgkgIHNvbWUgbW9yZSAod2hpbGUgd2UgY2FuKS4KCjIwMTItMDQtMTIgMTg6MTU6MjcgLTA0MDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQGNvbGxhYm9yYS5jb20+CgoJKiBBbmRyb2lkLm1rOgoJICBTeW5jIEFuZHJvaWQubWsgZW50cmllcyB0byB0aGUgbmV3IG1ham9yIHZlcnNpb24KCSAgQ2hhbmdlIG5hbWluZyBvbiB0aGUgcGtnY29uZmlnIGZpbGVzIHRvIHJlZmxlY3QKCSAgdGhlIDAuMTAgLT4gMS4wIGJ1bXAuCgoyMDEyLTA0LTEyIDE0OjU5OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0YXJnYmNvbnRyb2xiaW5kaW5nLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogQ2hhaW4gdXAgdG8gcGFyZW50IGNsYXNzIGRpc3Bvc2UvZmluYWxpemUKCSAgQXZvaWRzIGxlYWtzCgoyMDEyLTA0LTEyIDE0OjU5OjMxICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IFVzZSBnc3Rfb2JqZWN0X3tyZWZ8dW5yZWZ9IHdoZXJlIGFwcGxpY2FibGUKCSAgQWxsb3dzIHVzIHRvIGRlYnVnIG9iamVjdCBsaWZlCgoyMDEyLTA0LTEyIDE0OjU4OjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZ3N0OiBVc2UgZ3N0X29iamVjdF97cmVmfHVucmVmfSB3aGVyZSBhcHBsaWNhYmxlCgkgIEFsbG93cyB1cyB0byBkZWJ1ZyBvYmplY3QgbGlmZQoKMjAxMi0wNC0xMiAxMTo1MzowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIGFyZyBjaGVja2luZwoJICBBbGxvdyBpZHggPT0gMCBhbmQgbGVuZ3RoID09IC0xIG9uIGVtcHR5IGJ1ZmZlcnMgZm9yIHRoZSBfcmFuZ2UgbWV0aG9kcy4KCjIwMTItMDQtMTIgMTE6MTg6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjkwID09PQoKMjAxMi0wNC0xMiAwOTo1NzowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjExLjkwCgoyMDEyLTA0LTEyIDA5OjU2OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMi0wNC0xMSAxMzoyMDoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1lcmdlIGVycm9yCgoyMDEyLTA0LTExIDEyOjU4OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IGJ1ZmZlciB0byBOVUxMIGJlZm9yZSBwdWxsCgoyMDEyLTA0LTExIDEyOjU0OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHRlc3RzOiBwb3J0IHF1ZXVlMiB0ZXN0cyB0byAwLjExCgoyMDEyLTA0LTExIDEyOjUwOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHRvYy5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTItMDQtMTEgMTI6MzQ6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNpZ25hbCBkZWxldGUgYmVmb3JlIHdhaXRpbmcKCSAgV2hlbiB3ZSBkb24ndCBoYXZlIHRoZSByZXF1ZXN0ZWQgZGF0YSBpbiB0aGUgcmluZ2J1ZmZlciBhbmQgd2UgbW92ZSBvdXIgcmVhZAoJICBwb2ludGVyIHRvIHRoZSByZXF1ZXN0ZWQgcG9zaXRpb24sIHNpZ25hbCB0aGUgZGVsZXRlIGNvbmQgdG8gaW5mb3JtIHRoZSB3cml0ZXIKCSAgdGhhdCB3ZSBjaGFuZ2VkIHRoZSBjdXJyZW50IGZpbGwgbGV2ZWwuIElmIHdlIGRvbid0LCB0aGUgd3JpdGVyIG1pZ2h0IHN0YXkKCSAgYmxvY2tlZCBhbmQgd2UgbWlnaHQgd2FpdCBmb3JldmVyLgoKMjAxMi0wNC0xMSAxMjoxNTozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCB0ZXN0IGZvciByaW5nYnVmZmVyIGRlYWRsb2NrCgoyMDEyLTA0LTExIDEyOjAyOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1cGRhdGUgY3VycmVudCByZWFkIHBvc2l0aW9uIGJlZm9yZSB3YWl0aW5nCgkgIFdoZW4gd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggYnl0ZXMgaW4gdGhlIHJpbmdidWZmZXIgdG8gc2F0aXNmeSB0aGUgY3VycmVudAoJICByZXF1ZXN0LCBmaXJzdCB1cGRhdGUgdGhlIGN1cnJlbnQgcmVhZCBwb3NpdGlvbiBiZWZvcmUgd2FpdGluZy4gSWYgd2UgZG9uJ3QgZG8KCSAgdGhhdCwgdGhlIHJpbmdidWZmZXIgbWlnaHQgYXBwZWFyIGZ1bGwgYW5kIHRoZSB3cml0ZXIgd2lsbCBuZXZlciB3cml0ZSBtb3JlCgkgIGJ5dGVzIHRvIHdha2UgdXMgdXAuCgoyMDEyLTA0LTExIDEyOjAwOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgcmFuZ2Ugb25seSBvbiBzaW5rcGFkCgkgIE9ubHkgYWRkIHRoZSByYW5nZSB3aGVuIHdlIHJlY2VpdmUgYSBzZWdtZW50IGV2ZW50IG9uIHRoZSBzaW5rcGFkLiBUaGUgYWRkX3JhbmdlCgkgIG1ldGhvZCB3aWxsIG1vZGlmeSB0aGUgd3JpdGUgcG9zaXRpb24sIHdoaWNoIG9ubHkgbWFrZXMgc2Vuc2UgdG8gZG8gb24gdGhlCgkgIHNpbmtwYWQuCgoyMDEyLTA0LTExIDExOjU1OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZGVidWcgbWVzc2FnZQoJICBXZSdyZSBub3Qgd3JpdGluZyB0byB0aGUgb2Zmc2V0IG9mIHRoZSBidWZmZXIKCjIwMTItMDQtMTEgMTE6NTU6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZF9yYW5nZSBhbHJlYWR5IHVwZGF0ZXMgdGhlIGxldmVsCgoyMDEyLTA0LTEwIDE0OjExOjI2ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGZpeCBtZW1vcnkgbGVha3Mgd2hpbGUgY29weWluZyBjb250ZW50CgoyMDEyLTA0LTEwIDE0OjE4OjQ4ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2NzZXR0ZXI6IGZpeCBtZW1vcnkgbGVha3MgaW4gdW5pdCB0ZXN0CgoyMDEyLTA0LTEwIDE0OjE2OjUwICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGZpeCBtZW1vcnkgbGVha3MgaW4gdW5pdCB0ZXN0CgoyMDEyLTA0LTEwIDE0OjE4OjQ4ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2NzZXR0ZXI6IGZpeCBtZW1vcnkgbGVha3MgaW4gdW5pdCB0ZXN0CgoyMDEyLTA0LTEwIDE0OjE2OjUwICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGZpeCBtZW1vcnkgbGVha3MgaW4gdW5pdCB0ZXN0CgoyMDEyLTA0LTEwIDE0OjExOjI2ICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRvYy5jOgoJICB0b2M6IGZpeCBtZW1vcnkgbGVha3Mgd2hpbGUgY29weWluZyBjb250ZW50CgoyMDEyLTA0LTEwIDE5OjM5OjU4ICswMzAwICBTcmVlcmVuaiBCYWxhY2hhbmRyYW4gPHNyZWVyZW5qLmJhbGFjaGFuZHJhbkBpbnRlbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogQ2xlYW4gdXAgaGVhZGVyIGZpbGVzCgoyMDEyLTA0LTEwIDE2OjA3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgoyMDEyLTA0LTEwIDE2OjA0OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjbGVhciBzZWVraW5nIGZsYWcgaW4gYWxsIGNhc2VzCgkgIEFsc28gY2xlYXIgdGhlIHNlZWtpbmcgZmxhZyB3aGVuIGRvd25zdHJlYW0gaXMgaW4gcHVsbCBtb2RlLgoKMjAxMi0wNC0xMCAxMjo1NTozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIGdzdC9nc3QuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDEyLTA0LTEwIDEyOjQ5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCB0b2MgZW50cnkgcmVmL3VucmVmCgoyMDEyLTA0LTEwIDEyOjA5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgc2Vla2luZyBmbGFnIHdpdGggdGhlIHF1ZXVlIGxvY2sKCjIwMTItMDQtMTAgMTE6MjA6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEtlZXAgdHJhY2sgb2YgdGhlIHNlZWtpbmcgc3RhdGUKCSAgU2V0IHRoZSBzZWVraW5nIGZsYWcgcmlnaHQgYmVmb3JlIHdlIHNlbmQgYSBzZWVrIGV2ZW50IHVwc3RyZWFtIGFuZCBkaXNjYXJkIGFsbAoJICBkYXRhIHVudGlsbCB3ZSBzZWUgYSBmbHVzaC1zdG9wIGFnYWluLiBXZSBuZWVkIHRvIGRvIHRoaXMgYmVjYXVzZSB3ZSBhY3RpdmF0ZQoJICB0aGUgcmFuZ2UgdGhhdCB3ZSBzZWVrIHRvIGltbWVkaWF0ZWx5IGFmdGVyIHNlbmRpbmcgdGhlIHNlZWsgZXZlbnQgYW5kIGl0IGlzCgkgIHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBkYXRhIGluIG91ciBjaGFpbiBmdW5jdGlvbiBmcm9tIGJlZm9yZSB0aGUgc2VlawoJICB3aGljaCB3b3VsZCB0aGVuIGJlIGFkZGVkIHRvIHRoZSB3cm9uZyByYW5nZSByZXN1bHRpbmcgaW4gZGF0YSBjb3JydXB0aW9uLgoKMjAxMi0wNC0xMCAxMToxNjoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogbWFrZSByYW5nZSBvbiBuZXdzZWdtZW50IGZvciByaW5nYnVmZmVyCgkgIFdoZW4gdXNpbmcgdGhlIHJpbmdidWZmZXIsIGhhbmRsZSB0aGUgbmV3c2VnbWVudCBldmVudCBsaWtlIHdlIGhhbmRsZSBpdCB3aGVuCgkgIHVzaW5nIHRoZSB0ZW1wLWZpbGUgbW9kZTogY3JlYXRlIGEgbmV3IHJhbmdlIGZvciB0aGUgbmV3IGJ5dGUgc2VnbWVudC4gVGhlIG5ldwoJICBzZWdtZW50IHNob3VsZCBub3JtYWxseSBhbHJlYWR5IGJlIGNyZWF0ZWQgd2hlbiB3ZSBkbyBhIHNlZWsuCgoyMDEyLTA0LTA5IDE2OjQyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoKMjAxMi0wNC0wOSAxNjo0MDo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgdXNlIGJ1ZmZlciBhZnRlciBwdXNoaW5nIGl0IGRvd25zdHJlYW0KCjIwMTItMDQtMDkgMTY6MDQ6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgoyMDEyLTA0LTA5IDE1OjU4OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZhaWwgaWYgYSBwYWQgZm9yIGEgbm9uLXJlcXVlc3QgdGVtcGxhdGUgaXMgcmVxdWVzdGVkCgoyMDEyLTA0LTA5IDEzOjQwOjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgZWxlbWVudDogdXNlIHF1YXJrcyB3aGVuIHN0b3Jpbmcgc3RhbmRhcmQgbWV0YWRhdGEgaW4gc3RydWN0dXJlcwoKMjAxMi0wNC0wOSAxMzowNTowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgcGx1Z2luczogdXNlIG5ldyBnc3RfZWxlbWVudF9jbGFzc19zZXRfc3RhdGljX21ldGFkYXRhKCkKCjIwMTItMDQtMDkgMTI6NDc6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9jbGFzc197c2V0LGFkZH1fc3RhdGljX21ldGFkYXRhKCkKCSAgQWRkIGdzdF9lbGVtZW50X2NsYXNzX3thZGQsc2V0fV9tZXRhZGF0YSgpIHZhcmlhbnRzIGZvciBzdGF0aWMgc3RyaW5ncywKCSAgc28gd2UgY2FuIGF2b2lkIHVubmVjZXNzYXJ5IGdfc3RyZHVwKClzLgoJICBBUEk6IGdzdF9lbGVtZW50X2NsYXNzX2FkZF9zdGF0aWNfbWV0YWRhdGEoKQoJICBBUEk6IGdzdF9lbGVtZW50X2NsYXNzX3NldF9zdGF0aWNfbWV0YWRhdGEoKQoKMjAxMi0wNC0wOCAyMToxNzoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgdGFzazogcmVtb3ZlIGdzdF90YXNrX3NldF9wcmlvcml0eSgpCgkgIEl0IGRvZXNuJ3QgYWN0dWFsbHkgZG8gYW55dGhpbmcuCgoyMDEyLTAxLTE0IDAwOjMxOjMyIC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogd2luMzIvdnMxMC9Db21tb24ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvTGlicmFyeS5wcm9wczoKCSogd2luMzIvdnMxMC9QbHVnaW4ucHJvcHM6CgkqIHdpbjMyL3ZzMTAvUmVhZE1lLnR4dDoKCSogd2luMzIvdnMxMC9Ub29sLnByb3BzOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2Jhc2UvYmFzZS52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvY29udHJvbGxlci9jb250cm9sbGVyLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nZW5lcmF0ZWQvZ2VuZXJhdGVkLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ2VuZXJhdGVkL2dlbmVyYXRlZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWluc3BlY3QvZ3N0LWluc3BlY3QudmN4cHJvajoKCSogd2luMzIvdnMxMC9nc3QtaW5zcGVjdC9nc3QtaW5zcGVjdC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LWxhdW5jaC9nc3QtbGF1bmNoLnZjeHByb2ouZmlsdGVyczoKCSogd2luMzIvdnMxMC9nc3QtdHlwZWZpbmQvZ3N0LXR5cGVmaW5kLnZjeHByb2o6CgkqIHdpbjMyL3ZzMTAvZ3N0LXR5cGVmaW5kL2dzdC10eXBlZmluZC52Y3hwcm9qLmZpbHRlcnM6CgkqIHdpbjMyL3ZzMTAvZ3N0Y29yZWVsZW1lbnRzL2dzdGNvcmVlbGVtZW50cy52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdGNvcmVlbGVtZW50cy9nc3Rjb3JlZWxlbWVudHMudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci5zbG46CgkqIHdpbjMyL3ZzMTAvZ3N0cmVhbWVyL2dzdHJlYW1lci52Y3hwcm9qOgoJKiB3aW4zMi92czEwL2dzdHJlYW1lci9nc3RyZWFtZXIudmN4cHJvai5maWx0ZXJzOgoJKiB3aW4zMi92czEwL25ldC9uZXQudmN4cHJvajoKCSogd2luMzIvdnMxMC9uZXQvbmV0LnZjeHByb2ouZmlsdGVyczoKCSAgd2luMzI6IGFkZCBWUyAxMCBQcm9qZWN0IGZpbGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYyMTkKCjIwMTItMDQtMDggMTg6MjU6MzkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IHVwZGF0ZSBmb3IgdmVyc2lvbiBjaGFuZ2VzCgoyMDEyLTA0LTA3IDE2OjM1OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoKMjAxMi0wNC0wNyAxNjowNjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgVE9DIEFQSSB0byBsaWJnc3RyZWFtZXIuZGVmCgkgIEZpeGVzICdtYWtlIGNoZWNrJy4KCjIwMTItMDQtMDcgMTY6MDU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBhZGQgbmV3IHRvYyB0ZXN0IGJpbmFyaWVzIHRvIC5naXRpZ25vcmUKCjIwMTItMDQtMDcgMTY6MDQ6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkgIGdzdDogZG9uJ3QgZXhwb3J0IHByaXZhdGUgVE9DIGZ1bmN0aW9ucwoKMjAxMi0wNC0wNyAxNTo0MjowOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YXRvbWljcXVldWUuYwoKMjAxMi0wMi0yNCAxNToyNDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IHJhY2UKCSAgQWZ0ZXIgYSB3cml0ZXIgaGFzIHdyaXR0ZW4gdG8gaXRzIHJlc2VydmVkIHdyaXRlIGxvY2F0aW9uLCBpdCBjYW4gb25seSBtYWtlIHRoZQoJICBsb2NhdGlvbiBhdmFpbGFibGUgZm9yIHJlYWRpbmcgaWYgYWxsIG9mIHRoZSB3cml0ZXJzIHdpdGggbG93ZXIgbG9jYXRpb25zIGhhdmUKCSAgZmluaXNoZWQuCgoyMDEyLTAyLTI0IDEyOjUxOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggc3VidGxlIHJhY2UKCSAgRml4IGEgcmFjZSB3aGVyZSB0aGUgcmVhZGVyIHdvdWxkIHNlZSB0aGUgdXBkYXRlZCB0aGUgdGFpbCBwb2ludGVyIGJlZm9yZSB0aGUKCSAgd3JpdGUgY291bGQgd3JpdGUgdGhlIGRhdGEgaW50byB0aGUgcXVldWUuIEZpeCB0aGlzIGJ5IGhhdmluZyBhIHNlcGFyYXRlIHJlYWRlcgoJICB0YWlsIHBvaW50ZXIgdGhhdCBpcyBvbmx5IGluY3JlbWVudGVkIGFmdGVyIHRoZSB3cml0ZXIgd3JvdGUgdGhlIGRhdGEuCgoyMDEyLTA0LTA3IDE1OjIwOjA1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBzZXQgZGVmYXVsdCBibG9jayBzaXplIGZyb20gbG9jYWwgZGVmaW5lCgkgIERvZXNuJ3QgYWN0dWFsbHkgY2hhbmdlIHRoZSBkZWZhdWx0IHZhbHVlLCBqdXN0IG1ha2VzIHVzZSBvZiB0aGUKCSAgZGVmaW5lIHRoZXJlIGlzLiBTdXBlcmZpY2lhbCB0ZXN0aW5nIHdpdGggZmFrZXNpbmsgYW5kIGpwZWdkZWMgZGlkCgkgIG5vdCByZXZlYWwgaW1wcm92ZWQgcGVyZm9ybWFuY2UgZm9yIGJpZ2dlciBibG9jayBzaXplcywgc28gbGVhdmUKCSAgZGVmYXVsdCBhcyBpdCBpcy4KCjIwMTItMDQtMDYgMTY6NDY6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHVwZGF0ZSB0aGUgY3VycmVudCByZWFkaW5nX3BvcyBpbiBmbHVzaAoJICBBIGZsdXNoIGZyb20gdGhlIHVwc3RyZWFtIGVsZW1lbnQgc2hvdWxkIG5vdCBtYWtlIGJ1ZmZlcmluZyBnbyB0byAwLCB0aGUgbmV4dAoJICBwdWxsIHJlcXVlc3QgbWlnaHQgYmUgaW5zaWRlIGEgcmFuZ2UgdGhhdCB3ZSBoYXZlIGFuZCB0aGVuIHdlIGRvbid0IG5lZWQgdG8KCSAgYnVmZmVyIGF0IGFsbC4gSWYgdGhlIG5leHQgcHVsbCBpcyBvdXRzaWRlIGFueXRoaW5nIHdlIGhhdmUsIGJ1ZmZlcmluZyB3aWxsCgkgIGhhcHBlbiBhcyB1c3VhbCBhbnl3YXkuCgoyMDEyLTA0LTA2IDEyOjQyOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggZm9yIG1lcmdlZCBjaGFuZ2VzCgoyMDEyLTA0LTA2IDEyOjM3OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICcwLjEwJwoKMjAxMi0wNC0wNiAxMjozMjo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogY2hlY2sgdGhlIHBhZCBtb2RlIG9uIHRoZSByaWdodCBwYWQKCjIwMTItMDQtMDYgMTI6MjQ6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZvcndhcmQgZmx1c2ggZXZlbnRzIGNvcnJlY3RseQoJICBXZSB3YW50IHRvIGZvcndhcmQgdGhlIGZsdXNoIGV2ZW50cyByZWNlaXZlZCBvbiB0aGUgc2lua3BhZCB3aGVuZXZlciB0aGUgc3JjcGFkCgkgIGlzIGFjdGl2YXRlZCBpbiBwdXNobW9kZSwgd2hpY2ggY2FuIGFsc28gaGFwcGVuIHdoZW4gdXNpbmcgdGhlIFJJTkdCVUZGRVIgb3IKCSAgRE9XTkxPQUQgbW9kZSBhbmQgZG93bnN0cmVhbSBmYWlsZWQgdG8gYWN0aXZhdGUgdXMgaW4gcHVsbCBtb2RlLgoKMjAxMi0wNC0wNSAyMTo1NjowNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5jOgoJICBjb250cm9sYmluZGluZzogY2hhaW4gdXAgb24gZGlzcG9zZSBhbmQgZmluYWxpemUKCjIwMTItMDQtMDUgMjE6NTU6MDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogdW5wYXJlbnQgdGhlIGNvbnRyb2xiaW5kaW5nIG9uIGRpc3Bvc2UKCjIwMTItMDQtMDUgMjE6MDc6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGFyZ2Jjb250cm9sYmluZGluZy5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGRpcmVjdGNvbnRyb2xiaW5kaW5nLmM6CgkgIGNvbnRyb2xsZXI6IGR1cCB0aGUgb2JqZWN0cyB0byBhdm9pZCBwcmVtYXR1cmUgZnJlZXMKCjIwMTItMDQtMDUgMjE6MDY6MTQgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgYSBmaW5hbGl6ZXIgZm9yIHRoZSB0ZXN0IGNvbnRyb2xiaW5kaW5ncwoJICBObyBpZGVhIHdoeSB2YWxncmluZCBzdGlsbCBpbmlzdHMgdGhhdCB0aGVyZSBhcmUgbGVha3MuCgoyMDEyLTA0LTA1IDE4OjQyOjMwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2ZkYTUyNCB0byA0NjRmZTE1CgoyMDEyLTA0LTA1IDE0OjE3OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBnc3Q6IENoYW5nZSBuYW1lIHBhcmFtZXRlciBvZiBHU1RfUExVR0lOX0RFRklORSgpIHRvIG5vdCB0YWtlIGEgc3RyaW5nIGFueW1vcmUKCSAgVGhpcyB3aWxsIGJlIG5lZWRlZCB3aGVuIHdlIGxhdGVyIGFkZCBzdXBwb3J0IGZvciBzdGF0aWMgbGlua2luZwoJICBvZiBwbHVnaW5zIHdpdGhvdXQgaW50cm9kdWNpbmcgbmV3IEFQSSBvciBjaGFuZ2luZyBleGlzdGluZyBBUEkuCgoyMDEyLTA0LTA1IDEzOjIzOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZ3N0cGx1Z2luOiBBZGQgaGFjayBmb3IgaGFuZGxpbmcgMC4xMS45WCBhbmQgMC4xMS44OS5YIHdpdGggWD4wIHRoZSBzYW1lIGFzIDEuMC4wCgkgIEFsc28gdXBkYXRlIHRoZSB2ZXJzaW9uIG51bWJlciB0byAwLjExLjg5LjEKCjIwMTItMDQtMDUgMTI6MjI6MTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJICB0b2NzZXR0ZXI6IGNsZWFyIG11dGV4IHVwb24gZnJlZQoKMjAxMi0wNC0wNSAxMDo1NjoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgcmVnaXN0cnk6IFNldCByZWdpc3RyeSB2ZXJzaW9uIHRvIDEuMC4wIHRvbwoKMjAxMi0wNC0wNSAxMDozNjowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jCgoyMDEyLTA0LTA1IDEwOjAzOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzdG9wIHdhaXRpbmcgZm9yIG1vcmUgZGF0YSBhZnRlciBFT1MKCSAgV2hlbiB3ZSBoYXZlIEVPUywgcmVhZCB0aGUgcmVtYWluaW5nIGJ5dGVzIGluIHRoZSBidWZmZXIgYW5kIG1ha2Ugc3VyZSB3ZSBkb24ndAoJICB3YWl0IGZvciBtb3JlIGRhdGEuIEFsc28gY2xpcCB0aGUgb3V0cHV0IGJ1ZmZlciB0byB0aGUgYW1vdW50IG9mIHJlbWFpbmluZwoJICBieXRlcy4KCjIwMTItMDQtMDUgMDk6NTY6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGNoZWNrIGZvciBmaWxsZWQgYnVmZmVyIGNvcnJlY3RseQoJICBXaGVuIHVzaW5nIHRoZSByaW5nYnVmZmVyIG1vZGUsIHRoZSBidWZmZXIgaXMgZmlsbGVkIHdoZW4gd2UgcmVhY2hlZCB0aGUKCSAgbWF4X2xldmVsLmJ5dGVzIG1hcmsgb3IgdGhlIHRvdGFsIHNpemUgb2YgdGhlIHJpbmdidWZmZXIsIHdoaWNoZXZlciBpcyBzbWFsbGVyLgoKMjAxMi0wNC0wNCAxMzowNzoyNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYXZvaWQgd2FpdGluZyBmb3IgYSBmaWxsZWQgYnVmZmVyCgkgIFVzZSBhIHRocmVzaG9sZCB2YXJpYWJsZSB0byBob2xkIHRoZSBtYXhpbXVtIGRpc3RhbmNlIGZyb20gdGhlIGN1cnJlbnQgcG9zaXRpb24KCSAgZm9yIHdpdGggd2Ugd2lsbCB3YWl0IGluc3RlYWQgb2YgZG9pbmcgYSBzZWVrLgoJICBXaGVuIHVzaW5nIHRoZSByaW5nYnVmZmVyIGFuZCB0aGUgcmVxdWVzdGVkIG9mZnNldCBpcyBub3QgYXZhaWxhYmxlLCBhdm9pZAoJICB3YWl0aW5nIHVudGlsIHRoZSBjb21wbGV0ZSByaW5nYnVmZmVyIGlzIGZpbGxlZCBidXQgaW5zdGVhZCBkbyBhIHNlZWsgd2hlbiB0aGUKCSAgcmVxdWVzdGVkIGRhdGEgaXMgZnVydGhlciB0aGFuIHRoZSB0aHJlc2hvbGQuCgkgIEF2b2lkIGRvaW5nIHRoZSBzZWVrIHR3aWNlIGluIHRoZSByaW5nYnVmZmVyIGNhc2UuCgkgIFVzZSB0aGUgc2FtZSB0aHJlc2hvbGQgZm9yIHJpbmdidWZmZXIgYW5kIGRvd25sb2FkIGJ1ZmZlcmluZy4KCjIwMTItMDQtMDUgMDk6MDc6MTggKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGZpeCBjb21waWxlIHdhcm5pbmcKCjIwMTItMDQtMDQgMTM6MTM6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9yYW5kb20vYXV0b3Rvb2xzOgoJKiBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46CgkqIGdzdC1lbGVtZW50LWNoZWNrLm00LmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6CgkqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0cmVhbWVyLWNvbXBsZXRpb246CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgZ3N0OiBDaGFuZ2UgdmVyc2lvbmluZwoJICBSZW1vdmUgR1NUX01BSk9STUlOT1IgYW5kIHJlcGxhY2UgaXQgYnkgR1NUX0FQSV9WRVJTSU9OCgkgIEFsc28gc2V0IEdTVF9WRVJTSU9OX3tNQUpPUixNSU5PUixNSUNSTyxOQU5PfSBleHBsaWNpdGVseQoJICBub3cuCgkgIEFsbCB2ZXJzaW9ucyBhcmUgYXQgMS4wLjAgbm93IGZvciB0aGUgcmVsZWFzZSBzb29uIGJ1dAoJICBBUEkvQUJJIGNhbiBzdGlsbCBjaGFuZ2UgdW50aWwgdGhlIDEuMC4wIHJlbGVhc2UuCgkgIE5leHQgcmVsZWFzZSB2ZXJzaW9ucyB1bnRpbCAxLjAuMCB3aWxsIGJlIDAuMTAuOVggYW5kCgkgIHRoZXNlIHdpbGwgYmUgcmVsZWFzZSBjYW5kaWRhdGVzLiBHU1RfVkVSU0lPTl8qIHdpbGwKCSAgbm9uZXRoZWxlc3Mgc3RheSBhdCAxLjAuMC4wLgoKMjAxMi0wNC0wNCAxMjoyNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9NYWtlZmlsZS5hbQoJICBnc3QvZ3N0LmMKCSAgZ3N0L2dzdC5oCgkgIGdzdC9nc3RldmVudC5jCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RtZXNzYWdlLmMKCSAgZ3N0L2dzdG1lc3NhZ2UuaAoJICBnc3QvZ3N0cXVhcmsuYwoJICBnc3QvZ3N0cXVhcmsuaAoJICBnc3QvZ3N0cXVlcnkuYwoJICBnc3QvZ3N0cXVlcnkuaAoJICBnc3QvZ3N0dG9jLmMKCSAgZ3N0L2dzdHRvYy5oCgkgIGdzdC9nc3R0b2NzZXR0ZXIuYwoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbQoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jLmMKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jCgoyMDEyLTA0LTAzIDE2OjUxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgX3NldF9zaXplKCkKCjIwMTItMDQtMDMgMTY6NDQ6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbWFrZSBnZXRfc2l6ZXMgYW5kIF9yZXNpemUgd2l0aCByYW5nZXMKCSAgTWFrZSB0aGUgX2dldF9zaXplcyBhbmQgX3Jlc2l6ZSBtZXRob2RzIHdvcmsgb24gYSByYW5nZSBvZiBtZW1vcnkgdG8gbWFrZSB0aGVtCgkgIG1vcmUgcG93ZXJmdWxsLgoKMjAxMi0wNC0wMyAxODoyNTo0MCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgY29uc2lzdGVuY3ljaGVja2VyOiBhbGxvdyBzb21lIG1vcmUgZXZlbnRzIGJlZm9yZSBhIHNlZ21lbnQgZXZlbnQKCjIwMTItMDQtMDMgMTU6NDY6MjkgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvY3NldHRlcjogdXNlIG5ldyBnbGliIG11dGV4IGFwaQoKMjAxMi0wNC0wMiAyMzoxNzoyMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBnc3QtbGF1bmNoLmM6IEluIGZ1bmN0aW9uIOKAmHByaW50X3RvY19lbnRyeeKAmToKCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdGhlIHNpemUgb2YgYXJyYXkg4oCYc3Bj4oCZIGNhbuKAmXQgYmUgZXZhbHVhdGVkIFstV2Vycm9yPXZsYV0KCSAgZ3N0LWxhdW5jaC5jOjQ0NjozOiBlcnJvcjogdmFyaWFibGUtc2l6ZWQgb2JqZWN0IG1heSBub3QgYmUgaW5pdGlhbGl6ZWQKCjIwMTItMDQtMDIgMjM6Mjk6MjQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIHRlc3RzOiBhZGQgbmV3IHVuaXQgdGVzdCBiaW5hcmllcyB0byAuZ2l0aWdub3JlCgoyMDEyLTA0LTAyIDIzOjI4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiByZWYgbmV3IGVudHJ5IGVudW0gdHlwZXMKCSAgRml4ZXMgJ21ha2UgY2hlY2snLCBhZ2Fpbi4KCjIwMTItMDQtMDIgMjM6MjQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCSAgRml4ZXMgJ21ha2UgY2hlY2snLgoKMjAxMi0wNC0wMiAyMzoyMzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkgIHRvYzogZG9uJ3QgZXhwb3J0IHByaXZhdGUgZnVuY3Rpb25zCgoyMDEyLTA0LTAyIDIzOjE3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIGdzdC1sYXVuY2guYzogSW4gZnVuY3Rpb24g4oCYcHJpbnRfdG9jX2VudHJ54oCZOgoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB0aGUgc2l6ZSBvZiBhcnJheSDigJhzcGPigJkgY2Fu4oCZdCBiZSBldmFsdWF0ZWQgWy1XZXJyb3I9dmxhXQoJICBnc3QtbGF1bmNoLmM6NDQ2OjM6IGVycm9yOiB2YXJpYWJsZS1zaXplZCBvYmplY3QgbWF5IG5vdCBiZSBpbml0aWFsaXplZAoKMjAxMi0wNC0wMiAyMzoxNjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5ncwoKMjAxMi0wNC0wMiAyMzowMToxNyArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInCgoyMDEyLTA0LTAyIDIyOjA5OjA3ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dG9jc2V0dGVyLmM6CgkgIHRvYzogcG9ydCB0byAwLjExCgoyMDEyLTAzLTIyIDA4OjM2OjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLWMsIC0tdG9jIHRvIHByaW50IHRoZSB0b2MKCSAgUHJpbnQgdGhlIG5lc3RlZCBjaGFwdGVyIGFuZCBlZGl0aW9uIHN0cnVjdHVyZSBvZiB0aGUgY2hhcHRlcnMgbWVzc2FnZS4KCjIwMTItMDMtMjggMjM6MTU6NDEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiBhZGQgb3ZlcnZpZXcgb2YgR3N0VG9jIHVzYWdlCgoyMDEyLTAzLTE0IDIxOjE0OjIzICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIEdzdFRvYyBhbmQgR3N0VG9jU2V0dGVyIHNlY3Rpb25zIHdpdGggcmVsYXRlZCBmdW5jdGlvbnMKCjIwMTItMDMtMTQgMjE6MTM6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2NTZXR0ZXIKCjIwMTItMDMtMTQgMjE6MTI6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2MKCjIwMTItMDMtMTQgMjA6NDU6MzUgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIEFkZCBuZXcgR3N0VG9jU2V0dGVyIGludGVyZmFjZQoKMjAxMi0wMy0xNCAyMDo0Mjo1NiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIG5ldyBUT0MgcXVlcnkKCjIwMTItMDMtMTQgMjA6NDE6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgbmV3IFRPQyBtZXNzYWdlCgoyMDEyLTAzLTE0IDIwOjQwOjMyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBuZXcgVE9DIGFuZCBUT0Mgc2VsZWN0IGV2ZW50cwoKMjAxMi0wMy0xNCAyMDowMTo1MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgQWRkIGdlbmVyaWMgdGFibGUgb2YgY29udGVudHMgKFRPQykgc3VwcG9ydAoKMjAxMi0wNC0wMiAyMToxNTowOSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIE1lcmdlIGJyYW5jaCAnMC4xMCcKCSAgQ29uZmxpY3RzOgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0CgkgIGdzdC9NYWtlZmlsZS5hbQoJICBnc3QvZ3N0LmMKCSAgZ3N0L2dzdC5oCgkgIGdzdC9nc3RldmVudC5jCgkgIGdzdC9nc3RldmVudC5oCgkgIGdzdC9nc3RtZXNzYWdlLmgKCSAgZ3N0L2dzdHF1YXJrLmMKCSAgZ3N0L2dzdHF1YXJrLmgKCSAgZ3N0L2dzdHF1ZXJ5LmMKCSAgZ3N0L2dzdHF1ZXJ5LmgKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW0KCjIwMTItMDQtMDIgMTU6MzA6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luLzAuMTAnCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMi0wNC0wMiAxNToxMzoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsd2F5cyBhdHRlbXB0IHRvIHB1c2ggaWYgbm90LWxpbmtlZAoJICBUaGlzIGF2b2lkcyBlbmRpbmcgdXAgd2l0aCBwbGVudHkgb2YgcGVuZGluZyBkYXRhIChzaW5jZSB3ZSdsbCBvbmx5CgkgIHRyeSB0byBwYXJzZS9wdXNoIG9uZSBmcmFtZSBmcm9tIHRoZSBpbmNvbWluZyBidWZmZXIpLgoJICBGaXhlcyBpbmNyZWFzaW5nIG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIHBhcnNlcnMgYXJlbid0IGxpbmtlZAoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTItMDQtMDIgMTU6MTM6MjQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhbHdheXMgYXR0ZW1wdCB0byBwdXNoIGlmIG5vdC1saW5rZWQKCSAgVGhpcyBhdm9pZHMgZW5kaW5nIHVwIHdpdGggcGxlbnR5IG9mIHBlbmRpbmcgZGF0YSAoc2luY2Ugd2UnbGwgb25seQoJICB0cnkgdG8gcGFyc2UvcHVzaCBvbmUgZnJhbWUgZnJvbSB0aGUgaW5jb21pbmcgYnVmZmVyKS4KCSAgRml4ZXMgaW5jcmVhc2luZyBtZW1vcnkgY29uc3VtcHRpb24gd2hlbiBwYXJzZXJzIGFyZW4ndCBsaW5rZWQKCjIwMTItMDQtMDEgMDM6MzA6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBUaW1lb3V0IGlzIG5vdCB1c2VkIG9uIFczMgoJICBGaXhlcyAjNjczMjY3CgoyMDEyLTA0LTAyIDExOjA5OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICB0cmFuczogYWRkIHRyYW5zZm9ybV9pcF9vbl9wYXNzdGhyb3VnaAoJICBBZGQgYW4gb3B0aW9uIHRvIGNvbnRyb2wgaWYgdHJhbnNmb3JtX2lwIGlzIGNhbGxlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIG9yIG5vdC4KCSAgZm9yIGVsZW1lbnRzIHRoYXQgZG9uJ3Qgd2FudCB0byBsb29rIGF0IHRoZSBkYXRhIGluIHBhc3N0aHJvdWdoIG1vZGUsIHRoaXMgY2FuCgkgIGF2b2lkIHNvbWUgZXh0cmEgcHJvY2Vzc2luZywgbW9zdGx5IGluIHN1YmNsYXNzZXMuCgoyMDEyLTAzLTIyIDA4OjM2OjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLWMsIC0tdG9jIHRvIHByaW50IHRoZSB0b2MKCSAgUHJpbnQgdGhlIG5lc3RlZCBjaGFwdGVyIGFuZCBlZGl0aW9uIHN0cnVjdHVyZSBvZiB0aGUgY2hhcHRlcnMgbWVzc2FnZS4KCjIwMTItMDMtMjggMjM6MTU6NDEgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZG9jcy9kZXNpZ24vcGFydC10b2MudHh0OgoJICBkb2NzOiBhZGQgb3ZlcnZpZXcgb2YgR3N0VG9jIHVzYWdlCgoyMDEyLTAzLTE0IDIxOjE0OjIzICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIEdzdFRvYyBhbmQgR3N0VG9jU2V0dGVyIHNlY3Rpb25zIHdpdGggcmVsYXRlZCBmdW5jdGlvbnMKCjIwMTItMDMtMTQgMjE6MTM6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvY3NldHRlci5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2NTZXR0ZXIKCjIwMTItMDMtMTQgMjE6MTI6MjIgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRvYy5jOgoJICBnc3RjaGVja3M6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBHc3RUb2MKCjIwMTItMDMtMTQgMjA6NDU6MzUgKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHRvY3NldHRlci5jOgoJKiBnc3QvZ3N0dG9jc2V0dGVyLmg6CgkgIEFkZCBuZXcgR3N0VG9jU2V0dGVyIGludGVyZmFjZQoKMjAxMi0wMy0xNCAyMDo0Mjo1NiArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQWRkIG5ldyBUT0MgcXVlcnkKCjIwMTItMDMtMTQgMjA6NDE6NDggKzA0MDAgIEFsZXhhbmRlciBTYXByeWtpbiA8eGVsZml1bUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgbmV3IFRPQyBtZXNzYWdlCgoyMDEyLTAzLTE0IDIwOjQwOjMyICswNDAwICBBbGV4YW5kZXIgU2FwcnlraW4gPHhlbGZpdW1AZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBuZXcgVE9DIGFuZCBUT0Mgc2VsZWN0IGV2ZW50cwoKMjAxMi0wMy0xNCAyMDowMTo1MSArMDQwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0dG9jLmM6CgkqIGdzdC9nc3R0b2MuaDoKCSAgQWRkIGdlbmVyaWMgdGFibGUgb2YgY29udGVudHMgKFRPQykgc3VwcG9ydAoKMjAxMi0wNC0wMSAxMjowMTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZXVzZSBtb3JlIGNvZGUKCjIwMTItMDQtMDEgMTE6NDI6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtYWtlIGZ1bmN0aW9uIHRvIGZpbmQgbWVtb3J5IGluIGEgYnVmZmVyCgkgIE1ha2UgYSBmdW5jdGlvbiB0byBmaW5kIHRoZSBtZW1vcnkgYmxvY2tzIGZvciBhIHJlZ2lvbiBpbiBhIGJ1ZmZlci4KCjIwMTItMDMtMzEgMjE6MjY6MjIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggbW9yZSBtaXNzaW5nIEdTVF9PQkpFQ1QgLT4gR19PQkpFQ1QgdXNlCgoyMDEyLTAzLTMxIDE4OjM0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHVzZSBidWZmZXJfd3JhcAoKMjAxMi0wMy0zMSAxNzoxMDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgcGVla19tZW1vcnkgbWV0aG9kCgkgIEFkZCBhIHBlZXJrX21lbW9yeSBtZXRob2QgdGhhdCBzaW1wbHkgZmV0Y2hlcyB0aGUgbWVtb3J5IGF0IGFuIG9mZnNldCB3aXRob3V0CgkgIHJlZmNvdW50aW5nIG9yIG1lcmdpbmcuCgoyMDEyLTAzLTMxIDEyOjAwOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgZ3JhbW1hci55OiBmaXggY2hpbGRwcm94eSBjb2RlCgkgIEl0IHRha2VzIEdPYmplY3QgYW5kIG5vdCBHc3RPYmplY3Qgbm93CgoyMDEyLTAzLTMwIDIyOjQ2OjAyICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBpbmNsdWRlIHRoZSBjaGlsZCBuYW1lIGluIHRoZSBzaWduYWwKCjIwMTItMDMtMzAgMjI6NDQ6MzEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IHVwZGF0ZSBmb3IgY2hpbGRwcm94eSBhcGkgY2hhbmdlcwoKMjAxMi0wMy0zMCAyMjozNjozNSArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoaWxkcHJveHk6IGZpeCBzaWduYWwgcGFyYW1ldGVyIHR5cGVzCgoyMDEyLTAzLTMwIDIyOjE3OjA5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiB1c2UgR09iamVjdCBpbnN0ZWFkIG9mIEdzdE9iamVjdAoJICBUaGlzIG1ha2VzIGl0IHByb3NzaWJsZSB0byBiZSB1c2VkIG1vcmUgd2lkZWx5LiBGaXggaW1wbGVtZW50YXRpb25zIGZvciB0aGUgQVBJCgkgIGNoYW5nZS4KCjIwMTItMDMtMzAgMjI6MDE6NTUgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICBjaGlsZHByb3h5OiBtYWtlIGdldF9jaGlsZF9ieV9uYW1lIHZpcnR1YWwKCSAgQWxsb3dzIGltcGxlbWVudGF0aW9ucyB0byB1c2UgY3VzdG9tIG5hbWUtPm9iamVjdCBtYXBwaW5ncy4KCjIwMTItMDMtMzAgMjI6MDE6MjYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJICBjaGlsZHByb3h5OiBmaXggaW5kZW50YXRpb24KCjIwMTItMDMtMzAgMTg6MDQ6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGltcHJvdmUgdGhlIGJ1ZmZlciBtZW1vcnkgbWV0aG9kcwoJICBnc3RfYnVmZmVyX3Rha2VfbWVtb3J5IC0+IGdzdF9idWZmZXJfaW5zZXJ0X21lbW9yeSBiZWNhdXNlIGluc2VydCBpcyB3aGF0IHRoZQoJICBtZXRob2QgZG9lcy4KCSAgTWFrZSBhbGwgbWV0aG9kcyBkZWFsIHdpdGggcmFuZ2VzIHNvIHRoYXQgd2UgY2FuIHJlcGxhY2UsIG1lcmdlLCByZW1vdmUgYW5kIG1hcAoJICBhIGNlcnRhaW4gc3Vic2V0IG9mIHRoZSBtZW1vcnkgaW4gYSBidWZmZXIuIFdpdGggdGhlIG5ldyBtZXRob2RzIHdlIGNhbiBtYWtlCgkgIHNvbWUgY29kZSBuaWNlciBhbmQgcmV1c2UgbW9yZSBjb2RlLiBCZWluZyBhYmxlIHRvIGRlYWwgd2l0aCBhIHN1YnNldCBvZiB0aGUKCSAgYnVmZmVyIG1lbW9yeSBhbGxvd3MgdXMgdG8gb3B0aW1pemUgbW9yZSBjYXNlcyBsYXRlciAobW9zdCBub3RhYmx5IFJUUCBoZWFkZXJzCgkgIGFuZCBwYXlsb2FkIHRoYXQgY291bGQgYmUgaW4gZGlmZmVyZW50IG1lbW9yeSBvYmplY3RzKS4KCSAgTWFrZSBzb21lIG1vcmUgY29udmVuaWVudCBtYWNyb3MgdGhhdCBjYWxsIHRoZSBtb3JlIGdlbmVyaWMgcmFuZ2UgbWV0aG9kcy4KCjIwMTItMDMtMzAgMTY6NTM6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBwbHVnIGNhcHMgbGVha3MKCjIwMTItMDMtMzAgMTY6NTM6MDUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICB0eXBlZmluZGhlbHBlcjogYWxzbyB1bm1hcCBjb2xsZWN0ZWQgbWFwcGVkIGJ1ZmZlcnMKCjIwMTItMDMtMzAgMTY6NTM6MDAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHBsdWcgY2FwcyBsZWFrCgoyMDEyLTAzLTMwIDExOjU4OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogUmVuYW1lIDo6ZXZlbnQoKSB0byA6OnNpbmtfZXZlbnQoKSBmb3IgY29uc2lzdGVuY3kKCjIwMTItMDMtMzAgMTE6NDk6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzaW5rOiBsb3dlciBHU1RfQkFTRV9TUkNfRkxBR19MQVNUCgkgIEl0IHdvdWxkbid0IGxlYXZlIHRoYXQgbXVjaCByb29tIGZvciBzdWJjbGFzcyB1c2VycwoKMjAxMi0wMy0zMCAwODo1NTozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgZGVmcyBmaWxlCgoyMDEyLTAzLTI5IDE4OjAzOjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBBY3R1YWxseSBjb21taXQgdGhlIC5jIGZpbGUgY2hhbmdlcyB0b28KCjIwMTItMDMtMjkgMTc6NTk6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCB1bmNoZWNrZWQvaW5saW5lIHZhcmlhbnQgb2YgZ3N0X2J5dGVfd3JpdGVyX3B1dF9idWZmZXIoKQoKMjAxMi0wMy0yOSAxNzo1Mzo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZ3N0cXVlcnk6IEZpeCBhbm5vdGF0aW9uCgoyMDEyLTAzLTI5IDE3OjQ0OjAyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IEZsdXNoIHRoZSBpbnRlcm5hbCBxdWV1ZSB3aGVuIHdlIHNlZSBHU1RfRkxPV19GTFVTSElORwoJICBFbnN1cmVzIHRoYXQgd2UgZG9uJ3QgZW5kIHVwIHdpdGggc3RhbGUgY29udGVudHMgKGxpa2UgR3N0UXVlcnkpIGluCgkgIHRoZSBpbnRlcm5hbCBHUXVldWUgYWZ0ZXIgYW55IGJsb2NraW5nIHVwc3RyZWFtIHRocmVhZCByZXR1cm5zLgoKMjAxMi0wMy0yOSAxNzo0MzoxNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBEb24ndCB1bnJlZiBHc3RRdWVyeSB0cmF2ZWxsaW5nIHRocm91Z2ggdGhlIHF1ZXVlCgkgIFVubGlrZSBldmVudHMgYW5kIGJ1ZmZlcnMsIHRoZSByZWZlcmVuY2UgaXMgbm90IGdpdmVuIHRvIHVzCgoyMDEyLTAzLTI5IDE3OjA4OjQ5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogcGFyc2luZyBhbGxvY2F0aW9uIHF1ZXJ5IG5lZWQgbm90IHByb3ZpZGUgcmVmZmVkIGNhcHMKCSAgLi4uIGluIGxpbmUgd2l0aCBvdGhlciBxdWVyeSBwYXJzaW5nIGZ1bmN0aW9uLgoKMjAxMi0wMy0yOSAxNTo0NTowMCArMDIwMCAgRmFicml6aW8gKE1pc3RvKSBNaWxvIDxtaXN0b2JhYW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc3BlbGxpbmcgZml4ZXMKCjIwMTItMDMtMjkgMTU6Mjg6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ3N0ZWxlbWVudDogbG93ZXIgR1NUX0VMRU1FTlRfRkxBR19MQVNUCgkgIEl0IHdvdWxkbid0IGxlYXZlIHRoYXQgbXVjaCByb29tIGZvciBzdWJjbGFzcyB1c2VycwoKMjAxMi0wMy0yOSAxNToxODozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGUKCSAgZ2NjIDQuNSBjb21wbGFpbnMgb3RoZXJ3aXNlIDooCgoyMDEyLTAzLTI5IDE0OjU0OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi8wLjEwJwoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jCgoyMDEyLTAzLTI5IDE0OjQ1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBXYWtlIHVwIGFsbCBub3QtbGlua2VkIHN0cmVhbXMgd2hlbiBhIHN0cmVhbSBzd2l0Y2hlcyBmcm9tIGxpbmtlZCB0byBub3QtbGlua2VkCgkgIFdlIHJlc2V0IGFsbCB0aGUgd2FpdGluZyBzdHJlYW1zLCBsZXQgdGhlbSBwdXNoIGFub3RoZXIgYnVmZmVyIHRvCgkgIHNlZSBpZiB0aGV5J3JlIG5vdyBhY3RpdmUgYWdhaW4uIFRoaXMgYWxsb3dzIGZhc3RlciBzd2l0Y2hpbmcKCSAgYmV0d2VlbiBzdHJlYW1zIGFuZCBwcmV2ZW50cyBkZWFkbG9ja3MgaWYgZG93bnN0cmVhbSBkb2VzIGFueQoJICB3YWl0aW5nIHRvby4KCSAgQWxzbyBpbXByb3ZlIGxvY2tpbmcgYSBiaXQsIHNyY3Jlc3VsdCBtdXN0IGJlIHByb3RlY3RlZCBieSB0aGUKCSAgbXVsdGlxdWV1ZSBsb2NrIHRvbyBiZWNhdXNlIGl0J3MgdXNlZC9zZXQgZnJvbSByYW5kb20gdGhyZWFkcy4KCjIwMTItMDMtMjkgMTQ6MzI6MjQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IFJlY29tcHV0ZSBoaWdoLXRpbWUgdG9vIHdoZW4gZmx1c2hpbmcsIG5vdCBvbmx5IGhpZ2gtaWQKCjIwMTItMDMtMjkgMTM6Mzk6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE9ubHkgd2FpdCB1bnRpbCB0aGUgYWN0aXZlIHBhZCdzIHJ1bm5pbmcgdGltZSBpcyByZWFjaGVkIGlmIHRoZSBhY3RpdmUgcGFkIGFscmVhZHkgc2F3IGRhdGEKCSAgT3RoZXJ3aXNlIHdlIG1pZ2h0IGJsb2NrIGZvcmV2ZXIgYmVjYXVzZSB1cHN0cmVhbSAoZS5nLiBtdWx0aXF1ZXVlKSBpcyB3YWl0aW5nCgkgIGZvciB0aGUgcHJldmlvdXNseSBhY3RpdmUgc3RyZWFtIHRvIHJldHVybiBmb3JldmVyICh3aGljaCBpcyB3YWl0aW5nIGhlcmUKCSAgaW4gaW5wdXRzZWxlY3RvcikgYmVmb3JlIHB1c2hpbmcgc29tZXRoaW5nIG9uIHRoZSBuZXdseSBzZWxlY3RlZCBzdHJlYW0uCgoyMDEyLTAzLTI5IDEzOjM0OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZG9jczogdXBkYXRlIG1vcmUgZG9jdW1lbnRhdGlvbgoKMjAxMi0wMy0yOCAxODoxMjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWV2ZW50cy54bWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgcmV2aWV3IHNvbWUgZG9jcwoKMjAxMi0wMy0yOCAxNjo0NDozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBzaW1wbGlmeSBhbmQgcmVmYWN0b3IgX3NwYW4gYW5kIF9tZXJnZQoJICBVbmlmeSB0aGUgX3NwYW4gYW5kIF9tZXJnZSBjb2RlIHBhdGhzIGFuZCBzaW1wbGlmeSBub3cgdGhhdCB3ZSBvbmx5IHVzZSB0aGlzCgkgIGludGVybmFsbHkuCgoyMDEyLTAzLTI4IDE1OjE2OjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHdlIGFsd2F5cyBjYWxsIF9zcGFuIHdpdGggdGhlIGJ1ZmZlciBzaXplCgoyMDEyLTAzLTI4IDE1OjEyOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IG1vdmUgc29tZSBjb2RlIGFyb3VuZAoKMjAxMi0wMy0yOCAxNTowODo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiB3ZSBjYWxsIF9zcGFuIGFsd2F5cyB3aXRoIDAgb2Zmc2V0CgoyMDEyLTAzLTI4IDEzOjA4OjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbW92ZSBhbHdheXMgRkFMU0UgZnVuY3Rpb24gYXJndW1lbnQKCjIwMTItMDMtMjggMTY6Mzk6NTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGRlbGF5IGJ1ZmZlciB1bnJlZiB1bnRpbCBidWZmZXIgbm8gbG9uZ2VyIG5lZWRlZAoKMjAxMi0wMy0yOCAxMjo0NDo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IHVuaWZ5IGJ1ZmZlciBtZXJnZSBtZXRob2RzCgkgIEFkZCBnc3RfYnVmZmVyX2FwcGVuZCgpIHdoaWNoIGFwcGVuZHMgdGhlIG1lbW9yeSBibG9ja3MgZnJvbSBvbmUgYnVmZmVyIHRvCgkgIGFub3RoZXIuIFJlbW92ZSB0aGUgb2xkIGluZWZmaWNpZW50IF9tZXJnZSgpIGFuZCBfam9pbigpIG1ldGhvZHMgd2hpY2ggZm9yY2VkIGEKCSAgcHJlbWF0dXJlIG1lbWNweSBpbiBtb3N0IGNhc2VzLgoJICBSZW1vdmUgdGhlIF9pc19zcGFuKCkgYW5kIF9zcGFuKCkgbWV0aG9kcyB0aGV5IGFyZSBub3QgbmVlZGVkIGFueW1vcmUgbm93IHRoYXQKCSAgd2UgY2FuIF9hcHBlbmQoKS4gTWVyZ2luZyBhbmQgc3Bhbm5pbmcgd2lsbCBiZSBkZWxheWVkIHVudGlsIG1hcHBpbmcgb3IgbWF5YmUKCSAgbm90IGF0IGFsbCB3aGVuIHRoZSBlbGVtZW50IGNhbiBkZWFsIHdpdGggdGhlIGRpZmZlcmVudCBtZW1vcnkgYmxvY2tzLgoKMjAxMi0wMy0yNyAxNToyNDo0OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCB0eXBvIGluIGRvY3N0cmluZwoKMjAxMi0wMy0yNyAxNToyNDo0OSAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCB0eXBvIGluIGRvY3N0cmluZwoKMjAxMi0wMy0yNyAxNToxNjo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiByZS1lbmFibGUgX3NwYW4gb2Zmc2V0IGNhbGN1bGF0aW9ucwoJICB3aGVuIHdlIF9zcGFuIHR3byBjb21wbGV0ZSBidWZmZXJzLCB3ZSBjYW4gY29weSBvZmZzZXRzIGFuZCB0aW1lc3RhbXBzLgoKMjAxMi0wMy0yNyAxNTowMDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogYWRkIHJlZmNvdW50IHRvIHRyYWNlIGRlYnVnCgoyMDEyLTAzLTI3IDE0OjU5OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBtb3JlIF9pc193cml0YWJsZSBjaGVja3MKCSAgQWRkIHNvbWUgY2hlY2tzIHRvIGFzc2VydCBvbiB3cml0YWJpbGl0eSBmb3IgZnVuY3Rpb25zIHRoYXQgbW9kaWZ5IG1ldGFkYXRhLgoKMjAxMi0wMy0yNyAxMjo0MDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IHJlbW92ZSBjb25zdCBmcm9tIGdldC9zZXRfcGFyYW0KCSAgUmVtb3ZlIHRoZSBjb25zdCBmcm9tIHRoZSBHc3RDYXBzIGluIGdldC9zZXRfcGFyYW0uIHNldF9wYXJhbSBtb2RpZmllcwoJICB0aGUgcmVmY291bnQgb2YgdGhlIGNhcHMuCgkgIERvbid0IGluY3JlbWVudCB0aGUgcmVmY291bnQgb2YgdGhlIGNhcHMgcmVzdWx0IG9mIGdldF9wYXJhbSBsaWtlIHdlCgkgIGRvIHdpdGggb3RoZXIgb2JqZWN0cy4KCSAgVXBkYXRlIHNvbWUgYW5ub3RpYXRpb25zLgoKMjAxMi0wMy0yNyAxMjozOTo1MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGZpeCBhbm5vdGF0aW9uIGZvciBfcmVsZWFzZQoJICBfcmVsZWFzZSB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIGJ1ZmZlcgoKMjAxMi0wMy0yNyAxMjozMToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiBDaGFuZ2UgdGhlIHRpbWVvdXQgYXJndW1lbnQgdHlwZSBvZiBnc3RfYnVzX3BvbGwoKSBmcm9tIEdzdENsb2NrVGltZURpZmYgdG8gR3N0Q2xvY2tUaW1lCgkgIFRoaXMgaXMgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyIEdzdEJ1cyBtZXRob2RzIHRoYXQgaGF2ZSBhIHRpbWVvdXQuCgoyMDEyLTAzLTI2IDE5OjEzOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogcmVtb3ZlIG9sZCBjb2RlCgkgIFJlbW92ZSBhdHRlbXB0IHRvIGRlbGF5IF9tYWtlX3dyaXRhYmxlCgoyMDEyLTAzLTI2IDE4OjA3OjM1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGVuc3VyZSB3cml0YWJsZSBjYXBzIHByaW9yIHRvIG1vZGlmaWNhdGlvbgoKMjAxMi0wMy0yNiAxNzozODo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGNoZWNrIG1pbi9tYXhfYnVmZmVycwoKMjAxMi0wMy0yNiAxNzozNToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTpmaXggY29weS1hbmQtcGFzdGUgcHJvYmxlbQoKMjAxMi0wMy0yNiAxMTo1NDo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIFJlcGxhY2UgbWFzdGVyIHdpdGggMC4xMQoKMjAxMi0wMy0yMyAxODo1MTo1MiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGFkZCBhbmQgaW1wcm92ZSBkZWJ1ZyBtZXNzYWdlcwoJICAuLi4gc28gdGhleSBlbmQgdXAgaW4gYSBtb3JlIGV4cGVjdGVkIGRlYnVnIGNhdGVnb3J5IHJhdGhlciB0aGFuIG9ibGl2aW9uLgoKMjAxMi0wMy0yMiAxNTo1NDo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBkZXZlbAoKMjAxMi0wMy0yMiAxNTo0OTozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QtYnVpbGQuc3RhbXA6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LnN0YW1wOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjExLjMKCjIwMTItMDMtMjIgMTU6MjI6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBhdXRvbWF0aWMgYW5kIHVuZG9jdW1lbnRlZCBzZXR0aW5nIG9mIGFsd2F5c19pbl9wbGFjZQoJICAuLi4gd2hpY2ggY29udHJvbHMgaG93IHRvIChmb3JjaWJseSkgZGVhbCB3aXRoIChub24tKXdyaXRhYmxlIGRhdGEgYW5kCgkgIGlzIG5vdCBuZWNlc3NhcmlseSByZWxhdGVkIHRvIGlkZW50aWNhbCBjYXBzLgoJICBJbiBwYXJ0aWN1bGFyLCBpdCBpcyBhbHNvIG5vdCBzbyBoZWxwZnVsIGFueW1vcmUgd2l0aCBhIG1vcmUgYWR2YW5jZWQKCSAgR3N0VmlkZW9GaWx0ZXIgc3ViY2xhc3Mgd2hpY2ggYWx3YXlzIGhhcyBhIHRyYW5zZm9ybV9pcCBtZXRob2QgY3VycmVudGx5LAoJICBldmVuIHRob3VnaCBpdHMgc3ViY2xhc3MgbWF5IG5vdCBoYXZlIGEgY29ycmVzcG9uZGluZyBfaXAgbWV0aG9kLgoKMjAxMi0wMy0yMiAxMDo0NTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCjIwMTItMDMtMjIgMDg6MzU6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IGRvbid0IHNoYWRvdyBnbG9iYWwgdmFyaWFibGUKCjIwMTItMDMtMjEgMTI6MTA6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSAgZGlzdCBuZXQgZGlyZWN0b3J5IG9ubHkgb25jZQoKMjAxMi0wMy0yMSAwOTowMDo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IE9ubHkgYWxsb3cgZml4ZWQgY2FwcyBpbiB0aGUgYWNjZXB0LWNhcHMgcXVlcnkKCjIwMTItMDMtMjAgMTc6MDg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvIHF1ZXJpZXMgbW9yZSBkaXJlY3RseQoJICBKdXN0IGNhbGwgb3VyIGludGVybmFsIHF1ZXJ5IGZ1bmN0aW9uIGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCB0aGUgcGFkIGFuZCB0aGUKCSAgcXVlcnkgaGFuZGxlciBldGMuCgoyMDEyLTAzLTIwIDE3OjA4OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBzb21lIHBlcmZvcm1hbmNlIGRlYnVnCgoyMDEyLTAzLTIwIDEzOjE0OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGFkOiBpbXByb3ZlIGRvY3Mgb2YgZ2V0L3B1bGxfcmFuZ2UKCSAgSW1wcm92ZSB0aGUgZG9jcyBvZiB0aGUgZ2V0L3B1bGxfcmFuZ2UgZnVuY3Rpb25zLCBkZWZpbmUgdGhlIGxpZmV0aW1lIG9mIHRoZQoJICBidWZmZXIgaW4gY2FzZSBvZiBlcnJvcnMgYW5kIHNob3J0IHJlYWRzLgoJICBNYWtlIHN1cmUgdGhlIGNvZGUgZG9lcyB3aGF0IHRoZSBkb2NzIHNheS4KCjIwMTItMDMtMjAgMTA6MjA6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBnc3RfYnVmZmVyX25ld193cmFwcGVkX2Z1bGwoKQoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIHdyYXAgYWxsIGtpbmRzIG9mIG1lbW9yeSBieSBleHBvc2luZyBhbGwgcHJvcGVydGllcyB0bwoJICBnc3RfYnVmZmVyX25ld193cmFwcGVkX2Z1bGwoKS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBhbHNvIGNyZWF0ZSB3cml0YWJsZQoJICBtZW1vcnkgd2l0aG91dCBhIGZyZWUgZnVuY3Rpb24gb3IgbWVtb3J5IHdpdGggZXh0cmEgcGFkZGluZy4KCjIwMTItMDMtMTkgMTE6NDU6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaGFuZGxlIHNlcmlhbGl6ZWQgcXVlcmllcwoKMjAxMi0wMy0xNiAyMjo1MToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCjIwMTItMDMtMTYgMjI6MjU6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc21hbGwgY2xlYW51cHMKCjIwMTItMDMtMTYgMjE6Mzc6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHBhZDogY2hhbmdlIHRoZSBzZW1hbnRpY3Mgb2YgZ2V0L3B1bGxfcmFuZ2UgYSBsaXR0bGUKCSAgTWFrZSBpdCBzbyB0aGF0IG9uZSBjYW4gc3BlY2lmeSBhIGJ1ZmZlciBmb3IgZ2V0L3B1bGxfcmFuZ2Ugd2hlcmUgdGhlIGRvd25zdHJlYW0KCSAgZWxlbWVudCBzaG91bGQgd3JpdGUgaW50by4gV2hlbiBwYXNzaW5nIE5VTEwsIHVwc3RyZWFtIHNob3VsZCBhbGxvY2F0ZSBhIGJ1ZmZlciwKCSAgbGlrZSBpbiAwLjEwLgoJICBXZSBhbHNvIG5lZWQgdG8gY2hhbmdlIHRoZSBwcm9iZXMgYSBsaXR0bGUgYmVjYXVzZSBiZWZvcmUgdGhlIHB1bGwgcHJvYmUsIHRoZXJlCgkgIGNvdWxkIGFscmVhZHkgYmUgYSBidWZmZXIgcGFzc2VkLiBUaGlzIHRoZW4gYWxsb3dzIHVzIHRvIHVzZSB0aGUgc2FtZSBQUk9CRQoJICBtYWNybyBmb3IgYmVmb3JlIGFuZCBhZnRlciBwdWxsaW5nLgoJICBXaGlsZSB3ZSdyZSBhdCB0aGUgcHJvYmVzLCBtYWtlIHRoZSBxdWVyeSBwcm9iZSBtb3JlIHBvd2VyZnVsIGJ5IGhhbmRsaW5nIHRoZQoJICBHU1RfUEFEX1BST0JFX0RST1AgcmV0dXJuIHZhbHVlLiBSZXR1cm5pbmcgX0RST1AgZnJvbSBhIHF1ZXJ5IHByb2JlIHdpbGwgbm93CgkgIHJldHVybiBUUlVFIHVwc3RyZWFtIGFuZCB3aWxsIG5vdCBmb3J3YXJkIHRoZSBwcm9iZSB0byB0aGUgcGVlciBvciBoYW5kbGVyLgoJICBBbHNvIGhhbmRsZSBfRFJPUCBmb3IgZ2V0L3B1bGxfcmFuZ2UgcHJvcGVybHkgYnkgbm90IGRpc3BhdGNoaW5nIHRvIHRoZQoJICBwZWVyL2hhbmRsZXIgb3IgYnkgZ2VuZXJhdGluZyBFT1Mgd2hlbiB0aGUgcHJvYmUgcmV0dXJucyBEUk9QIGFuZCBubyBidWZmZXIuCgkgIE1ha2UgZmlsZXNyYyBoYW5kbGUgdGhlIG5vbi1OVUxMIGJ1ZmZlciBwYXNzZWQgaW4gdGhlIGdldF9yYW5nZSBmdW5jdGlvbiBhbmQKCSAgc2tpcCB0aGUgYWxsb2NhdGlvbiBpbiB0aGF0IGNhc2UsIHdyaXRpbmcgZGlyZWN0bHkgaW50byB0aGUgZG93bnN0cmVhbSBwcm92aWRlZAoJICBidWZmZXIuCgkgIFVwZGF0ZSB0ZXN0cyBiZWNhdXNlIG5vdyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0byBub3QgcGFzcyBhIHJhbmRvbSB2YWx1ZSBpbiB0aGUKCSAgYnVmZmVyIHBvaW50ZXIgdG8gZ2V0L3B1bGxfcmFuZ2UKCjIwMTItMDMtMTYgMjE6MzY6MzMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogcHJveHkgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMi0wMy0xNiAxODozOTowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGRvY3MgYSBsaXR0bGUsIGFsbG9jX2J1ZmZlciBpcyBnb25lCgoyMDEyLTAzLTE1IDIyOjA5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IHNwbGl0IGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbgoJICBNYWtlIHNlcGFyYXRlIG1ldGhvZHMgdG8gY29udHJvbCB0aGUgYnVmZmVycG9vbCBhbmQgdGhlIGFsbG9jYXRvciB1c2VkIGJ5IHRoZQoJICBidWZmZXJwb29sLgoJICBNYWtlIGl0IHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgYWxsb2NhdG9yIG9mIGEgcG9vbC4KCjIwMTItMDMtMTUgMjA6MjM6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiByZXdvcmsgdGhlIEFMTE9DQVRJT04gcXVlcnkKCSAgU2VwYXJhdGUgdGhlIGJ1ZmZlcnBvb2wgYW5kIGFsbG9jYXRvciBoaW50cyBpbiB0aGUgYWxsb2NhdGlvbiBxdWVyeSwgc29tZQoJICBvZiB0aGUgdmFsdWVzIGRvbid0IGFsd2F5cyBtYWtlIHNlbnNlIHRvZ2V0aGVyLgoJICBLZWVwIHRoZSBidWZmZXJwb29sIGFuZCBpdHMgY29uZmlndXJhdGlvbiB0b2dldGhlci4KCSAgS2VlcCB0aGUgYWxsb2NhdG9yIGFuZCBpdHMgcGFyYW1ldGVycyB0b2dldGhlci4KCSAgQWxsb3cgZm9yIG11bHRpcGxlIGJ1ZmZlcnBvb2wgY29uZmlndXJhdGlvbnMgaW4gdGhlIHF1ZXJ5LgoKMjAxMi0wMy0xNSAxNjo1MDozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjb21tZW50IGFuZCBkZWJ1ZyBpbXByb3ZlbWVudAoKMjAxMi0wMy0xNSAxNjo0OTozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogaW1wcm92ZSBkZWJ1ZwoJICBhbHNvIGZpeCBhIHBvdGVudGlhbCBtZW1vcnkgbGVhawoKMjAxMi0wMy0xNSAxNDoyODoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDMtMTUgMTQ6MDE6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIEdzdEJ1ZmZlclBvb2xQYXJhbXMgLT4gR3N0QnVmZmVyUG9vbEFjcXVpcmVQYXJhbXMKCSAgQmVjYXVzZSB0aG9zZSBmbGFncyBhcmUgbm90IGZyb20gdGhlIGJ1ZmZlcnBvb2wgYnV0IGZvciB0aGUgYWNxdWlyZSBmdW5jdGlvbi4KCjIwMTItMDMtMTUgMTM6Mjg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZW1vcnk6IGdyb3VwIGFsbG9jYXRpb24gcGFyYW1ldGVycyBpbiBhIHN0cnVjdAoJICBHcm91cCB0aGUgZXh0cmEgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIGluIGEgR3N0QWxsb2NhdGlvblBhcmFtcyBzdHJ1Y3R1cmUgdG8gbWFrZQoJICBpdCBlYXNpZXIgdG8gZGVhbCB3aXRoIHRoZW0gYW5kIHNvIHRoYXQgd2UgY2FuIGV4dGVuZCB0aGVtIGxhdGVyIGlmIG5lZWRlZC4KCSAgTWFrZSBnc3RfYnVmZmVyX25ld19hbGxvY2F0ZSgpIHRha2UgdGhlIEdzdEFsbG9jYXRpb25QYXJhbXMgZm9yIGFkZGVkCgkgIGZ1bmN0aW9uYWxpdHkuCgkgIEFkZCBib3hlZCB0eXBlIGZvciBHc3RBbGxvY2F0aW9uUGFyYW1zLgoKMjAxMi0wMy0xNSAwMDoyNTo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBvbmx5IHVwZGF0ZSBidWZmZXIgc2l6ZSBvbiBzaG9ydCByZWFkCgoyMDEyLTAzLTE1IDAwOjI0OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggY29weSBmdW5jdGlvbgoJICBDb3B5IHRoZSBzdHJ1Y3R1cmUgdG9vLgoKMjAxMi0wMy0xNSAwMDoyMzo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggbWF4c2l6ZSBhZnRlciBhbGlnbgoJICB3aGVuIHdlIGFsaWduIHRoZSBkYXRhIHBvaW50ZXIsIG1ha2Ugc3VyZSB0byB1cGRhdGUgdGhlIG1heHNpemUuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTItMDMtMTQgMjI6NTg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlOiByZW1vdmUgdXNlbGVzcyBQUk9YWV9BTExPQ0FUSU9OIGZsYWcKCjIwMTItMDMtMTQgMjE6MzI6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IEFkZCAwIHBhZGRpbmcKCSAgQ2hhbmdlIGdzdF9hbGxvY2F0b3JfYWxsb2MoKSBzbyB0aGF0IHdlIGNhbiBhbHNvIHNwaWNpZnkgZmxhZ3MgYW5kIHBhZGRpbmcuCgkgIEFkZCAyIG5ldyBmbGFncyB0byBtYXJrIHRoZSBtZW1vcnkgMCBwcmVmaXhlZC9wYWRkZWQuIFRoaXMgYWxsb3dzIHVzIHRvCgkgIHJlbW92ZSBzb21lIHJlc2l6ZXMgaW4gdGhlIGJhc2UgY2xhc3Nlcy4KCSAgV2hlbiBhbGxvY2F0aW5nIG1lbW9yeSwgbWVtc2V0IHByZWZpeCBhbmQgcGFkZGluZyB3aXRoIDAgd2hlbiB0aGUgZmxhZ3MgdGVsbAoJICB1cyB0by4KCSAgT24gcmVzaXplLCBjbGVhciB0aGUgemVybyBwYWRkaW5nIGZsYWdzIGlmIHdlIGNhbid0IGd1YXJhbnRlZSB0aGUgbWVtb3J5IGlzCgkgIHN0aWxsIDAgZmlsbGVkLgoJICBVcGRhdGUgdGVzdHMuCgoyMDEyLTAzLTE0IDE5OjM3OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcXVlcnk6IGFsc28gaW5jbHVkZSBwYWRkaW5nIGluIEFMTE9DQVRJT04gcXVlcnkKCSAgTmVnb3RpYXRpbmcgcGFkZGluZyBpcyBuZWVkZWQgb24gc2Vjb25kIHRob3VnaHQgc28gaW5jbHVkZSBpdCBpbiB0aGUKCSAgQUxMT0NBVElPTiBxdWVyeS4KCSAgTWFrZSB0aGUgYnVmZmVycG9vbCB0YWtlIHBhZGRpbmcgaW50byBhY2NvdW50IHdoZW4gYWxsb2NhdGluZy4KCSAgTWFrZSBiYXNlc3JjIHRha2UgcGFkZGluZyBpbnRvIGFjY291bnQuCgkgIFVzZSBwYWRkaW5nIGFuZCBwcmVmaXggd2hlbiBhbGxvY2F0aW5nIGluIGJhc2V0cmFuc2Zvcm0uCgoyMDEyLTAzLTE0IDE4OjQ1OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHRha2UgcHJlZml4IGludG8gYWNjb3VudCB3aGVuIGFsbG9jYXRpbmcKCSAgVGFrZSBpbnRvIGFjY291bnQgdGhlIHByZWZpeCB0aGF0IHdlIHJlY2VpdmVkIGZyb20gdGhlIGFsbG9jYXRpb24gcXVlcnkgYW5kIHVzZQoJICBpdCB0byBhbGxvY2F0ZSBhbmQgcmVzaXplIGEgbGFyZ2VyIGJ1ZmZlci4KCjIwMTItMDMtMTQgMTc6MTY6MzYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogZnJlZSBvd25lZCBkaXNjYXJkZWQgcG9vbCBjb25maWcKCjIwMTItMDMtMTQgMTY6Mjc6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgcGFkOiBpbXBsZW1lbnQgRFJBSU4gaGFuZGxpbmcKCSAgV2hlbiB3ZSBmb3J3YXJkIHRoZSBEUkFJTiBxdWVyeSBhbmQgdGhlcmUgaXMgbm90aGluZyB0byBmb3J3YXJkIGl0IHRvLCBhc3N1bWUgd2UKCSAgYXJlIGRyYWluZWQuCgkgIFdoZW4gYSBiYXNlc2luayByZWNlaXZlcyBhIGRyYWluIHF1ZXJ5LCByZXBseSB3aXRoIFRSVUUuCgoyMDEyLTAzLTE0IDE2OjE0OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogYWRkIG5ldyBkcmFpbiBxdWVyeQoJICBXaXRoIHRoZSBuZXcgc2VyaWFsaXplZCBkb3duc3RyZWFtIHF1ZXJpZXMgd2UgY2FuIGltcGxlbWVudCBhIGRyYWluIHF1ZXJ5IHRoYXQKCSAgbWFrZXMgYW4gZWxlbWVudCB3YWl0cyB1bnRpbCBhIGRvd25zdHJlYW0gZWxlbWVudCByZXBsaWVzIHRvIHRoZSBxdWVyeS4KCjIwMTItMDMtMTQgMTY6MDE6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBzZXJpYWxpemVkIHF1ZXJpZXMgcHVzaCBzdGlja3kgZXZlbnRzIGZpcnN0CgkgIEJlZm9yZSB3ZSBjYW4gcHJvY2VlZCB3aXRoIGEgc2VyaWFsaXplZCBxdWVyeSwgd2UgbmVlZCB0byBiZSBzdXJlIHRoYXQgYWxsCgkgIHN0aWNreSBldmVudHMgd2VyZSBwdXNoZWQuCgoyMDEyLTAzLTE0IDE1OjQyOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlczogd2FybiB3aGVuIHJlY2VpdmluZyBhIHNlcmlhbGl6ZWQgZXZlbnQKCSAgLi4gdW50aWwgd2UgaW1wbGVtZW50IGl0LgoKMjAxMi0wMy0xNCAxNTo0MjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYWRkIHN1cHBvcnQgZm9yIHNlcmlhbGl6ZWQgcXVlcmllcwoKMjAxMi0wMy0xNCAxNToyOToxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB0YWtlIHN0cmVhbSBsb2NrIG9uIHNlcmlhbGl6ZWQgcXVlcmllcwoKMjAxMi0wMy0xNCAxNToxNjo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBlbmZvcmNlIGNvcnJlY3QgcXVlcnkgZGlyZWN0aW9uCgoyMDEyLTAzLTE0IDE0OjUxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBxdWVyeTogcmVnaXN0ZXIgcXVlcmllcyBsaWtlIGV2ZW50cwoJICBBbHNvIHJlZ2lzdGVyIHF1ZXJpZXMgd2l0aCBhIFF1ZXJ5VHlwZSB0aGF0IGFsbG93cyB1cyB0byBjaGVjayBpZiB0aGUgZXZlbnQgaXMKCSAgc2VudCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uLiBBZGQgYSBzZXJpYWxpemVkIHF1ZXJ5IHR5cGUgYmVjYXVzZSB3ZSB3aWxsIG5lZWQKCSAgdGhpcyBmb3IgdGhlIGFsbG9jYXRpb24gcXVlcnkuCgkgIFJlbW92ZSB0aGUgUXVlcnlUeXBlRGVmaW5pdGlvbiBzdHVmZiwgaXQgaXMgbm90IHVzZWQgYW55bW9yZSBhbmQgd2Ugbm93IHVzZQoJICBjdXN0b20gcXVlcmllcyBhbmQgc2VwYXJhdGUgQVBJIGZvciB0aGVtLgoJICBVcGRhdGUgZGVmcy4KCjIwMTItMDMtMTQgMTI6NDI6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogYWRkIG1vcmUgZGVidWcKCjIwMTItMDMtMTMgMTU6NDA6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogcmVtb3ZlIG9sZCBjb21wYXQgbW9kZQoKMjAxMi0wMy0xMyAxNTo0MDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGRvY3MgdXBkYXRlCgoyMDEyLTAzLTEzIDEwOjA0OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogcmVtb3ZlIGdzdF9jYXBzX3VuaW9uKCkKCSAgUmVtb3ZlIGdzdF9jYXBzX3VuaW9uKCksIHVzZSBnc3RfY2Fwc19tZXJnZSgpLiBUaGlzIGZ1bmN0aW9uIHdhcyBub3QgdXNlZAoJICBhbnltb3JlIGFuZCBpdCBpcyB1bmNsZWFyIHdoYXQgdGhlIGRpZmZlcmVuY2UgaXMgd2l0aCBfbWVyZ2UoKS4KCjIwMTItMDMtMTIgMjM6MDU6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgQVNfTElCVE9PTCB2ZXJzaW9uCgkgIEFQSSB3YXMgYWRkZWQgdG8gY29sbGVjdHBhZHMyCgoyMDEyLTAzLTEyIDIzOjAyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBiYWNrcG9ydCBBU19MSUJUT09MIHZlcnNpb24gZnJvbSAwLjEwLjM2IHJlbGVhc2UKCSAgTWlnaHQgZml4IGlzc3VlcyB3aXRoIG1pc3Npbmcgc3ltYm9scyBmb3IgcGVvcGxlIHdobyBpbnN0YWxsIEdTdHJlYW1lcgoJICBmcm9tIHNvdXJjZSBhbmQgYXQgc29tZSBwb2ludCBqdW1wZWQgYmFjayBhbmQgZm9ydGggYmV0d2VlbiBnaXQgbWFzdGVyCgkgIGFuZCB0aGUgMC4xMC4zNiByZWxlYXNlIChvciAwLjEwLiBicmFuY2gpLgoKMjAxMi0wMy0xMiAyMzowODowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGRvY3M6IGZpeCBmdW5jdGlvbiBuYW1lIGFuZCB0eXBvCgoyMDEyLTAzLTEyIDE5OjUyOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGdldCB0ZW1wbGF0ZSBjYXBzIG9ubHkgb25jZQoJICBHZXQgdGhlIHRlbXBsYXRlIGNhcHMgb2YgdGhlIHBhZHMgb25seSBvbmNlLCBhdm9pZHMgdW5lY2Vzc2FyeSByZWYKCSAgYW5kIHVucmVmcy4KCjIwMTItMDMtMTIgMTg6MzQ6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBkZWxheSBfbWFrZV93cml0YWJsZSgpIHVudGlsIG5lZWRlZCBpbiBfbm9ybWFsaXplKCkKCSAgRGVsYXkgX21ha2Vfd3JpdGFibGUoKSB1bnRpbCB3ZSBhY3R1YWxseSBmb3VuZCBhIGxpc3QgYW5kIG5lZWQgdG8gdXBkYXRlIHRoZQoJICBjYXBzLgoKMjAxMi0wMy0xMiAxODoyNTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNob3J0Y3V0IHNpbXBsaWZ5IGVhcmxpZXIKCSAgQSBzaW1wbGUgY2FwcyBpcyBhbHJlYWR5IHNpbXBsaWZpZWQsIG5vIG5lZWQgdG8gY2hlY2sgZm9yIGZpeGVkbmVzcy4KCjIwMTItMDMtMTIgMTg6MjI6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBjbGVhbnVwLCByZW1vdmUgY29uc3QKCjIwMTItMDMtMTIgMTg6MDI6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzbWFsbCBjbGVhbnVwcwoKMjAxMi0wMy0xMiAxNjo0MDozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHNtYWxsIGRvYyBpbXByb3ZlbWVudAoKMjAxMi0wMy0xMiAxNjoxODo0NSArMDIwMCAgU3JlZXJlbmogQmFsYWNoYW5kcmFuIDxzcmVlcmVuai5iYWxhY2hhbmRyYW5AaW50ZWwuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGJ1bXAgcmVxdWlyZWQgR0xpYiB0byAyLjMxLjE0CgkgIEZpeGVzIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE5MTEKCjIwMTItMDMtMTIgMTM6NTA6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmctdG8tMC4xMS50eHQgYSBsaXR0bGUKCjIwMTItMDMtMTIgMTI6MzU6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggc29tZSAwLjExIEZJWE1FcwoKMjAxMi0wMy0xMiAxMjoyMTozNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG1ha2UgX25vcm1hbGl6ZSB0YWtlIG93bmVyc2hpcCBvZiBpbnB1dAoJICBNYWtlIGdzdF9jYXBzX25vcm1hbGl6ZSgpIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBpbnB1dCBzbyB0aGF0IGl0IGNhbiBtb3JlCgkgIGludGVsbGlnZW50bHkgZGVjaWRlIHdoZW4gdG8gY29weSBvciBub3QuCgoyMDEyLTAzLTEyIDExOjM4OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IF9kb19zaW1wbGlmeSgpIC0+IF9zaW1wbGlmeSgpCgkgIFJlbmFtZSBfZG9fc2ltcGxpZnkoKSB0byBfc2ltcGxpZnkoKS4gVGhlIG5hbWUgd2FzIGludHJvZHVjZWQgYXMgYSByZXBsYWNlbWVudAoJICBtZXRob2QgZm9yIGEgZGVwcmVjYXRlZCBtZXRob2QgYnV0IHdlIGNhbiBub3cgcmVuYW1lIGl0IGFnYWluLgoJICBGaXggc29tZSBkb2NzLgoKMjAxMi0wMy0xMiAxMDo0MjoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogaW1wcm92ZSBfZG9fc2ltcGxpZnkKCSAgTWFrZSBnc3RfY2Fwc19kb19zaW1wbGlmeSgpIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBpbnB1dCBjYXBzIGFuZCBwcm9kdWNlIGEKCSAgc2ltcGxpZmllZCBvdXRwdXQgY2Fwcy4gVGhpcyByZW1vdmVzIHRoZSByZXF1aXJlbWVudCBvZiBoYXZpbmcgd3JpdGFibGUgaW5wdXQKCSAgY2FwcyBhbmQgdGhlIG1ldGhvZCBjYW4gbWFrZSB0aGUgY2FwcyB3cml0YWJsZSBvbmx5IHdoZW4gbmVlZGVkLgoKMjAxMi0wMy0xMiAxMDo0MToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QKCSAgd2l0aCB0aGUgbmV3IGNhcHMgQVBJLCB0aGVyZSBpcyBtb3JlIHNoYXJpbmcgYW5kIGxlc3MgY29weWluZyBnb2luZyBvbiBzbyB0aGUKCSAgdW5pdCB0ZXN0IHJlZmNvdW50cyBhcmUgZGlmZmVyZW50LgoKMjAxMi0wMy0xMiAwOTowMzo0MiArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICB1cGRhdGUgbGljZW5zZSBsaW5rIHRvIHBvaW50IHRvIDIuMSBsaWNlbnNlLCBpbnN0ZWFkIG9mIGp1c3QgZ2VuZXJpYyBsZ3BsIGZpbGUsIHdoaWNoIGlzIGFsd2F5cyB0aGUgbGF0ZXN0IGFuZCB0aHVzIG5vdCBjb3JyZWN0IGZvciBnc3RyZWFtZXIKCjIwMTItMDMtMTEgMTg6NTc6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYXZvaWQgdXNpbmcgaW4tcGxhY2Ugb3ByYXRpb25zCgkgIFJld29yayBzb21lIGNhcHMgb3BlcmF0aW9ucyBzbyB0aGV5IGRvbid0IHJlbHkgb24gd3JpdGFibGUgY2FwcyBidXQgaW5zdGVhZCB0YWtlCgkgIG93bmVyc2hpcCBvZiB0aGUgaW5wdXQgY2FwcyBhbmQgZG8gX21ha2Vfd3JpdGFibGUoKSBvbmx5IHdoZW4gbmVlZGVkLgoJICBSZW1vdmUgc29tZSBjb25zdCBmcm9tIGNhcHMgZnVuY3Rpb25zLCBpdCBkb2VzIG5vdCBtYWtlIG11Y2ggc2Vuc2UgZm9yCgkgIHJlZmNvdW50ZWQgb2JqZWN0cyBhbmQgZG9lcyBub3QgYWxsb3cgdXMgdG8gcmV0dXJuIGEgcmVmY291bnQgdG8gdGhlIGNvbnN0IGlucHV0CgkgIGNhcHMuCgkgIFJld29yayB0aGUgYmFzZSBjbGFzc2VzIGZpeGF0ZSB2bWV0aG9kcyB0byBub3Qgb3BlcmF0ZSBvbiB0aGUgY2FwcyBpbi1wbGFjZS4KCSAgQWxsIHRoaXMgc2F2ZXMgdXMgYXJvdW5kIDMwJSBvZiBjYXBzIGFuZCBzdHJ1Y3R1cmUgY29weSBhbmQgbmV3IG9wZXJhdGlvbnMuCgoyMDEyLTAzLTExIDE3OjIyOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGFkZCBhbGxvY2F0aW9uIGRlYnVnCgoyMDEyLTAzLTEwIDA5OjI1OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIHR5cGVmaW5kOiByZW1vdmUgY29uc3QgZnJvbSByZWZjb3VudGVkIEdzdENhcHMKCSAgSGF2aW5nIGNvbnN0IG9uIHJlZmNvdW50ZWQgb2JqZWN0cyByZXF1aXJlIHVzIHRvIG1ha2UgY29waWVzIGluc3RlYWQgb2Ygc2ltcGx5CgkgIHRha2luZyBhIHJlZiwgZG9uJ3QgZG8gdGhhdC4KCjIwMTItMDMtMTAgMDk6MTU6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IGF2b2lkIGNvcHkgd2hlbiBjYXBzIGFyZSBmaXhlZAoJICBBdm9pZCBkb2luZyBhIHVzZWxlc3MgY29weSB3aGVuIHRoZSBjYXBzIGFyZSBmaXhlZCBhbmQgc2ltcGxpZnkgd2lsbCBub3QgZG8KCSAgYW55dGhpbmcuCgoyMDEyLTAzLTA5IDE2OjE0OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHNtYWxsIG9wdGltaXphdGlvbnMKCSAgc2hvcnRjdXQgaGVhdnkgd29yayB3aGVuIGJ1ZmZlcl9yZXNpemUgZG9lcyBub3RoaW5nLgoJICBBdm9pZCBhbiBleHRyYSBfcmVmIHdoZW4gbWFwcGluZyBhIGJ1ZmZlci4KCSAgQWRkIHNvbWUgR19MSUtFTFkuCgoyMDEyLTAzLTA5IDE1OjAzOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJwb29sLnR4dDoKCSAgYnVmZmVycG9vbDogZml4IGFycmF5IHR5cGVzCgoyMDEyLTAzLTA5IDE0OjMwOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMi0wMy0wOSAxMTo1Mzo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhbHNvIHB1c2ggc3RpY2t5IGV2ZW50cyBvbiBuZXcgZXZlbnQKCSAgTWFrZSBhIGhlbHBlciBmdW5jdGlvbiBjaGVja19zdGlja3kgdG8gY2hlY2sgYW5kIHB1c2ggcGVuZGluZyBzdGlja3kgZXZlbnRzLgoJICBNb3ZlIHRoZSBoYW5kbGluZyBvZiB0aGUgcmVzdWx0IG9mIHB1c2hpbmcgdGhlIHN0aWNreSBldmVudCBpbnNpZGUgdGhlCgkgIHB1c2hfZXZlbnQgZnVuY3Rpb24sIHdlIG5lZWQgdG8gbWFyayB0aGUgZXZlbnQgYXMgcmVjZWl2ZWQgd2hlbiBpdCB3YXMgcHVzaGVkCgkgIGNvcnJlY3RseS4KCSAgTW92ZSB0aGUgc3RpY2t5IGV2ZW50cyBjb2RlIG91dHNpZGUgb2YgZ3N0X3BhZF9wdXNoX2V2ZW50X3VuY2hlY2tlZCBhbmQKCSAgbWFrZSBpdCBwdXJlbHkgaGFuZGxlIHNlbmRpbmcgdGhlIGV2ZW50IHRvIHRoZSBwZWVyLgoJICB3aGVuIHB1c2hpbmcgYSBzdGlja3kgZXZlbnQsIGZpcnN0IHN0b3JlIGl0IG9uIHRoZSBwYWQuIFRoZW4gY2hlY2sgYW5kIHB1c2ggYW55CgkgIHBlbmRpbmcgc3RpY2t5IGV2ZW50cyB3aGVuIHdlIGdldCBhIHNlcmlhbGl6ZWQgb3Igc3RpY2t5IGV2ZW50IG9uIGEgc3JjcGFkLiBUaGlzCgkgIGZpeGVzIHRoZSBpc3N1ZSB3aGVyZSBzdGlja3kgZXZlbnRzIGFyZSBub3QgcHVzaGVkIHdoZW4gYW4gZXZlbnQgaXMgcHVzaGVkLgoKMjAxMi0wMy0wOSAxMTo1MjoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzdG9yZSB0aGUgcmVjZWl2ZWQgcmVzdWx0IGZyb20gX2ZvcmVhY2gKCSAgSWYgdGhlIGZvcmVhY2ggZnVuY3Rpb24gY2hhbmdlcyB0aGUgcmVjZWl2ZWQgc3RhdGUgb2YgdGhlIHN0aWNreSBldmVudCwgbWFrZQoJICBzdXJlIHdlIHJlbWVtYmVyIHRoYXQuCgoyMDEyLTAzLTA5IDExOjUyOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBjb21tZW50CgoyMDEyLTAzLTA5IDExOjQ5OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0OiBhZGQgdGVzdCB0byBjaGVjayBzdGlja3kgZXZlbnRzIG9yZGVyCgkgIFN0aWNreSBldmVudHMgcHVzaGVkIG9uIGFuIHVubGlua2VkIHBhZCBzaG91bGQgYmUgc3RvcmVkIG9uIHRoZSBwYWQuIFdoZW4gdGhlCgkgIHBhZCBpcyB0aGVuIGxpbmtlZCBhbmQgYW4gZXZlbnQgaXMgcHVzaGVkLCB0aGUgZXZlbnQgc2hvdWxkIGJlIG1lcmdlZCB3aXRoIHRoZQoJICBhbHJlYWR5IGV4aXN0aW5nIHN0aWNreSBldmVudHMgYW5kIHRoZW4gdGhlIHN0aWNreSBldmVudHMgc2hvdWxkIGJlIHB1c2hlZCBpbgoJICB0aGUgb3JkZXIgdGhhdCB0aGV5IHdlcmUgb3JpZ2luYWxseSBwdXNoZWQuCgoyMDEyLTAzLTA5IDExOjQ4OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3Q6IGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTItMDMtMDggMjA6MDg6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgdGVzdHM6IHBvcnQgcGlwZWxpbmUvc2VlayB0ZXN0IHRvIDAuMTEKCSAgRG9lc24ndCBmYWlsIGluIDAuMTEgb2YgY291cnNlLCBhdCBsZWFzdCBub3Qgb24gbXkgbWFjaGluZS4KCjIwMTItMDMtMDggMTk6NTU6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29tbW9uCgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0dGFzay5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmgKCjIwMTItMDMtMDggMTY6MzA6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBwYWQsIHRhc2s6IGltcHJvdmUgZGVidWcgbG9nZ2luZwoKMjAxMi0wMy0wOCAxNjoyNjo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIHBhZHMsIGNvbGxlY3RwYWRzMjogZ2V0IHJpZCBvZiBzdXBlcmZsdW91cyBicmFja2V0cyBhcm91bmQgc3RhdGljIHJlYyBtdXRleCBjYWxscwoJICBNYWtlcyBpdCBwb3NzaWJsZSB0byBkZWZpbmUgdGhvc2UgY2FsbHMgdG8gc29tZXRoaW5nIGZvciB0cmFjaW5nLgoKMjAxMi0wMy0wOCAxNjoyNToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIGNvbW1vbjogdXBkYXRlIGNvbW1vbiBtb2R1bGUKCSAgRm9yIG1ha2UgZm9vL2Jhci5jaGVjay1ub3JlcGVhdCB0YXJnZXQuCgoyMDEyLTAzLTA4IDE1OjIzOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NlZWsuYzoKCSAgdGVzdHM6IGFkZCBtaW5pbWFsIGJhc2VzcmMgISBzaW5rIHNlZWtpbmcgdW5pdCB0ZXN0CgkgIFNob3VsZCByZXByb2R1Y2UgJ0dTdHJlYW1lci1XQVJOSU5HICoqOiB3cm9uZyBTVFJFQU1fTE9DSyBjb3VudCAwJwoJICB3YXJuaW5ncyAod2l0aCBtYWtlIHBpcGVsaW5lcy9zZWVrLnRvcnR1cmUgb3IgcGlwZWxpbmVzL3NlZWsuZm9yZXZlcgoJICBhbnl3YXksIHNpbmNlIGl0IGFwcGVhcnMgdG8gYmUgcmFjeSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4NDYKCjIwMTEtMTItMjYgMDA6MTg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdmFsdWU6IHJlbW92ZSBnc3RfdmFsdWVfcmVnaXN0ZXJfe3N1YnRyYWN0LHVuaW9uLGludGVyc2VjdH1fZnVuYygpIEFQSQoJICBUaGVyZSBpc24ndCByZWFsbHkgYW55IG5lZWQgdG8gcHJvdmlkZSBwdWJsaWMgQVBJIGZvciB0aGF0LiBJdCdzIG5vdAoJICB1c2VkIGFueXdoZXJlIGluIHByYWN0aWNlLCBhbmQgd2UgYWltIHRvIHByb3ZpZGUgYW4gQVBJIHRoYXQgd29ya3MKCSAgZm9yIEdzdENhcHMsIG5vdCBzb21lIGtpbmQgb2YgZ2VuZXJpYyBzZXQgbWFuaXB1bGF0aW9uIEFQSSBiYXNlZCBvbgoJICBHVmFsdWUuIE1ha2luZyB0aGlzIHByaXZhdGUgYWxzbyBtYWtlcyBpdCBlYXNpZXIgdG8gb3B0aW1pc2UgdGhpcwoJICBsYXRlci4gV2UgY2FuIGFsd2F5cyBwdXQgaXQgYmFjayBpZiBzb21lb25lIGFjdHVhbGx5IG5lZWRzIGl0LgoKMjAxMi0wMy0wOCAxMDo0NzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogZml4IHJlZmNvdW50IGVycm9yCgoyMDEyLTAzLTA4IDA5OjQ1OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmV0dXJuIEFOWSBmb3IgYSBwYWQgd2l0aG91dCB0ZW1wbGF0ZQoJICBCZWNhdXNlIGdzdF9wYWRfZ2V0X3BhZF90ZW1wbGF0ZV9jYXBzKCkgcmV0dXJucyBBTlkgd2hlbiB0aGVyZSBpcyBubyB0ZW1wbGF0ZSwKCSAgdGhlIHF1ZXJ5IGNhcHMgZnVuY3Rpb24gc2hvdWxkIGFsc28gcmV0dXJuIEFOWSB3aGVuIHRoZXJlIGlzIG5vIHRlbXBsYXRlIChhbmQgbm8KCSAgcGFkIGN1cnJlbnQgY2FwcykgaW5zdGVhZCBvZiBFTVBUWS4KCjIwMTItMDMtMDggMDk6NDQ6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc21hbGwgY2xlYW51cAoKMjAxMi0wMy0wNyAxNTozNDozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgY29tbWVudAoKMjAxMi0wMy0wOCAxMDozMjowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBtZXJnZSBtaXN0YWtlCgoyMDEyLTAzLTA4IDEwOjE5OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmMKCjIwMTItMDMtMDcgMTE6MjM6NTYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhcnJhbmdlIGZvciBwcm9wZXJseSBkaXNqb2ludCBmcmFtZSBmbGFncwoKMjAxMi0wMy0wNiAxNToxNzowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBkZWxheSBwb29sIGFjdGl2YXRpb24KCSAgRGVsYXkgdGhlIGFjdGl2YXRpb24gb2YgdGhlIGJ1ZmZlcnBvb2wgdW50aWwgd2UgYWN0dWFsbHkgbmVlZCBhIGJ1ZmZlciBmcm9tIHRoZQoJICBwb29sLgoKMjAxMi0wMy0wNiAxMjoyODowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCAnc2VsZi1jb21wYXJpc29uIGFsd2F5cyBldmFsdWF0ZXMgdG8gdHJ1ZScKCSAgVGhpcyB3YXMgcmVhbGx5IGEgYnVnLgoKMjAxMi0wMy0wNiAxMjoyNDo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IEZpeCAndXNlIG9mIGxvZ2ljYWwgJyYmJyB3aXRoIGNvbnN0YW50IG9wZXJhbmQnIGNvbXBpbGVyIHdhcm5pbmcKCSAgVGhpcyBpcyBhY3R1YWxseSBhIHJlYWwgYnVnLgoKMjAxMi0wMy0wNiAxMjoyMzoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4ICdlcXVhbGl0eSBjb21wYXJpc29uIHdpdGggZXh0cmFuZW91cyBwYXJlbnRoZXNlcycgY29tcGlsZXIgd2FybmluZwoKMjAxMi0wMy0wNiAxMjoxNjoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogRml4ICdjb21wYXJpc29uIG9mIHVuc2lnbmVkIGVudW0gZXhwcmVzc2lvbiA+PSAwIGlzIGFsd2F5cyB0cnVlJyBjb21waWxlciB3YXJuaW5nCgoyMDEyLTAzLTA1IDE1OjIzOjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvbid0IHByb3Bvc2VfYWxsb2NhdGlvbiBiZWZvcmUgbmVnb3RpYXRpb24KCSAgQW5zd2VyIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IHdpdGggRkFMU0Ugd2hlbiB3ZSBhcmUgbm90IG5lZ290aWF0ZWQgeWV0IGJlY2F1c2UgYXQKCSAgdGhhdCBwb2ludCB3ZSBoYXZlIG5vIGlkZWEgaWYgd2UgbmVlZCB0byBwcm94eSB0aGUgYWxsb2NhdGlvbiBxdWVyeSBvciBub3QuCgoyMDEyLTAzLTA1IDE0OjQxOjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGhhbmRsaW5nIG9mIG11bHRpcGxlIG5ld3NlZ21lbnQgZXZlbnRzCgkgIFByZXZpb3VzbHkgb25seSB0aGUgbGFzdCB3b3VsZCBiZSBwdXNoZWQsIHdoaWNoIHdvdWxkIGNhdXNlCgkgIGludmFsaWQgcnVubmluZyB0aW1lcyBkb3duc3RyZWFtLiBUaGlzIGFsc28gZml4ZXMgdGhlIGhhbmRsaW5nCgkgIG9mIHVwZGF0ZSBuZXdzZWdtZW50IGV2ZW50cy4KCjIwMTItMDMtMDUgMTQ6MjU6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBBbHNvIGZsdXNoIHRoZSBjbG9zZV9zZWdtZW50CgkgIFB1c2hpbmcgdGhpcyBhZnRlciBmbHVzaGluZyB3aWxsIGNvbmZ1c2UgZG93bnN0cmVhbS4KCjIwMTItMDMtMDUgMTQ6MjM6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZW1vdmUgb2Jzb2xldGUgY29kZSBhbmQgbW92ZSBnYXAgaGFuZGxpbmcgdG8gdGhlIGNvcnJlY3QgcGxhY2UKCSAgVGhlIHNlZ21lbnQgc3RhcnQgYWRqdXN0bWVudCBjb2RlIGluIHB1bGwgbW9kZSBzaG91bGQgbmV2ZXIgdHJpZ2dlcgoJICBhbnltb3JlIGJlY2F1c2UgdGhlIGJpc2VjdGlvbiBjb2RlIGVhcmxpZXIgd291bGQgaGF2ZSBhbHJlYWR5IG1hZGUKCSAgc3VyZSB0aGF0IHdlJ3JlIGF0IHRoZSBkZXNpcmVkIHBvc2l0aW9uLgoJICBBbHNvIG1vdmUgdGhlIGdhcCBoYW5kbGluZyBzb21lIGxpbmVzIGJlbG93IGFmdGVyIHNlbmRpbmcgdGhlIGN1cnJlbnRseQoJICBjb25maWd1cmVkIHNlZ21lbnRzLiBPdGhlcndpc2Ugd2UgbWlnaHQgZmlsbCBnYXBzIGluIGEgc2VnbWVudCB0aGF0IGlzCgkgIG5vdCBjb25maWd1cmVkIGRvd25zdHJlYW0geWV0LgoKMjAxMi0wMy0wNSAxMzoxMjoxOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IENsZWFyIHNvbWUgbW9yZSBzdGF0ZSB3aGVuIHJlY2VpdmluZyBGTFVTSF9TVE9QCgkgIExpa2UgcGVuZGluZyBzZXJpYWxpemVkIGV2ZW50cyBhbmQgdGhlIGN1cnJlbnRseSBjYWNoZWQgYnVmZmVyLgoKMjAxMi0wMy0wNSAxMzowMDozOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IE9ubHkgcXVldWUgc2VyaWFsaXplZCBldmVudHMgZm9yIHNlbmRpbmcgdGhlbSBsYXRlcgoKMjAxMi0wMy0wNSAwMDozNDozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgbGliZ3N0Y2hlY2s6IGV4cG9ydCBnc3RfY29uc2lzdGVuY3lfY2hlY2tlcl9hZGRfcGFkKCkKCSAgRml4IGJ1aWxkIG9mIHRoZSBhZGRlciB1bml0IHRlc3QgaW4gLWJhc2UgYWdhaW4uCgoyMDEyLTAzLTAyIDE3OjMyOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZWZpbmUgbWV0YWRhdGEgZmlsdGVyIGFuZCB0cmFuc2Zvcm0KCSAgQWRkIGEgdm1ldGhvZCB0byBmaWx0ZXIgbWV0YWRhdGEgdGhhdCBzaG91bGQgYmUgcGFzc2VkIHVwc3RyZWFtLiBCeSBkZWZhdWx0LAoJICBkb24ndCBwYXNzIGFueXRoaW5nLgoJICBBZGQgYSB2bWV0aG9kIHRvIHRyYW5zZm9ybSBtZXRhZGF0YSBmcm9tIHRoZSBpbnB1dCBidWZmZXIgdG8gdGhlIG91dHB1dCBidWZmZXIuCgkgIEJ5IGRlZmF1bHQsIG5vdGhpbmcgaXMgdHJhbnNmb3JtZWQgb3IgY29waWVkLgoKMjAxMi0wMy0wMiAxNzowNDowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuaDoKCSAgZ3N0OiBpbmNsdWRlIGdzdG1ldGEuaAoKMjAxMi0wMy0wMiAxNzowMzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtb3JlIGRlYnVnIGluZm8KCjIwMTItMDMtMDIgMTM6MDI6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAzLTAyIDEzOjAyOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IGltcHJvdmUgbWV0YWRhdGEgdGVzdAoKMjAxMi0wMy0wMiAxMjo0NToyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogYWRkIGJvb2xlYW4gdG8gc2lnbmFsIGEgcmVnaW9uIGNvcHkKCSAgQWRkIGEgYm9vbGVhbiB0byB0aGUgbWV0YWRhdGEgY29weSB0cmFuc2Zvcm0gdGhhdCBzaWduYWxzIGlmIGEgb25seSBhCgkgIHJlZ2lvbiBpcyBjb3BpZWQuCgoyMDEyLTAzLTAyIDEyOjE2OjAzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkgIGNvbnNpdGVuY3ljaGVja2VyOiBkb24ndCBmYWlsIG9uIG11bHRpcGxlIGZsdXNoX3N0YXJ0IGV2ZW50cwoJICBUaGlzIHNlZW1zIHRvIGJlIG9rYXkgYWZ0ZXIgYSBpcmMgZGlzY3Vzc2lvbi4KCjIwMTItMDMtMDIgMTE6NTc6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiB0cmFuc2Zvcm0gZG9jcwoJICBVc2UgZ3N0LSBwcmVmaXggZm9yIG1ldGFkYXRhIHRyYW5zZm9ybSB0eXBlcy4KCjIwMTItMDMtMDIgMTE6MDQ6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBmaXggY29tbWVudAoKMjAxMi0wMy0wMiAxMTowNTo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBBbmRyb2lkLm1rOgoJKiBNYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG1hcnNoYWwubGlzdDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5jOgoJKiB3aW4zMi9jb21tb24vZ3N0bWFyc2hhbC5oOgoJICBnc3Q6IFJlbW92ZSBnc3RtYXJzaGFsLltjaF0gY29tcGxldGVseSBhbmQgdXNlIHRoZSBnZW5lcmljIG1hcnNoYWxsZXIKCSAgRml4ZXMgYnVnICM2NzExMzAuCgoyMDEyLTAzLTAyIDEwOjUxOjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBEb24ndCBpbnN0YWxsIGdzdG1hcnNoYWwuaAoJICBUaGUgZ2VuZXJpYywgRkZJIGJhc2VkIG1hcnNoYWxsZXIgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGVzZQoJICBhbmQgd2UgZGVmaW5pdGVseSBzaG91bGRuJ3QgZXhwb3J0IHRoZSBtYXJzaGFsbGVycyBpbiBvdXIgcHVibGljIEFQSS4KCjIwMTItMDMtMDEgMTc6Mzk6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgbWV0YTogaW1wcm92ZSBkZWJ1Z2dpbmcKCSAgQWRkIGNhdGVnb3J5IGZvciBtZXRhZGF0YSBkZWJ1ZwoKMjAxMi0wMy0wMSAxNzozODo1NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMi0wMy0wMSAxNzozODoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMi0wMy0wMSAxNToxODowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIG1ldGFkYXRhIHRhZ2dlZCB3aXRoIHRoZSBtZW1vcnkgdGFnCgkgIFJlbW92ZSBtZXRhZGF0YSB0aGF0IGRlc2NyaWJlcyB0aGUgcGFydGljdWxhciBtZW1vcnkgb2YgdGhlIGJ1ZmZlciBpdCBpcwoJICBhdHRhY2hlZCB0by4gV2UgbmVlZCB0byBkbyB0aGlzIGJlY2F1c2UgaW4gbm9uLXBhc3N0aHJvdWdoIG1vZGUgd2Ugd2lsbCBhbGxvY2F0ZQoJICBuZXcgbWVtb3J5IGZvciBvdXIgb3V0cHV0IGJ1ZmZlci4KCjIwMTItMDMtMDEgMTU6MTc6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBhZGQgdGFnIGZvciBtZW1vcnkgbWV0YWRhdGEKCjIwMTItMDMtMDEgMTQ6NDk6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgbWV0aG9kIHRvIHJlbW92ZSBhbGxvY2F0aW9uX21ldGEKCSAgQWxzbyBnX3JldHVybl9pZl9mYWlsIGZvciBvdXQtb2YtYm91bmRzIGFjY2VzcyBpbnN0ZWFkIG9mIHNpbGVudGx5IGZhaWxpbmcuCgoyMDEyLTAzLTAxIDE0OjMwOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIHByb3Bvc2VfYWxsb2NhdGlvbgoJICBJbXByb3ZlIHRoZSBwcm9wb3NlIGFsbG9jYXRpb24gdm1ldGhvZCBieSBwYXNzaW5nIHRoZSBkb3duc3RyZWFtIGFsbG9jYXRpb24KCSAgcXVlcnkgdG8gaXQuIFRoaXMgd2F5IHRoZSB2bWV0aG9kIGltcGxlbWVudGF0aW9uIGNhbiB1c2UgcHJvcGVydGllcyBvZiB0aGUKCSAgZG93bnN0cmVhbSBhbGxvY2F0aW9uIHRvIGdlbmVyYXRlIHRoZSB1cHN0cmVhbSBxdWVyeSByZXN1bHQuIElmIHRoZXJlIGlzIG5vCgkgIGRvd25zdHJlYW0gcXVldHksIGl0IG1lYW5zIHRoYXQgdGhlIGVsZW1lbnQgaXMgd29ya2luZyBpbiBwYXNzdGhyb3VnaCBtb2RlLgoJICBJbXBsZW1lbnQgYSBkZWZhdWx0IGRlY2lkZV9hbGxvY2F0aW9uLgoKMjAxMi0wMy0wMSAxMToxMTo0MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBjbGVhciBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgaW4gcGFzc3Rocm91Z2gKCSAgQ2xlYXIgdGhlIGFsbG9jYXRpb24gcGFyYW1ldGVycyB3aGVuIHdlIG9wZXJhdGUgaW4gcGFzc3Rocm91Z2guCgoyMDEyLTAzLTAxIDExOjA2OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHRlc3RzOiBmaXggb2xkIGNhcHMgaW4gdGVzdHMgbm93IHRoYXQgY29yZSB3YXJucwoKMjAxMi0wMy0wMSAxNDo1MToyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSAgbGliczogRml4IHNvbWUgbWVyZ2UgbWlzdGFrZXMKCjIwMTItMDMtMDEgMTQ6NDM6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmMKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmMKCjIwMTItMDItMjggMTI6MDM6NDYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBzb21lIGRlYnVnIG1lc3NhZ2UgdHlwb3MKCjIwMTItMDItMjkgMjE6NTc6MDAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkgIGNvbnNpdGVuY3ljaGVja2VyOiBhZGQgaGFuZGxpbmcgZm9yIHNpbmstcGFkcwoJICBBZGQgYSBwYWQtcHJvYmUgZm9yIHNpbmstcGFkcy4gT25lIGNhbiBub3cgYWRkIGV4dHJhIHBhZHMgKGJlbG9uZ2luZyB0byB0aGUgc2FtZQoJICBlbGVtZW50KSB0byBhIGNoZWNrZXIuIFRoaXMgYWxsb3dzIHVzIHRvIGV4dGVuZCB0aGUgY2hlY2tzLgoKMjAxMi0wMi0yOSAxNzoyMDoyMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBzcGxpdCByZWdpc3RyYXRpb24gb2YgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgoJICBTcGxpdCBvdXQgdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgbWV0YWRhdGEgQVBJIGFuZCBpdHMgaW1wbGVtZW50YXRpb24uIE1ha2UgYQoJICBHVHlwZSBmb3IgZWFjaCBtZXRhZGF0YSBBUEkuIFRoaXMgYWxsb3dzIHVzIHRvIHN0b3JlIGV4dHJhIGluZm9ybWF0aW9uIHdpdGggdGhlCgkgIEFQSSB0eXBlIHN1Y2ggYXMgdGhlIHRhZ3MuCgkgIENoYW5nZSB0aGUgYnVmZmVyIEFQSSBzbyB0aGF0IHdlIGNhbiBnZXQgdGhlIG1ldGFkYXRhIHVzaW5nIHRoZSBBUEkgR1R5cGUuCgkgIENoYW5nZSB0aGUgcXVlcnkgQVBJIHNvIHRoYXQgd2UgdXNlIHRoZSBtZXRhZGF0YSBBUEkgR1R5cGUgaW4gdGhlIGFsbG9jYXRpb24KCSAgcXVlcnkgaW5zdGVhZCBvZiBhIHN0cmluZy4KCSAgVXBkYXRlIG5ldGFkZHJlc3MgYW5kIHVuaXQgdGVzdHMKCjIwMTItMDItMjkgMTY6MDA6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5vYmplY3Q6IHNtYWxsIC5oIGluZGVudCBmaXgKCjIwMTItMDItMjkgMTI6NDE6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IHByaW50IGEgZ193YXJuaW5nKCkgaWYgc29tZW9uZSB0cmllcyB0byBjb25zdHJ1Y3QgMC4xMC1zdHlsZSByYXcgYXVkaW8vdmlkZW8gY2FwcwoKMjAxMi0wMi0yOSAwODo0NDowNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjb25zaXN0ZW5jeWNoZWNrZXI6IGFsc28gY2hlY2sgZm9yIGR1cGxpY2F0ZWQgZmx1c2hfc3RhcnRzCgoyMDEyLTAyLTI4IDIwOjM2OjU5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhZGQgbW9yZSBsb2dnaW5nCgoyMDEyLTAyLTI4IDE2OjE3OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGFkZCByZXR1cm4gdmFsZSB0byB0cmFuc2Zvcm0KCSAgQWRkIGEgYm9vbGVhbiByZXR1cm4gdmFsdWUgc28gdGhhdCB3ZSBjYW4gc2VlIHdoZW4gYSB0cmFuc2Zvcm0gZmFpbHMuCgoyMDEyLTAyLTI4IDEyOjUyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IGFkZCBtZXRob2QgdG8gY2hlY2sgZm9yIGEgdGFnCgoyMDEyLTAyLTI4IDEyOjUxOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgdGVzdHM6IGZpeCB1bml0IHRlc3QKCjIwMTItMDItMjggMTE6MzQ6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSAgbWV0YTogYWRkIHN1cHBvcnQgdG8gdGFnZ2luZyB0aGUgbWV0YWRhdGEKCSAgQWRkIHN1cHBvcnQgZm9yIGFkZGluZyB0YWdzIHRvIHRoZSBtZXRhZGF0YS4gd2l0aCBzb21lIHN0YW5kYXJkIGtleXMsIHRoaXMKCSAgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8gZGVzY3JpYmUgd2hhdCB0aGUgbWV0YWRhdGEgcmVmZXJzIHRvLiBXZSBzaG91bGQgYmUKCSAgYWJsZSB0byB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkZWNpZGUgaWYgYSB0cmFuc2Zvcm1hdGlvbiBkZXN0cm95cyB0aGUgbWV0YWRhdGEKCSAgb3Igbm90LgoKMjAxMi0wMi0yNyAxMzozNToxMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgU3VwcHJlc3MgZGVwcmVjYXRpb24gd2FybmluZ3MgaW4gc2VsZWN0ZWQgZmlsZXMsIGZvciBnX3ZhbHVlX2FycmF5XyogbW9zdGx5CgoyMDEyLTAyLTI3IDExOjQ2OjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJICB0ZXN0czogaW5jcmVhc2UgYnVzIHRlc3QgdGltZW91dAoKMjAxMi0wMi0yMSAyMDo0Mzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgdGVzdHM6IG1ha2UgZGF0ZXRpbWUgdGVzdCBtb3JlIHJlbGlhYmx5IHdoZW4gY29tcGFyaW5nIHR3byBhbG1vc3QgaWRlbnRpY2FsIG5vd3MKCSAgQWNjb3VudCBmb3Igcm91bmRpbmcgZXJyb3JzIGluIHNvbWUgcGxhY2VzLCBhbmQgdGhhdCB0d28gbm93cyBhcmUKCSAgbm90IGFsd2F5cyBlbnRpcmVseSBpZGVudGljYWwsIHNvIGFsbG93IHNvbWUgbGVld2F5IHdoZW4gY29tcGFyaW5nCgkgIG1pY3Jvc2Vjb25kcyBhbmQgc2Vjb25kcy4gUmFuIGludG8gdGhpcyB0b28gb2Z0ZW4sIGVzcC4gd2hlbiB0aGUKCSAgc3lzdGVtIGlzIHVuZGVyIGxvYWQuCgoyMDEyLTAyLTI3IDA5OjQ4OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgcmVtb3ZlIHNvbWUgdXNlbGVzcyBpbmNsdWRlcyBpbiAuaAoKMjAxMi0wMi0yNyAwOTowMjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNsb2NrOiBtYWtlIG1vcmUgc3R1ZmYgcHJpdmF0ZQoJICBFeHBvc2UgbWV0aG9kcyB0byBnZXQgYW5kIHNldCB0aGUgdGltZW91dCBiZWNhdXNlIHN1YmNsYXNzZXMgdXNlcyB0aGlzLgoKMjAxMi0wMi0yNiAyMDo0NToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgc3lzdGVtY2xvY2s6IG1ha2UgbW9yZSBzdHVmZiBwcml2YXRlCgoyMDEyLTAyLTI2IDIwOjQ0OjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbWFrZSBtb3JlIHN0dWZmIHByaXZhdGUKCjIwMTItMDItMjYgMTY6MzI6MzIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiBtYWtlIG1vcmUgZmllbGRzIHByaXZhdGUKCjIwMTItMDItMjcgMDA6MDk6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZmRzaW5rOiBmaXggY29tcGlsYXRpb24gYWZ0ZXIgbWVyZ2UKCjIwMTItMDItMjcgMDA6MDg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgTkVXUwoJICBSRUxFQVNFCgkgIGNvbmZpZ3VyZS5hYwoJICBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5CgkgIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmMKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oCgkgIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYwoJICB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oCgoyMDEyLTAyLTI2IDIzOjExOjIzICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiByZXNjdWUgdGhlIGFubm90YXRpb24gZnJvbSBjb2xsZWN0cGFkcwoKMjAxMi0wMi0yNiAyMzoxMDo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZG9jczogZml4IGEgdHlwbyBpbiBjb21tZW50CgoyMDEyLTAyLTI2IDIyOjU3OjAyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBtb3ZlICJNVCBzYXZlIiB0YWdzIHRvIGRvYyBib2R5CgkgIEl0IGlzIG5vdCB1c2VmdWwgdG8gaGF2ZSAiTVQgc2FmZSIgdGFncyByYW5kb21seSBpbiBib2R5LCByZXR1cm5zIG9yIHNpbmNlIHBhcmFncmFwaHMuCgoyMDEyLTAyLTI1IDE1OjE4OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogaW1wbGVtZW50IEdzdEJhc2VTaW5rOjpxdWVyeSBpbnN0ZWFkIG9mIG1lc3Npbmcgd2l0aCB0aGUgcGFkCgoyMDEyLTAyLTI1IDE1OjA4OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZkc2luazogaW1wbGVtZW50IFNFRUtJTkcgcXVlcnkKCSAgV2UgbWF5IG9yIG1heSBub3Qgc3VwcG9ydCBzZWVraW5nLiBzdGRvdXQgdG8gYQoJICB0ZXJtaW5hbCBkb2Vzbid0IHN1cHBvcnQgc2Vla2luZywgZm9yIGV4YW1wbGUsIGJ1dAoJICAuLi4gISBmZHNpbmsgPiBmaWxlLmZvbyBqdXN0IG1pZ2h0LgoKMjAxMi0wMi0yNSAxNTowNzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGZpbGVzaW5rOiBpbXBsZW1lbnQgU0VFS0lORyBxdWVyeQoJICBXZSBtYXkgb3IgbWF5IG5vdCBkbyBzZWVraW5nLCBkZXBlbmRzIG9uIHRoZQoJICBvdXRwdXQgZmlsZS9kZXZpY2UgcmVhbGx5LCBpdCBkb2Vzbid0IGhhdmUgdG8KCSAgYmUgYSBmaWxlIGFmdGVyIGFsbC4KCjIwMTItMDItMjUgMTU6MDc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogYW5zd2VyIFNFRUtJTkcgcXVlcnkKCSAgV2UgZG9uJ3QgZG8gc2Vla2luZywgaW4gY2FzZSBhbnlvbmUgd2FudHMgdG8ga25vdy4KCjIwMTItMDItMjQgMjM6Mzk6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBmaXggbHNlZWsoKSByZXR1cm4gY29kZSBoYW5kbGluZwoJICBsc2VlaygpIHJldHVybnMgdGhlIG9mZnNldCBpZiBzdWNjZXNzZnVsLCBhbmQgdGhpcyBpcyAhPSAwIGFuZAoJICBkb2VzIG5vdCBpbmRpY2F0ZSBhbiBlcnJvci4gQW5kIGlmIGl0IGRvZXMgYWN0dWFsbHkgZmFpbCwgZG9uJ3QKCSAgcmV0dXJuIEZBTFNFICgwKSBhcyBhbiBpbnQsIGJ1dCAtMS4gTm9uZSBvZiB0aGVzZSB0aGluZ3MgYXJlCgkgIGxpa2VseSB0byBoYXZlIG1hZGUgYSBkaWZmZXJlbmNlLCBldmVyLiBJIGRvbid0IHRoaW5rIHRoZSBvZmZzZXQKCSAgc2VlayBjYW4gZXZlciBhY3R1YWxseSBoYXBwZW4sIHRoZSBjdXJyZW50IGZpbGUgcG9zaXRpb24gYW5kIHRoZQoJICBjdXJyZW50IG9mZnNldCBzaG91bGQgYWx3YXlzIGJlIGluY3JlYXNlZCBpbiBsb2NrIHN0ZXAsIHVubGVzcwoJICB0aGVyZSB3YXMgYW4gZXJyb3IgaW4gd2hpY2ggY2FzZSB3ZSdkIGp1c3QgZXJyb3Igb3V0LgoKMjAxMi0wMi0yNCAyMzoxOTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGRvbid0IGZvcmdldCB0byBjbGVhbiB1cCByZWdpc3RyeSB0ZW1wIGZpbGUgaW4gYW5vdGhlciBlcnJvciBjYXNlCgkgIEFsc28gY2xlYW4gdXAgdGVtcCBmaWxlIGlmIHdlIGdldCBhbiBlcnJvciBkdXJpbmcgd3JpdGUoKSByYXRoZXIKCSAgdGhhbiBqdXN0IHdoZW4gZG9pbmcgZnN5bmMoKSBvciBjbG9zZSgpLgoKMjAxMi0wMi0yNCAxNToyNDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICBhdG9taWNxdWV1ZTogZml4IHJhY2UKCSAgQWZ0ZXIgYSB3cml0ZXIgaGFzIHdyaXR0ZW4gdG8gaXRzIHJlc2VydmVkIHdyaXRlIGxvY2F0aW9uLCBpdCBjYW4gb25seSBtYWtlIHRoZQoJICBsb2NhdGlvbiBhdmFpbGFibGUgZm9yIHJlYWRpbmcgaWYgYWxsIG9mIHRoZSB3cml0ZXJzIHdpdGggbG93ZXIgbG9jYXRpb25zIGhhdmUKCSAgZmluaXNoZWQuCgoyMDEyLTAyLTI0IDEyOjUxOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggc3VidGxlIHJhY2UKCSAgRml4IGEgcmFjZSB3aGVyZSB0aGUgcmVhZGVyIHdvdWxkIHNlZSB0aGUgdXBkYXRlZCB0aGUgdGFpbCBwb2ludGVyIGJlZm9yZSB0aGUKCSAgd3JpdGUgY291bGQgd3JpdGUgdGhlIGRhdGEgaW50byB0aGUgcXVldWUuIEZpeCB0aGlzIGJ5IGhhdmluZyBhIHNlcGFyYXRlIHJlYWRlcgoJICB0YWlsIHBvaW50ZXIgdGhhdCBpcyBvbmx5IGluY3JlbWVudGVkIGFmdGVyIHRoZSB3cml0ZXIgd3JvdGUgdGhlIGRhdGEuCgoyMDEyLTAyLTI0IDExOjAwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcmVjb25maWd1cmUgbWV0aG9kcwoJICBSZW5hbWUgZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QgdG8gZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlX3NpbmsgYmVjYXVzZQoJICB0aGF0IGlzIHdoYXQgaXQgZG9lcy4gQWxzbyByZW1vdmUgdGhlIGNhcHMgYW5kIHNpemUgYmVjYXVzZSB0aGF0IGlzIG5vdCBuZWVkZWQuCgkgIFJlbmFtZSBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUgdG8gZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlX3NyYy4KCSAgUmVtb3ZlIHNvbWUgb2xkIHVudXNlZCBjb2RlIGluIGNhcHNmaWx0ZXIuCgoyMDEyLTAyLTI0IDEwOjIzOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IGZsZXNoIG91dCB0aGUgbWV0YWRhdGEgdHJhbnNmb3JtCgkgIEZsZXNoIG91dCB0aGUgdHJhbnNmb3JtIG1ldGhvZC4gQWRkIGEgdHlwZSBhbmQgZXh0cmEgaW5mbyB0byB0aGUgdHJhbnNmb3JtCgkgIGZ1bmN0aW9uIHNvIHRoYXQgaW1wbGVtZW50YXRpb24gY2FuIHRyYW5zZm9ybSB0aGUgbWV0YWRhdGEuCgkgIFJlbW92ZSB0aGUgY29weSBmdW5jdGlvbiBhbmQgcmVwbGFjZSB3aXRoIHRoZSBtb3JlIGdlbmVyaWMgdHJhbnNmb3JtLgoKMjAxMi0wMi0yNCAxMDoyMzoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDEyLTAyLTIzIDA4OjQ4OjIyIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBGaXggZ2FwIGluIE1ha2VmaWxlCgoyMDEyLTAyLTIzIDA4OjQ4OjEwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgc3BlbGxpbmcgZml4CgoyMDExLTEyLTI2IDE2OjQ1OjIwIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGZpeCBzcGVsbGluZyBvZiB3cml0YWJsZQoKMjAxMi0wMi0yMyAxNTozMjozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgdXNlcl9kYXRhIHRvIEdzdE1hcEluZm8KCSAgQWRkIGV4dHJhIHBvaW50ZXJzIHRvIEdzdE1hcEluZm8gc28gdGhhdCBpbXBsZW1lbnRhdGlvbnMgY2FuIHVzZSB0aGVzZSB0byBzdG9yZQoJICBleHRyYSBpbmZvLgoKMjAxMi0wMi0yMyAxNTozMjoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGltcHJvdmUgZG9jcwoKMjAxMi0wMi0yMyAxMjowOTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJICBVcGRhdGUgTkVXUyBhbmQgUkVMRUFTRSBhcyB3ZWxsCgoyMDEyLTAyLTIzIDExOjU5OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHRyYW5zZm9ybSBsb2NrCgoyMDEyLTAyLTIzIDEwOjM2OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQnVtcCB2ZXJzaW9uIGFmdGVyIHJlbGVhc2VzCgoyMDEyLTAyLTIzIDExOjA4OjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgdHJhbnNmb3JtIGxvY2sKCSAgVGhpcyBpcyBub3QgbmVlZGVkIGFueW1vcmUgYnkgdGhlIGJhc2VjbGFzcy4gc3ViY2xhc3NlcyBzaG91bGQgZG8gdGhlaXIgb3duCgkgIGxvY2tpbmcgd2hlbiBuZWVkZWQuCgoyMDEyLTAyLTIzIDEwOjEyOjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogY2xlYW51cHMKCSAgQ2xlYW4gdXAgdGhlIHNldGNhcHMgZnVuY3Rpb24uCgkgIFRoZSBwYXNzdGhyb3VnaCB2YXJpYWJsZSBpcyBwcm90ZWN0ZWQgd2l0aCB0aGUgb2JqZWN0IGxvY2suCgoyMDEyLTAyLTIyIDE1OjI2OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBpbXByb3ZlIHByb3Bvc2VfYWxsb2NhdGlvbgoJICBBbHdheXMgY2FsbCB0aGUgcHJvcG9zZV9hbGxvY2F0aW9uIG1ldGhvZCBhbmQgcHJvdmlkZSBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KCSAgdGhhdCBwYXNzZXMgdGhlIHF1ZXJ5IG9uIGluIHBhc3N0aHJvdWdoIG1vZGUgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBhbHNvIGNhbGwKCSAgdGhpcy4gQWxzbyBwYXNzIGlmIHRoZSB0cmFuc2Zvcm0gaXMgaW4gcGFzc3Rocm91Z2ggbW9kZSBzbyB0aGF0IHRoZQoJICBpbXBsZW1lbnRhdGlvbiBjYW4gYWRqdXN0IGl0cyBhbGdvcml0aG0uCgoyMDEyLTAyLTIyIDEyOjI0OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnM6IGltcHJvdmUgZml4YXRlX2NhcHMgZnVuY3Rpb24KCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBhbHNvIGltcGxlbWVudCBub24taW5wbGFjZSBmaXhhdGUgZnVuY3Rpb25zLiBMZXQgdGhlIGZpeGF0ZQoJICBmdW5jdGlvbiBtYWtlIHRoZSBjYXBzIHdyaXRhYmxlIHdoZW4gbmVlZGVkIGJlY2F1c2Ugc29tZSBmaXhhdGUgZnVuY3Rpb25zIG1pZ2h0CgkgIG5vdCBuZWVkIHRvIG1vZGlmeSB0aGUgY2Fwcy4KCjIwMTItMDItMjIgMDI6MDI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgbWVtb3J5OiBtYWtlIF9uZXdfd3JhcHBlZCB0YWtlIHVzZXJfZGF0YSBhbmQgbm90aWZ5CgkgIE1ha2UgaXQgcG9zc2libGUgdG8gY29uZmlndXJlIGEgR0Rlc3Ryb3lOb3RpZnkgYW5kIHVzZXJfZGF0YSBmb3IKCSAgZ3N0X21lbW9yeV9uZXdfd3JhcHBlZCgpIHRoaXMgYWxsb3dzIGZvciBtb3JlIGZsZXhpYmxlIHdyYXBwaW5nIG9mIGZvcmVpZ24KCSAgbWVtb3J5IGJsb2Nrcy4KCjIwMTItMDItMDIgMTM6NDU6MjUgLTA1MDAgIFJ5YW4gTG9ydGllIDxkZXNydEBkZXNydC5jYT4KCgkqIGF1dG9nZW4uc2g6CgkgIGJ1aWxkOiBhdm9pZCB0b3VjaGluZyAucG8gZmlsZXMgZHVyaW5nICdtYWtlJwoJICBBIHNpbXBsZSB3b3JrYXJvdW5kIHRvIGRlYWwgd2l0aCBHTlUgZ2V0dGV4dCBhdXRvbWFrZSBpbnRlZ3JhdGlvbgoJICBmYWlsaW5nIHRvIGRlYWwgd2l0aCBnaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjkyMDcKCjIwMTItMDItMjEgMjE6MDY6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0LXNlbGVjdG9yOiBkZWZhdWx0IHRvIHN5bmMtc3RyZWFtcz10cnVlCgkgIEkgdGhpbmsgdGhpcyBpcyB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VyLCBhbmQgd2UgY291bGRuJ3QgZG8gdGhpcwoJICBpbiAwLjEwIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSByZWFzb25zLCBzbyBjaGFuZ2UgaXQgbm93LgoKMjAxMi0wMi0yMSAxNjozOTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkgIHRlc3RzOiBmaXggcXVldWUgdW5pdCB0ZXN0IGFmdGVyIHF1ZXVlIGNoYW5nZXMKCjIwMTItMDItMjEgMTY6Mzg6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgc29tZSBvbGQgY29kZQoKMjAxMi0wMi0yMSAxNjozNzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBoYW5kbGUgTlVMTCBjYWxsYmFja3MKCSAgV2hlbiB3ZSBoYXZlIGEgbWF0Y2hpbmcgTlVMTCBjYWxsYmFjaywgYWxzbyBjb25zaWRlciB0aGUgJ2NhbGxiYWNrJyBtYXJzaGFsbGVkLAoJICB0aGlzIHdheSBibG9ja2luZyBwcm9iZXMgd2l0aCBhIE5VTEwgY2FsbGJhY2sgYWN0dWFsbHkgd29yay4KCjIwMTItMDItMjEgMTI6NTI6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgd2VpcmQgbGluayBiZWhhdmlvdXIKCSAgUmVtb3ZlIHRoZSBsaW5rIGZ1bmN0aW9ucyBhbmQgYWx3YXlzIHN0YXJ0IHRoZSBwYWQgdGFzayBvbiB0aGUgc3JjcGFkLiBJZgoJICBhcHBsaWNhdGlvbnMgbmVlZCB0byBhdXRvcGx1ZyB0aGV5IGNhbiBwdXQgYSBibG9ja2luZyBwcm9iZSBvbiB0aGUgc3JjcGFkIGxpa2UKCSAgdGhleSB3b3VsZCB3aXRoIGFueSBvdGhlciBlbGVtZW50LgoKMjAxMi0wMi0yMSAxMjo1MjoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBoYW5kbGUgcHRzL2R0cwoKMjAxMi0wMi0yMSAxMjo0Njo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHJlbW92ZSBjdXN0b20gbWFyc2hhbGxlcgoKMjAxMi0wMi0yMSAxMjo0MzoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IGFsc28gZGVidWcgZHRzL3B0cwoKMjAxMi0wMi0yMSAxMjoxMzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IGRlYnVnIHB0cyBhbmQgZHRzCgoyMDEyLTAyLTIxIDEyOjEyOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogcmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVyCgoyMDExLTExLTI0IDE4OjQwOjQwICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBVbml0IHRlc3QgZm9yIHF1ZXVlIHNyYyBjYXBzIG5vdGlmaWNhdGlvbgoKMjAxMi0wMi0yMCAxNDozNzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkgIHRlc3RzOiBmaXggdXNlbGVzcyBzZWdtZW50IHRlc3QKCjIwMTItMDItMjAgMTQ6Mjk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBkb24ndCB1c2UgZHVyYXRpb24gaW4gY2xpcHBpbmcKCSAgRG9uJ3QgdXNlIHRoZSBkdXJhdGlvbiBpbiB0aGUgc2VnbWVudCBmb3IgY2FsY3VsYXRpbmcgY2xpcHBpbmcgdmFsdWVzLgoJICBUaGUgZHVyYXRpb24gaXMgZXhwcmVzc2VkIGluIHN0cmVhbSB0aW1lIGFuZCBjbGlwcGluZyBpcyBkb25lIG9uIHVucmVsYXRlZAoJICB0aW1lc3RhbXAgdmFsdWVzLgoJICBUaGlzIHVzZWQgdG8gYmUgaW50ZXJlc3RpbmcgZm9yIGVsZW1lbnRzIHRoYXQgdXNlZCB0aGUgc2VnbWVudCBzdHJ1Y3R1cmUgdG8KCSAgaW1wbGVtZW50IHNlZWtpbmcgYmVjYXVzZSB0aGVuIHRoZXkgd291bGQgdXNlIHN0cmVhbS10aW1lIGZvciB0aGUgc2VnbWVudAoJICBzdGFydC9zdG9wIHZhbHVlcyBhbmQgdGhlIGR1cmF0aW9uIGNvdWxkIGJlIHVzZWQgYXMgYSBmYWxsYmFjayB3aGVuIHRoZSBzdG9wCgkgIHBvc2l0aW9uIHdhcyBub3Qgc2V0LiBOb3cgdGhhdCB0aGUgY29tcGxldGUgc2VnbWVudCBldmVudCBpcyBwYXNzZWQgYmV0d2VlbgoJICBlbGVtZW50cyB3ZSBjYW5ub3QgZG8gdGhpcyBhbnltb3JlIGJlY2F1c2Ugc29tZSBlbGVtZW50cyBtaWdodCBzdG9yZSB0aGUKCSAgZHVyYXRpb24gYW5kIHN0YXJ0L3N0b3AgdmFsdWVzIHdpdGggZGlmZmVyZW50IHRpbWUgYmFzZXMgaW4gdGhlIHNlZ21lbnQuCgoyMDEyLTAyLTIwIDE0OjIyOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZGVidWcgc2VnbWVudCBkdXJhdGlvbiBhcyB3ZWxsCgoyMDEyLTAyLTIwIDExOjQ2OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGNvcHkgbWV0YWRhdGEgd2hlbiB1c2luZyBhIHBvb2wKCSAgYWxzbyBjb3B5IHRoZSBtZXRhZGF0YSB3aGVuIHdlIGFsbG9jYXRlZCBhIG5ldyBidWZmZXIgZnJvbSBhIHBvb2wKCjIwMTItMDEtMjYgMDM6MDI6NDggLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJICBuZXR0aW1lcGFja2V0OiBmaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nIGluIGRlYnVnIG1lc3NhZ2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDQ5MQoKMjAxMi0wMi0xOCAwMTowNDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggbW9yZSBkb2NzCgoyMDEyLTAyLTE3IDE1OjUzOjU4IC0wODAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmRAY29sbGFib3JhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGRvYyBmaXh1cHMKCjIwMTItMDItMTcgMTU6MDk6NTYgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1vdmUgdmFyaWFibGUgYW5kIGFzc2lnbm1lbnQgdG8gd2hlcmUgaXQncyBuZWVkZWQKCjIwMTItMDItMTcgMTU6MDk6MDYgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSByZXR1cm4gdmFsdWUgb2YgZGVjaWRlX2FsbG9jYXRpb24gdm1ldGhvZAoJICBJZiBpdCBmYWlscywgcHJvcGVybHkgcHJvcGFnYXRlIHRoZSBlcnJvcgoKMjAxMi0wMi0xNyAxNTowODozMiAtMDgwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IFJlbW92ZSB1c2VsZXNzIGFzc2lnbm1lbnQKCjIwMTItMDItMTcgMTU6MDc6NTYgLTA4MDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZEBjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBHcmFjZWZ1bGx5IGhhbmRsZSBOVUxMIEd2YWx1ZQoJICBBdm9pZHMgdW5yZWZlcmVuY2luZyBOVUxMIHBvaW50ZXIKCjIwMTItMDItMTggMDA6MDM6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBzb21lIGVycm9ycyBjcml0aWNhbAoJICBXaGVuIHdlIGhhdmUgbm8gY2hhaW4gZnVuY3Rpb24gb3Igd2hlbiB3ZSBhcmUgb3BlcmF0aW5nIHRoZSBwYWQgaW4gdGhlIHdyb25nCgkgIG1vZGUsIGVtaXQgYSBjcml0aWNhbCBpbnN0ZWFkIG9mIHBvc3RpbmcgYW4gZXJyb3IgbWVzc2FnZS4gVGhpcyBpcyBjZXJ0YWlubHkgYQoJICBwcm9ncmFtbWluZyBlcnJvciBhbmQgd2UgY2Fubm90IGFsd2F5cyBwb3N0IGEgbWVzc2FnZSAobGlrZSB3aGVuIHRoZSBwYWQgaGFzIG5vCgkgIHBhcmVudCkKCjIwMTItMDItMTggMDA6MDM6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBhbHNvIGRlYnVnIHBvc2l0aW9uIG9mIHNlZ21lbnQKCjIwMTItMDItMTcgMjM6NTk6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHdpbjMyOiBiYWNrIHRvIGRldmVsb3BtZW50CgoyMDEyLTAyLTE3IDExOjAyOjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTEuMiA9PT0KCjIwMTItMDItMTcgMTE6MDE6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vZ2wucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUkVMRUFTRSAwLjExLjIKCjIwMTItMDItMTUgMTc6MTI6MDkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB0d2VhayBzb21lIGRvY3VtZW50YXRpb24KCjIwMTItMDItMTUgMTc6MTE6NTQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBzaW1wbGlmeSBhbmQgaW1wcm92ZSBmcmFtZSBzdGF0ZSBoYW5kbGluZwoJICBVc2UgYSBmcmFtZSBmbGFnIHRvIHNpZ25hbCB0byBzdWJjbGFzcyBpdCBzaG91bGQgcmVzZXQgYW55IHJldGFpbmVkCgkgIHN0YXRlIHcuci50LiBmcmFtZSBwYXJzaW5nIHNpbmNlIHRoZSBmcmFtZSBiZWluZyBwYXNzZWQgaXMgJ25ldycsCgkgIGkuZS4gbm90IHJlbGF0ZWQgdG8gcHJldmlvdXNseSBwYXNzZWQgYW5kIHByb2Nlc3NlZCBkYXRhLgoKMjAxMi0wMi0xNSAxMzoxNTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgbGVhayBldmVudAoJICBJbiB0aGUgdW5saWtlbHkgY2FzZSB3aGVyZSB0aGUgc3ViY2xhc3Mgc2V0IHRoZSBldmVudCBmdW5jdGlvbiB0byBOVUxMLCBkb24ndAoJICBsZWFrIHRoZSBldmVudC4KCjIwMTItMDItMTUgMTI6MTk6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2UgYWN0aXZhdGlvbiBjb2RlIG1vcmUgbGlrZSBvdGhlcgoJICBNYWtlIHRoZSBwYWQgYWN0aXZhdGlvbiBjb2RlIGxvb2sgbW9yZSBsaWtlIG90aGVyIGFjdGl2YXRpb24gY29kZS4KCSAgT25seSBzdGFydCB0aGUgc2lua3BhZCB0YXNrIHdoZW4gd2UgZGVjaWRlIHRvIGFjdGl2YXRlIGluIHB1bGwgbW9kZSwgd2hlbiB3ZQoJICBsYXRlciBhZGQgc3JjcGFkIHB1bGxtb2RlIHRoaXMgd2lsbCBiZSBuZWVkZWQuCgoyMDEyLTAyLTE1IDEyOjE4OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogYWRkIG1vcmUgZGVidWcKCjIwMTItMDItMTUgMTE6MTE6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTItMDItMTUgMTA6NTg6MDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0cmFjayBjb25zdW1lZCBpbnB1dCBzaXplCgkgIC4uLiBhcyB1c2VkIGJ5IHN1YnNlcXVlbnQgaW5wdXQgZGF0YSByYXRlIGVzdGltYXRpb24gKGFuZCBzZWVraW5nKS4KCjIwMTItMDItMTUgMTA6MTE6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGNoYWluIHVwIHRvIHBhcmVudCBmb3IgZGVmYXVsdHMKCSAgQ2hhaW4gdXAgdG8gdGhlIHBhcmVudCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBGQUxTRSByZXR1cm4gdmFsdWUgZnJvbSB0aGUgZXZlbnQKCSAgZnVuY3Rpb24gKGJlY2F1c2UgaXQncyBvdGhlcndpc2UgaW1wb3NzaWJsZSB0byByZXR1cm4gYW4gZXJyb3IpLgoKMjAxMi0wMi0xNSAxMDoxMDo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCBpZ25vcmUgcmV0dXJuIHZhbHVlIHdoZW4gc3RhcnRpbmcgYSB0YXNrCgoyMDEyLTAyLTE0IDIwOjE3OjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogUmV2ZXJ0ICJiYXNlcGFyc2U6IHJlYWxseSBwcm92aWRlIHVwc3RyZWFtIHRzIHRvIHN1YmNsYXNzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDIzNjM0OTBlZjVhOWZlOGQ0MTQzNjlkMjRmY2FhNjVhOWRmYTgzYWMuCgoyMDEyLTAyLTE0IDE5OjMzOjUwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGRlYWQgY29kZSBhbmQgc3VwZXJmbHVvdXMgbG9vcCBsZXZlbAoKMjAxMi0wMi0xNCAxOTozMzo0NiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1vZGlmeSByZXZlcnNlIHBsYXliYWNrIGhhbmRsaW5nCgkgIC4uLiBzbyBhcyB0byBhbGxvdyB0aGUgcHVzaC1tb2RlIGNhc2UgdG8gcHJvdmlkZSBkYXRhIHRvIHN1YmNsYXNzCgkgIG9uIGEgYnVmZmVyIGJ5IGJ1ZmZlciBiYXNpcyAoYXMgaW4gcmVndWxhciBmb3J3YXJkIGNhc2UpLCByYXRoZXIKCSAgdGhhbiBhbGwgYnVmZmVycyBvZiBhIGZyYWdtZW50IGNodWNrZWQgdG9nZXRoZXIuCgkgIEFsc28gcmVmYWN0b3IgYnVmZmVyIGhhbmRsaW5nIHNvbWUgbW9yZSwgYW5kIGFkZCBzb21lIGRlYnVnLgoKMjAxMi0wMi0xNCAxOTozMzozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlYWxseSBwcm92aWRlIHVwc3RyZWFtIHRzIHRvIHN1YmNsYXNzCgoyMDEyLTAyLTE0IDEzOjI0OjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGNsZWFuIHVwIHNyYyBxdWVyeSBoYW5kbGVyCgoyMDEyLTAyLTE0IDEyOjU3OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IHBhc3MgcmVzdWx0cyBmcm9tIGFjdGl2YXRpb24KCjIwMTItMDItMTQgMTA6MzU6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAyLTE0IDEwOjMwOjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDItMTMgMTg6MjI6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtb2RpZnkgQVBJIHRvIGEgX2ZpbmlzaF9mcmFtZSBiYXNlZCBhcHByb2FjaAoJICAuLi4gd2hpY2ggYWxpZ25zIGl0IHdpdGggb3RoZXIgYmFzZWNsYXNzIGluIHRoZSB3aWxkLCBhbmQgc2hvdWxkIGdpdmUKCSAgY29udmVydGVyIHBhcnNlcnMgYSBiaXQgY2xlYW5lciBmcmVlZG9tLgoKMjAxMi0wMi0xMyAxODowOTo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCByZXZlcnNlIHBsYXliYWNrCgkgIC4uLiBlc3BlY2lhbGx5IGZvciBhbGwta2V5ZnJhbWUgKGF1ZGlvKSBjYXNlcy4KCjIwMTItMDItMTMgMTY6MzM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBtb3JlIHdvcmsgb24gcmVmY291bnQgYW5kIHdyaXRhYmlsaXR5CgkgIFJlbmFtZSBfaXNfd3JpdGFibGUoKSB3aXRoIF9pc19leGNsdXNpdmUgYmVjYXVzZSB0aGUgd3JpdGFiaWxpdHkgZG9lcyBub3QgZGVwZW5kCgkgIG9uIHRoZSBhbW91bnQgb2YgcmVmZXJlbmNlcyB0byB0aGUgbWVtb3J5IG9iamVjdCBhbnltb3JlLgoJICBBZGQgYWNjZXNzb3IgbWFjcm9zIGZvciB0aGUgbWVtb3J5IGZsYWdzLgoJICBSZW5hbWUgdGhlIEdzdEJ1ZmZlciBfcGVla19tZW1vcnkoKSBtZXRob2QgdG8gX2dldF9tZW1vcnkoKSBhbmQgcmV0dXJuIGEKCSAgcmVmZXJlbmNlIHRvIHRoZSBtZW1vcnkgbm93IHRoYXQgd2UgY2FuIGRvIHRoaXMgd2l0aG91dCBhZmZlY3Rpbmcgd3JpdGFiaWxpdHkKCSAgb2YgdGhlIG1lbW9yeSBvYmplY3QuIE1ha2UgaXQgcG9zc2libGUgdG8gYWxzbyBtYWtlIHRoaXMgZnVuY3Rpb24gbWVyZ2UgdGhlCgkgIGJ1ZmZlciBtZW1vcnkuCgkgIEFkZCBtZXRob2RzIHRvIHJlcGxhY2UgbWVtb3J5IGluIGEgYnVmZmVyLiBNYWtlIHNvbWUgY29udmllbmNlIG1hY3JvcyBmb3IgdGhlCgkgIGJ1ZmZlciBtZW1vcnkgZnVuY3Rpb25zLgoJICBGaXggdW5pdCB0ZXN0cy4KCjIwMTItMDItMTMgMTc6MjI6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUKCjIwMTItMDItMTMgMTU6MTg6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBmaXggdHlwb3MKCjIwMTItMDItMTIgMjE6MTc6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBkb2NzOiBhZGQgYSBwYXJhZ3JhcGggYWJvdXQgdGhlIFNUUkVBTSBDT05GSUcgZXZlbnQgdG8gdGhlIGRlc2lnbiBkb2NzCgoyMDEyLTAyLTEyIDIxOjA0OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IG1ha2UgX3BhcnNlX250aF9zdHJlYW1fY29uZmlnX2hlYWRlcigpIGFuZCBfcGFyc2Vfc2V0dXBfZGF0YSgpIHJldHVybiBhIGJvb2xlYW4KCSAgQXMgdGhleSBjYW4gZmFpbCAob25seSBvbmUgb2Ygc3RyZWFtIGhlYWRlcnMgb3Igc2V0dXAgZGF0YQoJICBpcyB1c3VhbGx5IHByZXNlbnQpLgoKMjAxMi0wMi0xMiAyMDo1MTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiByZW5hbWUgZ3N0X2V2ZW50X3tzZXQscGFyc2V9X3N0cmVhbV9jb25maWdfY29kZWNfZGF0YSgpIHRvIF9zZXR1cF9kYXRhKCkKCSAgTW9yZSBnZW5lcmljLgoKMjAxMi0wMi0xMCAxNTowMzowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDItMTAgMTQ6NTg6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGNsZWFuIHVwIG9iamVjdCBpbml0CgkgIE1ha2UgYW4gX2luaXQgbWV0aG9kIHdoZXJlIHRoZSBwYXJlbnQgbWluaS1vYmplY3QgYW5kIG90aGVyIGZpZWxkcyBhcmUKCSAgaW5pdGlhbGl6ZWQuCgkgIENoZWNrIHRoYXQgdGhlIHBhc3NlZCBzdHJ1Y3R1cmUgZG9lc24ndCBhbHJlYWR5IGhhdmUgYSBwYXJlbnQuCgkgIFVzZSB0aGUgX25ld19jdXN0b20gKCkgY29uc3RydWN0b3JzCgoyMDEyLTAyLTA3IDExOjI4OjQxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYml0cmF0ZSBtZWNoYW5pY3Mgc2hvdWxkIG5vdCBkZWFsIHdpdGggZHVyYXRpb24gdXBkYXRlCgkgIC4uLiBzaW5jZSB0aGF0IGlzIGFscmVhZHkgaGFuZGxlZCBieSBfdXBkYXRlX2R1cmF0aW9uLCBvciBzaG91bGQgbm90IGJlIGRvbmUKCSAgYWx0b2dldGhlciBpZiB0aGUgZHVyYXRpb24gaXMgZGV0ZXJtaW5lZCBieSBub24tZXN0aW1hdGVkIG1lYW5zLgoJICBGaXhlcyAjNjY5NTAyLgoKMjAxMi0wMi0xMCAxMjo0NTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIGRvY3M6IHB1c2hfZXZlbnQgZG9lc24ndCByZXR1cm4gYSBmbG93IHZhbHVlIGFmdGVyIGFsbAoKMjAxMi0wMi0xMCAxMjowNToxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzaWxlbmNlIHByb2JlIGRlYnVnIGEgbGl0dGUKCjIwMTItMDItMTAgMTE6MjQ6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBpbXBsZW1lbnQgZmFzdGVyIEFDQ0VQVF9DQVBTIHF1ZXJ5CgoyMDEyLTAyLTEwIDExOjA5OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3Q6IGFkZCBzb21lIHBlcmZvcm1hbmNlIGxvZ2dpbmcKCSAgQWRkIHNvbWUgcGVyZm9ybWFuY2UgbG9nZ2luZyBmb3IgY2FwcyBjb3B5IGFuZCB0aGUgc2xvdyBkZWZhdWx0IGFjY2VwdGNhcHMKCSAgaW1wbGVtZW50YXRpb24KCjIwMTItMDEtMTQgMTk6MTY6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1tZXRhZGF0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZ21lbnRzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGRvY3M6IHVwZGF0ZSBhbmQgaW1wcm92ZSBkb2NzCgoyMDEyLTAyLTA5IDAwOjE0OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiByZW1vdmUgZ3N0X2VsZW1lbnRfY2xhc3NfaW5zdGFsbF9zdGRfcHJvcHMoKQoJICBJdCdzIG9ubHkgdXNlZCBpbiBvbmUgcGxhY2UgKHJ0bXApLCBhbmQgdGhlcmUgbm90IHZlcnkgd2VsbC4KCjIwMTItMDItMDggMjM6NDc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBmYWtlc3JjLCBpZGVudGl0eSwgZmFrZXNpbms6IGRvIG5vdCBnZW5lcmF0ZSBsYXN0LW1lc3NhZ2UgdXBkYXRlcyBieSBkZWZhdWx0CgkgIERlZmF1bHQgdG8gbm90IGNyZWF0aW5nIGxvdHMgb2Ygb3ZlcmhlYWQgYnkgZG9pbmcgYSBjb3VwbGUgb2YKCSAgZ19zdHJkdXBfcHJpbnRmKCkvZ19mcmVlKCkgcGVyIGJ1ZmZlciBvciBldmVudCBqdXN0IHRvIGdlbmVyYXRlCgkgIGEgbGFzdC1tZXNzYWdlIHVwZGF0ZSB0aGF0IHJhcmVseSBhbnlvbmUgbGlzdGVucyB0by4gVGhpcyBtZWFucwoJICB0aGF0IHlvdSBuZWVkIHRvIGVuYWJsZSBzaWxlbnQ9dHJ1ZSBleHBsaWNpdGx5IGluIG9yZGVyIHRvIGdldAoJICBsYXN0LW1lc3NhZ2UgZHVtcHMgaW4gZ3N0LWxhdW5jaCAtdiBub3cuIE9uIHRoZSB1cHNpZGUsIHBlb3BsZQoJICB3b24ndCBpbmFkdmVydGVudGx5IGVuZCB1cCBiZW5jaG1hcmtpbmcgZ19zdHJkdXBfcHJpbnRmKCkKCSAgcGVyZm9ybWFuY2UgaW5zdGVhZCBvZiBnc3RyZWFtZXIgZGF0YSBoYW5kbGluZyBwZXJmb3JtYW5jZSBhbnkKCSAgbW9yZS4KCSAgTWF5YmUgdGhlIHNpbGVudCBwcm9wZXJ0eSBzaG91bGQgYmUgcmVuYW1lZCB0byBlbmFibGUtbGFzdC1tZXNzYWdlCgkgIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQ/CgoyMDEyLTAyLTA4IDE1OjE2OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuaDoKCSAgR1NUX0ZMT1dfV1JPTkdfU1RBVEUgLT4gR1NUX0ZMT1dfRkxVU0hJTkcKCjIwMTItMDItMDggMTU6MzQ6MjggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogdXNlIGRlZmF1bHQgcXVlcnkgZnVuY3Rpb24gdG8gb3B0aW9uYWxseSBmb3J3YXJkIHF1ZXJ5CgkgIC4uLiByYXRoZXIgdGhhbiBxdWVyeWluZyBwZWVyIHVuY29uZGl0aW9uYWxseSB3aXRoIHBvc3NpYmx5IHVuZGVzaXJhYmxlCgkgIG91dGNvbWUgaW4gY2FzZSBvZiBlLmcuIFNDSEVEVUxJTkcgcXVlcnkuCgoyMDEyLTAyLTA4IDE1OjAzOjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xlYW4gdXAgYSBmZXcgbWlub3IgZXh0cmFuZW91cyB0b2tlbnMKCjIwMTItMDItMDcgMTI6NDg6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgY2xvc2luZyBzZWdtZW50IGhhbmRsaW5nCgoyMDEyLTAyLTA4IDE0OjQ1OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMi0wMi0wOCAxNDozMjowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBmaXggcmFjZSBpbiBwYWQgbW9kZSBjaGFuZ2UKCSAgRml4ZXMgIzY2ODkwOSBhbmQgcHJlc3VtYWJseSBhbHNvICM2Njk0ODMKCjIwMTItMDItMDggMTI6NTc6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZXJyb3Igd2hlbiBhY3RpdmF0aW9uIG1vZGUgaXMgd3JvbmcKCSAgUG9zdCBhbiBlcnJvciB3aGVuIHdlIHRyeSB0byBwdXNoIG9uIGEgcGFkIGFjdGl2YXRlZCBpbiBwdWxsIG1vZGUgYW5kIHB1bGwgb24gYQoJICBwYWQgaW4gcHVzaCBtb2RlLgoKMjAxMi0wMi0wOCAwOTozMDowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIG1ldGhvZCBkZWNsYXJhdGlvbiB0b28KCjIwMTItMDItMDcgMTM6NDE6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiByZW1vdmUgdW5pbXBsZW1lbnRlZCBzdGF0cyBwcm9wZXJ0eSB3aGlsZSB3ZSBjYW4KCjIwMTItMDItMDcgMTA6NDQ6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogcmVtb3ZlIGN1c3RvbSBtYXJzaGFsbGVyCgkgIFJlbW92ZSBvdXIgY3VzdG9tIG1hcnNoYWxsZXIuCgkgIE1ha2UgdGhlIGJ1ZmZlciBpbiB0aGUgaGFuZG9mZiBzaWduYWwgc3RhdGljX3Njb3BlIHNvIHRoYXQgaXQgaXMgYWN0dWFsbHkKCSAgd3JpdGFibGUuCgoyMDEyLTAyLTA2IDA5OjQ2OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTItMDEtMDQgMTc6MTA6MTUgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZml4IGNvbXBpbGF0aW9uIHdpdGggLS1kaXNhYmxlLXJlZ2lzdHJ5CgkgIF9fcmVnaXN0cnlfcmV1c2VfcGx1Z2luX3NjYW5uZXIgaXMgb25seSBkZWZpbmVkIHdoZW4KCSAgR1NUX0RJU0FCTEVfUkVHSVNUUlkgaXMgbm90IGRlZmluZWQuCgkgIGdzdHJlZ2lzdHJ5LmM6IEluIGZ1bmN0aW9uICdnc3RfcmVnaXN0cnlfc2Nhbl9wbHVnaW5fZmlsZSc6CgkgIGdzdHJlZ2lzdHJ5LmM6MTEzMTo4OiBlcnJvcjogJ19fcmVnaXN0cnlfcmV1c2VfcGx1Z2luX3NjYW5uZXInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg0CgoyMDEyLTAyLTAyIDE3OjE4OjIyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZXNldCB0aGUgRU9TIGRldGVjdGlvbiBtYWNoaW5lcnkgYWZ0ZXIgc2VuZGluZyBhbiBFT1MgbWVzc2FnZQoJICBUaGlzIHdpbGwgYWxsb3cgZGV0ZWN0aW5nIGZ1cnRoZXIgRU9TLCBmb3IgaW5zdGFuY2UgYWZ0ZXIgbG9vcGluZwoJICBhIHN0cmVhbSB3aXRob3V0IGNoYW5naW5nIHN0YXRlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODI4OQoKMjAxMi0wMS0wNyAyMzowMDoxMiAtMDUwMCAgUnlhbiBMb3J0aWUgPGRlc3J0QGRlc3J0LmNhPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogYWxsb3cgY2FsbGluZyBmcm9tIG91dC1vZi10cmVlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc2NjQKCjIwMTItMDItMDIgMTY6NTk6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IHByaW50IGNhcHMgaW4gZHVtcAoKMjAxMi0wMi0wMiAxNjowNDoxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTItMDItMDIgMTU6NTc6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogYWRkIGRlYnVnIGFuZCB0cmFjZSBmb3IgR3N0TWVtb3J5CgoyMDEyLTAyLTAyIDE1OjU1OjQ0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGRvbid0IGNoZWNrIHJhbmRvbSBwb2ludGVycyBmb3Igb2JqZWN0cwoJICBPbmx5IHNlZSBpZiB0aGUgdHJhY2VkIHBvaW50ZXIgaXMgYSBHT2JqZWN0IHdoZW4gaXQgd2FzIHJlZ2lzdGVyZWQgd2l0aCB0aGUKCSAgc3BlY2lhbCBvZmZzZXQgb2YgLTIuCgoyMDEyLTAyLTAyIDE1OjU0OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIFVwZGF0ZSBkZWJ1ZyBjYXRlZ29yaWVzCgkgIFJlbW92ZSBzb21lIGNhdGVnb3JpZXMgbWFya2VkIGZvciBkZWxldGlvbi4KCSAgQWRkIGEgY2F0ZWdvcnkgZm9yIEdzdE1lbW9yeS4KCjIwMTItMDItMDIgMTU6NTI6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RzYW1wbGUuaDoKCSAgcmVtb3ZlIFRSQUNFX05BTUUgZnJvbSBoZWFkZXJzCgoyMDEyLTAyLTAyIDEzOjE3OjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGFkZCBuZXcgdGVzdAoKMjAxMi0wMi0wMiAxMzoxNToyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgZGVudGl0eTogcmVtb3ZlIHByZXBhcmVfb3V0cHV0X2J1ZmZlcgoJICBDb3JyZWN0bHkgbWFyayBwYXNzdGhyb3VnaCBvbiB0aGUgYmFzZWNsYXNzIHNvIHRoYXQgaXQgY2FuIGNvcnJlY3RseSBkbyB0aGUKCSAgYWxsb2NhdGlvbiBvZiB0aGUgb3V0cHV0IGJ1ZmZlcnMuCgkgIFJlbW92ZSBvdXIgY3VzdG9tIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBmdW5jdGlvbiBub3cgdGhhdCB0aGUgYmFzZWNsYXNzIGlzCgkgIHNtYXJ0ZXIuCgoyMDEyLTAyLTAyIDEzOjEwOjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGltcHJvdmUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIENsZWFuIHVwIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZnVuY3Rpb24uCgkgIFJldXNlIHRoZSBpbnB1dCBidWZmZXIgd2hlbiBpdCBpcyB3cml0YWJsZSBhbmQgd2hlbiBkb2luZyBhbgoJICBpbi1wbGFjZSBidXQgbm9uLXBhc3N0aHJvdWdoIHRyYW5zZm9ybS4KCSAgTW92ZSB0aGUgY29weS1tZXRhZGF0YSBmdW5jdGlvbiBjYWxsIHRvIHRoZSBwcmVwYXJlX291dHB1dF9idWZmZXIgZGVmYXVsdAoJICBmdW5jdGlvbi4gSWYgc3ViY2xhc3NlcyBpbXBsZW1lbnQgYSBjdXN0b20gcHJlcGFyZV9vdXRwdXRfYnVmZmVyLCB0aGV5IG11c3QgYWxzbwoJICBjb3B5IHRoZSBtZXRhZGF0YSB0aGVtc2VsdmVzLgoJICBSZW1vdmUgYSB1c2VsZXNzIG1lbW9yeSBjb3B5IGJlY2F1c2UgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGFscmVhZHkgZGlkIHRoYXQuCgoyMDEyLTAyLTAyIDEyOjMyOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogb25seSBtYXAgd2hlbiB1c2luZyB0aGUgbWVtb3J5CgoyMDEyLTAyLTAyIDEyOjMyOjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcGx1Z2luczogcHJveHkgYWxsb2NhdGlvbiBxdWVyeQoKMjAxMi0wMi0wMiAxMjozMDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBzaW1wbGlmeSBjb2RlCgkgIFdlIGFscmVhZHkgY2hlY2tlZCBwYXNzdGhyb3VnaCBhIGZldyBsaW5lcyBhYm92ZS4KCjIwMTItMDItMDIgMTI6MDc6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgc29tZSBwZXJmb3JtY2UgZGVidWcgaW5mbwoJICBBZGQgc29tZSBQRVJGT1JNQU5DRSBkZWJ1ZyBsaW5lcyB3aGVyZSB3ZSBjb3B5IGFuZCBkbyBvdGhlciBzdWJvcHRpbWFsIHRoaW5ncy4KCjIwMTItMDItMDIgMTI6MDU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgZmxhZyB0byBwcm94eSBhbGxvY2F0aW9uIHF1ZXJ5CgkgIEFkZCBhIGZsYWcgdG8gZm9yY2UgdGhlIGRlZmF1bHQgcXVlcnkgaGFuZGxlciB0byBmb3J3YXJkIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5CgkgIGluc3RlYWQgb2YgZGlzY2FyZGluZyBpdC4KCSAgUmVvcmRlciB0aGUgcGFkIGZsYWdzIGEgYml0LgoKMjAxMi0wMi0wMiAwMTozMDoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IHBhc3MgZXh0ZW5zaW9ucyBhcyBjb21tYS1zZXBhcmF0ZWQgbGlzdCBpbiBhIHNpbXBsZSBzdHJpbmcKCSAgRml4IGFubm95aW5nIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIoKSBmdW5jdGlvbiBzaWduYXR1cmUuIEEgc2ltcGxlCgkgIHN0cmluZyB3aXRoIGNvbW1hLXNlcGFyYXRlZCBleHRlbnNpb25zIHdvcmtzIGp1c3QgYXMgd2VsbCBhbmQgc2F2ZXMKCSAgbGluZXMgb2YgY29kZSwgY2FzdHMsIHJlbG9jYXRpb25zIGFuZCB1bHRpbWF0ZWx5IGtpdHRlbnMuCgoyMDEyLTAxLTMxIDE3OjQxOjEzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCByYWNlIGluIHN0YXJ0dXAKCSAgTWFyayByZW5lZ290aWF0ZSBiZWZvcmUgc3RhcnRpbmcgdGhlIHB1c2hpbmcgdGhyZWFkLgoJICBEbyBhbHNvIGNoZWNrIGlmIHdlIGFyZSBzdGFydGluZyBpbiB0aGUgZ2V0X3JhbmdlIGZ1bmN0aW9uLgoKMjAxMi0wMS0zMSAxNjoyNzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGRvbid0IGNyYXNoIG9uIG1pc3NpbmcgdGVtcGxhdGUKCSAgU29tZSByZXF1ZXN0IHBhZHMgZG9uJ3QgaGF2ZSBhIHBhZHRlbXBsYXRlIChtb3N0bHkgdGhvc2UgZnJvbSBlbmNvZGViaW4pLiBBdm9pZAoJICBjcmFzaGluZyBpbiB0aGlzIGNhc2UuCgoyMDEyLTAxLTMxIDEyOjIwOjQxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvdGV4dC1jb2xvci1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IGNvbnN0cnVjdHVyZXMgZm9yIGNvbnRyb2wgc291cmNlcyByZXR1cm4gR3N0Q29udHJvbFNvdXJjZQoJICBEb24ndCByZXR1cm4gdGhlIHNwZWNpZmljIHR5cGVzLiBJbiBtb3N0IGNhc2VzIHRoZXJlIGlzIG5vIHNwZWNpZmljIGFwaSB0aGVyZQoJICBhbnl3YXkuCgoyMDEyLTAxLTMxIDEyOjEwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBkb24ndCBkbyBsb2dpYyBpbiBnX2Fzc2VydC4uLgoKMjAxMi0wMS0zMCAxOToxNzowMCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RhcmdiY29udHJvbGJpbmRpbmcuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0Lmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0ZGlyZWN0Y29udHJvbGJpbmRpbmcuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RkaXJlY3Rjb250cm9sYmluZGluZy5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL3RleHQtY29sb3ItZXhhbXBsZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGNvbnRyb2xsZXI6IHJlbmFtZSBjb250cm9sLWJpbmRpbmdzCgkgIGdzdF9jb250cm9sX2JpbmRpbmdfeHh4IC0+IGdzdF94eHhfY29udHJvbF9iaW5kaW5nIGZvciBjb25zaXN0ZW5jeS4KCjIwMTItMDEtMzAgMTQ6NDg6NDQgLTAyMDAgIEpvw6NvIFBhdWxvIFBpemFuaSBGbG9yIDxqb2FvcGl6YW5pQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RwcmVzZXQuaDoKCSAgRml4ZXMgdGhlIGxhY2sgb2YgYW4gaW5jbHVkZSBkaXJlY3RpdmUgaW4gZ3N0L2dzdHByZXNldC5oCgkgIEl0IGJsb2NrZWQgdGhlIGJ1aWxkIG9mIGV4dGVybmFsIGxpYnJhcmllcyBkZXBlbmRpbmcgb24gZ3N0cmVhbWVyLWNvcmUgKG5hbWVseSwgZ3N0cmVhbWVybW0pLgoJICBDb21wbGV0ZSBidWcgcmVwb3J0IGF0IGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjkwMzYKCjIwMTItMDEtMzAgMTg6MTc6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sc291cmNlOiBzaW5rIHRoZSBmbG9hdGluZyByZWYKCSAgY29udHJvbCBzb3VyY2VzIGNhbiBiZSB1c2VkIG9uIHNldmVyYWwgY29udHJvbCBiaW5kaW5ncy4KCjIwMTItMDEtMzAgMTc6MTU6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjsgcmVtb3ZlIElOX0NBUFMgYnVmZmVyIGZsYWcKCSAgVGhlIElOX0NBUFMgYnVmZmVyIGZsYWcgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggdGhlIEhFQURFUgoJICBmbGFnLgoKMjAxMi0wMS0zMCAxNjowOTowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOyB1cGRhdGUgZm9yIG5ldyBhcGkKCjIwMTItMDEtMzAgMTU6NTk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgcXVlcnk6IHBhc3MgYWxsb2NhdG9yIGluIHF1ZXJ5CgkgIFBsYWNlIHRoZSBhbGxvY2F0b3Igb2JqZWN0IGluIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5IGluc3RlYWQgb2YgdGhlIG5hbWUuIFRoaXMKCSAgYWxsb3dzIHVzIHRvIGV4Y2hhbmdlIGFsbG9jYXRvcnMgdGhhdCBhcmUgbm90IGluIHRoZSBnbG9iYWwgcG9vbCBvZiBhbGxvY2F0b3JzLgoJICBVcGRhdGUgZWxlbWVudHMgZm9yIHRoZSBuZXcgYXBpCgoyMDEyLTAxLTMwIDE1OjU3OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIG1lbW9yeSB0eXBlCgkgIEFkZCBtZW1vcnkgdHlwZSB3aGVuIHJlZ2lzdGVyaW5nIG1lbW9yeSBhbGxvY2F0b3JzLiBBZGQgZ2V0dGVyIGZvciB0aGUgbWVtb3J5CgkgIHR5cGUuCgoyMDEyLTAxLTI5IDIyOjU4OjUxICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIHZhbHZlOiBSZXB1c2ggc3RpY2t5IGV2ZW50cyBhZnRlciBkaXNhYmxpbmcgZHJvcHBpbmcKCjIwMTItMDEtMzAgMTM6Mjg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgYm94ZWQgR1R5cGUgZm9yIHRoZSBhbGxvY2F0b3IKCjIwMTItMDEtMzAgMTM6MDI6MTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogbWFrZSB0aGUgYWxsb2NhdG9yIHJlZmNvdW50ZWQKCSAgQWRkIHJlZmNvdW50aW5nIHRvIHRoZSBHc3RBbGxvY2F0b3Igb2JqZWN0LgoJICBSZW1vdmUgY29uc3QgZnJvbSBmdW5jdGlvbnMgYmVjYXVzZSB0aGUgYWxsb2NhdG9yIGlzIHJlZmNvdW50ZWQgbm93LgoJICBSZW5hbWUgdGhlIHZtZXRob2RzIGZvciBjb25zaXN0ZW5jeQoJICBFeHBvc2UgdGhlIGNvbnN0cnVjdG9yIGZvciBHc3RBbGxvY2F0b3IgYW5kIGFkZCBhIGRlc3Ryb3kgbm90aWZ5IGZvciB0aGUKCSAgdXNlcl9kYXRhLiBUaGlzIHNob3VsZCBtYWtlIGl0IHBvc3NpYmxlIHRvIGNyZWF0ZSBhbGxvY2F0b3JzIHRoYXQgYXJlIG5vdAoJICByZWdpc3RlcmVkIGFuZCBzaGFyZWQgZ2xvYmFsbHkgYWxvbmcgd2l0aCB0aGUgcG9zc2liaWxpdHkgdG8gZGVzdHJveSB0aGVtCgkgIHByb3Blcmx5LgoJICBVcGRhdGUgZGVmcyB3aXRoIG5ldyBzeW1ib2xzLgoKMjAxMi0wMS0zMCAxMDozMDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZm9yIGdhcCBldmVudAoKMjAxMi0wMS0zMCAxMDowNzo1MSArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbG5AaWdhbGlhLmNvbT4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJICBjb3JlOiBkb24ndCBzaGlwIGdzdHRyYWNlLmggcHJpdmF0ZSBoZWFkZXIKCSAgSW5jbHVkZSBpdCBleHBsaWNpdGVseSBpbiBnc3QuYyBhbmQgbm8gbG9uZ2VyIGluY2x1ZGUgaXQgaW4gZ3N0LmguCgkgIFRoYXQgaGVhZGVyIHdhcyBtYWRlIHByaXZhdGUgaW4gMTk2OWI5NDI2N2I0ZjM3N2VhMjY2Mzg3NmFlODcyMDcxNzg4OTY5My4KCjIwMTItMDEtMjggMTg6NTA6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiByZXF1aXJlIGEgdmFsaWQgZHVyYXRpb24gZm9yIHRoZSBHQVAgZXZlbnQKCjIwMTItMDEtMjggMTg6NDk6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlZiBuZXcgZW51bSB0eXBlIGluIGdzdF9pbml0KCkKCjIwMTItMDEtMjcgMTg6NTc6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGRvY3M6IGFkZCBzb21lIChvdXQpIGFubm90YXRpb25zIGZvciBzdHJlYW0gY29uZmlnIHBhcnNlciBmdW5jdGlvbnMKCjIwMTItMDEtMjcgMTg6NTY6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogYWRkIGNvbnN0cnVjdG9yIGFuZCBwYXJzZSBmdW5jdGlvbiBmb3IgbmV3IEdBUCBldmVudAoJICAoV2hhdGV2ZXIgeW91IGRvLCBkb24ndCBtZW50aW9uIHRoZSBmaWxsZXIgZXZlbnQuKQoKMjAxMi0wMS0yNyAxODozNzoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogR1NUX0VWRU5UX1NUUkVBTV9DT05GSUcgaXMgaW1wbGVtZW50ZWQgbm93CgoyMDEyLTAxLTI3IDE3OjU3OjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gY29kZWMgZGF0YSAvIHN0cmVhbSBoZWFkZXIgY2hhbmdlIGluIHBvcnRpbmcgZG9jcwoKMjAxMi0wMS0yOCAxNDozNTo1MSArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJICBVc2UgbWFjcm9zIHRvIHJlZ2lzdGVyIGJveGVkIHR5cGVzIHRocmVhZCBzYWZlbHkKCjIwMTItMDEtMjggMDg6Mzg6MDMgKzAxMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogVXBkYXRlIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyIHRvIDAuMTEgc3R5bGUgY2FwcwoJICBQYXNzIHRoZSBkZXNpcmVkIGNhcHMgZXhwbGljaXRlbHkKCjIwMTItMDEtMjcgMTk6MDA6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IEZpeCBtZW1vcnkgbGVhawoKMjAxMi0wMS0yNyAxODo1Mzo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogRG9uJ3QgdW5yZWYgcGx1Z2luIGZlYXR1cmVzIG11bHRpcGxlIHRpbWVzCgkgIGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2ZyZWUoKSB1bnJlZnMgdGhlbSB0b28uCgoyMDEyLTAxLTI3IDE3OjUwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgc3RyZWFtIGNvbmZpZyBmdW5jdGlvbnMgdG8gZG9jcwoKMjAxMi0wMS0yNyAxNzo0OTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICB0ZXN0czogZml4IHNpbXBsZS1sYXVuY2gtbGluZXMgY29tcGlsYXRpb24KCSAgRG9uJ3QgdXNlIHJlbW92ZWQgQVBJLgoKMjAxMi0wMS0yNyAxODo0Njo0OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBzZWdtZW50OiBBZGQgcGFkZGluZyB0byB0aGUgcHVibGljIHN0cnVjdAoKMjAxMi0wMS0yNyAxNzo0NTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZG9uJ3QgcmVmIEdUeXBlIGZvciBwcml2YXRlIGVudW0gZm9yIHdoaWNoIHRoZXJlJ3Mgbm8gR1R5cGUgYW55IG1vcmUKCjIwMTItMDEtMjcgMTc6NDU6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmb3IgbmV3IGFuZCByZW1vdmVkIEFQSQoKMjAxMi0wMS0yNyAxNzozOToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBhZGQgY29uc3RydWN0IGFuZCBwYXJzZSBBUEkgZm9yIHRoZSBuZXcgU1RSRUFNIENPTkZJRyBldmVudAoJICBjb2RlYyBkYXRhIGFuZCBzdHJlYW0gaGVhZGVycyBkb24ndCBiZWxvbmcgaW50byBjYXBzLCBzaW5jZSB0aGV5CgkgIGFyZSBub3QgbmVnb3RpYXRlZC4gV2Ugc2lnbmFsIHRoZW0gdXNpbmcgdGhlIFNUUkVBTSBDT05GSUcgZXZlbnQKCSAgaW5zdGVhZC4KCjIwMTItMDEtMjcgMTg6MjQ6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIHRyYWNlOiByZW1vdmUgZnJvbSBwdWJsaWMgaGVhZGVycwoKMjAxMi0wMS0yNyAxMjoxNjowNSArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IGRvY3VtZW5hdGlvbiB0eXBvCgoyMDEyLTAxLTI3IDE3OjUwOjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdHJhY2U6IHJld29yayBhbGxvYyB0cmFjaW5nCgkgIFJlbW92ZSB0cmFjZSwgd2UgdXNlIGRlYnVnIGxvZyBmb3IgdGhhdAoJICBNYWtlIGFsbG9jIHRyYWNlIHNpbXBsZXIsIHJlbW92aW5nIHNvbWUgbWV0aG9kcy4KCSAgQWN0aXZhdGUgYWxsb2MgdHJhY2Ugd2l0aCBhIEdTVF9UUkFDRT0zIGVudmlyb25tZW50IHZhcmlhYmxlLgoJICBEdW1wIGxlYWtlZCBvYmplY3RzIGF0ZXhpdC4KCSAgUHJvdmlkZSBhbiBvZmZzZXQgaW4gdGhlIG9iamVjdCB3aGVyZSB0aGUgR1R5cGUgY2FuIGJlIGZvdW5kIHNvIHRoYXQgbW9yZQoJICB2ZXJib3NlIGluZm8gY2FuIGJlIGdpdmVuIGZvciBvYmplY3RzLgoJICBSZW1vdmUgLVQgb3B0aW9uIGZyb20gZ3N0LWxhdW5jaCBiZWNhdXNlIHRyYWNpbmcgaXMgbm93IHRyaWdnZXJlZCB3aXRoIHRoZQoJICBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCjIwMTItMDEtMjUgMTI6MzU6NDMgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGFuc3dlciBjYXBzIHF1ZXJpZXMgd2l0aCBvdXIgdHlwZWZvdW5kIGNhcHMKCSAgVGhpcyBhdm9pZHMgbWVyZWx5IGZvcndhcmRpbmcgdGhlIGV2ZW50IHRvIHRoZSBzaW5rLCBhbmQgZ2V0dGluZwoJICBzb21ldGhpbmcgdXNlbGVzcyBzdWNoIGFzIEFOWS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzU3MQoKMjAxMi0wMS0yNyAxNjoxODowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICB0eXBlZmluZDogRG8gdHlwZWZpbmRpbmcgZnJvbSBhIHNlcGFyYXRlIHRocmVhZCBhbmQgbm90IGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbgoKMjAxMi0wMS0yNyAxNTozMjozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1lbW9yeSBsZWFrCgkgIHVubWFwIHRoZSBidWZmZXIgbWVtb3J5IG9uIGVycm9ycy4KCjIwMTItMDEtMjcgMTU6MzI6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICB0cmFjZTogbWFrZSBhbGxvYyB0cmFjZSB3b3JrIGZvciBtaW5pb2JqZWN0IGFnYWluCgoyMDEyLTAxLTI3IDE1OjA5OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmgKCjIwMTItMDEtMjcgMTU6MDI6NTIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBNb3ZlIHByaXZhdGUgZmllbGRzIGZyb20gdGhlIHB1YmxpYyBzdHJ1Y3RzIHRvIHByaXZhdGUgc3RydWN0cwoJICBGaXhlcyBidWcgIzY2ODc2NC4KCjIwMTItMDEtMjcgMTM6MDU6NDggKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nYXJnYi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogbm8gZmFuY3kgdXRmOCBjaGFycyBpbiB0aGUgZ2kgYW5ub3RhdGlvbnMKCjIwMTItMDEtMjcgMTI6NTA6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBmaXggc29tZSBtb3JlIGxlYWtzCgoyMDEyLTAxLTI3IDEyOjMzOjMyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogRml4IGhhbmRsaW5nIG9mIHRoZSBuZXcgc3RyZWFtLXN0YXJ0IGV2ZW50CgoyMDEyLTAxLTI3IDExOjMyOjEyICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZ3N0cGx1Z2luOiBhZGQgYSBmZXcgY29uc3RzIHRvIHJlYWQgb25seSBkYXRhCgoyMDEyLTAxLTI3IDEyOjIyOjQ4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBnaSBhbm5vdGF0aW9ucwoKMjAxMi0wMS0yNyAxMjoxNDoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCB1bml0IHRlc3QKCjIwMTItMDEtMjcgMTI6MTA6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdGVzdHM6IGZpeCBsZWFrcwoKMjAxMi0wMS0yNyAxMTo0MDozNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhdm9pZCBtZW1vcnkgbGVhawoJICBVbnJlZiB0aGUgb2xkIG1lbW9yeSBpbiBtYWtlX21hcHBlZC4KCSAgQWRkIHNvbWUgZGVidWcgaW5mbwoKMjAxMi0wMS0yNyAxMTo0MDowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBhdm9pZCBjYXBzIGxlYWsKCjIwMTItMDEtMjcgMTE6MDE6MjcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eS9mYWtle3NyYyxzaW5rfTogSW5jbHVkZSBldmVudCB0eXBlIG5hbWUgaW4gdGhlIGRlYnVnIG91dHB1dAoKMjAxMi0wMS0yNyAxMDo1NDo1NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBNYXJrIHRoZSBuZXcgR0FQIGV2ZW50IGFzIG5vbi1zdGlja3kKCjIwMTItMDEtMjcgMTA6NDY6MDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBEcm9wIHRoZSBzdHJlYW0tc3RhcnQgYW5kIHN0cmVhbS1jb25maWcgZXZlbnRzIGJ5IGRlZmF1bHQKCjIwMTItMDEtMjcgMTA6NDI6MDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50IHJlYmFzZQoKMjAxMi0wMS0yNyAxMDo0MTowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VuZCB0aGUgc3RyZWFtLXN0YXJ0IGV2ZW50IGFzIGZpcnN0IGV2ZW50IGV2ZXIKCjIwMTItMDEtMjcgMTA6MzA6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IEFkZCBjb25zdHJ1Y3RvciBhbmQgZG9jcyBmb3IgdGhlIG5ldyBTVFJFQU1fU1RBUlQgZXZlbnQKCjIwMTItMDEtMjYgMTk6Mjg6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgdXNlciBkYXRhIHRvIGNoYWluIGZ1bmN0aW9ucwoKMjAxMi0wMS0yNiAxODo1NjoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggdHlwbwoKMjAxMi0wMS0yNiAxODoyMjoyOSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiByZXN0b3JlIGRhdGUvdGltZSB0eXBlIHRvIEdzdERhdGVUaW1lCgkgIFRoZSBjaGFuZ2UgdG8gR0RhdGVUaW1lIHdhcyBhcHBhcmVudGx5IGFjY2lkZW50YWwsIGFuZAoJICBicmVha3MgcGx1Z2lucyB0cnlpbmcgdG8gZmVlZCBhIEdzdERhdGVUaW1lIHRvIHRoZSB0YWdsaXN0IEFQaS4KCjIwMTItMDEtMjYgMTk6MTI6MTYgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIGdzdDogZ3N0X3BhcnNlX2xhdW5jaCBub3cgcmV0dXJucyBhIGZsb2F0aW5nIHJlZmVyZW5jZQoKMjAxMi0wMS0yNiAxODo1Mzo1MSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGdzdHN0cnVjdHVyZTogU2V0ICJ0cmFuc2ZlciBub25lIiB0byByZXR1cm4gdmFsdWVzIHRoYXQgc2hvdWxkbid0IGJlIGZyZWVkCgoyMDEwLTEyLTA0IDE4OjUzOjU1IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGNhbGwgLT5yZWxlYXNlX3BhZCgpIHRvIGNsZWFuIHVwIHBhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2MDExCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MDI1NjIKCjIwMTItMDEtMjYgMTY6MzE6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBhZGQgc29tZSBtb3JlIGV2ZW50cwoJICBBZGQgc29tZSBtb3JlIG5ldyBldmVudHMgdGhhdCB3ZSB3YW50IHRvIGltcGxlbWVudCBsYXRlci4KCjIwMTItMDEtMjYgMTU6MTU6MjEgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgZ3N0bWVtb3J5OiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIKCjIwMTItMDEtMjYgMTQ6NTc6MTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRml4IGNvbXBpbGVyIHdhcm5pbmcKCjIwMTItMDEtMjYgMTQ6NTU6MzAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogVXNlIGNvcnJlY3Qgc2l6ZSBmb3IgY2FwcyBhbGxvY2F0aW9uCgoyMDEyLTAxLTI2IDE0OjQ1OjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IE1ha2UgR3N0Q2FwcyBwdWJsaWMgc3RydWN0IG1vcmUgb3BhcXVlIGJ5IG1vdmluZyB0aGUgcHJpdmF0ZSBwb2ludGVyIGludG8gdGhlIGltcGxlbWVudGF0aW9uCgoyMDEyLTAxLTI2IDE0OjMzOjEyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgY2FwczogU3RvcmUgYSBwb2ludGVyIHRvIEdzdENhcHMgaW4gR3N0U3RhdGljQ2FwcwoJICAuLi5pbnN0ZWFkIG9mIHVzaW5nIGhhY2tpc2ggc3ViY2xhc3Mgb2YgR3N0Q2Fwcywgd2hpY2ggYWxzbwoJICBoYWQgc29tZSB0aHJlYWQtc2FmZXR5IHByb2JsZW1zLgoKMjAxMi0wMS0yNiAxMzoyNDo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJICBldmVudDogcmVtb3ZlIHRoZSBzdGlja3kgZXZlbnQgaW5kZXgKCSAgV2UgZG9uJ3QgdXNlIHRoZSBzdGlja3kgZXZlbnQgaW5kZXggYW55bW9yZSwgb3JkZXJpbmcgb2YgdGhlIGV2ZW50cyBhcmUgaG93IHRoZXkKCSAgd2VyZSBzZW50IGluaXRpYWxseS4KCSAgQWRkIHNvbWUgbW9yZSBwYWRkaW5nIGJldHdlZW4gdGhlIGV2ZW50IG51bWJlcnMgc28gdGhhdCB3ZSBjYW4gaW5zZXJ0IG5ldyBldmVudHMKCSAgbGF0ZXIuCgoyMDEyLTAxLTI2IDEwOjQ4OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJICBkb2NzOiByZW1vdmUgY29sbGVjdHBhZHMgZnJvbSBkb2NzLCBmaXggYnVpbGQKCjIwMTItMDEtMjYgMTA6MjI6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogdXNlIEdzdFZhbHVlQXJyYXkgaW5zdGVhZCBvZiBHVmFsdWVBcnJheSBmb3Igc3RvcmluZyBvcHRpb25zIGluIHRoZSBjb25maWcKCSAgU2luY2UgR1ZhbHVlQXJyYXkgaXMgZGVwcmVjYXRlZC4gSXQncyBhbGwgb25seSBpbnRlcm5hbCBhbnl3aGVyZSBoZXJlLAoJICBidXQgaWYgd2UgdXNlIEdzdFZhbHVlQXJyYXkgdGhlIG9wdGlvbiBzdHJpbmdzIGdldCBzZXJpYWxpemVkIG5pY2VseQoJICBpbiB0aGUgZGVidWcgbG9ncyBhdCBsZWFzdC4KCjIwMTItMDEtMjYgMDk6MjY6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IGdzdC1pbnNwZWN0OiBzdXBwcmVzcyBkZXByZWNhdGlvbiB3YXJuaW5ncyBmb3IgR19UWVBFX1ZBTFVFX0FSUkFZCgkgIEZvciBub3cgYW55d2F5LgoKMjAxMi0wMS0yNiAxMTo0MjoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY29sbGVjdHBhZHMyOiBVbml0IHRlc3QgaXMgdmFsZ3JpbmQgY2xlYW4gbm93CgoyMDEyLTAxLTI2IDExOjQwOjUzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogRml4IHVuaXQgdGVzdCB0byBhY3R1YWxseSB3b3JrIGFnYWluCgoyMDEyLTAxLTI2IDExOjM4OjI5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIGNvbGxlY3RwYWRzMjogUG9ydCBjb2xsZWN0cGFkcyB1bml0IHRlc3QgdG8gY29sbGVjdHBhZHMyCgkgIEN1cnJlbnRseSBmYWlscyBidXQgcmVhbGx5IHNob3VsZG4ndC4KCjIwMTItMDEtMjYgMTE6MDE6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgcHJvYmUgaWQgdG8gdGhlIGluZm8KCjIwMTItMDEtMjYgMTA6NDg6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IFJlbW92ZSBvbGQgY29sbGVjdHBhZHMKCSAgU3RpbGwgaGF2ZSB0byByZW5hbWUgY29sbGVjdHBhZHMyIHRvIGNvbGxlY3RwYWRzIGJlZm9yZSB0aGUgMS4wIHJlbGVhc2UuCgoyMDEyLTAxLTI2IDEwOjMwOjI1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogRG9uJ3QgZm9yd2FyZCBDQVBTIGV2ZW50IGF1dG9tYXRpY2FsbHkKCjIwMTItMDEtMjUgMTg6NDk6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29sbGVjdHBhZHMyOiBGaXggaGFuZGxpbmcgb2YgdGhlIGV2ZW50IGZ1bmN0aW9uIGFuZCBkb2N1bWVudCBpdAoJICBUaGUgZXZlbnQgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gZm9yd2FyZC9kcm9wIHRoZSBldmVudCBpbiBhbnkgY2FzZQoJICBub3cgYW5kIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgZXZlbnQuCgoyMDEyLTAxLTI1IDE4OjM2OjQyICswMTAwICBKYXNvbiBEZVJvc2UgPGpkZXJvc2VAbm92YWN1dC5jb20+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBub3cgcmV0dXJucyBhIGZsb2F0aW5nIHJlZmVyZW5jZQoKMjAxMi0wMS0yNSAxOTo0MTowMyArMDIwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0X3BpcGVsaW5lX25ldyBub3cgcmV0dXJucyBhIGZsb2F0aW5nIHJlZmVyZW5jZS4KCjIwMTItMDEtMjUgMTc6Mjc6NDAgKzAyMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdDogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uIHJldHVybnMgYSBuZXcgcmVmZXJlbmNlCgoyMDEyLTAxLTI1IDE1OjE0OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogdXNlIEdBcnJheSBmb3IgaW50ZXJuYWwgYXJyYXlzIGluc3RlYWQgb2YgdGhlIG5vdy1kZXByZWNhdGVkIEdWYWx1ZUFycmF5CgoyMDEyLTAxLTI1IDE2OjAxOjAyICswMjAwICBQZXRlcmlzIEtyaXNqYW5pcyA8cGVjaXNrQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0OiBDaGFuZ2VkIGludHJvc3BlY3Rpb24gdHJhbnNmZXIgZmxhZyB0byAodHJhbnNmZXIgZmxvYXRpbmcpCgkgIGZvciBnc3RfcGFkX25ldywgZ3N0X2dob3N0X3BhZF9uZXcgYW5kIGdzdF9iaW5fbmV3IGNvbnN0dWN0b3JzLiBGaXhlcwoJICBzZWdmYXVsdHMgZHVlIG9mIHRyYW5zZmVyIGZ1bGwgYW5kIGZsb2F0aW5nIHJlZiBwcm9ibGVtLgoKMjAxMi0wMS0yNSAxMzo0NjoxMyArMDEwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzQ2M2JjMCB0byA3ZmRhNTI0CgoyMDEyLTAxLTI0IDE0OjM3OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogYWRkIGZsYWdzIHRvIHRoZSBtYXBpbmZvCgoyMDEyLTAxLTIwIDE2OjEwOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IG1ha2UgZ3VpbnQ4ICogZm9yIGVhc3kgdXNhZ2UKCjIwMTItMDEtMjAgMTQ6NTY6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVtb3J5OiBhZGQgbWV0aG9kIHRvIGNyZWF0ZSBtYXBwZWQgbWVtb3J5CgkgIEFkZCBhIG1ldGhvZCB0byBjcmVhdGUgYSBHc3RNZW1vcnkgd2l0aCB0aGUgZGVzaXJlZCBtYXBwaW5nLiBNYWtlcyBhIGNvcHkgb2YgdGhlCgkgIG1lbW9yeSBpZiBpdCBpcyBjdXJyZW50bHkgaW4gdXNlLgoKMjAxMi0wMS0yMCAxNDoyMzo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvYWRhcHRlcl90ZXN0LmM6CgkgIEFkZCBuZXcgR3N0TWFwSW5mbwoJICBVc2UgYSBzdHJ1Y3R1cmUgdG8gaG9sZCBpbmZvIGFib3V0IHRoZSBtYXBwaW5nLiBUaGUgYXBwbGljYXRpb24gdGhlbiBrZWVwcyB0cmFjawoJICBvZiB0aGlzIHN0YXRlIGFuZCB3ZSBjYW4gdXNlIGl0IHRvIHVubWFwIHRoZSBtZW1vcnkgYWdhaW4gbGF0ZXIuCgoyMDEyLTAxLTI1IDExOjQ5OjUwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJICBjb250cm9sYmluZGluZ3M6IG5hbWUgaXMgbm90IGEgY29uc3QKCSAgSXQgZ2V0cyBtb2RpZmllZCBkdXJpbmcgdGhlIGxpZmUgb2YgdGhlIG9iamVjdC4gRml4ZXMgYnVpbGQuCgoyMDEyLTAxLTI1IDExOjQzOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTItMDEtMjUgMTE6Mzc6NDAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyYTU5MDE2IHRvIGM0NjNiYzAKCjIwMTItMDEtMjQgMjE6NTM6MTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdhcmdiLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGJpbmRpbmdkaXJlY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGNvbnRyb2xsZXI6IGNsZWFudXAgdGhlIGNvbnRyb2wtYmluZGluZyBjb25zdHJ1Y3Rpb24KCSAgVGhpcyBpcyBub3cgYmluZGluZ3MgZmlyZW5kbHkgYXMgX25ldyBpcyBqdXN0IGEgY2xhc3NpYyBjIGNvbnZlbmllbmNlIGFuZCBhbGwKCSAgdGhlIHdvcmsgaXMgZG9uZSBpbiBhIGNvbnN0cnVjdG9yLiBBcyBhIHNpZGUgZWZmZWN0IF9uZXcgbmV2ZXIgZmFpbHMuCgkgIEZpeCB0aGUgdGVzdHMuCgoyMDEyLTAxLTI0IDE0OjQwOjMzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogaGFuZGxlIE5VTEwgZGVzdCBpbiBiaXRtYXNrL2JpdG1hc2sgaW50ZXJzZWN0aW9uCgoyMDExLTEyLTAxIDEyOjQzOjAzICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogYWRkIGJhc2ljIHRlc3RzIGZvciBuZXcgc3RlcHBlZCByYW5nZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTI5NAoKMjAxMS0xMS0zMCAxNDo0NToxMiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHZhbHVlOiBhZGQgc3RlcHBlZCByYW5nZXMKCSAgaW50IGFuZCBpbnQ2NCByYW5nZXMgY2FuIG5vdyBoYXZlIGFuIG9wdGlvbmFsIHN0ZXAgKGRlZmF1bHRpbmcgdG8gMSkuCgkgIE1lbWJlcnMgb2YgdGhlIHJhbmdlIGFyZSB0aG9zZSB2YWx1ZXMgd2l0aGluIHRoZSBtaW4gYW5kIG1heCBib3VuZHMKCSAgd2hpY2ggYXJlIGEgbXVsdGlwbGUgb2YgdGhpcyBzdGVwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mjk0CgoyMDExLTExLTMwIDE3OjU4OjA3ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IGFkZCBhIDY0IGJpdCB2ZXJzaW9uIG9mIEdDRCBjYWxjdWxhdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1Mjk0CgoyMDExLTExLTA0IDE4OjI2OjE1ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogZW5mb3JjZSBpZGVudGljYWwgYmFzaWMgdHlwZXMgaW4gbGlzdHMsIGFycmF5cwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIyNTg3CgoyMDEyLTAxLTIzIDEwOjMyOjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBiZW5jaG1hcmtzOiBhZGQgbWlzc2luZyBpbmNsdWRlCgoyMDEyLTAxLTIzIDExOjAzOjA5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IHJlZ2lzdGVyIGFsbCBwcm9wZXJ0aWVzIGluIG9uZSBnbwoKMjAxMi0wMS0yMyAxMTowMjo0NSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBjb250cm9sbGVyIGFwaSBkZXNpZ24KCjIwMTItMDEtMjEgMjA6MDM6NTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2FyZ2IuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sYmluZGluZ2RpcmVjdC5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xiaW5kaW5nZGlyZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9jb250cm9sLXNvdXJjZXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci90ZXh0LWNvbG9yLWV4YW1wbGUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNvbnRyb2xsZXI6IGFsbG93IGRpZmZlcmVudCBjb250cm9sYmluZGluZ3MKCSAgTWFrZSBjb250cm9sYmluZGluZyBhbiBhYnN0cmFjdCBiYXNlY2xhc3MuIE1vdmUgaW1wbGVtZW50YXRpb24gdG8gY29udHJvbC0KCSAgYmluZGluZy1kaXJlY3QgYW5kIGFkZCBhIGNvbnRyb2wtYmluZGluZy1hcmdiLiBBZGQgYW4gZXhhbXBsZS4KCjIwMTItMDEtMjIgMjI6NDQ6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgUmVwbGFjZSBkZXByZWNhdGVkIEdTdGF0aWNNdXRleCB3aXRoIEdNdXRleAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMjA3CgoyMDEyLTAxLTIyIDE1OjIzOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBmaXggdHlwbyBpbiBnc3QtaW5zcGVjdCBkZWJ1ZyBtZXNzYWdlCgoyMDEyLTAxLTIyIDAxOjM5OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBVc2UgR0xpYidzIHR5cGUgZm9yIEdFcnJvciBpbnN0ZWFkIG9mIG91ciBvd24KCSAgV2UgaW50cm9kdWNlZCBvdXIgb3duIHdoZW4gR0xpYiBkaWRuJ3Qgd2FudCB0byBhZGQgYSBHVHlwZQoJICBmb3IgR0Vycm9yLiBCdXQgbm93IHRoYXQgdGhlcmUgaXMgb25lLCB3ZSBjYW4gdXNlIEdMaWIncwoJICB1bmNvbmRpdGlvbmFsbHkgYW5kIHJlbW92ZSBvdXIgdmVyc2lvbi4KCjIwMTItMDEtMjIgMDE6Mjc6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGZpeCBzaXplIG9mIGF0b21pYyBjb3VudGVyCgoyMDEyLTAxLTIyIDAxOjI1OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSAgVXNlIHJlY2VudCBHTGliIEFQSSB1bmNvbmRpdGlvbmFsbHkgbm93IHRoYXQgd2UgZGVwZW5kIG9uIHRoZSBsYXRlc3QgR0xpYgoKMjAxMi0wMS0yMiAwMDo0MjozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgdHJhY2U6IGRvbid0IHVzZSBkZXByZWNhdGVkIEdTdGF0aWNNdXRleCBBUEkgaW4gKHN0aWxsKSBwdWJsaWMgaGVhZGVyCgoyMDEyLTAxLTIxIDEyOjU2OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBzY3JpcHRzOiBzZXQgR0lfVFlQRUxJQl9QQVRIIGluIGdzdC11bmluc3RhbGxlZAoJICBTbyBweWdpIGZpbmRzL3VzZXMgdGhlIGxvY2FsIGctaSBmaWxlcy4KCjIwMTItMDEtMjAgMTg6MDY6MDQgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSAgbGliY2hlY2s6IG1ha2UgdGhlIGRlZmluaXRpb24gb2YgZmFpbCBub3QgZmFpbCB3aXRoIG5vbiBHQ0MgY29tcGlsZXJzCgoyMDEyLTAxLTIwIDE0OjQyOjMxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjb250cm9sbGVyOiBpbXByb3ZlIGNvbnRyb2wgYmluZGluZyBoYW5kbGluZwoJICBDaGFuZ2UgX3NldF9jb250cm9sX2JpbmRpbmcgdG8gX2FkZF9jb250cm9sX2JpbmRpbmcgYW5kIHRha2Ugb3duZXJzaGlwLiBBZGQgYQoJICBfcmVtb3ZlX2NvbnRyb2xfYmluZGluZyBmdW5jdGlvbi4KCjIwMTItMDEtMjAgMDg6Mjc6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGNvbnZlbmllbmNlIGFwaSBmb3IgY29udHJvbCBzb3VyY2VzCgkgIFRoaXMgaXMgbmVlZGVkIHRvIHN1cHBvcnQgbXVsdGlwbGUga2luZHMgb2YgY29udHJvbC1iaW5kaW5ncy4KCjIwMTItMDEtMTkgMTU6MTc6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogaGFuZGxlIE5VTEwgZnJvbSBnZXRjYXBzCgkgIElmIHRoZSBnZXRjYXBzIGZ1bmN0aW9ucyByZXR1cm5zIE5VTEwsIHJldHVybiBGQUxTRSBmcm9tIHRoZSBDQVBTIHF1ZXJ5LgoKMjAxMi0wMS0xOSAxNToxNzozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGhhbmRsZSBsaXN0cyBjb3JyZWN0bHkKCjIwMTItMDEtMTcgMTY6MjM6MzMgLTA1MDAgIENvbGluIFdhbHRlcnMgPHdhbHRlcnNAdmVyYnVtLm9yZz4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBidWlsZDogYWRkIC0tZGlzYWJsZS1mYXRhbC13YXJuaW5ncyBjb25maWd1cmUgb3B0aW9uCgkgIEl0J3MgcmVhc29uYWJsZSB0byBidWlsZCBmcm9tIGdpdCwgYnV0IG5vdCB3YW50IHRvIHR1cm4gYWxsIGNvbXBpbGVyCgkgIHdhcm5pbmdzIGludG8gZmF0YWwgZXJyb3JzLiAgRm9yIGV4YW1wbGUsIEdOT01FJ3MgamhidWlsZCBoZWxwcyBwZW9wbGUKCSAgZ2V0IG5ld2VyIHZlcnNpb25zIG9mIHNvZnR3YXJlIHRoYW4gY2FtZSBmcm9tIHRoZWlyIGRpc3RyaWJ1dGlvbiwgYnV0CgkgIHRoZXkgbWF5IG5vdCBuZWNlc3NhcmlseSB3YW50IHRvIGhhY2sgb24gaXQuCgoyMDEyLTAxLTE5IDEyOjU3OjQ4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0Y2xvY2tzdHJlc3MuYzoKCSAgdGVzdHM6IGNsb2Nrc3RyZXNzOiBwZXJmb3JtIHNhbml0eSBjaGVjayBvbiB0aHJlYWQgbnVtYmVyIGFyZ3VtZW50CgoyMDEyLTAxLTE5IDA5OjEyOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnkgaW1wcm92ZW1lbnRzCgkgIE1ha2UgdGhlIG1lbW9yeSBvYmplY3Qgc2ltcGx5IG1hbmFnZSB0aGUgZGF0YSBwb2ludGVyIGFuZCB0aGUgbWF4c2l6ZSBhbmQgbW92ZQoJICB0aGUgb2Zmc2V0IGFuZCBzaXplIGhhbmRsaW5nIHRvIGNvbW1vbiBmdW5jdGlvbmFsaXR5LgoJICBVc2UgdGhlIFJFQURPTkxZIGZsYWcgdG8gc2V0IGEgcmVhZG9ubHkgbG9jay4KCSAgUmVtb3ZlIHRoZSBkYXRhIGFuZCBzaXplIGZpZWxkcyBmcm9tIHRoZSB1bm1hcCBtZXRob2QuIFdlIG5lZWQgYW4gZXhwbGljaXQKCSAgcmVzaXplIG9wZXJhdGlvbiBpbnN0ZWFkIG9mIHVzaW5nIHRoZSB1bm1hcCBmdW5jdGlvbi4KCSAgTWFrZSBpbnRlcm5hbCBoZWxwZXIgbG9jayBhbmQgdW5sb2NrIGZ1bmN0aW9ucy4KCSAgVXBkYXRlIHVuaXQgdGVzdCBhbmQgdXNlcnMgb2YgdGhlIG9sZCBBUEkuCgoyMDEyLTAxLTE5IDExOjQzOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgZG9jczogZml4IHR5cG8gaW4gYnVzIGRvY3MKCjIwMTItMDEtMTMgMTc6NDU6MTcgLTA1MDAgIE1hdGVqIEtub3BwIDxtYXRlai5rbm9wcEBnbWFpbC5jb20+CgoJKiAuZ2l0aWdub3JlOgoJICAuZ2l0aWdub3JlOiBhZGQgdmlzdWFsIHN0dWRpbyBJREUgZmlsZXMgYW5kIE9TIFggLkRTX1N0b3JlIGZpbGVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc4OTkKCjIwMTItMDEtMTkgMDk6Mjc6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dGltZWR2YWx1ZWNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkgIFVwZGF0ZSBmb3IgbmV3IGd0aHJlYWQgQVBJCgoyMDEyLTAxLTE4IDE2OjUyOjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBHSU8gY2hlY2sgaXMgbm93IGluIGdzdC1nbGliMi5tNAoKMjAxMi0wMS0xOCAxNjo0NTo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDA4MDcxODcgdG8gMmE1OTAxNgoKMjAxMi0wMS0xOCAxNjoxNDo1MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBHTGliIDIuMzEuMTAgYW5kIGltcHJvdmUgR0lPIGNoZWNrCgoyMDEyLTAxLTE4IDEyOjA3OjQ2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogQWx3YXlzIGNhbGwgOjpwcm9wb3NlX2FsbG9jYXRpb24gdmZ1bmMKCSAgQW5kIG9ubHkgZm9yd2FyZCB0aGUgYWxsb2NhdGlvbiBxdWVyeSBpZiB3ZSdyZSB3b3JraW5nIGluCgkgIHBhc3N0aHJvdWdoIG1vZGUgaWYgbm8gOjpwcm9wb3NlX2FsbG9jYXRpb24gaXMgaW1wbGVtZW50ZWQuCgkgIEluIHBsYWNlIGJ1ZmZlciB0cmFuc2Zvcm1hdGlvbnMgd2lsbCBjaGFuZ2UgdGhlIGJ1ZmZlcgoJICBjb250ZW50IGFuZCByZXF1aXJlIGV4cGxpY2l0IGhhbmRsaW5nIG9mIGFsbCBtZXRhcy4KCjIwMTItMDEtMTggMTE6Mzc6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERvbid0IGZvcndhcmQgdGhlIGFsbG9jYXRpb24gcXVlcnkgYnkgZGVmYXVsdAoJICBUaGlzIGhhcyB0byBiZSBoYW5kbGVkIGV4cGxpY2l0ZWx5IGJ5IGVsZW1lbnRzIHRvCgkgIG1ha2Ugc3VyZSB0aGF0IHRoZXkgc3VwcG9ydCBhbGwgdGhlIG1ldGFzIHBhc3NlZAoJICBpbiB0aGUgYWxsb2NhdGlvbiBxdWVyeS4KCSAgTWV0YXMgaGF2ZSB0byBzdXBwb3J0ZWQgZXhwbGljaXRlbHksIG90aGVyd2lzZSB0aGUKCSAgcXVlcnkgd2lsbCBmYWlsLiBBbGwgZWxlbWVudHMgaW4gYSBjaGFpbiBuZWVkIHRvCgkgIHN1cHBvcnQgYSBzcGVjaWZpYyBtZXRhIHRvIGFsbG93IGl0cyB1c2FnZS4KCjIwMTItMDEtMTggMDE6MzE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBnc3Q6IHN1cHByZXNzIHNvbWUgbW9yZSBkZXByZWNhdGVkIHRocmVhZCBhcGkgdW50aWwgd2UgZml4IGl0IHVwCgkgIFdoaWNoIHNob3VsZCBiZSBzb29uLCBzaW5jZSB3ZSBhbHJlYWR5IGRlcGVuZCBvbiBhbiB1bnN0YWJsZSBnbGliIGZvciAtYmFzZS4KCjIwMTItMDEtMTggMDE6MTg6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIC5kZWYgZmlsZXMgZm9yIGFwaSBjaGFuZ2VzCgoyMDEyLTAxLTE3IDIzOjU3OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkgIGNvbmZpZ3VyZTogcmVtb3ZlICAtLWRpc2FibGUtbmV0IG9wdGlvbiBhbmQgYWx3YXlzIGJ1aWxkIGxpYmdzdG5ldAoJICBJdCBzaG91bGQgd29yayBldmVyeXdoZXJlIG5vdywgYW5kIC1iYXNlIGFuZCAtZ29vZCBkZXBlbmQgb24KCSAgdGhlIEdzdE5ldE1ldGEgQVBJLgoKMjAxMi0wMS0xNyAyMzo1MjowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgY29uZmlndXJlOiByZW1vdmUgc29tZSBzb2NrZXQgY3J1ZnQKCjIwMTAtMDUtMDUgMTY6MzM6NTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBuZXQ6IHBvcnQgdG8gdXNlIGdpbydzIG5ldHdvcmtpbmcgQVBJCgkgIFNvbWUgd2FydHMgc3RpbGwsIGJ1dCBpdCdzIGEgc3RhcnQuCgoyMDEyLTAxLTE3IDE2OjUwOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbmV0OiBBZGQgR0lPIHRvIHRoZSBnaS1zY2FubmVyIHBhY2thZ2VzCgoyMDEyLTAxLTE2IDEzOjM0OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmg6CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC5wYy5pbjoKCSAgbmV0YWRkcmVzc21ldGE6IFVzZSBHU29ja2V0QWRkcmVzcyBpbnN0ZWFkIG9mIG91ciBvd24gd3JhcHBlciB0eXBlCgoyMDEyLTAxLTE2IDE1OjU3OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IG1ha2Ugd3JpdGFiaWxpdHkgY2hlY2sgaW50byBhIG1ldGhvZAoJICBVc2UgYSBtZXRob2QgdG8gY2hlY2sgZm9yIHdyaXRhYmlsaXR5IGluc3RlYWQgb2YgYSBtYWNybyBzbyB0aGF0IHdlIGNhbiBjaGFuZ2UKCSAgdGhlIGltcGxlbWVudGF0aW9uIG1vcmUgZWFzaWx5LgoKMjAxMi0wMS0xNiAxMjoyNDo0OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgdGVzdHM6IGltcHJvdmUgbWVtb3J5IHRlc3QKCjIwMTItMDEtMTYgMTI6MjQ6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkb2NzCgoyMDEyLTAxLTExIDEwOjU5OjUzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBlbnN1cmUgYXV0b21hZ2ljIF91bm1hcCBpbiBzb21lIG1vcmUgY2FzZXMKCjIwMTEtMTEtMTUgMTc6NDI6NTYgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGF1dG9tYXRpY2FsbHkgdW5tYXAgb24gY2xlYXJpbmcKCSAgV2hlbiBfY2xlYXIgZ2V0cyBjYWxsZWQgYmV0d2VlbiBfbWFwIGFuZCBfdW5tYXAsIGJ1ZmZlcnMKCSAgd2lsbCBiZSB1bnJlZmZlZC4gSWYgdGhlIGFkYXB0ZXIgd2FzIG1hcHBlZCwgbWVtb3J5IGxlYWtzCgkgIG1heSBvY2N1ci4KCSAgV2hpbGUgY2FsbGluZyBfY2xlYXIgYmV0d2VlbiBfbWFwIGFuZCBfdW5tYXAgZG9lcyBub3Qgc2VlbQoJICBsaWtlIHN1Y2ggYSBncmVhdCBpZGVhLCB0aGlzIGlzIHBvc3NpYmxlIGluIHRoZSBhdWRpbwoJICBlbmNvZGVyIGJhc2UgY2xhc3MsIGFzIF9jbGVhciBtYXkgYmUgY2FsbGVkIGluIF9maW5pc2hfZnJhbWUuCgkgIFNpbmNlIHRoZSBhdWRpbyBlbmNvZGVyIHJlbGllcyBvbiBmbHVzaGluZyB0byBrZWVwIHRyYWNrIG9mCgkgIHRpbWVzdGFtcHMsIGRlbGF5aW5nIGZsdXNoaW5nIHRpbGwgYWZ0ZXIgaGFuZGxlX2ZyYW1lIHNlZW1zCgkgIGRhbmdlcm91cy4KCSAgU28sIHdlIHVubWFwIG9uIGNsZWFyLCBhcyB0aGUgbmV4dCB1bm1hcCB3aWxsIGRvIG5vdGhpbmcuCgkgIFRoaXMgbWFrZXMgX2NsZWFyIHNhZmUgdG8gY2FsbCBiZXR3ZWVuIF9tYXAgYW5kIF91bm1hcCwKCSAgd2hpbGUgYXZvaWRpbmcgbGVha2luZyB0aGUgbWFwcGVkIGJ1ZmZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDEzMwoKMjAxMi0wMS0xMyAxNDoyMDozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcHJldmVudCB1bmxpa2VseSBjYXBzIGxlYWsKCjIwMTItMDEtMTMgMTA6NDM6MTIgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHBsdWcgZmFjdG9yeSBsZWFrIG9uIGVycm9yCgoyMDEyLTAxLTEzIDAwOjIyOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0LmMKCjIwMTItMDEtMTIgMjA6NDY6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmVtb3ZlIEdTVF9UWVBFX0RBVEUsIG91ciBvd24gR0RhdGUgdHlwZQoJICBXaGljaCB3ZSBoYWQgdG8gYWRkIGJlY2F1c2UgR0xpYiBkaWRuJ3QgaGF2ZSBpdAoJICBiYWNrIGluIHRoZSBkYXkuIFBvcnQgZXZlcnl0aGluZyB0byBwbGFpbiBvbGQKCSAgR19UWVBFX0RBVEUsIHdoaWNoIGlzIGFsc28gYSBib3hlZCB0eXBlLiBJZGVhbGx5CgkgIHdlJ2QganVzdCB1c2UgR0RhdGVUaW1lIGZvciBldmVyeXRoaW5nLCBidXQgaXQKCSAgZG9lc24ndCBzdXBwb3J0IG5vdCBzZXR0aW5nIHNvbWUgb2YgdGhlIGZpZWxkcwoJICB1bmZvcnR1bnRlbHkgKHdoaWNoIHdvdWxkIGJlIHZlcnkgdXNlZnVsIGZvcgoJICB0YWcgaGFuZGxpbmcgaW4gZ2VuZXJhbCwgaWYgd2UgY291bGQgZXhwcmVzcwoJICAyMDEyLTAxIGZvciBleGFtcGxlKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjM1MQoKMjAxMi0wMS0xMiAxOTo1MzoxMSArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2xlYXIgYWRhcHRlciBpbiByZXNldCBzbyBiYXNlcGFyc2UgaXMgcmV1c2FibGUKCSAgR3N0QmFzZVBhcnNlIHdhcyBub3QgY2xlYXJpbmcgaXRzIGFkYXB0ZXIgb24gcmVzZXQgY2F1c2luZwoJICBwcm9ibGVtcyB3aGVuIGEgcGlwZWxpbmUgd2VudCBmb3IgZXhhbXBsZSBmcm9tIFBMQVlJTkcgdG8gTlVMTAoJICBzdGF0ZSBhbmQgdGhlbiBiYWNrIHRvIFBMQVlJTkcgYWdhaW4uIFRoZSBkYXRhIGZyb20gdGhlIGxhc3QKCSAgc3RyZWFtIHdvdWxkIGJlIHVzZWQgaW4gdGhlIHBhcnNlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzQ0NAoKMjAxMi0wMS0xMiAxNTo1MDo1MyArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3RpbnNwZWN0OiBmaXggZmVhdHVyZXMgYW5kIGxpc3QgbGVha3MKCjIwMTItMDEtMTIgMTE6MDM6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCjIwMTItMDEtMTEgMTI6MTk6MjAgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IGNsYXJpZnkgX2dldCBkb2NzIGFib3V0IHRoZSByZXR1cm5lZCByZWZlcmVuY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzY4OQoKMjAxMi0wMS0xMCAxMzowMDowNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDEyLTAxLTA2IDE2OjM5OjA0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBTZW5kIGNhcHMgYWdhaW4gYWZ0ZXIgYWN0aXZhdGlvbgoJICBBdm9pZHMgZW5kaW5nIHVwIGluIGNhc2VzIHdoZXJlIHR5cGVmaW5kIGdldHMgYWN0aXZhdGVkIGluIHB1bGwtbW9kZQoJICBhbmQgY2FwcyBuZXZlciBnZXQgc2VudC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzMzNwoKMjAxMi0wMS0wOSAxNTo1OTowOSArMDAwMCAgQ2hyaXN0aWFuIEZyZWRyaWsgS2FsYWdlciBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBBZGQgbGF0ZXN0IHNwZWNmaWxlIGNoYW5nZXMKCjIwMTItMDEtMDkgMTU6NTg6NDUgKzAwMDAgIENocmlzdGlhbiBGcmVkcmlrIEthbGFnZXIgU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICBBbHNvIGFkZCBoZWFkZXJmaWxlCgoyMDEyLTAxLTA5IDE1OjU3OjUxICswMDAwICBDaHJpc3RpYW4gRnJlZHJpayBLYWxhZ2VyIFNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgRml4IGRvdGZpbGUgQVBJIHRvIGJlIGV4cG9ydGVkIHNpbmNlIG1hY3JvcyBjYW4ndCBiZSBHSSBib3VuZAoKMjAxMi0wMS0wOSAxMzoxOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSAgdGVzdHM6IGlnbm9yZSBuZXcgbWVtb3J5IHRlc3QgYmluYXJ5CgoyMDEyLTAxLTA5IDAzOjE0OjQxIC0wNTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIEZpeCBwcmludGYgZm9ybWF0IGJ1aWxkIHdhcm5pbmdzCgoyMDEyLTAxLTA5IDEzOjEwOjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZWwucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lby5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMgZm9yIG5ldyBzdHJpbmdzCgoyMDEyLTAxLTA2IDE1OjAxOjI0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogQWxsb3cgTlVMTCBkZXN0IHdoZW4gc3VidHJhY3RpbmcgYml0bWFzawoJICBIYXBwZW5zIHdoZW4gY2hlY2tpbmcgZm9yIHN1YnNldHMgb2YgY2FwcwoKMjAxMi0wMS0wNiAxMzozMjo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBlbnN1cmUgd3JpdGFibGUgbWVtb3J5IGluIG1lbXNldAoKMjAxMi0wMS0wNiAxMzoxMDoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBjaGVjayBzZW1hbnRpY3Mgb2YgbmVzdGVkIG1hcHBpbmdzCgkgIENvdW50IGhvdyBtYW55IG1hcHBpbmdzIGFyZSBjdXJyZW50bHkgYWN0aXZlIGFuZCBhbHNvIHdpdGggd2hhdCBhY2Nlc3MgcGF0dGVybi4KCSAgVXBkYXRlIHRoZSBkZXNpZ24gZG9jIHdpdGggcmVzdHJpY3Rpb25zIG9uIHRoZSBhY2Nlc3MgcGF0dGVybnMgZm9yIG5lc3RlZAoJICBtYXBwaW5ncy4KCSAgQ2hlY2sgaWYgbmVzdGVkIG1hcHBpbmdzIG9iZXkgdGhlIGFjY2VzcyBtb2RlIHJlc3RyaWN0aW9ucyBvZiB0aGUgZGVzaWduIGRvYy4KCSAgQWRkIHZhcmlvdXMgdW5pdCB0ZXN0cyB0byBjaGVjayB0aGUgZGVzaXJlZCBiZWhhdmlvdXIuCgoyMDEyLTAxLTA2IDEzOjA2OjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiB1bm1hcCB3aXRoIHRoZSByaWdodCBkYXRhIHBvaW50ZXIKCSAgVXNlIHRoZSBvcmlnaW5hbCBkYXRhIHBvaW50ZXIgdG8gdW5tYXAgdGhlIGJ1ZmZlciBtZW1vcnkuCgoyMDEyLTAxLTA2IDEwOjM5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBkb2NzOiBpbXByb3ZlIG1lbW9yeSBkb2NzCgoyMDEyLTAxLTA2IDA3OjAyOjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogaGFuZGxlIC0xIHNpemUgaW4gdW5tYXAKCSAgaGFuZGxlIC0xIGluIHVubWFwIGNvcnJlY3RseSB3aGVuIHRoZSBvZmZzZXQgaXMgbW9kaWZpZWQuCgoyMDEyLTAxLTA2IDA2OjQzOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogaW1wcm92ZSBzZW1hbnRpY3Mgb2YgdW5tYXAKCSAgTWFrZSBhbiB1bm1hcCBjYWxsIHdpdGggYSBkaWZmZXJlbnQgZGF0YSBwb2ludGVyIHRoYW4gdGhlIG1hcCBjYWxsIHVwZGF0ZSB0aGUKCSAgb2Zmc2V0IGZpZWxkLiBUaGlzIGFsbG93cyBmb3IgYm90aCBvZmZzZXQgYW5kIHNpemUgYWRqdXN0ZW1lbnRzIGluIHRoZSB1bm1hcAoJICBjYWxsLgoKMjAxMS0xMS0yOSAxNDoyMjo0NCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZG9uJ3QgY29tcGVuc2F0ZSBmb3IgcmVuZGVyLWRlbGF5IHR3aWNlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTgKCjIwMTItMDEtMDUgMTg6MTU6MjAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBhZGQgbW9yZSBjaGVja3MKCSAgQWRkIGNoZWNrIGZvciBtYXBwaW5nIGFuZCByZXNpemluZwoKMjAxMi0wMS0wNSAxNzoyODoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWVtb3J5LnR4dDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogdGFrZSBvZmZzZXQgaW50byBhY2NvdW50CgkgIFRha2UgdGhlIG9mZnNldCBpbnRvIGFjY291bnQgd2hlbSBtYXBwaW5nIGFuZCB1bm1hcHBpbmcgdGhlIGJ1ZmZlci4KCjIwMTItMDEtMDUgMTc6MDI6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkgIGRvY3M6IGNsYXJpZnkgcmVzaXplIGFuZCBjdXJyZW50IG1hcHBpbmdzCgoyMDEyLTAxLTA1IDE2OjQxOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIG1lbW9yeTogY2xhcmlmeSBuZXN0ZWQgbWFwcGluZ3MsIGFkZCB1bml0IHRlc3QKCjIwMTItMDEtMDUgMTI6MzA6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCjIwMTItMDEtMDUgMTM6MjI6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3RzOiBhZGQgbW9yZSBtZW1vcnkgdW5pdCB0ZXN0cwoJICBDaGVjayBmb3IgdW5tYXAgd2l0aCBpbnZhbGlkIHNpemUKCjIwMTItMDEtMDUgMTM6MTE6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVtb3J5LmM6CgkgIHRlc3RzOiBhZGQgdW5pdCB0ZXN0IGZvciBHc3RNZW1vcnkKCSAgQWRkIGEgR3N0TWVtb3J5IHVuaXQgdGVzdAoJICBBZGQgc29tZSBtb3JlIGFzc2VydHMgaW4gR3N0TWVtb3J5IHRvIGNhdGNoIGludmFsaWQgY2FzZXMuCgoyMDEyLTAxLTA1IDEzOjA5OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFkZCBtYWNybyB0byBjaGVjayBmb3IgbWVtb3J5IHJlZmNvdW50CgoyMDEyLTAxLTA1IDEyOjM5OjE3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBpbXByb3ZlIGRvY3MgYSBsaXR0bGUKCjIwMTEtMTItMTYgMTM6MTE6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBBZGQgdGVzdHMgZm9yIHRoZSBiaXRtYXNrIHR5cGUKCjIwMTEtMTItMTYgMTI6Mzk6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IEFkZCAiYml0bWFzayIgYXMgYWxpYXMgZm9yIChHc3RCaXRtYXNrKSB3aGVuIChkZS0pc2VyaWFsaXppbmcgdmFsdWVzCgoyMDExLTEyLTE2IDEyOjMyOjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgdmFsdWU6IEFkZCA2NC1iaXQgYml0bWFzayB0eXBlCgoyMDEyLTAxLTAxIDE2OjMyOjI3ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYnVpbGQ6IGRvbid0IG91dHB1dCBjb25maWd1cmUgb3B0aW9ucyB2aWEgYXV0b2dlbiBpZiAkTk9DT05GSUdVUkUgaXMgc2V0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyOTYKCjIwMTItMDEtMDUgMDA6MzA6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC1pMThuLWFwcC5oOgoJKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgIGdzdDogaW5jbHVkZSBsb2NhbGUuaCBiZWZvcmUgYW55IG90aGVyIGkxOG4gaGVhZGVycwoJICBUaGlzIGlzIGFsc28gaG93IHdlIGRvIGl0IGluIC1iYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3MjkwCgoyMDEyLTAxLTAxIDE2OjQ2OjA0ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgZ3N0Y29uZmlnLmg6IGFkZHMgYW5kIHVzZXMgU3VuUHJvIHZpc2liaWxpdHkgYXR0cmlidXRlIGZvciBwcm9wZXIgZnVuY3Rpb24gZXhwb3J0cwoJICBEZWZpbmUgR1NUX0VYUE9SVCBmb3IgU3VuUHJvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3Mjg5CgoyMDEyLTAxLTAxIDE2OjQ3OjE0ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgcGx1Z2luczogZXhwbGljaXRseSBjYXN0IGluaXRpYWxpemF0aW9uIHZhbHVlcyB0byB0aGUgY29ycmVjdCB0eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjcyODgKCjIwMTItMDEtMDEgMjA6MTc6NDEgKzAxMDAgIElkYXIgVG9sbGVmc2VuIDxpdG9sbGVmc0BjaXNjby5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbmNsdWRlIGNvcnJlY3QgcG9sbC5oIGJhc2VkIG9uIGF1dG9jb25mIHRlc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4NgoKMjAxMi0wMS0wNCAyMzo0NjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogY2hlY2sgZm9yIHN5cy9wb2xsLmgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzI4NgoKMjAxMi0wMS0wNCAxOTo1MDowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGE2MmYzZDQgdG8gMDgwNzE4NwoKMjAxMi0wMS0wNCAxMDowNDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBvbmx5IHJlc2VydmUgNiBleHRyYSBmbGFncwoJICBPbmx5IHJlc2VydmUgNiBleHRyYSBmbGFncyBpbnN0ZWFkIG9mIDEwIHNvIHRoYXQgbW9yZSBtZWRpYSBzcGVjaWZpYyBmbGFncwoJICBhcmUgYXZhaWxhYmxlLgoKMjAxMi0wMS0wMyAxNToyNTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgR1NUX0ZMT1dfVU5FWFBFQ1RFRCAtPiBHU1RfRkxPV19FT1MKCjIwMTItMDEtMDMgMTU6MDU6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGNvbXBhdDogcmVzdG9yZSBVTkVYUEVDVEVECgoyMDEyLTAxLTAzIDE1OjAzOjM4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmM6CgkgIGRvY3M6IGZpeCBzb21lIGRvY3MKCjIwMTItMDEtMDMgMTQ6NDU6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlCgoyMDEyLTAxLTAzIDE0OjQzOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogYXZvaWQgZXhwb3NpbmcgdGhlIGxpc3RzIGluIHRhZ3MKCjIwMTItMDEtMDMgMTM6NDI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiBhZGQgbWlzc2luZyBmdW5jdGlvbnMKCSAgQWRkIG1pc3NpbmcgYW5kIGVzc2VudGlhbCBmdW5jdGlvbnMgbm93IHRoYXQgd2UgY2FuJ3QgZGlyZWN0bHkgdXNlIEdzdFN0cnVjdHVyZQoJICBtZXRob2RzIG9uIHRoZSB0YWdsaXN0IGFueW1vcmUuCgoyMDEyLTAxLTAzIDEwOjQyOjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBhZGQgbWFjcm8gdG8gY2hlY2sgaWYgYSBndmFsdWUgaG9sZHMgYSBzYW1wbGUKCjIwMTItMDEtMDIgMTU6NDc6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICBkb2NzOiBmaXggYnVpbGQgb2YgZG9jcyBleGFtcGxlcwoJICBVcGRhdGUgZm9yIHJlZ2lzdHJ5IG1ldGhvZCByZW5hbWUKCjIwMTItMDEtMDIgMTU6Mzk6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHR1cm4gYXNzZXJ0IGludG8gYSByZWFsIGVycm9yCgkgIFBvc3QgYSByZWFsIGVycm9yIGluc3RlYWQgb2YganVzdCBhc3NlcnRpbmcuCgoyMDEyLTAxLTAyIDE1OjM4OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGhhbmRsZSBsYXRlbmN5IGV2ZW50CgoyMDEyLTAxLTAyIDAyOjMyOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IGdldCByaWQgb2YgZ3N0X2RlZmF1bHRfcmVnaXN0cnlfKigpIGNvbnZlbmllbmNlIG1hY3JvcwoJICBUaGV5J3JlIG5vdCByZWFsbHkgd29ydGggaXQ6IGhhcmRseSBzYXZlIGFueSB0eXBpbmcsIGFuZCBhcmVuJ3QKCSAgZ3JlYXQgZm9yIGJpbmRpbmdzIG9yIGdvYmplY3QtaW50cm9zcGVjdGlvbi4KCjIwMTItMDEtMDIgMDI6MjI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IHJlbmFtZSBnc3RfcmVnaXN0cnlfZ2V0X2RlZmF1bHQoKSB0byBnc3RfcmVnaXN0cnlfZ2V0KCkKCSAgSXQncyBub3QgcmVhbGx5IGEgZGVmYXVsdCBpZiB0aGVyZSBpcyBvbmx5IG9uZSB0aGF0IGNhbid0IGJlIGNoYW5nZWQuCgkgIFNob3VsZCB3ZSByZXR1cm4gYSByZWYgbGlrZSBlLmcuIGdfdm9sdW1lX21vbml0b3JfZ2V0KCkgZG9lcz8KCjIwMTItMDEtMDIgMDI6MjE6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHRhZ2xpc3QuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmMKCjIwMTItMDEtMDIgMDA6MTc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogYWRkIEdTVF9UQUdfTEFOR1VBR0VfTkFNRQoJICBBUEk6IEdTVF9UQUdfTEFOR1VBR0VfTkFNRQoKMjAxMi0wMS0wMSAyMDo1OToyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZGVzaWduL3BhcnQtY29udHJvbGxlci50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBjb250cm9sbGVyIGRlc2lnbiBkb2MKCjIwMTItMDEtMDEgMjA6NTc6MzQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcmVuYW1lIHNvbWUgdGVzdHMKCjIwMTItMDEtMDEgMjA6NTU6MjAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHN1cHBvcnQgY29udHJvbCBtYXBwaW5nIGZvciBlbnVtcwoJICBBZGQgYSBtYXBwaW5nIGZvciBlbnVtIHR5cGVzIChzdXBwb3J0aW5nIHNwYXJzZSBlbnVtcykuIEFkZCBhIHRlc3QuCgoyMDEyLTAxLTAxIDIwOjQzOjUxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBub25zZW5zZSBwYXJ0cyBmcm9tIHRlc3Qgb2JqZWN0IHByb3BlcnR5IGRlc2NyaXB0aW9ucwoKMjAxMi0wMS0wMSAxODo1NDoyMyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IGZpeCBjdWJpYyBpbnRlcnBvbGF0aW9uIGZvciBhcnJheXMKCjIwMTItMDEtMDEgMTg6NTA6NTUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2NvbnRyb2wtc291cmNlcy5jOgoJICBhdWRpby1leGFtcGxlOiBhbHNvIHBsb3QgcmV2ZXJzZS1zYXcKCjIwMTItMDEtMDEgMTg6NDM6MjMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogY2xlYW51cHMgYW5kIGZpeCB0cmlhbmdsZSBjYWxjdWxhdGlvbnMKCjIwMTItMDEtMDEgMTg6MzQ6MTIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgYXVkaW8tZXhhbXBsZTogZml4IHRoZSBleGFtcGxlCgkgIFdlIG5lZWQgdG8gc2NhbGUgdGhlIGZyZXF1ZW5jeSB2YWx1ZXMuCgoyMDEyLTAxLTAxIDE1OjE2OjA2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IG1ha2UgY2hhaW5hYmxlCgkgIE5vdyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGNvbnRyb2xzb3VyY2UgYXJlIGluIHR1cm4gY29udHJvbGFibGUuIEFkZCBhbiBleGFtcGxlCgkgIHRvIHNob3cgdGhlIHVzYWdlLgoKMjAxMi0wMS0wMSAxNTowMToyMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogYWRkIGxvZ2dpbmcgYW5kIGZpeCBhcnJheSBmdW5jdGlvbnMKCjIwMTItMDEtMDEgMTQ6NTU6MzUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogY2xlYW51cCB0aGUgdGVzdHMKCjIwMTItMDEtMDEgMTQ6Mjg6NTQgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGJpbmRpbmcuYzoKCSAgY29udHJvbGxlcjogYWRkIG1vcmUgZGVidWcgbG9nZ2luZwoKMjAxMS0xMi0zMSAxNzozNzoyMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY29udmVydCBNYWtlZmlsZSBzcGFjZXMgdG8gdGFicwoKMjAxMS0xMi0zMSAxNTo1MjoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2xsZXI6IGFsc28gdGVzdCBhcnJheSBmdW5jdGlvbnMKCSAgSW1wcm92ZSB0aGUgZXhhbXBsZSB0byBhbHNvIGNvbGxlY3QgdmFsdWUgYXJyYXlzIGFuZCBwbG90IHRoZW0uCgoyMDExLTEyLTMxIDE1OjI2OjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgb2Jzb2xldGUgRklYTUUgY29tbWVudAoKMjAxMS0xMi0zMSAwOTo1Njo1MyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmaXggdGVzdHMKCSAgU2V0IGEgZGVmaW5lZCB2YWx1ZSB0byBjaGVjayBmb3Igbm8tY2hhbmdlLgoKMjAxMS0xMi0zMCAxODozNTo0MCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2wtc291cmNlczogdHVybiBpbnRvIEdzdE9iamVjdHMKCSAgVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBjaGFpbmluZyB0aGVtLgoKMjAxMS0xMi0zMCAxOTozNzozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWFyc2hhbC5saXN0OgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgcGFkZGluZyBhbmQgc2lnbmFsIHZmdW5jcwoJICBBbmQgZml4IHNpZ25hbCBHVHlwZXMgYW5kIG1hcnNoYWxsZXIuIE5vIG9uZSB3aWxsIGV2ZXIKCSAgbmVlZCB0byBzdWJjbGFzcyBvdXIgcmVnaXN0cnksIHNvIGp1c3QgcmVtb3ZlIHRoZSBwYWRkaW5nCgkgIGFuZCB0aGUgc2lnbmFsIHZmdW5jcy4KCjIwMTEtMTItMzAgMTU6Mzk6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBkaXNhYmxlIEdzdEluZGV4IHVuaXQgdGVzdAoKMjAxMS0xMi0zMCAxNTozMToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0aW5kZXguaDoKCSogbGlicy9nc3QvYmFzZS9nc3RtZW1pbmRleC5jOgoJICBpbmRleDogcmVuYW1lIEdzdEFzc29jRmxhZ3MgdG8gR3N0SW5kZXhBc3NvY2lhdGlvbkZsYWdzCgkgIEp1c3QgaW4gY2FzZSB3ZSByZXN1cnJlY3QgdGhpcyBsYXRlci4KCjIwMTEtMTItMzAgMTU6MjQ6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSAgYmFzZTogZGlzYWJsZSB1bnVzZWQgaW5kZXggQVBJIGFuZCBtYWtlIGZ1bmN0aW9ucyBzdGF0aWMKCSAgSXQncyBzaW1wbHkgcHJpdmF0ZSBoZWxwZXIgQVBJIGZvciBub3csIHVudGlsIHNvbWVvbmUKCSAgZml4ZXMgdXAgR3N0QmFzZVBhcnNlIG5vdCB0byBuZWVkIGl0IGFueSBtb3JlLgoKMjAxMS0xMi0zMCAxNToyNDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHJlbW92ZSBpbmRleCBBUEkgZnJvbSAuZGVmIGZpbGUKCjIwMTEtMTItMzAgMTU6MDY6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogYWRkIExBUkdFIHBhZGRpbmcgdG8gY2xhc3Mgc3RydWN0dXJlCgkgIEZvdXIgc2xvdHMgZm9yIGV4cGFuc2lvbiBpcyBub3QgYSBsb3QuCgoyMDExLTEyLTMwIDE1OjAzOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXguaDoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RpbmRleC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGluZGV4Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0bWVtaW5kZXguYzoKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuaDoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGluZGV4OiByZW1vdmUgR3N0SW5kZXggYW5kIEdzdEluZGV4RmFjdG9yeSBmb3Igbm93CgkgIFRoZXJlIGFyZSBtYW55IGdvb2QgdXNlIGNhc2VzIGZvciBHc3RJbmRleCBhbmQgd2Ugd2FudAoJICB0byBhZGQgaXQgYmFjayBhZ2FpbiBpbiBzb21lIGZvcm0sIGJ1dCBwb3NzaWJseSBub3Qgd2l0aAoJICB0aGUgY3VycmVudCBBUEksIHdoaWNoIGlzIHZlcnkgcG93ZXJmdWwgKG1heWJlIHRvbyBwb3dlcmZ1bCksCgkgIGJ1dCBhbHNvIGEgYml0IGNvbmZ1c2luZy4gQXQgdGhlIHZlcnkgbGVhc3Qgd2UnZCBuZWVkIHRvCgkgIG1ha2UgdGhlIEFQSSBiaW5kaW5ncy1mcmllbmRseS4KCjIwMTEtMTItMzAgMTc6NTc6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogdW5yZWYgdGhlIHR3byBjb3Rucm9sbGVyIHR5cGVzIGluIF9kZWluaXQoKQoKMjAxMS0xMi0zMCAxNzo1MTowMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBtb3JlIHRlc3RzIHRvIGNvcmUgY29udHJvbGxlciBzdWl0ZQoJICBFeHRlbmQgdGhlIGR1bW15IGNvbnRyb2wtc291cmNlIHRvIGFsbG93IHRlc3RpbmcgdGhlIHN5bmMgY29kZSBwYXRoLiBBZGQgdGVzdAoJICBmb3IgMToxIGFuZCAyOjEgdmFsdWUgPC0+IGNvbnRyb2wtc291cmNlIHN5bmMuCgoyMDExLTEyLTMwIDEzOjUyOjA4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIGEgdGVzdCBmb3IgYmluZGluZ3MgY29udHJvbCBzb3VyY2VzIG11bHRpcGxlIHRpbWVzCgoyMDExLTEyLTMwIDEyOjU5OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJICBtYXRoLWNvbXBhdDogbW92ZSBzdGF0aWMgdmFyaWFibGUgZm9yIE5BTiBpbnRvICNpZm5kZWYgTkFOIGJsb2NrCgkgIEFuZCB1c2UgR19HTlVDX1VOVVNFRCBpbnN0ZWFkIG9mIF9fYXR0cmlidXRlX3VzZWRfXwoKMjAxMS0xMi0zMCAxMzozMjoxOCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9tYXRoLWNvbXBhdC5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogdXNlIE5BTiBpbnN0ZWFkIG9mIEZQX05BTiAod2hpY2ggaXMgdGhlIGNsYXNzKQoJICBBbHNvIGFkZCBhIGZhbGxiYWNrIGRlZmluZSB0byBtYXRoLWNvbXBhdC5oLgoJICBGaXhlcyAjNjY2ODg3CgoyMDExLTEyLTI5IDE2OjU2OjQ2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogRG8gbm90IGZhbHNlIHdhcm4gYWJvdXQgdW5saW5rZWQgcGFkCgkgIFdoZW4gb3V0cHV0LXNlbGVjdG9yIGRpZG4ndCByZWNlaXZlIGEgbmV3c2VnbWVudCBldmVudCBpdCB3b3VsZAoJICB3YXJuIGFib3V0IHBhZCBiZWluZyB1bmxpbmtlZCB3aGVuIHN3aXRjaGluZyBwYWRzLiBNYWtpbmcgdGhlIGxvZ3MKCSAgd3JvbmcgYW5kIG1pc2xlYWRpbmcuCgoyMDExLTEyLTI5IDE2OjQ5OjM5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMi0yOCAxNToxMzowOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBGaXggbGVhayBpbiBwYWQgY2hlY2sKCjIwMTEtMTItMjggMTQ6NTE6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogZGVpbml0IG1ldGEgZmxhZ3MgdG9vCgoyMDExLTEyLTI4IDEyOjI1OjU5ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBJbml0aWFsaXplIG5ldyBHc3RNZXRhRmxhZ3MgaW4gaW5pdF9wb3N0KCkKCjIwMTEtMTItMDEgMTk6MDU6NTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBTbWFsbCBkb2MgZml4dXBzCgoyMDExLTEyLTE2IDAyOjIwOjI3ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkgIHdpbjMyOiBmaXggZXhwb3J0ZWQgdmFyaWFibGVzIGZvciBWUyAyMDEwCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYyMTkKCjIwMTEtMTItMjcgMTM6NDg6MzYgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIHRyaWdnZXJjb250cm9sc291cmNlOiBmaXggY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbgoJICBSZXR1cm4gTkFOIGFuZCBjaGVjayB0aGUgdmFsdWUgZnVydGhlciB1cC4KCSAgRml4ZXMgIzY2Njg5MAoKMjAxMS0xMi0yNyAxMTo0MDo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRyaWdnZXJjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHF1aWNrLWZpeCBjb21waWxlciB3YXJuaW5nIGJyZWFraW5nIHRoZSBidWlsZAoJICBUaGlzIGlzIGxpa2VseSBub3QgdGhlIHByb3BlciBmaXguCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjY4OTAKCjIwMTEtMTItMjcgMTE6MzU6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICB0ZXN0czogY2FuJ3QgYWNjZXNzIHByaXZhdGUgcmVnaXN0cnkgc3RydWN0dXJlIG1lbWJlcnMgZGlyZWN0bHkgYW55IGxvbmdlcgoKMjAxMS0xMi0yNyAxMToyNDo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBjb21waWxlciB3YXJuaW5nIGluIGludGVycG9sYXRpb24gY29udHJvbCBzb3VyY2UKCSAgZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzo1NDogd2FybmluZzogdHlwZSBxdWFsaWZpZXJzIGlnbm9yZWQKCSAgb24gZnVuY3Rpb24gcmV0dXJuIHR5cGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2Njg5MAoKMjAxMS0xMi0yNiAxODo0NDozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcmVtb3ZlICJmZCIgcHJvcGVydHkKCSAgSXQncyBubyBsb25nZXIgdXNlZnVsLCBzaW5jZSB3ZSBkb24ndCB1c2UgbW1hcCBhbnkgbW9yZSBhbnl3YXksCgkgIGFuZCB3ZSBtaWdodCB1c2UgYSBkaWZmZXJlbnQgQVBJIGZvciBJL08gaW4gZnV0dXJlIChzdWNoIGFzIEdJTykuCgoyMDExLTEyLTI2IDE4OjQxOjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBtb3ZlIHByaXZhdGUgYml0cyBpbnRvIHByaXZhdGUgc3RydWN0CgoyMDExLTEyLTI2IDExOjI2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogbWljcm8tb3B0aW1pc2F0aW9uOiBhdm9pZCBzb21lIHVubmVjZXNzYXJ5IGdfdmFsdWVfdW5zZXQoKQoJICBXZSBrbm93IHRoZXJlJ3Mgbm90aGluZyB0byBkbyBoZXJlIGFuZCBjYW4gc2F2ZSB1cyB0aGUgZnVuY3Rpb24KCSAgY2FsbHMgYW5kIEdWYWx1ZVRhYmxlIGxvb2t1cHMuCgoyMDExLTEyLTI1IDIzOjQxOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIEFuZHJvaWQubWs6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RwLXByaXZhdGUuaDoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bGlic2NwcC5jYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHdpbjMyL01BTklGRVNUOgoJKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSogd2luMzIvdnM2L2xpYmdzdGRhdGFwcm90b2NvbC5kc3A6CgkgIGxpYnM6IHJlbW92ZSBnZHAgZGF0YXByb3RvY29sIGxpYnJhcnkKCSAgTWFkZSBwcml2YXRlIGFuZCBtb3ZlZCB0byBnZHAgcGx1Z2luIGluIC1iYXNlIGZvcgoJICB0aGUgdGltZSBiZWluZywgdW50aWwgd2UgZmlndXJlIG91dCB3aGF0IHdlIGRvIHdpdGgKCSAgZ2RwIGFuZCAwLjExLgoKMjAxMS0xMi0yNSAyMTowMjo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgdGVzdHM6IGZpeCB1bnVzZWQtdmFyaWFibGUgY29tcGlsZXIgd2FybmluZwoKMjAxMS0xMi0yNSAyMTowMTo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgZm9yIG5ldyBBUEkKCjIwMTEtMTItMjUgMjA6NDk6NDEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnRyb2xsZXIudHh0OgoJICBkb2NzOiBhZGQgdGhlIHN0YXJ0IG9mIGEgZGVzaWduIGRvY3VtZW50IGZvciBjb250cm9sbGVyCgoyMDExLTEyLTI1IDE4OjQ5OjAxICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rjb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBzcGxpdCBhbmQgY2xlYW51cCB0aGUgdGVzdHMKCSAgVGhlIGNvbnRyb2xsZXIgb2JqZWN0IHdhcyBvbmNlIGNvcGllZCBmcm9tIGJ1enp0YXJkcyB1bml0IHRlc3RzLiBDaGFuZ2UKCSAgVGVzdE1vbm9Tb3VyY2UgdG8gVGVzdE9iaiBhcyBpdCBpcyBub3QgYSBmdWxsIGZsZWRnZWQgZWxlbWVudC4gU3BsaXQgdGhlIHRlc3RzCgkgIGludG8gYSBjb3JlIGFuZCBsaWJyYXJ5IHRlc3Qgc3VpdGUuCgoyMDExLTEyLTIyIDIzOjQ4OjMwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvY29udHJvbC1zb3VyY2VzLmM6CgkgIGNvbnRyb2xsZXI6IG1vdmUgR1ZhbHVlIGhhbmRsaW5nIGZyb20gY29udHJvbC1zb3VyY2VzIHRvIC1iaW5kaW5nCgkgIENvbnRyb2xTb3VyY2VzIGFyZSBub3cgZ2RvdWJsZSBiYXNlZC4gQSBjb250cm9sIHNvdXJjZSBpcyBtYXBwZWQgdG8gYQoJICBwYXJ0aWN1bGxhciBHT2JqZWN0IHByb3BlcnR5IHVzaW5nIGEgQ29udHJvbEJpbmRpbmcuCgoyMDExLTEyLTIwIDIyOjM2OjE4ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNvbnRyb2xiaW5kaW5nLmM6CgkqIGdzdC9nc3Rjb250cm9sYmluZGluZy5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogbW92ZSBHc3RDb250cm9sbGVkUHJvcGVydHkgaW50byBhIHNlcGFyYXRlIGNsYXNzCgkgIEFkZCBhIEdzdENvbnRyb2xCaW5kaW5nIGNsYXNzLiBUaGlzIGlzIGEgcHJlcGFyYXRpb24gZm9yIG1ha2luZyB0aGUKCSAgY29udHJvbHNvdXJjZXMgZ2VuZXJhdGUgZG91YmxlIHZhbHVlZCBjb250cm9sIGN1cnZlcyBhbmQgZG8gdGhlIGdwYXJhbXNwZWMKCSAgbWFwcGluZyBpbiB0aGUgY29udHJvbCBiaW5kaW5nLiBOb3cgdGhlIEFQSSBpbiBHc3RPYmplY3QgaXMgYWdhaW4gbW9zdGx5CgkgIGZvciBjb252ZW5pZW5jZS4KCjIwMTEtMTItMjUgMTI6NDc6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmMKCjIwMTEtMTItMjUgMTI6Mzk6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmM6IHJldHVybiBhbnkgcmVtYWluaW5nIGRhdGEgb24gRU9TIGJlZm9yZSByZXR1cm5pbmcgRkxPV19VTkVYUEVDVEVECgoyMDExLTEyLTI1IDEyOjI5OjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBtaW5vciBjb3NtZXRpYyBjaGFuZ2VzCgkgIFJlbmFtZSB3b2Zmc2V0IHZhcmlhYmxlLCBtYWludGFpbiBzZXBhcmF0ZSBieXRlc19yZWFkIGluIGFkZGl0aW9uCgkgIHRvIGxlbmd0aCB2YXJpYWJsZS4KCjIwMTEtMTItMjUgMTI6MTM6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBmaXggdXAgY29tcGlsYXRpb24gYWZ0ZXIgbWVyZ2UKCjIwMTEtMTItMjUgMTE6NTg6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jCgkgIERpdCBub3QgbWVyZ2UgY29udHJvbGxlciBvciBiYXNldHJhbnNmb3JtIGNoYW5nZXMuCgoyMDExLTEyLTI0IDE0OjU5OjE2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZy10by0wLjExCgkgIFVwZGF0ZSBnc3RfcGFkX2dldF9jYXBzIC0+IGdzdF9wYWRfcXVlcnlfY2FwcyBjaGFuZ2UKCjIwMTEtMTItMjMgMTU6Mzc6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBjbGVhbnVwIG1ldGFkYXRhIGluIHJlc2V0X2J1ZmZlcgoJICBVc2UgdGhlIHJlc2V0X2J1ZmZlciB2bWV0aG9kIHRvIHJlbW92ZSB0aGUgdW5wb29sZWQgbWV0YWRhdGEgZnJvbSB0aGUgYnVmZmVyLgoKMjAxMS0xMi0yMiAxNjowMDoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWY6IHVwZGF0ZSBmb3IgbmV3IHN5bWJvbHMKCjIwMTEtMTItMjIgMTU6NTU6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBoYW5kbGUgbWV0YWRhdGEgaW4gdGhlIHBvb2wKCSAgTWFyayBhbGwgbWV0YWRhdGEgb24gdGhlIGFsbG9jYXRlZCBidWZmZXJzIHdpdGggYSBQT09MRUQgZmxhZy4gV2hlbiBhIGJ1ZmZlcgoJICByZXR1cm5zIHRvIHRoZSBwb29sLCByZW1vdmUgYWxsIG1ldGFkYXRhIHRoYXQgZGlkIG5vdCBoYXZlIHRoZSBQT09MRUQgZmxhZy4gVGhpcwoJICBtYWtlcyBzdXJlIHRoYXQgd2UgbmV2ZXIgbGVhdmUgdW5rbm93biBtZXRhZGF0YSB0byB0aGUgYnVmZmVycyBpbiB0aGUgcG9vbC4KCjIwMTEtMTItMjIgMTU6NTQ6MDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgZm9yZWFjaCBmdW5jdGlvbiBmb3IgdGhlIG1ldGFkYXRhCgoyMDExLTEyLTIyIDE1OjUzOjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogc21hbGwgZG9jIGZpeAoKMjAxMS0xMi0yMiAxNTo1MjowOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogYWRkIG1ldGFkYXRhIGZsYWdzCgkgIEFkZCBtZXRhZGF0YSBmbGFncyBzbyB0aGF0IHdlIGNhbiBzZXQgZXh0cmEgcHJvcGVydGllcyBvZiB0aGUgbWV0YWRhdGEKCjIwMTEtMTItMDIgMTQ6MTA6MzIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBvbmx5IGhhdmUgYSB0b3AtbGV2ZWwgcGlwZWxpbmUgZG8gcGlwZWxpbmUgbWFuYWdlbWVudAoJICBGaXhlcyAjNjY1MzkwLgoKMjAxMS0xMi0yMiAxMTowODo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBHVHlwZSBuYW1lIG9mIGludGVycG9sYXRpb24gbW9kZSBlbnVtCgoyMDExLTEyLTIxIDExOjEzOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZjogdXBkYXRlCgoyMDExLTEyLTIxIDExOjA4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogcmVuYW1lIHZhcmlhYmxlIGZvciBjb25zaXN0ZW5jeQoJICBSZW5hbWUgdGhlIHZhcmlhYmxlIGZvciBHU1RfQ0FQU19OT05FIHRvIF9nc3RfY2Fwc19ub25lIGZvciBjb25zaXN0ZW5jeSBhbmQgdG8KCSAgaGllIHRoZSBmYWN0IHRoYXQgTk9ORSBjYXBzIGFyZSBhbHNvIGFjY2lkZW50YWxseSBlbXB0eSBjYXBzLgoKMjAxMS0xMi0xOSAxNDoyNzo0NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSWYgdGhlIGZpbHRlcmVkIHBlZXIgY2FwcyBhcmUgYWxyZWFkeSBlbXB0eSBlcnJvciBvdXQgZWFybHkKCjIwMTEtMTItMjAgMTM6MjE6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmOiB1cGRhdGUgZGVmcwoKMjAxMS0xMi0yMCAxMzoxNDowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IGFkZCBBTlkgYW5kIEVNUFRZIHNpbmdsZXRvbnMKCSAgQWRkIGEgc2luZ2xldG9uIGZvciBBTlkgYW5kIEVNUFRZIGNhcHMgYW5kIG1ha2UgdGhlIEdTVF9DQVBTX0FOWSBhbmQKCSAgR1NUX0NBUFNfTk9ORSBwb2ludCB0byB0aGVtLiBUaGlzIG1ha2VzIHRoZSBBUEkgbW9yZSBjb25zaXN0ZW50IG5vdwoJICB0aGF0IHRoZSBtYWNybyBkb2VzIG5vdCBtYWdpY2FsbHkgY3JlYXRlIGEgcmVmLiBJdCBhbHNvIHNvbHZlcyBzb21lIGxlYWtzIGluCgkgIHBsYWNlcyB3aGVyZSB0aGUgbWFjcm8gd2FzIHVzZWQgdG8gcmVnaXN0ZXIgYSBwYWR0ZW1wbGF0ZS4KCjIwMTEtMTItMjAgMTM6MTM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIHJlbW92ZSBjb25zdCBpbiBnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKCkKCSAgUmVtb3ZlIHRoZSBjb25zdCBmcm9tIHRoZSBHc3RDYXBzIGluIGdzdF90eXBlX2ZpbmRfcmVnaXN0ZXIoKSBiZWNhdXNlIHRoZQoJICBmdW5jdGlvbiB0YWtlcyBhIHJlZiB0byB0aGUgY2Fwcy4KCjIwMTEtMTItMjAgMTI6NTk6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIGRlZnM6IHVwZGF0ZQoKMjAxMS0xMi0yMCAxMTozODoxOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSB1bnVzZWQgcGFyZW50X2NsYXNzIHZhcnJpYWJsZSBmcm9tIGNvbnRyb2xzb3VyY2UKCjIwMTEtMTItMTkgMjM6MzI6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogY2xlYW51cCBpbnRlcnBvbGF0aW9uIG1vZGVzCgkgIFJlbW92ZSBkZXByZWNhdGVkL3VuaW1wbGVtZW50ZWQgbW9kZXMuIFR1cm4gaW50ZXJwb2xhdGlvbiBtb2RlIGludG8gYSBnb2JqZWN0CgkgIHByb3BlcnR5LiBVcGRhdGUgZG9jcyBhbmQgZXhhbXBsZXMuCgoyMDExLTEyLTE5IDExOjEzOjQ1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZXByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0aW1lZHZhbHVlY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdHRpbWVkdmFsdWVjb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0dHJpZ2dlcmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3R0cmlnZ2VyY29udHJvbHNvdXJjZS5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sc291cmNlczogcmVmYWN0b3IgaW50ZXJwb2xhdGlvbiBjb250cm9sIHNvdXJjZQoJICBNb3ZlIG1vc3Qgb2YgdGhlIGNvZGUgdG8gYSBHc3RUaW1lZFZhbHVlQ29udHJvbFNvdXJjZS4gU3BsaXQgb3V0IHRoZSB0cmlnZ2VyCgkgICdpbnRlcnBvbGF0aW9uIG1vZGUnIHRvIGEgbmV3IGNvbnRyb2wgc291cmNlIGNsYXNzLiBNb3ZlIHRlc3RzIGFuZCBleGFtcGxlcyB0bwoJICBuZXcgYXBpLiBVcGRhdGUgZG9jcy4KCSAgRml4ZXMgIzYxMDMzOAoKMjAxMS0xMi0xOSAyMjowMTowMiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBjb250cm9sc291cmNlOiBjbGVhbiB1cCBsZm8gY29udHJvbCBzb3VyY2UKCSAgUmVtb3ZlIHBhcmVudF9jbGFzcyBhbmQgdXNlIHZhciBmcm9tIEdfREVGSU5FX1RZUEUgbWFjcm8uIFJlbW92ZSB1bnVzZWQgZGlzcG9zZQoJICBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMTItMTkgMjA6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogYWRkIG5ldyBjb2xsZWN0cGFkczIgZnVuY3Rpb24gdG8gLmRlZiBmaWxlCgoyMDExLTEyLTE2IDE3OjU5OjIyICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogYWRkIGNvbnZlbmllbmNlIGNsaXBwaW5nIGZ1bmN0aW9uCgkgIC4uLiB3aGljaCBhbHNvIGNvbnZlcnRzIHRvIHJ1bm5pbmcgdGltZTsgdXNlZnVsIGZvciB0eXBpY2FsIG11eGVyLgoKMjAxMS0xMi0xOSAxNzozODoxOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZG8gbm90IGRlbGF5IHNwYXJzZSBzdHJlYW0gbmV3c2VnbWVudCB1cGRhdGVzCgoyMDExLTEyLTE5IDE3OjAwOjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IG1ha2Ugc3ViY2xhc3NlcyBhZGQgb3RoZXIgZmxhZ3MKCSAgQWRkIEdTVF9NQVBfRkxBR19MQVNUIHNvIHRoYXQgaW1wbGVtZW50YXRpb25zIGNhbiBhZGQgYWRkaXRpb25hbCBmbGFncyB3aGVuCgkgIG1hcHBpbmcgbWVtb3J5LgoKMjAxMS0xMi0xOSAxMjozMzoxOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc3VnZ2VzdGlvbiBjb21wYXRpYmxlIHdpdGggdXBzdHJlYW0gaXMgbm90IG11Y2ggb2YgYSBzdWdnZXN0aW9uCgkgIC4uLiBpbiB0aGF0IHVwc3RyZWFtIGlzIGFscmVhZHkgY29tcGx5aW5nIHdpdGggdGhhdCBzdWdnZXN0aW9uLgoJICBGaXhlcyAjNjY2MTc0LgoKMjAxMS0xMi0xNSAxNDozMTowNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJICBjb2xsZWN0cGFkczI6IGRlbGF5IGNvbGxlY3RpbmcgYnVmZmVyIGlmIGEgcGFkIG5ld2x5IHNldCB3YWl0aW5nCgkgIC4uLiBhcyBjb21tZW50ZWQ7IG1ha2UgY29kZSBjb3JyZXNwb25kIHRvIGl0IChhZ2FpbikuCgoyMDExLTEyLTE1IDE2OjA2OjMwICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgY29udHJvbGxlcjogdXNlciB0aGUgcGFyZW50X2NsYXNzIHZhcnMgZnJvbSBHX0RFRklORV9UWVBFCgoyMDExLTEyLTE0IDEyOjEzOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGFsbG93IE5VTEwgYXMgZmlsdGVyIGNhcHMgYXJndW1lbnQgd2l0aCBxdWVyeV9jYXBzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjE1NAoKMjAxMS0xMi0xMiAxMzowNTozNiArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZG8gbm90IG1pc3Rha2Ugc2hvcnQgcmVhZHMgZm9yIEVPUwoJICBXaGlsZSBsb2NhbCBmaWxlc3lzdGVtcyB3aWxsIHVzdWFsbHkgbm90IGNhdXNlIHNob3J0IHJlYWRzLAoJICB0aGlzIG1heSBoYXBwZW4gb24gc2Vla2FibGUgZmlsZXMgb24gc29tZSByZW1vdGUgZmlsZXN5c3RlbXMuCgkgIEluc3RlYWQsIGxvb3AgdGlsbCB3ZSBnZXQgdGhlIHJlcXVlc3RlZCBhbW91bnQgb2YgZGF0YSwgb3IKCSAgYW4gYWN0dWFsIEVPUyAoaWUsIDAgYnl0ZXMpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1OTIxCgoyMDExLTExLTE0IDAyOjI2OjMxICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBDbGVhciBxdWV1ZWQgZnJhbWVzIHdpdGggb3RoZXIgcXVldWVzCgoyMDExLTEyLTEyIDEyOjExOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiB1c2UgbmV3ICd0cmFuc2ZlciBmbG9hdGluZycgYW5ub3RhdGlvbiBmb3IgZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCkKCSAgUmVxdWlyZXMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIDEuMzEuMSAob2xkZXIgdmVyc2lvbnMgd2lsbAoJICBlcnJvciBvdXQgd2l0aCB0aGF0KS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDA5OQoKMjAxMS0xMi0xMiAxMjowOTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9jcy5wbzoKCSogcG8vZW8ucG86CgkqIHBvL2VzLnBvOgoJKiBwby9zci5wbzoKCSAgcG86IHVwZGF0ZSBsYW5ndWFnZXMKCjIwMTEtMTItMTIgMTI6MDA6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEyLTEyIDExOjU0OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nbGliLWNvbXBhdC5jOgoJICBnbGliLWNvbXBhdDogQWRkIGxpY2Vuc2UgYm9pbGVycGxhdGUgZm9yIExHUEwKCjIwMTEtMTItMTAgMDE6MTY6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vY3MucG86CgkqIHBvL2VvLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZ2wucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zci5wbzoKCSogcG8vdWsucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDExLTEyLTEwIDExOjA4OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHNheSB3ZSBoYW5kbGUgUkVDT05GSUdVUkUgZXZlbnQKCSAgV2UgaGFuZGxlIHRoZSBSRUNPTkZJR1VSRSBldmVudCBzbyByZXR1cm4gVFJVRSBmcm9tIHRoZSBldmVudCBoYW5kbGVyLgoKMjAxMS0xMi0xMCAxMTowNzowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBmb3J3YXJkIG9uIE5VTEwgcGFkcwoJICBUaGUgaXRlcmF0b3IgY2FuIHJldHVybiBOVUxMIGluIHNvbWUgY2FzZXMsIGF2b2lkIHB1c2hpbmcgb24gdGhvc2UKCSAgTlVMTCBwYWRzLgoKMjAxMS0xMi0wNyAxNjowMTowNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcHJlc2V0OiBhbGxvdyBhcHBsaWNhdGlvbnMgdG8gc3BlY2lmeSBhbiBleHRyYSBwcmVzZXQgZGlyCgkgIEFuIGV4dHJhIGFwcGxpY2F0aW9uIHByZXNldCBkaXIgaGVscCB0byBvcmdhbml6ZSBwcmVzZXRzIGNyZWF0ZWQgZm9yIHNwZWNpYWwKCSAgcHVycG9zZXMuIEZpeGVzICM2NjA3NjAKCSAgQVBJOiBnc3RfcHJlc2V0X3NldF9hcHBfZGlyKCksIGdzdF9wcmVzZXRfZ2V0X2FwcF9kaXIoKQoKMjAxMS0xMi0wOSAxMDowMToxNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBzdG9wIHdoZW4gbmVnb3RpYXRpb24gZmFpbHMKCjIwMTEtMTItMDggMTc6MzI6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEyLTA4IDE4OjAwOjAwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggY29kZSBwYXRoIHRvIGNvbWUgdXAgd2l0aCBwb3NzaWJsZSBjYXBzIGlmIGluY29tcGF0aWJsZSBjYXBzIGFyZSBwcm92aWRlZCB0byBidWZmZXJfYWxsb2MoKQoJICBQcmV2aW91cyBjb2RlIGNvdWxkIGFsbW9zdCBuZXZlciB3b3JrIGFuZCB0aGlzIHNob3VsZCBiZSBzbGlnaHRseQoJICBiZXR0ZXIuCgoyMDExLTEyLTA4IDE3OjIxOjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGYWxsIGJhY2sgdG8gdXBzdHJlYW0gcHJvdmlkZWQgY2FwcyBpZiBzdWdnZXN0ZWQgY2FwcyBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGUgc2lua3BhZAoKMjAxMS0xMi0wOCAxNzowNzowNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRmFsbCBiYWNrIHRvIHVwc3RyZWFtIHByb3ZpZGVkIGNhcHMgaWYgZml4YXRpb24gb2Ygc3VnZ2VzdGVkIGNhcHMgZmFpbGVkCgoyMDExLTEyLTA4IDE3OjAyOjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZWZhY3RvciBnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKCkgY29kZQoJICBEb24ndCBjaGVjayBpZiB1cHN0cmVhbSBwcm92aWRlZCBjYXBzIGFyZSBjb21wYXRpYmxlIHdpdGggdXBzdHJlYW0KCSAgYW5kIGRvbid0IHRyeSB0byBmaXhhdGUgdGhlc2UgY2Fwcy4gVGhleSBtdXN0IGJlIGZpeGF0ZWQgaW4gYW55IGNhc2UuCgoyMDExLTEyLTA4IDAwOjQ5OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlcyBmb3IgbGF0ZXN0IEFQSSBhZGRpdGlvbnMKCjIwMTEtMTItMDggMDA6NDc6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgdGVzdHM6IGZpeCB1cCBzZWxlY3RvciB0ZXN0IGFmdGVyIG1lcmdlCgoyMDExLTEyLTA4IDAwOjM5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RpbmRleGZhY3RvcnkuYwoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYwoJICBOb3RlOiBkaWQgbm90IG1lcmdlIGFueSBvZiB0aGUgYmFzZXRyYW5zZm9ybSBjaGFuZ2VzIGZyb20gMC4xMC4KCjIwMTEtMTItMDcgMTc6NTc6NDkgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkbyBub3QgdXNlIGEgYnl0ZSB2YWx1ZSBpbnN0ZWFkIG9mIGEgdGltZSB2YWx1ZSB3aGVuIGJpc2VjdGluZwoJICBUaGlzIGZpeGVzIEZMQUMgc2Vla2luZyBvbiBzb21lIEZMQUMgZmlsZXMuCgoyMDExLTEyLTA3IDExOjA0OjQyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIHNlbGVjdG9yOiBQdXNoIG5ld3NlZ21lbnQgZXZlbnRzIGJlZm9yZSBhbnkgYnVmZmVycyBhcmUgcHVzaGVkIGluIHRoZSB1bml0IHRlc3QKCjIwMTEtMTItMDcgMTE6MDE6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IERvbid0IHNlbmQgYSBORVdTRUdNRU5UIGV2ZW50IGlmIGEgYnVmZmVyIGFycml2ZWQgYmVmb3JlIHRoZSBzZWdtZW50IHdhcyBjb25maWd1cmVkCgoyMDExLTEyLTA3IDExOjAxOjMxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IERvbid0IHNlbmQgbGFzdCBzZWdtZW50L2J1ZmZlciB3aGVuIG5vIHNlZ21lbnQgd2FzIGNvbmZpZ3VyZWQgeWV0CgoyMDExLTEyLTA3IDA5OjUwOjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJZiBzdWdnZXN0ZWQgY2FwcyBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB1cHN0cmVhbSB0cnkgdG8gY29tZSB1cCB3aXRoIGNvbXBhdGlibGUgY2FwcwoJICBGaXhlcyBidWcgIzY2MjE5OS4KCjIwMTEtMTItMDYgMjM6NTI6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJICBpbmRleGZhY3Rvcnk6IGZpeCBtZW1vcnkgbGVhawoJICBJbnRyb2R1Y2VkIGJ5IGNvbW1pdCBiZDMwMmJiNiBwbHVnaW5mZWF0dXJlOiBhdm9pZCBkdXBsaWNhdGluZyBmZWF0dXJlLT5uYW1lCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00NTk0NjYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTcwMwoKMjAxMS0xMi0wNiAxODowOToxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHB1dCBuZXcgZXZlbnQgcHJvYmUgdHlwZSBuZXh0IHRvIG90aGVyIGV2ZW50IHR5cGVzCgoyMDExLTEyLTA1IDIxOjIwOjUyICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCBHU1RfUEFEX1BST0JFX1RZUEVfSEFORExFX0ZMVVNICgoyMDExLTEyLTA2IDE0OjU1OjE1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IE1ha2UgZXZlbnQvYnVmZmVyIHZlcmJvc2Ugb3V0cHV0IGNvbnNpc3RlbnQgd2l0aCBpZGVudGl0eQoKMjAxMS0xMi0wNiAxNDo1NToxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIGlkZW50aXR5OiBQcmludCBidWZmZXIgZmxhZ3MgaW4gdGhlIHZlcmJvc2Ugb3V0cHV0CgoyMDExLTEyLTA2IDE0OjUzOjQ3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBNYWtlIGV2ZW50L2J1ZmZlciB2ZXJib3NlIG91dHB1dCBjb25zaXN0ZW50IHdpdGggaWRlbnRpdHkgYW5kIHByaW50IGJ1ZmZlciBmbGFncwoKMjAxMS0xMi0wNiAxNDo0Njo0NiArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGRvbid0IGluY2x1ZGUgZ2xpYi9ndGhyZWFkLmggZGlyZWN0bHkKCSAgVGhlIGdfdGhyZWFkIGZ1bmN0aW9ucyBhcmUgYXZhaWxhYmxlIGFmdGVyIGluY2x1ZGluZyBnbGliLmggYXMgcGVyIGRvY3MuCgoyMDExLTEyLTA2IDE0OjIzOjM5ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHBvcnQgdGhlIHRlc3QgdG8gbmV3IGFwaSBhcyB3ZWxsCgoyMDExLTEyLTA2IDE0OjIzOjEyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuYzoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGNvbnRyb2xsZXI6IGZpeCBncG9pbnRlciB2cy4gZ3BvaW50ZXIqIG1lc3MgdXAKCjIwMTEtMTItMDYgMTQ6MjQ6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlbW92ZSBHU1RfRkxPV19SRVNFTkQKCSAgSXQgaXMgdW51c2VkIGFuZCB1bmRlZmluZWQuCgoyMDExLTEyLTA2IDE0OjAxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgYmFzZXNyYzogYWRkIGFzeW5jIHN0YXJ0IG9wdGlvbgoJICBBZGQgYSBtZXRob2QgdG8gZW5hYmxlIGFzeW5jIHN0YXJ0IGJlaGF2aW91ci4gVGhlIHN1YmNsYXNzIGNhbiB0aGVuIGNvbXBsZXRlIHRoZQoJICBzdGFydCBvcGVyYXRpb24gZnJvbSBhbnkgb3RoZXIgdGhyZWFkIGJ5IGNhbGluZyBnc3RfYmFzZV9zcmNfc3RhcnRfY29tcGxldGUoKS4KCSAgVGhlIGJhc2UgY2xhc3MgY2FuIHdhaXQgZm9yIHRoZSBzdGFydCB0byBjb21wbGV0ZSB3aXRoCgkgIGdzdF9iYXNlX3NyY19zdGFydF93YWl0KCkuCgoyMDExLTEyLTA2IDEzOjU4OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMi0wNiAxMzo0NzoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc3JjOiBjbGVhbnVwIGVycm9yIHBhdGgKCjIwMTEtMTItMDYgMTM6Mzk6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgZml4IGNvbXBpbGF0aW9uCgoyMDExLTEyLTA2IDA4OjQ4OjU3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBjb250cm9sbGVyOiB1c2UgX09CSkVDVCBsb2dnaW5nIHZhcmlhbnRzIG1vcmUKCjIwMTEtMTItMDYgMDg6MzU6NTcgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIEdzdFZhbHVlQXJyYXkKCSAgSW5zdGVhZCBwYXNzIHRoZSB2YWx1ZXMgYXMgYXJndW1lbnRzLiBUaGlzIHNpbXBsaWZpZXMgdGhhdCBjb2RlIGFuZCBoZWxwcwoJICBiaW5kaW5ncy4KCjIwMTEtMTItMDYgMDg6MzU6MTAgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5cwoJICBPbmUgY2FuIGVhc2lsbHkgbG9vcCBvdmVyIHRoZSBjb250cm9sbGVkIHByb3BlcnRpZXMgbWFudWFsbHkuIFRoaXMgaXMgc3RlcCAxIGluCgkgIHJlbW92aW5nIEdzdFZhbHVlQXJyYXkuCgoyMDExLTEyLTA0IDA3OjMzOjMyICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBjb3JyZWN0IHJldHVybiB2YWx1ZSBpbiBnc3RfcHVzaF9zdGlja3kKCjIwMTEtMTItMDUgMTE6MDc6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgbWFrZSBzb21lIG1hY3JvcyBpbnRvIGlubGluZSBmdW5jdGlvbnMKCjIwMTEtMTItMDUgMTA6MjQ6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBtYWtlIHNvbWUgbW9yZSBtYWNyb3MgYXMgaW5saW5lIGZ1bmN0aW9ucwoJICBNYWtlIHNvbWUgbWFjcm9zIGFzIGlubGluZSBmdW5jdGlvbnMgZm9yIGFkZGVkIHR5cGUgY2hlY2tpbmcuCgkgIFVTZSBuZXcgZ3N0X2NhcHNfdGFrZSgpIGluIHR5cGVmaW5kCgoyMDExLTEyLTA1IDEwOjIzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHNvbWUgb2xkIG1ldGhvZHMKCjIwMTEtMTItMDQgMjE6MTk6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY2hlY2s6IGFsbG93IG5vbi1qb2luYWJsZSB0aHJlYWRzIGluIHByaXZhdGUgZ190aHJlYWRfY3JlYXRlKCkgY29weQoJICBMb29rcyBsaWtlIHNvbWUgdGVzdHMgdXNlIG5vbi1qb2luYWJsZSB0aHJlYWRzIGFmdGVyIGFsbC4KCjIwMTEtMTItMDQgMTU6NDI6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHJlbW92ZWQgdGFnIGxpc3QgZnVuY3Rpb25zIGZyb20gZG9jcyBhcyB3ZWxsCgoyMDExLTEyLTA0IDE1OjM4OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RvYmplY3QuaAoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYwoJICB0b29scy9nc3QteG1saW5zcGVjdC5jCgoyMDExLTEyLTA0IDE0OjM4OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBTdXBwcmVzcyBkZXByZWNhdGlvbiB3YXJuaW5ncyBpbiBzZWxlY3RlZCBmaWxlcywgZm9yIGdfc3RhdGljX3JlY19tdXRleF8qIG1vc3RseQoJICBHU3RhdGljUmVjTXV0ZXggaXMgcGFydCBvZiBvdXIgQVBJL0FCSSwgbm90IG11Y2ggd2UgY2FuIGRvIGhlcmUgaW4gMC4xMC4KCjIwMTEtMTItMDQgMTM6MzU6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIFdvcmsgYXJvdW5kIGRlcHJlY2F0ZWQgdGhyZWFkIEFQSSBpbiBnbGliIG1hc3RlcgoJICBBZGQgcHJpdmF0ZSByZXBsYWNlbWVudHMgZm9yIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIHN1Y2ggYXMKCSAgZ19tdXRleF9uZXcoKSwgZ19tdXRleF9mcmVlKCksIGdfY29uZF9uZXcoKSBldGMuLCBtb3N0bHkKCSAgdG8gYXZvaWQgdGhlIGRlcHJlY2F0aW9uIHdhcm5pbmdzLiBXZSBjYW4ndCBjaGFuZ2UgbW9zdCBvZgoJICB0aGVzZSBpbiAwLjEwIGJlY2F1c2UgdGhleSdyZSBwYXJ0IG9mIG91ciBBUEkgYW5kIEFCSS4KCjIwMTEtMTItMDQgMTM6MDk6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSAgYmVuY2htYXJrczogZ190aHJlYWRfY3JlYXRlKCkgaXMgZGVwcmVjYXRlZCBpbiBHTGliIG1hc3RlciwgdXNlIGdfdGhyZWFkX3RyeV9uZXcoKSBpbnN0ZWFkCgoyMDExLTEyLTA0IDEzOjA0OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldDogaW5pdGlhbGlzZSBHRXJyb3IgdmFyaWFibGVzIHRvIE5VTEwKCjIwMTEtMTItMDQgMTE6NDM6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBkZWZzIGZpbGVzCgoyMDExLTEyLTA0IDExOjQyOjM5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBGaXggdW5pdGlhbGl6ZWQgdmFyaWFibGUKCjIwMTEtMTItMDQgMTE6MzI6NTcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBJbml0aWFsaXplIHdpdGggcHJvcGVyIHR5cGUKCjIwMTEtMTItMDMgMTc6NDA6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC10eXBlZmluZC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBnX3RocmVhZF9pbml0KCkgaXMgZGVwcmVjYXRlZCBpbiBnbGliIG1hc3RlcgoJICBJdCdzIG5vdCBuZWVkZWQgYW55IGxvbmdlci4KCjIwMTEtMTItMDMgMTY6MDI6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IHVwZGF0ZSBmb3IgdGhyZWFkIEFQSSBkZXByZWNhdGlvbnMgaW4gZ2xpYiBtYXN0ZXIKCjIwMTEtMTItMDMgMTU6MzY6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogdXBkYXRlIGZvciB0aHJlYWQgQVBJIGRlcHJlY2F0aW9ucyBpbiBnbGliIG1hc3RlcgoKMjAxMS0xMi0wMyAxNToxODoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdsaXN0OiByZW1vdmUgZ3N0X3RhZ19saXN0X2dldF97Y2hhcix1Y2hhcn0KCSAgVGhvc2UgYXJlIHVudXNlZCBhbmQgc2hvdWxkIG5ldmVyIGJlIHVzZWQgYW55d2hlcmUgYW55d2F5CgkgIHJlYWxseS4KCjIwMTEtMTItMDMgMTQ6MDY6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHNvbWUgbWFjcm9zIHRoYXQgbm8gbG9uZ2VyIGV4aXN0CgoyMDExLTEyLTAzIDEzOjU4OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICBnX3RocmVhZF9jcmVhdGUoKSBpcyBkZXByZWNhdGVkIGluIEdMaWIgbWFzdGVyLCB1c2UgZ190aHJlYWRfdHJ5X25ldygpIGluc3RlYWQKCjIwMTEtMTItMDMgMDc6MDY6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgZHRzIGFuZCBwdHMgZm9yIHN5bmMKCSAgRmlyc3QgdXNlIERUUywgdGhlbiBmYWxsIGJhY2sgdG8gUFRTIGZvciBzeW5jaHJvbml6YXRpb24uCgoyMDExLTEyLTAzIDA3OjAxOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogc21hbGwgY2xlYW51cHMKCjIwMTEtMTItMDMgMDY6NDU6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtZXJnZSBwcmVyb2xsIGZ1bmN0aW9ucwoJICBJbmxpbmUgYSBmdW5jdGlvbiB0aGF0IGlzIG9ubHkgY2FsbGVkIGZyb20gb25lIHBsYWNlIHRvIG1ha2UgdGhpbmdzIGEgbGl0dGxlCgkgIGVhc2llciB0byBmb2xsb3cuCgoyMDExLTEyLTAzIDA2OjI5OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogbW9yZSBjbGVhbnVwcwoJICBEb24ndCBwYXNzIGFyb3VuZCB0aGUgb2JqZWN0IHR5cGUsIHdlIGNhbiBmaW5kIHRoYXQgdmVyeSBlZmZpY2llbnRseSBmcm9tIHRoZQoJICBvYmplY3QgaXRzZWxmIG5vdy4KCjIwMTEtMTItMDIgMjM6MTM6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBjbGVhbiB1cCBtZXRob2QgbmFtZXMKCjIwMTEtMTItMDIgMjI6NTA6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtZXJnZSByZW5kZXJfb2JqZWN0IGludG8gY2hhaW4KCSAgTWVyZ2UgdGhlIHJlbmRlcl9vYmplY3QgY29kZSB3aXRoIHRoZSBjaGFpbiBtZXRob2QuIEl0IGlzIG9ubHkgY2FsbGVkIGZyb20gdGhlcmUKCSAgYW5kIHRoZXJlIGFyZSBxdWl0ZSBhIGZldyB2YXJpYWJsZXMgdGhhdCBjYW4gYmUgcmV1c2VkIHRvIG1ha2VzIHRoaW5ncyBsZXNzCgkgIGNvbmZ1c2luZy4KCjIwMTEtMTItMDIgMjI6MzY6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiByZW1vdmUgb2Jzb2xldGUgY29kZQoJICBSZW1vdmUgc29tZSBtb3JlIGNvZGUgbm93IHRoYXQgdGhlIHJlbmRlcl9vYmplY3QgZXRob2QgaXMgb25seQoJICBjYWxsZWQgd2l0aCBidWZmZXJzIG9yIGJ1ZmZlcmxzdHMuCgoyMDExLTEyLTAyIDIyOjIwOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBiYXNlc2luazogY2xlYW4gdXAgZXZlbnQgaGFuZGxpbmcKCSAgQWRkIG5ldyB3YWl0X2VvcyB2bWV0aG9kIHRvIHdhaXQgZm9yIHRoZSBlb3MgdGltZW91dCBiZWZvcmUgcG9zdGluZyB0aGUgRU9TCgkgIG1lc3NhZ2Ugb24gdGhlIGJ1cy4KCSAgQWRkIGRlZmF1bHQgZXZlbnQgaGFuZGxlci4gTW92ZSB0aGUgZGVmYXVsdCBldmVudCBhY3Rpb25zIGluIHRoZXJlLiBDYWxsIHRoZQoJICBldmVudCB2bWV0aG9kIGZyb20gdGhlIHBhZCBldmVudCBoYW5kbGVyLiBTdWJjbGFzc2VzIGFyZSBub3cgc3VwcG9zZWQgdG8gY2hhaW4KCSAgdXAgdG8gdGhlIHBhcmVudCBldmVudCBoYW5kbGVyIG9yIHVucmVmIHRoZSBldmVudCBhbmQgZG8gdGhlaXIgb3duIHRoaW5nLgoJICBBdm9pZCBwYXNzaW5nIHVudXNlZCBwYXJhbWV0ZXJzIHRvIGZ1bmN0aW9ucy4KCjIwMTEtMTItMDIgMTM6MTk6MzggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogdW5sb2NrIGNsb2NrIHdhaXQgd2hlbiBhcHByb3ByaWF0ZQoJICAuLi4gbm90YWJseSBGTFVTSCBhbmQgc3RhdGUgY2hhbmdlIHRvIFJFQURZLgoKMjAxMS0xMi0wMiAxMzozNTo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHNtYWxsIGNsZWFudXAKCSAgQXZvaWQgcGFzc2luZyBhcm91bmQgdGhlIHNlZ21lbnQuCgoyMDExLTEyLTAyIDEzOjI4OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiByZW1vdmUgY2xpcF9zZWdtZW50CgkgIFdlIG9ubHkgbmVlZCBvbmUgc2VnbWVudCBub3cgdGhhdCB0aGUgcHJlcm9sbCBxdWV1ZSBpcyBnb25lLgoKMjAxMS0xMi0wMiAxMjo0Mjo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgY2xlYW51cHMKCSAgUmVtb3ZlIHNvbWUgdW5uZWVkZWQgZnVuY3Rpb25zLCBpbmxpbmUgdGhlIGNvZGUuCgkgIFJlbW92ZSB0aGUgcXVldWVfb2JqZWN0IGZ1bmN0aW9ucywgd2UgY2FuIHByb2NlZWQgd2l0aCB0aGUgcmVuZGVyaW5nCgkgIGltbWVkaWF0ZWx5LgoKMjAxMS0xMi0wMiAxMjoyMDowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogcmVtb3ZlIG9ic29sZXRlIGNvZGUKCSAgUmVtb3ZlIHRoZSBwcmVyb2xsIHF1ZXVlIGFuZCBwcm9jZWVkIGRpcmVjdGx5IHRvIHRoZSByZW5kZXJpbmcgb2Ygb2JqZWN0cy4KCjIwMTEtMTItMDEgMjM6MzU6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1cy5jCgkgIGdzdC9nc3RldmVudC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTEyLTAxIDE4OjUwOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogbWFrZSBzb21lIHRhZ3Mgb2YgdHlwZSBHc3RTYW1wbGUKCSAgTWFrZSB0aGUgaW1hZ2UgYW5kIGF0dGFjaG1lbnQgdGFncyBvZiB0eXBlIEdzdFNhbXBsZSBzbyB0aGF0IHdlIGNhbiBpbmNsdWRlCgkgIGV4dHJhIGNhcHMgYW5kIGluZm8gYWxvbmcgd2l0aCB0aGUgYnVmZmVyIGRhdGEuCgoyMDExLTEyLTAxIDE4OjQ5OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNhbXBsZS5jOgoJKiBnc3QvZ3N0c2FtcGxlLmg6CgkgIHNhbXBsZTogcmVtb3ZlIGNvbnN0CgkgIFRoZSB3cml0YWJpbGl0eSBvZiB0aGUgc3RydWN0dXJlIGlzIGVuc3VyZWQgYnkgdGhlIHJlZmNvdW50IG9mIHRoZSBwYXJlbnQKCSAgbWluaW9iamVjdCBhbmQgd2UncmUgZmluZSBpZiB0aGUgcGFyZW50IGlzIHdyaXRhYmxlLgoKMjAxMS0xMi0wMSAxNjo0NjowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzaW5rLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNpbms6IGxhc3QtYnVmZmVyIC0+IGxhc3Qtc2FtcGxlCgkgIFJlbmFtZSB0aGUgbGFzdC1idWZmZXIgcHJvcGVydHkgdG8gbGFzdC1zYW1wbGUgYW5kIG1ha2UgaXQgcmV0dXJuIHRoZSBuZXcKCSAgR3N0U2FtcGxlIHR5cGUgc28gdGhhdCB3ZSBjYW4gaW5jbHVkZSBjYXBzIGFuZCB0aW1pbmcgaW5mbyBpbiBvbmUgbmljZSBidW5kbGUuCgoyMDExLTEyLTAxIDE2OjM3OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzYW1wbGUuYzoKCSogZ3N0L2dzdHNhbXBsZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2FtcGxlOiBhZGQgbmV3IHNhbXBsZSBtaW5pb2JqZWN0CgkgIEFkZCBhIG5ldyBzaW1wbGUgbWluaW9iamVjdCB0aGF0IGlzIGEgY29tYmluYXRpb24gb2YgYSBHc3RCdWZmZXIsIEdzdENhcHMsCgkgIEdzdFNlZ21lbnQgYW5kIG90aGVyIGFyYml0cmFyeSBpbmZvIG9yZ2FuaXplZCBpbiBhIEdzdFN0cnVjdHVyZS4gVGhpcyBvYmplY3QgY2FuCgkgIGJlIHVzZWQgdG8gZXhjaGFuZ2Ugc2FtcGxlcyBiZXR3ZWVuIGFuIGVsZW1lbnQgYW5kIHRoZSBhcHBsaWNhdGlvbiBvciBmb3IKCSAgc3RvcmluZyBhbGJ1bSBhcnQgaW4gdGFncyBldGMuCgoyMDExLTEyLTAxIDE2OjI1OjA3ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IHVzZSBHU1RfTUVTU0FHRV9TT1VSQ0VfTkFNRSgpIHdoaWNoIGFsc28gdGFrZXMgY2FyZSBvZiBzcmM9TlVMTC4KCjIwMTEtMTItMDEgMTU6MzU6MjYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDExLTEyLTAxIDE1OjM1OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTEtMTItMDEgMTU6MzQ6MDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBhZGQgY29weSBmbGFnIGZvciBtZXRhCgkgIEFkZCBhIGZsYWcgdG8gY29udHJvbCBpZiB0aGUgbWV0YSBzaG91bGQgYmUgY29waWVkIG9yIG5vdCBpbnN0ZWFkIG9mIGFsd2F5cwoJICBjb3B5aW5nLgoKMjAxMS0xMS0yOSAxOTowODo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlbW92ZSBvbGQgcHJvcGVydHkKCjIwMTEtMTEtMzAgMTM6NTk6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFsd2F5cyBpbnRlcnNlY3QgdGhlIHN1Z2dlc3RlZCBzaW5rIGNhcHMgd2l0aCB0aGUgcGVlciBjYXBzCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHdlIGdldCBjb3JyZWN0IGFuZCBjb21wbGV0ZSBjYXBzLiBUaGUgc3VnZ2VzdGVkIGNhcHMKCSAgY291bGQgYmUgaW5jb21wbGV0ZSwgZS5nLiB2aWRlby94LXJhdy1yZ2Igd2l0aG91dCBhbnkgZmllbGRzLCBhbmQgYnkKCSAgaW50ZXJzZWN0aW5nIHdpdGggdGhlIHBlZXIgY2FwcyB3ZSBnZXQgc29tZXRoaW5nIHVzYWJsZS4KCSAgRml4ZXMgYnVnICM2NjIxOTkuCgoyMDExLTExLTMwIDEyOjM5OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IG1vdmUgRklYTUUgbG9nIGxldmVsIGFmdGVyIFdBUk5JTkcKCSAgU28gaXQncyBub3cgRVJST1IgPCBXQVJOSU5HIDwgRklYTUUgPCBJTkZPIGFuZCAqOjUgYmVjb21lcyAqOjYuCgoyMDExLTExLTMwIDAwOjI0OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogd2FybiBhbmQgZmFpbCBpbnN0ZWFkIG9mIGNyZWF0aW5nIG5ld3NlZ21lbnQgZXZlbnRzIGluIEdTVF9GT1JNQVRfVU5ERUZJTkVECgoyMDExLTExLTI5IDE1OjUzOjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGtlZXAgdGhlIGVsZW1lbnQgZmxhZ3MgdXAtdG8tZGF0ZQoJICBLZWVwIHRoZSByZXF1aXJlL3Byb3ZpZGVfY2xvY2sgZmxhZ3MgdXAgdG8gZGF0ZS4KCjIwMTEtMTEtMjkgMTE6NDc6MzQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogc291cmNlIGFuZCBzaW5rIHBhZHMgcHJveHkgY2FwcwoKMjAxMS0xMS0yOCAyMToxNTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjggMTg6MjM6NDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICB1cGRhdGUgZm9yIGluZGV4YWJsZSBjaGFuZ2UKCjIwMTEtMTEtMjggMTg6MTI6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIGluZGV4YWJsZSBmbGFnCgkgIFJlbW92ZSB0aGUgaXNfaW5kZXhhYmxlIG1ldGhvZCBjaGVjayBhbmQgdXNlIGFuIGVsZW1lbnQgZmxhZyB0byBjaGVjayBpZiB0aGUKCSAgZWxlbWVudCBjYW4gdXNlIGFuIGluZGV4LgoKMjAxMS0xMS0yOCAxNzo1MDoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTEtMTEtMjggMTc6MjI6NDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGVsZW1lbnQ6IHVzZSBmbGFncyBmb3IgcmVxdWlyZS9wcm92aWRlIGNsb2NrCgkgIFJlbW92ZSB0aGUgX3JlcXVpcmUvX3Byb3ZpZGVfY2xvY2soKSBtZXRob2RzIGFuZCB1c2UgZWxlbWVudCBmbGFncyB0byBtYXJrCgkgIGVsZW1lbnRzIGluc3RlYWQgb2YgbG9va2luZyBhdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHZtZXRob2QuCgoyMDExLTExLTI4IDE2OjU0OjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGVsZW1lbnQ6IGNsZWFuIHVwIGVsZW1lbnQgZmxhZ3MKCSAgQ2xlYW4gdXAgdGhlIGVsZW1lbnQgZmxhZ3MKCjIwMTEtMTEtMjggMTU6MzU6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCBzdGlja3kgY3VzdG9tIHF1YXJrCgoyMDExLTExLTI4IDE0OjI0OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogX0NBUFNfRkxBR1NfIC0+IENBUFNfRkxBR18KCjIwMTEtMTEtMjggMTI6MzA6MTUgKzAwMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdGVsZW1lbnQ6IGFkZCBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlX2Zyb21fc3RhdGljCgkgIFRoaXMgZnVuY3Rpb24gaGVscHMgZW5zdXJlIHRoZSBwYWQgdGVtcGxhdGUgaXMgdW5yZWZmZWQKCSAgd2l0aG91dCBoYXZpbmcgdG8gY29tcGxpY2F0ZSB0aGUgY2FsbGluZyBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNjY0CgoyMDExLTExLTI4IDEzOjU0OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEhhbmRsZSBzdGlja3kgZXZlbnQgZXJyb3JzCgkgIFVzZSBHc3RGbG93UmV0dXJuIHRvIGludGVybmFsbHkgcGFzcyBldmVudHMgYmV0d2VlbiBwYWRzLgoJICBXaGVuIHdlIHN0aWNreSBldmVudHMgY2F1c2UgYW4gZXJyb3IsIHRyYW5zbGF0ZSB0aGlzIGVycm9yIGludG8gYSBHc3RGbG93UmV0dXJuLgoJICBDYXBzIGV2ZW50cyB3aWxsLCBmb3IgZXhhbXBsZSwgZ2VuZXJhdGUgYSBOT1RfTkVHT1RJQVRFRCByZXR1cm4gd2hlbiB0aGUgZXZlbnQKCSAgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvci4KCSAgVGhpcyBhbGxvd3MgdXMgdGhlbiB0byByZWZ1c2Ugc2VuZGluZyBidWZmZXJzIGlmIG9uZSBvZiB0aGUgc3RpY2t5IGV2ZW50cyBpcwoJICByZWZ1c2VkIGFuZCBnZW5lcmF0ZSBhIGNvcnJlY3QgZXJyb3IgcmV0dXJuIHZhbHVlLgoKMjAxMS0xMS0yOCAxMzo1MjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSAgdGVzdHM6IGRvbid0IHJldHVybiBGQUxTRSBmcm9tIGV2ZW50cwoJICBSZXR1cm5pbmcgRkFMU0UgZnJvbSB0aGUgZXZlbnQgaGFuZGxlciBzaHV0cyBkb3duIHRoZSBzZW5kZXIuCgoyMDExLTExLTI4IDEzOjUxOjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0OiBmaXggcmVmY291bnQgZXJyb3IKCjIwMTEtMTEtMjggMTE6MTU6MjcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSAgZ3N0bWV0YTogU29tZSBtb3JlIGRvY3MKCjIwMTEtMTEtMjggMTA6NTU6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IGFkZCBjdXN0b20gZG93bnN0cmVhbSBzdGlja3kgZXZlbnQKCjIwMTEtMTEtMjggMDE6MTI6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggdXAgY29tbWVudCBhZnRlciBtZXJnZSBmcm9tIDAuMTAKCjIwMTEtMTEtMjggMDE6MTE6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTExLTI4IDAxOjEwOjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IHJlZmFjdG9yaW5nIG9mIGRyYWluaW5nLW9uLWVvcywgbXVuZ2UgZmxvdyByZXR1cm4gdG8gRkxPV19PSwoKMjAxMS0xMS0yOCAwMTowMDoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCB1cCBuZXcgYnVmZmVybGlzdCBjb2RlIGZvciAwLjExCgoyMDExLTExLTI4IDAwOjQwOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmMKCjIwMTEtMTEtMDMgMTA6MzQ6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgYnVmZmVybGlzdCBzdXBwb3J0CgkgIFdlIHdhbnQgdG8gbWFpbnRhaW4gYnVmZmVyIGxpc3RzIGlmIHBvc3NpYmxlLgoKMjAxMS0xMS0wMyAxMzowMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHNwbGl0IG91dCBkcmFpbmluZyBvZiBxdWV1ZSBvbiBGTE9XX1VORVhQRUNURUQgaW50byBzZXBhcmF0ZSBmdW5jdGlvbgoKMjAxMS0xMS0wMyAwODo1NToyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHBhc3MgaXRlbSB0eXBlIGVudW0gdG8gX2VucXVldWUgaW5zdGVhZCBvZiBzaW1wbGUgaXNidWZmZXIgYm9vbGVhbgoJICBBdm9pZHMgc29tZSB1bm5lY2Vzc2FyeSBHU1RfSVNfRVZFTlQoKQoKMjAxMS0xMS0yNyAyMDozMjoxNCArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IGZpeCBjb21waWxhdGlvbiB3YXJuaW5nCgkgIEdTVF9TVEFUSUNfQ0FQUyBpcyBtaXNzaW5nIGluaXRpYWxpemVyIGZvciBHc3RNaW5pT2JqZWN0J3Mgbl93ZWFrX3JlZnMgYW5kCgkgIHdlYWtfcmVmcyByZXN1bHRpbmcgaW4gY29tcGlsYXRpb24gd2FybmluZyAobGx2bS1nY2MgIC1XYWxsKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0OTI3CgoyMDExLTExLTI3IDIyOjI2OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yNyAyMDozNjozMSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgd2FybmluZ3M6IGF2b2lkIHNldC1idXQtdW51c2VkIHdhcm5pbmdzIHdpdGggbG9hZC1zYXZlIGRpc2FibGVkCgoyMDExLTExLTI2IDE3OjM0OjEyICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggYnJva2VuIGRlZmF1bHQgY2FwcyBxdWVyeQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY0ODgwCgoyMDExLTExLTI2IDE5OjUxOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMS0yNiAxOTo0NTo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaTogZml4IHdyb25nIEdfR05VQ19NQUxMT0MKCSAgX2dldF9wcm90b2NvbHMoKSBwb2ludHMgdG8gY29uc3QgbWVtb3J5IGluIDAuMTAKCSAgZGVzcGl0ZSB0aGUgbm9uLWNvbnN0IHJldHVybiB2YWx1ZS4KCjIwMTEtMTEtMjYgMTk6NDQ6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1ZmZlci5oCgkgIGdzdC9nc3RidWZmZXJsaXN0LmgKCSAgZ3N0L2dzdGNhcHMuaAoJICBnc3QvZ3N0ZGF0ZXRpbWUuaAoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaAoJICBnc3QvZ3N0ZXZlbnQuaAoJICBnc3QvZ3N0Z2hvc3RwYWQuaAoJICBnc3QvZ3N0aW5kZXhmYWN0b3J5LmgKCSAgZ3N0L2dzdGl0ZXJhdG9yLmgKCSAgZ3N0L2dzdG1lc3NhZ2UuaAoJICBnc3QvZ3N0bWluaW9iamVjdC5oCgkgIGdzdC9nc3RwaXBlbGluZS5oCgkgIGdzdC9nc3RxdWVyeS5oCgkgIGdzdC9nc3RzZWdtZW50LmgKCSAgZ3N0L2dzdHN0cnVjdHVyZS5oCgkgIGdzdC9nc3R0YWdsaXN0LmgKCSAgZ3N0L2dzdHVyaS5oCgkgIGdzdC9nc3R2YWx1ZS5oCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmgKCSAgTm90ZTogY2FuJ3QgdXNlIEdfR05VQ19NQUxMT0Mgd2l0aCBHc3RDYXBzIHJldHVybgoJICB2YWx1ZXMgaW4gMC4xMSBiZWNhdXNlIG9mIHRoZSBFTVBUWStBTlkgc2luZ2xldG9ucy4KCjIwMTEtMTEtMjYgMTg6NTg6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgbGliczogc3ByaW5rbGUgc29tZSBHX0dOVUNfTUFMTE9DCgkgIE1heWJlIGdjYyBjYW4gZG8gc29tZXRoaW5nIGNsZXZlciB3aXRoIHRoYXQsIG9yIGF0IGxlYXN0CgkgIHdhcm4gdXMgaWYgd2UgZG9uJ3Qgc2F2ZSB0aGUgcmV0dXJuIHZhbHVlIHNvbWV3aGVyZS4KCjIwMTEtMTEtMjYgMTg6NTc6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmg6CgkqIGdzdC9nc3RwcmVzZXQuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZ3N0OiBzcHJpbmtsZSBzb21lIEdfR05VQ19NQUxMT0MKCSAgTWF5YmUgZ2NjIGNhbiBkbyBzb21ldGhpbmcgY2xldmVyIHdpdGggdGhhdCwgb3IgYXQgbGVhc3QKCSAgd2FybiB1cyBpZiB3ZSBkb24ndCBzYXZlIHRoZSByZXR1cm4gdmFsdWUgc29tZXdoZXJlLgoKMjAxMS0xMS0yNSAyMzo1NDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMjUgMjM6MTU6MjMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2NzLgoKMjAxMS0xMS0xNiAwMTowNDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBhZGQgZ3N0X2J1ZmZlcl97c2V0LGdldH1fcWRhdGEoKQoJICBBbGxvd3MgcGVvcGxlL3VzIHRvIGF0dGFjaCBhcmJpdHJhcnkgbWV0YWRhdGEgdG8gYnVmZmVycy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDcyMAoJICBBUEk6IGdzdF9idWZmZXJfc2V0X3FkYXRhKCkKCSAgQVBJOiBnZXRfYnVmZmVyX2dldF9xZGF0YSgpCgoyMDExLTExLTI1IDA3OjExOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGJsb2NraW5nIHByb2JlIGVtaXNzaW9uCgkgIElmIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBibG9ja2luZyBwcm9iZSwgb25seSB0aGVuIGNoZWNrIGlmIG9uZSB0aGUKCSAgYmxvY2tpbmcgZmxhZ3Mgb2YgdGhlIGhvb2sgbWF0Y2hlcy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgTWFrZSB0aGUgcGFkIHVuaXQgdGVzdCBsZXNzIHJhY3kuCgoyMDExLTExLTI0IDE3OjQ3OjA5ICswMTAwICBNYXRlaiBLbm9wcCA8bWF0ZWoua25vcHBAZ21haWwuY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBBZGQgdGVzdCBmb3IgUEFEX1BST0JFX1RZUEVfQkxPQ0sgYW5kIFBBRF9QUk9CRV9UWVBFX0JMT0NLSU5HCgoyMDExLTExLTI1IDA1OjU0OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggZGVidWcgb2YgcXVlcnkgcmVzdWx0CgoyMDExLTExLTI0IDIyOjUyOjE5ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBmaXggdHlwbyBpbiBkb2MKCSAgQ2F1c2VzIGEgd2FybmluZyBmcm9tIHRoZSBpbnRyb3NwZWN0aW9uIHNjYW5uZXIuCgoyMDExLTExLTI0IDIxOjM2OjEyICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgY2hlY2s6IGRyb3AgY2FwcyBhcmd1bWVudCBmcm9tIGdzdF9jaGVja19zZXR1cF97c3JjLHNpbmt9X3BhZAoJICBDYWxsaW5nIHNldF9jYXBzIGF0IHRoYXQgcG9pbnQgaXMgbm90IHVzZWZ1bCBpbiAwLjEwIChGSVhNRSBjb21tZW50ISksIGFuZCBpbgoJICAwLjExIGl0IGlzIHRvdGFsbHkgcG9pbnRsZXNzOiB0aGUgY2FwcyBldmVudCBkb2Vzbid0IHN0aWNrIHRvIGEgZmx1c2hpbmcgcGFkLgoKMjAxMS0xMS0yNCAxNDowNzoxNCArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBieXRlX3dyaXRlcl9wdXRfYnVmZmVyCgoyMDExLTExLTI0IDExOjIzOjA3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0cGFkLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMS0xMS0yNCAxMToxNToyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmVtb3ZlIGdfd2FybmluZygpIGlmIHBhZCBhY2NlcHRlZCBjYXBzIHRoYXQgYXJlIG5vdCBhIHN1YnNldCBvZiB0aGUgcGFkIGNhcHMKCSAgVGhpcyBjaGVjayBpcyBjb3JyZWN0IGJ1dCB1bmZvcnR1bmF0ZWx5IGl0J3MgaW1wb3NzaWJsZSB0byBpbXBsZW1lbnQKCSAgaW4gYSB0aHJlYWRzYWZlIHdheSBiZWNhdXNlIHRoZSBjYXBzIGNvdWxkIGhhdmUgY2hhbmdlZCBpbiB0aGUgbWVhbnRpbWUuCgkgIEZpeGVzIGJ1ZyAjNjU5NjA2LgoKMjAxMS0xMC0wMyAxMjozNDoyMCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogY2hlY2sgZmlsbGVkIHN0YXRlIG9mIHF1ZXVlcyBldmVuIGlmIGFub3RoZXIgb25lIGlzIGVtcHR5CgkgIFRoaXMgd2lsbCBhdm9pZCBhIGNhc2Ugd2hlcmUgb3ZlcnJ1biBpcyBuZXZlciBzaWduYWxsZWQgaWYgc29tZQoJICBzdHJlYW0gbmV2ZXIgcHJvZHVjZXMgYW55IGRhdGEsIGNhdXNpbmcgcGxheWJpbjIgdG8gbm90IGVuZCBwcmVyb2xsLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYwNzc4CgoyMDExLTExLTI0IDA5OjMxOjE0ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IENoZWNrIGZvciBkYXRhZmxvdyB3aXRoIGluY29tcGF0aWJsZSBjYXBzCgkgIFRoaXMgdGVzdCBjdXJyZW50bHkgZmFpbHMsIGJ1dCBpcyB0aGVyZSB0byBlbnN1cmUgd2UgZml4IHRoaXMgaXNzdWUKCSAgYW5kIGtlZXAgaXQgZml4ZWQsIHNpbmNlIGl0IGNvbXBsZXRlbHkgYnJlYWtzIGRlbGF5ZWQgbmVnb3RpYXRpb24KCSAgdXNlLWNhc2VzLgoJICBUaGlzIGJlaGF2aW91ciBzdGFydGVkIGJyZWFraW5nIHNpbmNlCgkgIGRkNjVhYWU5YTE3N2Y3YjExZGNlZjBmNjkwYTc4ZDY5OGY2NjdjZDQKCjIwMTEtMTEtMjQgMDk6MzE6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogQWRkIGNvbW1lbnRzIHRvIGdzdHBhZCB0ZXN0cwoKMjAxMS0xMS0yNCAwOTozMDoxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBSZW1vdmUgIiNpZiAwIiBibG9jayBmb3IgYmVoYXZpb3VyIHRoYXQgbm93IHdvcmtzCgoyMDExLTExLTI0IDA5OjI4OjMyICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IFJlbW92ZSBjb21tZW50ZWQgYmxvY2sKCSAgVGhpcyBiZWhhdmlvdXIgaXMgYWN0dWFsbHkgdGVzdGVkIGluIHRlc3RfcHVzaF91bmxpbmtlZAoKMjAxMS0xMS0yNCAwMTowNjo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogbWFrZSBnc3QtaW5zcGVjdCBwcmludCBhIG5hc3R5IGRlYnVnIG1lc3NhZ2UgZm9yIG5vbi1ncmF0YSBwcm9wZXJ0eSB0eXBlCgkgIFRyeSB0byBlcmFkaWNhdGUgcHJvcGVydGllcyBvZiBsb25nL3Vsb25nL2NoYXIvdWNoYXIgdHlwZS4KCjIwMTEtMTEtMjMgMTc6NTA6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZXZlbnQ6IGFkZCBTVElDS1lfTVVMVFkgZXZlbnRzCgkgIEFkZCBhIG5ldyBldmVudCBmbGFnIGZvciBzdGlja3kgZXZlbnRzIHNvIHRoYXQgbXVsdGlwbGUgZXZlbnRzIG9mIHRoYXQgdHlwZSBjYW4KCSAgYmUgc3RvcmVkIG9uIGEgcGFkIGF0IHRoZSBzYW1lIHRpbWUuIENoYW5nZSB0aGUgX2dldF9zdGlja3lfZXZlbnQoKSBmdW5jdGlvbiB0bwoJICBsb29wIG92ZXIgdGhlIG11bHRpcGxlIGV2ZW50cyBvZiBhIHR5cGUuCgkgIENoYW5nZSB0aGUgZm9yZWFjaCBmdW5jdGlvbiB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHJlbW92ZWQgYW5kIG1vZGlmeSB0aGUgc3RpY2t5CgkgIGV2ZW50cyBvbiBhIHBhZC4KCSAgVXNlIGFuIHZhcmlhYmxlIHNpemUgYXJyYXkgbm93IHRvIHN0b3JlIHRoZSBldmVudHMuIFRoaXMgY291bGQgbGF0ZXIgYmUKCSAgb3B0aW1pemVkIHNvbWUgbW9yZS4KCjIwMTEtMTEtMjMgMTc6Mzk6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogaGFuZGxlIE5VTEwgbWVzc2FnZSBzcmMgaW4gZGVidWcKCjIwMTEtMTEtMjMgMTc6Mzg6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBhdm9pZCByZWFkaW5nIHBhc3QgdGhlIGFycmF5CgkgIFdoZW4gdGhlIGZvcmVhY2ggZnVuY3Rpb24gdG9sZCB1cyB0byByZW1vdmUgdGhlIGJ1ZmZlciBmcm9tIHRoZSBsaXN0LCBkZWNyZWFzZQoJICB0aGUgbGVuZ3RoIG9mIHRoZSBhcnJheSBvciBlbHNlIHdlIG1pZ2h0IHJlYWQgcGFzdCB0aGUgbGFzdCBpdGVtIGluIHRoZSBhcnJheS4KCjIwMTEtMTEtMjMgMTM6NDI6NTYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZXR1cm4gdGVtcGxhdGUgY2FwcyBpbnN0ZWFkIG9mIG90aGVyIHNpZGUncyBwZWVyIGNhcHMgaWYgZ2V0X3NpbmtfY2FwcyB2ZnVuYyBpcyBub3QgaW1wbGVtZW50ZWQKCSAgVXNpbmcgZ3N0X3BhZF9wcm94eV9nZXRfY2FwcygpIGJyZWFrcyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZAoJICBwYXJzZXJzIGJlY2F1c2UgaXQgd2lsbCBwcm9wYWdhdGUgdGhlIG90aGVyIHNpZGUncyBmaWVsZHMgbGlrZSAicGFyc2VkIgoJICBhbmQgImZyYW1lZCIgYW5kIGFsc28gYnJlYWtzIHBhcnNlci9jb252ZXJ0ZXJzLgoJICBGaXhlcyBidWcgIzY2NDIyMS4KCjIwMTEtMTEtMjMgMTE6MDM6MTkgKzAxMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IGFkZCBtZXRob2QgdG8gd3JpdGUgb3V0IGEgYnVmZmVyCgkgIEluIDAuMTAsIHRoaXMgY2FuIGJlIGRvbmUgd2l0aCBhIG9uZS1saW5lciBieSB1c2luZyBHU1RfQlVGRkVSX0RBVEEvU0laRSB3aXRoCgkgIHB1dF9kYXRhLiBBIDAuMTEgdXNlciBoYXMgdG8gcmVzb3J0IHRvIGdzdF9idWZmZXJfbWFwLCB3aGljaCBpcyBsZXNzIGNvbnZlbmllbnQKCSAgYW5kIG1pZ2h0IHJlcXVpcmUgYSBtZW1jcHkgaW50ZXJuYWxseS4KCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2J1ZmZlcigpCgoyMDExLTExLTIzIDA4OjE3OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHRha2UgcGVlcnBhZCBjb3JyZWN0bHkKCSAgRG9uJ3QgdGFrZSB0aGUgcGVlcnBhZCB0b28gZWFybHksIGl0IG1pZ2h0IGNoYW5nZSBiZWNhdXNlIG9mIHRoZQoJICBwcm9iZXMuCgoyMDExLTExLTIyIDE4OjMyOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmV3b3JrIHN0aWNreSBldmVudHMKCSAgUmV3cml0ZSBzdGlja3kgZXZlbnRzLCB0cnlpbmcgdG8gbWFrZSBpdCBhIGJpdCBtb3JlIHNpbXBsZS4KCSAgV2hlbiBzdGlja3kgZXZlbnRzIGFyZSBwdXNoZWQgb24gYSBzcmNwYWQsIHN0b3JlIHRoZW0gaW4gdGhlIHN0aWNreSBldmVudAoJICBhcnJheSBhbmQgbWFyayB0aGUgZXZlbnQgd2l0aCByZWNlaXZlZCA9IEZBTFNFLgoJICBXaGVuIHRoZSBzdGlja3kgZXZlbnQgaXMgc3VjY2Vzc2Z1bGx5IHNlbnQgdG8gdGhlIHBlZXIgcGFkLCBtYWtlCgkgIHJlY2VpdmVkID0gVFJVRS4KCSAgS2VlcCBhIFBFTkRJTkdfRVZFTlRTIHBhZCBmbGFnIHRoYXQgaXMgc2V0IHdoZW4gb25lIG9mIHRoZSBldmVudHMgaXMgaW4KCSAgdGhlIHJlY2VpdmVkID0gRkFMU0Ugc3RhdGUgZm9yIHNvbWUgcmVhc29uLgoJICB3aGVuIGFjdGl2YXRpbmcgYSBzaW5rcGFkLCBtYXJrIGFsbCBldmVudHMgcmVjZWl2ZWQgPSBGQUxTRSBvbiB0aGUgcGVlcgoJICBzcmNwYWQuCgkgIFdoZW4gcHVzaGluZyBhIGJ1ZmZlciwgY2hlY2sgdGhlIFBFTkRJTkdfRVZFTlRTIGZsYWcgYW5kIGlmIGl0IGlzIHNldCwgcHVzaCBhbGwKCSAgZXZlbnRzIHRvIHRoZSBwZWVyIHBhZCBmaXJzdC4KCjIwMTEtMTEtMjIgMTg6MzI6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGFsc28gbGV0IGNhcHMgZXZlbnRzIGdvIHRocm91Z2gKCjIwMTEtMTEtMjIgMTY6NDM6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIG5ldyBmbGFncwoKMjAxMS0xMS0yMSAxODo1NjoxOSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogZml4IHJldHVybiB0eXBlIG9mIF9tYXAoKSB0byBnY29uc3Rwb2ludGVyCgkgIEZpeGVzIGNvbXBpbGVyIHdhcm5pbmdzIG9uIE9TWDoKCSAgZ3N0YWRhcHRlci5oOjgyOiB3YXJuaW5nOiB0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZQoJICBnc3RhZGFwdGVyLmM6NDEyOiB3YXJuaW5nOiB0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZQoJICBjb25zdCBncG9pbnRlciBpcyBub3QgdGhlIHNhbWUgYXMgZ2NvbnN0cG9pbnRlciBvciBjb25zdCB2b2lkICouCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ0OTEKCjIwMTEtMTEtMjIgMTI6NDY6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcyBmaWxlcwoKMjAxMS0xMS0yMiAxMjo0NTo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIHBhZGQgcmV0dXJuIHZhbHVlIGZyb20gX21pbmlfb2JqZWN0X3JlcGxhY2UoKQoKMjAxMS0xMS0yMSAxODo1NjoxOSArMDEwMCAgTWF0ZWogS25vcHAgPG1hdGVqLmtub3BwQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgRml4IHByaW50ZiBmb3JtYXQgY29tcGlsZXIgd2FybmluZ3Mgb24gT1NYLzY0Yml0CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjQ0OTEKCjIwMTEtMTEtMjEgMTc6NDY6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBpbXByb3ZlIHBhZCB0ZXN0cwoKMjAxMS0xMS0yMSAxNzo0Mzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggbG9ja2luZyBvcmRlciBlcnJvcgoKMjAxMS0xMS0yMSAxNzo0MzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZml4IHByaW50IGZvcm1hdAoKMjAxMS0xMS0yMSAxNTo0NzowMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEFkZCBkZXN0cm95IG5vdGlmeSB0byBwYWQgZnVuY3Rpb25zCgkgIEFkZCBfZnVsbCB2YXJpYW50cyBvZiB0aGUgcGFkIGZ1bmN0aW9uIHNldHRlcnMgdGhhdCB0YWtlIGEgZGVzdHJveSBub3RpZnkuCgkgIE1ha2Ugc29tZSBtYWNyb3MgdGhhdCBtYWtlIHRoZSBvbGQgbWV0aG9kIG5hbWUgcGFzcyBOVUxMIHRvIHRoaXMgbmV3CgkgIGZ1bmN0aW9uLgoKMjAxMS0xMS0yMSAxMzoyOTowNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIHBhZDogTWVyZ2UgcGFkIG1vZGUgYWN0aXZhdGlvbiBmdW5jdGlvbnMKCSAgQWRkIHRoZSBwYWQgbW9kZSB0byB0aGUgYWN0aXZhdGUgZnVuY3Rpb24gc28gdGhhdCB3ZSBjYW4gcmV1c2UgdGhlIHNhbWUgZnVuY3Rpb24KCSAgZm9yIGFsbCBhY3RpdmF0aW9uIG1vZGVzLiBUaGlzIG1ha2VzIHRoZSBjb3JlIGxvZ2ljIHNtYWxsZXIgYW5kIGFsbG93cyBmb3Igc29tZQoJICBlbGVtZW50cyB0byBtYWtlIHRoZWlyIGFjdGl2YXRpb24gY29kZSBlYXNpZXIuIEl0IHdvdWxkIGFsbG93IHVzIHRvIGFkZCBtb3JlCgkgIHNjaGVkdWxpbmcgbW9kZXMgbGF0ZXIgd2l0aG91dCBoYXZpbmcgdG8gYWRkIG1vcmUgYWN0aXZhdGUgZnVuY3Rpb25zLgoKMjAxMS0xMS0xOCAxODowODoyMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiB1cGRhdGUgZGVzaWduIGRvYwoJICBhbHNvIGZpeCBkZWZhdWx0IGFsaWdubWVudCB2YWx1ZSAoMCA9PSBuby1hbGlnbm1lbnQpCgoyMDExLTExLTE4IDE3OjI3OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHF1ZXJ5OiBpbXByb3ZlIHNjaGVkdWxpbmcgcXVlcnkKCSAgVHVybnMgc29tZSBib29sZWFuIGFyZ3VtZW50cyBpbiB0aGUgc2NoZWR1bGluZyBxdWVyeSB0byBmbGFncywgd2hpY2ggYXJlIGVhc2llcgoJICB0byBleHRlbmQgYW5kIG1ha2VzIHRoZSBjb2RlIGVhc2llciB0byByZWFkLgoJICBNYWtlIGV4dHJhIG1ldGhvZHMgZm9yIGNvbmZpZ3VyaW5nIGFuZCBxdWVyeWluZyB0aGUgc3VwcG9ydGVkIHNjaGVkdWxpbmcgbW9kZXMuCgkgIFRoaXMgc2hvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIGFkZCBuZXcgbW9kZXMgbGF0ZXIuCgoyMDExLTExLTE4IDE0OjA4OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBtb3ZlIGZsYWdzIGNsb3NlciB0byBidWZmZXJpbmcgcXVlcnkKCjIwMTEtMTEtMTggMTM6NDY6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgcGFkOiBhZGQgcGFyZW50IHRvIGFjdGl2YXRlIGZ1bmN0aW9ucwoKMjAxMS0xMS0xOCAxMjozNTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgIHBhZDogZml4IHNjaGVkdWxpbmcgbW9kZSBlbnVtcwoJICBHc3RQYWRBY3RpdmF0ZU1vZGUgLT4gR3N0UGFkTW9kZQoJICBHU1RfUEFEX0FDVElWQVRFXyogLT4gR1NUX1BBRF9NT0RFXyoKCjIwMTEtMTEtMTcgMTY6MTQ6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGZpeCBmb3IgbmV3IGdldHJhbmdlIG1ldGhvZCBzaWduYXR1cmUKCSAgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlX2V4dCAtPiBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UKCjIwMTEtMTEtMTcgMTI6NDA6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJICBwYWQ6IGFkZCBwYXJlbnQgdG8gb3RoZXIgZnVuY3Rpb25zCgkgIEFkZCBwYXJlbnQgdG8gY2hhaW4sIGNoYWluX2xpc3QsIGdldHJhbmdlIGFuZCBldmVudCBmdW5jdGlvbnMuCgoyMDExLTExLTE3IDA4OjIxOjA1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IG1vdmUgZmllbGRzIG91dCBvZiByZXNlcnZlZCBhbmQgcmVzdG9yZSBwYWRkaW5nCgkgIERvIHRoZSAwLjExIEFCSSBjaGFuZ2VzLiBBZGQgZXh0cmEgZmllbGRzIGZvciBkZXN0cm95X25vdGlmeSBhbmQgZHJvcCB0aGUgcWRhdGEKCSAgaGFjay4gUmVuYW1lIF9hZGRfcGFkX2Z1bGwgdG8gX2FkZF9wYWQgYW5kIHJlbW92ZSB0aGUgb2xkIF9hZGRfcGFkLgoKMjAxMS0xMS0xNiAxNzo0OTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgYWRkIHBhcmVudCB0byBpbnRlcm5hbCBsaW5rcwoKMjAxMS0xMS0xNiAxNzoyMjo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgcGFkOiBhZGQgcGFyZW50IHRvIHRoZSBxdWVyeSBmdW5jdGlvbgoKMjAxMS0xMS0xNiAxMjozNjo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgR3N0UGFkRmxhZ3M6IHJlbmFtZSBmbGFncyBHU1RfUEFEXyogLT4gR1NUX1BBRF9GTEFHXyoKCjIwMTEtMTEtMTYgMTI6MTA6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHBsdWdpbnM6IHJlbW92ZSBvYnNvbGV0ZSBwYXJlbnQgY2hlY2tzCgoyMDExLTExLTE2IDEyOjA4OjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDoga2VlcCB0aGUgcGFyZW50IGFsaXZlIHdoZW4gcmVxdWVzdGVkCgkgIEFkZCBhIG5ldyBwYWQgZmxhZyBORUVEX1BBUkVOVCB0aGF0IGVuc3VyZXMgdGhhdCB0aGUgcGFyZW50IG9mIGEgcGFkIGlzCgkgIHJlZmZlZCBhbmQgbm90IE5VTEwgd2hlbiB0aGUgZXZlbnQsIHF1ZXJ5IGFuZCBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbnMKCSAgYXJlIGNhbGxlZC4KCSAgV2hlbiBhIHBhZCBpcyBhZGRlZCB0byBhbiBlbGVtZW50IGF1dG9tYXRpY2FsbHkgbWFrZSBzdXJlIHRoZSBORUVEX1BBUkVOVCBmbGFnCgkgIGlzIGVuYWJsZWQuCgoyMDExLTExLTE2IDEwOjI5OjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvbid0IHJlcXVpcmUgcGFyZW50IGVsZW1lbnQgdG8gcHJveHkKCjIwMTEtMTEtMTYgMTA6MTY6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMTEtMTUgMTg6MTY6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBwYWQ6IG1vdmUgcXVlcnkgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvZ2V0aGVyCgkgIE1vdmUgdGhlIGNhcHMgY29udmVuaWVuY2UgZnVuY3Rpb25zIHRvIHRoZSBvdGhlciBxdWVyeSBmdW5jdGlvbnMuCgoyMDExLTExLTE1IDE3OjUwOjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIF9xdWVyeV9wZWVyXyooKSAtPiBfcGVlcl9xdWVyeV8qKCkKCjIwMTEtMTEtMTUgMTc6NDA6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBfYWNjZXB0X2NhcHMoKSAtPiBfcXVlcnlfYWNjZXB0X2NhcHMoKQoKMjAxMS0xMS0xNSAxNzoxMTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIF9wZWVyX2dldF9jYXBzKCkgLT4gcGVlcl9xdWVyeV9jYXBzKCkKCjIwMTEtMTEtMTUgMTY6NDY6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBwYWQ6IF9nZXRfY2FwcygpIC0+IF9xdWVyeV9jYXBzKCkKCjIwMTEtMTEtMTUgMTY6MTY6NTMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZpeCBkb2NzCgoyMDExLTExLTE1IDE2OjEzOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggdGhlIHByb3h5IGZ1bmN0aW9ucwoJICBmaXggdGhlIHByb3h5IGZ1bmN0aW9ucyBmb3IgcXVlcnlfYWNjZXB0X2NhcHMgYW5kIHF1ZXJ5X2NhcHMgdG8gdXNlIHRoZSBwYWQKCSAgZm9yd2FyZCBoZWxwZXIgZnVuY3Rpb25zIHdoaWNoIGNvcnJlY3RseSBmb3J3YXJkcyBvbiB0aGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkcy4KCjIwMTEtMTEtMTUgMTY6MTM6MjggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW1wcm92ZSBzb21lIGZsYWcgbWFjcm9zCgoyMDExLTExLTE1IDE2OjEzOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBkZWJ1ZyBsaW5lCgoyMDExLTExLTE1IDExOjIwOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwYWQ6IHJlbW92ZSBnZXRjYXBzIGFuZCB1c2UgY2FwcyBxdWVyeQoJICBSZW1vdmUgdGhlIGdldGNhcHMgZnVuY3Rpb24gb24gdGhlIHBhZCBhbmQgdXNlIHRoZSBDQVBTIHF1ZXJ5IGZvcgoJICB0aGUgc2FtZSBlZmZlY3QuCgkgIEFkZCBQUk9YWV9DQVBTIHRvIHRoZSBwYWQgZmxhZ3MuIFRoaXMgaW5zdHJ1Y3RzIHRoZSBkZWZhdWx0IGNhcHMgZXZlbnQgYW5kIHF1ZXJ5CgkgIGhhbmRsZXJzIHRvIHBhc3Mgb24gdGhlIENBUFMgcmVsYXRlZCBxdWVyaWVzIGFuZCBldmVudHMuIFRoaXMgc2ltcGxpZmllcyBhIGxvdAoJICBvZiBlbGVtZW50cyB0aGF0IHBhc3N0cm91Z2ggY2FwcyBuZWdvdGlhdGlvbi4KCSAgTWFrZSB0d28gdXRpbGl0eSBmdW5jdGlvbnMgdG8gcHJveHkgY2FwcyBxdWVyaWVzIGFuZCBhZ2dyZWdhdGUgdGhlIHJlc3VsdC4gTmVlZHMKCSAgdG8gdXNlIHRoZSBwYWQgZm9yd2FyZCBmdW5jdGlvbiBpbnN0ZWFkIGxhdGVyLgoJICBNYWtlIHRoZSBfcXVlcnlfcGVlcl8gdXRpbGl0eSBmdW5jdGlvbnMgdXNlIHRoZSBnc3RfcGFkX3BlZXJfcXVlcnkoKSBmdW5jdGlvbiB0bwoJICBtYWtlIHN1cmUgdGhlIHByb2JlcyBhcmUgZW1pdGVkIHByb3Blcmx5LgoKMjAxMS0xMS0xNCAxMToyNjoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIGNhcHMgcXVlcnkKCjIwMTEtMTEtMTQgMDk6NTc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiByZW1vdmUgR1NUX1FVRVJZX0xBU1QKCjIwMTEtMTEtMTQgMTA6Mjc6MDEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIGZpeCBkb2NzCgoyMDExLTExLTEyIDEwOjI5OjMwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6CgkgIGNvbnRyb2xsZXI6IHJlbW92ZSBmdW5jdGlvbnMgdG8gYWRkL3JlbW92ZSBjb250cm9sbGVkIHByb3BlcnRpZXMKCSAgTWFrZSB0aGF0IGltcGxpeml0IHdpdGggYXR0YWNoaW5nL2RldGFjaGluZyBjb250cm9sc291cmNlcy4gVGhpcyBpcyBhIGxvdCBlYXNpZXIKCSAgYW5kIGhhcyBsZXNzIGludmFsaWQgc3RhdGUgKGNvbnRyb2xsZWQgcHJvcGVydHkgd2l0aG91dCBjb250cm9sIHNvdXJjZSkuCgoyMDExLTExLTEzIDIzOjI1OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcGx1Z2lucywgdG9vbHM6IHVwZGF0ZSBmb3IgZ2V0X3Byb3RvY29scygpIHJldHVybiB2YWx1ZSBjaGFuZ2UKCjIwMTEtMTEtMTMgMjM6MTQ6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IGNsZWFuIHVwIGhlYWRlciBmaWxlcwoJICBUYWJzIHRvIHNwYWNlcy4KCjIwMTEtMTEtMTMgMjM6MDc6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpaGFuZGxlcjogZml4IHJldHVybiB0eXBlIG9mIGdldF9wcm90b2NvbHMoKQoKMjAxMS0xMS0xMyAyMDo1NjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgdXJpaGFuZGxlcjogZml4IHJldHVybiB0eXBlIG9mIF9nZXRfdXJpX3R5cGUoKQoJICBSZXR1cm4gYSBHc3RVUklUeXBlIGFuZCBub3QgYSBwbGFpbiBndWludC4KCjIwMTEtMTEtMTMgMTc6NDU6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0czogdXBkYXRlIHVuaXQgdGVzdHMgZm9yIFVSSSBoYW5kbGVyIEFQSSBjaGFuZ2VzCgoyMDExLTExLTEzIDE3OjQ0OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZWxlbWVudHM6IHVwZGF0ZSBmZCArIGZpbGUgc291cmNlcyBhbmQgc2lua3MgZm9yIEdzdFVyaUhhbmRsZXIgY2hhbmdlcwoKMjAxMS0xMS0xMyAxNzo0NDowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXJpaGFuZGxlcjogcGFzcyBHRXJyb3IgYXJndW1lbnQgdG8gZ3N0X3VyaV9oYW5kbGVyX3NldF91cmkoKQoJICBBbHNvIGxldCBnc3RfdXJpX2hhbmRsZXJfc2V0X3VyaSBjaGVjayBhbHJlYWR5IGlmIHRoZSBwcm90b2NvbAoJICBpcyBzdXBwb3J0ZWQsIHNvIHRoYXQgbm90IGV2ZXJ5IHVyaSBoYW5kbGVyIGhhcyB0byBkbyB0aGF0CgkgIGl0c2VsZi4KCjIwMTEtMTEtMTMgMTU6NTE6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkgIHVyaWhhbmRsZXI6IG1ha2UgX2dldF91cmkoKSByZXR1cm4gYSBjb3B5CgkgIEZvciB0aHJlYWQtc2FmZXR5LgoKMjAxMS0xMS0xMyAxNTozNzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIHVyaWhhbmRsZXI6IHJlbW92ZSAibmV3LXVyaSIgc2lnbmFsCgkgIE5vIG9uZSBidXQgZmlsZXNyYyB1c2VkIHRoYXQgQVBJLiBTaG91bGQgcHJvYmFibHkgYmUgcmVwbGFjZWQgYnkKCSAgcmVxdWlyaW5nIGFuICJ1cmkiIHByb3BlcnR5IGluc3RlYWQsIGFuZCB0aGVuIG9iamVjdHMgY2FuIGRvIGEKCSAgbm90aWZ5IG9uIHRoYXQuIEFsc28gcmVtb3ZlZCBpbnRlcmZhY2Ugc3RydWN0dXJlIHBhZGRpbmcsIGl0J3MKCSAgbm90IG5lZWRlZC4KCjIwMTEtMTEtMTMgMTM6MjM6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYwoKMjAxMS0xMS0xMiAxNjo0MjoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogcHJpbnQgY3VycmVudCB2YWx1ZSBhcyBkZWZhdWx0IHZhbHVlCgkgIEluc3RlYWQgb2YgcHJpbnRpbmcgc2VwYXJhdGUgJ0N1cnJlbnQnIGFuZCAnRGVmYXVsdCcgdmFsdWVzCgkgICh0aGUgZm9ybWVyIG9idGFpbmVkIHZpYSBnX29iamVjdF9nZXQoKSBhbmQgdGhlIGxhdHRlciBmcm9tCgkgIHRoZSBwcm9wZXJ0eSBHUGFyYW1TcGVjKSwgc2ltcGx5IHByaW50IHRoZSBDdXJyZW50IHZhbHVlIGFzCgkgIHRoZSBEZWZhdWx0IHZhbHVlLiBUaGlzIGlzIHRoZSByaWdodCB0aGluZyB0byBkbyBmb3IgYWxtb3N0CgkgIGFsbCBlbGVtZW50cyBhbmQgYXZvaWRzIGNvbmZ1c2lvbiBpZiBhIHN1YmNsYXNzIG9mIGEgYmFzZQoJICBjbGFzcyBjaG9vc2VzIGEgZGlmZmVyZW50IGRlZmF1bHQgdGhhbiB0aGUgYmFzZSBjbGFzcy4KCjIwMTEtMTEtMTIgMTQ6NTU6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgZ3N0LCBjb250cm9sbGVyOiByZXBsYWNlIGdfbGlzdF9wcmVwZW5kICsgcmV2ZXJzZSB3aXRoIEdRdWV1ZQoKMjAxMS0xMS0xMiAxNDowNDoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGRvY3M6IGZpeCB0eXBvIGluIGJ1ZmZlciBkb2NzCgoyMDExLTExLTEyIDAxOjU0OjQ0ICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBjYXBzIHVucmVmIGluIHRyYW5zZm9ybV9jYXBzIGZpbHRlciBzdWJzZXQgY2hlY2sKCSAgSSBkaWQgbm90IHRlc3QgdGhpcywgYnV0IHRoZSBjb2RlIGxvb2tlZCB2ZXJ5IHdyb25nLgoKMjAxMS0xMS0xMiAwMTo1MToxMSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogZG8gbm90IHJldHVybiBhIHJlZiBmcm9tIHBhcnNlX2FjY2VwdF9jYXBzCgkgIE1ha2VzIHRoaXMgZXhhY3RseSBsaWtlIGdzdF9ldmVudF9wYXJzZV9jYXBzLiBUaGlzIGlzIHdoYXQgY3VycmVudCBjb2RlCgkgIGV4cGVjdHMsIHNvIGl0IGZpeGVzIHNvbWUgbGVha3MuCgoyMDExLTExLTExIDE3OjE3OjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICAuaDogZml4IGhlYWRlciBmaWxlcwoJICBFbnN1cmUgY29ycmVjdCBpbmRlbnRhdGlvbiBhbmQgcmV0YWIKCSAgTWFrZSBzdXJlIGFsbCBzdHJ1Y3R1cmUgaGF2ZSBwYWRkaW5nCgoyMDExLTExLTExIDE2OjUyOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0aW5kZXguaDoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuaDoKCSogZ3N0L2dzdHByZXNldC5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuaDoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJICAuaDogZml4IGhlYWRlciBmaWxlcwoJICBFbnN1cmUgY29ycmVjdCBpbmRlbnRhdGlvbiBhbmQgOnJldGFiLgoJICBNYWtlIHN1cmUgYWxsIHN0cnVjdHVyZXMgaGF2ZSBwYWRkaW5nCgkgIEZpeCB1cCBzb21lIG9sZCBBQkkgYWRkaXRpb25zLgoKMjAxMS0xMS0xMSAxNzowNDo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZG9jczogZml4IGludmFsaWQgeG1sCgoyMDExLTExLTExIDEwOjAwOjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGF2b2lkIDwgLTEgc2l6ZXMKCjIwMTEtMTEtMTEgMDE6NDc6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBidWZmZXIsIG1lbW9yeTogbWFrZSBzaXplIGFyZ3VtZW50cyB3aGVyZSAtMSBpcyBhbGxvd2VkIHNpZ25lZAoKMjAxMS0xMS0xMSAwMTo0NDoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IHVwZGF0ZSAuZGVmIGZpbGUgZm9yIGxhdGVzdCBBUEkgY2hhbmdlcwoKMjAxMS0xMS0xMCAxOTozNzoyOCArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmg6CgkqIGdzdC9nc3Rjb250cm9sc291cmNlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBjb250cm9sbGVyOiBtZXJnZSBjb250cm9sbGVyIGludG8gZ3N0b2JqZWN0CgkgIFRoaXMgbWFrZSB0aGUgY29udHJvbGxlciBldmVuIG1vcmUgbGlnaHR3ZWlnaHQgKG5vIGV4dHJhIG9iamVjdCwgbm8gZXh0cmEgbG9jaywKCSAgbGVzcyBpbmRpcmVjdGlvbnMpLiBGb3Igb2JqZWN0IHRoYXQgZG9uJ3QgdXNlIHRoZSBjb250cm9sbGVyIHRoZSBvbmx5ICdvdmVyaGVhZCcKCSAgaXMgYSAzIHVudXNlZCBmaWVsZHMgaW4gdGhlIGdzdF9vYmplY3Qgc3RydWN0dXJlLgoKMjAxMS0xMS0xMCAxODo1ODozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0YWRkcmVzc21ldGEuaDoKCSAgbmV0bWV0YTogYXZvaWQgdXNpbmcgZ1t1XWxvbmcgaW4gaGVhZGVycwoKMjAxMS0xMS0xMCAxODoxODoyNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlbW92ZSBmbHVzaCBmcm9tIF91bm1hcAoKMjAxMS0xMS0xMCAxNjowMjo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXBsZW1lbnQgYSBkZWZhdWx0IGdldF9jYXBzIGZ1bmN0aW9uCgkgIERvbid0IHJlbHkgb24gdGhlIHJldHVybiB2YWx1ZSBvZiBhIHZtZXRob2QgdG8gdHJpZ2dlciB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiBidXQgbWFrZSBhIHJlYWwgZGVmYXVsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtZXRob2QgdGhhdCB0aGUKCSAgc3ViY2xhc3MgY2FuIGNoYWluIHVwIHRvLgoKMjAxMS0xMS0xMCAxNDoxMzo1NCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogcmVtb3ZlIGluY29ycmVjdCBhc3NlcnRpb24KCSAgT2Zmc2V0IGFuZCBzaXplcyBoYXZlIG5vIGJlYXJpbmcgb24gZWFjaCBvdGhlciBoZXJlLgoKMjAxMS0xMS0xMCAxMzo1OToyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGRlZiBmaWxlcwoKMjAxMS0xMS0xMCAxMzo1MzozMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgZ3N0OiBNb3JlIGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCjIwMTEtMTEtMTAgMTM6NTE6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIGdzdG1lbW9yeTogUmVnaXN0ZXIgYSBHQm94ZWQgR1R5cGUKCSAgQWxsb3dzIHVzaW5nIGl0IGZyb20gZy1pCgoyMDExLTExLTEwIDEzOjUwOjIzICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogQWRkIC0td2Fybi1hbGwgdG8gaW50cm9zcGVjdGlvbiBzY2FubmVyCgkgIC4uLiBhbmQgbGV0J3MgZ2V0IGZpeGluZyBhbGwgdGhvc2UgZG9jcyAhCgoyMDExLTExLTEwIDEzOjM4OjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCB2bWV0aG9kcwoJICBNYWtlIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdHJhbnNmb3JtX2NhcHMgdm1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMKCSAgY2FuIGNhbGwgaW50byBpdC4KCSAgTWFrZSBhIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgdHJhbnNmb3JtX3NpemUuCgkgIEF2b2lkIGRvaW5nIHNvbWV0aGluZyBpbiB0aGUgdm1ldGhvZCB0cmFtcG9saW5lLgoKMjAxMS0xMS0xMCAxMzozNzoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSAgdGVzdHM6IG9ubHkgb3ZlcnJpZGUgd2hlbiAhPSBOVUxMCgkgIE9ubHkgb3ZlcnJpZGUgdGhlIG1ldGhvZHMgaW4gdGhlIHVuaXQgdGVzdHMgd2hlbiAhPSBOVUxMIG90aGVyd2lzZSB3ZSBtaWdodAoJICBvdmVycmlkZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMTEtMTAgMTM6MzY6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIHB1c2hzcmM6IG1ha2UgYWxsb2MgbWV0aG9kIGEgdm1ldGhvZAoKMjAxMS0xMS0xMCAxMjozMzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlb3JkZXIgdm1ldGhvZCBhY2NvcmRpbmcgdG8gLmggZmlsZQoKMjAxMS0xMS0xMCAxMjozMzozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgYmFzZXNpbms6IGltcHJvdmUgY29tbWVudHMKCjIwMTEtMTEtMTAgMTI6MzM6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgZG8gdGhpbmdzIGluIHRoZSB2bWV0aG9kIHRyYW1wb2xpbmUKCjIwMTEtMTEtMTAgMTI6MDk6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IGFkZCBhIGRlZmF1bHQgc2V0X2Nsb2NrIGltcGxlbWVudGF0aW9uCgkgIEFkZCBhIGRlZmF1bHQgc2V0X2Nsb2NrIGltcGxlbWVudGF0aW9uIGFuZCBhdm9pZCBkb2luZyB3b3JrIGluIHRoZSB2bWV0aG9kCgkgIHRyYW1wb2xpbmUuIFRoaXMgcmVxdWlyZXMgc3ViY2xhc3NlcyB0byBjaGFpbiB1cC4KCjIwMTEtMTEtMTAgMTI6MDg6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCBkbyBhbnl0aGluZyBpbiB0aGUgdm1ldGhvZCB0cmFtcG9saW5lCgkgIEF2b2lkIGRvaW5nIHN0dWZmIGluIHRoZSB2bWV0aG9kIHRyYW1wb2xpbmUsIGp1c3QgbGV0IHRoZSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtZXRob2QgdGFrZSBjYXJlIG9mIHRoaW5ncy4KCjIwMTEtMTEtMTAgMTI6MDg6MTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggc29tZSBkb2NzCgoyMDExLTExLTEwIDExOjQyOjI2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiB1c2UgZ3BvaW50ZXIgZm9yIHJldHVybiB0eXBlcwoKMjAxMS0xMS0xMCAxMToxMjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBkb2MKCjIwMTEtMTEtMTAgMTA6NTg6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwYWQ6IHJlbW92ZSBHc3RQYWRGaXhhdGVDYXBzRnVuY3Rpb24KCSAgVGhlIGZpeGF0ZSBjYXBzIGZ1bmN0aW9uIHdhcyBub3QgdXNlZCBleHRlcm5hbGx5IGFuZCB3ZSBoYXZlIHZtZXRob2RzIGluIHRoZQoJICBiYXNlIGNsYXNzZXMgd2hlcmUgaXQgaXMgbmVlZGVkLgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICBzaW1wbGlmeSBzb21lIGZpeGF0ZSBmdW5jdGlvbnMgaW4gdGhlIGJhc2UgY2xhc3Nlcy4gQWxzbyBwYXNzIHRoZSB1bnRydW5jYXRlZAoJICBjYXBzIHRvIHRoZSB2bWV0aG9kLgoKMjAxMS0xMS0wOSAxNzo0Mzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBzdG9yZSBldmVudHMgb24gZmx1c2hpbmcgcGFkcwoJICBjaGVjayB0aGUgZmx1c2hpbmcgc3RhdGUgb2YgdGhlIHBhZCBiZWZvcmUgc3RvcmluZyB0aGUgZXZlbnQuCgoyMDExLTExLTA5IDE3OjM2OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBwYWQ6IG1ha2UgYW4gQUNDRVBUX0NBUFMgcXVlcnkKCSAgUmVwbGFjZSB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiB3aXRoIGEgcXVlcnkuCgoyMDExLTExLTA5IDE3OjI1OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBwYWQ6IHJlZnVzZSBldmVudHMgaW4gZmx1c2hpbmcKCSAgd2hlbiB3ZSBhcmUgZmx1c2hpbmcsIGRvbid0IHN0b3JlIHRoZSBldmVudCBvbiB0aGUgcGFkIGJ1dCBzaW1wbHkgcmV0dXJuIEZBTFNFLgoJICBEb24ndCBkZWFjdGl2YXRlIHRoZSBzcmNwYWQsIHdlIG5lZWQgaXQgdG8gYmUgYWN0aXZlIGluIG9yZGVyIHRvIHB1c2ggdGhlCgkgIGNhcHMuIERvd25zdHJlYW0gY2FuIGNoYW5nZSB0aGUgc2NoZWR1bGluZyBtb2RlIG9mIGFuIGFjdGl2ZSBwYWQuCgoyMDExLTExLTA5IDE3OjE5OjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgZWxlbWVudDogcmVtb3ZlIG1vcmUgcXVlcnlfdHlwZXMKCjIwMTEtMTEtMDkgMTE6MDU6NTkgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBBbmRyb2lkLm1rOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBBbmRyb2lkOiBidWlsZCBhdWRpbyBjb250cm9sbGVyIGV4YW1wbGUKCSAgQWRkIGJ1aWxkc3lzdGVtIGhvb2tzIGZvciBidWlsZGluZyB0aGUgYXVkaW9jb250cm9sbGVyIGV4YW1wbGUKCSAgd2l0aCB0aGUgTkRLLgoJICBTaWduZWQtb2ZmLWJ5OiBSZXluYWxkbyBILiBWZXJkZWpvIFBpbm9jaGV0IDxyZXluYWxkb0Bjb2xsYWJvcmEuY29tPgoKMjAxMS0xMS0wOSAxMjoyMToxNyArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogYWRkIHRlc3RzIGZvciBzdGlja3kgY2FwcyBoYW5kbGluZwoJICB0ZXN0X3N0aWNreV9jYXBzX2ZsdXNoaW5nIGlzIGN1cnJlbnRseSBmYWlsaW5nLgoKMjAxMS0xMS0wOSAxMjoxMjoyNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgdXBkYXRlIGNvbW1vbgoKMjAxMS0xMS0wOSAxMjowMzoyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTEtMDkgMTI6MDI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMTEtMDkgMTE6NDc6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgcmVtb3ZlIHF1ZXJ5IHR5cGVzCgkgIEl0IHdhcyBub3QgcmVhbGx5IHVzZWZ1bAoKMjAxMS0xMS0wOCAxODowOToyOCArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IGNvbnNpZGVyIGxpc3RzIGFuZCByYW5nZXMgZXF1YWwgaWYgdGhleSBob2xkIHRoZSBzYW1lIHNldAoJICBUaGlzIGZpeGVzIGNhcHMgb3BlcmF0aW9ucyB3aGVuIGRpZmZlcmVudCBlbGVtZW50cyBhZHZlcnRpc2Ugc29tZQoJICBvZiB0aGVpciBjYXBzJyBwcm9wZXJ0aWVzIGRpZmZlcmVudGx5IChlZywgZm9yIGF1ZGlvIGNoYW5uZWxzLCBlaXRoZXIKCSAgYSByYW5nZSBmcm9tIDEgdG8gMiwgb3IgYSBsaXN0IG9mIDEgYW5kIDIpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzNjQzCgoyMDExLTExLTA5IDExOjI0OjI2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICB0ZXN0czogYWRkIGEgc3Vic2V0IHRlc3QgZm9yIHN0cnVjdHVyZQoKMjAxMS0xMS0wOSAxMToyMjozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBhZDogYWRkIG1vcmUgcXVlcmllcwoJICBBZGQgbW9yZSBxdWVyeSBmdW5jdGlvbnMgdG8gcHJlcGFyZSBmb3IgZG9pbmcgbW9yZSB3aXRoIHF1ZXJpZXMKCjIwMTEtMTAtMjggMTM6Mzk6NTggKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgZG9jczogYWxzbyBmaXggd3JvbmcgY2FsbCBvcmRlciBmb3IgY29udHJvbGxlciBpbiBtYW51YWwKCjIwMTEtMTEtMDggMTc6MzI6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2Jlcy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGluc3RhbGwgcXVlcnkgcHJvYmVzCgkgIEZpcmUgcXVlcnkgcHJvYmVzIGFjY29yZGluZyB0byB1cGRhdGVkIGRlc2lnbiBkb2MuCgoyMDExLTExLTA4IDE1OjUxOjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSBsb2NrL3VubG9ja19mdWxsIHZlcnNpb25zIG9mIHN0cmVhbS1sb2NrCgoyMDExLTExLTA4IDE1OjQ4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBkZWZpbmVzIGZvciBxdWVyeSBwcm9iZXMKCjIwMTEtMTEtMDggMTM6MzA6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IHVuaXQgdGVzdAoKMjAxMS0xMS0wOCAxMzoxMzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiB1cGRhdGUgZG9jcwoKMjAxMS0xMS0wOCAxMzowMjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdDogcG9ydCB0byAwLjExCgoyMDExLTExLTA4IDEyOjU0OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RlbGVtZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYwoKMjAxMS0xMS0wOCAxMjo0NzozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIHB1bGwgbW9kZSBwcm9iZXMKCSAgQWxsb3cgcHJvYmVzIHRvIGluc3BlY3QgdGhlIG9mZnNldCBhbmQgc2l6ZSBmcm9tIGEgcHJvYmUgaW4gcHVsbCBtb2RlIGFuZCBhbGxvdwoJICB0aGUgcHJvYmUgdG8gbW9kaWZ5IHRoZSBidWZmZXIuCgkgIFVwZGF0ZSBkZXNpZ24gZG9jIGEgbGl0dGxlLgoKMjAxMS0xMS0wOCAxMjoyMjoyMSArMDEwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IHBhZDogYWRkIHRlc3QgdG8gdmVyaWZ5IGZsdXNoaW5nIGJlaGF2aW91cgoJICBTZWVtcyBsaWtlIGEgdHJpdmlhbCBjYXNlLCBidXQgdGhpcyB3YXMgYWN0dWFsbHkgYnJva2VuIGluIDAuMTEgcmVjZW50bHkuCgoyMDExLTExLTA4IDExOjA0OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBwYWQ6IEFkZCBHc3RQYWRQcm9iZUluZm8KCSAgTWFrZSBhIG5ldyBHc3RQYWRQcm9iZUluZm8gc3RydWN0dXJlIGFuZCBwYXNzIHRoaXMgaW4gdGhlIHByb2JlIGNhbGxiYWNrLiBUaGlzCgkgIGFsbG93cyB1cyB0byBhZGQgbW9yZSB0aGluZ3MgbGF0ZXIgYW5kIGFsc28gYWxsb3cgdGhlIGNhbGxiYWNrIHRvIHJlcGxhY2Ugb3IKCSAgbW9kaWZ5IHRoZSBwYXNzZWQgb2JqZWN0LgoKMjAxMS0xMS0wOCAwODoyNjoyOSArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogbG9nIGNyZWF0aW9uIG9mIHFvcyBldmVudHMgYXQgTE9HIGxldmVsIGluc3RlYWQgYXQgSU5GTwoKMjAxMS0xMS0wNyAxNjo1NzozNyArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIHBhcmFtZXRlciBkb2NzCgoyMDExLTExLTA4IDAwOjMyOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIGRvY3M6IGZpeCBTaW5jZTogbWFya2VycyBmb3IgQVBJIGFkZGVkIGFmdGVyIDAuMTAuMzUKCjIwMTEtMTEtMDggMDA6MTU6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlIGZvciBuZXcgQVBJCgkgIEFQSTogZ3N0X2NhcHNfaXNfc3RyaWN0bHlfZXF1YWwoKQoKMjAxMS0xMS0wNyAxNzoxNzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0dmFsdWUuYwoKMjAxMS0xMS0wNyAxNzowNDoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJICBwYWQ6IHJld29yayBwYWQgcHJvYmVzCgkgIE1ha2UgYSBzZXBhcmF0ZSBjb29raWUgdG8gZGV0ZWN0IGNoYW5jZ2VzIGluIHRoZSBsaXN0IG9mIHByb2JlcyBhbmQga2VlcGluZwoJICB0cmFjayBvZiB3aGF0IGhvb2tzIGhhdmUgYmVlbiBpbnZva2VkIHlldC4KCSAgUmVtb3ZlIHRoZSByZXF1aXJlbWVudCB0byBoYXZlIHByb2JlcyBvbiBzcmNwYWRzIGluIHB1c2ggbW9kZSBhbmQgc2lua3BhZHMgaW4KCSAgcHVsbCBtb2RlLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnLgoJICBLZWVwIHRyYWNrIG9mIHdoYXQgY2FsbGJhY2tzIGdvdCBleGVjdXRlZC4gSWYgbm8gY2FsbGJhY2sgaXMgY2FsbGVkIGFuZCB3ZSBhcmUgYQoJICBibG9ja2luZyBwYWQsIGxldCB0aGUgaXRlbSBwYXNzLiBUaGlzIGFsbG93cyB5b3UgdG8gYmxvY2sgcGFkcyBvbiBzZWxlY3RlZAoJICBpdGVtcyBvbmx5LgoJICBFeHBsaWNpdGx5IGhhdmUgYW4gVVBTVFJFQU0gYW5kIERPV05TVFJFQU0gUGFkUHJvYmVUeXBlLiBUaGlzIGFsbG93cyB5b3UgdG8gb25seQoJICBibG9jayB0aGUgcGFkIG9uIHVwc3RyZWFtIG9yIGRvd25zdHJlYW0gaXRlbXMuCgkgIEFkZCBjb252ZW5pZW5jZSBtYWNyb3MgdG8gb25seSBibG9jayBvbiBkb3duc3RyZWFtL3Vwc3RyZWFtIGl0ZW1zLgoKMjAxMS0xMC0yNyAxMjo1OTo1NyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBnc3RjYXBzOiByZW1vdmUgdW5uZWVkZWQgdXNlIG9mIGdpbnQ2NAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDEyOjI0OjEzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBxdWlja2VyIHZlcnNpb24gb2YgaW50ZXJzZWN0aW9uIHdoZW4gd2UgZG8gbm90IG5lZWQgdGhlIHJlc3VsdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDEyOjAyOjQzICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBzaW1wbGlmeSByZXR1cm4gc3RhdGVtZW50IGluIGdzdF9zdHJ1Y3R1cmVfY2FuX2ludGVyc2VjdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNzc3CgoyMDExLTEwLTI3IDExOjQxOjMwICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZ3N0c3RydWN0dXJlOiBlYXJseSBvdXQgd2hlbiB3ZSBrbm93IGEgdmFsdWUgY2Fubm90IGJlIGEgc3Vic2V0CgkgIElmIHR3byB2YWx1ZXMgY2FuIGJlIG9yZGVyZWQsIGJ1dCBhcmUgdW5lcXVhbCwgdGhleSBhcmUKCSAgbmVjZXNzYXJpbHkgZGlzdGluY3QsIHRodXMgb25lIGNhbm5vdCBiZSBhIHN1YnNldCBvZiB0aGUgb3RoZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMTA6MzU6NTMgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHF1aWNrZXIgdGVzdCBmb3Igc3Vic3RyYWN0aW9uIGVtcHRpbmVzcwoJICBXaGVuIHdlIGRvIG5vdCBjYXJlIGFib3V0IHRoZSBhY3R1YWwgcmVzdWx0aW5nIHNldCwKCSAgYnV0IG9ubHkgd2hldGhlciBpdCBpcyBlbXB0eSBvZiBub3QsIHdlIGNhbiBza2lwIGEgZmFpciBiaXQKCSAgb2YgR1ZhbHVlIGp1Z2dsaW5nLgoJICBBZGQgYSBmdW5jdGlvbiB0aGF0IGRvZXMgc28sIHNpbmNlIHdlIGNhbm5vdCBqdXN0IHBhc3MgTlVMTAoJICB0byB0aGUgZXhpc3RpbmcgQVBJIGFzIGl0IG1heSBiZSBwYXJ0IG9mIHRoZSBBUEkgY29udHJhY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTAtMjcgMDk6NDU6NDEgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8dmluY2VudC5wZW5xdWVyY2hAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IHJlamlnIHRlc3Qgb3JkZXJpbmcgZm9yIHNwZWVkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjI3NzcKCjIwMTEtMTEtMDcgMTI6Mjg6MjIgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBtZW50aW9uIG1vcmUgYXBpIGNoYW5nZXMgaW4gdGhlIHBvcnRpbmcgZ3VpZGUKCjIwMTEtMTEtMDcgMTA6NDA6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggY29tcGlsYXRpb24KCjIwMTEtMTEtMDcgMTA6MDE6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMTEtMDYgMDA6MDc6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgUmV2ZXJ0ICJjb250cm9sbGVyOiBmaXggZ19yZXR1cm4gc3RhdGVtZW50IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDU5M2QyYjI5N2JkN2I1Y2U5ZGJjZGYyZjFhZTJiNzYyNGQ5NGQ2YWUuCgkgIGdzdF9jb250cm9sbGVyX3NldF9kaXNhYmxlZCAoKSByZXR1cm5zIGEgdm9pZC4KCjIwMTEtMTEtMDUgMTI6MTA6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIHJlZnMgdG8gcmVtb3ZlZCBBUEkKCjIwMTEtMTEtMDQgMjE6Mzc6NDUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGNvbnRyb2xsZXI6IHRoZSBvYmplY3QgbmVlZHMgYSByZWYgdG8gdGhlIGNvbnRyb2xsZXIgZm9yIHRoZSBjb252ZW5pZW5jZSBhcGkKCSAgQWRkIGEgaGFjayB0byBlbnN1cmUgdGhlIG9iamVjdCB3aWxsIGhhdmUgYSByZWYgdG8gdGhlIGNvbnRyb2xsZXIgb25jZSB3ZQoJICBjcmVhdGUgaXQuIEZpeGVzIHRoZSBhdWRpbyBleGFtcGxlICh0aGF0IHVzZXMgdGhlIGNvbnRyb2xsZXIgYXBpIGRpcmVjdGx5KS4KCjIwMTEtMTEtMDQgMjE6Mzc6MjEgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBmaXggZ19yZXR1cm4gc3RhdGVtZW50CgoyMDExLTExLTA0IDIxOjM1OjU1ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogbG9nZ2luZyB0d2Vha3MKCSAgRG9uJ3QgbG9nIGluIF9uZXcgYmVmb3JlIHdlIGhhdmUgdGhlIGxvZyBjYXRlZ29yeS4gVXNlIF9PQkpFQ1QgdmFyaWFudHMuCgoyMDExLTExLTA1IDAxOjI3OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0OiBmaXggc29tZSBjb21waWxlciB3YXJuaW5ncwoJICBnc3RvYmplY3QuYzogSW4gZnVuY3Rpb24gJ2dzdF9vYmplY3RfaGFzX2FjdGl2ZV9hdXRvbWF0aW9uJzoKCSAgZ3N0b2JqZWN0LmM6MTA3NjozOiBlcnJvcjogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgkgIGdzdGNvbnRyb2xsZXIuYzogSW4gZnVuY3Rpb24gJ2dzdF9jb250cm9sbGVyX2lzX2FjdGl2ZSc6CgkgIGdzdGNvbnRyb2xsZXIuYzo1MDk6MzogZXJyb3I6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAoKMjAxMS0xMS0wNCAyMDo1MDo1OCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmM6CgkqIGdzdC9nc3Rjb250cm9sbGVyLmg6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBjb250cm9sbGVyOiBhZGQgYXBpIHRvIGNoZWNrIGZvciBhY3RpdmUgY29udHJvbGxlcnMgKG5lZWRlZCBmb3IgZS5nLiB2b2x1bWUpCgoyMDExLTExLTA0IDIwOjMyOjMyICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBjb250cm9sbGVyOiByZW1vdmUgb2Jzb2xldGUgY29tbWVudHMgZnJvbSBhcGkgdHJhbnNpdGlvbgoKMjAxMS0xMS0wNCAxNDowMDoyNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkgIGNvbnRyb2xsZXI6IGZpeCB0ZXN0cyBhZnRlciBtb3ZlIGFuZCBBUEkgY2hhbmdlcwoKMjAxMS0xMS0wNCAxMTo0MjozNCArMDEwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgY29udHJvbGxlcjogcG9ydCB0byBuZXcgY29udHJvbGxlciBhcGkKCjIwMTEtMTEtMDQgMTE6Mzk6MjUgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBjb250cm9sbGVyOiB1cGRhdGUgZG9jcyBmb3IgY29udHJvbGxlciBtb3ZlCgoyMDExLTExLTA0IDExOjM0OjExICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5jOgoJKiBnc3QvZ3N0Y29udHJvbGxlci5oOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBnc3QvZ3N0Y29udHJvbHNvdXJjZS5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSAgY29udHJvbGxlcjogbW92ZSB0byBjb3JlL2dzdG9iamVjdAoJICBNb3ZlIHRoZSBjb250cm9sbGVyIHRvIGdzdG9iamVjdCBhcyBhIHNpbXBsZSBkZWxlZ2F0ZS4gVGhlIGNvbnRyb2xsZXIgYW5kCgkgIGNvbnRyb2xzb3VyY2UgYXJlIG5vdCBjbGFzc2VzIGluIGNvcmUuIFRoZSBjb250cm9sc291cmNlcyBzdGF5IHNlcGFyYXRlIGFzIGEgbGliCgkgIGZvciBub3cuIFRoaXMgd2F5IHdlIGNhbiBhdm9pZCB0aGUgcWRhdGEgbG9va3Vwcy4KCSAgQWxzbyByZW1vdmUgY29udHJvbGxlcl9pbml0KCkuIFRoZXJlIGlzIG5vIG1vcmUgbmVlZCB0byBsaW5rIHRvIGNvbnRyb2xsZXIgZm9yCgkgIGVsZW1lbnRzLgoJICBBbHNvIHNhbml0aXplIHRoZSBBUEkuIFdlIG5vdyBoYXZlIGZ1bmN0aW9ucyB0byBhZGQgcHJvcGVydGllcyBsaWtlIHdlIGhhZAoJICBtZXRob2RzIHRvIHJlbW92ZSB0aGF0LiBUaGF0IGF2b2lkcyB0aGVuIHJlZiBjb3VudCBoYWNrcyB3ZSBoYWQgaW4gX25ldy4KCjIwMTEtMTEtMDMgMTg6MjM6MTMgKzAxMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiBzbWFsbCBjbGFyaWZpY2F0aW9uCgoyMDExLTExLTAzIDE4OjIyOjE2ICswMTAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogbWlzc2luZyByZW5hbWUgaWZhY2UtPmludGVyZmFjZSBpbiB0aGUgZG9jcwoKMjAxMS0xMS0wNCAxOToxNzowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggdGhlIGl0ZXJhdG9yIGNvcHkKCjIwMTEtMTEtMDQgMTk6MTE6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJpbi5jCgoyMDExLTExLTAzIDE1OjM2OjU5ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBPbmx5IHVzZSB0aGUgY2FjaGVkIHRyYW5zZm9ybSBvbiBzdHJpY3RseSBlcXVhbCBjYXBzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjMzMzMKCjIwMTEtMTEtMDMgMTU6MzU6MzIgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogQWRkIGdzdF9jYXBzX2lzX3N0cmljdGx5X2VxdWFsCgoyMDExLTExLTA0IDE4OjQ3OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgdGVzdHM6IGZpeCB0ZXN0cwoJICBTaW5jZSBibG9ja3MgYXJlIG5vdCBvbiBib3RoIGRpcmVjdGlvbnMsIHdlIG5lZWQgdG8gY2hlY2sgaW4gdGhlIGJsb2NrIGNhbGxiYWNrCgkgIGlmIHdlIGFyZSBub3QgYmxvY2tpbmcgb24gYW4gdXBzdHJlYW0gZXZlbnQgYW5kIGxldCBpdCBwYXNzLgoKMjAxMS0xMS0wNCAxODoxOToxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2UgcHJvYmVzIHdvcmsgb24gYWxsIHBhZHMKCSAgZml4ZXMgIzY0NDkwNwoKMjAxMS0xMC0xNSAyMjo1MjoyNSArMDMwMCAgUGV0ZXJpcyBLcmlzamFuaXMgPHBlY2lza0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgaW50cm9zcGVjdGlvbjogYWRkIFZhbHVlIGFubm90YXRpb25zIGZvciBHU1RfU0VDT05ELCBHU1RfTVNFQ09ORCwgR1NUX1VTRUNPTkQsIEdTVF9OU0VDT05EIGNvbnN0YW50cwoJICBnb2JqZWN0LWludHJvc3BlY3Rpb24gd29uJ3QgcGFyc2UgdGhlbSBwcm9wZXJseSBvdGhlcndpc2UuCgkgIFN0aWxsIG5lZWQgdG8gZm9yY2UgdGhlIHJpZ2h0IHR5cGUgdGhvdWdoIChlaXRoZXIgR3N0Q2xvY2tUaW1lIG9yCgkgIGd1aW50NjQpLCBidXQgVHlwZTogeHl6IGhhcyBubyBlZmZlY3QgZm9yIG1lIGhlcmUsIHNvIHNvbWVvbmUgd2l0aAoJICBhIG5ld2VyIGctaSBuZWVkcyB0byB0ZXN0IHRoaXMuCgkgIFNvbWUgb3RoZXIgZGVmaW5lcyBhcmUgYWxzbyBtaXNzaW5nLCBlLmcuIEdTVF9DTE9DS19USU1FX05PTkUuCgoyMDExLTExLTA0IDAwOjAzOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBzdXBwcmVzcyB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MgaWYgZ3N0IGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyOTUyCgoyMDExLTExLTA0IDAwOjAyOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBmaXggdHlwbyBhcm91bmQgR0xJQl9FWFRSQV9DRkxBR1MgaW4gR1NUX0FMTF9DWFhGTEFHUwoKMjAxMS0xMS0wMyAyMzowODo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgcXVldWU6IHVzZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBHUXVldWUKCjIwMTEtMTEtMDMgMjI6NTg6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IHVzZSBzdGF0aWNhbGx5IGFsbG9jYXRlZCBHUXVldWUKCSAgQmVjYXVzZSB3ZSBjYW4uCgoyMDExLTExLTAzIDIyOjUxOjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogdXNlIGZsYWdzIGVudW0gaW5zdGVhZCBvZiBndWludCBpbiBzdHJ1Y3R1cmUKCjIwMTEtMTEtMDMgMDg6NDc6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiB1c2Ugc3RhdGljYWxseSBhbGxvY2F0ZWQgR1F1ZXVlCgoyMDExLTExLTAzIDE3OjQ5OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBmaXggcmVxdWVzdCBwYWQKCSAgTWFrZSBhbGwgcmVxdWVzdCBwYWRzIHRha2UgXyV1IGluIHRoZSB0ZW1wbGF0ZS4KCSAgRml4IHVwIHVuaXQgdGVzdHMuCgoyMDExLTExLTAzIDE2OjQ5OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdG5ldC5kZWY6CgkgIGRlZjogdXBkYXRlIGRlZnMKCjIwMTEtMTEtMDMgMTY6NDY6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L2dzdG5ldGFkZHJlc3NtZXRhLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRhZGRyZXNzbWV0YS5oOgoJICBuZXQ6IGFkZCBuZXQgYWRkcmVzcyBtZXRhZGF0YQoKMjAxMS0xMS0wMyAxNDoyNjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBuZXR0aW1lOiBjbGVhbiB1cCBoZWFkZXIKCjIwMTEtMTEtMDMgMTQ6MTQ6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBkb24ndCB1c2UgbG9jay91bmxvY2tfZnVsbAoKMjAxMS0xMS0wMyAxMTozMDo1MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0Z2hvc3RwYWQuYwoKMjAxMS0xMS0wMiAxMjozNzoxNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzbWFsbCBjbGVhbnVwCgoyMDExLTEwLTI1IDE3OjI2OjUwIC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBEb24ndCBjYWNoZSBpbnRlcm5hbCBwcm94eSBwYWQgdGFyZ2V0CgkgIFRoZSBpbnRlcm5hbCBwcm94eSBwYWQgdGFyZ2V0IGlzIHNpbXBseSBhIGNhY2hlIG9mIHRoZSBpbnRlcm5hbCBwcm94eSBwYWQKCSAgcGVlci4gVGhpcyBwYXRjaCB1c2VzIHRoZSB3ZWxsIGltcGxlbWVudCBHc3RQYWQgcGVlciBoYW5kbGluZyB0byBvYnRhaW4gdGhlCgkgIHRhcmdldC4gVGhpcyBmaXhlcyBpc3N1ZXMgd2l0aCB0YXJnZXQgbm90IGJlaW5nIHNldCBpbiBib3RoIGRpcmVjdGlvbiB3aGVuCgkgIHR3byBnaG9zdHBhZHMgYXJlIGxpbmtlZCB0b2dldGhlciAoZW1wdHkgYmluKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODUxNwoKMjAxMS0xMS0wMiAxMjowNjo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB1dGlsczogcmVtb3ZlIF9mb3VuZF90YWdzXyBBUEkKCSAgcmVtb3ZlIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MoKSBhbmQgZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkKCksIHRoZXkgYXJlCgkgIG5vdGhpbmcgbW9yZSB0aGFuIGEgd3JhcHBlciBhcm91bmQgZ3N0X3BhZF9wdXNoX2V2ZW50KCkKCjIwMTEtMTEtMDIgMTA6Mjk6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29tbW9uCgkgIGNvbmZpZ3VyZS5hYwoKMjAxMS0xMC0zMCAyMTozMzoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBpbXByb3ZlIGRvY3MKCjIwMTEtMTAtMjkgMDk6NDM6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBtYWtlIEdzdFNlZ21lbnQgYXJndW1lbnQgY29uc3QKCjIwMTEtMTAtMjkgMDk6NDE6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgbWV0YXRpbWluZyBmcm9tIGRvY3MKCjIwMTEtMTAtMjkgMDk6MjY6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YXNrOiBhcGkgY2xlYW51cAoJICBnc3RfdGFza19jcmVhdGUoKSAtPiBnc3RfdGFza19uZXcoKQoKMjAxMS0xMC0yOSAwOTowMjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBjbGVhbnVwIEFQSQoJICBnc3Rfc3RydWN0dXJlX2VtcHR5X25ldygpIC0+IGdzdF9zdHJ1Y3R1cmVfbmV3X2VtcHR5KCkKCSAgZ3N0X3N0cnVjdHVyZV9pZF9lbXB0eV9uZXcoKSAtPiBnc3Rfc3RydWN0dXJlX25ld19pZF9lbXB0eSgpCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfbmV3KCkgLT4gZ3N0X3N0cnVjdHVyZV9uZXdfaWQoKQoKMjAxMS0xMC0yOSAwODozODo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IHJlbW92ZSB0aW1pbmcgbWV0YWRhdGEKCSAgVGhpcyBpcyBub3cgb24gYnVmZmVycyBieSBkZWZhdWx0CgoyMDExLTEwLTI5IDA4OjI0OjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogY2xlYW4gdXAgQVBJCgkgIGdzdF9idWZmZXJfbGlzdF9sZW4oKSAtPiBnc3RfYnVmZmVyX2xpc3RfbGVuZ3RoKCkKCSAgZ3N0X2J1ZmZlcl9saXN0X3NpemVkX25ldygpIC0+IGdzdF9idWZmZXJfbGlzdF9uZXdfc2l6ZWQoKQoKMjAxMS0xMS0wMSAxNDoxNzoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogc2ltcGxpZnkgZ3N0X2FkYXB0ZXJfdGFrZV9saXN0KCkKCSAgVXNlIGEgc3RhY2stYWxsb2NhdGVkIEdRdWV1ZSB0byBhc3NlbWJsZSBvdXIgR0xpc3QuCgoyMDExLTExLTAxIDEwOjU2OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IG1lbnRpb24gR3N0QWN0aXZhdGVNb2RlIHJlbmFtZSBpbiBwb3J0aW5nIGRvYwoKMjAxMS0xMS0wMSAwMDoyNTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IHJlbmFtZSBHc3RBY3RpdmF0ZU1vZGUgdG8gR3N0UGFkQWN0aXZhdGVNb2RlCgkgIFRoZXNlIG1pZ2h0IGJlIHVzZWZ1bDoKCSAgc2VkIC1pIC1lICdzL0dzdEFjdGl2YXRlTW9kZS9Hc3RQYWRBY3RpdmF0ZU1vZGUvZycgYGdpdCBncmVwIEdzdEFjdGl2YXRlTW9kZSB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoJICBzZWQgLWkgLWUgJ3MvR1NUX0FDVElWQVRFXy9HU1RfUEFEX0FDVElWQVRFXy9nJyAgICBgZ2l0IGdyZXAgR1NUX0FDVElWQVRFXyAgIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgoyMDExLTExLTAxIDAwOjEzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9xdWV1ZS1lcnJvci5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IHJlbmFtZSBHc3RQcm9iZVR5cGUgYW5kIEdzdFByb2JlUmV0dXJuIHRvIEdzdFBhZFByb2Jle1R5cGUsUmV0dXJufQoJICBCZXR0ZXIgbm93IHRoYW4gbGF0ZXIgaW4gdGhlIGN5Y2xlLiBUaGVzZSBtaWdodCBjb21lIGluIGhhbmR5OgoJICBzZWQgLWkgLWUgJ3MvR3N0UHJvYmVSZXR1cm4vR3N0UGFkUHJvYmVSZXR1cm4vZycgICBgZ2l0IGdyZXAgR3N0UHJvYmVSZXR1cm4gIHwgc2VkIC1lICdzLzouKi8vJyB8IHNvcnQgLXVgCgkgIHNlZCAtaSAtZSAncy9HU1RfUFJPQkVfL0dTVF9QQURfUFJPQkVfL2cnICAgICAgICAgIGBnaXQgZ3JlcCBHU1RfUFJPQkVfICAgICAgfCBzZWQgLWUgJ3MvOi4qLy8nIHwgc29ydCAtdWAKCSAgc2VkIC1pIC1lICdzL0dzdFByb2JlVHlwZS9Hc3RQYWRQcm9iZVR5cGUvZycgICAgICAgYGdpdCBncmVwIEdzdFByb2JlVHlwZSAgICB8IHNlZCAtZSAncy86LiovLycgfCBzb3J0IC11YAoKMjAxMS0xMC0zMSAyMzozMjoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogcmVtb3ZlIGdzdF90YWdfbGlzdF9nZXRfKmxvbmcqKCkKCSAgTm8gb25lIHVzZXMgdGhpcyBvciBzaG91bGQgZXZlciBuZWVkIHRvIHVzZSBpdCwgc2luY2UKCSAgdGhlIHNpemUgaXMgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGFueXdheS4gSWYgbm9ybWFsCgkgIGludGVnZXJzIGRvbid0IGRvLCBvbmUgc2hvdWxkIHVzZSA2NC1iaXQgaW50ZWdlcnMuCgoyMDExLTEwLTMxIDE5OjA0OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBVcGRhdGUgLmRlZiBmaWxlIGZvciByZW1vdmVkL2NoYW5nZWQgQVBJCgoyMDExLTEwLTMxIDE5OjIzOjQxICswMTAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCBjcmFzaC93YXJuaW5nIGluIGZpbmRfdHJhbnNmb3JtIHdoZW4gcGFkIGlzIHVubGlua2VkCgkgIExvb2tzIGxpa2UgdGhlIHJldmVydCBjb25mbGljdCBpbiBjb21taXQgYTQ0MjcxIHdhcyByZXNvbHZlZCBpbmNvcnJlY3RseS4KCjIwMTEtMTAtMzEgMTc6NDU6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogbWFrZSBHTElCX0VYVFJBX0NGTEFHUyBvdmVyd3JpdGFibGUKCSAgTWFrZSAnbWFrZSBHTElCX0VYVFJBX0NGTEFHUz0uLi4nIHdvcmsuCgoyMDExLTEwLTMxIDE0OjE2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGZpbHRlci5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBmaWx0ZXI6IHJlbW92ZSBnc3RfZmlsdGVyX3J1bigpIGFuZCBkZXByZWNhdGVkIGZpbHRlciBmdW5jCgkgIElmIHNvbWVvbmUgd2FudHMgdG8gcmVzdXJyZWN0IHRoaXMsIHBsZWFzZSB1c2UgYSBsZXNzCgkgIGdlbmVyaWMgbmFtZSBzcGFjZSBmb3IgaXQuCgoyMDExLTEwLTMxIDE0OjAzOjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmMKCjIwMTEtMTAtMzAgMTA6MjY6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0YWdsaXN0OiByZW5hbWUgX25ldygpIHRvIF9uZXdfZW1wdHkoKSBhbmQgbmV3X2Z1bGwqKCkgdG8gbmV3KigpCgoyMDExLTEwLTMwIDIxOjU0OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGZpbHRlci5oOgoJICBmaWx0ZXI6IGRlcHJlY2F0ZSBnc3RfZmlsdGVyX3J1bigpCgkgIEl0J3Mgbm90IHJlYWxseSB1c2VkIG91dHNpZGUgb2YgY29yZSBhdCBhbGwsIGFuZCBoYXMKCSAgc2VyaW91cyBuYW1lc3BhY2UgaXNzdWVzLiBJZiBhbnlvbmUgZmVlbHMgdGhlIG5lZWQgdG8KCSAgcmV2aXZlIHRoaXMgb25lLCBwbGVhc2UgdXNlIGEgbGVzcyBnZW5lcmljIG5hbWUgc3BhY2UuCgkgIEFQSTogZGVwcmVjYXRlIGdzdF9maWx0ZXJfcnVuKCkKCSAgQVBJOiBkZXByZWNhdGUgR3N0RmlsdGVyRnVuYwoKMjAxMS0xMC0zMCAyMTozOTozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGRvbid0IHVzZSBzb29uLXRvLWJlLWRlcHJlY2F0ZWQgZ3N0X2ZpbHRlcl9ydW4oKQoJICBMaW5lcy1vZi1jb2RlIHNhdmluZ3MgYXJlIG5lZ2xpZ2libGUgYW55d2F5LgoKMjAxMS0xMC0zMCAyMToyMTo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgcGx1Z2luZmVhdHVyZTogZGVwcmVjYXRlIGdzdF9wbHVnaW5fZmVhdHVyZV90eXBlX25hbWVfZmlsdGVyKCkKCSAgSXQncyBvbmx5IHVzZWQgaW50ZXJuYWxseSBhbnl3YXkgYW5kIHRoZSBoZWxwZXIgc3RydWN0CgkgIGhhcyBuYW1lc3BhY2UgaXNzdWVzLgoJICBBUEk6IGRlcHJlY2F0ZWQgZ3N0X3BsdWdpbl9mZWF0dXJlX3R5cGVfbmFtZV9maWx0ZXIoKQoJICBBUEk6IGRlcHJlY2F0ZWQgR3N0VHlwZU5hbWVEYXRhCgoyMDExLTEwLTMwIDEwOjA1OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IG1ha2Ugb3BhcXVlCgkgIEhpZGUgdGhlIGZhY3QgdGhhdCBpdCdzIGp1c3QgYSBHc3RTdHJ1Y3R1cmUgZnJvbSB0aGUgQVBJLiBXZQoJICBtYXkgd2FudCB0byBjaGFuZ2UgdGhpcyBpbiBmdXR1cmUgKGUuZy4gdG8gYWRkIHJlZmNvdW50aW5nKS4KCSAgQWxzbywgaXQgY2F1c2VkIHByb2JsZW1zIGZvciBiaW5kaW5ncyAodGhvdWdoIHRoYXQncyBtb3N0bHkKCSAgdGhlIHdheSB3ZSB0eXBlZGVmZWQgaXQgdG8gR3N0U3RydWN0dXJlKS4KCjIwMTEtMTAtMzAgMTA6MDA6MjggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTMwIDA5OjU4OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCB0b19zdHJpbmcgYW5kIG5ld19mcm9tX3N0cmluZyBmdW5jdGlvbnMKCSAgV2Ugd2FudCB0byBtYWtlIEdzdFRhZ0xpc3Qgb3BhcXVlIGFuZCBub3QgaGF2ZSBwZW9wbGUgdXNlCgkgIEdzdFN0cnVjdHVyZSBBUEkgb24gaXQuCgkgIEFQSTogZ3N0X3RhZ19saXN0X3RvX3N0cmluZygpCgkgIEFQSTogZ3N0X3RhZ19saXN0X25ld19mcm9tX3N0cmluZygpCgoyMDExLTEwLTMwIDA5OjMxOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0zMCAwMTo0NjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBhdm9pZCBwb2ludGxlc3MgdGFnIG5hbWUgLT4gcXVhcmsgbG9va3VwcwoJICBXZSBuZXZlciBnZXQgYSB0YWcgbmFtZSBxdWFyayBmcm9tIGEgY2FsbGVyLCBpdCdzIGFsd2F5cyBhCgkgIHN0cmluZywgZnJvbSB3aGljaCB3ZSdsbCB0cnkgdG8gbG9vayB1cCBvdXIgdGFnIGluZm8gaW4gdGhlCgkgIGhhc2ggdGFibGUsIHNvIGNoYW5nZSB0aGUgaGFzaCB0YWJsZSBrZXkgZnJvbSBxdWFyayB0byBzdHJpbmcuCgkgIEF2b2lkcyBhIGJ1bmNoIG9mIHBvaW50bGVzcyBzdHJpbmcgPT4gcXVhcmsgbG9va3VwIGluIHRoZQoJICBnbG9iYWwgcXVhcmsgdGFibGUuIFdlIG5lZWQgdG8gZG8gYW4gZXh0cmEgc3RyaW5nID0+IHF1YXJrCgkgIGNvbnZlcnNpb24gbm93IHdoZW4gd2UgY29weSBhIHRhZ2xpc3QsIGJ1dCBpbiB0aGF0IGNhc2Ugd2UncmUKCSAgaW4gYSBzbG93IHBhdGggYW55d2F5LgoKMjAxMS0xMC0zMCAwMDo0NDo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0YWdsaXN0OiBhZGQgZ3N0X3RhZ19saXN0X2lzX2VxdWFsKCkKCSAgQVBJOiBnc3RfdGFnX2xpc3RfaXNfZXF1YWwoKQoKMjAxMS0xMC0yOSAyMzo1MjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogaWRlbnRpY2FsIHN0cnVjdHVyZXMgYXJlIGRlZmluaXRlbHkgZXF1YWwKCjIwMTEtMTAtMjkgMjA6MDY6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogZml4IHN0cmluZyBmb3IgR1NUX1RBR19BUlRJU1RfU09SVE5BTUUKCSAgRm9yIGhpc3RvcmljYWwgcmVhc29ucyBpdCB3YXMgbWFwcGVkIHRvIGEgbXVzaWNicmFpbnogcHJlZml4LAoJICBidXQgaXQncyBub3QgcmVhbGx5IG11c2ljYnJhaW56LXNwZWNpZmljIGF0IGFsbC4KCjIwMTEtMTAtMjkgMTk6NTk6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogbW92ZSBwcml2YXRlIGZ1bmN0aW9ucyBmb3IgcmVnaXN0cnkgdG8gcHJpdmF0ZSBoZWFkZXIKCjIwMTEtMTAtMjggMjE6NDA6NDcgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IGludmFsaWQgYWNjZXNzIHRvIHVucmVmZmVkIGFsbG9jYXRpb24gcXVlcnkKCjIwMTEtMTAtMjggMTY6NDU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogZml4IGRvY3Mgc29tZSBtb3JlCgoyMDExLTEwLTI4IDE2OjI3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTEwLTI4IDE2OjA4OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgdGVzdHM6IGZpeCBzZWdtZW50IGNoZWNrCgoyMDExLTEwLTI4IDE1OjUyOjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogcmVtb3ZlIEdTVF9TRUVLX1RZUEVfQ1VSCgoyMDExLTEwLTI4IDE1OjUyOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMS0xMC0yOCAxMzowMjoyNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogQWRkIHBhZGRpbmcKCjIwMTEtMTAtMjggMTM6MDI6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSAgYml0cmVhZGVyOiBBZGQgcGFkZGluZwoKMjAxMS0xMC0yOCAxMzowMjoxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogQWRkIHBhZGRpbmcKCjIwMTEtMTAtMjggMTI6MzE6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMjggMTI6Mjg6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiB1cGRhdGUKCjIwMTEtMTAtMjggMTI6Mjc6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBmb3IgbmV3IGFwaQoKMjAxMS0xMC0yOCAxMjoxNzo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjaGVjazogYWxzbyBkZWJ1ZyB0aGUgRFRTCgoyMDExLTEwLTI4IDEyOjE2OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBhZGFwdGVyOiB1c2UgcHRzL2R0cyBvbiBidWZmZXJzCgoyMDExLTEwLTI4IDEyOjI0OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJICBjb21wYXQ6IGFkZCB0aW1lc3RhbXAgY29tcGF0IGRlZmluZXMKCjIwMTEtMTAtMjggMTI6MTU6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSAgYnVmZmVyOiBhZGQgcHRzL2R0cyB0byBidWZmZXJzCgoyMDExLTEwLTI4IDExOjUzOjMyICswMjAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBbHNvIGZ1c2ggdGhlIGNhY2hlIHdoZW4gY2hhbmdpbmcgdGhlIHVwc3RyZWFtIGNhcHMgc3VnZ2VzdGlvbgoKMjAxMS0xMC0yOCAxMTo1MDoyMyArMDIwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogQWRkIGRlYnVnIG91dHB1dCB3aGVuIHJldHVybmluZyBhIGNhY2hlZCB0cmFuc2Zvcm0KCjIwMTEtMTAtMjggMTE6MzM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTI4IDExOjMwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuaDoKCSAgY29vbGVjdHBhZHMyOiBwb3J0IHRvIDAuMTEKCjIwMTEtMTAtMjggMTE6MTM6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTEwLTI4IDEwOjU0OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogRml4IHJlZmNvdW50IGhhbmRsaW5nIGlmIGEgYnVmZmVyIHdhcyBkcm9wcGVkIGR1ZSB0byBjbGlwcGluZwoKMjAxMS0xMC0yOCAxMDozNzoyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzMi5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGNvbGxlY3RwYWRzMjogTWVyZ2UgdGhlIGNsaXAgYW5kIHByZXBhcmVfYnVmZmVyIGZ1bmN0aW9uIGludG8gb25lCgoyMDExLTEwLTI4IDEwOjE3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGNvbGxlY3RwYWRzMjogTWVyZ2UgY2xpcHBpbmcgQVBJIGZyb20gb2xkIGNvbGxlY3RwYWRzCgoyMDExLTEwLTI4IDA5OjE5OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1ha2UgZGVmYXVsdCBxdWVyeSBmdW5jdGlvbiBuYW1lIHNob3cgdXAgaW4gZ3N0LWluc3BlY3QKCjIwMTEtMDktMjcgMTU6NDg6NTIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkczIuYzoKCSAgY29sbGVjdHBhZHMyOiBhdm9pZCBoYW5naW5nIGluIGNhc2Ugb2Ygc3BhcnNlIG5ld3NlZ21lbnQgZXZlbnRzCgkgIC4uLiBpbiB0aGUgZXh0ZW50IHRoYXQgYSBub24td2FpdGluZyBwYWQgKHNvIGluZGljYXRlZCBieSBuZXdzZWdtZW50KQoJICB0dXJucyBvdXQgdG8gcHJvdmlkZSB0aGUgYmVzdCBidWZmZXIsIHdoaWNoIGlzIHRoZW4gZm9yY2VkIHRvIHdhaXRpbmcKCSAgZm9yIGJvb2sta2VlcGluZyBwdXJwb3NlcywgYnV0IHRoYXQgc2hvdWxkIG9ubHkgYmUgdGVtcG9yYXJ5LgoJICBTZWUgYnVnICM0MTU3NTQuCgoyMDExLTEwLTI4IDA5OjM4OjM1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkgIGNvbGxlY3RwYWRzMjogVXNlIEdfREVGSU5FX1RZUEUgaW5zdGVhZCBvZiBHU1RfQk9JTEVSUExBVEUKCjIwMTEtMTAtMjggMDk6MzU6NTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgY29sbGVjdHBhZHMyOiBBZGQgdG8gdGhlIGRvY3VtZW50YXRpb24KCjIwMTEtMTAtMjggMDk6MjY6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBjb2xsZWN0cGFkczIgQVBJCgoyMDExLTEwLTI4IDA5OjE4OjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMyLmg6CgkgIGJhc2U6IEFkZCBjb2xsZWN0cGFkczIKCSAgVGhpcyBoYW5kbGVzIG11eGluZyBvZiBzcGFyc2Uvc3VidGl0bGUgc3RyZWFtcyBhbmQgaGFzCgkgIGxvdHMgb2YgY2xlYW51cC4gU3RpbGwgbWlzc2luZyBpcyBzcGVjaWFsIHN1cHBvcnQgZm9yCgkgIGxpdmUgc3RyZWFtcyBidXQgdGhpcyBjYW4gYmUgYWRkZWQgbGF0ZXIgd2l0aG91dCBicmVha2luZwoJICBBUEkvQUJJLgoJICBCYXNlZCBvbiB0aGUgdmVyc2lvbiBmcm9tIHRoZSB2aWRlb21peGVyIHBsdWdpbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQxNTc1NAoKMjAxMS0xMC0yNyAxNzowOTo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMC0yNyAxNzowOTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUKCjIwMTEtMTAtMjcgMTc6MDk6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBhZGQgZW1wdHlfc2ltcGxlIHZhcmlhbnRzCgoyMDExLTEwLTI3IDE2OjUxOjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxhdGlvbgoKMjAxMS0xMC0yNyAxNDo1NjoyNCArMDEwMCAgSm9oYW4gQm91bMOpIDxib2hhbi5nbm9tZUByZXRyb3BhZ2FuZGEuaW5mbz4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGNhcHM6IHVzZSBHX0dOVUNfTlVMTF9URVJNSU5BVEVEIGZvciBnc3RfY2Fwc19uZXdfc2ltcGxlKCkgYW5kIGdzdF9jYXBzX25ld19mdWxsKCkKCSAgSWYgeW91IGdldCB3YXJuaW5ncywgdXNlIGdzdF9jYXBzX25ld19lbXB0eSgpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMzQ2CgoyMDExLTEwLTI3IDE1OjI3OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgoyMDExLTEwLTI3IDEzOjI1OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiB1c2UgR19HTlVDX05VTExfVEVSTUlOQVRFRCBmb3IgZ3N0X3N0cnVjdHVyZV9uZXcoKQoJICBJZiB5b3UgZ2V0IGEgd2FybmluZywgdXNlIGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3KCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDMzNDYKCjIwMTEtMTAtMjcgMjM6MDg6MTQgKzExMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBGaXggcmVmY291bnQgbGVhawoJICBEb24ndCBsZWFrIHBlZXJjYXBzIGFuZCBhIHJlZiB0byB0aGUgYmFzZXRyYW5zZm9ybSB3aGVuIHJldHVybmluZwoJICB0aGUgY2FjaGVkIGNhcHMuCgoyMDExLTEwLTI3IDEwOjM4OjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCB3cm9uZyBvcmRlciBvZiBjYWxscyBpbiB0aGUgZG9jcy4KCjIwMTEtMTAtMjYgMTI6MjM6MDcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGNsYXJpZnkgZG9jcyBmb3Igc3RlcCBldmVudAoKMjAxMS0xMC0xOCAyMzoxOTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGFkZCBzdXBwb3J0IGZvciBHU1RfUkVHSVNUUllfUkVVU0VfUExVR0lOX1NDQU5ORVI9bm8KCSAgVGhpcyB3aWxsIG1ha2Ugc3VyZSB3ZSBzcGF3biBhIG5ldyBwbHVnaW4gc2Nhbm5lciBoZWxwZXIgZm9yIGVhY2ggcGx1Z2luCgkgIHRvIGJlIGludHJvc3BlY3RlZCwgd2hpY2ggaGVscHMgd2l0aCBtYWtpbmcgc3VyZSB3ZSBkb24ndCBsb2FkIHRvbyBtYW55CgkgIHNoYXJlZCBvYmplY3RzIChsaWJzLCBwbHVnaW5zKSBhdCB0aGUgc2FtZSB0aW1lIG9uIHN5c3RlbXMgd2hlcmUgdGhlcmUKCSAgaXMgYSBoYXJkIGxpbWl0IGxpa2Ugb24gQW5kcm9pZC4KCSAgQSBiZXR0ZXIgdmVyc2lvbiBtaWdodCByZS11c2UgdGhlIHNjYW5uZXIgZm9yIHVwIHRvIE4gdGltZXMsIHRob3VnaAoJICBpdCdzIG5vdCBjbGVhciB3aGV0aGVyIHRoYXQgd291bGQgYWN0dWFsbHkgaW1wcm92ZSB0aGluZ3MgZHJhbWF0aWNhbGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyMDkxCgoyMDExLTEwLTIxIDEwOjIzOjA0IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBObyBuZWVkIHRvIHJlcXVpcmUgd3JpdGFibGUgY2FwcyBmb3IgX2FwcGVuZC9fbWVyZ2Ugc2Vjb25kIGNhcHMKCSAgVGhlIHNlY29uZCBjYXBzIG93bmVyc2hpcCBpcyB0cmFuc2ZlcmVkLCBubyBuZWVkIHRvIHJlcXVpcmUgaXQgdG8KCSAgYmUgd3JpdGFibGUgZnJvbSB0aGUgY2FsbGVyIGZ1bmN0aW9uLiBJbnN0ZWFkLCBfYXBwZW5kIGFuZCBfbWVyZ2UKCSAgbWFrZSBpdCB3cml0YWJsZSBvbiB0aGVpciBvd24uCgkgIERpc2NvdmVyZWQgYmVjYXVzZSBvZiBhbiBhc3NlcnRpb24gb24gZW5jb2RpbmctcHJvZmlsZS5jIGluCgkgIF9nZXRfaW5wdXRfY2FwcyB1c2luZyBfbWVyZ2UgYnV0IG5vdCBwYXNzaW5nIHdyaXRhYmxlIGNhcHMuCgoyMDExLTEwLTIxIDE0OjIwOjQwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfYXJtLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgaW50ZXJmYWNlczogY2xlYW4gdXAgdGhlIHVzZSBvZiBpZmFjZSBhbmQgY2xhc3Mva2xhc3MKCjIwMTEtMTAtMjEgMTE6MTU6MTEgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBkb2NzL3JhbmRvbS9zdGF0dXMtMC4xMS0xNC1qdW4tMjAxMS50eHQ6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiBzcGVsbGluZyBhbmQgZm9ybWF0dGluZyBmaXhlcwoKMjAxMS0xMC0yMSAxMDo1Mjo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnaW5nIG9yaWdpbi9tYXN0ZXIKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YmluLmMKCSAgZ3N0L2dzdGJ1cy5jCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmMKCSAgZ3N0L2dzdHBhZC5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCjIwMTEtMTAtMjAgMTY6NTk6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBGaXggZG9jdW1lbnRhdGlvbiwgaXQncyBwcmVfcHVzaF9mcmFtZSBhbmQgbm90IHByZV9wdXNoX2J1ZmZlcgoKMjAxMS0xMC0yMCAxNDowMjo0NCArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2FjaGUgdHJhbnNmb3JtZWQgY2FwcyB3aGVyZSBhcHByb3ByaWF0ZQoJICBTcGVlZHMgdXAgbmVnb3RpYXRpb24gYSBmYWlyIGJpdCBvbiBhIGNvbnRyaXZlZCBwaXBlbGluZQoJICB3aXRoIGEgZG96ZW4gY29sb3JzcGFjZSBjb252ZXJzaW9ucy4KCSAgSG9wZWZ1bGx5IGNsZWFycyBvdXQgdGhlIGNhY2hlIGV2ZXJ5IHRpbWUgaXQgb3VnaHQgdG8uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjIyOTEKCjIwMTEtMTAtMjAgMTA6NDU6MzAgLTAzMDAgIFJleW5hbGRvIEguIFZlcmRlam8gUGlub2NoZXQgPHJleW5hbGRvQGNvbGxhYm9yYS5jb20+CgoJKiBBbmRyb2lkLm1rOgoJICBGaXggYnJva2VuIGFuZHJvaWQgYnVpbGRpbmcgZHVlIHRvIG5hbWUgY2hhbmdlIGluIDAxZDg3MjUwYTg0NWU1NWQ2CgoyMDExLTEwLTIwIDA4OjMxOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2ViYXJzZTogQWRkIGRldGVjdCB2ZnVuYyB0byBhbGxvdyBzdWJjbGFzc2VzIHRvIGRvIGZvcm1hdCBkZXRlY3Rpb24gYmVmb3JlIGFueXRoaW5nIGVsc2UKCSAgQVBJOiBHc3RCYXNlUGFyc2VDbGFzczo6ZGV0ZWN0KCkKCSAgVGhpcyBpcyBjYWxsZWQgd2l0aCB0aGUgZmlyc3QgYnVmZmVycyB1bnRpbCB0aGUgc3ViY2xhc3MgaGFzIGZpbmlzaGVkIGRldGVjdGlvbgoJICBhbmQgb25seSBhZnRlcndhcmRzIHRoZSBvcmlnaW5hbCBidWZmZXJzIGFyZSBoYW5kbGVkIGFzIGJlZm9yZS4gVGhlIHZmdW5jIGFsbG93cwoJICBkZXRlY3Rpb24gb2YgdGhlIHN0cmVhbSBmb3JtYXQgd2l0aG91dCBicmVha2luZyB0aGUgdXBzdHJlYW0gZnJhbWluZy4KCjIwMTEtMTAtMjAgMDg6NTc6NTcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbm90IG9ubHkgZGVzY3JpYmUgY29uZGl0aW9ucyBpbiB0aGUgZG9jcywgYWxzbyBjaGVjayB0aGVtIGluIHRoZSBjb2RlCgkgIFdoZW4gYmxvY2tpbmcgcGFkcywgY2hlY2sgaWYgdGhlIHBhZCBpcyBpbiB0aGUgcmlndCBkaXJlY3Rpb24uIExvZyBzb21lIGluZm8KCSAgZm9yIHRoZSBkZXZlbG9wZXIgYW5kIHJldHVybiBGQUxTRSwgaW5zdGVhZCBvZiBqdXN0IGxvY2tpbmcgdXAuCgoyMDExLTEwLTE5IDIzOjA3OjQ2ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICBSZXZlcnQgZ3N0X3BsdWdpbl9mZWF0dXJlX2dldF9uYW1lIHRvIGNvbnN0IHN0cmluZyByZXR1cm4KCSAgUmV0dXJuaW5nIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBtYWtlcyBubyBzZW5zZS4gSXQncyB1bmV4cGVjdGVkIGZvciBhCgkgIGdldHRlciwgYW5kIGFsc28gdGhpcyBiZWhhdmVzIGRpZmZlcmVudGx5IGluIDAuMTAsIHNvIGl0IHdvdWxkIG1ha2UgZnV0dXJlCgkgIG1lcmdlcyBoYXJkZXIuCgkgIEV4Y2VwdCBmb3IgdGhlc2UgdHdvIHBsYWNlcyBoZXJlIGluIGNvcmUgd2hpY2ggd2VyZSB1cGRhdGVkIGZvciB0aGUgbmV3CgkgIHNlbWFudGljLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGdldHRpbmcgbGVha2VkIGFsbCBvdmVyIHRoZSBwbGFjZS4KCjIwMTEtMTAtMTkgMTI6MTI6MzYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IEFkZCAoc2tpcCkgYW5ub3RhdGlvbiB0byBnc3Rfb2JqZWN0X3JlZl9zaW5rCgoyMDExLTEwLTE5IDExOjU5OjI5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBnc3RpdGVyYXRvcjogQWRkIHNraXAgYW5ub3RhdGlvbiBmb3IgY3JlYXRpbmcgR3N0SXRlcmF0b3IKCSAgTm90IHJlYWxseSB1c2VmdWwgZm9yIGJpbmRpbmdzCgoyMDExLTA4LTI5IDEzOjU2OjE5IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGludHJvc3BlY3Rpb246IFNraXAgZ3N0X3BvbGwgYXBpcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjU1OjEzIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBpbnRyb3NwZWN0aW9uOiBTa2lwIEdUeXBlIGFuZCBHVmFsdWUgdHJhbnNmb3JtIGFwaXMKCSAgVGhlc2UgZG8gbm90IG1ha2Ugc2Vuc2UgdG8gZXhwb3NlIHRvIGxhbmd1YWdlIGJpbmRpbmdzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTQ6MjEgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdC5jOgoJICBpbnRyb3NwZWN0aW9uOiBTa2lwIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAKCSAgSXQgdXNlcyBHT3B0aW9uR3JvdXAgd2hpY2ggaXMgbm90IHdyYXBwYWJsZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUzOjM5IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIGludHJvc3BlY3Rpb246IEFkZCBtaXNzaW5nIGFubm90YXRpb25zCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMDgtMjkgMTM6NTI6MjYgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBpbnRyb3NwZWN0aW9uOiBSZW5hbWUgZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCB0byBnc3RfYnVzX2FkZF93YXRjaAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjQwCgoyMDExLTA4LTI5IDEzOjUwOjQwIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RpbmRleC5oOgoJICBTeW5jIGRvY3VtZW50YXRpb24gYXJndW1lbnRzCgkgIFRoZSBpbnRyb3NwZWN0aW9uIHNjYW5uZXIgd2FybnMgaWYgdGhlIGhlYWRlciBhbmQgdGhlIHNvdXJjZQoJICB1c2VzIG1pc21hdGNoaW5nIHBhcmFtZXRlciBuYW1lcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NzY0MAoKMjAxMS0wOC0yOSAxMzo1MDowMiAtMDMwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3Rfc3RydWN0dXJlX2dldF90eXBlCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc2NDAKCjIwMTEtMTAtMTggMTk6MjE6NTggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvbT4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IHByb3RlY3QgYWdhaW5zdCBudWxsIG1lc3NhZ2Ugc291cmNlcwoJICBNZXNzYWdlIHNvdXJjZXMgY2FuIGJlIG51bGwsIGNoZWNrIGlmIGl0IGlzIGJlZm9yZSB0cnlpbmcgdG8KCSAgYWNjZXNzIGl0cyBuYW1lLgoKMjAxMS0xMC0xOCAwODo0ODozNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgc2luY2UgZG9jIHRvIG5ldyBnZXRjYXBzIGZ1bmN0aW9uCgoyMDExLTEwLTE4IDE0OjA4OjE5ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbG9nZ2luZzogbW9yZSBsb2dnaW5nIGFuZCBwcmVmZXIgaHVtYW4gcmVhZGFibGUgZGV0YWlscyBvdmVyIG1lbW9yeSBsb2NhdGlvbnMKCjIwMTEtMTAtMTggMTQ6MDU6MzcgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBpbXByb3ZlIGRpc3BsYXkgb2YgZ2hvc3QtIGFuZCBwcm94eXBhZHMKCSAgSGFuZGxlIHZpcnR1YWwgbGlua3MgYmV0d2VlbiBnaG9zdCBhbmQgcHJveHlwYWRzIHdoZW4gaXRlcmF0aW5nIHBhZHMgaW5zdGVhZCBvZgoJICB3aGVuIGxpbmtpbmcuIEJlc2lkZXMgdXNpbmcgbGVzcyBjb2RlIHRoaXMgcHJvdmlkZXMgYSBtb3JlIGFjY3VyYXRlIHBpY3R1cmUuCgoyMDExLTEwLTE4IDEzOjU0OjUyICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IEFkZCBnLWkgYW5ub3RhdGlvbnMgYW5kIHJlbW92ZSAiU2luY2U6IiBtYXJrZXJzCgoyMDExLTEwLTE3IDE0OjQyOjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBnZXRjYXBzIGZ1bmN0aW9uCgkgIEFkZHMgYSBnZXRjYXBzIGZ1bmN0aW9uIHRvIHRoZSBzaW5rIHBhZCB0byBtYWtlIHBhcnNlcnMgcHJvcGFnYXRlCgkgIGRvd25zdHJlYW0gY2FwcyByZXN0cmljdGlvbnMgdG8gdXBzdHJlYW0uCgkgIFRoZSBwaXBlbGluZSAiYXVkaW90ZXN0c3JjIG51bS1idWZmZXJzPTEwMCAhIGZhYWMgISBhYWNwYXJzZSAhCgkgICJhdWRpby9tcGVnLCB2ZXJzaW9uPShpbnQpNCwgc3RyZWFtLWZvcm1hdD0oc3RyaW5nKWFkdHMiICEgZmlsZXNpbmsiCgkgIHdvdWxkbid0IHdvcmsgYmVjYXVzZSBhYWNwYXJzZSB3b3VsZG4ndCBwcm9wYWdhdGUgdGhlIGFkdHMgcmVzdHJpY3Rpb24KCSAgdXBzdHJlYW0gdG8gZmFhYy4KCSAgVGhpcyBwYXRjaCBhZGRzIGEgZGVmYXVsdCBnZXRjYXBzIHRvIHRoZSBzaW5rIHBhZCB0byBzaW1wbHkgcHJveHkKCSAgZG93bnN0cmVhbSBjYXBzIGFuZCBhbHNvIGFkZHMgYSAnZ2V0X3NpbmtfY2FwcycgZnVuY3Rpb24gcG9pbnRlcgoJICB0byBHc3RCYXNlUGFyc2VDbGFzcyBmb3Igc3ViY2xhc3NlcyB0aGF0IG5lZWQgbW9yZSByZWZpbmVkIGdldGNhcHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjE4NzQKCjIwMTEtMTAtMTggMTI6Mzk6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWxzbyB1cGRhdGUgdGhlIHN0cmVhbSB0aW1lCgoyMDExLTEwLTE4IDEwOjU4OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGhhbmRsaW5nIG9mIHF1ZXVlZCBmcmFtZXMKCSAgZ3N0X2Jhc2VfcGFyc2VfcHVzaF9mcmFtZSgpIGFscmVhZHkgZnJlZXMgdGhlIGZyYW1lLCBubyBuZWVkIHRvCgkgIGRvIGl0IGFub3RoZXIgdGltZSBhZ2Fpbi4KCjIwMTEtMTAtMTcgMjE6Mzg6NTYgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogZml4IHBhZHRlbXBsYXRlIGxlYWsgaW4gc2VsZWN0b3IgdGVzdAoJICBJbiAwLjExLCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUgcmV0dXJucyBhIHJlZmVyZW5jZS4KCjIwMTEtMTAtMTcgMjE6Mzc6MTcgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZml4IGJ1ZmZlci9ldmVudCBsZWFrIHdoZW4gcGFkIGlzIGZsdXNoaW5nCgkgIEFwcGFyZW50bHkgdGhpcyBnb3QgbG9zdCB3aGlsZSByZWZhY3RvcmluZyBwcm9iZXMuCgoyMDExLTEwLTE3IDE3OjAwOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZW1vdmUgdGhlIG1lbW9yeSBmcm9tIHRoZSB0bXBidWYKCSAgV2UgdXNlIGEgdG1wYnVmIHRvIGhvbGQgYSB0ZW1wb3JhcnkgcG9pbnRlciB0byB0aGUgYWRhcHRlciBtZW1vcnkuIFdlIG5lZWQgdG8KCSAgcmVtb3ZlIHRoYXQgbWVtb3J5IHdoZW4gd2Ugbm8gbG9uZ2VyIG5lZWQgaXQuCgoyMDExLTEwLTE3IDEzOjU1OjM1ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IHJhY2UgY29uZGl0aW9uIGFuZCBtZW1vcnkgbGVhayBpbiBnc3Rfc3RhdGljX2NhcHNfZ2V0CgkgIFRoaXMgd2FzIGxlYWtpbmcgdGhlIFB0ckFycmF5IGZyb20gY2Fwcy0+cHJpdiwgYXMgc2V0IHVwIGJ5IHRoZSBvdGhlciBjYWxsIHRvCgkgIGdzdF9jYXBzX2luaXQuIEFsc28sIHRoZSB0aHJlYWQgc2FmZXR5IGlzc3VlIHByZXNlbnRlZCBpbiB0aGUgY29tbWVudCBhYm92ZSB3YXMKCSAgbm90IHRha2VuIGNhcmUgb2YgYW55bW9yZS4gV2Ugbm93IHplcm8gdGhlIHJlZmNvdW50IGFnYWluIHdoZW4gcHVibGlzaGluZyB0aGUKCSAgc3RydWN0dXJlLgoJICBGaXhlcyAjNjYxNjI5LgoKMjAxMS0xMC0xNyAwOToyODo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBnc3RjaGVjazogTWFrZSBBU1NFUlRfTUlOSV9PQkpFQ1RfUkVGQ09VTlQgbW9yZSB1c2VmdWwKCSAga25vd2luZyB3aGljaCBtaW5pb2JqZWN0IGZhaWxlZCBoZWxwcyB1cyBsb2NhdGUgaXQgaW4gZGVidWcgbG9ncwoKMjAxMS0xMC0xNyAwOToyODoyNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogTWFrZSBfY2hlY2tfYnVmZmVyX2RhdGEgYSBiaXQgbW9yZSB2ZXJib3NlCgoyMDExLTEwLTE3IDA5OjI3OjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICBjaGVjazogRG9uJ3QgbGVhayB0aGUgZmVhdHVyZSBuYW1lCgoyMDExLTEwLTE3IDA5OjI3OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBnc3RyZWdpc3RyeTogRG9uJ3QgbGVhayBmZWF0dXJlIG5hbWUKCjIwMTEtMTAtMTYgMjE6MTI6MDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IGdpdmUgd2F0Y2ggc291cmNlIGEgbmFtZQoJICBHaXZlIG91ciBHU291cmNlIGEgbWVhbmluZ2Z1bCBuYW1lLiBTb3VyY2UgbmFtZXMgY2FuIGJlCgkgIHVzZWQgZm9yIGRlYnVnZ2luZyBhbmQgcHJvZmlsaW5nLCBmb3IgZXhhbXBsZSB3aXRoCgkgIHN5c3RlbXRhcCBvciBnZGIuCgoyMDExLTEwLTE0IDA5OjM1OjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3RidWZmZXI6IEFkZCB0cmFuc2ZlciBhbm5vdGF0aW9ucyBmb3IgZ3N0X2J1ZmZlcl9qb2luKCkKCjIwMTEtMTAtMTYgMTc6NDI6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTE2IDE3OjAzOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xNiAxNzowMDowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTE2IDE0OjQ1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIGZpeCBtb3JlIHBhcmVudF9jbGFzcwoKMjAxMS0xMC0xNiAxNDoyMDozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0ZXZlbnQuaAoKMjAxMS0xMC0xNiAxNDoxNzoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogY2xlYW4gdXAgcGFyZW50X2NsYXNzCgoyMDExLTEwLTE0IDEyOjU3OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsZWFuIHVwIHBhcmVudF9jbGFzcyBoYW5kbGluZwoKMjAxMS0xMC0xNCAwOTozNTowOSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0YnVmZmVyOiBBZGQgdHJhbnNmZXIgYW5ub3RhdGlvbnMgZm9yIGdzdF9idWZmZXJfam9pbigpCgoyMDExLTEwLTE0IDA5OjI3OjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBEb24ndCBsZWFrIHBsdWdpbiBmZWF0dXJlIGxpc3QKCjIwMTEtMTAtMTMgMTc6MzM6MDYgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogZml4IHR5cG8gaW4gdGhlIGRvY3MKCjIwMTEtMTAtMTMgMTY6NDg6MDIgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBzaG93IGlmIGFuIGVsZW1lbnQgaXMgc3RhdGUtbG9ja2VkCgoyMDExLTEwLTEzIDE2OjQyOjEwICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBsb2dnaW5nOiB1c2UgX09CSkVDVCB2YXJpYW50cyBtb3JlCgoyMDExLTEwLTEzIDEyOjIzOjU5ICswMjAwICBSZW7DqSBTdGFkbGVyIDxyZW5lLnN0YWRsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBjYXBzIGxlYWsKCjIwMTEtMTAtMTMgMTA6MTk6MzQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IFVzZSBhbiBpbmxpbmUgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIG1hY3JvIGZvciBnc3RfYnVmZmVyX3JlcGxhY2UoKQoJICBUaGlzIGdpdmVzIHVzIHR5cGUgY2hlY2tzIGJ5IHRoZSBjb21waWxlciBhbmQgbW9yZSB1c2VmdWwgY29tcGlsZXIgZXJyb3JzLgoKMjAxMS0xMC0xMyAxMDoxODo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IFVzZSBhbiBpbmxpbmUgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIG1hY3JvIGZvciBnc3RfZXZlbnRfcmVwbGFjZSgpCgkgIFRoaXMgZ2l2ZXMgdXMgdHlwZSBjaGVja3MgYnkgdGhlIGNvbXBpbGVyIGFuZCBtb3JlIHVzZWZ1bCBjb21waWxlciBlcnJvcnMuCgoyMDExLTEwLTEzIDA4OjUxOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3R1dGlscy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTEwLTEyIDE4OjE0OjAwIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IERvIG5vdCB1bnJlZiB0aGUgaW50ZXJuYWwgcGFkIHR3aWNlCgkgIGdfdmFsdWVfdW5zZXQgc2hvdWxkIGFscmVhZHkgdW5yZWYgdGhlIGludGVybmFsIHByb3h5cGFkLCBubwoJICBuZWVkIHRvIGRvIGl0IGFnYWluCgoyMDExLTEwLTEyIDE3OjE3OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHByb3Blcmx5IGFkanVzdCBzdGFydCB0aW1lCgkgIFdoZW4gd2UgZG8gYSBub24tZmx1c2hpbmcgc2VlayBhbmQgY2xvc2VkIHRoZSBjdXJyZW50IHNlZ21lbnQsCgkgIG1ha2Ugc3VyZSB0aGF0IHdlIG9wZW4gdGhlIG5leHQgc2VnbWVudCBmcm9tIHdoZXJlIHdlIGNsb3NlZC4KCjIwMTEtMTAtMTIgMTQ6Mzc6MzEgKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGFkZCB0cmFuc2ZlciB0eXBlIGZvciBnc3RfZXZlbnRfbmV3X2NhcHMgYXJndW1lbnQKCSAgVGhlc2UgYW5ub3RhdGlvbnMgYXJlIHVzZWZ1bCB0byBodW1hbnMgYXMgd2VsbC4uLgoKMjAxMS0xMC0xMiAxNDozNDoyNCArMDIwMCAgUmVuw6kgU3RhZGxlciA8cmVuZS5zdGFkbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBmaXggY2FwcyBsZWFrCgkgIGdzdF9ldmVudF9uZXdfY2FwcyBkb2VzIG5vdCBzdGVhbCBhIHJlZmVyZW5jZSB0byB0aGUgY2Fwcy4KCjIwMTEtMTAtMTIgMTM6MzE6NDggKzAyMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGZpeCBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgdHJhbnNmZXIgdHlwZQoKMjAxMS0xMC0xMSAxMzo1NDo0NSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB0ZXN0czogRml4IG1vcmUgbGVha3MKCjIwMTEtMTAtMTEgMTM6NTM6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IERvbid0IGxlYWsgY2FwcwoKMjAxMS0xMC0xMSAxMzo1MTo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogRml4IGEgY2FwcyBsZWFrIGFuZCBtb3ZlIGEgY29kZWJsb2NrCgkgIFRoZSByZXN1bHQgZnJvbSB0aGUgYmxvY2sgb2YgY29kZSB0aGF0IHdhcyBtb3ZlZCB3b3VsZCBvbmx5IGhhdmUKCSAgYmVlbiB1c2VkIGlmICdwZWVyY2Fwcycgd2FzIHByZXNlbnQuCgoyMDExLTEwLTExIDEzOjUxOjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0OiBNb3JlICd0cmFuc2ZlcicgYW5ub3RhdGlvbnMKCjIwMTEtMTAtMTAgMTk6NDE6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBjYXRjaCBpbnZhbGlkIGluc3RhbmNlIHNpemVzIGluIGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsKCkKCSAgQWRkIGd1YXJkcyB0byBjYXRjaCBvdmVybHkgbGFyZ2UgaW5zdGFuY2Ugc2l6ZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NjA5NTUKCjIwMTEtMTAtMTAgMTk6MzA6MzQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IHJlbW92ZSBnc3RfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfZnVsbCgpCgkgIEl0IHdhcyBvbmx5IHJlYWxseSB1c2VkIGJ5IEdTVF9CT0lMRVJQTEFURSwgYW5kIHRoYXQgaXMgbm8gbW9yZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDk1NQoKMjAxMS0xMC0xMCAxMTo0Nzo0MiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGF2b2lkIHRyeWluZyB0byBhbGxvYyBlbm9ybW91cyBidWZmZXIKCSAgSWYgYSBjbGFzcyBleHRlbmRpbmcgYmFzZXNyYyBkb2Vzbid0IHNldCBibG9ja3NpemUsIGJhc2VzcmMKCSAgd291bGQgdHJ5IHRvIGFsbG9jYXRlIGEgKGd1aW50KS0xIHNpemVkIGJ1ZmZlciwgd2hpY2ggaXMgZW5vcm1vdXMKCSAgYW5kIGxpa2VseSB3b3VsZCBmYWlsLgoJICBBdm9pZCBpdCBhbmQgZXJyb3Igb3V0LgoKMjAxMS0xMC0xMCAxNzoxNzozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDE3OjA0OjM5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogSWYgd2UgZG9uJ3QgY29udHJvbCBhIHBhZC90ZW1wbGF0ZSwgcmV0dXJuIHByb3BlciBjYXBzCgkgIElmIHRoZXJlJ3MgYSBmaWx0ZXIsIHdlIGNhbiByZXR1cm4gdGhhdCBpbiBfZ2V0X2NhcHMoKQoKMjAxMS0xMC0xMCAxNjo1Mjo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogU3BlY2lmeSB0cmFuc2ZlciBmdWxsIGZvciBnc3RfcGFkX2dldF9jYXBzKCkKCSAgSXQgaW5jcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSByZXR1cm5lZCBjYXBzLgoKMjAxMS0xMC0xMCAxMTowMjowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogQWRkIGRlYnVnIHRvIGtub3cgd2hhdCBldmVudHMgYXJlIHRyYW5zZmVycmVkIGJldHdlZW4gcGFkcwoKMjAxMS0xMC0xMCAxMDozODoxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogVW5zZXQgRU9TIGV2ZW50IG9uIEZMVVNIX1NUT1AKCjIwMTEtMTAtMDcgMTE6NDk6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IERvbid0IGlnbm9yZSBkb3duc3RyZWFtIEZsb3dSZXR1cm4gd2l0aCBJRExFIHByb2JlcwoJICBJZiBwdXNoZ2luIGRvd25zdHJlYW0gcmV0dXJuZWQgYSBub24tb2sgdmFsdWUgKGxpa2UgR1NUX0ZMT1dfV1JPTkdfU1RBVEUpLAoJICB3ZSBkb24ndCB3YW50IHRvIGVuZCB1cCByZXR1cm5pbmcgYSBkaWZmZXJlbnQgdmFsdWUgKEdTVF9GTE9XX09LIGluIHRoaXMKCSAgY2FzZSkgaWYgSURMRSBwcm9iZXMgYXJlIHByZXNlbnQuCgoyMDExLTEwLTEwIDEzOjIzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMjo1NDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTI6Mzg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTEwIDEyOjI3OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZQoKMjAxMS0xMC0xMCAxMTo0OTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMTAgMTE6MzY6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgIGNvbXBhdDogYWRkIGNvbXBhdCBkZWZpbmUgZm9yIFVORVhQRUNURUQKCjIwMTEtMTAtMTAgMTE6MzM6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogR1NUX0ZMT1dfVU5FWFBFQ1RFRCAtPiBHU1RfRkxPV19FT1MKCjIwMTEtMTAtMTAgMTE6MzA6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlCgoyMDExLTEwLTA5IDExOjQ5OjQ1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgdGVzdHM6IHRlZTogUmVtZW1iZXIgdG8gaW5pdGlhbGl6ZSB2YXJpYWJsZXMgdG8gTlVMTAoJICBhcHBfdGhyZWFkIG5lZWRzIHRvIGJlIGluaXRpYWxpemVkIHRvIE5VTEwsIG90aGVyd2lzZSB0ZXN0cwoJICB3aWxsIHRyeSB0byB1c2UgaXQgYW5kIGNyYXNoCgoyMDExLTEwLTA4IDIwOjU2OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiBmb3IgY2hlY2stZXhwb3J0cyBzY3JpcHQgY2hhbmdlcwoKMjAxMS0xMC0wOCAyMDo0NjoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnRmYWN0b3J5OiBkb24ndCBleHBvcnQgcHJpdmF0ZSBfZ3N0X2VsZW1lbnRjbGFzc19mYWN0b3J5IHF1YXJrCgoyMDExLTEwLTA4IDIwOjE1OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IG1ha2UgX2dzdF9kZWJ1Z19pbml0KCkgcHJpdmF0ZSBmb3Igbm93CgkgIFRoaXMgd2FzIGEgRklYTUUgZm9yIDAuMTEuIEkgZ3Vlc3MgYSBjYXNlIGNvdWxkIGJlIG1hZGUgdG8ga2VlcCBpdCBhcm91bmQKCSAgc2VwYXJhdGVseSBmb3IgYXBwcyBvciBsaWJyYXJpZXMgdGhhdCBvbmx5IHdhbnQgdG8gdXNlIEdTdHJlYW1lcidzIGRlYnVnZ2luZwoJICBzeXN0ZW0sIGJ1dCBpdCBzZWVtcyBtb3JlIGxpa2VseSB0aGV5J2QganVzdCBjb3B5IHRoZSB0d28gc291cmNlIGZpbGVzIGludG8KCSAgdGhlaXIgb3duIHRyZWUgaWYgdGhlIGNhc2UuIEFsc28sIHRoaW5ncyBsaWtlIHR5cGVzIHdvdWxkbid0IGJlIGluaXRpYWxpc2VkCgkgIHdpdGhvdXQgZ3N0X2luaXQoKS4gV2UgY2FuIHN0aWxsIG1ha2UgaXQgcHVibGljIGFnYWluIGlmIGFueW9uZSBuZWVkcyBpdCwKCSAgYnV0IHRoZW4gd2Ugc2hvdWxkIG1ha2UgaXQgYSBwcm9wZXIgZnVuY3Rpb24gYW5kIG5vdCBoaWRlIGl0IGJlaGluZAoJICB1bmRlcnNjb3Jlcy4KCjIwMTEtMTAtMDggMTk6NTQ6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL21hc3RlcicgaW50byBzeW1ib2wtZXhwb3J0cwoKMjAxMS0xMC0wOCAxNDoxNzoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L3BhcnNlLy5naXRpZ25vcmU6CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIGdzdHBhcnNlOiBwcmVmaXggZ2VuZXJhdGVkIHBhcnNlciBmdW5jdGlvbnMgc28gdGhleSBkb24ndCBnZXQgZXhwb3J0ZWQKCSAgRG9uJ3QgZXhwb3J0IHRob3NlIDM1LXNvbWV0aGluZyByYW5kb20gX2dzdF9wYXJzZV95eSogc3ltYm9scy4gVGhlc2Ugd2VyZQoJICBuZXZlciBpbiBhbnkgaGVhZGVyIGZpbGVzIGFuZCBhbHNvIGJsYWNrbGlzdGVkIGZyb20gb3VyIC5kZWYgZmlsZXMsIGluCgkgIGNhc2UgYW55b25lIHdvbmRlcnMuCgoyMDExLTEwLTA4IDEzOjM3OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgaW5mbzogcmVuYW1lIF9fZ3N0X2RlYnVnXyogdG8gX2dzdF9kZWJ1Z18qIGFuZCBmaXggc3ltYm9sIGV4cG9ydCByZWdleHAKCSAgT25seSBleHBvcnQgR1N0cmVhbWVyIHN5bWJvbHMgd2l0aCBvbmUgbGVhZGluZyB1bmRlcnNjb3JlLCBub3QgdHdvCgkgIG9yIG1vcmUgbGVhZGluZyB1bmRlcnNjb3Jlcy4KCSAgUmVxdWlyZXMgYSByZWJ1aWxkIG9mIHRoZSBlbnRpcmUgc3RhY2ssIHNvcnJ5LgoKMjAxMS0xMC0wOCAxNToxNjo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgZG9jCgoyMDExLTEwLTA4IDE0OjI1OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0wOCAxNDoyMzozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUKCjIwMTEtMTAtMDggMTI6MDg6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA4IDA5OjQxOjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcG9ydCB0byAwLjExCgoyMDExLTEwLTA4IDA5OjI4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoKMjAxMS0xMC0wNyAwOTo0NToyMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY29tPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBVc2UgcGlwZWxpbmUgY2F0ZWdvcnkgZm9yIG9uZSBtb3JlIGxvZyBtZXNzYWdlCgkgIE1ha2VzIGRlYnVnZ2luZyBlYXNpZXIuCgoyMDExLTEwLTA3IDE2OjM2OjEwICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdTVF9QVFJfRk9STUFUOiBBZGQgR3N0QnVmZmVyIHB0ciBmb3JtYXQgYW5kIHVzZSBpbiBHU1RfU0NIRURVTElORwoJICBHc3RCdWZmZXIgcG9pbnRlcnMgY2FuIG5vdyBiZSBwcmludGVkIHVzaW5nIEdTVF9QVFJfRk9STUFULiBUaGlzIGlzIHVzZWQKCSAgaW4gdGhlIHZlcnkgdXNlZnVsIEdTVF9TQ0hFRFVMSU5HIGRlYnVnIGxvZ3MgaW4gZ3N0cGFkLmMgYW5kIGFsbG93cyBmb3IKCSAgZWFzaWVyIGFuZCBtb3JlIGluZm9ybWF0aW9uIHRyYWNraW5nIG9mIGJ1ZmZlciBwcm9ncmVzcyB0aHJvdWdoIGEKCSAgcGlwZWxpbmUgd2l0aCBqdXN0IGRlYnVnIGxvZ2dpbmcuCgoyMDExLTEwLTA3IDEzOjU1OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgdGVzdHM6IGZpeCBjb21waWxlciB3YXJuaW5ncyBpbiBzaW5rcyB0ZXN0CgoyMDExLTEwLTA3IDEzOjU0OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZGF0YXF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJhc2U6IG1ha2UgR3N0RGF0YVF1ZXVlIHByaXZhdGUgQVBJIGZvciBtdWx0aXF1ZXVlCgkgIFRoZXJlJ3Mgbm8gY29kZSB0aGF0IHVzZXMgaXQgb3RoZXIgdGhhbiBtdWx0aXF1ZXVlLCBzbyBtYWtlIGl0IHByaXZhdGUKCSAgdG8gbXVsdGlxdWV1ZSBmb3Igbm93LiBUaGF0IHdheSB3ZSBjYW4gYWxzbyBkbyBvcHRpbWlzYXRpb25zIHRoYXQKCSAgcmVxdWlyZSBBUEkvQUJJIGJyZWFrcy4gSWYgYW55b25lIGV2ZXIgd2FudHMgdG8gdXNlIGl0LCB3ZSBjYW4gc3RpbGwKCSAgbWFrZSBpdCBwdWJsaWMgYWdhaW4uCgoyMDExLTEwLTA2IDE3OjI3OjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0xMC0wNiAxNzoyNjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgbGlzdAoKMjAxMS0xMC0wNiAxNDozNDowOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHNlbmQgZHVyYXRpb24gbWVzc2FnZSB3aGVuIHVwZGF0aW5nIGludGVybmFsIGR1cmF0aW9uCgoyMDExLTEwLTA2IDE0OjA0OjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBsaXN0CgoyMDExLTEwLTA2IDEwOjU5OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIHVwZGF0ZSBwb3J0aW5nIGxpc3QKCjIwMTEtMTAtMDUgMjA6MDY6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIGxpc3QKCjIwMTEtMTAtMDUgMTM6NDM6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgc3RhdHVzCgoyMDExLTEwLTA1IDExOjIwOjM3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGdzdGJ1ZmZlcnBvb2w6IFVzZSBnbGliIGNvbXBhdCBtYWNyb3MgZm9yIGF0b21pYyBwb2ludGVycwoKMjAxMS0xMC0wNCAxODo1NToyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3d0YXkvcG9ydGluZy1saXN0LTAuMTEudHh0OgoJICB1cGRhdGUgcG9ydGluZyBsaXN0CgoyMDExLTEwLTA0IDE4OjU1OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcHJvdmUgZG9jcwoKMjAxMS0xMC0wNCAxNzozOToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMTAtMDQgMTc6MzY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS93dGF5L3BvcnRpbmctbGlzdC0wLjExLnR4dDoKCSAgdXBkYXRlIHBvcnRpbmcgbGlzdAoKMjAxMS0xMC0wNCAxNTo1NTowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZ3N0ZXZlbnQ6IHNwZWNpZnkgKHRyYW5zZmVyKSBmb3IgZ3N0X2V2ZW50X25ld19zZWdtZW50CgoyMDExLTEwLTA0IDEzOjE2OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9wb3J0aW5nLWxpc3QtMC4xMS50eHQ6CgkgIGFkZCBwb3J0aW5nIGxpc3QKCjIwMTEtMDktMjYgMTQ6MzY6NDYgKzA0MDAgIFN0YXMgU2VyZ2VldiA8c3RzcEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IFJldHVybiBzdWNjZXNzIGlmIG9wdGlvbmFsIHN0YXJ0L3N0b3AgbWV0aG9kIGlzIG5vdCBwcm92aWRlZAoJICBUaGlzIGFsbG93cyB0byBub3QgaW1wbGVtZW50IHRoZSBvcHRpb25hbCBzdGFydC9zdG9wIG1ldGhvZHMuCgoyMDExLTEwLTAzIDEwOjA2OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmMKCjIwMTEtMTAtMDMgMDk6Mjk6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBNYWtlIGRlYnVnZ2luZyBtZXNzYWdlIG1vcmUgaW5mb3JtYXRpdmUKCSAgRm9yIGFsbCB0aGUgbmV3Y29tZXJzIG91dCB0aGVyZSB3aG8gc3RpbGwgZG9uJ3Qga25vdyB0aGUgdmFsdWVzIG9mCgkgIEdzdFF1ZXJ5VHlwZSBlbnVtIGJ5IGhlYXJ0Li4uCgkgIC4uLiBhbmQgb2xkLXRpbWVycyB3aG8ndmUgZ290IGJldHRlciB0aGluZ3MgdG8gZG8gOikKCjIwMTEtMDktMzAgMTU6MjU6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlIGVzdGltYXRpbmcgdGhlIHBvc2l0aW9uIGluIHF1ZXJ5IGhhbmRsZXIgYWN0dWFsbHkgd29yawoJICBObyBwb2ludCBlc3RpbWF0aW5nIGlmIHdlIGRvbid0IHNldCB0aGUgcmVzdWx0IGFmdGVyd2FyZHMuCgoyMDExLTA5LTI2IDEzOjE0OjQyICswMTAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYW5zd2VyIHBvc2l0aW9uIHF1ZXJ5IGluIHN0cmVhbSB0aW1lIGFuZCB0cnkgdXBzdHJlYW0gZmlyc3QKCSAgTGV0IHRoZSBkZW11eGVyIGhhdmUgZmlyc3Qgc2F5IGFzIHdlbGwuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTk0ODUKCjIwMTEtMDktMzAgMTQ6NTI6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5oOgoJICBnc3QuaDogaW5jbHVkZSBoZWFkZXIgZm9yIGF0b21pYyBxdWV1ZQoKMjAxMS0wOS0zMCAxNDo1MDo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhdG9taWNxdWV1ZS5jOgoJICB0ZXN0czogYWRkIG1pbmltYWwgdGVzdCBmb3IgR3N0QXRvbWljUXVldWUKCSAgSnVzdCBuZXcgKyBmcmVlLgoKMjAxMS0wOS0yOSAxODowNjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIHVwZGF0ZSByZWxlYXNlIG5vdGVzCgkgIENoYW5nZSB0aGUgbWFpbCBhZGRyZXNzZXMgdG8gdGhlIGZyZWVkZXNrdG9wIG9uZXMKCjIwMTEtMDktMjkgMTc6MDQ6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgYmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMS4xID09PQoKMjAxMS0wOS0yOSAxNjo1MDoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJFTEVBU0UgMC4xMS4xCgoyMDExLTA5LTI4IDE4OjQ2OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBtZW1vcnkgYWxpZ25tZW50CgkgIEZpeCBjb21waWxhdGlvbiB3aGVuIFBPU0lYX01FTUFMSUdOIGlzIG5vdCBzZXQuCgkgIERlYnVnIHRoZSBjb25maWd1cmVkIGFsaWdubWVudC4KCSAgRml4ZXMgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDMwMAoKMjAxMS0wOS0yOCAxODo0NDoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnCgoyMDExLTA5LTI4IDExOjI4OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogZml4IGFmdGVyIG1lcmdlCgoyMDExLTA5LTI4IDExOjI0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wOS0yOCAxMToxNjozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGRvY3M6IGZpeCBzb21lIG1vcmUgZG9jcwoKMjAxMS0wOS0yNiAxOTo1MjoxMyArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogc2VuZCBkZWxheWVkIGV2ZW50cyBlYXJsaWVyCgkgIFNvbWUgZWxlbWVudHMgKHN1Y2ggYXMgdmlkZW9yYXRlKSBtaWdodCBwdXNoIGJ1ZmZlcnMgZWFybHksCgkgIGZvciBpbnN0YW5jZSBpbiBpbiB0cmFuc2Zvcm1faXAuIFdlIHdhbnQgZXZlbnRzIChhbmQgaW4gcGFydGljdWxhcgoJICBhbnkgTkVXU0VHTUVOVCBldmVudCkgdG8gYmUgcHVzaGVkIGJlZm9yZSB0aGF0LgoJICBUaGlzIGZpeGVzIHRyYW5zbWFnZWRkb24gd2VkZ2luZyBvbiBjb252ZXJ0aW5nIGEgZmlsZSBzdGFydGluZwoJICB3aXRoIGEgbm9uIHplcm8gb2Zmc2V0IHRvIE9nZy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDE2NQoKMjAxMS0wOS0yNiAyMDo0NzozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1ldGEuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgZG9jczogZml4IGRvY3MKCjIwMTEtMDktMjYgMTk6MjU6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA5LTI2IDE5OjI0OjE5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogaW1wcm92ZSBBUEkgZG9jcyBhIGxpdHRsZQoKMjAxMS0wOS0yNiAwMDozMDo0NyArMDMwMCAgUmFpbW8gSsOkcnZpIDxyYWltby5qYXJ2aUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3Q6IEZpeCBjb21waWxlciB3YXJuaW5ncyBvbiA2NCBiaXQgbWluZ3ctdzY0CgkgIEZpeGVzIGJ1ZyAjNjYwMDgzLgoKMjAxMS0wOS0yNSAxNjoxMDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSAgZXhhbXBsZXM6IGZpeCBib2d1cyBnX29iamVjdF91bnJlZiBpbiBoZWxsb3dvcmxkIGV4YW1wbGUKCSAgR01haW5Mb29wIGlzIG5vdCBhIEdPYmplY3QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MjQxNDMKCjIwMTEtMDktMjMgMTM6MDk6MjUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGNhcHMuYwoJICBnc3QvZ3N0cGFkLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaAoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYwoKMjAxMS0wOS0yMSAxMzo0Mzo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiB0byAwLjExIGJyYW5jaAoKMjAxMS0wOS0yMCAxMzowNDowNiArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZGVsYXkgc2VyaWFsaXplZCBldmVudHMgd2hlbiBzcmMgY2FwcyBhcmUgbm90IHNldCB5ZXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTU3MQoKMjAxMS0wOS0xMyAxNzowNDozMSArMDQwMCAgU3RhcyBTZXJnZWV2IDxzdHNwQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBTZXQgY2FwcyBvbiBwYWQgYmVmb3JlIGNoZWNraW5nIGlmIHRoZSBwYWQgaXMgbGlua2VkCgkgIFRoaXMgYWxsb3dzIHRoZSBzZXRjYXBzIGhhbmRsZXIgYW5kIG5vdGlmeTo6Y2FwcyB0byBsaW5rCgkgIHRoZSBwYWQgZG93bnN0cmVhbSBhbmQgZG9lc24ndCByZXF1aXJlIGhhY2tzIHRvIGFsd2F5cwoJICBwcm92aWRlIGEgcGVlciB0byB0aGUgcGFkLCBsaWtlIGluIGRlY29kZWJpbjIuCgoyMDExLTA5LTE1IDExOjQ5OjQzIC0wNzAwICBGYWJyaXppbyAoTWlzdG8pIE1pbG8gPG1pc3RvYmFhbkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2UgZ192YWx1ZV90YWtlX3N0cmluZygpIGFuZCBnc3RfdmFsdWVfZ2V0X2NhcHMoKSBpbnN0ZWFkIG9mIGFjY2Vzc2luZyBpbnRlcm5hbCBmaWVsZHMKCjIwMTEtMDktMTYgMTM6Mzg6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcgZm9yIG90aGVyIGNoYWluIGZ1bmN0aW9uIGNvZGUgcGF0aCBhcyB3ZWxsCgoyMDExLTA5LTE2IDEzOjEzOjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggdXAgcHJpbnRmIGZvcm1hdCBpbiBkZWJ1ZyBtZXNzYWdlCgkgIFdoaWNoIEkgbWVzc2VkIHVwLgoKMjAxMS0wOS0xNSAxMzoyMDoxNSArMDEwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBzb21lIGRlYnVnIHRyYWNlcyBtb3JlIHVzZWZ1bAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU5MTM5CgoyMDExLTA5LTE0IDIyOjU0OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ3N0Y3ZzdGVzdC5zaDoKCSAgc2NyaXB0czogcmVtb3ZlIGdzdGN2c3Rlc3Quc2gKCjIwMTEtMDktMTMgMjM6MDQ6MDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IGZpeCBjbGFuZyBjb21waWxlciB3YXJuaW5nCgkgIENhc3QgZW51bSB0byBpbnQgYmVmb3JlIGNoZWNraW5nIGZvciBuZWdhdGl2ZSB2YWx1ZXMsIHdoaWNoIGFyZQoJICBpbXBvc3NpYmxlIGFjY29yZGluZyB0byB0aGUgZW51bSBsaXN0LgoJICBnc3RsZm9jb250cm9sc291cmNlLmM6NjUyOjQ1OiBlcnJvcjogY29tcGFyaXNvbiBvZiB1bnNpZ25lZCBlbnVtIGV4cHJlc3Npb24gPCAwCgkgIGlzIGFsd2F5cyBmYWxzZSBbLVdlcnJvciwtV3RhdXRvbG9naWNhbC1jb21wYXJlXQoJICBpZiAod2F2ZWZvcm0gPj0gbnVtX3dhdmVmb3JtcyB8fCB3YXZlZm9ybSA8IDApIHsKCSAgfn5+fn5+fn4gXiB+CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTMxMzcKCjIwMTEtMDktMTMgMjE6NTg6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJICB0ZXN0czogbWFrZSBzdXJlIGZpbGVzcmMgcmV0dXJucyBlc2NhcGVkIFVSSXMgZXZlbiBpZiB0aGUgaW5wdXQgd2FzIHVuZXNjYXBlZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0NjczCgoyMDExLTA5LTEwIDE4OjE1OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG1vdmUgbG9nIG1lc3NhZ2VzIGZvciBjYXBzIGNyZWF0aW9uL2ZyZWVpbmcgaW50byBUUkFDRSBjYXRlZ29yeQoJICBSZWR1Y2UgU1BBTSBmb3IgR1NUX0NBUFM6NS4KCjIwMTEtMDktMDkgMTI6NTY6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IE9ubHkgZG8gdGhlIHN1YnNldCBjaGVjayBpbiBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgaWYgdGhlIHBhZCBjbGFpbXMgdG8gYWNjZXB0IHRoZSBjYXBzCgoyMDExLTA5LTA3IDE3OjIxOjU1IC0wNDAwICBOaWNvbGFzIER1ZnJlc25lIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBiYXNlc2luazogbWFrZSBpdCBlYXN5IHRvIG92ZXJyaWRlIHRoZSBwYWQgcXVlcnkKCSAgQWRkIGEgdm1ldGhvZCB0byBoYW5kbGUgdGhlIHBhZCBxdWVyeS4KCSAgSW5zdGFsbCBhIGRlZmF1bHQgaGFuZGxlciBmb3IgdGhlIHBhZCBxdWVyeS4KCSAgVXNlIHRoZSBuZXcgcXVlcnkgZnVuY3Rpb24gaW4gZmlsZXNpbmsKCjIwMTEtMDktMDggMTQ6Mzk6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJldmVydCAiUmV2ZXJ0ICJiYXNldHJhbnNmb3JtOiBVc2UgY2hlY2sgZm9yIHN1YnNldHMgYW5kIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9uIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDBiYzZkNDljOTUwMjEwYmY0MjI2MTVmYjhkYzk4YzVhZGNkNWU0NTYuCgkgIENvbmZsaWN0czoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCjIwMTEtMDktMDggMTQ6MzE6NTIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgIlJldmVydCAicGFkOiBDaGVjayBmb3Igc3Vic2V0cywgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb25zIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUiIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJiZmFkYTU1ODFlMzVhMmQzNzE4OGY0OGEyYzc0NDI2NDRmMTBiYjMuCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgkgIEZvciAwLjExIHdlIHdhbnQgdG8gZW5mb3JjZSB0aGF0IG9ubHkgc3Vic2V0cyBvZiB0aGUgcGFkCgkgIGNhcHMgYXJlIGFsbG93ZWQuIFRoaXMgYnJlYWtzIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yCgkgIHNvbWUgZWxlbWVudHMsIHdoaWNoIGlzIHdoeSB3ZSBvbmx5IHByaW50IGEgd2FybmluZyBpbgoJICAwLjEwLgoKMjAxMS0wOS0wOCAxNDozMDowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5jCgoyMDExLTA5LTA4IDE0OjI5OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IFVzZSBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgaW5zdGVhZCBvZiBtYW51YWxseSBjaGVja2luZyB3aGVuIGNvbmZpZ3VyaW5nIGEgc2lua3BhZCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBkM2NhZDI4ZGE5MzZiMDM3ZDg3N2RjNzBjMDIyODZiODFiNjgwMjg0LgoJICBJdCBjYXVzZXMgcGVyZm9ybWFuY2UgcHJvYmxlbXMgYmVjYXVzZSBhY2NlcHRjYXBzKCkgcHJvcGFnYXRlcyBkb3duc3RyZWFtLgoKMjAxMS0wOS0wOCAxNDoyMzo1MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dAoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0CgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0CgkgIGdzdC9nc3RjYXBzLmMKCSAgZ3N0L2dzdGV2ZW50LmgKCSAgZ3N0L2dzdGdob3N0cGFkLmMKCSAgZ3N0L2dzdGludGVyZmFjZS5jCgkgIGdzdC9nc3RwYWQuYwoJICBnc3QvZ3N0cGFkLmgKCSAgZ3N0L2dzdHV0aWxzLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYwoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYwoJICB0b29scy9nc3QtbGF1bmNoLjEuaW4KCjIwMTEtMDktMDggMTM6NDE6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IFVzZSBnc3RfcGFkX2FjY2VwdF9jYXBzKCkgaW5zdGVhZCBvZiBtYW51YWxseSBjaGVja2luZyB3aGVuIGNvbmZpZ3VyaW5nIGEgc2lua3BhZAoKMjAxMS0wOS0wOCAxMzo0MDowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUHJpbnQgYSBnX3dhcm5pbmcoKSBpZiBwYWQgYWNjZXB0IGNhcHMgdGhhdCBhcmUgbm90IGEgc3Vic2V0IG9mIGl0cyBjYXBzCgkgIEluIDAuMTEgb25seSBzdWJzZXRzIGFyZSBzdXBwb3J0ZWQgYWdhaW4gYXMgZG9jdW1lbnRlZCBpbnN0ZWFkIG9mIGFsc28KCSAgYWxsb3dpbmcgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMuCgoyMDExLTA5LTA4IDEzOjI2OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXZlcnQgImJhc2V0cmFuc2Zvcm06IFVzZSBjaGVjayBmb3Igc3Vic2V0cyBhbmQgbm90IG5vbi1lbXB0eSBpbnRlcnNlY3Rpb24gdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1ZTVjYzVlODllN2UyODU4YTYzNTJmYTRjODFhMzc0ZjZlNWE2Mjk3LgoJICBTZWUgYnVnICM2NTg1NDEuCgoyMDExLTA5LTA4IDEzOjI2OjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IENoZWNrIGZvciBzdWJzZXRzLCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMgdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwYzVkNTAyMDczMjZkNzRhNDgwNWJjZDg5OGJmYWM4ODc1NDBmMTJiLgoJICBTZWUgYnVnICM2NTg1NDEuCgoyMDExLTA5LTA3IDEzOjE0OjM4ICswMjAwICBQaW90ciBGdXNpayA8Zm94QHNjZW5lLnBsPgoKCSogUkVBRE1FOgoJKiBkb2NzL1JFQURNRToKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2Fwcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWxhdGVuY3kudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJKiBkb2NzL2ZhcS9nZW5lcmFsLnhtbDoKCSogZG9jcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWNsb2Nrcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSogZG9jcy9wd2cvb3RoZXItYmFzZS54bWw6CgkqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkqIGRvY3MvcmFuZG9tL2F1dG9wbHVnMjoKCSogZG9jcy9yYW5kb20vYmJiL29wdGlvbmFsLXByb3BlcnRpZXM6CgkqIGRvY3MvcmFuZG9tL2JiYi9zdHJlYW1zZWxlY3Rpb246CgkqIGRvY3MvcmFuZG9tL2NhcHM6CgkqIGRvY3MvcmFuZG9tL2NvbXBhbnkvZ3ZhZGVjLnR4dDoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZW1iZWRkZWQudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL3BsdWdpbmRvY3MudHh0OgoJKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkqIGRvY3MvcmFuZG9tL2VvczoKCSogZG9jcy9yYW5kb20vaGllcmFyY2h5OgoJKiBkb2NzL3JhbmRvbS9pMThuOgoJKiBkb2NzL3JhbmRvbS9pbnRlcmZhY2VzOgoJKiBkb2NzL3JhbmRvbS9uZWdvdGlhdGlvbjoKCSogZG9jcy9yYW5kb20vb21lZ2Evc2NoZWQvY2hhaW5zOgoJKiBkb2NzL3JhbmRvbS9vbWVnYS90ZXN0aW5nL2ZyYW1ld29yazoKCSogZG9jcy9yYW5kb20vcGx1Z2luczoKCSogZG9jcy9yYW5kb20vcnRwOgoJKiBkb2NzL3JhbmRvbS9zbG9tby9jb250cm9sbGVyLnR4dDoKCSogZG9jcy9yYW5kb20vc291cmNlczoKCSogZG9jcy9yYW5kb20vc3RyZWFtaGVhZGVyOgoJKiBkb2NzL3JhbmRvbS90ZXN0aW5nL3N5bnRheDoKCSogZG9jcy9yYW5kb20vdHlwZXMyOgoJKiBkb2NzL3JhbmRvbS91cmFldXMvZ3N0cmVhbWVyX2FuZF9taWRpLnR4dDoKCSogZG9jcy9yYW5kb20vdmlzLXRyYW5zZm9ybToKCSogZG9jcy9yYW5kb20vd3RheS9jYXBzLW5lZ29jaWF0aW9uOgoJKiBkb2NzL3JhbmRvbS93dGF5L3RocmVhZGluZzoKCSogZG9jcy9yYW5kb20vd3RheS90aHJlYWRzX2hpbGV2ZWw6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJKiB3aW4zMi9SRUFETUUudHh0OgoJICBkb2NzLCBnc3Q6IHR5cG8gZml4ZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODQ0OQoKMjAxMS0wOS0wNyAxNTowNzoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBkb2NzOiBmaXggbWFrZSBkaXN0Y2hlY2sKCSAgTm8gcG9pbnQgcmVtb3ZpbiB0aG9zZSBlbXB0eSBvdmVycmlkZSBmaWxlcyBmcm9tIGdpdCwgdGhleSdsbAoJICBqdXN0IGJlIHJlLWNyZWF0ZWQgbGF0ZXIsIHNvIGxldCdzIHRlbGwgZ3RrLWRvYyBhYm91dCB0aGVtLCBzbwoJICBpdCBjYW4gY2xlYW4gdGhlbSB1cCBwcm9wZXJseS4KCjIwMTEtMDktMDcgMTY6MDI6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IElmIHRoZXJlJ3Mgbm8gcGVlciB3ZSBzdGlsbCBoYXZlIHRvIHRyYW5zZm9ybSBBTlkgY2FwcyBpbiBnZXRjYXBzKCkKCSAgT3RoZXJ3aXNlIGVsZW1lbnRzIGxpa2UgY2Fwc2ZpbHRlciB3aWxsIHJldHVybiBBTlkgY2FwcyBpZiBubwoJICBwZWVyIGlzIHByZXNlbnQgaW5zdGVhZCBvZiB0aGUgZmlsdGVyIGNhcHMuIFRoZSB0cmFuc2Zvcm1fY2FwcygpCgkgIHZmdW5jIGNvdWxkIGRvIHRyYW5zZm9ybWF0aW9ucyB0byB0aGUgdGVtcGxhdGUgY2FwcyB0aGF0IGRvIG5vdAoJICByZXN1bHQgaW4gdGhlIHVubW9kaWZpZWQgdGVtcGxhdGUgY2Fwcy4KCjIwMTEtMDktMDcgMTQ6MDU6MDMgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGNsZWFudXAgbWFrZWZpbGVzCgkgIFJlbW92ZSBjb21tZW50ZWQgb3V0IHBhcnRzIHRoYXQgd2UgZG9uJ3QgbmVlZC4gUmVtb3ZlICJ0aGUgd2luZ28gYWRkaXRpb24iIC0gbm8KCSAgc28gdXNlZnVsIGFmdGVyIGFsbC4gTmFycm93IGRvd24gZmlsZS1nbG9icyBmb3IgcGx1Z2luIGRvY3MuCgoyMDExLTA5LTA3IDEzOjUwOjA4ICswMjAwICBTdGVmYW4gU2F1ZXIgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogZXNjYXBlICUgaW4gZG9jYmxvYgoKMjAxMS0wOS0wMiAxOTo0NjowNiArMDQwMCAgU3RhcyBTZXJnZWV2IDxzdGFzQHN0YXMuKG5vbmUpPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBVc2UgZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgbWFudWFsbHkgY2hhbmdpbmcgY2FwcwoJICBnc3RfcGFkX3NldF9jYXBzKCkgZG9lcyBlc3NlbnRpYWxseSB0aGUgc2FtZSBidXQgYWRkaXRpb25hbGx5IGNhbGxzCgkgIHRoZSBwYWQncyBzZXRjYXBzIGZ1bmN0aW9uLgoJICBGaXhlcyBidWcgIzY1ODA3Ni4KCjIwMTEtMDktMDYgMjE6MjQ6MTAgKzAyMDAgIFN0ZWZhbiBTYXVlciA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGEzOWViODMgdG8gMTFmMGNkNQoKMjAxMS0wOS0wNiAxNTozOTo1MiArMDIwMCAgU3RlZmFuIFNhdWVyIDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjA1Y2Q5YSB0byBhMzllYjgzCgoyMDExLTA5LTA2IDEyOjE3OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgY2hlY2sgZm9yIHN1YnNldHMgYW5kIG5vdCBub24tZW1wdHkgaW50ZXJzZWN0aW9uIHRvIGNoZWNrIGlmIGNhcHMgYXJlIGNvbXBhdGlibGUKCjIwMTEtMDktMDYgMTI6MTk6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IENoZWNrIGZvciBzdWJzZXRzLCBub3Qgbm9uLWVtcHR5IGludGVyc2VjdGlvbnMgdG8gY2hlY2sgaWYgY2FwcyBhcmUgY29tcGF0aWJsZQoJICBQYWRzIHNob3VsZCBvbmx5IGFjY2VwdCBjYXBzIHRoYXQgYXJlIGEgc3Vic2V0IG9mIHRoZSBwYWQgY2FwcywgZS5nLgoJICB0aGV5IHNob3VsZCBhY2NlcHQgb25seSBjYXBzIHRoYXQgaGF2ZSBhIG5vbi1lbXB0eSBpbnRlcnNlY3Rpb24gYW5kCgkgIGF0IGxlYXN0IGFsbCBmaWVsZHMgb2YgdGhlIHBhZCBjYXBzLgoJICBXaXRob3V0IHRoaXMgYSBwYWQgdGhhdCB3YW50cyBmb3IgZXhhbXBsZQoJICAidmlkZW8veC1oMjY0LHN0cmVhbS1mb3JtYXQ9Ynl0ZS1zdHJlYW0iCgkgIHdpbGwgYmUgaGFwcHkgdG8gYWNjZXB0CgkgICJ2aWRlby94LWgyNjQiLgoKMjAxMS0wOC0yOSAxNzowNjoxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogY2hhbmdlIHRvIEdTVF9ERUZJTkVfTUlOSV9PQkpFQ1RfVFlQRQoJICBBcHBlbmQgX1RZUEUgdG8gdGhlIG1hY3JvIGZvciBjb25zaXN0ZW5jeSB3aXRoIG90aGVyIHNpbWlsYXIgbWFjcm9zLgoKMjAxMS0wOC0yOSAxNTozNDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWV0YS5jOgoJKiBnc3QvZ3N0bWV0YS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGluaXQ6IGFkZCBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMKCSAgUmVtb3ZlIGdzdF9taW5pX29iamVjdF9yZWdpc3RlcigpIGFuZCBhZGQgYSBHU1RfREVGSU5FX01JTklfT0JKRUNUIG1hY3JvIHRvCgkgIGRlZmluZSBhIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciB0aGUgYm94ZWQgbWluaW9iamVjdC4KCSAgUmVtb3ZlIGEgYnVuY2ggb2YgY3VzdG9tIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucyBhbmQgcmVwbGFjZSB0aGVtIHdpdGggdGhlCgkgIG1pbmlvYmplY3QgbWFjcm8uCgkgIFJlbmFtZSBzb21lIF9pbml0IG1ldGhvZCB0byBfcHJpdl8qX2luaXRpYWxpemUoKSBsaWtlIHRoZSByZXN0IG9mIHRoZW0uCgkgIEluc3BpcmVkIGJ5IHBhdGNoIGZyb20gSm9oYW4gRGFobGluIGFuZCBzZWUgYnVnICM2NTc2MDMKCjIwMTEtMDgtMjkgMTM6Mjc6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogYWRkIHNvbWUgX3ByaXYgcHJlZml4ZXMgdG8gcHJpdmF0ZSBtZXRob2RzCgoyMDExLTA4LTI5IDEyOjM4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaS1vYmplY3Q6IHVzZSByZWYvdW5yZWYgZGlyZWN0bHkgaW4gYm94ZWQgY29weS9mcmVlCgkgIEdMaWIgd2lsbCBub3QgY2FsbCBvdXIgY29weS9mcmVlIHdpdGggYSBOVUxMIG9iamVjdAoKMjAxMS0wOC0yNiAxNDozNzo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0bWVzc2FnZS5jCgkgIGdzdC9nc3RxdWVyeS5jCgkgIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jCgkgIGdzdC9nc3RzZWdtZW50LmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmgKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKCjIwMTEtMDgtMjYgMTQ6MTg6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2U6IHJlbmFtZSBhbGxvY2F0aW9uIHZtZXRob2RzCgkgIE5hbWUgdGhlIGFsbG9jYXRpb24gdm1ldGhvZCBvbiBzcmNwYWQgZGVjaWRlX2FsbG9jYXRpb24gYmVjYXVzZSBzb3VyY2UgcGFkcyB3aWxsCgkgIGhhdmUgdG8gZGVjaWRlIHdoYXQgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIHdpbGwgYmUgdXNlZC4KCSAgTmFtZSB0aGUgYWxsb2NhdGlvbiB2bWV0aG9kIG9uIHNpbmtwYWRzIHByb3Bvc2VfYWxsb2NhdGlvbiBiZWNhdXNlIHRoZXkgd2lsbAoJICBuZWVkIHRvIGNvbmZpZ3VyZSB0aGUgYWxsb2NhdGlvbiBxdWVyeSB3aXRoIGEgcHJvcG9zZWQgdmFsdWVzIGZvciB1cHN0cmVhbS4KCjIwMTEtMDgtMjYgMTQ6MTc6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogaW1wcm92ZSBmbGFncwoJICBSZW5hbWUgRFJPUCB0byBERUNPREVfT05MWS4KCSAgQWRkIERST1BQQUJMRSBmbGFnIHRvIG1hcmsgYnVmZmVycyB0aGF0IGNhbiBiZSBkcm9wcGVkIHRvIHNhdmUgYmFuZHdpZHRoIHdpdGhvdXQKCSAgZGVzdHJveWluZyB0aGUgc3RyZWFtLgoKMjAxMS0wOC0yNiAxNDowOTo0NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBkb2NzOiBhZGQgc2luY2UgMC4xMC4zNiBvbiB0aGUgbmV3IF9OT05FIGVudW0gdmFsdWVzCgoyMDExLTA4LTI2IDAwOjEzOjE2ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHN0ZXBwaW5nOiB1c2UgdGhlIHByb3BlciBhcmd1bWVudCBvcmRlcgoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI2IDAwOjA2OjEyICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICBmaWxlaW5kZXg6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI2IDAwOjAwOjI1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZGVyOiB1c2UgR1NUX1RZUEVfRklORF9OT05FIGluc3RlYWQgb2YgMAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIzOjUzOjU4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMzo0OTozOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IGFkZCBHU1RfVFlQRV9GSU5EX05PTkUgYW5kIHVzZSBpdAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIzOjI2OjA4ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSB0aGUgZW51bSB2YWx1ZXMgZm9yIDAgYW5kIGRvbid0IGFidXNlIG9uIGdib29sZWFuIGNvaW5jaWRlbmNlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjM6MDY6NTYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHV0IHRoZSBhcmd1bWVudHMgb2YgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgaW4gdGhlIHByb3BlciBvcmRlcgoKMjAxMS0wOC0yNSAyMjo0ODo1NCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhcnNlLmM6CgkgIHBhcnNlOiB1c2UgR1NUX1BBUlNFX0ZMQUdfTk9ORSBpbnN0ZWFkIG9mIDAKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMjo0MjowOCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIyOjI5OjQ1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IG1pbm9yIGNoYW5nZXMgcmVsYXRlZCB0byBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjI6MDU6MjYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSAgdHJhY2U6IGFkZCBHU1RfQUxMT0NfVFJBQ0VfTk9ORSBmb3IgY29uc2lzdGVuY3kgYW5kIHVzZSBpdAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjUyOjA1ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZQoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI1IDIxOjQ5OjI5ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICB0YWdzZXR0ZXI6IHVzZSBHU1RfVEFHX01FUkdFX1VOREVGSU5FRCBpbnN0ZWFkIG9mIEZBTFNFCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MzA6NTcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IHVzZSBHU1RfU0VFS19GTEFHX05PTkUgaW5zdGVhZCBvZiAwCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MjU6NDYgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMjUgMjE6MTg6MTUgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogbWlub3IgY2hhbmdlcyByZWxhdGVkIHRvIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0yNSAyMTowMzo1MyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMzowMDo0NyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMjo1MToyOSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogZXhwbGljaXRseSBjYXN0IHRvIHRoZSByaWdodCBlbnVtIHR5cGVzCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6NDE6MzIgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCjIwMTEtMDgtMTYgMjI6Mzc6MDggKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBpbmRleDogZXhwbGljaXRseSBjYXN0IHRvIHRoZSBlbnVtIHR5cGUKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoKMjAxMS0wOC0xNiAyMjoyOTo1OSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJICBmb3JtYXQ6IHVzZSBHU1RfRk9STUFUX1VOREVGSU5FRCBhbmQgZmV3IGNhc3RzIHRvIEdzdEZvcm1hdAoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgoyMDExLTA4LTI2IDEzOjAyOjM0ICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiBGaXggYm9kZ2VkIHByZXZpb3VzIGNvbW1pdAoKMjAxMS0wOC0yNiAxMjozNzo0MyArMDEwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkLnNpbW9uc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IFVzZSBHc3RQYWREaXJlY3Rpb24gaW4gdGhlIHF1ZXJ5IHZmdW5jCgkgIFdpbSBzdWdnZXN0ZWQgdGhhdCB1c2luZyBHc3RQYWREaXJlY3Rpb24gaW5zdGVhZCBvZiBhIEdzdFBhZCBpbiB0aGUKCSAgYXJndW1lbnRzIHRvIHRoZSBuZXcgcXVlcnkgdmZ1bmMgd291bGQgYmUgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyCgkgIGZ1bmN0aW9ucy4KCjIwMTEtMDgtMjYgMTM6NDA6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmVuYW1lIF9DTElQIHRvIF9EUk9QIGZsYWcKCSAgV2UgY2FuIGFsc28gdXNlIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IGEgZnJhbWUgc2hvdWxkIGJlIGRlY29kZWQgYnV0IG5vdAoJICBkaXNwbGF5ZWQgcmVnYXJkbGVzcyBvZiB0aGUgdGhlIHNlZ21lbnQgYm91bmRhcmllcyBzbyB3ZSB1c2UgdGhlIG1vcmUgZ2VuZXJpYwoJICBfRFJPUC4KCjIwMTEtMDgtMjYgMTI6Mjg6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMKCjIwMTEtMDgtMjYgMTE6NDQ6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2V0cmFuc2Zvcm06IGFkZCB2bWV0aG9kIHRvIGNvbmZpZ3VyZSB1cHN0cmVhbSBidWZmZXJwb29sCgkgIEFkZCBhIHZtZXRob2QgdGhhdCBjYW4gYmUgaW1wbGVtZW50ZWQgdG8gaW5mbHVlbmNlIHRoZSBidWZmZXJwb29sIHRoYXQgdXBzdHJlYW0KCSAgZWxlbWVudHMgd2lsbCB1c2UuCgoyMDExLTA4LTI2IDExOjI0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBiYXNldHJhbnNmb3JtOiB1c2UgcGFkIGRpcmVjdGlvbiBsaWtlIG90aGVyIHZtZXRob2RzCgoyMDExLTA4LTI2IDExOjA5OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oCgoyMDExLTA4LTI2IDEwOjU3OjM3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5oOgoJICB1cmk6IHNvbWUgZG9jIGZpeGVzCgoyMDExLTA4LTI1IDExOjAyOjE2ICswMTAwICBTam9lcmQgU2ltb25zIDxzam9lcmQuc2ltb25zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQmFzZVRyYW5zZm9ybTogQWRkIGEgcXVlcnkgdmZ1bmMKCjIwMTEtMDctMjAgMTQ6MDU6MjcgKzAyMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZC5zaW1vbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGRvbid0IGFzc3VtZSBfZ2V0X2NhcHMgc3RpbGwgaGFzIHRvIGJlCgkgIF9zZXRfY2FwcyBvbmx5IGdldHMgY2FsbGVkIHdoZW4gdGhlIGJ1ZmZlciBpcyBhY3R1YWxseSBwdXNoZWQsIHNvIHRoZXJlCgkgIGlzIGEgcmVhc29uYWJseSBiaWcgd2luZG93IGJldHdlZW4gd2hlbiB0aGUgaW5pdGlhbCBjYXBzIGFyZSByZXRyaWV2ZWQKCSAgYW5kIHdoZW4gdGhlIGNhcHMgYXJlIHNldCBvbiBvdXIgc3JjIHBhZC4gU28gd2UgY2FuJ3QgYXNzdW1lIHRoZSBub3QKCSAgaGF2aW5nIG5lZ290aWF0ZWQgY2FwcyBvbiBvdXIgc3JjIHBhZCBtZWFucyBfZ2V0X2NhcHMgc3RpbGwgaGFzIHRvIGJlCgkgIGNhbGxlZC4KCSAgSW5zdGVhZCBzaW1wbHkgYWx3YXlzIHN1Z2dlc3QgdGhlIG5ldyBjYXBzIG9uIGJ1ZmZlcl9hbGxvYy4KCjIwMTEtMDgtMjUgMTg6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogYWRkIGNsaXAgZmxhZwoKMjAxMS0wOC0yNSAxNjoyMToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZXdvcmsgZmxhZ3MgYSBsaXR0bGUKCSAgUmVvcmRlciBidWZmZXIgZmxhZ3MgYW5kIGFkZCBzb21lIG5ldyBvbmVzLgoJICBSZW1vdmUgdGhlIG1lZGlhIHNwZWNpZmljIGZsYWdzLCB3ZSBjYW4gbm93IGVhc2lseSBkbyB0aGlzIHdpdGggdGhlIEZMQUdfTEFTVAoJICBmbGFnIGJlY2F1c2Ugd2UgZG9uJ3QgZXh0ZW5kIGZyb20gR3N0QnVmZmVyIGFueW1vcmUuCgoyMDExLTA4LTI1IDE2OjIwOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYnVmZmVyOiBhbHdheXMgY29weSBhbGwgYnVmZmVyIGZsYWdzIHdoZW4gYXNrZWQKCSAgRG9uJ3QgdHJ5IHRvIGJlIHNtYXJ0IGFuZCBjb3B5IG9ubHkgYSBzdWJzZXQgb2YgYnVmZmVyIGZsYWcKCjIwMTEtMDgtMjUgMTY6MTk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGRlZnMKCjIwMTEtMDgtMjUgMTQ6MDk6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiBwbHVyYWxpemUgdGhlIGJ1ZmZlciBmbGFncwoKMjAxMS0wOC0yNSAxMjozODo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzoKCSAgYmFzZXNpbms6IHJlbW92ZSBwcmVyb2xsLXF1ZXVlLWxlbiBwcm9wZXJ0eQoJICBSZW1vdmUgdGhlIHByZXJvbGwtcXVldWUtbGVuIHByb3BlcnR5IGFuZCBtb3ZlIGl0cyB2YXJpYWJsZXMgdG8gYSBwcml2YXRlCgkgIHNlY3Rpb24gc28gdGhhdCB3ZSBjYW4gcmVtb3ZlIHRoZW0gbGF0ZXIuCgoyMDExLTA4LTI0IDEwOjQzOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RvYmplY3QuYwoKMjAxMS0wOC0yMyAxODoxOTo1MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBlbnN1cmUgc3RhcnRfdGltZSByZXNldCB1cG9uIGZsdXNoCgoyMDExLTA4LTIzIDExOjU1OjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYWxzbyByZW1vdmUgdGhlIGNhc3QgYXMgdGhpcyBpcyBjYXVzaW5nIHRoZSB0cm91YmxlCgoyMDExLTA4LTIzIDExOjQxOjAyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogdXNlIHRoZSBhdG9taWMgbWFjcm9zIHRvIGRlYWwgd2l0aCB0aGUgZ2xpYiBjaGFuZ2UgaW4gdGhlIGltcGwuCgoyMDExLTA4LTIyIDEyOjQ5OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIG9iamVjdDogbWFrZSBfcmVwbGFjZSBsaWtlIHRoZSBtaW5pb2JqZWN0IHZlcnNpb24KCjIwMTEtMDgtMjIgMTI6MzM6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGJ1ZmZlci5oCgkgIGdzdC9nc3RjYXBzLmMKCSAgZ3N0L2dzdGNhcHMuaAoJICBnc3QvZ3N0ZXZlbnQuYwoKMjAxMS0wOC0yMiAxMjoxOToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9jYXBzbGlzdC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB2YWx1ZTogcmVtb3ZlIG91ciBGT1VSQ0MgR1R5cGUKCSAgUmVtb3ZlIG91ciBjdXN0b20gZm91cmNjIEdWYWx1ZS4KCjIwMTEtMDgtMjEgMTQ6MDc6MDggLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBvYmplY3Q6IG1ha2UgZ3N0X29iamVjdF9yZXBsYWNlKCkgYXRvbWljCgoyMDExLTA4LTIwIDE0OjA3OjU1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBtb3JlIGNsYXJpZmljYXRpb24gZm9yIGVsZW1lbnQgZG9jcwoJICBEb24ndCBzdWdnZXN0IGRlcHJlY2F0ZWQgbWV0aG9kIGluIHRoZSBkZXNjdGlvbiBkb2NzIGFuZCB0cnkgdG8gYmUgbW9yZSBoZWxwZnVsCgkgIGluIG90aGVyIHBsYWNlcyBieSBzdWdnZXN0aW5nIHJlbGF0ZWQgZnVuY3Rpb25zLgoKMjAxMS0wOC0yMCAwOTo1NjowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jczogc21hbGwgY2xhcmlmaWNhdGlvbiBpbiB0aGUgZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFkIGRvY3MKCSAgTWFrZSBpdCBtb3JlIG9idmlvdXMgdGhhdCBvbmUgc2hvdWxkIHBhc3MgdGhlIHRlbXBsYXRlIG5hbWUuCgoyMDExLTA4LTE4IDIwOjQ2OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgdXNlID09IGluIGRlYnVnIHN0cmluZwoJICBJdCBtZXNzZXMgdXAgR1NUX0RFQlVHPSo6NSBtYWtlIGZvby9iYXIudmFsZ3JpbmQsIGJlY2F1c2UKCSAgb3VyIE1ha2VmaWxlIGxvb2tzIGZvciAnPT0nIGFzIG1hcmtlciBvZiB2YWxncmluZCBvdXRwdXQuCgoyMDExLTA4LTE4IDIwOjQ0OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IGNyYXNoIG9uIHNlZWsgZnJvbSBzdHJlYW1pbmcgdGhyZWFkIG9uIG5ld3NlZ21lbnQgZXZlbnQKCSAgRXZlbnQgaWYgaXQncyBub3QgYWxsb3dlZCwgd2UgY2FuIGVhc2lseSBwcmV2ZW50IGl0LCBzbyBsZXQncyBkbwoJICB0aGF0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NzcxCgoyMDExLTA4LTE3IDE3OjU2OjQwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBtZXRob2QgdG8gZml4YXRlIG9uZSBmaWVsZAoKMjAxMS0wOC0xNyAxNzoxNjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgZGVmYXVsdCBmaXhhdGUgZnVuY3Rpb24KCSAgQWRkIGEgZGVmYXVsdCBmaXhhdGUgZnVuY3Rpb24gd2hpY2ggZG9lcyBnc3RfY2Fwc19maXhhdGUoKSBiZWNhdXNlCgkgIGdzdF9wYWRfZml4YXRlKCkgZG9lcyBub3QgZG8gdGhhdCBhbnltb3JlLgoKMjAxMS0wOC0xNyAwOToyNTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGRvY3M6IGltcHJvdmUgc29tZSBkb2NzCgoyMDExLTA4LTE2IDE4OjI5OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogcmV0dXJuIHByb2Nlc3NlZCBudW1iZXIgb2YgYnl0ZXMKCSAgTWFrZSBfZmlsbCwgX2V4dHJhY3QgYW5kIF9tZW1zZXQgcmV0dXJuIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2VyZQoJICBoYW5kbGVkIGluIGNhc2UgdGhlIGJ1ZmZlciBzaXplIGlzIGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIHNpemUuCgoyMDExLTA4LTE2IDE3OjE5OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBlbGVtZW50IGZhY3RvcnkgZG9jdW1lbnRhdGlvbgoKMjAxMS0wOC0xNiAxNzozMjoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBidWZmZXI6IHJlbmFtZSBQUkVST0xMIC0+IExJVkUgZmxhZwoJICBSZW5hbWUgdGhlIEdTVF9CVUZGRVJfRkxBR19QUkVST0xMIHRvIEdTVF9CVUZGRVJfRkxBR19MSVZFIGFuZCBnaXZlIHRoZSBuZXcgZmxhZwoJICBhIG1lYW5pbmcuIFRoZSBvbGQgUFJFUk9MTCBmbGFnIG5ldmVyIGhhZCBhIGNsZWFyIG1lYW5pbmcuCgoyMDExLTA4LTE1IDIxOjA1OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGZpeCBjb21waWxlciB3YXJuaW5nIHJlcG9ydGVkIGJ5IElDQwoJICBUaGUgTUFYIG1hY3JvIGV4cGFuZHMgdG8gY29kZSB0aGF0IGNoZWNrcyBpZiBhbiB1bnNpZ25lZCBpbnRlZ2VyIGlzIDwgMC4KCSAgRml4ZXMgd2FybmluZyAjMTg2OiBwb2ludGxlc3MgY29tcGFyaXNvbiBvZiB1bnNpZ25lZCBpbnRlZ2VyIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0xMCAxMTozOToyMyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0xMCAxMTowNzo0OSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZ3N0c3RhdGU6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgZW51bSB0eXBlCgkgIEZpeGVzIHdhcm5pbmcgIzE4ODogZW51bWVyYXRlZCB0eXBlIG1peGVkIHdpdGggYW5vdGhlciB0eXBlIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMzo0MjoyNiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBleHBsaWNpdGx5IGNhc3QgdG8gdGhlIHJpZ2h0IGVudW0gdHlwZXMKCSAgRml4ZXMgd2FybmluZyAjMTg4OiBlbnVtZXJhdGVkIHR5cGUgbWl4ZWQgd2l0aCBhbm90aGVyIHR5cGUgcmVwb3J0ZWQgYnkgSUNDLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MjY1CgoyMDExLTA4LTA5IDIzOjMzOjQzICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZ3N0ZXJyb3I6IGV4cGxpY2l0bHkgY2FzdCB0byB0aGUgcmlnaHQgR3N0R0Vycm9yIGNvZGUgZW51bSB0eXBlcwoJICBGaXhlcyB3YXJuaW5nICMxODg6IGVudW1lcmF0ZWQgdHlwZSBtaXhlZCB3aXRoIGFub3RoZXIgdHlwZSByZXBvcnRlZCBieSBJQ0MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMDkgMjM6MjY6MTMgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IHVzZSBHU1RfU1RBVEVfVk9JRF9QRU5ESU5HIGZvciBHc3RTdGF0ZSBpbnN0ZWFkIG9mIDAKCSAgRml4ZXMgYSB3YXJuaW5nIHJlcG9ydGVkIGJ5IElDQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMjo0ODo1MyArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogZGVmaW5lIEdTVF9DQVBTX0ZMQUdTX05PTkUgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgZW51bWVyYXRpb25zCgkgIFVzZSB0aGVtIHRvIGZpeCB3YXJuaW5ncyB3aGVuIGJ1aWxkaW5nIHdpdGggSUNDLgoJICBBUEk6IEdTVF9DQVBTX0ZMQUdTX05PTkUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NjI2NQoKMjAxMS0wOC0wOSAyMjoyOTo0NCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHVzZSBHc3REZWJ1Z0xldmVsIGVudW0gdHlwZSB0byBmaXggYSB3YXJuaW5nIGJ1aWxkaW5nIHdpdGggSUNDCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYyNjUKCjIwMTEtMDgtMTUgMTY6NDU6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbWFrZSBmaXhhdGUgY2FwcyBiZWhhdmUgbGlrZSBvdGhlciBmdW5jdGlvbnMKCSAgSW5zdGFsbCBhIGRlZmF1bHQgZml4YXRlIGNhcHMgZnVuY3Rpb24gb24gcGFkcyBsaWtlIGFsbCB0aGUgb3RoZXIgcGFkIGZ1bmN0aW9ucy4KCjIwMTEtMDgtMTUgMTY6NDU6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIGZvciBuZXcgc3ltYm9scwoKMjAxMS0wOC0xNSAxNDo0MzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDgtMTUgMTQ6NDA6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgY2FwczogYWRkIGZpeGF0ZSBmdW5jdGlvbgoJICBBZGQgYSBmaXhhdGUgZnVuY3Rpb24gYW5kIHVzZSBpdCBpbiBnc3RwYWQuYwoKMjAxMS0wOC0xNSAxNDozMjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIHN0cnVjdHVyZTogYWRkIGZ1bmN0aW9uIHRvIGZpeGF0ZQoJICBBZGQgYSBmdW5jdGlvbiB0byBmaXhhdGUgYSBzdHJ1Y3R1cmUgYW5kIHVzZSBpdCBmb3IgdGhlIGRlZmF1bHQgZml4YXRlIGZ1bmN0aW9uCgkgIGluIGdzdHBhZC5jLgoKMjAxMS0wOC0xNSAxMzoxNzo0NCArMDIwMCAgR3VpbGxhdW1lIERlc21vdHRlcyA8Z3VpbGxhdW1lLmRlc21vdHRlc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgRmFyc2lnaHQgYW5kIE5pY2Ugc3VwcG9ydAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2NTU3CgoyMDExLTA4LTE1IDE0OjE3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGZpeCBkZWZhdWx0IGFjY2VwdGNhcHMKCSAgTWFrZSB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiBiZWhhdmUgbGlrZSBhbGwgdGhlIG90aGVyIGZ1bmN0aW9ucyB3aXRoIGEgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbi4gRG9uJ3QgdHJ5IHRvIGNoYWluIHVwIHRvIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHdoZW4gaXQgd2FzCgkgIHNldCB0byBOVUxMIGV4cGxpY2l0bHkgYnV0IHJldHVybiBGQUxTRSBpbnN0ZWFkLgoJICBGaXggc29tZSBkb2NzCgoyMDExLTA4LTE1IDEzOjI0OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogZml4IHNvbWUgbWFjcm9zCgkgIFJlbW92ZSBhIHJhdGhlciB1c2xlc3MgbWFjcm8gdG8gY2hlY2sgaWYgYSBwYWQgbW9kZSBpcyBhY3RpdmUgYW5kCgkgIGFkZCBHU1RfUEFEX0lTX0FDVElWRSgpLgoKMjAxMS0wOC0xNSAxMjoxODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wOC0xNSAxMjoxNjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcGFkOiByZW1vdmUgZ3N0X3BhZF9nZXRfbmVnb3RpYXRlZF9jYXBzKCkKCSAgUmVtb3ZlIGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcygpLCBpdCBkb2VzIG5vdCByZWFseSBkbyB3aGF0IGl0IHNheXMsCgkgIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIHJldHVybnMgdGhlIGN1cnJlbnRseSBuZWdvdGlhdGVkIGNhcHMgb24gdGhlIHBhZAoJICBjb3JyZWN0bHkuCgoyMDExLTA4LTEyIDE5OjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGRlYWRsb2NrIGluIGVycm9yIHBhdGgKCSAgRG9uJ3QgbG9jayB0aGUgc2FtZSBsb2NrIHR3aWNlLiBTcG90dGVkIGJ5IEpvc2VwIFRvcnJlIFZhbGxlcy4KCjIwMTEtMDgtMTIgMTI6NDU6MDEgKzAzMDAgIFBldGVyaXMgS3Jpc2phbmlzIDxwZWNpc2tAZ21haWwuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBGaXggZ3N0X2l0ZXJhdG9yX25leHQoKSBlbGVtZW50IGFubm90YXRpb24KCjIwMTEtMDgtMTEgMDk6MzE6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBkb2NzOiBmaXggdHlwbyBpbiBQV0cKCSAgUkJHIC0+IFJHQi4gU3BvdHRlZCBieSBXaWxsIFRob21wc29uLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MzI2CgoyMDExLTA4LTExIDEwOjA5OjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiByZW1vdmVkIG5vbi1zZW5zZSBjb21tZW50CgoyMDExLTA4LTEwIDE3OjA3OjU0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9tYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmMKCSAgZ3N0L2dzdGVsZW1lbnRkZXRhaWxzLmgKCSAgZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmMKCSAgdG9vbHMvZ3N0LXJ1bi5jCgoyMDExLTA4LTA4IDE5OjM2OjA0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGRldGFpbHMuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBtb3ZlIHV0Zi04IHZhbGlkYXRpb24gdG8gcmVnaXN0cnkgc2F2aW5nIHRpbWUKCSAgSW5zdGVhZCBvZiBjaGVja2luZyBmb3IgdmFsaWQgdXRmLTggZWxlbWVudC1kZXRhaWxzIGV2ZXJ5IHRpbWUgd2UgY3JlYXRlCgkgIGVsZW1lbnRzIChmcm9tIHBsdWdpbi1pbml0IG9yIHJlZ2lzdHJ5KSwgZG8gaXQgYmVmb3JlIHdlIHNhdmUgdGhlIHJlZ2lzdHJ5LgoJICBGaXhlcyAjNjU2MTkzLgoKMjAxMS0wOC0xMCAxMTowMTo1OCArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIEZpeCBhbmQgY2xhcmlmeSBkZWJ1ZyBzdGF0ZW1lbnRzCgkgIEZpeGVzIGJ1aWxkIG9uIE1hY09TWAoJICBTaWduZWQtb2ZmLWJ5OiBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCjIwMTEtMDgtMDUgMTA6NTk6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IENsYXJpZnkgZG9jCgoyMDExLTA4LTA3IDA5OjE0OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgZG9jczogZml4IGhlbGxvd29ybGQgY29tcGlsZSBjb21tYW5kIGxpbmUgZm9yIG5ld2VyIGdjYwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MDkyCgoyMDExLTA4LTA2IDE4OjIwOjUxICswMjAwICBTaGF1biBIb29wZXMgPGhvb3BlczAxQHN0dWRlbnQudXdhLmVkdS5hdT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IGltcHJvdmUgZG90IGZpbGUgZmxvdyBsYXlvdXQKCSAgSXRlcmF0ZSBzb3VyY2UtIGFuZCBzaW5rLXBhZHMgc2VwYXJhdGVseSB0byBlbnN1cmUgdGhhdCB0aGUgZ3JhcGggcmVmbGVjdHMgdGhlCgkgIHVwc3RyZWFtL2Rvd25zdHJlYW0gb3JkZXIuIEZpeGVzICM2NDMyNjkKCjIwMTEtMDgtMDYgMTQ6MTc6NTAgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZ3N0cmVhbWVyLnNwZWM6IG1ha2UgYnVpbGRhYmxlIGFuZCBwYXJhbGxlbAoKMjAxMS0wOC0wNSAxMjoxMjozMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtcnVuLmM6CgkgIHRvb2xzOiBtYWtlIHVudmVyc2lvbmVkIHdyYXBwZXIgbG9vayBmb3IgLTAuMTAgdG9vbHMgb25seQoJICBEb24ndCB3YW50IChpbmNvbXBhdGlibGUpIDAuMTEgdG9vbHMgdG8gYmUgcGlja2VkIHVwIGJ5IGFjY2lkZW50LgoKMjAxMS0wOC0wNCAxODowMDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogYWRkIGFsbG9jIHZtZXRob2QKCSAgTWFrZSBhbiBhbGxvYyB2bWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgb3IgY2FsbCB0aGUgZGVmYXVsdAoJICBpbXBsZW1lbnRhdGlvbiB3aGVuIHRoZXkgd2FudC4KCjIwMTEtMDgtMDQgMTc6MjY6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wOC0wNCAxNzoxMjo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBjbGVhbnVwcyBhbmQgbWFyayByZWNvbmZpZ3VyZQoJICBEb24ndCBhYnVzZSB0aGUgcmVzdWx0IHZhcmlhYmxlLgoJICBNYXJrIHRoZSBzcmNwYWQgd2l0aCBhIHJlY29uZmlndXJlIHNvIHRoYXQgbmVnb3RpYXRpb24gaGFwcGVucy4KCjIwMTEtMDgtMDQgMTc6MTI6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgbWV0aG9kIHRvIG1hcmsgcmVjb25maWd1cmUKCjIwMTEtMDgtMDQgMTY6NTY6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogcmVtb3ZlIG5lZ290aWF0aW9uIGZyb20gdGhlIHN0YXRlIGNoYW5nZQoJICBSZW1vdmUgdGhlIG5lZ290aWF0aW9uIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiwgaXQgY2F1c2VzIGRhdGEgdHJhbnNmZXIKCSAgYW5kIGJ1ZmZlcnBvb2wgbmVnb3RpYXRpb24sIHdoaWNoIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBkb25lLiBTaW5jZSB3ZSBoYXZlIHRoZQoJICByZWNvbmZpZ3VyZSBzdGF0ZSBvbiB0aGUgcGFkLCB0aGUgY3JlYXRlIGZ1bmN0aW9uIHdpbGwgZG8gdGhlIG5lZ290aWF0aW9uIGFzCgkgIHNvb24gYXMgaXQgZ2V0cyBpbiB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCjIwMTEtMDgtMDQgMTY6MzQ6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGV4cG9zZSBzZXRfY2FwcyBtZXRob2QKCSAgRXhwb3NlIGEgcHJldmlvdXNseSBzdGF0aWMgbWV0aG9kIHNvIHRoYXQgY3VzdG9tIG5lZ290aWF0ZSBpbXBsZW1lbnRhdGlvbiBjYW4KCSAgY2FsbCBpdCBhbmQgZG8gdGhlIHJpZ2h0IHRoaW5nLgoKMjAxMS0wOC0wNCAxMzo0ODoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBQQVVTRUQ8LT5QTEFZIGRvZXNuJ3QgY2hhbmdlIHBvb2wgc3RhdGUKCSAgRG9uJ3QgY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgYnVmZmVycG9vbCB3aGVuIGdvaW5nIGJldHdlZW4gUEFVU0VEIGFuZCBQTEFZSU5HLAoJICBpdCB3aWxsIGRlYWxsb2MgYW5kIHJlYWxsb2MgYWxsIGJ1ZmZlcnMsIHdoaWNoIGlzIGNsZWFybHkgdG9vIGludmFzaXZlLiBXZSB3aWxsCgkgIG5lZWQgdG8gYWRkIHNvbWUgb3RoZXIgd2F5IG9mIHVuYmxvY2tpbmcgdGhlIGJ1ZmZlcnBvb2wuCgoyMDExLTA4LTA0IDExOjAwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBmaXggZGVmYXVsdCBhbGlnbm1lbnQKCSAgQSAwIGFsaWdubWVudCBpcyB0aGUgZGVmYXVsdC4KCjIwMTEtMDgtMDQgMTA6NTQ6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogYWRkIGdzdF9idWZmZXJfcG9vbF9pc19hY3RpdmUoKQoKMjAxMS0wOC0wMyAxMTo1Nzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBiYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjExLjAgPT09CgoyMDExLTA4LTAyIDIwOjU1OjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUkVMRUFTRSAwLjExCgoyMDExLTA4LTAzIDExOjA0OjEyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmctdG8tMC4xMTogQWRkIHNlY3Rpb24gYWJvdXQgR3N0SXRlcmF0b3IKCjIwMTEtMDgtMDEgMTg6MTI6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBkb24ndCBhZGQgdGhlIHNhbWUgb3B0aW9uIHR3aWNlCgkgIE1ha2Ugc3VyZSB0aGF0IHdlIG9ubHkgYWRkIGFuIG9wdGlvbiB0byB0aGUgYXJyYXkgb25jZS4KCjIwMTEtMDctMzAgMTQ6MDQ6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVycG9vbDogYWRkIG1ldGhvZCB0byBjaGVjayBmb3IgYW4gb3B0aW9uCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBpZiBhbiBvcHRpb24gaXMgc3VwcG9ydGVkIG9uIHRoZSBidWZmZXJwb29sLgoKMjAxMS0wNy0yOSAxNzoxMDowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBvcHRpb25zIEFQSSB0byBidWZmZXJwb29sCgkgIE1ha2UgaXQgcG9zc2libGUgdG8gcXVlcnkgdGhlIHN1cHBvcnRlZCBvcHRpb25zIG9mIGEgYnVmZmVycG9vbCBhbmQgZW5hYmxlCgkgIG9wdGlvbnMuIFRoaXMgaXMgYSBiaXQgbW9yZSBnZW5lcmljIHRoYW4gdGhlIEFQSSB0byBlbmFibGUgbWV0YWRhdGEuIFRoZSBwdXJwb3NlCgkgIGlzIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gYWRkIG5ldyBjdXN0b20gY29uZmlnIG9wdGlvbnMgdG8gdGhlIGNvbmZpZ3VyYXRpb24gb2YKCSAgdGhlIGJ1ZmZlcnBvb2wgd2hlbiBzdXBwb3J0ZWQuCgoyMDExLTA3LTI4IDEyOjExOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGRvbid0IHVzZSBHX0NPTlNUX1JFVFVSTgoJICBJdCdzIGJlZW4gZGVwcmVjYXRlZCBpbiBuZXdlciBHTGliIHZlcnNpb25zCgoyMDExLTA3LTI4IDEyOjAxOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgbWFudWFsOiB1cGRhdGUgZm9yIHBvc2l0aW9uL2R1cmF0aW9uIHF1ZXJ5IEFQSSBjaGFuZ2UKCjIwMTEtMDctMjcgMDA6Mjg6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIHRlc3RzOiB1cGRhdGUgZm9yIHF1ZXJ5IEFQSSBjaGFuZ2VzCgoyMDExLTA3LTI3IDAwOjI4OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHBsdWdpbnM6IHVwZGF0ZSBmb3IgcXVlcnkgQVBJIGNoYW5nZXMKCjIwMTEtMDctMjcgMDA6MjY6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogdXBkYXRlIGZvciBxdWVyeSBBUEkgY2hhbmdlcwoKMjAxMS0wNy0yNyAwMDoxNzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBnc3Q6IGZpeCBhd2t3YXJkIGRlc3RfZm9ybWF0IGlub3V0IHBhcmFtZXRlciBpbiBxdWVyeSB1dGlsaXR5IGZ1bmN0aW9ucwoJICBUaGUgaWRlYSB3YXMgb3JpZ2luYWxseSB0aGF0IGlmIG9uZSBwYXNzZWQgJmRlc3RfZm10IHdpdGgKCSAgZGVzdF9mbXQ9R1NUX0ZPUk1BVF9ERUZBVUxULCB0aGVuIHRoZSBjb2RlIGFuc3dlcmluZyB0aGUgcXVlcnkKCSAgY291bGQgY2hhbmdlIGRlc3RfZm10IHRvIHRoZSBhY3R1YWwgZGVmYXVsdCBmb3JtYXQgdXNlZC4gSG93ZXZlciwKCSAgaW4gbW9yZSB0aGFuIGhhbGYgYSBkZWNhZGUgb2YgR1N0cmVhbWVyIDAuMTAgbm8gcGllY2Ugb2YgY29kZSBpbgoJICBHU3RyZWFtZXIgaGFzIGV2ZXIgdXNlZCB0aGF0IGZlYXR1cmUsIG5vciBhcmUgdGhlcmUgdGhhdCBtYW55CgkgIHVzZXJzIG9mIHRoaXMgQVBJIHRoYXQgYWN0dWFsbHkgY2hlY2sgd2hldGhlciB0aGUgZm9ybWF0IHJldHVybmVkCgkgIGlzIHRoZSBvcmlnaW5hbCBmb3JtYXQgcGFzc2VkIGJlZm9yZSB1c2luZyB0aGUgdmFsdWVzIHJldHVybmVkLgoJICBBbHNvLCBpdCdzIGp1c3QgYW5ub3lpbmctdG8tdXNlIEFQSSBpbiBpdHMgb3duIHJpZ2h0LgoJICBGb3IgYWxsIHRoZXNlIHJlYXNvbnMsIG1ha2UgaXQgc28gdGhhdCB0aGUgZGVzdGluYXRpb24gZm9ybWF0IGlzCgkgIHBhc3NlZCBkaXJlY3RseSBhbmQgY2FuJ3QgYmUgY2hhbmdlZCBieSB0aGUgZWxlbWVudCBxdWVyaWVkLgoKMjAxMS0wNy0yNyAxMjo1MDozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDctMjcgMTI6NDk6NDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogYWRkIG1vcmUgY29tbWVudHMKCjIwMTEtMDctMjcgMTI6NDU6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zOiBhbHNvIHBhc3MgYWxsb2NhdGlvbiBxdWVyeSBpbiBpbl9wbGFjZQoJICBXaGVuIHdlIGFyZSBkb2luZyBhbiBpbl9wbGFjZSB0cmFuc2Zvcm0sIGRvbid0IGRvIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5IGJ1dCBsZXQKCSAgdGhlIHVwc3RyZWFtIGVsZW1lbnQgZGVjaWRlLgoKMjAxMS0wNy0yNiAyMjo0MTo1OSAtMDcwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy1ncm91cC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYmFzZTogYWRkIG1pc3NpbmcgKG91dCkgYW5ub3RhdGlvbiBmb3IgYnl0ZSByZWFkZXIvd3JpdGVyIGZ1bmN0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU1MzgxCgoyMDExLTA3LTI3IDEwOjA5OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZml4IGctaSBhbm5vdGF0aW9uIGZvciBfY3JlYXRlKCkgYW5kIF9tYWtlKCkgdG8gYWxsb3cgTlVMTCBvYmplY3QgbmFtZXMKCjIwMTEtMDctMjYgMTg6NDg6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSB0aGUgZ2V0Y2FwcyBmdW5jdGlvbgoJICBSZWZhY3RvciBjYWxsaW5nIHRoZSBHRVRDQVBTIGZ1bmN0aW9uIGFuZCBjaGVja3MuCgkgIE1vdmUgdGhlIGZpbHRlciBjb2RlIGluIG9uZSBwbGFjZS4KCSAgV2hlbiB1c2luZyBmaXhlZCBwYWQgY2FwcywgZ2V0IHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBjYXBzIGFuZCB0aGVuIGZhbGxiYWNrCgkgIHRvIHRoZSBHRVRDQVBTIGZ1bmN0aW9uLiBXZSB1c2VkIHRvIHNpbXBseSBpZ25vcmUgdGhlIEdFVENBUFMgZnVuY3Rpb24sIHdoaWNoCgkgIHJlc3VsdGVkIGluIHRyYW5zZm9ybSBlbGVtZW50cyByZXR1cm5pbmcgdGhlIHRlbXBsYXRlIGNhcHMgaW5zdGVhZCBvZiBkb2luZyB0aGUKCSAgY2FwcyB0cmFuc2Zvcm0uCgoyMDExLTA3LTI2IDE1OjQzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG9ubHkgdXBkYXRlIGNhcHMgd2hlbiBjaGFuZ2VkCgkgIE9ubHkgY2FsbCB0aGUgZXZlbnQgZnVuY3Rpb24gd2l0aCB0aGUgY2FwcyBldmVudCB3aGVuIHRoZSBjYXBzIGNoYW5nZWQuCgoyMDExLTA3LTI2IDE0OjM3OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGFkZCBzb21lIG1vcmUgZGVidWcgaW5mbwoKMjAxMS0wNy0yNiAxMjoyMTozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIGJhc2VzaW5rOiBtYWtlIGl0IGVhc3kgdG8gb3ZlcnJpZGUgdGhlIHBhZCBxdWVyeQoJICBBZGQgYSB2bWV0aG9kIHRvIGhhbmRsZSB0aGUgcGFkIHF1ZXJ5LgoJICBJbnN0YWxsIGEgZGVmYXVsdCBoYW5kbGVyIGZvciB0aGUgcGFkIHF1ZXJ5LgoJICBBZGQgYSB2bWV0aG9kIHRvIHNldHVwIHRoZSBhbGxvY2F0aW9uIHByb3BlcnRpZXMuCgkgIFVzZSB0aGUgbmV3IHF1ZXJ5IGZ1bmN0aW9uIGluIGZpbGVzaW5rCgoyMDExLTA3LTI2IDEyOjIwOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IGltcHJvdmUgZG9jcwoKMjAxMS0wNy0yNiAxMjoyMDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgYWxsb2NhdGlvbiBxdWVyeSBqdXN0IGJlY2F1c2UKCjIwMTEtMDctMjUgMTU6MjE6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMS0wNy0yNSAxMjo1MzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogYXZvaWQgcmFjZSBpbiBidWZmZXJwb29sIHJlbGVhc2UKCSAgQXZvaWQgcGxheWluZyB3aXRoIHRoZSByZWZjb3VudCB0byBkZWNpZGUgd2hlbiBhIGJ1ZmZlciBoYXMgYmVlbiByZWN5Y2xlZCBieSB0aGUKCSAgZGlzcG9zZSBmdW5jdGlvbi4gVGhlIHByb2JsZW0gaXMgdGhhdCB3ZSB0aGVuIHRlbXBvcmFyaWx5IGNhbiBoYXZlIGEgYnVmZmVyIHdpdGgKCSAgYSByZWZjb3VudCA+IDEgYmVpbmcgYWNxdWlyZWQgZnJvbSB0aGUgcG9vbCwgd2hpY2ggaXMgbm90IHdyaXRhYmxlLiBJbnN0ZWFkIHVzZQoJICBhIHNpbXBsZSBib29sZWFuIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBkaXNwb3NlIGZ1bmN0aW9uIHRvIGluZm9ybSB0aGUgY2FsbGVkCgkgIHRoYXQgdGhlIG9iamVjdCB3YXMgcmVjeWNsZWQgb3Igbm90LgoKMjAxMS0wNy0yNSAxMjo0OToyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiB1c2UgREVCVUcgaW5zdGVhZCBvZiBFUlJPUiBmb3IgbG9nZ2luZwoJICBEb24ndCB1c2UgdGhlIEVSUk9SIGxvZyBjYXRlZ29yeSBiZWNhdXNlIHRoZSBhbGxvY2F0aW9uIGZhaWx1cmUgbWlnaCBvbmx5IGJlCgkgIGJhY2F1c2Ugb2YgYSBzdGF0ZSBjaGFuZ2UuCgoyMDExLTA3LTI1IDEyOjE0OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogc3RhcnQgd2l0aCByYWlzZWQgY29udHJvbCBzb2NrZXQKCSAgSW4gdGhlIGluYWN0aXZlIHN0YXRlLCB0aGUgY29udHJvbCBzb2NrZXQgc2hvdWxkIGJlIGluIHRoZSByYWlzZWQgc3RhdGUsIHdlIHdpbGwKCSAgcmVsZWFzZSBpdCB3aGVuIHdlIHN0YXJ0LgoKMjAxMS0wNy0yNCAxMToyNDo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtY2xvY2sueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSAgcHdkOiBkaXNjb250aW5vdXMgZXZlbnQgLT4gbmV3c2VnbWVudCBldmVudAoJICBGaXggYSAwLjggbGVmdG92ZXIgYXMgbWVudGlvbmVkIG9uIGJ1ZyAjNjIxMTIxLgoKMjAxMS0wNy0yNCAwOTowNToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHRhbGsgYWJvdXQgdGhlIGJhc2V0cmFuc2Zvcm0gc2lua19ldmVudCB2bWV0aG9kCgoyMDExLTA3LTIzIDA4OjAwOjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgY29udHJvbGxlcjogZml4IGJ1aWxkIGZhaWx1cmUgZHVlIHRvIGNvbXBpbGVyIHdhcm5pbmcKCSAgUHJlc3VtYWJseSB3aXRoIG5ld2VyIEdMaWIgdmVyc2lvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NTE1NQoKMjAxMS0wNy0yMiAyMToxNzo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggc2luayBldmVudCBoYW5kbGluZwoJICBJbXBsZW1lbnQgdGhlIHNpbmsgZXZlbnQgaGFuZGxpbmcgbGlrZSB0aGUgc3JjIGV2ZW50IGhhbmRsZXIuIE1ha2UgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gcGFyc2UgYW5kIGZvcndhcmQgdGhlIGV2ZW50LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5CgkgIHJldHVybiBhbiBlcnJvciB2YWx1ZSBmcm9tIHRoZSBldmVudCBoYW5kbGVyLgoKMjAxMS0wNy0yMiAxOToxOTo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBoYW5kbGUgZmFpbHVyZXMKCSAgSGFuZGxlIGZhaWx1cmUgdG8gYWN0aXZhdGUgdGhlIGJ1ZmZlcnBvb2wuCgoyMDExLTA3LTIyIDE5OjExOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogaW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDExLTA3LTIxIDE4OjUwOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogYWRkIHJlc2V0X2J1ZmZlciB2bWV0aG9kCgkgIEFkZCBhIHZtZXRob2QgdG8gcmVzZXQgYSBidWZmZXIgdG8gaXRzIG9yaWdpbmFsIHN0YXRlLiBBZGQgYSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uIHRoYXQgcmVzZXRzIHRoZSBmbGFncywgdGltZXN0YW1wcyBhbmQgb2Zmc2V0cy4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzLgoKMjAxMS0wNy0yMSAxNzo0MjowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgYmFzZXRyYW5zOiBSZW1vdmUgcmVmIGluIHBhc3N0aHJvdWdoCgkgIFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgdG8gaGF2ZSB0byByZXR1cm4gYSByZWYgdG8gdGhlIGlucHV0IGJ1ZmZlciB3aGVuIGluCgkgIHBhc3N0aHJvdWdoIG1vZGUuIFRoaXMgc2F2ZXMgYSBmZXcgcmVmL3VucmVmIGN5Y2xlcyBhbmQgZml4ZXMgYW5vdGhlciAwLjExCgkgIEZJWE1FLgoKMjAxMS0wNy0yMSAxNzoyOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogbWFrZSBuZXcgIGNvcHlfbWV0YWRhdGEgdm1ldGhvZAoJICBNYWtlIGEgbmV3IGNvcHlfbWV0YWRhdGEgdm1ldGhvZCBhbmQgbW92ZSB0aGUgY29kZSB0byBjb3B5IHRoZSB0aW1lc3RhbXBzLCBmbGFncwoJICBhbmQgb2Zmc2V0cyBpbnRvIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIGdpdmUgdGhlCgkgIHN1YmNsYXNzZXMgYSBjaGFuY2UgdG8gb3ZlcnJpZGUgdGhlIGNvcHkgbWV0aG9kLgoKMjAxMS0wNy0yMSAxNjo0OToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYwoKMjAxMS0wNy0yMSAxNjozOTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnM6IGF2b2lkIGludGVybWVkaWF0ZSBtZXRob2QKCSAgU2ltcGx5IGNhbGwgdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBtZXRob2QgaW5zdGVhZCBvZiBjYWxsaW5nIGFuIGludGVybWVkaWF0ZQoJICBmdW5jdGlvbi4KCjIwMTEtMDctMjEgMTY6MzA6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogbW92ZSB0aGUgbWV0YWRhdGEgY29weSBjb2RlCgkgIE1vdmUgdGhlIG1ldGFkYXRhIGNvcHkgY29kZSB0byB0aGUgZGVmYXVsdCBwcmVwYXJlX291dHB1dF9idWZmZXIgaW1wbGVtZW50YXRpb24uCgoyMDExLTA3LTIxIDE1OjQ5OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG1vdmUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGNvZGUKCSAgTW92ZSB0aGUgY29kZSBmb3IgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIHRvIGEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4gdGhpcyBhbGxvd3MKCSAgdXMgdG8gc2ltcGxpZnkgc29tZSB0aGluZ3MgYW5kIGhhdmUgc3ViY2xhc3NlcyBjYWxsIGludG8gdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gd2hlbiBuZWVkZWQuCgoyMDExLTA3LTIxIDE1OjQ4OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IG9ubHkgZ2V0IHNpemUgZm9yIGRlYnVnCgoyMDExLTA3LTIxIDE0OjE4OjMwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuczogZml4IGNvbW1lbnQgYW5kIHdhcm4KCSAgRW1pdCBhIHdhcm5pbmcgaW4gdGhlIGRlYnVnIGxvZyB3aGVuIHNvbWV0aGluZyBzZWVtcyB3ZWlyZC4KCjIwMTEtMDctMjEgMTQ6MTQ6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb25seSBnZXQgY2FwcyBmb3Igc2l6ZSB0cmFuc2Zvcm0KCSAgRGVsYXkgZ2V0dGluZyB0aGUgY2FwcyB1bnRpbCB3ZSBuZWVkIHRvIGNhbGwgdGhlIHRyYW5zZm9ybV9zaXplIGZ1bmN0aW9uLgoKMjAxMS0wNy0yMSAxMzo1NjoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgYmFzZXRyYW5zOiByZW1vdmUgdXNlbGVzcyB2YXJpYWJsZXMgZnJvbSBwcmVwYXJlX291dHB1dF9idWZmZXIKCSAgUmVtb3ZlIHRoZSBjYXBzIGFuZCBzaXplIGZyb20gdGhlIHByZXBhcmVfb3V0cHV0X2J1ZmZlciBmdW5jdGlvbi4gd2l0aAoJICBidWZmZXJwb29scyBhbmQgY2Fwc25lZ28gZG9uZSBkaWZmZXJlbnRseSwgd2UgZG9uJ3QgbmVlZCB0aGlzIGluIG1vc3QgY2FzZXMgYW5kCgkgIGlmIHdlIGRvLCB3ZSBjYW4gc2ltcGx5IHVzZSB0aGUgdHJhbnNmb3JtX3NpemUgZnVuY3Rpb24gYW5kIGdldCB0aGUgY2FwcyBmcm9tCgkgIHRoZSBzcmNwYWQuCgoyMDExLTA3LTE4IDE3OjIyOjQxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICBkb2NzOiBjbGFyaWZ5IGNsb2NrcyBkb2NzIGluIG1hbnVhbAoJICBBZnRlciBhIHF1ZXN0aW9uIG9uIHRoZSBtYWlsaW5nIGxpc3QsIG1lbnRpb24gdGhhdCAqZmx1c2hpbmcqIHNlZWtzIHJlc2V0IHRoZQoJICBydW5uaW5nIHRpbWUuCgoyMDExLTA3LTE2IDIyOjAwOjE1ICswMzAwICBSYWx1Y2EgRWxlbmEgUG9kaXVjIDxyYWx1Y2FlbGVuYTE5ODVAZ21haWwuY29tPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIGRvY3M6IHJlbW92ZWQgZG91YmxlIG5lZ2F0aW9uIGluIGV2ZW50L21lc3NhZ2Ugc2VxIG51bSBkZXNjcmlwdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0NzUxCgoyMDExLTA3LTE2IDEyOjIxOjEyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgdGVzdHM6IG1ha2Ugc3VyZSBub24tQVNDSUkgY2hhcnMgaW4gZmlsZW5hbWVzIGFyZSBlc2NhcGVkIHdoZW4gY3JlYXRpbmcgVVJJcyBmcm9tIHRoZW0KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDY3MwoKMjAxMS0wNy0xNSAxNjowNDoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBhY2NpZGVudGFsbHkgZGlzYWJsZSB0aGUgcG9vbAoJICBXaGVuIHdlIHNldCBhIHBvb2wgYW5kIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBvbGQgcG9vbCwgZG9uJ3QgZGlzYWJsZSB0aGUgcG9vbC4KCjIwMTEtMDctMTUgMTM6Mjc6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBjYWxsIHJlbGVhc2VfYnVmZmVyIGFmdGVyIGFsbG9jCgkgIEFmdGVyIHdlIGFsbG9jYXRlZCBhIG5ldyBidWZmZXIsIGNhbGwgdGhlIHJlbGVhc2VfYnVmZmVyIHZtZXRob2QgdG8gcHV0IHRoZSBuZXcKCSAgYnVmZmVyIGluIHRoZSBwb29sIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhhdCB0aGUgcG9vbCB1c2VzIHRoZSBkZWZhdWx0CgkgIHJlbGVhc2VfbWV0aG9kIGltcGxlbWVudGF0aW9uLgoKMjAxMS0wNy0xNSAxMTo1MjoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBtYWNybyB0byBjaGVjayBmb3IgZmx1c2hpbmcKCjIwMTEtMDctMTUgMTE6NTE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogaW1wcm92ZSBkZWJ1ZyBtZXNzYWdlCgoyMDExLTA3LTE0IDEyOjQ1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHByaW50ZiBmb3JtYXQgaW4gZGVidWcgbWVzc2FnZQoKMjAxMS0wNy0xMyAxMTozOToxNSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1bnNldCBQTEFZSU5HIHRyYW5zaXRpb24gZmxhZyB3aGVuIHRyYW5zaXRpb24gY29tcGxldGVkCgoyMDExLTA3LTEyIDE0OjA3OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCByZXNpemUgZnVuY3Rpb24gc29tZSBtb3JlCgkgIERvbid0IHJlbW92ZSBtZW1vcnkgYmxvY2tzIGZyb20gdGhlIGJ1ZmZlciB3aGVuIHdlIGNsaXAgYW5kIHJlc2l6ZSwgaW5zdGVhZCBzZXQKCSAgdGhlIG1lbW9yeSBvZmZzZXQgYW5kIHNpemUgdG8gMC4gVGhpcyBhbGxvd3MgdXMgdG8gbWFrZSB0aGUgYnVmZmVyIGxhcmdlciBhZ2FpbgoJICBsYXRlci4KCjIwMTEtMDctMTIgMTM6NDA6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXByb3ZlIHNpemUgaGFuZGxpbmcKCSAgQWxzbyBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgbXVsdGlwbGUgZW1wdHkgbWVtb3J5IGJsb2NrcyBhcmUgaW4gdGhlIGJ1ZmZlci4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhpcy4KCjIwMTEtMDctMTIgMTI6MDA6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggX3Jlc2l6ZSBzb21lIG1vcmUKCSAgQWRkIG1vcmUgZGVidWcuCgkgIEFsb3cgcmVzaXplIHRvIDAgYnl0ZXMuCgkgIERvIGNsaXBwaW5nIGNvcnJlY3RseS4KCSAgQWRkIG1vcmUgdW5pdCB0ZXN0cy4gQWxzbyBhZGQgYSBmYWlsaW5nIHRlc3Q6IHdoZW4gd2UgcmVzaXplIHRvIDAgYW5kIHRoZW4KCSAgdHJ5IHRvIHJlc2l6ZSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBzaXplIGl0IGZhaWxzIGJlY2F1c2UgdGhlIG1lbW9yeSB3YXMKCSAgcmVtb3ZlZC4KCjIwMTEtMDctMTEgMTg6MDA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IG5lZ2F0aXZlIG9mZnNldHMgc29tZSBtb3JlCgkgIEFsbG93IGZvciBuZWdhdGl2ZSBvZmZzZXRzIHdoZW4gZG9pbmcgbWVtb3J5IGNvcHkgYW5kIHNoYXJlLgoJICBBZGQgZmFzdCBwYXRoIGluIHRoZSBfZ2V0X3NpemVzKCkgZnVuY3Rpb24uCgkgIEZpeCByZXNpemUgZm9yIG5lZ2F0aXZlIG9mZnNldCBhbmQgZXhwYW5kaW5nIHRoZSBidWZmZXIuCgkgIEFkZCBzb21lIHVuaXQgdGVzdHMuCgoyMDExLTA3LTExIDE2OjQzOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBkZWZzIGZvciBuZXcgbWV0aG9kcwoKMjAxMS0wNy0xMSAxNjo0Mjo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggX3Jlc2l6ZSBiZXR0ZXIKCjIwMTEtMDctMTEgMTY6MTc6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGFkZCBhcGkgdG8gZ2V0IHRoZSBjdXJyZW50IG1lbW9yeSBvZmZzZXQKCSAgQWxzbyByZXR1cm4gdGhlIG9mZnNldCBpbiBhIEdzdE1lbW9yeSBibG9jayB3aXRoIHRoZSBnZXRfc2l6ZXMoKSBtZXRob2QuIFRoaXMKCSAgYWxsb3dzIHVzIHRvIGZpZ3VyZSBvdXQgaG93IG11Y2ggcHJlZml4IHRoZXJlIGlzIHVudXNlZC4KCSAgQ2hhbmdlIHRoZSByZXNpemUgZnVuY3Rpb24gc28gdGhhdCBhIG5lZ2F0aXZlIG9mZnNldCBjYW4gYmUgZ2l2ZW4uIFRoaXMgd291bGQKCSAgbWFrZSBpdCBwb3NzaWJsZSB0byByZXNpemUgdGhlIGJ1ZmZlciBzbyB0aGF0IHRoZSBwcmVmaXggYmVjb21lcyBhdmFpbGFibGUuCgkgIEFkZCBnc3RfYnVmZmVyX2dldF9zaXplcygpIHRvIHJldHVybiB0aGUgb2Zmc2V0IGFuZCBtYXhzaXplIGFzIHdlbGwgYXMgdGhlIHNpemUuCgkgIEFsc28gY2hhbmdlIHRoZSBidWZmZXIgcmVzaXplIG1ldGhvZCBzbyB0aGF0IHdlIGNhbiBzcGVjaWZ5IGEgbmVnYXRpdmUgb2Zmc2V0CgkgIHRvIHJlbW92ZSBwcmVmaXggYnl0ZXMuCgoyMDExLTA3LTExIDE0OjQwOjA3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBzb21lIG1lbW9yeSB3cmFwcGVkIGJ1ZmZlciBhbGxvY2F0aW9uIGhlbHBlcnMKCjIwMTEtMDctMTEgMTI6MTE6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBjbGVhbnVwIGhlYWRlcnMKCjIwMTEtMDctMTEgMTE6NDA6MDggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlYXQgaW5jb21pbmcgY2FwcyBldmVudAoJICAuLi4gYXMgaXQgaXMgdHlwaWNhbGx5IHVwIHRvIGJhc2VjbGFzcyB0byBzZXQgcHJvcGVyIHNyYyBjYXBzLgoKMjAxMS0wNy0xMSAxMTozNzoyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYXZvaWQgaW5hZHZlcnRlbnRseSBkcm9wcGluZyBhbiBldmVudAoJICAuLi4gcGFydGljdWxhcmx5IGEgbm9uLXN0aWNreSBzZXJpYWxpemVkIGV2ZW50IHRoYXQgaGFwcGVucyB0byBwYXNzCgkgIHdoZW4gYW4gZXZlbnQgdXBkYXRlIGlzIHBlbmRpbmcuCgoyMDExLTA3LTA0IDEyOjU4OjU0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHRyeSBoYXJkZXIgdG8gYXJyYW5nZSBpbmNyZWFzaW5nIHBvc2l0aW9uIHJlcG9ydGluZwoJICAuLi4gcmF0aGVyIHRoYW4gaGF2aW5nIGEgbW9tZW50YXJ5IGRlY3JlYXNpbmcgb25lIHdoaWxlIHRyYW5zaXRpb25pbmcKCSAgdG8gUExBWUlORy4KCSAgRml4ZXMgIzYyODAyMS4KCjIwMTEtMDctMDggMTY6MDc6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEFQSSB0byAuZGVmIGZpbGUKCjIwMTEtMDctMDYgMTU6MTM6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogbWFrZSBpZHggYXJndW1lbnQgdG8gZ3N0X2J1ZmZlcl90YWtlX21lbW9yeSgpIHNpZ25lZAoJICBTaW5jZSAtMSBpcyBhY2NlcHRhYmxlLCBpdCBzaG91bGQgYmUgc2lnbmVkLgoKMjAxMS0wNy0wNyAxNDo1NzoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MgaW4gZGVidWcgbWVzc2FnZXMKCSAgRG9uJ3QgdXNlIGJ1ZmZlcnMgdGhhdCB3ZSd2ZSBnaXZlbiBhd2F5IG9yIHVucmVmZWQgaW4gZGVidWcgbWVzc2FnZXMuCgoyMDExLTA3LTA3IDExOjE0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGZpeCBhZnRlciBtZXJnZQoKMjAxMS0wNy0wNyAxMToxMzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYwoKMjAxMS0wNy0wNiAxNjowODo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBtZW1zZXQgZnVuY3Rpb24KCjIwMTEtMDctMDYgMTI6MDk6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCBndWFyZHMgZm9yIGdzdF9idWZmZXJfdGFrZV9tZW1vcnkoKQoJICBTaW5jZSBpZHggPSAtMSBtYWtlcyBpdCBkZWZhdWx0IHRvIGlkeD1sZW4sIGxlbiBpcyBhbHNvCgkgIGEgdmFsaWQgaW5wdXQgaWR4LgoKMjAxMS0wNy0wNSAxNjozODowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgY2xhc3MgcmVmL3VucmVmCgoyMDExLTA3LTA1IDE2OjMyOjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIHRlc3Q6IGRpc2FibGUgZmFpbGluZyB1bml0IHRlc3RzCgkgIERpc2FibGUgdW5pdCB0ZXN0cyB0aGF0IGFyZSBmYWlsaW5nIHVudGlsIHNvbWVvbmUgcG9ydHMgdGhpcyB0byAwLjExCgoyMDExLTA3LTA1IDE2OjIwOjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogZml4IHVuaXQgdGVzdAoJICBTZXQgdGhlIHJpZ2h0IHBvc2l0aW9uIG1lbWJlciBpbiB0aGUgc2VnbWVudCBldmVudC4KCSAgQWRkIHNvbWUgZGVidWcgdG8gcXVldWUuCgoyMDExLTA3LTA1IDAwOjEwOjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBtYWtlIGNvbXBpbGVyIHdhcm4gYWJvdXQgdW5zdGFibGUgQVBJIGlmIEdTVF9VU0VfVU5TVEFCTEVfQVBJIGlzIG5vdCBkZWZpbmVkCgkgIEFuZCBkZWZpbmUgaXQgaW4gb3VyIG93biBidWlsZC4KCjIwMTEtMDctMDUgMDA6MTI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiB1cGRhdGUgLmRlZiBmaWxlcyBmb3IgbGF0ZXN0IEFQSSBjaGFuZ2VzL2FkZGl0aW9ucwoKMjAxMS0wNi0zMCAxNzozOTozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG8gbm90IHNuZWFraWx5IG1lc3Mgd2l0aCBjdXJyZW50IG9mZnNldCB3aGVuIHVwZGF0aW5nIGxlbmd0aAoKMjAxMS0wNi0yOCAyMjoxODo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogdW5yZWYgYWxsb2NhdGlvbiBxdWVyeSB3aGVuIG5vIGxvbmdlciBuZWVkZWQKCjIwMTEtMDYtMjggMTk6MDE6NTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGF2b2lkIGl0ZXJhdGluZyBvdmVyIGEgc2luZ2xlIE5VTEwgcGFkCgoyMDExLTA2LTIwIDIzOjI4OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdGludGVyZmFjZS5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbnRlcmZhY2UuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjNjQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9zcGFyYy5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBSZW1vdmUgR3N0SW1wbGVtZW50c0ludGVyZmFjZQoJICBJdCB3YXMgYSBiaXQgdG9vIGNsZXZlciwgYW5kIGRpZG4ndCByZWFsbHkgd29yayBhcyBhbiBBUEksCgkgIGNvbmZ1c2luZyBwZW9wbGUgdG8gbm8gZW5kLiBCZXR0ZXIgaW1wbGVtZW50IHNwZWNpZmljIG1ldGhvZHMKCSAgd2hldGhlciBhbiBpbnRlcmZhY2UgaXMgdXNhYmxlL2F2YWlsYWJsZS9yZWFkeSBvbiB0aGUgaW50ZXJmYWNlCgkgIGl0c2VsZiwgb3IgZXZlbiBhZGQgR0Vycm9yIGFyZ3VtZW50cywgcmF0aGVyIHRoYW4gdHJ5IHRvIGhhdmUKCSAgcGVyLWluc3RhbmNlIGludGVyZmFjZXMuCgoyMDExLTA2LTI1IDEzOjUxOjUyIC0wNzAwICBFbW1hbnVlbCBQYWNhdWQgPGVtbWFudWVsLnBhY2F1ZEBsYXBwLmluMnAzLmZyPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogQ2hlY2sgZm9yIFBSX1NFVF9OQU1FIGJlZm9yZSB1c2luZwoJICBGaXhlczogIzY1MzE3Mi4KCSAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoyMDExLTA2LTIzIDExOjI3OjUyIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNjliOTgxZiB0byA2MDVjZDlhCgoyMDExLTA2LTIzIDE4OjAzOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIG1ldGhvZCB0byBjaGVjayBmb3IgbWV0YWRhdGEKCSAgQWRkIGEgbWV0aG9kIHRvIGNoZWNrIGlmIGEgY2VydGFpbiBtZXRhZGF0YSBpcyBzdXBwb3J0ZWQgaW4gdGhlIEFMTE9DQVRJT04KCSAgcXVlcnkuCgoyMDExLTA2LTIyIDE4OjA3OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSAgZG9jczogdXBkYXRlIGRlc2lnbiBkb2NzIGEgbGl0dGxlCgkgIFVwZGF0ZSB0aGUgZGVzaWduIGRvYyB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB2aWRlb21ldGFkYXRhLgoKMjAxMS0wNi0yMiAxNzoxMjozNCArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IHVzZSAmIGluc3RlYWQgb2YgJiYgZm9yIG1hc2tpbmcgYml0cwoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNzowOTo1MiArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVtb3ZlIHJlZHVuZGFudCAoKQoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNzowNToyNyArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCBzZWVrc3RvcAoJICBTZWUgIzY1MzEzNwoKMjAxMS0wNi0yMiAxNjo1ODo1MyArMDIwMCAgS29vcCBNYXN0IDxrd20gYXQgRnJlZUJTRC5vcmc+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBjYXN0IHRvIHJpZ2h0IHR5cGUKCSAgU2VlICM2NTMxMzcKCjIwMTEtMDYtMjIgMTY6Mzg6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgdXJpOiByZW1vdmUgc29tZSBfZnVsbCB2YXJpYW50cwoKMjAxMS0wNi0yMiAxNjoxNjo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHRhZ3M6IFJlbW92ZSBjcmF6eSB0YWcgbWVzc2FnZXMKCSAgRG9uJ3QgbWl4IG1lc3NhZ2VzIGFuZCBwYWRzIGFuZCB0YWdzLgoJICBNYWtlIHRoZSBzaW5rIHBvc3QgdGFnIG1lc3NhZ2VzIHdoZW4gYSB0YWcgZXZlbnQgaXMgcmVjZWl2ZWQuCgkgIFNpbmNlIHRhZ3MgYXJlIHN0aWNreSBvbiBwYWRzIG5vdywgdGhleSBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlcmUKCSAgd2hlbiBuZWVkZWQuCgoyMDExLTA2LTIyIDEyOjI4OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGNhcHM6IEhpZGUgaW1wbGVtZW50YXRpb24gZGV0YWlscwoJICBNYWtlIHRoZSBBcnJheSBvZiBzdHJ1Y3R1cmVzIHByaXZhdGUuIFRoaXMgc2hvdWxkIGFsbG93IHVzIHRvIGltcGxlbWVudAoJICB0aGUgYXJyYXkgbW9yZSBlZmZpY2llbnRseSBvciB3aXRoIHNvbWUgcHJlYWxsb2NhdGVkIHN0cnVjdHVyZXMgd2hlbgoJICB3ZSB3YW50IHRvIGxhdGVyLgoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIGNsZWFuIHVwIGEgc3RhdGljIHN0cnVjdHVyZSBzbyB0aGF0IHdlIGNhbiByZW1vdmUgc29tZSBjb2RlCgkgIHRoYXQgcG9rZXMgaW50byB0aGUgcHJpdmF0ZSBiaXRzIG9mIHRoZSBjYXBzLgoKMjAxMS0wNi0yMiAxMjoyNjoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiB1cGRhdGUgbmVnb3RpYXRpb24gZGVzaWduIGRvYwoKMjAxMS0wNi0yMiAxMTo0Mjo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBtZW1vcnk6IHJlbmFtZSBHc3RNZW1vcnlBbGxvY2F0b3IgLT4gR3N0QWxsb2NhdG9yCgkgIHNpbXBsaWZ5IHRoZSBuYW1lIG9mIHRoZSBhbGxvY2F0b3Igb2JqZWN0LgoKMjAxMS0wNi0yMSAxNzo1NDozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oCgkgIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmgKCjIwMTEtMDYtMjEgMTc6NDc6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkZXNpZ24gZG9jCgoyMDExLTA2LTIxIDE3OjQ3OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGltcHJvdmUgZGVidWdnaW5nCgoyMDExLTA2LTIxIDE1OjE1OjQ0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSAgaW1hZ2VzOiBzdHJpcCBpbWFnZXMgb2YgZXh0cmEgdGV4dCB0YWdzCgoyMDExLTA2LTIxIDEyOjMyOjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogcmV0dXJuIGVtcHR5IG1ldGFkYXRhIGFycmF5CgkgIFJldHVybiBhIHN0cmluZyBhcnJheSB3aXRoIE5VTEwgaW5zdGVhZCBvZiBOVUxMIGZyb20gdGhlIGRlZmF1bHQgZ2V0X21ldGFzCgkgIGZ1bmN0aW9uLgoKMjAxMS0wNi0yMSAxMjozMTo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiB1c2UgZXZlbnQgZnVuY3Rpb24gZGlyZWN0bHkKCSAgV2Ugd2lsbCBuZXZlciBnbyBpbiB0aGlzIGNvZGUgcGF0aCBmb3IgQ0FQUyBldmVudHMgc28gZGlyZWN0bHkgY2FsbCB0aGUgZXZlbnQKCSAgZnVuY3Rpb24uCgoyMDExLTA2LTIxIDEwOjI5OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG5vdGlmeSBjYXBzIGFmdGVyIHdlIHN0b3JlIHRoZSBuZXcgY2FwcwoJICBub3RpZnkgY2FwcyBhZnRlciB3ZSBzdG9yZSB0aGUgbmV3IGNhcHMgc28gdGhhdCB0aGUgbmV3IGNhcHMgYXJlIGFjdHVhbGx5CgkgIHZpc2libGUgZm9yIHRoZSBhcHAuCgoyMDExLTA2LTIwIDE3OjMyOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGFjdGl2YXRlIHRoZSBidWZmZXJwb29sCgkgIGFsd2F5cyBhY3RpdmF0ZSB0aGUgYnVmZmVycG9vbCwgZXZlbiBpZiB3ZSBnZXQgaXQgZnJvbSB0aGUgYWxsb2NhdGlvbgoJICBxdWVyeS4KCjIwMTEtMDYtMjAgMTc6MzI6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYWx3YXlzIGFjdGl2YXRlIHRoZSBwb29sIHdlIGdldAoJICBBY3RpdmF0ZSB0aGUgcG9vbCB3aGVuIHdlIGdldCBpdCBmcm9tIHRoZSBhbGxvY2F0aW9uIHF1ZXJ5LgoKMjAxMS0wNi0yMCAxNjo0Nzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogaW5wcm92ZSBhbGxvY2F0aW9uIGhhbmRsaW5nCgkgIEFkZCB2bWV0aG9kIGZvciBzdWJjbGFzc2VzIHRvIGluZmx1ZW5jZSB0aGUgcG9vbCBhbmQgYWxsb2NhdG9yLgoJICBMb2cgd2hlbiBxdWVyeSBmYWlscy4KCSAgUmVzcGVjdCBuZWdvdGlhdGVkIGFsbG9jYXRvciBhbmQgYWxpZ25tZW50LgoKMjAxMS0wNi0yMCAxNjo0NjowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBJbXByb3ZlIGxvZ2dpbmcKCSAgTG9nIHdoZW4gdGhpbmdzIGZhaWwuCgkgIEZpeCBhIHF1ZXJ5IGxlYWsuCgoyMDExLTA2LTIwIDE2OjQ0OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBpbXByb3ZlIGRlYnVnCgkgIExvZyBhIGRlYnVnIGxpbmUgd2hlbiB0aGVyZSBpcyBubyB0YXJnZXQgcGFkIGFuZCB3aGVuIHRoaXMgbWFrZXMgdGhlIGRlZmF1bHQKCSAgaW1wbGVtZW50YXRpb24gZmFpbC4KCSAgVGFrZSB0aGUgaW50ZXJuYWwgcGFkcyBkaXJlY3RseSB3aGVuIHdlIGNhbi4KCjIwMTEtMDYtMjAgMTU6NDA6NTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGJ1bXAgcmVxdWlyZWQgR0xpYiB0byAyLjI2CgoyMDExLTA2LTIwIDEzOjI2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogYWRkIGZ1bmN0aW9uIHRvIHNldCBtZXRhZGF0YSBhcGkKCSAgQWRkIGEgZnVuY3Rpb24gdG8gcmV0cmlldmUgYW4gYXJyYXkgb2Ygc3VwcG9ydGVkIG1ldGFkYXRhIGFwaXMgZnJvbSB0aGUgdGhlCgkgIGJ1ZmZlcnBvb2wuCgkgIEFkZCBmdW5jdGlvbnMgdG8gY29uZmlndXJlIGFuZCBxdWVyeSB0aGUgY29uZmlndXJlZCBtZXRhZGF0YSBhcGlzIGluIGEKCSAgYnVmZmVycG9vbCBjb25maWd1cmF0aW9uLgoKMjAxMS0wNi0xOSAxMzoxNToxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogTWlub3IgZml4IHRvIGRvY3MKCSAgQWRkcyBtaXNzaW5nIHBhcmFtZXRlciB0byBkb2NzIG9mIGdzdF9idWZmZXJfY29weV9yZWdpb24KCjIwMTEtMDYtMTggMTc6MzU6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBkb19ldmVudF9hY3Rpb25zCgkgIGRvX2V2ZW50X2FjdGlvbnMgd2FzIGFsd2F5cyB1c2VkIGFzIFRSVUUKCjIwMTEtMDYtMTggMTQ6Mzg6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBCdW1wIGdvYmplY3QtaW50cm9zcGVjdGlvbiByZXF1aXJlbWVudCB0byA+PSAwLjYuOAoJICBGb3IgLS1hZGQtaW5pdC1zZWN0aW9uCgoyMDExLTA2LTE2IDE3OjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIEJ1bXAgZ2l0IHZlcnNpb24gYWZ0ZXIgdW5wbGFubmVkIDAuMTAuMzUgcmVsZWFzZQoJICBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vMC4xMC4zNScKCjIwMTEtMDYtMTQgMTc6NTc6MjEgKzAyMDAgIFBoaWxpcCBKw6RnZW5zdGVkdCA8cGhpbGlwakBvcGVyYS5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBGaXggdHlwbyBpbiBkb2N1bWVudGF0aW9uCgkgIEZpeGVzICM2NTI1NzcuCgoyMDExLTA2LTE2IDEwOjU1OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBSZXZlcnQgInV0aWxzOiByZW1vdmUgc29tZSBtYWNyb3Mgbm93IGluIGdsaWIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZGUyOWFlN2I5MjljZWRiZjZiOTgzOGVhNTNiMDVlZmFiZGNlNGNlNy4KCSAgUmUtYWRkcyBHRkxPQVRfVE9fTEUsIEdGTE9BVF9UT19CRSwgR0RPVUJMRV9UT19MRSwgYW5kIEdET1VCTEVfVE9fQkUuCgkgIFR1cm5zIG91dCB0aGVzZSBhcmVuJ3QgaW4gR0xpYiB5ZXQgYWZlciBhbGwgKHNpbmNlIHdlIGRpZG4ndAoJICBhY3R1YWxseSBvcGVuIGEgYnVnIHRvIGdldCB0aGVtIGFkZGVkLi4pCgo9PT0gcmVsZWFzZSAwLjEwLjM1ID09PQoKMjAxMS0wNi0xNSAxOToxNToyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzUKCSAgVGhpcyBpcyBhbiBhZC1ob2MgcmVsZWFzZSB0aGF0IGlzIGFsbW9zdCBpZGVudGljYWwgdG8gMC4xMC4zNDoKCSAgKiB3b3JrIGFyb3VuZCBHTGliIGF0b21pYyBvcHMgQVBJIGNoYW5nZQoJICAqIHNvbWUgbWlub3Igd2luMzIvbWluZ3cgZml4ZXMKCSAgKiBkb24ndCB1c2UgR19DT05TVF9SRVRVUk4gaW4gcHVibGljIGhlYWRlcnMKCjIwMTEtMDYtMTUgMTY6NTY6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZml4IHJlZmNvdW50aW5nIHByb2JsZW0KCjIwMTEtMDYtMDkgMTc6MTM6MzUgKzAxMDAgIEphdmllciBKYXJkw7NuIDxqamFyZG9uQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSAiY29uc3QiIGluc3RlYWQgR19DT05TVF9SRVRVUk4KCSAgR19DT05TVF9SRVRVUk4gd2lsbCBiZSBkZXByZWNhdGVkIHNvb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIyMTEKCjIwMTEtMDYtMDQgMDA6MzA6MTUgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkgIFdvcmsgYXJvdW5kIGNoYW5nZXMgaW4gZ19hdG9taWMgQVBJCgkgIFNlZSAjNjUxNTE0IGZvciBkZXRhaWxzLiAgSXQncyBhcHBhcmVudGx5IGltcG9zc2libGUgdG8gd3JpdGUgY29kZQoJICB0aGF0IGF2b2lkcyBib3RoIHR5cGUgcHVubmluZyB3YXJuaW5ncyB3aXRoIG9sZCBnX2F0b21pYyBoZWFkZXJzIGFuZAoJICBhc3NlcnRpb25zIGluIHRoZSBuZXcuICBUaHVzLCBtYWNyb3MgYW5kIGEgdmVyc2lvbiBjaGVjay4KCjIwMTEtMDUtMjUgMTM6NDA6MzAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiBQbGFjYXRlIGdjYyBieSBkZWZpbmluZyBFV09VTERCTE9DSyB0byBzb21ldGhpbmcKCjIwMTEtMDUtMjUgMTI6NDc6NTEgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogRml4IFdBS0VfRVZFTlQoKSB0byBiZWhhdmUgcG9zaXhseSBvbiBXaW5kb3dzCgoyMDExLTA2LTE0IDE1OjE4OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSogZG9jcy9yYW5kb20vc3RhdHVzLTAuMTEtMTQtanVuLTIwMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMS0wNi0xMyAxOToxMDowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDYtMTMgMTY6MzE6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2JpdHJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICBidWZmZXI6IGFkZCBpbmRleCB0byBfdGFrZV9tZW1vcnkoKQoJICBBZGQgYW4gaW5kZXggdG8gZ3N0X2J1ZmZlcl90YWtlX21lbW9yeSgpIHNvIHRoYXQgd2UgY2FuIGFsc28gaW5zZXJ0IG1lbW9yeSBhdCBhCgkgIGNlcnRhaW4gb2Zmc2V0LiBUaGlzIGlzIG1vc3RseSBpbnRlcmVzdGluZyB0byBwcmVwZW5kIGEgaGVhZGVyIG1lbW9yeSBibG9jayB0bwoJICB0aGUgYnVmZmVyLgoKMjAxMS0wNi0xMyAxNjozMDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBkb24ndCBmb3J3YXJkIHNjaGVkdWxpbmcgcXVlcnkKCSAgVGhlIHNjaGVkdWxpbmcgcXVlcnkgc2hvdWxkIG5vdCBiZSBmb3J3YXJkZWQsIGJlY2F1c2UgZWxlbWVudHMgbmVlZCB0byBpbXBsZW1lbnQKCSAgc3BlY2lhbCBjb2RlIHRvIGhhbmRsZSBkaWZmZXJlbnQgc2NoZWR1bGluZyBtZXRob2RzLgoKMjAxMS0wNi0xMyAxMjowNzowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIGJhc2VzcmM6IEFsbG9jYXRvciBidWZmZXJzIGZyb20gbmVnb3RpYXRlZCBhbGxvY2F0b3IKCSAgQWxsb2NhdGUgYnVmZmVycyBmcm9tIHRoZSBuZWdvdGlhdGVkIGFsbG9jYXRvciBvciBidWZmZXJwb29sLgoJICBIYW5kbGUgdGhlIHN0YXRlIG9mIHRoZSBidWZmZXJwb29sIHdoZW4gZmx1c2hpbmcuCgkgIEFkZCBmaWxsIG1ldGhvZCB0byBwdXNoc3JjLgoKMjAxMS0wNi0xMyAxMjowNDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMS0wNi0xMyAxMTo1MTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IHNtYWxsIGluZGVudGF0aW9uIGZpeAoKMjAxMS0wNi0xMyAxMTo1MDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHBhc3MgdGhlIGFsbG9jYXRvciBhcyBjb25zdAoKMjAxMS0wNi0xMyAxMDoxOTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogbmVnb3RpYXRlIGFsbG9jYXRpb24KCSAgQWRkIHZtZXRob2QgdG8gY29uZmlndXJlIGFsbG9jYXRpb24gbWV0aG9kcy4KCSAgUmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcwoKMjAxMS0wNi0xMSAyMDo0NTo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogYWRkIHNvbWUgbW9yZSBjaGVja3MKCSAgTWFrZSBzdXJlIHRoYXQgdGhlIGFsaWdubWVudCBpcyB2YWxpZC4KCSAgV2hlbiB3ZSBoYXZlIGEgMCBzaXplICh2YXJpYWJsZSBidWZmZXIgc2l6ZSksIHdlIGNhbid0IGhhdmUgYSBidWZmZXJwb29sLgoKMjAxMS0wNi0xMSAxOTo1NDo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogc2V0IGFsbCBkZWZhdWx0IHZhbHVlcwoJICBGaWxsIGFsbCBxdWVyeSB2YWx1ZXMgd2l0aCBnb29kIGRlZmF1bHRzLgoKMjAxMS0wNi0xMSAxODo1Mjo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBidWZmZXJwb29sOiByZW1vdmUgcG9zdGZpeCBwYXJhbWV0ZXIKCSAgUmVtb3ZlIHRoZSBwb3N0Zml4IHBhcmFtZXRlciwgaXQncyBub3QgdXNlZCBhbmQgY2FuIGJlIGRvbmUgZGlmZmVyZW50bHkuCgoyMDExLTA2LTEwIDE3OjUwOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogdXNlIHNhbWUgYWxpZ25tZW50IHZhbHVlcyBhcyBHc3RNZW1vcnkKCSAgVXNlIHRoZSBzYW1lIGFsaWdubWVudCB2YWx1ZXMgZm9yIHRoZSBidWZmZXJwb29sIGFzIHdlIHVzZSBmb3IgdGhlIEdzdE1lbW9yeQoJICBBUEkuCgoyMDExLTA2LTEwIDE3OjMyOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHVzZSBuZXcgX2NoZWNrX3JlY29uZmlndXJlKCkgbWV0aG9kCgoyMDExLTA2LTEwIDE3OjMyOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogYWRkIF9jaGVja19yZWNvbmZpZ3VyZSgpIG1ldGhvZAoJICBBZGQgYSBtZXRob2QgdG8gY2hlY2sgYW5kIGNsZWFyIHRoZSBSRUNPTkZJR1VSRSBmbGFnIG9uIGEgcGFkLgoKMjAxMS0wNi0xMCAxNjo0NzoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGluIG1lbW9yeQoJICBGaXggdGhlIGNvZGUgdG8gc3VwcG9ydCBhbGxvY2F0aW5nIHRoZSBidWZmZXIgYW5kIG1lbW9yeSBpbiBvbmUgbWVtb3J5IGJsb2NrLgoJICBBZGQgYW4gZXh0cmEgdmFyaWFibGUgdG8gc3RvcmUgdGhlIG1lbW9yeSBvZiB0aGUgYnVmZmVyLgoJICBUaGlzIGNvZGUgaXMgZGlzYWJsZWQgc3RpbGwgYmVjYXVzZSBvZiBjb21wbGljYXRpb25zLgoKMjAxMS0wNi0xMCAxNjo0NjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGV4cG9zZSBkZWZhdWx0IGFsaWdubWVudAoJICBFeHBvcnQgdGhlIGdzdF9tZW1vcnlfYWxpZ25tZW50IHZhcmlhYmxlIHNvIHRoYXQgb3RoZXJzIGNhbiBrbm93IHRoZSBkZWZhdWx0CgkgIGNvbmZpZ3VyZWQgYWxpZ25tZW50IG9mIHRoZSBzeXN0ZW0uCgoyMDExLTA2LTEwIDE2OjE5OjQ2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJICBtZW1vcnk6IGZpeCBpc19zcGFuCgkgIFN1YnRyYWN0IHRoZSBvZmZzZXQgb2YgdGhlIHBhcmVudCBmcm9tIGlzX3NwYW4uCgoyMDExLTA2LTEwIDEzOjU5OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiByZXNwZWN0IGNvbmZpZ3VyZWQgYWxpZ25tZW50CgkgIE1vdmUgdGhlIGFsaWdubWVudCBmcm9tIEdzdEJ1ZmZlciB0byBHc3RNZW1vcnkuCgkgIG1ha2Ugc3VyZSBtZW1vcnkgaXMgYXQgbGVhc3QgYWxpZ25lZCB0byB0aGUgY29uZmlndXJlZCB2YWx1ZXMuCgoyMDExLTA2LTEwIDEzOjQwOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBidWZmZXI6IG1ha2UgbmV3IF9idWZmZXJfYWxsb2NhdGUgbWV0aG9kCgkgIE1ha2UgYSBuZXcgbWV0aG9kIHRvIGFsbG9jYXRlIGEgYnVmZmVyICsgbWVtb3J5IHRoYXQgdGFrZXMgdGhlIGFsbG9jYXRvciBhbmQgdGhlCgkgIGFsaWdubWVudCBhcyBwYXJhbWV0ZXJzLiBQcm92aWRlIGEgbWFjcm8gZm9yIHRoZSBvbGQgbWV0aG9kIGJ1dCBwcmVmZXIgdG8gdXNlCgkgIHRoZSBuZXcgbWV0aG9kIHRvIGVuY291cmFnZSBwbHVnaW5zIHRvIG5lZ290aWF0ZSB0aGUgYWxsb2NhdG9yIHByb3Blcmx5LgoKMjAxMS0wNi0xMCAxMjo0NDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkb2NzOiB1cGRhdGUgZm9yIGdzdF9iYXNlX3NyY19zZXRfZHluYW1pY19zaXplCgkgIEFkZCB0byBzZWN0aW9ucyBmaWxlIGFuZCBhZGQgU2luY2U6IG1hcmtlci4gQWxzbyB1cGRhdGUKCSAgd2luMzIgLmRlZiBmaWxlLgoJICBBUEk6IGdzdF9iYXNlX3NyY19zZXRfZHluYW1pY19zaXplKCkKCjIwMTEtMDYtMTAgMTM6NDQ6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgIGRlc2lnbjogcGFydC1idWZmZXJsaXN0LnR4dCB3YXMgbWVyZ2VkIGludG8gYW5vdGhlciBkb2MKCjIwMTEtMDYtMTAgMTM6MzQ6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogVXBkYXRlIHNlY3Rpb25zIGZpbGVzIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMTAgMTM6MTA6NDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBmb3IgYWRkZWQvcmVtb3ZlZCBzeW1ib2xzCgoyMDExLTA2LTEwIDEzOjA0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYmFzZXNyYzogYWRkIGZpbGwgdm1ldGhvZCB0byBiYXNlc3JjCgkgIEFkZCBhIG5ldyBmaWxsIHZpcnR1YWwgbWV0aG9kIHRvIGJhc2VzcmMuIFRoZSBwdXJwb3NlIG9mIHRoaXMgbWV0aG9kIGlzIHRvIGZpbGwKCSAgYSBwcm92aWRlZCBidWZmZXIgd2l0aCBkYXRhLgoJICBBZGQgYSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSBjcmVhdGUgbWV0aG9kIHRoYXQgYWxsb2NhdGVzIGEgYnVmZmVyIGFuZAoJICBjYWxscyB0aGUgZmlsbCBtZXRob2Qgb24gaXQuIFRoaXMgd291bGQgYWxsb3cgdGhlIGJhc2UgY2xhc3MgdG8gaW1wbGVtZW50CgkgIGJ1ZmZlcnBvb2wgYW5kIGFsbG9jYXRvciBuZWdvdGlhdGlvbiBvbiBiZWhhbGYgb2YgdGhlIHN1YmNsYXNzZXMuCgkgIEZpeCB0aGUgYmxvY2tzaXplIHByb3BlcnR5LgoJICBNYWtlIGZpbGVzcmMgdXNlIHRoZSBuZXcgZmlsbCBtZXRob2QuCgoyMDExLTA2LTEwIDEyOjA5OjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oCgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmgKCjIwMTEtMDYtMTAgMTE6NTU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgZXZlbnQ6IGFkZCByZXNldF90aW1lIGJvb2xlYW4gdG8gZmx1c2hfc3RvcCBldmVudAoJICBBZGQgYSBib29sZWFuIHRvIHRoZSBmbHVzaF9zdG9wIGV2ZW50IHRvIG1ha2UgaXQgcG9zc2libGUgdG8gaW1wbGVtZW50IGZsdXNoZXMKCSAgdGhhdCBkb24ndCByZXNldF90aW1lLgoJICBNYWtlIGJhc2VzaW5rIHBvc3QgYXN5bmNfZG9uZSB3aXRoIHRoZSByZXNldF90aW1lIHByb3BlcnR5IGZyb20gdGhlIGZsdXNoIHN0b3AKCSAgZXZlbnQuCgkgIEZpeCBzb21lIHVuaXQgdGVzdHMKCjIwMTEtMDYtMDkgMTc6MTM6MzUgKzAxMDAgIEphdmllciBKYXJkw7NuIDxqamFyZG9uQGdub21lLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIFVzZSAiY29uc3QiIGluc3RlYWQgR19DT05TVF9SRVRVUk4KCSAgR19DT05TVF9SRVRVUk4gd2lsbCBiZSBkZXByZWNhdGVkIHNvb24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NTIyMTEKCjIwMTEtMDYtMDkgMTM6Mzc6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBldmVudCBtZXRob2RzIHRvIHJlcGxhY2UgZXZlbnRzCgkgIFVzaW5nIHRoZSBuZXcgZXZlbnQgbWV0aG9kcywgd2UgY2FuIGF0b21pY2FsbHkgdHJhbnNmZXIgdGhlIGV2ZW50IGZyb20gdGhlCgkgIHBlbmRpbmcgbGlzdCB0byB0aGUgYWN0aXZlIGxpc3QuCgoyMDExLTA2LTA5IDEzOjM2OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBtYWtlIG1hY3JvcyBmb3IgbmV3IG1pbmlvYmplY3QgbWV0aG9kcwoKMjAxMS0wNi0wOSAxMzozNTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3Q6IGFkZCBuZXcgbWV0aG9kcyB0byBtYW5hZ2UgbWluaW9iamVjdCBwb2ludGVycwoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIHN0ZWFsIHRoZSBtaW5pb2JqZWN0IHN0b3JlZCBhdCBhIGxvY2F0aW9uLgoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIHN0b3JlIGEgbWluaW9iamVjdCBpbiBhIGxvY2F0aW9uIGFuZCB0YWtpbmcgb3duZXJzaGlwCgkgIG9mIHRoZSBtaW5pb2JqZWN0LgoKMjAxMS0wNi0wOSAxMzozNDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBmaXggaGVhZGVyCgoyMDExLTA2LTA5IDEyOjMxOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGZpeCBzcHVyaW91cyBpbmNsdWRlCgoyMDExLTA2LTA5IDEyOjAxOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jCgoyMDExLTA2LTA5IDExOjM5OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgcGFkOiBmb3J3YXJkIGV2ZW50cyBieSBkZWZhdWx0CgkgIEFsd2F5cyBmb3J3YXJkIGFsbCBldmVudHMgaW4gdGhlIGRlZmF1bHQgaGFuZGxlci4gUHJldmlvdXNseSBpdCB1c2VkIHRvIG5vdAoJICBmb3J3YXJkIGNhcHMgZXZlbnRzIGJ5IGRlZmF1bHQuIEl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gZm9yd2FyZCB0aGUgY2FwcyBldmVudHMsCgkgIGlmIHRoZSBlbGVtZW50IGlzIGludGVyZXN0ZWQgaW4gdGhlIGNhcHMsIGl0IHdpbGwgaW1wbGVtZW50IGFuIGV2ZW50IGhhbmRsZXIgdG8KCSAgcmV0cmlldmUgdGhlIGNhcHMgYW5kIHRoZW4gaXQgY2FuIGRlY2lkZSB0byBmb3J3YXJkIG9yIG5vdC4gSWYgdGhlIGVsZW1lbnQgaGFzCgkgIG5vIGV2ZW50IGhhbmRsZXIsIGl0IHByb2JhYmx5IGp1c3QgZG9lc24ndCBjYXJlIGFib3V0IGNhcHMgYW5kIGl0IHByb2JhYmx5IGlzCgkgIGFsc28gbm90IGdvaW5nIHRvIG1vZGlmeSB0aGUgZGF0YSBpbiBhIHdheSB0aGF0IG5lZWRzIGEgY2FwcyBjaGFuZ2UuCgoyMDExLTA2LTA5IDExOjEzOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGZpeCB0eXBvIGluIGRvY3MKCjIwMTEtMDYtMDggMTg6MjI6MzYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYy9mZHNyYzogaW5kaWNhdGUgZHluYW1pYyBzaXplIGhhbmRsaW5nIHRvIGJhc2VzcmMKCjIwMTEtMDYtMDggMTg6MjI6MDMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBiYXNlc3JjOiBhZGQgZHluYW1pYyBzaXplIGhhbmRsaW5nCgkgIFRoaXMgYWxsb3dzIHN1YmNsYXNzIHRvIGluZGljYXRlIHRoYXQgc2l6ZSByZXBvcnRlZCBieSBzcmMgbWF5IG5vdCBiZSBzdGF0aWMKCSAgYW5kIHNob3VsZCBhcyBzdWNoIGJlIHVwZGF0ZWQgcmVndWxhcmx5LCByYXRoZXIgdGhhbiBvbmx5IHdoZW4gcmVhbGx5CgkgIG5lZWRlZC4KCSAgUGFydGljdWxhciBleGFtcGxlcyBhcmUgZmlsZXNyYyBvciBmZHNyYyByZWFkaW5nIGZyb20gYSBmaWxlIHRoYXQgaXMgc3RpbGwKCSAgZ3Jvd2luZyAoZS5nLiBiZWluZyBkb3dubG9hZGVkKS4KCSAgRml4ZXMgIzY1MjAzNy4KCjIwMTEtMDYtMDggMjA6MTQ6MTYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIFJldmVydCAiYmFzZXNyYzogU2VuZCBhbiB1cGRhdGUgTkVXU0VHTUVOVCBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBkdXJhdGlvbiBjaGFuZ2VzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzNGZhZjE2M2NhZjEwZWQzZDU0ZDgxZmQ3Yjc5MzA2OTkxM2RmZmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBsZWFkcyB0byBwb3NzaWJseSBzZW5kaW5nIG5ld3NlZ21lbnQgZXZlbnQgZG93bnN0cmVhbQoJICBpbiBwdWxsIG1vZGUuICBJbiBwdXNoIG1vZGUsIHF1aXRlIHNvbWUgZG93bnN0cmVhbSBlbGVtZW50cwoJICBhcmUgbGlrZWx5IHRvIG9ubHkgZXhwZWN0IG5ld3NlZ21lbnQgZXZlbnQgZm9sbG93aW5nIGEgc2VlayB0aGV5IHBlcmZvcm1lZAoJICBhbmQgYXMgc3VjaCBtYXkgaGF2ZSB0aGVpciBzdGF0ZSBtZXNzZWQgdXAuCgoyMDExLTA2LTA4IDE4OjM1OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBpbmxpbmUgdGhlIGNsaXAgc2VnbWVudAoKMjAxMS0wNi0wOCAxNzoyNTo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogcmVuYW1lIHZhcmlhYmxlCgkgIFJlbmFtZSB0aGUgbmV3X2Jhc2VfdGltZSB2YXJpYWJsZSB0byByZXNldF90aW1lLCB3aGljaCBsb29rcyBiZXR0ZXIuCgoyMDExLTA2LTA4IDE2OjQxOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgc2VnbWVudDogc2VwYXJhdGUgdGhlIHNlZWsgYW5kIHNlZ21lbnQgZmxhZ3MKCSAgU2VwYXJhdGUgdGhlIHNlZWsgZmxhZ3MgYW5kIHNlZ21lbnQgZmxhZ3MgYXMgc2VwYXJhdGUgZW51bXMgYmVjYXVzZSB3ZSBtaWdodAoJICB3YW50IHRvIGhhdmUgZGlmZmVyZW50IGZsYWdzIGZvciBib3RoLgoKMjAxMS0wNi0wOCAxMzo0MDozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBtZXNzYWdlOiBtb3ZlIHRoZSBuZXdfYmFzZV90aW1lIGZsYWcgdG8gYXN5bmNfZG9uZQoJICBNb3ZlIHRoZSBmbGFnIHRvIGluZGljYXRlIHRoYXQgYSBuZXdfYmFzZV90aW1lIHNob3VsZCBiZSBkaXN0cmlidXRlZCB0byB0aGUKCSAgcGlwZWxpbmUsIGZyb20gdGhlIGFzeW5jX3N0YXJ0IHRvIHRoZSBhc3luY19kb25lIG1lc3NhZ2UuIFRoaXMgd291bGQgYWxsb3cgdXMgdG8KCSAgZGVjaWRlIHdoZW4gdG8gcmVzZXQgdGhlIHBpcGVsaW5lIHRpbWUgYmFzZWQgb24gb3RoZXIgcmVhc29ucyB0aGFuIHRoZQoJICBGTFVTSF9TVEFSVCBldmVudC4KCSAgVGhlIG1haW4gZ29hbCBldmVudHVhbGx5IGlzIHRvIG1ha2UgdGhlIEZMVVNIIGV2ZW50cyBub3QgcmVzZXQgdGltZSBhdCBhbGwgYnV0CgkgIHJlc2V0IHRoZSB0aW1lIGJhc2VkIG9uIHRoZSBmaXJzdCBidWZmZXIgb3Igc2VnbWVudCB0aGF0IHByZXJvbGxzIHRoZSBwaXBlbGluZQoJICBhZ2Fpbi4KCjIwMTEtMDYtMDggMTM6Mzk6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogVXBkYXRlIGdzdHJlYW1lci1zZWN0aW9ucyBmb3IgbmV3L3JlbW92ZWQgQVBJCgoyMDExLTA2LTA4IDEzOjMwOjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgZ3N0YnVmZmVyOiBSZW1vdmUgZGVwcmVjYXRlZCBHU1RfQlVGRkVSXyogbWFjcm9zCgkgIGRhdGEsIHNpemUsIG1hbGxvY2RhdGEgYW5kIGZyZWVfZnVuYyBubyBsb25nZXIgZXhpc3QuCgoyMDExLTA2LTA4IDEzOjA2OjE3ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMDggMTI6NTg6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiByZW1vdmUgc2V0Y2FwcyBmdW5jdGlvbgoJICBSZW1vdmUgdGhlIHNldGNhcHMgZnVuY3Rpb24sIGVsZW1lbnRzIHNob3VsZCB1c2UgdGhlIGNhcHMgZXZlbnQgdG8gYmUgaW5mb3JtZWQKCSAgb2YgdGhlIGZvcm1hdC4KCjIwMTEtMDYtMDggMTI6MDQ6NDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lbW9yeS50eHQ6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSAgbWVtb3J5OiBSZXF1aXJlIGltcGxlbWVudGF0aW9uIHRvIGltcGxlbWVudCBfc2hhcmUKCSAgUmVxdWlyZSB0aGUgbWVtb3J5IGltcGxlbWVudGF0aW9ucyB0byBpbXBsZW1lbnQgYSBzaGFyZSBvcGVyYXRpb24uIFRoaXMgYWxsb3dzCgkgIHVzIHRvIHJlbW92ZSB0aGUgZmFsbGJhY2sgc2hhcmUgaW1wbGVtZW50YXRpb24gd2hpY2ggdXNlcyBhIGRpZmZlcmVudCBhbGxvY2F0b3IKCSAgaW1wbGVtZW50YXRpb24gYW5kIGNvbXBsaWNhdGVzIHRoaW5ncyB0b28gbXVjaC4KCSAgVXBkYXRlIGRlc2lnbiBkb2MgYSBiaXQuCgoyMDExLTA2LTA4IDExOjAzOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBtZW1vcnk6IGNsZWFudXBzIGFuZCBpbXByb3ZlIGRvY3MKCSAgTWFrZSB0aGUgZmFsbGJhY2sgY29weSB1c2UgdGhlIHNhbWUgbWVtb3J5IGFsbG9jYXRvciBhcyB0aGUgb3JpZ2luYWwgb2JqZWN0LgoJICBJbXByb3ZlIHNvbWUgZG9jcy4KCSAgUmVxdWlyZSBhbiBhbGxvYyBmdW5jdGlvbiB3aGVuIHJlZ2lzdGVyaW5nIGFuIGFsbG9jYXRvci4KCSAgUmVtb3ZlIGdzdF9tZW1vcnlfYWxsb2NhdG9yX2dldF9kZWZhdWx0KCkgYW5kIG1lcmdlIHRoZSBmZWF0dXJlIGluCgkgIGdzdF9tZW1vcnlfYWxsb2NhdG9yX2ZpbmQoKQoJICBGaXggbG9ja3Mgb24gdGhlIGhhc2h0YWJsZS4KCSAgUmVtb3ZlIGRlZmluZWQgYnV0IG5vdC1pbXBsZW1lbnRlZCBnc3RfbWVtb3J5X3NwYW4oKSBtZXRob2QuCgoyMDExLTA2LTA3IDE4OjE4OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZW1vcnkudHh0OgoJICBkb2NzOiBhZGQgYmVnaW5uaW5ncyBvZiBtZW1vcnkgZGVzaWduIGRvYwoKMjAxMS0wNi0wNyAxNzo1NDozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IHBhc3MgdXNlcl9kYXRhIHRvIHRoZSBhbGxvYyBmdW5jdGlvbgoJICBQYXNzIHRoZSB1c2VyIGRhdGEgdGhhdCB3YXMgcGFzc2VkIHRvIF9yZWdpc3RlciB0byB0aGUgYWxsb2MgZnVuY3Rpb24gb2YgYW4KCSAgYWxsb2NhdG9yLgoKMjAxMS0wNi0wNyAxNzozNDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBmaXggc29tZSB0eXBvcwoKMjAxMS0wNi0wNyAxNzowMzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgZmlsZXNyYzogcmVtb3ZlIE1NQVAgY29kZQoJICBSZW1vdmUgdGhlIG1tYXAgY29kZSwgaXQgd2FzIGRpc2FibGVkIGFuZCBwcm9iYWJseSBuZWVkcyBhIGNvbXBsZXRlIHJld3JpdGUKCSAgYW55d2F5IGlmIHRoaXMgaXMgdG8gYmUgcG9ydGVkIHRvIDAuMTEuCgoyMDExLTA2LTA3IDE2OjM1OjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBhZGQgbWV0aG9kcyB0byBxdWVyeSBhbGxvY2F0b3JzCgkgIEFkZCBBUEkgdG8gYWRkIGFuZCBxdWVyeSBhbGxvY2F0b3IgaW1wbGVtZW50YXRpb25zIHRvL2Zyb20gdGhlIEFMTE9DQVRJT04gcXVlcnkuCgoyMDExLTA2LTA3IDE2OjE0OjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiB1c2UgYWxsb2NhdG9ycyB0byBhbGxvY2F0ZSBtZW1vcnkKCSAgUmVuYW1lIHRoZSBHc3RNZW1vcnlJbXBsIHRvIEdzdE1lbW9yeUFsbG9jYXRvciBiZWNhdXNlIHRoYXQncyByZWFsbHkgd2hhdCBpdCBpcy4KCSAgQWRkIGFuIGFsbG9jIHZtZXRob2QgdG8gdGhlIGFsbG9jYXRvciBtZW1iZXJzLgoJICBJbXByb3ZlIHJlZ2lzdHJhdGlvbiBvZiBhbGxvY2F0b3JzLgoJICBBZGQgbWV0aG9kcyB0byBnZXQgYW5kIHNldCB0aGUgZGVmYXVsdCBhbGxvY2F0b3IKCSAgQWx3YXlzIHVzZSBhbiBhbGxvY2F0b3IgdG8gYWxsb2NhdGUgbWVtb3J5LCB1c2UgdGhlIGRlZmF1bHQgYWxsb2NhdG9yIHdoZW4gTlVMTAoJICBpcyBwYXNzZWQuCgkgIEFkZCB1c2VyX2RhdGEgdG8gdGhlIGFsbG9jYXRvciBJbmZvIHNvIHRoYXQgd2UgY2FuIHBhc3MgZXh0cmEgaW5mbyB0byB0aGUKCSAgYWxsb2NhdG9yIG5ldyBtZXRob2QuCgoyMDExLTA2LTA3IDEzOjAzOjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBkb2NzOiBtaW5vciBmaXggYW5kIGNsYXJpZmljYXRpb24KCjIwMTEtMDYtMDcgMTM6Mzg6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IG1vdmUgc29tZSBtb3JlIGRlZmluZXMgb24gdG9wCgoyMDExLTA2LTA3IDEzOjI1OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGZpeCBzb21lIGNpcmN1bGFyIGluY2x1ZGVzCgkgIHR5cGVkZWYgc29tZSBzdHJ1Y3RzIGJlZm9yZSBpbmNsdWRpbmcgb3RoZXIgZmlsZXMgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzCgkgIGluIHRoZSBoZWFkZXIgZmlsZXMuCgoyMDExLTA2LTA3IDExOjAxOjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGZvciBhZGRlZC9yZW1vdmVkIHN5bWJvbHMKCjIwMTEtMDYtMDYgMTI6MjM6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIGNoZWNrL3RlZTogUGFkcyBuZWVkIHRvIGJlIGFjdGl2YXRlZCBiZWZvcmUgY2FwcyBhcmUgc2V0CgkgIEFsc28gYWRkIGRlYnVnZ2luZyB0byBmaWd1cmUgb3V0IHdoYXQncyBnb2luZyBvbgoKMjAxMS0wNi0wNyAxMDo1MjowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IHJlbW92ZSBwcm94eV9zZXRjYXBzCgkgIFJlbW92ZSBwcm94eV9zZXRjYXBzLCBlbGVtZW50cyBzaG91bGQgdXNlIHRoZSBjYXBzIGV2ZW50IGFuZCBmb3J3YXJkIGNhcHMKCSAgdGhlbXNlbHZlcy4KCjIwMTEtMDYtMDcgMTA6NTE6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBmaXggcmVmY291bnRpbmcgb2YgZXZlbnRzCgkgIF9wYWRfZXZlbnRfZm9yd2FyZCgpIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2Fwcy4KCjIwMTEtMDYtMDcgMTA6NDk6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogSW1wcm92ZSBwYWQgZXZlbnQgZm9yd2FyZCBjb2RlCgkgIFJldHVybiBUUlVFIHdoZW4gdGhlIHBhZCBoYXMgbm8gcGFyZW50IG9yIHdoZW4gdGhlcmUgYXJlIG5vIGludGVybmFsbHkgbGlua2VkCgkgIHBhZHMuCgoyMDExLTA2LTA3IDEwOjA0OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBwbHVnaW5zOiB1c2UgdGhlIGNhcHMgZXZlbnQKCSAgVXNlIHRoZSBjYXBzIGV2ZW50IGFuZCBhdm9pZCB1c2luZyB0aGUgc2V0Y2FwcyBmdW5jdGlvbi4gVXNlIHNvbWUgb2YgdGhlIG5ldyBwYWQKCSAgZm9yd2FyZCBmdW5jdGlvbnMgdG8gaW1wbGVtZW50IGRlc2lyZWQgYmVoYXZpb3VyLgoKMjAxMS0wNi0wNyAxMDowMjowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IFJlbmFtZSBhbmQgcmV3b3JrIHRoZSBkaXNwYXRjaGVyIGZ1bmN0aW9uCgkgIFJlbmFtZSBnc3RfcGFkX2Rpc3BhdGNoZXIoKSB0byBnc3RfcGFkX2ZvcndhcmQoKSBhbmQgbWFrZSBpdCBtb3JlIHVzZWZ1bCBieQoJICBpdGVyYXRpbmcgdGhlIGludGVybmFsIGxpbmtzIG9mIGEgcGFkIGFuZCBoYW5kbGluZyByZXN5bmMgcHJvcGVybHkuCgkgIEFkZCBhIG1ldGhvZCBnc3RfcGFkX2V2ZW50X2ZvcndhcmQoKSB0aGF0IHVuY29uZGl0aW9uYWxseSBmb3J3YXJkcyBhbiBldmVudCB0bwoJICBhbGwgaW50ZXJuYWxseSBsaW5rZWQgcGFkcy4KCSAgVXBkYXRlIHNvbWUgcGFkIGNvZGUgdG8gdXNlIHRoZSBuZXcgZm9yd2FyZCBmdW5jdGlvbi4KCjIwMTEtMDYtMDcgMDk6NDM6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgY2FwczogdXNlIHRoZSBjYXBzIGV2ZW50CgkgIFVzZSB0aGUgY2FwcyBldmVudCBpbnN0ZWFkIG9mIGdzdF9wYWRfc2V0X2NhcHMoKSBhbmQgdGhlIHNldGNhcHMgZnVuY3Rpb24KCjIwMTEtMDYtMDYgMTY6MTE6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXIudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1ldGEudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvYmVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3BhcnNlc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RyZWFtcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgZG9jczogZ28gb3ZlciBkZXNpZ24gZG9jcyBhbmQgZml4IHRoaW5ncwoJICBSZW1vdmUgYnVmZmVybGlzdCBwYXJ0LCBpdCdzIG1lcmdlZCB3aXRoIHBhcnQtYnVmZmVyLnR4dAoKMjAxMS0wNi0wNiAxMToyMToyMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogQWRkIGVudW0vZmxhZ3MgKGRlKXJlZ2lzdHJhdGlvbiBpbiBnc3RfKGRlKWluaXQKCjIwMTEtMDYtMDYgMTE6MjA6MjkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogRG9uJ3QgYWNjZXB0IHNlZ21lbnRzIGFmdGVyIEVPUwoJICBBbmQgcmVmYWN0b3IgdGhlIGNvZGUgc2xpZ2h0bHkgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi4KCSAgVGhpcyBzb2x2ZXMgYSByZWdyZXNzaW9uIGludHJvZHVjZWQgYnkgYmRiYzA2OTMKCjIwMTEtMDYtMDYgMTA6Mjc6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNoZWNrL2dob3N0cGFkOiBBY3RpdmF0ZSBwYWRzIGJlZm9yZSBjaGVja2luZyBmb3IgY2FwcyBmb3J3YXJkaW5nL3NldHRpbmcKCSAgVGhpcyBpcyBub3cgZG9uZSB2aWEgaW4tYmFuZCBldmVudHMsIHNvIHRoZSBwYWRzIG5lZWQgdG8gYmUgYWN0aXZlCgoyMDExLTA2LTA1IDE4OjExOjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgZG9jczogdXBkYXRlIGZvciBBUEkgY2hhbmdlcwoJICBBbHNvIHJlbW92ZSBHU1RfUEFEX0NIRUNLR0VUUkFOR0VGVU5DIG1hY3JvCgoyMDExLTA2LTA1IDE1OjQ2OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDYtMDQgMTU6NDI6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBwYXJzZTogYWRkIHByb3RvdHlwZXMgZm9yIHVudXNlZCBmdW5jdGlvbnMgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZwoJICBUaGUgd2FybmluZyBpcyBuZXZlciBmYXRhbCwgYmVjYXVzZSB3ZSBkb24ndCB1c2UgLVdlcnJvciBmb3IgdGhlCgkgIHBhcnNlciBoZWxwZXIgbGlicmFyeSBidWlsZCwgYnV0IHRoZSB3YXJuaW5ncyBhcmUgYW5ub3lpbmcgYW55d2F5LgoKMjAxMS0wNi0wNSAxNDoxMDo1MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LXJ1bi5jOgoJICB0b29sczogcmVtb3ZlIHVudmVyc2lvbmVkIGdzdC1sYXVuY2gsIGdzdC1pbnNwZWN0IGFuZCBnc3QtdHlwZWZpbmQKCSAgVGhlIHVudmVyc2lvbmVkIHRvb2wgd3JhcHBlcnMgYXJlIGNvbmZ1c2luZyBhbmQgYW5ub3lpbmcgZm9yIHBhY2thZ2VycywKCSAgdXNlcnMgYW5kIGRldmVsb3BlcnMgYWxpa2UuIEEgZ3N0LWxhdW5jaCBwaXBlbGluZSB0aGF0IHdvcmtzIGluIDAuMTAKCSAgd2lsbCBsaWtlbHkgbm90IHdvcmsgaW4gMC4xMSAoZS5nLiBiZWNhdXNlIGVsZW1lbnRzIG9yIHByb3BlcnRpZXMgZ2V0CgkgIHJlbmFtZWQsIG9yIHN5bnRheCBjaGFuZ2VzKS4gVGhlIHVudmVyc2lvbmVkIHRvb2xzIGFsc28geWllbGQgdXNlbGVzcwoJICByZXN1bHRzIHdoZW4gdXNlZCB3aXRoIGdkYiBvciB2YWxncmluZC4gUGFja2FnZXJzIG5lZWQgdG8gY28tb3JkaW5hdGUKCSAgdGhlIHBhY2thZ2luZyBvZiBhbGwgbWFqb3IgdmVyc2lvbnMgdG8gbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBjb25mbGljdHMKCSAgd2hlbiBib3RoIHRyeSB0byBpbnN0YWxsIHRoZSBzYW1lIGZpbGVzLiBXaGVuIHR3byBtYWpvciB2ZXJzaW9ucyBhcmUKCSAgaW4gdXNlIChlLmcuIDAuMTAgYW5kIDAuMTEvMS4wKSwgaXQgbWF5IGJlIHVuY2xlYXIgKHdoZW4gbG9va2luZyBhdAoJICB0aGluZ3Mgb24gSVJDL3Bhc3RlYmluL21haWxpbmcgbGlzdCBldGMuKSB3aGljaCB2ZXJzaW9uIGlzIGFjdHVhbGx5CgkgIGJlaW5nIHVzZWQgd2hlbiB0aGVyZSBhcmUgdW52ZXJzaW9uZWQgd3JhcHBlcnMuIEZvciBhbGwgdGhlc2UgcmVhc29ucywKCSAgaXQgc2VlbXMgYmVzdCB0byBqdXN0IHJlbW92ZSB0aGVtIGZvciBub3cuCgoyMDExLTA2LTA0IDE2OjA0OjM1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogdXBkYXRlIGV4cG9ydHMgYW5kIG90aGVyIHRoaW5ncwoKMjAxMS0wNi0wNCAxNTo0NDozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VsLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2dsLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbHQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9yby5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHRyYW5zbGF0YWJsZSBzdHJpbmcgYW5kIHJlbW92ZWQgc3RyaW5ncwoKMjAxMS0wNi0wNCAxNToyMzo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmVtb3ZlIEdTVF9YTUwgZGVidWcgY2F0ZWdvcnkgYXMgd2VsbAoKMjAxMS0wNi0wNCAxNToyMjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBBbmRyb2lkLm1rOgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHhtbC5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2FybS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdG9vbHMvLmdpdGlnbm9yZToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LXhtbGxhdW5jaC4xLmluOgoJICBSZW1vdmUgZXZlcnl0aGluZyBsaWJ4bWwyLSBhbmQgbG9hZHNhdmUtcmVsYXRlZAoKMjAxMS0wNi0wNCAxNDo0MToxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHJlbW92ZSBTSUdVU1IqIGhhbmRsaW5nIGZyb20gZ3N0LWxhdW5jaAoJICBSZW1vdmUgU0lHVVNSKiBoYW5kbGluZyBmcm9tIGdzdC1sYXVuY2gsIHNpbmNlIGl0IG1pZ2h0IGludGVyZmVyZQoJICB3aXRoIG90aGVyIHRoaW5ncyAoZS5nLiBsaWJsZWFrcyksIGFuZCBzaG91bGQgYmUgZG9uZSBkaWZmZXJlbnRseQoJICBhbnl3YXkgKGVpdGhlciB2aWEgc3VwcG9ydCBmb3Igc2ltcGxlIHRpbWVkLWNvbW1hbmRzIHNjcmlwdGluZyBvcgoJICByZW1vdGUgY29udHJvbCB2aWEgREJ1cyBvciBzbykuCgoyMDExLTA2LTA0IDE0OjI4OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9CVUdTOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvUkVBRE1FOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC4xLmluOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJKiB0b29scy94bWwydGV4dC54c2w6CgkgIHRvb2xzOiByZW1vdmUgZ3N0LXhtbGluc3BlY3QKCSAgUGVvcGxlIHNob3VsZCBqdXN0IHF1ZXJ5IHRoZSByZWdpc3RyeSB0aGVtc2VsdmVzIG9yIHdyaXRlIGEgc21hbGwKCSAgcHl0aG9uIHNjcmlwdCBpZiB0aGV5IG5lZWQgdGhpcyBmdW5jdGlvbmFsaXR5ICh3aGljaCBpcyBsaWtlbHkKCSAgbGVzcyB3b3JrIHRoYW4gcGFyc2luZyB0aGUgWE1MIHRoYXQgdGhpcyBzY3JpcHQgb3V0cHV0cywgYW5kIEknbQoJICBub3QgYXdhcmUgb2YgYW55dGhpbmcgdXNpbmcgdGhlIHhtbDJ0ZXh0IHhzbCBlaXRoZXIpLgoKMjAxMS0wNi0wNCAxNDoyMjowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS91c2luZy54bWw6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSogdG9vbHMvZ3N0LWZlZWRiYWNrLjEuaW46CgkgIHRvb2xzOiByZW1vdmUgZ3N0LWZlZWRiYWNrCgkgIEl0J3Mgbm90IHJlYWxseSB0aGF0IHVzZWZ1bCwgYW5kIG5vIG9uZSdzIGJlZW4gdXNpbmcgaXQgZm9yIHllYXJzLgoKMjAxMS0wNi0wNCAxNDoxMzowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzLCB0ZXN0czogZml4IHNvbWUgdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDYtMDQgMTQ6MDI6MjMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGFibGUgc3RyaW5nCgoyMDExLTA2LTA0IDAwOjMwOjE1IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJICBXb3JrIGFyb3VuZCBjaGFuZ2VzIGluIGdfYXRvbWljIEFQSQoJICBTZWUgIzY1MTUxNCBmb3IgZGV0YWlscy4gIEl0J3MgYXBwYXJlbnRseSBpbXBvc3NpYmxlIHRvIHdyaXRlIGNvZGUKCSAgdGhhdCBhdm9pZHMgYm90aCB0eXBlIHB1bm5pbmcgd2FybmluZ3Mgd2l0aCBvbGQgZ19hdG9taWMgaGVhZGVycyBhbmQKCSAgYXNzZXJ0aW9ucyBpbiB0aGUgbmV3LiAgVGh1cywgbWFjcm9zIGFuZCBhIHZlcnNpb24gY2hlY2suCgoyMDExLTA2LTAzIDE4OjEwOjI0ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgZ3N0cGFkOiBTbWFsbCBkb2MgZml4dXAKCjIwMTEtMDYtMDMgMTU6NTM6MjEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgLmRlZiBmb3IgbGF0ZXN0IEFQaSBjaGFuZ2VzCgoyMDExLTA2LTAzIDE3OjI0OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGNsZWFuIHVwIHByb2JlIGZsYWdzCgoyMDExLTA2LTAzIDE3OjI0OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1wcm9iZXMudHh0OgoJICBkb2NzOiBmaXJzdCB2ZXJzaW9uIG9mIHByb2JlcyBkb2N1bWVudAoKMjAxMS0wNi0wMyAxNjo0NjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBjaGVjayBmbHVzaGluZyBpbiBwdWxscmFuZ2UgdG9vCgoyMDExLTA2LTAzIDEzOjU2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGNsZWFudXBzCgkgIFVzZSBkZWZpbmVzIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlcyBmb3IgbWFza3MuCgoyMDExLTA2LTAzIDEzOjI1OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IHNvbWUgbW9yZSAwLjExIGZpeG1lcwoJICBkb24ndCBhbGxvdyBzcGFjZXMgaW4gc3RydWN0dXJlIG5hbWVzIGFuZCBmaXggdW5pdCB0ZXN0cy4KCjIwMTEtMDYtMDMgMTI6NDM6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1hbGxvY2F0aW9uLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVycG9vbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVycG9vbC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXJwb29sIGRlc2lnbiBkb2MKCSAgTW92ZSB0aGUgYnVmZmVycG9vbCBkZXNpZ24gZG9jIGZyb20gZHJhZnQgdG8gcGFydCBhbmQgbWVyZ2UgaXQgd2l0aAoJICB0aGUgYWxsb2NhdGlvbiBkcmFmdC4KCjIwMTEtMDYtMDMgMTI6NDA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5oOgoJICBidWZmZXJwb29sOiBtYWtlIHRoZSBkZWZhdWx0IGJlaGF2aW91ciB0byB3YWl0CgkgIFRoZSBtb3N0IGNvbW1vbiBjYXNlIGlzIHRvIG5vdCBzcGVjaWZ5IGFueSBmbGFncyB3aGVuIGRvaW5nIHRoZSBhbGxvY2F0aW9uLiBNYWtlCgkgIHRoZSBhbGxvY2F0aW9uIGZyb20gYSBwb29sIHdpdGggYSBtYXhpbXVtIGFtb3VudCBvZiBidWZmZXJzIGJsb2NrIGJ5IGRlZmF1bHQgZm9yCgkgIHRoaXMgcmVhc29uLgoKMjAxMS0wNi0wMyAxMToxNTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNi0wMiAxOToyNDoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIGNhcHMgZXZlbnQgaW5zdGVhZCBvZiBzZXRjYXBzCgoyMDExLTA2LTAyIDE5OjIzOjQ3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBnaG9zdHBhZDogcmVtb3ZlIHNldGNhcHMgZnVuY3Rpb25zCgkgIFJlbW92ZSB0aGUgc2V0Y2FwcyBmdW5jdGlvbnMsIGl0IGlzIG5vdyBoYW5kbGVkIHdpdGggdGhlIGNhcHMgZXZlbnQuCgoyMDExLTA2LTAyIDE4OjI4OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHBhc3MgdGhlIHJpZ2h0IGFsaWdubWVudAoKMjAxMS0wNi0wMiAxODoyODoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtbW9yeTogc21hbGwgY2xlYW51cAoKMjAxMS0wNi0wMiAxODoxMzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBmaXggYWxpZ25tZW50IGNhbGN1bGF0aW9ucwoJICBGaXggdGhlIGFsaWdubWVudCBjYWxjdWxhdGlvbi4KCSAgSW1wcm92ZSBkb2N1bWVudGF0aW9uLgoKMjAxMS0wNi0wMiAxODoxMzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIHBvb2w6IGRlYnVnIHRoZSBjb25maWcKCjIwMTEtMDYtMDIgMTU6Mzg6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IHJlbW92ZSBzb21lIG1hY3JvcyBub3cgaW4gZ2xpYgoJICBXZSBkZXBlbmQgb24gdGhlIHJpZ2h0IGdsaWIgbm93CgoyMDExLTA2LTAyIDE1OjM4OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGZpeCBhIEZJWE1FCgoyMDExLTA2LTAyIDE1OjM4OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2UgZ19wcmludGVycigpIGFzIHN0YXRlZCBpbiB0aGUgRklYTUUKCjIwMTEtMDYtMDIgMTU6Mzc6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBzbWFsbCBjbGVhbnVwcwoKMjAxMS0wNi0wMiAxNDowOTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IGlubGluZSB0aGUgcmVjdXJzaWNlIHN0YXRlIGxvY2sKCjIwMTEtMDYtMDIgMTM6NDY6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBpbmxpbmUgdGhlIHJlY3Vyc2l2ZSBzdHJlYW0gbG9jawoKMjAxMS0wNi0wMiAxMzozNTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHJlbW92ZSB1bnVzZWQgZmllbGRzIGFuZCBtZXRob2RzIGFuZCBzaWduYWxzCgoyMDExLTA2LTAyIDEzOjIzOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBuZXcgZ3N0X3ZhbHVlX2ZpeGF0ZSBpbnN0ZWFkCgkgIFVzZSB0aGUgbmV3IGdzdF92YWx1ZV9maXhhdGUoKSBmdW5jdGlvbiBpbnN0ZWFkIG9mIG91ciBvd24gdmVyc2lvbi4KCjIwMTEtMDYtMDIgMTM6MjE6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIHZhbHVlOiBhZGQgZnVuY3Rpb24gdG8gZml4YXRlIGEgdmFsdWUKCSAgQWRkIGEgZnVuY3Rpb24gdG8gZml4YXRlIGEgR1ZhbHVlLiBUaGlzIGlzIHRoZSBzYW1lIGZ1bmN0aW9uIGFzIGlzIGluIEdzdFBhZC4KCjIwMTEtMDYtMDIgMTM6MTg6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiByZW1vdmUgc29tZSBjdXN0b20gcmVmY291bnRpbmcgbWV0aG9kcwoJICBSZW1vdmUgc29tZSBjdXN0b20gbWFkZSByZWZjb3VudGluZyBtZXRob2RzIGFuZCB1c2UgdGhlIG1pbmlvYmplY3Qgb25lcyBpbnN0ZWFkLgoKMjAxMS0wNi0wMiAxMjo0MDowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBvcHRpbWl6ZSBsaW5raW5nCgkgIE9wdGltaXplIGxpbmtpbmcgYnkgb25seSByZWxlYXNpbmcgdGhlIHBhZCBsb2NrcyB3aGVuIHRoZXJlIGFyZSBsaW5rIGZ1bmN0aW9ucwoJICBpbnN0YWxsZWQgb24gdGhlIHBhZHMuCgkgIEFkZCBzb21lIEdfTElLRUxZIGhlcmUgYW5kIHRoZXJlLgoJICBNb3ZlIGVycm9yIHBhdGhzIG91dCBvZiB0aGUgbWFpbiBjb2RlIGZsb3cuCgoyMDExLTA2LTAyIDEyOjM5OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIGRlcHJlY2F0ZWQgaGF2ZS1kYXRhIHNpZ25hbAoKMjAxMS0wNi0wMiAxMToyMTowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgaWRsZSBwcm9iZSBmb3IgcHVsbCBtZXRob2QgdG9vCgoyMDExLTA2LTAyIDExOjAxOjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1vcmUgY2xlYW51cHMKCSAgVXNlIG1pbmlvYmplY3QgdW5yZWYgd2hlbiB3ZSBjYW4KCSAgUmV1c2UgZXhpc3RpbmcgZGF0YSB0eXBlIGlkZW50aWZpZXIgaW5zdGVhZCBvZiBhbiBleHRyYSBib29sZWFuLgoKMjAxMS0wNi0wMSAxOTo0NzoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmMKCjIwMTEtMDYtMDEgMTk6Mjc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcXVldWUtZXJyb3IuYzoKCSAgcGFkOiBmdXJ0aGVyIGltcHJvdmUgcHJvYmVzIGFuZCBwYWQgYmxvY2tpbmcKCSAgS2VlcCB0cmFjayBvZiBpbnN0YWxsZWQgbnVtYmVyIG9mIHByb2JlcyB0byBzaG9ydGN1dCBlbWlzc2lvbi4KCSAgQWxsb3cgTlVMTCBjYWxsYmFja3MsIHRoaXMgaXMgdXNlZnVsIGZvciBibG9ja2luZyBwcm9iZXMuCgkgIEltcHJvdmUgcHJvYmUgc2VsZWN0aW9uIGJhc2VkIG9uIHRoZSBtYXNrLCBhbiBlbXB0eSBtYXNrIGZvciB0aGUgZGF0YSBvciB0aGUKCSAgc2NoZWR1bGluZyBmbGFncyBlcXVhbHMgdGhhdCBhbGwgcHJvYmVzIG1hdGNoLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIERvbid0IGNoZWNrIHRoZSBmbHVzaGluZyBmbGFnIGluIHRoZSBwcm9iZSBjYWxsYmFjayBoYW5kbGVyLCB0aGlzIG5lZWRzIHRvIGJlCgkgIGRvbmUgYmVmb3JlIGNhbGxpbmcgdGhlIGhhbmRsZXIuCgkgIEZpeCBibG9ja2luZyBwcm9iZXMuCgkgIEZpeCB1bml0IHRlc3RzCgoyMDExLTA1LTMxIDE5OjE2OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGFkOiBpbXBsZW1lbnQgcGFkIGJsb2NrIHdpdGggcHJvYmVzCgoyMDExLTA1LTMwIDE5OjAzOjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHV0aWxzOiByZW1vdmUgX2Z1bGwgdmFyaWFudHMgb2YgcHJvYmVzCgkgIFJlbW92ZSB0aGUgX2Z1bGwgdmFyaWFudHMgYW5kIGFkZCB0aGUgZGVzdHJveSBub3RpZnkgdG8gdGhlIHJlZ3VsYXIgbWV0aG9kcy4KCjIwMTEtMDYtMDEgMTU6Mjk6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSAgY2hlY2svYWJpOiBJZ25vcmUgR3N0WE1MKiBvbiBhcm0gd2hlbiBub3QgcHJlc2VudAoKMjAxMS0wNS0zMSAxODozMTo1MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgbG9jYWwgcHJpdiB2YXJpYWJsZSBpbnN0ZWFkIG9mIHRyYW5zLT5wcml2CgoyMDExLTA1LTMxIDE4OjMwOjUwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudAoJICBiYXNlIGlzIHVuY29uZGl0aW9uYWxseSB3cml0dGVuIGEgY291cGxlIG9mIGxpbmVzIGJlbG93CgoyMDExLTA1LTMxIDE4OjMwOjMwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGdzdDogUmVtb3ZlIG9idmlvdXMgZGVhZCBhc3NpZ25tZW50cwoKMjAxMS0wNS0zMSAxMzo0Mzo0NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50CgoyMDExLTA1LTMwIDE4OjI5OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmV3b3JrIHBhZCBibG9ja2luZywgYW5vdGhlciBhdHRlbXB0CgkgIE1ha2UgdGhlIFBhZEJsb2NrIGNhbGxiYWNrIHRha2UgYSBHc3RCbG9ja1R5cGUgcGFyYW1ldGVyIHRvIGhhbmRsZSB0aGUgZGlmZmVyZW50CgkgIGtpbmQgb2Ygc3RhZ2VzIGluIHRoZSBwYWQgYmxvY2suIFRoaXMgcHJvdmlkZXMgZm9yIG1vcmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKCSAgaW4gdGhlIHBhZCBibG9jayBBUEkuCgkgIFNlcGFyYXRlIGJsb2NraW5nIGFuZCB1bmJsb2NraW5nIGludG8gZGlmZmVyZW50IG1ldGhvZHMsIG9ubHkgYmxvY2tpbmcgY2FuIGRvIGEKCSAgY2FsbGJhY2ssIHVuYmxvY2sgaXMgYWx3YXlzIGltbWVkaWF0ZWx5LiBBbHNvIHJlbW92ZWQgc3luY2hyb25vdXMgYmxvY2tpbmcsIGl0CgkgIGNhbiBhbHdheXMgYmUgaW1wbGVtZW50ZWQgd2l0aCBhIGNhbGxiYWNrLgoKMjAxMS0wNS0zMCAxMzo0MDowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogcmV3b3JrIHBhZCBibG9ja2luZywgZmlyc3QgcGFydCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0MTVkYTg5ZjNjOWZlNDZmYzMzNjEyMzZkZjlhM2I3NmU2MDdlMTM4LgoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuYwoKMjAxMS0wNS0zMCAxMjoyNzozMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMS0wNS0zMCAxMTozMzo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQ29uc2lkZXIgIjEiIGFuZCAiezF9IiBhcyBlcXVhbCBpbiBnc3RfdmFsdWVfY29tcGFyZSgpCgkgIFByZXZpb3VzbHkgdGhpcyB3YXMgb25seSBkb25lIGluIHRoZSBpc19zdWJzZXQoKSBjaGVjayBidXQKCSAgaGF2aW5nIGl0IG9ubHkgdGhlcmUgYnJpbmdzIHVzIGludG8gZGVmaW5pdGlvbi1oZWxsIHdoZXJlCgkgICIxIiBhbmQgInsxfSIgYXJlIHN1YnNldCBvZiBlYWNoIG90aGVyIGJ1dCBub3QgZXF1YWwuCgoyMDExLTA1LTMwIDA3OjQ0OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogRG9uJ3QgYWNjZXNzIHRoZSBHc3RNZXNzYWdlIHN0cnVjdHVyZSBkaXJlY3RseQoKMjAxMS0wNS0zMCAwNzo0MToxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTMwIDA3OjM2OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRml4IHN1YnNldCBjaGVjayBmb3IgZXF1aXZhbGVudCBsaXN0cyBhbmQgc2NhbGFyIHZhbHVlcwoJICBGb3IgZXhhbXBsZSAieyAxIH0iIGFuZCAiMSIgYXJlIG5vdCBzdHJpY3RseSBlcXVhbCBidXQKCSAgYm90aCBhcmUgYSBzdWJzZXQgb2YgZWFjaCBvdGhlci4gQWxzbyBhZGQgYSB1bml0IHRlc3QKCSAgZm9yIHRoaXMuCgoyMDExLTA1LTI5IDE5OjI4OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICBkb2NzOiBmaXggYnVnemlsbGEgVVJMCgkgIGh0cHAgLT4gaHR0cAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUxMzYyCgoyMDExLTA1LTI4IDEwOjI0OjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBkb2NzOiB4cmVmcyBtb3JlIGFwaSBhcm91bmQgR3N0U3RhdGVDaGFuZ2UgYW5kIEdzdFN0YXRlQ2hhbmdlUmV0dXJuLgoKMjAxMS0wNS0yOCAwOTo1MTo0NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZG9jczogeHJlZiB0aGUgYXN5bmMgbWVzc2FnZXMgdG8gR3N0U3RhdGVDaGFuZ2UKCjIwMTEtMDUtMjcgMTc6MjA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZXdvcmsgcGFkIGJsb2NraW5nLCBmaXJzdCBwYXJ0CgkgIE1ha2UgcGFkIGJsb2NrIGNhbGwgdGhlIGNhbGxiYWNrIGFzIHNvb24gYXMgdGhlIHBhZCBpcyBub3QgaW4gdXNlLiBUaGlzIG1ha2VzIGl0CgkgIHBvc3NpYmxlIHRvIG1ha2Ugc3VyZSB0aGF0IHdoZW4gdGhlIGNhbGxiYWNrIGlzIGNhbGxlZCwgbm8gYWN0aXZpdHkgaXMgaGFwcGVuaW5nCgkgIG9uIHRoZSBwYWQgYW5kIHRoYXQgbm8gYWN0aXZpdHkgd2lsbCBldmVyIGhhcHBlbiB1bnRpbCB0aGUgcGFkIGlzIHVuYmxvY2tlZAoJICBhZ2Fpbi4gVGhpcyBtYWtlcyBwYWQgYmxvY2tpbmcgd29yayB3aGVuIHRoZXJlIGlzIG5vIGRhdGFmbG93IG9yIGFmdGVyIEVPUyBhbmQKCSAgZ3JlYXRseSBoZWxwcyBkeW5hbWljIHBpcGVsaW5lcy4KCSAgTW92ZSB0aGUgcHJvYmUgaGFuZGxpbmcgcmlnaHQgd2hlcmUgd2Ugd2FpdCBvbiB0aGUgcGFkIGJsb2NrLiBUaGUgdHdvIGFyZQoJICByZWxhdGVkIGJ1dCBub3QgdGhlIHNhbWUgYW5kIHRoZSBwcm9iZSBjYW4gZXZlbnR1YWxseSBpbmZsdWVuY2UgdGhlIHBhZAoJICBibG9ja2luZyBhcyB3ZSdsbCBzZSBsYXRlci4KCSAgRml4IHVwIHNvbWUgYnJva2VuIHVuaXQgdGVzdHMgb3IgdGVzdHMgdGhhdCBmYWlsIHdpdGggdGhlIG5ldyBiZWhhdmlvdXIuCgoyMDExLTA1LTI3IDE3OjE4OjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZW1vdmUgZGVwcmVjYXRlZCBjbGVhbiBzaHV0ZG93biBtZXRob2QKCjIwMTEtMDUtMjcgMTQ6MDA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGRlYWN0aXZhdGUgdGhlIHBhZCBhZnRlciByZW1vdmluZyBpdAoJICBXaGVuIHJlbGVhc2luZyB0aGUgcmVxdWVzdCBwYWQsIGZpcnN0IHJlbW92ZSBpdCBmcm9tIHRoZSBlbGVtZW50IGFuZCB0aGVuCgkgIGRlYWN0aXZhdGUgaXQuIElmIHdlIGRvIGl0IHRoZSBvdGhlciB3YXkgYXJvdW5kLCBhIGdzdF9wYWRfcHVzaCBvbiB0aGUgZWxlbWVudAoJICBtaWdodCByZXR1cm4gd3Jvbmctc3RhdGUgYmVmb3JlIHdlIGhhZCBhIGNoYW5jZSB0byBkZXRlY3QgdGhlIHJlbW92ZWQgcGFkIGluIHRoZQoJICBjaGFpbiBmdW5jdGlvbi4KCjIwMTEtMDUtMjcgMTU6MTQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogY2F0Y2ggYW5kIHByaW50IG1pc3NpbmctcGx1Z2luIG1lc3NhZ2VzIGluIGdzdC1sYXVuY2gKCSAgU28gdGhhdCB1c2VycyBnZXQgc29tZSBmZWVkYmFjayBpZiB0aGV5J3JlIHVzaW5nIGEgcGlwZWxpbmUKCSAgbGlrZSAgc3JjICEgZGVjb2RlYmluMiAhIHNpbmsgIGFuZCBhcmUgbWlzc2luZyBhbiBlbGVtZW50LgoKMjAxMS0wNS0yNyAxNDowMjowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogRml4IGZvciBTRUdNRU5UIGV2ZW50IEFQSSBjaGFuZ2VzCgoyMDExLTA1LTI3IDEzOjU4OjI2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMjcgMTM6NTU6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IEFkZCBnc3RfY2Fwc19pc19zdWJzZXRfc3RydWN0dXJlKCkKCSAgQVBJOiBnc3RfY2Fwc19pc19zdWJzZXRfc3RydWN0dXJlKCkKCSAgVGhpcyBhbGxvd3MgdG8gY2hlY2sgaWYgYSBzdHJ1Y3R1cmUgaXMgYSBzdWJzZXQgb2YgZ2l2ZW4KCSAgY2FwcyB3aXRob3V0IGFsbG9jYXRpbmcgYSBuZXcgY2FwcyBpbnN0YW5jZSBmb3IgaXQuCgoyMDExLTA1LTI3IDEzOjQ3OjExICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBZGQgZ3N0X3N0cnVjdHVyZV9pc19zdWJzZXQoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaXNfc3Vic2V0KCkKCjIwMTEtMDUtMjcgMTM6Mzg6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogT3B0aW1pemUgZ3N0X2NhcHNfaXNfc3Vic2V0KCkKCSAgLi5hbmQgYXMgYSByZXN1bHQgZ3N0X2NhcHNfaXNfZXF1YWwoKSBhbmQgb3RoZXJzLgoJICBUaGlzIG5vdyBvbmx5IGNoZWNrcyBpZiBmb3IgZXZlcnkgc3Vic2V0IHN0cnVjdHVyZSB0aGVyZSBpcwoJICBhIHN1cGVyc2V0IHN0cnVjdHVyZSBpbiB0aGUgc3VwZXJzZXQgY2Fwcy4gUHJldmlvdXNseSB3ZSB3ZXJlCgkgIHN1YnRyYWN0aW5nIG9uZSBmcm9tIGFub3RoZXIsIGNyZWF0aW5nIGNvbXBsZXRlbHkgbmV3IGNhcHMKCSAgYW5kIHRoZW4gZXZlbiBzaW1wbGlmaWVkIHRoZW0uCgkgIFRoZSBuZXcgaW1wbGVtZW50aW9uIG5vdyBpcyBhYm91dCAxLjI3IHRpbWVzIGZhc3RlciBhbmQgZG9lc24ndAoJICBicmVhayB0aGUgLWJhc2UgdW5pdCB0ZXN0cyBhcmUgYW55dGhpbmcgYW55bW9yZS4KCjIwMTEtMDUtMjcgMTM6Mzc6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogRml4IHN1YnNldCBjaGVjayBpbiBnc3RfY2Fwc19tZXJnZSgpCgkgIENhcHMgQSBhcmUgYSBzdWJzZXQgb2YgY2FwcyBCIGV2ZW4gaWYgY2FwcyBCIGRvZXNuJ3QKCSAgaGF2ZSBhbGwgZmllbGRzIG9mIGNhcHMgQS4KCSAgQWxzbyBhZGQgYSB1bml0IHRlc3QgZm9yIHRoaXMuCgoyMDExLTA1LTI3IDEyOjU2OjAzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIFJldmVydCAiY2FwczogT3B0aW1pemUgZ3N0X2NhcHNfaXNfc3Vic2V0KCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzIyNDhhOWI4NTJiY2I1NjhhNWI2NDIyOTllY2M4ZTViZjQ4ZWExMy4KCSAgVGhpcyBicmVha3Mgc29tZSB0ZXN0cyBpbiAtYmFzZSBhbmQgdGhlIGZhaWx1cmVzIHNob3VsZAoJICBiZSBmaXhlZCBmaXJzdC4KCjIwMTEtMDUtMjcgMTI6NDU6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogT3B0aW1pemUgZ3N0X2NhcHNfaXNfc3Vic2V0KCkKCSAgLi5hbmQgYXMgYSByZXN1bHQgZ3N0X2NhcHNfaXNfZXF1YWwoKSBhbmQgb3RoZXJzLgoJICBUaGlzIG5vdyBvbmx5IGNoZWNrcyBpZiBmb3IgZXZlcnkgc3Vic2V0IHN0cnVjdHVyZSB0aGVyZSBpcwoJICBhIHN1cGVyc2V0IHN0cnVjdHVyZSBpbiB0aGUgc3VwZXJzZXQgY2Fwcy4gUHJldmlvdXNseSB3ZSB3ZXJlCgkgIHN1YnRyYWN0aW5nIG9uZSBmcm9tIGFub3RoZXIsIGNyZWF0aW5nIGNvbXBsZXRlbHkgbmV3IGNhcHMKCSAgYW5kIHRoZW4gZXZlbiBzaW1wbGlmaWVkIHRoZW0uCgkgIFRoZSBuZXcgaW1wbGVtZW50aW9uIG5vdyBpcyBhYm91dCAxLjI3IHRpbWVzIGZhc3Rlci4KCjIwMTEtMDUtMjcgMTE6NDU6MTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IERyb3Agc3RpY2t5IGV2ZW50cyBwdXNoZWQgb24gZmx1c2hpbmcgc3JjcGFkcyBpbnN0ZWFkIG9mIGFjdGl2YXRpbmcgdGhlbSBpbW1lZGlhdGVseQoKMjAxMS0wNS0yNiAxNDo1NjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogUGFzcyB0aGUgY29tcGxldGUgY2FwcyB0byB0cmFuc2Zvcm1fY2FwcwoJICBJbnN0ZWFkIG9mIHBhc3NpbmcgaXQgc3RydWN0dXJlIGJ5IHN0cnVjdHVyZS4gVGhpcyBhbGxvd3MKCSAgYmV0dGVyIG9wdGltaXplZCB0cmFuc2Zvcm1fY2FwcyBmdW5jdGlvbnMgYW5kIGFsbG93cyBiZXR0ZXIKCSAgdHJhbnNmb3JtYXRpb24gZGVjaXNpb25zLgoJICBTZWUgYnVnICM2MTk4NDQuCgoyMDExLTA1LTI3IDA5OjA1OjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZW5kIGFuIHVwZGF0ZSBORVdTRUdNRU5UIGV2ZW50IGRvd25zdHJlYW0gaWYgdGhlIGR1cmF0aW9uIGNoYW5nZXMKCSAgVGhpcyBhbGxvd3Mgc3RyZWFtaW5nIHRoZSBjb21wbGV0ZSBmaWxlIGZvciBmaWxlcyB0aGF0IGhhdmUgZ3Jvd24gc2luY2UKCSAgc3RyZWFtaW5nIHN0YXJ0ZWQuCgkgIEZpeGVzIGJ1ZyAjNjQ3OTQwLgoKMjAxMS0wNS0yNiAxOTo0NToxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZWZhY3RvciBfcHVzaF9ldmVudAoJICBSZXdvcmsgX3B1c2hfZXZlbnQoKSBhIGxpdHRsZSBzbyB0aGF0IGl0IGRyb3BzIGV2ZW50cyBvbiBibG9ja2luZyBwYWRzLgoJICBNYWtlIHN1cmUgdGhhdCBldmVudHMgYXJlIGZvcndhcmRlZCB3aGVuIHdlIHVuYmxvY2suCgkgIEFkZCBjb3VudGVyIG9uIHRoZSBwYWQgdG8ga2VlcCB0cmFjayBvZiBidXN5IHBhZHMuCgoyMDExLTA1LTI2IDE4OjIxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHJlZmFjdG9yIHByZSBhbmQgcG9zdCBjaGFpbiBjb2RlCgoyMDExLTA1LTI2IDE3OjUwOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGtlZXAgY291bnRlciBmb3IgYWN0aXZlIHBhZHMKCSAgS2VlcCBhIGNvdW50ZXIgdG8gbWFyayB0aGUgYW1vdW50IG9mIHRocmVhZHMgY3VycmVudGx5IHB1c2hpbmcgZGF0YSBvbiB0aGUgcGFkLgoKMjAxMS0wNS0yNiAxNzozOToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiByZWZhY3RvciBwcmUgcHVzaCBjb2RlCgkgIFJlZmFjdG9yIHRoZSBjb2RlIHRoYXQgaXMgZXhlY3V0ZWQgYXMgdGhlIGZpcnN0IHN0ZXAgb2YgYSBwdXNoIG9wZXJhdGlvbiB3aGVyZQoJICB3ZSBjaGVjayB0aGUgcHJvYmVzIGFuZCBibG9ja2luZyBhbmQgcmVzb2x2ZSB0aGUgcGVlci4KCjIwMTEtMDUtMjYgMTc6MDg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiByZW1vdmUgcGFkIGNhY2hlCgkgIFJlbW92ZSB0aGUgcGFkIGNhY2hlIGFzIHRoaXMgaXMgZ29pbmcgdG8gYmUgcmV3b3JrZWQgZm9yIG5ldyBwYWQgYmxvY2tpbmcgYW5kCgkgIHByb2Jlcy4KCjIwMTEtMDUtMjYgMTY6NDg6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc2ltcGxpZnkgaGFuZGxpbmcgb2YgYnVmZmVyIGxpc3RzCgkgIEltcGxlbWVudCBhIGRlZmF1bHQgYnVmZmVyLWxpc3QgZnVuY3Rpb24gaW4gY2FzZSB0aGUgZWxlbWVudCBkb2Vzbid0IGltcGxlbWVudAoJICBvbmUuCgkgIEFsc28gcGFzcyBidWZmZXItbGlzdHMgdG8gdGhlIGhhdmUtZGF0YSBzaWduYWwsIHRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBzb21lCgkgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgY29kZS4KCjIwMTEtMDUtMjYgMTY6MTU6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZW1vdmUgb2xkIGdzdF9wYWRfc2V0X2Jsb2NrZWQgbWV0aG9kcwoKMjAxMS0wNS0yNiAxNDoxNDoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgcHVzaHNyYzogRml4IGluZmluaXRlIHJlY3Vyc2lvbiBpbiBwdXNoc3JjIHF1ZXJ5IGhhbmRsZXIKCjIwMTEtMDUtMjYgMTM6MzY6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNS0yNSAxNjowMjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGdzdDogd2UgY2FuIG5vdyB1c2UgR0xpYiAyLjI0IEFQSSB1bmNvbmRpdGlvbmFsbHkKCjIwMTEtMDUtMjUgMTU6NTQ6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgR0xpYiByZXF1aXJlbWVudCB0byA+PSAyLjI0CgkgIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3dpa2kvUmVsZWFzZVBsYW5uaW5nL0dMaWJSZXF1aXJlbWVudAoKMjAxMS0wNS0yNSAxNTozODozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiB1cGRhdGUgcmVsZWFzZSBpbnN0cnVjdGlvbnMgZm9yIGdub21lIGNoYW5nZQoKMjAxMS0wNS0yNSAxMzo0MDozMCArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IFBsYWNhdGUgZ2NjIGJ5IGRlZmluaW5nIEVXT1VMREJMT0NLIHRvIHNvbWV0aGluZwoKMjAxMS0wNS0yNSAxMjo0Nzo1MSArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBGaXggV0FLRV9FVkVOVCgpIHRvIGJlaGF2ZSBwb3NpeGx5IG9uIFdpbmRvd3MKCjIwMTEtMDUtMjQgMjA6Mjg6MTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICByZWdpc3RyeWJpbmFyeTogc21hbGwgY2xlYW51cHMKCSAgUmVtb3ZlIHVubmVlZGVkIGJyYWNlcyBmcm9tIHN0cmluZyBkZWZpbmUuIFNtYWxsIGRvYyBpbXByb3ZlbWVudC4KCjIwMTEtMDUtMjQgMjA6Mjc6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiB1c2UgZ3VpbnQgZm9yIHRoZSB2ZXJzaW9uIG51bWJlciBwYXJ0cwoJICBVc2UgdW5zaWduZWQgaW50ZWdlcnMgZm9yIGV4dHJhIHNhZmV0eSAobGlrZSB3ZSBkbyBpbiBwbHVnaW4gdmVyc2lvbiBwYXJzaW5nKS4KCjIwMTEtMDUtMjQgMTg6Mzk6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgcmVtb3ZlIHNvbWUgbW9yZSBkZXByZWNhdGVkIG1ldGhvZHMKCjIwMTEtMDUtMjQgMTg6Mjk6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgcGFkdGVtcGxhdGU6IHJlbW92ZSB1bnVzZWQgZmxhZwoKMjAxMS0wNS0yNCAxODoxNzoyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIGZlYXR1cmU6IHVzZSBvYmplY3QgbmFtZQoJICBSZW1vdmUgdGhlIG5hbWUgcHJvcGVydHkgZnJvbSB0aGUgcGx1Z2luIGZlYXR1cmUgYW5kIHBvcnQgY29kZSB0byB1c2UgdGhlIG9iamVjdAoJICBuYW1lIGluc3RlYWQuCgoyMDExLTA1LTI0IDE4OjE2OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIHJlbW92ZSBvbGQgZ2xpYiBjaGVjawoKMjAxMS0wNS0yNCAxNzo0MzozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMjQgMTc6MzY6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgc2NoZWR1bGluZzogcG9ydCB0byBuZXcgc2NoZWR1bGluZyBxdWVyeQoKMjAxMS0wNS0yNCAxMjo1MjowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBxdWVyeTogYWRkIFNDSEVEVUxJTkcgcXVlcnkKCSAgQWRkIGEgbmV3IHF1ZXJ5IHRvIHJlcGxhY2UgdGhlIGNoZWNrZ2V0cmFuZ2UgZnVuY3Rpb24uCgoyMDExLTA1LTI0IDE5OjQzOjU4ICswNTMwICBEZWJhcnNoaSBSYXkgPHJpc2hpQGdudS5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQ2NAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjUwOTczCgoyMDExLTA1LTI0IDE2OjE0OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IEZvcndhcmQgc3RpY2t5IGV2ZW50cyB0byBuZXdseSBjcmVhdGVkIHNyY3BhZHMKCjIwMTEtMDUtMjQgMTY6MTM6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBGb3J3YXJkIHN0aWNreSBldmVudHMgdG8gbmV3bHkgY3JlYXRlZCBzcmNwYWRzCgoyMDExLTA1LTI0IDE2OjA4OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IEFkZCBnc3RfcGFkX3N0aWNreV9ldmVudHNfaXRlcmF0ZSgpIGZ1bmN0aW9uCgoyMDExLTA1LTI0IDEzOjI3OjA5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGRlYnVndXRpbHM6IEZpeCBmb3IgR3N0SXRlcmF0b3IgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMjQgMTM6Mjg6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgUmV2ZXJ0ICJkZWJ1Z3V0aWxzOiBGaXggZm9yIEdzdEl0ZXJhdG9yIEFQSSBjaGFuZ2VzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGUxY2MzMTc2ZDZmYjgwMjNiYmUwYzczMzYxNWIyYThjNDIwYTIwNzcuCgkgIFRoaXMgaXMgbm90IHRoZSAwLjExIGJyYW5jaC4uLgoKMjAxMS0wNS0yNCAxMzoyNzowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBGaXggZm9yIEdzdEl0ZXJhdG9yIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTI0IDA5OjQ4OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RwYWQuaAoKMjAxMS0wNS0yNCAwMDoyNjo0MCArMDMwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AY2l0YS51dG9yb250by5jYT4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogaW1wcm92ZSB0aGUgR1NUX1RJTUVfRk9STUFUL0FSR1MgZG9jcwoKMjAxMS0wNS0yMyAyMzo0MDoyMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5oOgoJICBkb2NzOiBoaWRlIHRoaXMgZnJvbSB0aGUgZG9jcwoKMjAxMS0wNS0yMyAxODozMDoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogdXNlIEdTVF9TRUdNRU5UX0ZPUk1BVCBmb3Igc2VnbWVudHMKCjIwMTEtMDUtMjMgMTg6MTU6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgdHJhbnNmb3JtOiBmaXhlcyBmb3IgYnVmZmVycG9vbCBoYW5kbGluZwoJICBEb24ndCBlcnJvciBvdXQgd2hlbiB0aGUgYWxsb2NhdGlvbiBxdWVyeSByZXR1cm5zIHN1Y2Nlc3MuCgkgIERvIGJ1ZmZlcnBvb2wgcXVlcnkgYWZ0ZXIgd2UgcHVzaGVkIHRoZSBjYXBzIGV2ZW50IGRvd25zdHJlYW0gc28gdGhhdCB3ZSBjYW4gZ2V0CgkgIGEgZ29vZCBidWZmZXJwb29sIHN1Z2dlc3Rpb24uCgkgIEFsc28gcHJveHkgdGhlIGJ1ZmZlcnBvb2wgcXVlcnkgZG93bnN0cmVhbSB3aGVuIHdlIG9wZXJhdGUgaW4gaW5fcGxhY2UgbW9kZS4KCjIwMTEtMDUtMjMgMTg6MTQ6MjcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogaW1wcm92ZSBkZWJ1Z2dpbmcKCjIwMTEtMDUtMjMgMTY6NTM6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgdHJhbnNmb3JtOiByZXNldCByZWNvbmZpZ3VyZSBzdGF0ZQoJICBXaGVuIHdlIG5lZ290aWF0ZSBuZXcgY2FwcywgcmVzZXQgdGhlIHJlY29uZmlndXJlIHN0YXRlLgoKMjAxMS0wNS0yMCAxODo1NjozNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBXSVAgaGFuZGxlIGJ1ZmZlcnBvb2wKCjIwMTEtMDUtMjEgMTk6MDY6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogYXZvaWQgY2FsbGluZyBfc2V0X2NhcHMoKSBvbiB0aGUgc3JjcGFkCgkgIEF2b2lkIGluc3RhbGxpbmcgYSBzZXRjYXBzIGZ1bmN0aW9uIG9uIHRoZSBzcmNwYWQgYW5kIGNhbGxpbmcgdGhlIHNldGNhcHMKCSAgZnVuY3Rpb24sIHdlIGNhbiBkbyBtb3JlIGVmZmljaWVudGx5IHdpdGggc2VuZGluZyB0aGUgZXZlbnQgb3Vyc2VsZiBhbmQgY2FsbGluZwoJICBvdXIgdm1ldGhvZC4KCjIwMTEtMDUtMjAgMTY6MDM6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdHBhZC5oCgkgIGdzdC9nc3RwbHVnaW4uaAoKMjAxMS0wNS0yMCAxNTo1ODoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgc29tZSBtb3JlIGNvZGUKCSAgUmVtb3ZlIHNvbWUgbW9yZSB1bnVzZWQgY29kZSBmcm9tIGJhc2V0cmFuc2Zvcm0uCgkgIFByZXBhcmUgZm9yIGltcGxlbWVudGluZyBidWZmZXJwb29scy4KCjIwMTEtMDUtMjAgMTU6NTA6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgYXBpCgoyMDExLTA1LTIwIDE1OjQ4OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZGVwcmVjYXRpb24tZ3VhcmRzOiBmaXh1cCBmb3IgY29tbWl0IDlmZjRlYzMxMDRkMjUxMGI4ZjM3OWZmMzhjNjcxNjgyZmY3OTVlMzMKCSAgUmVtb3ZlIHRoZSBkZXByZWNhdGlvbiBndWFyZHMgZm9yIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyBhZ2FpbiAoZXZlbiB0aG91Z2ggaXQKCSAgaXMgZGVwcmVjYXRlZCkgYXMgd2UgdXNlIGl0IGluIHRoZSB0ZXN0cy4gUmVtb3ZlICJfIiBmb3IgaW50bGlua2Z1bmMuCgoyMDExLTA1LTIwIDEzOjA2OjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMjAgMTM6MDM6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogT25seSByZWluaXQgdGhlIGNhY2hlZCBHc3RDbG9ja0lEIGlmIGl0IGlzIGZvciB0aGUgc2FtZSBjbG9jawoJICBUaGUgY2xvY2sgbWlnaHQgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSBjbG9jayBJRCB3YXMgY3JlYXRlZCBhbmQgaW4KCSAgdGhhdCBjYXNlIHdlIGhhdmUgdG8gcmVxdWVzdCBhIG5ldyBvbmUuCgoyMDExLTA1LTIwIDEyOjQzOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDogYWRkIG1ldGhvZCB0byBnZXQgbWV0YWRhdGEKCSAgQWRkIGEgbWV0aG9kIHRvIGdldCB0aGUgbWV0YWRhdGEgZnJvbSBhIGtsYXNzLgoKMjAxMS0wNS0yMCAxMjo0MzowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBmYWN0b3J5OiBmaXggdHlwbwoKMjAxMS0wNS0yMCAxMjoxODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogQWx3YXlzIHNlbmQgYSBTRUdNRU5UIGV2ZW50IHdoZW4gdGhlIGFjdGl2ZSBwYWQgY2hhbmdlcwoKMjAxMS0wNS0yMCAxMjoxNjo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogRml4IGNvcHkmcGFzdGUgbWlzdGFrZSBpbiB0aGUgc3JjcGFkIGV2ZW50IGZ1bmN0aW9uCgoyMDExLTA1LTIwIDEyOjA3OjQ1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHkKCjIwMTEtMDUtMjAgMTI6MDA6MTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFNlbmQgdXBzdHJlYW0gZXZlbnRzIHRvIGFsbCBzaW5rcGFkcywgbm90IG9ubHkgdGhlIHNlbGVjdGVkIG9uZQoJICBUaGlzIG1ha2VzIHN1cmUgdGhhdCBTRUVLIGV2ZW50cyBhcmUgc2VudCB0byBhbGwgdXBzdHJlYW0gZWxlbWVudHMsIHdoaWNoIGlzCgkgIHJlcXVpcmVkIGlmIGRpZmZlcmVudCBzdHJlYW1zIGFyZSBjb21wbGV0ZWx5IGRpc3RpbmN0IHBpcGVsaW5lIHBhcnRzLiBBbHNvIHRoaXMKCSAgYWxsb3dzIFFvUyB0byBiZSBkb25lIG9uIGRlc2VsZWN0ZWQgc3RyZWFtcywgZmx1c2hlcyB0byBiZSBoYW5kbGVkIGNvcnJlY3RseSwKCSAgZXRjLgoKMjAxMS0wNS0yMCAxMTozNjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIHBlbmRpbmcgZXZlbnQgZm9yIHN0aWNreSBldmVudHMKCSAgQ2hhbmdlIHRoZSBzdGlja3kgZXZlbnQgYXJyYXkgc28gdGhhdCBpdCBjb250YWlucyBhIHBlbmRpbmcgYW5kIGFuIGFjdGl2ZSBldmVudC4KCSAgRXZlbnRzIG9uIHRoZSBzaW5rcGFkIGFyZSBjb3BpZWQgdG8gdGhlIHBlbmRpbmcgYXJyYXkgYW5kIGFmdGVyIHRoZSBldmVudGZ1bmMKCSAgcmV0dXJuZWQgVFJVRSwgbW92ZWQgdG8gdGhlIGFjdGl2ZSBldmVudC4gVGhpcyBhbGxvd3MgdXMgdG8gcXVldWUgbmV3IGV2ZW50cwoJICBsaWtlIHdoZW4gd2UgZG8gcGVyLXBhZCBvZmZzZXRzIHdpdGhvdXQgcmVtb3ZpbmcgdGhlIGN1cnJlbnRseSBhY3RpdmUgZXZlbnQuCgkgIFJlbW92ZSB0aGUgYWN0aXZlIGFyZ3VtZW50IGZyb20gdGhlIGdzdF9wYWRfZ2V0X3N0aWNreV9ldmVudCgpIG1ldGhvZCwgdGhlCgkgIHBlbmRpbmcgZXZlbnRzIGFyZSBub3Qgc29tZXRoaW5nIHdlIHdhbnQgdG8gZXhwb3NlLgoKMjAxMS0wNS0yMCAwMDozOToxMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIHByZXNldDogaW5jbHVkZSBjbGVhbnVwCgkgIE9ubHkgaGF2ZSBpbmNsdWRlIGluIHRoZSBpbnN0YWxsZWQgaGVhZGVyIHdlIG5lZWQgdG8gdXNlIGl0LiBNb3ZlIHRoZSBpbmNsdWRlcwoJICBuZWVkZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIHRvIHRoZSBjIGZpbGUuCgoyMDExLTA1LTE5IDIzOjE5OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmludGVyZmFjZXM6CgkgIGRvY3M6IHVwZGF0ZSBwbHVnaW4gaW50cm9zcGVjdGlvbiBkYXRhCgkgIE5vdyBtb3JlIGZpbGVzIGFyZSBtZXJnZWQgYW5kIHByb2R1Y2VkIGluIGEgY2Fub25pY2FsIGZhc2hpb24sIHdoaWNoIGhvcGVmdWxseQoJICBjcmVhdGVzIGxlc3Mgb3Igbm8gZGVsdGEgaW4gdGhlIGZ1dHVyZS4KCjIwMTEtMDUtMTkgMjI6NTY6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOWU1YmJkNSB0byA2OWI5ODFmCgoyMDExLTA1LTE5IDE5OjA3OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogY2FwcyBhcmUgbm90IHN0b3JlZCBvbiBmbHVzaGluZyBwYWRzCgkgIENhcHMgYXJlIG5vdyBhbHNvIHN0b3JlZCBvbiBmbHVzaGluZyBwYWRzIGluIHRoZSBpbmFjdGl2ZSBzdGF0ZS4KCjIwMTEtMDUtMTkgMTk6MDE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYXBwbHkgcGFkIG9mZnNldCBvbiBzaW5rcGFkIGV2ZW50cyB0b28KCSAgQXBwbHkgdGhlIHBhZCBvZmZzZXQgaW4gdGhlIHNlbmRfZXZlbnQoKSBmdW5jdGlvbiBhcyB3ZWxsLgoKMjAxMS0wNS0xOSAxODoyNzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgcGVyLXBhZCBvZmZzZXRzCgkgIFdoZW4gbGlua2luZyBwYWRzIGFuZCB3aGVuIGNvcHlpbmcgYSBzZWdtZW50IGV2ZW50IGZyb20gdGhlIHNvdXJjIHBhZCB0byB0aGUKCSAgc2lua3BhZCwgYXBwbHkgdGhlIHNyYyBhbmQgc2lua3BhZCBvZmZzZXRzIHRvIHRoZSBzZWdtZW50IGJhc2UuIE1ha2Ugc3VyZSB0aGF0CgkgIHdlIG9ubHkgbW9kaWZ5IHRoZSBldmVudCBzdG9yZWQgb24gdGhlIHNpbmtwYWQgYW5kIG5ldmVyIHRoZSBvbmUgb24gdGhlIHNvdXJjZQoJICBwYWQuCgkgIFdoZW4gY2hhbmdpbmcgdGhlIHBhZCBvZmZzZXQsIHBlcmZvcm0gdGhlIHNlZ21lbnQgY29weSB3aXRoIHRoZSB1cGRhdGVkIG9mZnNldHMuCgkgIFdoZW4gcHVzaGluZyBhIHNlZ21lbnQgZXZlbnQsIGFwcGx5IHRoZSBzcmNwYWQgb2Zmc2V0IGJlZm9yZSBzZW5kaW5nIHRoZSBldmVudAoJICB0byB0aGUgcGVlciBwYWQuCgkgIFRoaXMgcGFydCBpcyBtaXNzaW5nIHRoZSBhZGp1c3RtZW50IG9mIHRoZSBzZWdtZW50IGV2ZW50IG9uIHRoZSBzaW5rcGFkLCB3aGljaAoJICBpcyBmb3IgYSBsYXRlciBwYXRjaC4KCjIwMTEtMDUtMTkgMTY6MjY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgbWV0aG9kcyB0byBhZGp1c3QgdGhlIG9mZnNldAoJICBBZGQgbWV0aG9kcyB0byBhZGp1c3QgdGhlIG9mZnNldC4gVGhpcyB3aWxsIGJlIHVzZWQgdG8gY2hhbmdlIHRoZSBzZWdtZW50IGV2ZW50cwoJICB3aXRoIGFuIG9mZnNldCBzbyB0aGF0IHdlIGNhbiB0d2VhayB0aGUgdGltaW5nIG9mIHRoZSBzdHJlYW0gb24gYSBwZXItcGFkIGJhc2UuCgoyMDExLTA1LTE5IDEyOjExOjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogUG9ydCB0byB0aGUgbmV3IHNlZ21lbnQgQVBJCgkgIFRoZSBzd2l0Y2ggYWN0aW9uIHNpZ25hbCB3aXRoIHRoZSBzdG9wIGFuZCBzdGFydCBydW5uaW5nIHRpbWVzCgkgIGlzIG5vdCBuZWNlc3NhcnkgYW55bW9yZS4gQ2xvc2luZyBvZiBzZWdtZW50cyBpcyBub3QgbmVjZXNzYXJ5CgkgIGFuZCBhZGp1c3RpbmcgdGhlIHN0YXJ0IHJ1bm5pbmcgdGltZSBvZiBhIHNlZ21lbnQgY2FuIGxhdGVyIGJlCgkgIGRvbmUgd2l0aCBuZXcgR3N0UGFkIEFQSS4KCjIwMTEtMDUtMTkgMTE6MzA6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgZ3N0L2dzdGdob3N0cGFkLmgKCjIwMTEtMDUtMTggMTk6NDM6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogc3RvcmUgc3RpY2t5IGV2ZW50cyBvbiBmbHVzaGluZyBzaW5rcGFkcyB0b28KCSAgRmlyc3Qgc3RvcmUgdGhlIHN0aWNreSBldmVudCBvbiB0aGUgc2lua3BhZCBpbiB0aGUgaW5hY3RpdmUgc3RhdGUsIHRoZW4gY2hlY2sKCSAgZm9yIHRoZSBmbHVzaGluZyBmbGFnLiBXZSB3YW50IHRvIGhhdmUgdGhlIGV2ZW50cyBvbiBzaW5rcGFkcyBhdCBhbGwgdGltZXMsCgkgIHJlYWR5IHRvIGJlIGFjdGl2YXRlZCB3aGVuIHRoZSBwYWQgYmVjb21lcyBhY3RpdmUuCgoyMDExLTA1LTE4IDE4OjUzOjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1vdmUgY2FwcyBjaGVjayB0byBjZW50cmFsIGxvY2F0aW9uCgkgIE1ha2UgYSBmdW5jdGlvbiB0byBjYWxsIHRoZSBldmVudGZ1bmMgYW5kIHBlcmZvcm0gYSBjYXBzIGNoZWNrIHdoZW4gd2UgYXJlCgkgIGRpc3BhdGNoaW5nIGEgY2FwcyBldmVudC4KCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgYWxsIGNvZGUgcGF0aHMgY29ycmVjdGx5IGNoZWNrIHRoYXQgdGhlIGNhcHMgYXJlCgkgIGFjY2VwdGFibGUgYmVmb3JlIHNlbmRpbmcgdGhlIGNhcHMgdG8gdGhlIGV2ZW50ZnVuY3Rpb24uCgoyMDExLTA1LTE4IDE4OjUyOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhdm9pZCBjYWxsaW5nIHNldGNhcHMgdG9vIG1hbnkgdGltZXMKCSAgRG9uJ3QgY2FsbCBzZXRjYXBzLCB0aGUgY2FwcyBldmVudCB3aWxsIHRha2UgY2FyZSBvZiBwcm9wYWdhdGluZyB0aGUgY2FwcyBvbiBhbGwKCSAgcGFkcy4KCjIwMTEtMDUtMTggMTg6NDg6MDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFkZCBhbGxvY2F0aW9uIHF1ZXJ5IG5hbWUKCSAgQWRkIEFMTE9DQVRJT04gcXVlcnkgbmFtZSBhbmQgZ3VhcmQgc29tZSBmdW5jdGlvbnMgYWdhaW5zdCBpbnZhbGlkIHF1ZXJpZXMuCgoyMDExLTA1LTE4IDE2OjU2OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogTWFrZSBTRUdNRU5UIGV2ZW50IHBhcnNpbmcgQVBJIG1vcmUgY29uc2lzdGVudCB3aXRoIHRoZSBvdGhlcnMKCjIwMTEtMDUtMTggMTY6NDc6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogcmVsYXggY2FwcyBjaGVjawoJICBBbHNvIHJ1biB0aGUgY2FwcyB0cmFuc2Zvcm0gZnVuY3Rpb24gb24gQU5ZIGNhcHMsIGxpa2Ugd2UgdXNlZCB0byBkbyBiZWZvcmUuCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGNhcHNmaWx0ZXIgaGFzIGEgY2hhbmNlIHRvIGZpbHRlciBBTlkgY2FwcyBhcyB3ZWxsLgoKMjAxMS0wNS0xOCAxNjoyOToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgZm9yZ2V0IHRvIHRha2UgdGhlIG9iamVjdCBsb2NrIHdoZW4gZ2V0dGluZyBhIHN0aWNreSBldmVudAoKMjAxMS0wNS0xOCAxNjoyNjozMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBBZGQgZnVuY3Rpb24gdG8gZ2V0IHN0aWNreSBldmVudHMgZnJvbSBhIHBhZAoJICBBUEk6IGdzdF9wYWRfZ2V0X3N0aWNreV9ldmVudCgpCgoyMDExLTA1LTE4IDE1OjQzOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogZml4IGV2ZW50IGNvcHkKCSAgRml4IHBhcmVudCByZWZjb3VudCBvbiBldmVudCBjb3B5LgoJICBGaXggdW5pdCB0ZXN0LgoKMjAxMS0wNS0xOCAxNToyOToyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBub3RpZnkgY2FwcyBwcm9wZXJ0eSBjaGFuZ2UgaW4gY2FsbHNldGNhcHMKCSAgTm90aWZ5IHRoZSBjYXBzIHByb3BlcnR5IGNoYW5nZSBpbiB0aGUgYmFja3dhcmRzIGNvbXBhdGlibGUgZnVuY3Rpb24gdG8gY2FsbCB0aGUKCSAgc2V0Y2FwcyBmdW5jdGlvbi4KCjIwMTEtMDUtMTggMTY6MDk6MTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmQzNTA3MyB0byA5ZTViYmQ1CgoyMDExLTA1LTE4IDE1OjA0OjQ4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiByZW1vdmUgR3N0UHJveHlQYWQgZnJvbSBwcml2YXRlIHNlY3Rpb24KCjIwMTEtMDUtMTggMTU6MDI6MDIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBkb2NzOiB1c2UgdGhlIHNhbWUgbmFtZSBmb3IgdGhlIGFyZ3VtZW50IGluIHByb3RvdHlwZSBhbmQgZG9jcwoKMjAxMS0wNS0xOCAxNDo1OTo0NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHB1dCBnZW5lcmF0ZWQgc291cmNlcyB0byBCVUlMVF9TT1VSQ0VTIGFuZCBjbGVhbiB0aGVtIG9uIG1ha2UgY2xlYW4KCjIwMTEtMDUtMTggMTM6MTk6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA1LTE4IDEzOjE0OjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RtaW5pb2JqZWN0LmMKCSAgZ3N0L2dzdHBhZC5jCgkgIGdzdC9nc3RwYWQuaAoJICBnc3QvZ3N0cGx1Z2luLmgKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYwoKMjAxMS0wNS0xOCAxNDoxMDoxMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHJlaW5zZXJ0IG1pc3Npbmcgc3BhY2UgdG8gZml4IHByZXZpb3VzIGNvbW1pdAoKMjAxMS0wNS0xOCAxMzo1NDo0MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBtYW51YWw6IHNpbXBsaWZ5IHRoZSBzbmlwZXQgZXh0cmFjdGlvbiBydWxlcwoJICBVc2UgJDwgaW5zdGVhZCBvZiByZXBlYXRpbmcgdGhlIG5hbWUgb2YgdGhlIGRlcGVuZGVuY3kuCgoyMDExLTA1LTE4IDEwOjU5OjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIG1hbnVhbDogZG9uJ3QgZXh0cmFjdCB0aGUgeG1sIGV4YW1wbGUgYW55bW9yZSwgaXRzIGdvbmUKCSAgQXMgYSBmb2xsb3d1cCBmb3IgY29tbWl0IGNkYTVhMzUzZDI3MzI2YzAyNzJhNzljOTJjMTFjMjIxYTQwOTJkYTQgZG9uJ3QgdHJ5CgkgIGV4dHJhY3RpbmcgYW4gZXhhbXBsZSB0aGF0IGhhcyBiZWVuIHJlbW92ZWQuCgoyMDExLTA1LTE4IDEyOjIzOjM5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ2ZGZjZWEgdG8gZmQzNTA3MwoKMjAxMS0wNS0xOCAxMToyMTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgZG9jczogdXBkYXRlIGRvY3Mgc29tZSBtb3JlCgoyMDExLTA1LTE4IDExOjA4OjUyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiByZXdvcmsgc3RpY2t5IGV2ZW50cyBhIGxpdHRsZQoJICBVcGRhdGUgdGhlIGRlc2lnbiBkb2NzIHdpdGggc29tZSBjbGVhciBydWxlcyBmb3IgaG93IHN0aWNreSBldmVudHMgYXJlCgkgIGhhbmRsZWQuCgkgIFJlaW1wbGVtZW50IHRoZSBzdGlja3kgdGFncywgdXNlIGEgc21hbGwgc3RydWN0dXJlIHRvIGhvbGQgdGhlIGV2ZW50IGFuZCBpdHMKCSAgY3VycmVudCBzdGF0ZSAoYWN0aXZlIG9yIGluYWN0aXZlKS4KCSAgRXZlbnRzIG9uIHNpbmtwYWRzIG9ubHkgYmVjb21lIGFjdGl2ZSB3aGVuIHRoZSBldmVudCBmdW5jdGlvbiByZXR1cm5lZCBzdWNjZXNzCgkgIGZvciB0aGUgZXZlbnQuCgkgIFdoZW4gbGlua2luZywgb25seSB1cGRhdGUgZXZlbnRzIHRoYXQgYXJlIGRpZmZlcmVudC4KCSAgQXZvaWQgbWFraW5nIGEgY29weSBvZiB0aGUgZXZlbnQgYXJyYXksIHVzZSB0aGUgb2JqZWN0IGxvY2sgdG8gcHJvdGVjdCB0aGUgZXZlbnQKCSAgYXJyYXkgYW5kIHJlbGVhc2UgaXQgb25seSB0byBjYWxsIHRoZSBldmVudCBmdW5jdGlvbi4gVGhpcyB3aWxsIG5lZWQgdG8gY2hlY2sKCSAgaWYgc29tZXRoaW5nIGNoYW5nZWQsIGxhdGVyLgoJICBEaXNhYmxlIGEgdGVzdCBpbiB0aGUgdW5pdCB0ZXN0LCBpdCBjYW4ndCB3b3JrIHlldC4KCjIwMTEtMDUtMTcgMjI6MTc6MTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWludGFpbiBmcmFtZSBzdGF0ZSBkdXJpbmcgZnJhbWUgcGFyc2luZyByb3VuZAoJICBTZWUgIzY1MDA5My4KCjIwMTEtMDUtMTIgMTE6NTU6MjAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBwcm92aWRlIGxhdGVuY3kgcXVlcnkgc3VwcG9ydAoKMjAxMS0wNS0xNyAyMjoxNTozOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2UgbWluaW11bSBmcmFtZSBzaXplIGhhbmRsaW5nIG1vcmUgZWZmaWNpZW50IGFuZCBjb252ZW5pZW50CgkgIFdoaWxlIHNvbWUgZm9ybWF0cyBhbGxvdyBzdWJjbGFzcyB0byBkZXRlcm1pbmUgYSBzcGVjaWZpYyBzdWJzZXF1ZW50CgkgIG5lZWRlZCBmcmFtZSBzaXplLCBvdGhlcnMgbWF5IHRvIG5lZWQgdG8gc2NhbiBmb3IgbWFya2VycyBhbmQgY2FuIG9ubHkKCSAgcmVxdWVzdCAnYWRkaXRpb25hbCBkYXRhJyBieSB3aGF0ZXZlciByZWFzb25hYmxlIGF2YWlsYWJsZSBzdGVwLgoJICBJbiBwdXNoIG1vZGUsIHRyeWluZyB0byBtaW5pbWl6ZSBhZGRpdGlvbmFsIGxhdGVuY3kgbGVhZHMgdG8gc3RlcCBzaXplCgkgIGJlaW5nIHRoZSBuZXh0IGlucHV0IGJ1ZmZlci4gIEluIHB1bGwgbW9kZSwgYW55IHJlYXNvbmFibGUgc3RlcCBzaXplCgkgIChzdWNoIGFzIGFscmVhZHkgdXNlZCBieSBidWZmZXIgY2FjaGluZykgY2FuIGJlIGFwcGxpZWQuCgoyMDExLTA1LTE3IDIyOjM4OjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2V0IGNvcnJlY3QgYnVmZmVyIHNpemUKCjIwMTEtMDUtMDYgMTA6NTQ6MDggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IHNob3cgZmxhZ3MgdGhlIHNhbWUgd2F5IHRoZXkgbmVlZCB0byBiZSBlbnRlcmVkCgkgIFRoZSAoZGUpc2VyaWFsaXNhdGlvbiB1c2VzICIrIiBhbmQgbm90ICIgfCAiLgoKMjAxMS0wNC0yOCAxMTozNDozOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBwbHVnaW5mZWF0dXJlOiBhdm9pZCBkdXBsaWNhdGluZyBmZWF0dXJlLT5uYW1lCgkgIFRoZSBmZWF0dXJlIG5hbWUgaXMgbm90IHN1cHBvc2VkIHRvIGNoYW5nZSBvdmVyIHRpbWUgYW55d2F5LiBJbiBvcmRlciB0byBlbmZvcmNlCgkgIHRoaXMgcGFyZW50aXplIGZlYXR1cmVzIHRvIHRoZSByZWdpc3RyeSBhbmQgbWFrZSB0aGUgZmVhdHVyZS0+bmFtZSBwb2ludGluZyB0bwoJICBHc3RPYmplY3Q6bmFtZS4gSW4gMC4xMSB3ZSBjb3VsZCBjb25zaWRlciBvZiByZW1vdmluZyB0aGUgZmVhdHVyZS0+bmFtZSB2YXJpYWJsZQoJICAoRklYTUUgY29tbWVudCBhZGRlZCkuCgkgIEZpeGVzOiAjNDU5NDY2CgoyMDExLTA1LTAyIDE1OjM2OjE0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgZG9jczogYWRkIGRlcHJlY2F0aW9uIGd1YXJkcwoJICBNb3ZlIEdzdFBhZEludExpbmtGdW5jdGlvbiB0byBwcml2YXRlIGhlYWRlciB0byBhdm9pZCBhIGRvemVuICNpZmRlZnMuIFVzZSBhCgkgIGdwb2ludGVyIGluIHB1YmxpYyBoZWFkZXIgaW5zdGVhZC4KCjIwMTEtMDUtMTcgMTk6MDM6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgcHVzaCBzdGlja3kgZXZlbnRzIG9uIGZsdXNoCgkgIE9ubHkgYWxsb3cgc2VyaWFsaXplZCBhbmQgbm9uLWZsdXNoIGV2ZW50cyBmb3J3YXJkIHRoZSBzdGlja3kgZXZlbnRzLgoKMjAxMS0wNS0xNyAxODoyMzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0OiByZXNldCBwYWQgY2FwcyBwcm9wZXJseQoKMjAxMS0wNS0xNyAxODoyMzowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgbW9yZSBkZWJ1ZwoKMjAxMS0wNS0xNyAxODoyMTozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogcmVtb3ZlIHVudXNlZCBjb2RlCgkgIFRoZSBjb2RlIHRvIG1ha2Ugc3VyZSB0aGF0IGNhcHMgYXJlIHByb3Blcmx5IHNldCBvbiBib3RoIHBhZHMsIGl0IG5vdyBoYXBwZW5zCgkgIGF1dG9tYXRpY2FsbHkgd2l0aCB0aGUgY2FwcyBldmVudC4KCjIwMTEtMDUtMTcgMTc6NTM6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICB0ZXN0czogZml4IHRlc3RzCgkgIFJlbW92ZSB0aGUgdGVzdHMgdGhhdCBoYW5kbGUgaW5jb21wYXRpYmxlIGZvcm1hdHMsIHdlIGRvbid0IHdhbnQgdGhhdCBhbnltb3JlLgoKMjAxMS0wNS0xNyAxNzo1MTo1OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGhhbmRsZSB3cmFwYXJvdW5kIGJldHRlcgoJICBOb3cgdGhhdCB3ZSB1c2UgdW5zaWduZWQgdmFsdWVzIGZvciB0aGUgc2VnbWVudCwgaGFuZGxlIHdyYXBhcm91bmQgd2hlbiBzZWVraW5nCgkgIGJldHRlci4KCjIwMTEtMDUtMTcgMTY6NTA6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIHVucmVmLCB0aGUgb2JqZWN0IGlzIE5VTEwKCjIwMTEtMDUtMTcgMTQ6MDE6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogVGhlIFJFQ09ORklHVVJFIGVsZW1lbnQgb25seSBleGlzdHMgaW4gMC4xMQoJICBJbXBsZW1lbnRpbmcgaXQgcHJvcGVybHkgaW4gMC4xMCBzZWVtcyB0byBiZSBpbXBvc3NpYmxlLgoKMjAxMS0wNS0xNyAxMzoxMzoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogVXBkYXRlIGZvciBjYXBzL3BhZCB0ZW1wbGF0ZSByZWxhdGVkIEFQSSBjaGFuZ2VzCgoyMDExLTA1LTE3IDEyOjI1OjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNlOiBVcGRhdGUgZm9yIGNhcHMvcGFkIHRlbXBsYXRlIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMTcgMTI6MDQ6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZ3N0OiBVcGRhdGUgZm9yIGNhcHMvcGFkIHRlbXBsYXRlIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMTcgMTI6MTI6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQ29uc2lkZXIgR3N0UGFkVGVtcGxhdGUgYXMgaW1tdXRhYmxlCgkgIERvbid0IGNvcHkgdGhlIHRlbXBsYXRlcyB3aGVuIGNyZWF0aW5nIHN1YmNsYXNzZXMgYnV0IG9ubHkgaW5jcmVhc2UKCSAgdGhlaXIgcmVmY291bnQuCgoyMDExLTA1LTE3IDEyOjEwOjI3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogQ3JlYXRlIHBhZCB0ZW1wbGF0ZXMgd2l0aCBmbG9hdGluZyByZWZzCgkgIEFuZCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgZmxvYXRpbmcgcmVmIGluIGdzdF9lbGVtZW50X2FkZF9wYWRfdGVtcGxhdGUoKQoKMjAxMS0wNS0xNyAxMjowNzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgcGFkdGVtcGxhdGU6IEltcHJvdmUgcmVmZXJlbmNlIGhhbmRsaW5nIG9mIHRoZSB0ZW1wbGF0ZSdzIGNhcHMKCSAgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSBkb2VzIG5vdCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgY2FwcyBhbnltb3JlLgoKMjAxMS0wNS0xNiAxMzozOToyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBkZWxheSBwcml2YXRlIGRhdGEgaW5pdGlhbGlzYXRpb24gdW50aWwgYWN0dWFsbHkgbmVlZGVkCgkgIFdlIG9ubHkgdXNlIHRoZSBwcml2YXRlIGluc3RhbmNlIGRhdGEgZm9yIHdlYWsgcmVmZXJlbmNlcyBmb3Igbm93LAoJICBzbyBjYW4gZGVsYXkgaW5pdGlhbGlzYXRpb24gdW50aWwgYWN0dWFsbHkgbmVlZGVkIChtaWNyb29wdGltaXNhdGlvbikKCjIwMTEtMDUtMTcgMTE6NTk6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWQ6IExldCB0ZW1wbGF0ZSByZWxhdGVkIGZ1bmN0aW9ucyByZXR1cm4gbmV3IHJlZmVyZW5jZXMKCSAgZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfY2FwcygpLCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGVfY2FwcygpCgkgIGFuZCBnc3RfcGFkX2dldF9wYWRfdGVtcGxhdGUoKSByZXR1cm4gYSBuZXcgcmVmZXJlbmNlIG9mIHRoZQoJICBjYXBzIG9yIHRlbXBsYXRlIG5vdyBhbmQgdGhlIHJldHVybiB2YWx1ZSBuZWVkcyB0byBiZQoJICB1bnJlZmZlZCBhZnRlciB1c2FnZS4KCjIwMTEtMDUtMTcgMTE6NDU6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBSZXZlcnQgImV2ZW50OiBleGFtcGxlIG9mIGhvdyB0byBvcHRpbWl6ZSBldmVudHMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZmEyOGUyYzVlNmU1ZTE3MmJlMzA4YzBjNTBmNDRlZDZmMzllMWE3MS4KCSAgVGhlIG9wdGltaXphdGlvbiBvbmx5IGhhcyBtaW5pbWFsIGltcGFjdCBvbiB0aGUgcGVyZm9ybWFuY2UgYW5kCgkgIG1ha2VzIGV2ZXJ5dGhpbmcgbW9yZSBjb21wbGV4LgoKMjAxMS0wNS0xNyAxMTo0NTo0MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgUmV2ZXJ0ICJldmVudDogdXBkYXRlIHRoZSBzdHJ1Y3R1cmUgd2hlbiBuZWVkZWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOTA1MTAwY2RiZTU4MGQ0ZDE4MmJmZDlkNWVjOWIzNjhhMTEwZjQ2NC4KCjIwMTEtMDUtMTcgMTE6MjI6NTggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IEZpeCBjb21waWxhdGlvbgoKMjAxMS0wNS0xNyAxMToyMDowNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSAgUmV2ZXJ0ICJxdWVyeTogYWxsb3cgX21ha2Vfd3JpdGFibGUgb24gcXVlcnkgaGFuZGxlcnMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgY2Y0ZmJjMDA1YzVjNTMwYzJhNTA5YTk0M2EwNWI5MWQ2YzlhZjNmYi4KCSAgVGhpcyBjaGFuZ2UgZGlkIG5vdCBpbXByb3ZlIHRoZSBzaXR1YXRpb24gZm9yIGJpbmRpbmdzIGJlY2F1c2UKCSAgcXVlcmllcyBhcmUgdXN1YWxseSBjcmVhdGVkLCB0aGVuIGRpcmVjdGx5IHBhc3NlZCB0byBhIGZ1bmN0aW9uCgkgIGFuZCBub3Qgc3RvcmVkIGVsc2V3aGVyZSwgYW5kIHRoZSB3cml0YWJpbGl0eSBwcm9ibGVtIHdpdGgKCSAgbWluaW9iamVjdHMgdXN1YWxseSBoYXBwZW5zIHdpdGggYnVmZmVycyBvciBjYXBzIGluc3RlYWQuCgoyMDExLTA1LTE3IDExOjE5OjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgUmV2ZXJ0ICJiaW46IERlcmVmZXJlbmNlIEdzdFF1ZXJ5KiogYmVmb3JlIHBhc3NpbmcgaXQgdG8gR1NUX1FVRVJZX1RZUEVfTkFNRSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0MzdjOTJiNDAzZTBjN2RhOWI5ZDQ1MDllZjRmZmJkMDU3MTBkZjJiLgoKMjAxMS0wNS0xNyAxMToxOToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIFJldmVydCAiZ2hvc3RwYWQ6IGZpeCBnX3JldHVybl8qIHdpdGggbmV3IHF1ZXJ5IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDg3N2MxYzI4ZmY5NTdjYTkyOTExZWFkZmM3ODVmODY2MWQ5ZTAxMjcuCgoyMDExLTA1LTE3IDA5OjQwOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZgoKMjAxMS0wNS0xNyAwOTozNTo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBNYWtlIGJvdGggcGFyYW1ldGVycyB0byBnc3Rfc3RydWN0dXJlX2lzX2VxdWFsKCkgY29uc3QKCjIwMTEtMDUtMTcgMDk6MzM6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IFVwZGF0ZSBTaW5jZSBtYXJrZXJzIHRvIHRoZSBjb3JyZWN0IHZlcnNpb24KCjIwMTEtMDUtMTcgMDk6MzM6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IEFkZCBnc3Rfc3RydWN0dXJlX2ludGVyc2VjdCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pbnRlcnNlY3QoKQoKMjAxMC0wOS0xMCAxODozMzozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0c3RydWN0dXJlOiBBZGQgZ3N0X3N0cnVjdHVyZV9jYW5faW50ZXJzZWN0IEFQSQoJICBBbGxvd3MgY2hlY2tpbmcgaWYgdHdvIHN0cnVjdHVyZXMgY2FuIGludGVyc2VjdCB3aXRob3V0IGhhdmluZyB0bwoJICBnbyB0aHJvdWdoIEdzdENhcHMKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2Nhbl9pbnRlcnNlY3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMwMAoKMjAxMC0wOS0xMCAxODoxNDowNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0cnVjdHVyZTogTmV3IEFQSTogZ3N0X3N0cnVjdHVyZV9pc19lcXVhbAoJICBBbGxvd3MgY2hlY2tpbmcgZXF1YWxpdHkgb2YgR3N0U3RydWN0dXJlIHdpdGhvdXQgaGF2aW5nIHRvIGNyZWF0ZQoJICBpbnRlcm1lZGlhcnkgR3N0Q2Fwcy4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lzX2VxdWFsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzMDAKCjIwMTEtMDUtMTYgMTk6MDk6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IHNldCBlbGVtZW50cyBpbiBQQVVTRUQKCSAgU2V0IGVsZW1lbnRzIGluIFBBVVNFRCBiZWZvcmUgdHJ5aW5nIHRvIHNldCBjYXBzIG9uIHBhZHMuCgoyMDExLTA1LTE2IDE5OjA1OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIHRlc3Q6IGZpeCBnaG9zdHBhZCB0ZXN0CgkgIFdlIG5lZWQgdG8gaGF2ZSBhY3RpdmF0ZWQgcGFkcyBiZWZvcmUgd2UgY2FuIHBhc3MgYXJvdW5kIGNhcHMuCgkgIERvbid0IHNldCBOVUxMIGNhcHMgb24gcGFkcy4KCjIwMTEtMDUtMTYgMTk6MDQ6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYXZvaWQgc2V0dGluZyBOVUxMIGNhcHMgb24gcGFkcwoKMjAxMS0wNS0xNiAxODo0ODoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggYnVmZmVyIHJlZmNvdW50aW5nCgkgIFdoZW4gd2UgZmFpbCB0byBhbGxvY2F0ZSBhbiBvdXRwdXQgYnVmZmVyLCBzZXQgdGhlIGJ1ZmZlciBwb2ludGVyIHRvIE5VTEwgb3IKCSAgZWxzZSB0aGUgY2FsbGluZyBmdW5jdGlvbiB3aWxsIHRyeSB0byB1bnJlZiBpdC4KCSAgUmVtb3ZlIHNvbWUgb2xkIGNvbW1lbnRzCgoyMDExLTA1LTE2IDE4OjI5OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGFsbG93IE5VTEwgZmlsdGVycyBhbmQgZml4IHJlZmNvdW50aW5nCgoyMDExLTA1LTE2IDE4OjEyOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogb25seSBhZGQgdGhlIHN0cnVjdHVyZSB3aGVuIHdlIGNvdWxkIHNldCB0aGUgcGFyZW50CgoyMDExLTA1LTE2IDE3OjUzOjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBmaXggZ19yZXR1cm5fKiB3aXRoIG5ldyBxdWVyeQoKMjAxMS0wNS0xNiAxNzoyNDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IFVwZGF0ZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKCjIwMTEtMDUtMTYgMTY6NTk6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogaGFuZGxlIG1vcmUgZm9ybWF0cwoJICBVc2UgdGhlIHNlZ21lbnQgZm9ybWF0IGluc3RlYWQgb2YgYSBoYXJkY29kZWQgX1RJTUUuCgoyMDExLTA1LTE2IDE2OjU3OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaGFuZGxlIG1vcmUgZm9ybWF0cwoJICBEb24ndCBoYXJkY29kZSBHU1RfRk9STUFUX1RJTUUgaW4gcGxhY2VzLCB3ZSBjYW4gd29yayB3aXRoIG1hbnkgZm9ybWF0cy4KCjIwMTEtMDUtMTYgMTY6NTQ6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICcwLjExJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyIGludG8gMC4xMQoKMjAxMS0wNS0xNiAxNjo1MzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgkgIENvbmZsaWN0czoKCSAgY29uZmlndXJlLmFjCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgZ3N0L2dzdGJpbi5jCgkgIGdzdC9nc3RlbGVtZW50LmMKCSAgZ3N0L2dzdGVsZW1lbnQuaAoJICBnc3QvZ3N0Z2hvc3RwYWQuYwoJICBnc3QvZ3N0bWluaW9iamVjdC5jCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmgKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmMKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmMKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYwoKMjAxMS0wNS0xNiAxNjoxMDo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgdXBkYXRlIG1hbnVhbCBjb2RlIGV4YW1wbGVzIGZvciBuZXcgX2dldF9jYXBzKCkKCjIwMTEtMDUtMTMgMDg6MzQ6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIHRlc3RzOiBVcGRhdGUgZm9yIG5lZ290aWF0aW9uIHJlbGF0ZWQgQVBJIGNoYW5nZXMKCjIwMTEtMDUtMTEgMTU6Mzg6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZWxlbWVudHM6IFVwZGF0ZSBmb3IgbmVnb3RpYXRpb24gcmVsYXRlZCBBUEkgY2hhbmdlcwoJICBUaGUgZmlsdGVyIGNhcHMgYXJlIG9ubHkgZm9yd2FyZGVkIGFuZCByZXR1cm5lZCBpbnN0ZWFkCgkgIG9mIEFOWSBjYXBzIGluIHRoZSBjb3JlIGVsZW1lbnRzIGJlY2F1c2UgdGhleSBkb24ndCBkbwoJICBhbnl0aGluZyBjYXBzIHNwZWNpZmljLgoKMjAxMS0wNS0xMSAxNToxMjowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGJhc2U6IEltcHJvdmUgbmVnb3RpYXRpb24gd2l0aCBuZXcgZ2V0Y2FwcygpIGZpbHRlcgoKMjAxMS0wNS0xMCAxNzo1NjozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0OiBBZGQgYSBmaWx0ZXIgY2FwcyBwYXJhbWV0ZXIgdG8gYWxsIGdldF9jYXBzKCkgZnVuY3Rpb25zCgkgIFRoaXMgaXMgdXNlZCB0byBwYXNzIHRoZSBwb3NzaWJsZSBjYXBzIGFuZCBwcmVmZXJlbmNlcyB0bwoJICB0aGUgcGFkIGFuZCB0byBhbGxvdyBiZXR0ZXIgbmVnb3RpYXRpb24gZGVjaXNpb25zLgoKMjAxMS0wNC0xOSAyMDowNTowNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGFkanVzdCBpbnB1dCBkYXRhIHJhdGUgZXN0aW1hdGlvbgoJICAuLi4gYmVpbmcgYXdhcmUgb2YgcG9zc2libGUgaW5pdGlhbCBoaWdoZXIgYnVyc3QgcmF0ZS4KCjIwMTEtMDUtMTMgMTg6MDc6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICBSZXdvcmsgR3N0U2VnbWVudCBoYW5kbGluZwoJICBJbXByb3ZlIEdzdFNlZ21lbnQsIHJlbmFtZSBzb21lIGZpZWxkcy4gVGhlIGlkZWEgaXMgdG8gaGF2ZSB0aGUgR3N0U2VnbWVudAoJICBzdHJ1Y3R1cmUgcmVwcmVzZW50IHRoZSB0aW1pbmcgc3RydWN0dXJlIG9mIHRoZSBidWZmZXJzIGFzIHRoZXkgYXJlIGdlbmVyYXRlZCBieQoJICB0aGUgc291cmNlIG9yIGRlbXV4ZXIgZWxlbWVudC4KCSAgZ3N0X3NlZ21lbnRfc2V0X3NlZWsoKSAtPiBnc3Rfc2VnbWVudF9kb19zZWVrKCkKCSAgUmVuYW1lIHRoZSBORVdTRUdNRU5UIGV2ZW50IHRvIFNFR01FTlQuCgkgIE1ha2UgcGFyc2luZyBvZiB0aGUgU0VHTUVOVCBldmVudCBpbnRvIGEgR3N0U2VnbWVudCBzdHJ1Y3R1cmUuCgkgIFBhc3MgYSBHc3RTZWdtZW50IHN0cnVjdHVyZSB3aGVuIG1ha2luZyBhIG5ldyBTRUdNRU5UIGV2ZW50LiBUaGlzIGFsbG93cyB1cyB0bwoJICBwYXNzIHRoZSB0aW1pbmcgaW5mbyBkaXJlY3RseSB0byB0aGUgbmV4dCBlbGVtZW50LiBObyBhY2N1bXVsYXRpb24gaXMgbmVlZGVkIGluCgkgIHRoZSByZWNlaXZpbmcgZWxlbWVudCwgYWxsIHRoZSBpbmZvIGlzIGluc2lkZSB0aGUgZWxlbWVudC4KCSAgUmVtb3ZlIGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KCk6IFRoaXMgZnVuY3Rpb24gYXMgdXNlZCB0byBhY2N1bXVsYXRlCgkgIHNlZ21lbnRzIHJlY2VpdmVkIGZyb20gdXBzdHJlYW0sIHdoaWNoIGlzIG5vdyBub3QgbmVlZGVkIGFueW1vcmUgYmVjYXVzZSB0aGUKCSAgc2VnbWVudCBldmVudCBjb250YWlucyB0aGUgY29tcGxldGUgdGltaW5nIGluZm9ybWF0aW9uLgoKMjAxMS0wNS0xNiAxMDoyNToxMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogUmUtaW1wbGVtZW50IG5vdGlmeTo6Y2FwcwoKMjAxMS0wNS0xNCAxNDowMjowNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgZG9jczogZml4IHVwIHNvbWUgU2luY2UgbWFya2VycyBhbmQgdXBkYXRlIGZvciBuZXcgbXVsdGlxdWV1ZSBhcmdzCgoyMDExLTA1LTEyIDE2OjQ4OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBEb24ndCBpbnRlcnByZXRlIHBpcGVsaW5lcyB3aXRob3V0IHNpbmsgZWxlbWVudHMgYXMgYWx3YXlzIGJlaW5nIGluIEVPUyBzdGF0ZQoJICBTb21lIHRlc3RzIChlLmcuIGVsZW1lbnRzL2NhcHNmaWx0ZXIpIGhhdmUgcGlwZWxpbmVzIHdpdGggZGFuZ2xpbmcKCSAgc2lua3BhZHMgYW5kIHdpdGhvdXQgYSBzaW5rIGVsZW1lbnQuIFRoZXNlIHBpcGVsaW5lcyBjYW4gbmV2ZXIgcG9zdAoJICBhbiBFT1MgbWVzc2FnZSAoYmVjYXVzZSB0aGlzIGlzIG9ubHkgdmFsaWQgYnkgYSBzaW5rKSBhbmQgYXMgc3VjaAoJICBzaG91bGQgbmV2ZXIgZ2V0IGFuIEVPUyBtZXNzYWdlIHBvc3RlZCBieSB0aGUgYmluLgoKMjAxMS0wNS0xMiAxNTo1MToyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IE9ubHkgcmV0cnkgd3JpdGluZyB0byB0aGUgc29ja2V0IGZvciBFQUdBSU4sIEVXT1VMREJMT0NLIGFuZCBFSU5UUgoJICBGaXhlcyBpbmZpbml0ZSBsb29wIGluIHNvbWUgY2FzZXMsIGJ1ZyAjNjUwMDAyLgoKMjAxMS0wNS0xMiAwOTo1OToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWluaW9iamVjdDogQWRkIG5ldyBtaW5pb2JqZWN0IHdlYWsgcmVmL3VucmVmIGZ1bmN0aW9ucyB0byB0aGUgZG9jcwoKMjAxMS0wNS0xMiAwOTo1NTo0NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBNaW5vciBjbGVhbnVwIG9mIGxhc3QgY29tbWl0CgoyMDExLTA1LTExIDEzOjA5OjE5IC0wNDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogQWRkIHdlYWsgcmVmZXJlbmNpbmcgZnVuY3Rpb25hbGl0eQoJICBBUEk6IGdzdF9taW5pX29iamVjdF93ZWFrX3JlZigpCgkgIEFQSTogZ3N0X21pbmlfb2JqZWN0X3dlYWtfdW5yZWYoKQoJICBBZGQgd2VhayByZWZlcmVuY2luZyBmdW5jdGlvbmFsaXR5IHRvIEdzdE1pbmlPYmplY3QsIHdoaWNoCgkgIGFsbG93cyB0byBnZXQgbm90aWZpY2F0aW9ucyB3aGVuIGFuIG1pbmkgb2JqZWN0IGlzIGRlc3Ryb3llZAoJICBidXQgZG9lc24ndCBpbmNyZWFzZSB0aGUgcmVhbCByZWZjb3VudC4gVGhpcyBpcyBtb3N0bHkKCSAgdXNlZnVsIGZvciBiaW5kaW5ncy4KCSAgRml4ZXMgYnVnICM2MDk0NzMuCgoyMDExLTAzLTE5IDEwOjI4OjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogQWRkIHN5bmMgbW9kZSB0aGF0IHN5bmNzIGluYWN0aXZlIHBhZHMgdG8gdGhlIHJ1bm5pbmcgdGltZSBvZiB0aGUgYWN0aXZlIHBhZAoJICBGaXhlcyBidWcgIzY0NTAxNy4KCjIwMTEtMDMtMjIgMTM6MTk6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBBZGQgbW9kZSB0byBzeW5jaHJvbml6ZSBkZWFjdGl2YXRlZC9ub3QtbGlua2VkIHN0cmVhbXMgYnkgdGhlIHJ1bm5pbmcgdGltZQoJICBGaXhlcyBidWcgIzY0NTEwNywgIzYwMDY0OC4KCjIwMTEtMDQtMTggMTQ6MjY6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE9ubHkgcG9zdCBFT1MgbWVzc2FnZXMgYWZ0ZXIgcmVhY2hpbmcgdGhlIFBMQVlJTkcgc3RhdGUKCSAgRml4ZXMgYnVnICM2NDc3NTYuCgoyMDExLTA1LTEwIDE2OjM3OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IEFkZCBHc3RFbGVtZW50OjpzdGF0ZV9jaGFuZ2VkIHZmdW5jCgkgIEFQSTogR3N0RWxlbWVudDo6c3RhdGVfY2hhbmdlZAoJICBUaGlzIGlzIGFsd2F5cyBjYWxsZWQgd2hlbiB0aGUgc3RhdGUgb2YgYW4gZWxlbWVudCBoYXMgY2hhbmdlZCBhbmQKCSAgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIHN0YXRlLWNoYW5nZWQgbWVzc2FnZSBpcyBwb3N0ZWQgb24gdGhlIGJ1cy4KCjIwMTEtMDUtMDYgMTY6NDQ6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2hvc3RwYWQ6IEFkZCBkb2NzIGZvciBhbGwgdGhlIG5ldywgcHVibGljIGZ1bmN0aW9ucwoKMjAxMS0wNS0wNiAxNjoxNTo1MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IEFkZCBndWFyZHMgYWdhaW5zdCBpbnZhbGlkIHBhcmFtZXRlcnMgdG8gdGhlIG5ldywgcHVibGljIGZ1bmN0aW9ucwoKMjAxMS0wNS0wNiAxNjowMDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnaG9zdHBhZDogUmVuYW1lIGdob3N0cGFkL3Byb3h5cGFkIGRlZmF1bHQgZnVuY3Rpb25zCgkgIEFQSTogZ3N0X2dob3N0X3BhZF9hY3RpdmF0ZV9wdWxsX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2FjdGl2YXRlX3B1c2hfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfYWN0aXZhdGVfcHVsbF9kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9hY3RpdmF0ZV9wdXNoX2RlZmF1bHQKCSAgQVBJOiBnc3RfZ2hvc3RfcGFkX2xpbmtfZGVmYXVsdAoJICBBUEk6IGdzdF9naG9zdF9wYWRfc2V0Y2Fwc19kZWZhdWx0CgkgIEFQSTogZ3N0X2dob3N0X3BhZF91bmxpbmtfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfYWNjZXB0Y2Fwc19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9idWZmZXJhbGxvY19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9jaGFpbl9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9jaGFpbl9saXN0X2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2NoZWNrZ2V0cmFuZ2VfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfZXZlbnRfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfZml4YXRlY2Fwc19kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9nZXRjYXBzX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2dldHJhbmdlX2RlZmF1bHQKCSAgQVBJOiBnc3RfcHJveHlfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfcXVlcnlfZGVmYXVsdAoJICBBUEk6IGdzdF9wcm94eV9wYWRfcXVlcnlfdHlwZV9kZWZhdWx0CgkgIEFQSTogZ3N0X3Byb3h5X3BhZF9zZXRjYXBzX2RlZmF1bHQKCjIwMTEtMDUtMDYgMTU6NTA6MjAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBnaG9zdHBhZDogTWFrZSBhbGwgdGhlIGludGVybmFsIGNhcHMgZnVuY3Rpb25zIHB1YmxpYwoJICBUaGlzIGlzIHVzZWZ1bCBpZiBnaG9zdHBhZC9wcm94eXBhZHMgc2hvdWxkIGJlIHVzZWQgYnV0CgkgIGFkZGl0aW9uYWwgY29kZSBzaG91bGQgYmUgZXhlY3V0ZWQsIGUuZy4gZm9yIHRyYWNraW5nCgkgIHNlZ21lbnRzIGluIHRoZSBldmVudCBmdW5jdGlvbi4KCjIwMTEtMDUtMDYgMTU6MjU6MDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBPbmx5IGltcGxlbWVudCB0aGUgaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyBmdW5jdGlvbiBvbiBwcm94eXBhZHMKCSAgZ2hvc3RwYWRzIGluaGVyaXQgaXQgZnJvbSB0aGVpciBwYXJlbnQgY2xhc3MuIEFsc28gbWFrZSBpdCB0aHJlYWRzYWZlLgoKMjAxMS0wNS0wNiAxNToxNjowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ2hvc3RwYWQ6IEFQSTogRXhwb3NlIGdzdF9wcm94eV9wYWRfZ2V0X2ludGVybmFsKCkKCSAgVGhpcyBhbGxvd3MgdG8gZ2V0IHRoZSBpbnRlcm5hbCBwYWQgb2YgZ2hvc3RwYWRzIGFuZAoJICBwcm94eXBhZHMgd2l0aG91dCB1c2luZyBnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3MoKQoJICBhbmQgaXMgbXVjaCBtb3JlIGNvbnZlbmllbnQuCgkgIFRoZSBpbnRlcm5hbCBwYWQgb2YgYSBnaG9zdHBhZCBpcyB0aGUgcGFkIG9mIHRoZSBvcHBvc2l0ZSBkaXJlY3Rpb24KCSAgdGhhdCBpcyB1c2VkIHRvIGxpbmsgdG8gdGhlIGdob3N0cGFkIHRhcmdldC4KCjIwMTEtMDUtMDUgMTc6NTQ6NTYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFdoZW4gdHJ5aW5nIHRvIGZpeGF0ZSB0aGUgc2luayBzdWdnZXN0aW9uIHByZWZlciBpdHMgc3RydWN0dXJlIG9yZGVyCgoyMDExLTA1LTA1IDExOjI4OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IE1lcmdlIHN0cnVjdHVyZXMgd2hlbiBpbnRlcnNlY3RpbmcgaW5zdGVhZCBvZiBhcHBlbmRpbmcgdGhlbQoJICBUaGlzIHByZXZlbnRzIGFkZGluZyBkdXBsaWNhdGVzIG92ZXIgYW5kIG92ZXIgYWdhaW4gdG8gdGhlIHJlc3VsdGluZwoJICBjYXBzIGlmIHRoZXkgYWxyZWFkeSBkZXNjcmliZSB0aGUgbmV3IGludGVyc2VjdGlvbiByZXN1bHQuCgkgIFdoaWxlIHRoaXMgY2hhbmdlcyBpbnRlcnNlY3Rpb24gZnJvbSBPKG4qbSkgdG8gTyhuXjIqbSksIGl0IHJlc3VsdHMgaW4KCSAgc21hbGxlciBjYXBzLCB3aGljaCBpbiB0aGUgZW5kIHdpbGwgZGVjcmVhc2UgZnVydGhlciBwcm9jZXNzaW5nIHRpbWVzLgoJICBGb3IgZXhhbXBsZSBpbiBhbiBhdWRpb2NvbnZlcnQgISBhdWRpb2NvbnZlcnQgISBhdWRpb2NvbnZlcnQgcGlwZWxpbmUsCgkgIHdoZW4gZm9yd2FyZGluZyB0aGUgZG93bnN0cmVhbSBjYXBzIHByZWZlcmVuY2UgaW4gYmFzZXRyYW5zZm9ybQoJICAoc2VlIGUyNmRhNzJkZTI1YTkxYzNlYWFkOWY3YzhiMmY1M2JhODg4YTAzOTQpIHRoaXMgcmVzdWx0cyBpbgoJICAxNiBpbnN0ZWFkIG9mIDE5MSBjYXBzIHN0cnVjdHVyZXMuCgoyMDExLTA1LTA0IDExOjI5OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbiBnZXRjYXBzKCkgcHJlZmVyIHRoZSBjYXBzIG9yZGVyIGFuZCBjYXBzIG9mIGRvd25zdHJlYW0gaWYgcG9zc2libGUKCjIwMTEtMDUtMDMgMTc6MjY6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFByZWZlciBjYXBzIG9yZGVyIGdpdmVuIGJ5IHRoZSBzdWJjbGFzcyBvZiB0aGUgdGVtcGxhdGUgY2FwcyBvcmRlcgoKMjAxMS0wNC0yMCAyMjo1MjozNiArMDIwMCAgTWlndWVsIEFuZ2VsIENhYnJlcmEgTW95YSA8bWFkbWFjMjUwMUBnbWFpbC5jb20+CgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBwYXJzZTogZG9uJ3QgdW5lc2NhcGUgaW5zaWRlIHF1b3RlcwoJICBFc2NhcGVkIGNoYXJhY3RlcnMgaW5zaWRlIHF1b3RlZCBzdHJpbmdzIGFyZSBzdXBwb3NlZCB0byBiZSB1bmVzY2FwZWQgYnkKCSAgZGVzZXJpYWxpemF0aW9uIGZ1bmN0aW9ucywgbm90IGJ5IHBhcnNpbmcgZnVuY3Rpb25zLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MDI1CgoyMDExLTA0LTE4IDEwOjA0OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgdW5uZWNlc3NhcnkgRklYTUUKCSAgUmVzZXR0aW5nIHRoZSByZXN1bHQgaXMgbm90IG5lY2Vzc2FyeSB3aGVuIHJlc3luY2luZyBiZWNhdXNlCgkgIHBhZHMgdGhhdCBwcmV2aW91c2x5IGdvdCB0aGUgZXZlbnQgd2lsbCBiZSBza2lwcGVkIGFuZCB3ZQoJICBuZWVkIHRvIGNvbnNpZGVyIHRoZSByZXN1bHRzIG9mIHRoZSBwcmV2aW91cyBwdXNoZXMuCgoyMDExLTA0LTE4IDA5OjUzOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IElmIGFjdGl2YXRpbmcgb25lIHBhZCBmYWlsZWQgZXJyb3Igb3V0IGVhcmx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBuZXh0IHBhZHMKCSAgSWYgb25lIHBhZCBmYWlscyB0byBhY3RpdmF0ZSB0aGUgY29tcGxldGUgYWN0aXZhdGlvbiBwcm9jZXNzIHdpbGwgZmFpbAoJICBhbnl3YXkgYW5kIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgb3RoZXIgcGFkcyBvbmx5IHdhc3RlcyB0aW1lLgoKMjAxMS0wNC0xOCAwOTo0OTowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSWYgYWN0aXZhdGluZyBvbmUgcGFkIGZhaWxlZCBlcnJvciBvdXQgZWFybHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG5leHQgcGFkcwoJICBJZiBvbmUgcGFkIGZhaWxzIHRvIGFjdGl2YXRlIHRoZSBjb21wbGV0ZSBhY3RpdmF0aW9uIHByb2Nlc3Mgd2lsbCBmYWlsCgkgIGFueXdheSBhbmQgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBvdGhlciBwYWRzIG9ubHkgd2FzdGVzIHRpbWUuCgoyMDExLTA1LTE0IDA5OjMxOjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQKCj09PSByZWxlYXNlIDAuMTAuMzQgPT09CgoyMDExLTA1LTE0IDAxOjAwOjIzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4zNAoKMjAxMS0wNS0xMyAwODozODowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhOiBGaXggY29tcGlsYXRpb24gb2YgdGhlIHVuaXQgdGVzdCBhZnRlciByZW1vdmFsIG9mIHRoZSBzZXJpYWxpemUvZGVzZXJpYWxpemUgZnVuY3Rpb25zCgoyMDExLTA1LTA0IDE1OjMxOjU2ICswMzAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkbyBub3Qgc2V0IGZpcnN0IGJ1ZmZlciB0aW1lc3RhbXAgdG8gMCBmb3IgbGl2ZSBzb3VyY2VzCgkgIERvaW5nIHNvIGF2b2lkcyBhIGxhcmdlIHRpbWVzdGFtcCBnYXAgYmV0d2VlbiBmaXJzdCBhbmQgc2Vjb25kIGJ1ZmZlcgoJICBmb3IgbGl2ZSBzb3VyY2VzIHdoaWNoIHRha2UgdGltZSB0byBzdGFydCB1cC4KCSAgVGhlIGZpcnN0IGJ1ZmZlciBub3cgaGFzIGEgImxpdmUiIHRpbWVzdGFtcCBiYXNlZCBvbiB0aGUgcnVubmluZyB0aW1lLAoJICBhcyBvdGhlciBidWZmZXJzIGRvLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ5MzY5CgoyMDExLTA1LTExIDE5OjEwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSAgbWV0YTogcmVtb3ZlIChkZSlzZXJpYWxpemUgZnVuY3Rpb25zCgkgIEFkZCBhIEdUeXBlIHRvIHRoZSBtZXRhZGF0YSB0byBpZGVudGlmeSB0aGUgR3N0TWV0YUluZm8uCgkgIFdlIGNhbiByZW1vdmUgdGhlIChkZSlzZXJpYWxpemUgZnVuY3Rpb25zIGZvciB0aGUgbWV0YWRhdGEgYmVjYXVzZSB3ZSBjYW4KCSAgcmVnaXN0ZXIgR1R0eXBlIHRyYW5zZm9ybSBmdW5jdGlvbnMgYmV0d2VlbiB2YXJpb3VzIHR5cGVzIHRvIGltcGxlbWVudAoJICBzZXJpYWxpemF0aW9uIGxhdGVyLgoKMjAxMS0wNS0xMSAxODoxNzo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgc3RydWN0dXJlOiBtb3JlIGNsZWFudXBzCgkgIGdzdF9zdHJ1Y3R1cmVfZ2V0X3R5cGUoKSAtPiBfZ3N0X3N0cnVjdHVyZV90eXBlIHRvIGF2b2lkIG1ldGhvZCBjYWxscyBmb3IKCSAgZ2V0dGluZyB0aGUgR1R5cGUgdGhhdCBpbml0aWFsaXplZCBhdCB0aGUgc3RhcnQuCgkgIEhpZGUgc29tZSBzdHJ1Y3R1cmUgZmllbGRzIGluIHByaXZhdGUgZGF0YSBzbyB0aGF0IHdlIGNhbiBjaGFuZ2UgdGhlCgkgIGltcGxlbWVudGF0aW9uLgoJICBNb3ZlIHN0cnVjdHVyZSBlcXVhbGl0eSBjaGVjayBmcm9tIGNhcHMuYyB0byBzdHJ1Y3R1cmUuYyB3aGVyZSBpdCBiZWxvbmdzLgoKMjAxMS0wNS0xMSAxODowNzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZW1vdmUgb2Jzb2xldGUgY29kZQoJICBSZW1vdmUgc29tZSBvYnNvbGV0ZSBjb2RlLgoJICBEb24ndCB0cnkgdG8gcmVjb25maWd1cmUgd2hlbiB3ZSBkb24ndCBoYXZlIHNpbmsgY2Fwcy4KCjIwMTEtMDUtMTEgMTY6NDY6NDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IERlcmVmZXJlbmNlIEdzdFF1ZXJ5KiogYmVmb3JlIHBhc3NpbmcgaXQgdG8gR1NUX1FVRVJZX1RZUEVfTkFNRQoKMjAxMS0wNS0xMSAxNjowMzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogdXBkYXRlIHRoZSBzdHJ1Y3R1cmUgd2hlbiBuZWVkZWQKCSAgV2hlbiB3ZSBnZXQgdGhlIHN0cnVjdHVyZSBvZiBhbiBldmVudCwgbWFrZSBzdXJlIGl0IGFsc28gY29udGFpbnMgdGhlIGZpZWxkcwoJICB0aGF0IHdlIGtlZXAgaW4gZmFzdCB2YXJpYWJsZXMsIHRoaXMgd2F5IHdlIGNhbiBlYXNpbHkgc2VyaWFsaXplIGFuZCBkZWJ1ZwoJICB0aGUgZXZlbnRzLiBXZSB3b3VsZCBwcm9iYWJseSBsYXRlciBzaW1wbHkgcHJlZmVyIHRvIHJlZ2lzdGVyIGEgdHJhbnNmb3JtCgkgIGZ1bmN0aW9uIHRvIEdfVFlQRV9TVFJJTkcgYW5kIEdfVFlQRV9CWVRFQVJSQVkgZXRjLi4KCjIwMTEtMDUtMTEgMTY6MDE6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBjbGVhbnVwcwoJICBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIGlmIHRoZSB0eXBlIGlzIDAsIHRoZSBpbml0IGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVkIG9uY2UKCSAgaW4gdGhlIGJlZ2lubmluZy4KCjIwMTEtMDUtMTEgMTI6MDQ6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBjbGVhbiB1cCBzb21lIG1hY3JvcwoJICBBdm9pZCBleGVjdXRpbmcgYSBtZXRob2QgZm9yIEdTVF9UWVBFX0VWRU5UIGJ1dCBpbnN0ZWFkIHVzZSB0aGUgdHlwZSB2YXJpYWJsZQoJICBkaXJlY3RseS4gV2UgY2FuIGRvIHRoaXMgYmVjYXVzZSB3ZSByZWdpc3RlciBpdCBiZWZvcmUgYW55dGhpbmcgZWxzZS4KCjIwMTEtMDUtMTEgMTU6NDg6MTUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IEZpeCBHU1RfREVCVUcgcGFyYW1ldGVycyB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIGZvcm1hdCBzdHJpbmcKCjIwMTEtMDUtMTEgMTU6MjY6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEltcGxlbWVudCBzdXBwb3J0IGZvciBwYWQgcmVjb25maWd1cmF0aW9uIGFnYWluCgoyMDExLTA1LTExIDE1OjE4OjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBGaXggZGVhZGxvY2ssIGdzdF9wYWRfZ2V0X2N1cnJlbnRfY2FwcygpIGFscmVhZHkgdGFrZXMgdGhlIHBhZCdzIG9iamVjdCBsb2NrCgoyMDExLTA1LTExIDExOjA2OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJICBldmVudDogZXhhbXBsZSBvZiBob3cgdG8gb3B0aW1pemUgZXZlbnRzCgkgIFVzZSBhIHN0cnVjdHVyZSBmb3IgdGhlIFFvUyBldmVudCBieSAnZXh0ZW5kaW5nJyB0aGUgR3N0RXZlbnRJbXBsIHN0cnVjdHVyZS4KCSAgVGhpcyBzaG91bGQgYXZvaWQgYWxsb2NhdGlvbiBvZiBHc3RTdHJ1Y3R1cmVzIGFuZCBpdHMgY29udGVudHMuCgoyMDExLTA1LTEwIDExOjExOjE1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBlbnN1cmUgdGhyZWFkIHNhZmV0eSB3aGVuIGFkZGluZyBhIHBhZAoJICBUaGlzIHNlZW1zIHRvIGJlIGEgcmVncmVzc2lvbiwgYW5kIHdhcyBjYXVzaW5nIGNyYXNoZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDk4NzgKCjIwMTEtMDUtMTAgMTg6MzY6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGFsbG93IF9tYWtlX3dyaXRhYmxlIG9uIHF1ZXJ5IGhhbmRsZXJzCgkgIFBhc3MgYSBHc3RRdWVyeSAqKiB0byB0aGUgcXVlcnkgaGFuZGxlcnMgc28gdGhhdCB0aGV5IGNhbiBtYWtlIHRoZSBxdWVyeQoJICB3cml0YWJsZSBiZWZvcmUgdXNpbmcgYSBzZXR0ZXIgb24gaXQuCgkgIFBvcnQgY29kZSB0byBuZXcgQVBJLgoKMjAxMS0wNS0xMCAxNjo0NjoxNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNS0xMCAxNjo0MTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBlbGVtZW50OiB1c2UgcmVxdWVzdF9uZXdfcGFkX2Z1bGwgYXMgdGhlIGRlZmF1bHQKCSAgQWRkIEdzdENhcHMgdG8gcmVxdWVzdF9uZXdfcGFkIHNvIHRoYXQgcmVxdWVzdF9uZXdfcGFkX2Z1bGwgY2FuIGJlIHJlbW92ZWQuCgkgIEZpeCBlbGVtZW50cy4KCjIwMTEtMDUtMTAgMTY6MjM6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTEtMDUtMTAgMTU6NDE6NTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IG1ha2Ugc3VyZSBxdWVyeSBpcyB3cml0YWJsZQoJICBNYWtlIHN1cmUgdGhlIFF1ZXJ5IGlzIHdyaXRhYmxlIGJlZm9yZSBleGVjdXRpbmcgdGhlIHNldHRlcnMuCgoyMDExLTA1LTEwIDE1OjMzOjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IEhpZGUgR3N0U3RydWN0dXJlIGluIHF1ZXJpZXMKCSAgSGlkZSB0aGUgR3N0U3RydWN0dXJlIGZyb20gdGhlIHF1ZXJ5IEFQSS4KCSAgUmVuYW1lIHNvbWUgbWV0aG9kcyB0byBtYXRjaCB0aGUgbW9yZSBjb21tb24gbmFtZXMgaW4gR09iamVjdCBsaWJyYXJpZXMuCgkgIEFkZCBzb21lIG1vcmUgdXNlZnVsIHF1ZXJ5IEFQSS4KCjIwMTEtMDUtMTAgMTM6MzQ6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgbWVzc2FnZTogaGlkZSB0aGUgbWVzc2FnZSBzdHJ1Y3R1cmUgZmllbGQKCSAgTWFrZSBhIHByaXZhdGUgc3RydWN0dXJlIHRvIGhvbGQgdGhlIEdzdFN0cnVjdHVyZSBiaXRzIG9mIHRoZSBtZXNzYWdlLgoJICBBZGQgc29tZSBtb3JlIHVzZWZ1bCBtYWNyb3MgbGlrZSB3ZSBoYXZlIGZvciBldmVudHMuCgo9PT0gcmVsZWFzZSAwLjEwLjMzID09PQoKMjAxMS0wNS0xMCAwODo1NToxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjMzCgkgIEhpZ2hsaWdodHM6CgkgIC0gbmV3IHBhcnNlciBiYXNlIGNsYXNzOiBHc3RCYXNlUGFyc2UKCSAgLSBuZXcgY29yZSBlbGVtZW50OiBmdW5uZWwKCSAgLSBPU1ggbXVsdGktYXJjaCBmaXhlcwoJICAtIG5ldyBRb1MgdHlwZSBmb3IgUW9TIGV2ZW50cwoJICAtIG5ldyBwcm9ncmVzcyBtZXNzYWdlIEFQSSB0byBub3RpZnkgYXBwbGljYXRpb25zIG9mIGFzeW5jaHJvbm91cyBvcGVyYXRpb25zCgkgIC0gY291bnRsZXNzIG90aGVyIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMKCjIwMTEtMDUtMTAgMTI6Mjk6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiBmaXggdGhlIG1hY3JvcyBhIGxpdHRsZQoKMjAxMS0wNS0xMCAxMTo1MDoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgZXZlbnQ6IEhpZGUgdGhlIEdzdFN0cnVjdHVyZQoJICBIaWRlIHRoZSBHc3RTdHJ1Y3R1cmUgb2YgdGhlIGV2ZW50IGluIHRoZSBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBwYXJ0IHNvIHRoYXQKCSAgd2UgY2FuIGNoYW5nZSBpdC4KCSAgQWRkIG1ldGhvZHMgdG8gY2hlY2sgYW5kIG1ha2UgdGhlIGV2ZW50IHdyaXRhYmxlLgoJICBBZGQgYSBuZXcgbWV0aG9kIHRvIGdldCBhIHdyaXRhYmxlIEdzdFN0cnVjdHVyZSBvZiB0aGUgZWxlbWVudC4KCSAgQXZvaWQgZGlyZWN0bHkgYWNjaXNpbmcgdGhlIGV2ZW50IHN0cnVjdHVyZS4KCjIwMTEtMDUtMDkgMTg6NDg6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IF9xb3NfZnVsbCAtPiBfcW9zCgoyMDExLTA1LTA5IDE3OjUxOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzoKCSAgc2VnbWVudDogcmVtb3ZlIF9mdWxsIHZlcnNpb24KCSAgUmVuYW1lIHRoZSBfZnVsbCB2ZXJzaW9ucyBvZiB0aGUgZnVuY3Rpb25zIHRvIHRoZSBub3JtYWwgZnVuY3Rpb24gbmFtZXMuCgoyMDExLTA1LTA5IDE2OjM5OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSogZ3N0L2dzdHNlZ21lbnQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgc2VnbWVudDogcmVtb3ZlIGFic19yYXRlIGZyb20gc2VnbWVudCBzdHJ1Y3R1cmUKCSAgUmVtb3ZlIHRoZSBhYnNfcmF0ZSBmaWVsZCBmcm9tIHRoZSBzZWdtZW50IHN0cnVjdHVyZSwgd2UgY2FuIHRyaXZpYWxseSBjb21wdXRlCgkgIGl0IHdoZW4gbmVlZGVkLgoKMjAxMS0wNS0wOSAxNjoyMToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSAgY2FwczogcmVtb3ZlIGNhcHMgZnJvbSBidWZmZXJzIGFuZCBwYWRzCgkgIFJlbW92ZSB0aGUgR3N0Q2FwcyBmcm9tIGJ1ZmZlcnMgYW5kIHBhZHMuIFdlIG5vdyB1c2UgQ0FQUyBldmVudHMgdG8gbmVnb3RpYXRlCgkgIGZvcm1hdHMgYmV0d2VlbiBlbGVtZW50LgoKMjAxMS0wNS0wOSAxNTowNjoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgQ0FQcyBldmVudAoJICBVc2UgdGhlIGNhcHMgZXZlbnQgdG8gY29uZmlndXJlIGJhc2V0cmFuc2Zvcm0uCgkgIFJlbW92ZSBmb3JjZV9hbGxvYyBoYWNrLCB3ZSBkb24ndCBuZWVkIHRoaXMgaW4gMC4xMSB3aXRoIG5ldyB1cHN0cmVhbQoJICBuZWdvdGlhdGlvbi4KCSAgQXZvaWQgZ2V0dGluZyBzb21lIHBhZCBjYXBzLgoKMjAxMS0wNS0wOSAxNTowNjowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBzb21lIG1vcmUgZGVidWcKCjIwMTEtMDUtMDggMTE6MDI6MTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBBZGQgbmV3IHN5bWJvbHMKCjIwMTEtMDUtMDggMTE6MDE6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IEZpeCB1bml0aWFsaXplZCB2YXJpYWJsZXMKCjIwMTEtMDUtMDkgMTA6NTQ6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHM6IGF2b2lkIHVzaW5nIHBhZCBjYXBzCgkgIEF2b2lkIGRpcmVjdGx5IGFjY2Vzc2luZyB0aGUgcGFkIGNhcHMsIHVzZSBnc3RfcGFkX2dldF9jdXJyZW50X2NhcHMoKSBpbnN0ZWFkLgoKMjAxMS0wNS0wOCAxMzoxNDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDUtMDggMTM6MDc6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB1c2UgQ0FQUyBldmVudCBpbnN0ZWFkIG9mIHNldGNhcHMgZnVuY3Rpb24KCjIwMTEtMDUtMDggMTI6NDY6MTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgYmFzZTogYXZvaWQgdXNpbmcgYnVmZmVyIGNhcHMKCSAgQ29tbWVudCBhbGwgY29kZSB1c2luZyBidWZmZXIgY2Fwcy4KCSAgUmV3b3JrIGNhcHNmaWx0ZXIgY29kZSBhIGxpdHRsZS4KCSAgRml4IHNvbWUgdW5pdCB0ZXN0cwoKMjAxMS0wNS0wOCAxMjo0MzoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGNhcHMgZXZlbnQgaGFuZGxpbmcKCSAgRml4IHJlcGxhY2Ugb2YgY2FwcyBldmVudHMgd2hlbiBsaW5raW5nOiB3ZSBuZWVkIHRvIHVucmVmIHRoZSBvbGQgb25lcy4KCSAgTWFrZSBzdXJlIHdlIHBhc3MgZXJyb3IgdmFsdWVzIGFyb3VuZC4KCSAgTW92ZSBiYWNrd2FyZCBjb21wYXQgY29kZSBpbnRvIHRoZSBkZWZhdWx0IGhhbmRsZXIgZm9yIG5vdy4KCjIwMTEtMDUtMDggMTI6Mzg6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IGRvbid0IHJlZiB0aGUgY2FwcwoJICBVc2UgYSBkaWZmZXJlbnQgd2F5IG9mIGdldHRpbmcgdGhlIGNhcHMgZnJvbSB0aGUgY2FwcyBldmVudCBzbyB0aGF0IG5vCgkgIHJlZmNvdW50aW5nIGhhcHBlbnMuCgoyMDExLTA1LTA4IDEyOjM3OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGF2b2lkIHVzaW5nIGJ1ZmZlciBjYXBzCgoyMDExLTA1LTA2IDIzOjQwOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZG9uJ3QgcG9zdCBsb2FkcyBvZiBlbXB0eSB0YWdsaXN0cwoJICBPbmx5IHBvc3QgYml0cmF0ZSB1cGRhdGVzIGlmIHRoZXJlJ3Mgc29tZXRoaW5nIHRvIHBvc3QsIGRvbid0CgkgIHBvc3QgZW1wdHkgdGFnbGlzdHMgaWYgbm90aGluZyBjaGFuZ2VkLgoKMjAxMS0wNS0wNiAxOTowNDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBwYWQ6IGF2b2lkIHVzaW5nIHRoZSBvbGQgR1NUX1BBRF9DQVBTCgkgIERvbid0IHVzZSBHU1RfUEFEX0NBUFMgYnV0IGluc3RlYWQgdXNlIHRoZSBuZXcgZ3N0X3BhZF9nZXRfY3VycmVudF9jYXBzKCkKCSAgbWV0aG9kLgoJICBBdm9pZCBzZXR0aW5nIGNhcHMgb24gYnVmZmVycy4KCjIwMTEtMDUtMDYgMTk6MDM6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgMiBuZXcgY2FwcyBtZXRob2RzCgkgIEFkZCBtZXRob2QgdG8gZ2V0IHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBjYXBzIG9uIHRoZSBwYWQuCgkgIEFkZCBhIG1ldGhvZCB0byBjaGVjayBpZiBjYXBzIGFyZSBjb25maWd1cmVkIG9uIGEgcGFkLgoKMjAxMS0wNS0wNiAxNzo1OTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHBhZDogaW1wbGVtZW50IGZpeGVkIGNhcHMgd2l0aCBhbiBvYmplY3QgZmxhZwoJICBJbXBsZW1lbnQgZml4ZWQgY2FwcyB3aXRoIGFuIG9iamVjdCBmbGFnIGluc3RlYWQgb2YgYSBjdXN0b20gZ2V0Y2FwcyBmdW5jdGlvbi4KCjIwMTEtMDUtMDYgMTc6MzA6MjQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgdXNlIGJ1ZmZlciBjYXBzIGZvciBuZWdvdGlhdGlvbgoJICBEb24ndCB1c2UgdGhlIGJ1ZmZlciBjYXBzIGZvciBuZWdvdGlhdGlvbiBhbnltb3JlIGJ1dCB1c2UgdGhlIENBUFMgZXZlbnRzLgoJICBNYWtlIHRoZSBfc2V0X2NhcHMgbWV0aG9kIHByb2R1Y2UgdGhlIENBUFMgZXZlbnQsIGFkZCBzb21lIGJhY2t3YXJkCgkgIGNvbXBhdGliaWxpdHkgY29kZSB0byB0cmlnZ2VyIHRoZSBzZXRjYXBzIGZ1bmN0aW9ucyBvbiBzcmMgYW5kIHNpbmtwYWRzLgoJICBSZW1vdmUgYWxsIG5lZ290aWF0aW9uIGNvZGUgZnJvbSB0aGUgY2hhaW4gZnVuY3Rpb25zLgoJICBEb24ndCB1c2UgdGhlIEdTVF9QQURfQ0FQUyB2YXJpYWJsZSBhbnltb3JlIHRvIHN0b3JlIHRoZSBjYXBzIGJ1dCByZXRyaWV2ZSB0aGUKCSAgY2FwcyBmcm9tIHRoZSBzdGlja3kgZXZlbnQgYXJyYXkuCgoyMDExLTA1LTA2IDE2OjE0OjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvc2VsZWN0b3IuYzoKCSAgc2VsZWN0b3I6IGRvbid0IHVuc2V0IGNhcHMKCjIwMTEtMDUtMDYgMTY6MTQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZG9uJ3QgdW5zZXQgY2FwcwoKMjAxMS0wNS0wNiAxNjoxMzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBsZXQgdGhlIG5vcm1hbCBjb2RlIHVuc2V0IGNhcHMKCjIwMTEtMDUtMDYgMTY6MTE6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBoYW5kbGUgTlVMTCBwYWRzIGluIHNvbWUgY2FzZXMKCjIwMTEtMDUtMDYgMTY6MTE6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbGV0IHRoZSBwYWQgY2xlYW4gdXAgaW4gYWN0aXZhdGUKCjIwMTEtMDUtMDYgMTU6NTU6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCBtZXNzIHdpdGggcGFkIGNhcHMgaW4gYWN0aXZhdGUKCSAgV2hlbiBkZWFjdGl2YXRpbmcgYSBwYWQsIGxldCB0aGUgcGFkIGRlY2lkZSB3aGF0IGZpZWxkcyB0byBjbGVhci4KCjIwMTEtMDUtMDYgMTU6NTE6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnQ6IG9ubHkgYWxsb3cgZml4ZWQgY2FwcyBpbiBjYXBzIGV2ZW50CgoyMDExLTA1LTA2IDEzOjAxOjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogSW1wcm92ZSBkb2N1bWVudGF0aW9uIG9mIGdzdF9ldmVudF9uZXdfcmVjb25maWd1cmUoKQoKMjAxMS0wNS0wNiAxMjoyMzowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNS0wNiAxMjoxOToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQ6IHJlbmFtZSBnc3RfZWxlbWVudF9sb3N0X3N0YXRlX2Z1bGwoKQoJICBSZW5hbWUgZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkgdG8gZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSgpIGFuZAoJICByZW1vdmUgdGhlIG9sZCBtZXRob2QgbmFtZS4KCjIwMTEtMDUtMDYgMTI6MDk6MDAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogY2xlYW4gdXAgdGhlIC5oIGZpbGUgYSBiaXQKCjIwMTEtMDUtMDYgMTE6MTQ6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGltcGxlbWVudCBtb3JlIHN0aWNreSBldmVudHMKCSAgUmVtb3ZlIHRoZSBjb250ZXh0IGFnYWluLCBhZGRpbmcgYW4gZXh0cmEgbGF5ZXIgb2YgcmVmY291bnRpbmcgYW5kIG9iamVjdAoJICBjcmVhdGlvbiB0byBtYW5hZ2UgYW4gYXJyYXkgaXMgdG9vIGNvbXBsaWNhdGVkIGFuZCBpbmVmZmljaWVudC4gVXNlIGEgc2ltcGxlCgkgIGFycmF5IGFnYWluLgoJICBBbHNvIGltcGxlbWVudCBldmVudCB1cGRhdGVzIHdoZW4gY2FsbGluZyBnc3RfcGFkX2NoYWluKCkgYW5kCgkgIGdzdF9ldmVudF9zZW5kX2V2ZW50KCkgZGlyZWN0bHkuCgoyMDExLTA1LTA2IDExOjM1OjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBhdm9pZCByZWRlZmluaXRpb24gb2Ygc3ltYm9scyB3aGVuIGRlYnVnZ2luZyBpcyBvZmYKCSAgVGhlIHJlZmFjdG9yaW5nIG9mIGdzdF9kZWJ1Z19hZGRfbG9nX2Z1bmN0aW9uKCkgbm93IGNhdXNlcyBidWlsZCBmYWlsdXJlIHdoZW4KCSAgZGVidWctbG9nZ2luZyBpcyB0dXJuZWQgb2ZmLiBKdXN0IG1vdmUgaXQgdG8gdGhlIGNvbmRpdGlvbmFsIHBhcnQgb2YgdGhlIGhlYWRlci4KCjIwMTEtMDUtMDYgMTE6MDA6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZXZlbnQ6IHJlb3JkZXIgZXZlbnRzCgkgIFJlb3JkZXIgdGhlIHN0aWNreSBldmVudHMgc28gdGhhdCB0aGV5IGFyZSBpbiB0aGUgb3JkZXIgdGhleSBzaG91bGQgYmUgcHVzaGVkLgoKMjAxMS0wNS0wNSAxOToyNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzaW1wbGlmeSBzb21lIG1vcmUKCSAgSWYgd2UgZ2V0IGEgY29udGV4dCBpbiB0aGUgY2hhaW4gZnVuY3Rpb25zIHdlIGFsd2F5cyBuZWVkIHRvIGRvIGEgZnVsbCB1cGRhdGUgb2YKCSAgdGhlIGNvbnRleHQgb24gdGhlIHBlZXIgcGFkLgoKMjAxMS0wNS0wNSAxODo1Njo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbXByb3ZlIGNvbnRleHQgcGFzc2luZyBzb21lIG1vcmUKCSAgUGFzcyB0aGUgY29udGV4dCBkb3duc3RyZWFtIHdoZW4gaXQgZ290IHVwZGF0ZWQuCgkgIEhhdmUgdHdvIHdheXMgb2YgaW5mb3JtaW5nIGRvd25zdHJlYW0gb2YgZXZlbnRzLCBkbyBhIGZ1bGwgY29udGV4dCB1cGRhdGUgd2hlbgoJICB0aGUgQ09OVEVYVF9QRU5ESU5HIGZsYWcgaXMgc2V0IGFuZCBzaW1wbHkgZm9yd2FyZCB0aGUgZXZlbnQgb3RoZXJ3aXNlLgoJICBTZXQgdGhlIENPTlRFTlRfUEVORElORyBmbGFnIHdoZW4gbGlua2luZyBwYWRzLgoJICBXZSBkb24ndCBuZWVkIHRvIG9sZCBjb250ZXh0IGFueW1vcmUgd2hlbiB1cGRhdGluZyB0aGUgY29udGV4dCBvZiBhIHBhZC4KCjIwMTEtMDUtMDUgMTg6MjE6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IERvbid0IGdldCB0aGUgcGFyZW50IHR3aWNlIGluIHRoZSBzZXRjYXBzIGZ1bmN0aW9uCgoyMDExLTA1LTA1IDE2OjU5OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBGaXggcmVmY291bnQgbGVhayBvZiB0aGUgcGFyZW50IGluIHRoZSBkZWZhdWx0IGV2ZW50IGRpc3BhdGNoIGZ1bmN0aW9uCgoyMDExLTA1LTA1IDE2OjMyOjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW1wcm92ZSBwYXNzaW5nIGFyb3VuZCB0aGUgY29udGV4dAoJICBJbXByb3ZlIHBhc3NpbmcgYXJvdW5kIHRoZSBjb250ZXh0LCBvbmx5IHNlbmQgdGhlIGNvbnRleHQgdG8gdGhlIHBlZXIgZWxlbWVudAoJICB3aGVuIHRoZSBDT05URVhUX1BFTkRJTkcgZmxhZyBpcyBzZXQuCgoyMDExLTA1LTA1IDE2OjA1OjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogVXBkYXRlIGV4cG9ydHMKCjIwMTEtMDMtMTcgMTE6NTI6NDIgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIHRlc3RzOiBVcGRhdGUgZm9yIG5ldyBHc3RJdGVyYXRvciBBUEkKCjIwMTEtMDMtMTcgMTE6MzI6MjQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3MvZGVmOiBBZGQgbmV3IHN5bWJvbHMsIHJlbW92ZSBvbGQgc3ltYm9scwoKMjAxMS0wMy0xNyAxMTozMjoxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGVsZW1lbnRzOiBVcGRhdGUgZXZlcnl0aGluZyBmb3IgdGhlIG5ldyBHc3RJdGVyYXRvciBBUEkKCjIwMTEtMDMtMTcgMTE6MzE6NTkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdDogVXBkYXRlIGV2ZXJ5dGhpbmcgZm9yIHRoZSBuZXcgR3N0SXRlcmF0b3IgQVBJCgoyMDExLTAzLTE2IDEwOjUwOjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBpdGVyYXRvcjogUmVmYWN0b3IgR3N0SXRlcmF0b3IgdG8gYmUgbW9yZSBiaW5kaW5nIGZyaWVuZGx5IGFuZCBoYXZlIHNhbmVyIHJlZmNvdW50aW5nCgkgIEZpeGVzIGJ1ZyAjNjM4OTg3LgoKMjAxMS0wMS0wOCAxMjoyNzo1NSAtMDIwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIGl0ZXJhdG9yOiByZWdpc3RlciBhcyBhIGJveGVkIHR5cGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk4NwoKMjAxMS0wMS0wOCAxMjoxNDo0MCAtMDIwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IHVzZSBHU2xpY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk4NwoKMjAxMS0wMS0wOCAxMjoxMjo0MSAtMDIwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogZnJlZSBzdHJ1Y3QgaW4gZ3N0X2l0ZXJhdG9yX2ZyZWUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk4NwoKMjAxMS0wMS0wOCAxMjowNzo1NSAtMDIwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIGl0ZXJhdG9yOiBzdG9yZSBzaXplIGluIHRoZSBzdHJ1Y3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODk4NwoKMjAxMS0wNS0wNSAxMToyODozOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBNZXJnZSBzdHJ1Y3R1cmVzIHdoZW4gaW50ZXJzZWN0aW5nIGluc3RlYWQgb2YgYXBwZW5kaW5nIHRoZW0KCSAgVGhpcyBwcmV2ZW50cyBhZGRpbmcgZHVwbGljYXRlcyBvdmVyIGFuZCBvdmVyIGFnYWluIHRvIHRoZSByZXN1bHRpbmcKCSAgY2FwcyBpZiB0aGV5IGFscmVhZHkgZGVzY3JpYmUgdGhlIG5ldyBpbnRlcnNlY3Rpb24gcmVzdWx0LgoJICBXaGlsZSB0aGlzIGNoYW5nZXMgaW50ZXJzZWN0aW9uIGZyb20gTyhuKm0pIHRvIE8obl4yKm0pLCBpdCByZXN1bHRzIGluCgkgIHNtYWxsZXIgY2Fwcywgd2hpY2ggaW4gdGhlIGVuZCB3aWxsIGRlY3JlYXNlIGZ1cnRoZXIgcHJvY2Vzc2luZyB0aW1lcy4KCSAgRm9yIGV4YW1wbGUgaW4gYW4gYXVkaW9jb252ZXJ0ICEgYXVkaW9jb252ZXJ0ICEgYXVkaW9jb252ZXJ0IHBpcGVsaW5lLAoJICB3aGVuIGZvcndhcmRpbmcgdGhlIGRvd25zdHJlYW0gY2FwcyBwcmVmZXJlbmNlIGluIGJhc2V0cmFuc2Zvcm0KCSAgKHNlZSBlMjZkYTcyZGUyNWE5MWMzZWFhZDlmN2M4YjJmNTNiYTg4OGEwMzk0KSB0aGlzIHJlc3VsdHMgaW4KCSAgMTYgaW5zdGVhZCBvZiAxOTEgY2FwcyBzdHJ1Y3R1cmVzLgoKMjAxMS0wNS0wNCAxMToyOToxNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSW4gZ2V0Y2FwcygpIHByZWZlciB0aGUgY2FwcyBvcmRlciBhbmQgY2FwcyBvZiBkb3duc3RyZWFtIGlmIHBvc3NpYmxlCgoyMDExLTA1LTAzIDE3OjI2OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBQcmVmZXIgY2FwcyBvcmRlciBnaXZlbiBieSB0aGUgc3ViY2xhc3Mgb2YgdGhlIHRlbXBsYXRlIGNhcHMgb3JkZXIKCjIwMTEtMDUtMDMgMTQ6MTM6NTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFVzZSB0aGUgcmVjb25maWd1cmUgZmxhZyBvbiB0aGUgcGFkIGluc3RlYWQgb2YgdGhlIGV2ZW50CgoyMDExLTA1LTAzIDE0OjExOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBVc2UgbmV3IHJlY29uZmlndXJlIGZsYWcgb24gdGhlIHBhZHMgaW5zdGVhZCBvZiB0aGUgcmVjb25maWd1cmUgZXZlbnQKCjIwMTEtMDUtMDMgMTM6NDI6NDQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogS2VlcCB0cmFjayBvZiByZWNvbmZpZ3VyZSBldmVudHMgYW5kIHRoZSBwYWQtbmVlZHMtcmVjb25maWd1cmluZyBzdGF0dXMKCjIwMTEtMDUtMDMgMTM6MDU6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBldmVudDogUmVuYW1lIHJlbmVnb3RpYXRlIGV2ZW50IHRvIHJlY29uZmlndXJlCgkgIEluIDAuMTEgdGhpcyBldmVudCB3aWxsIGFsc28gZG8gcmVjb25maWd1cmF0aW9uIG9mIGJ1ZmZlciBwb29scwoJICBhbmQgc2ltaWxhciB0aGluZ3MsIG5vdCBqdXN0IHJlbmVnb3RpYXRpb24uCgoyMDEwLTAzLTE3IDIxOjI0OjU1ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogU2VuZCByZW5lZ290aWF0ZSBldmVudCBvbiBsaW5rCgoyMDEwLTAzLTE3IDIxOjE3OjEwICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRHJvcCByZW5lZ290aWF0ZSBldmVudCBpZiB0aGVyZSBpcyBubyBnZXRjYXBzIGZ1bmN0aW9uIG9uIGEgc2luayBwYWQKCSAgSWYgdGhlcmUgaXMgbm8gY3VzdG9tIGdldGNhcHMgZnVuY3Rpb24gb24gYSBzaW5rIHBhZCwgdGhlbiBjaGFuZ2VzIGluCgkgIGRvd25zdHJlYW0gY2FwcyB3aWxsIG5ldmVyIGJlIHByb3BhZ2F0ZWQsIHNvIHRoZXJlIGlzIG5vIHBvaW50IGluIHRyeWluZyB0bwoJICByZW5lZ290aWF0ZSB0aGUgY2FwYWJpbGl0aWVzLgoKMjAxMS0wNC0yNiAxNjozOTo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogT25seSByZW5lZ290aWF0ZSBvbmNlIGFmdGVyIHJlY2VpdmluZyBhIHJlbmVnb3RpYXRlIGV2ZW50CgkgIEFsc28gbWFrZSB0aGlzIHRocmVhZHNhZmUuCgoyMDExLTAxLTE3IDE0OjEzOjQ2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBIYW5kbGUgdGhlIG5ldyByZW5lZ290aWF0ZSBldmVudAoJICBNYWtlcyBiYXNlc3JjIGhhbmRsZSB0aGUgbmV3IHJlbmVnb3RpYXRlIGV2ZW50IGJ5IHVzaW5nIGEKCSAgcmVuZWdvdGlhdGUgZmxhZy4KCjIwMTEtMDQtMjYgMTY6NDg6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFsc28gY2FsbCBnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUoKSBvbiByZW5lZ290aWF0ZSBldmVudHMKCjIwMTEtMDEtMTcgMTQ6MTM6NDYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSB0aGUgbmV3IHJlbmVnb3RpYXRlIGV2ZW50CgkgIExldCBiYXNldHJhbnNmb3JtIHB1c2ggYSByZW5lZ290aWF0ZSBldmVudCB1cHN0cmVhbQoJICB3aGVuIGl0IGdldHMgYSBuZXcgc3VnZ2VzdGlvbgoKMjAxMS0wMS0xNyAxMTo1MTo0OSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBZGRpbmcgbmV3IHJlbmVnb3RpYXRlIGV2ZW50CgoyMDExLTA1LTA1IDEzOjEwOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHBhc3MgdGhlIGNvbnRleHQgYXJvdW5kCgkgIFBhc3MgdGhlIGNvbnRleHQgZnJvbSBzcmNwYWQgdG8gc2lua3BhZCBiZWZvcmUgZGF0YWZsb3cgd2hlbiBzb21ldGhpbmcKCSAgY2hhbmdlZC4KCjIwMTEtMDUtMDUgMTE6MTc6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiB1cGRhdGUgdGhlIGNvbnRleHQgbGF6eWx5CgoyMDExLTA1LTA1IDExOjE2OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGluaXQgdGhlIEdUeXBlIGVhcmx5CgoyMDExLTA1LTA1IDExOjE2OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTA1LTA1IDEwOjQwOjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRleHQuYzoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSAgY29udGV4dDogYWRkIGZvcmVhY2ggZnVuY3Rpb24KCSAgQWRkIGEgZnVuY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIGFsbCBzdG9yZWQgZXZlbnRzLgoKMjAxMS0wNS0wNSAxMDozNzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICJjb250ZXh0OiB1c2UgY29udGV4dCBvbiBidWZmZXJzIGluc3RlYWQgb2YgY2FwcyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA5ZWYxMzQ2YjFmYTBiZDJiYjQyY2Q5OTFhNTJmZjMwOGE3MjhiZGI2LgoJICBXYXkgdG8gbXVjaCBmb3Igb25lIGNvbW1pdCBhbmQgSSdtIG5vdCBzdXJlIHdlIHdhbnQgdG8gZ2V0IHJpZCBvZiB0aGUgcGFkIGNhcHMKCSAganVzdCBsaWtlIHRoYXQuIEl0J3MgbmljZSB0byBoYXZlIHRoZSBidWZmZXIgYW5kIGl0cyB0eXBlIGluIG9udyBuaWNlIGJ1bmRsZQoJICB3aXRob3V0IGhhdmluZyB0byBkcmFnIHRoZSBjb21wbGV0ZSBjb250ZXh0IHdpdGggaXQuCgoyMDExLTA0LTIwIDIyOjUyOjM2ICswMjAwICBNaWd1ZWwgQW5nZWwgQ2FicmVyYSBNb3lhIDxtYWRtYWMyNTAxQGdtYWlsLmNvbT4KCgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlOiBkb24ndCB1bmVzY2FwZSBpbnNpZGUgcXVvdGVzCgkgIEVzY2FwZWQgY2hhcmFjdGVycyBpbnNpZGUgcXVvdGVkIHN0cmluZ3MgYXJlIHN1cHBvc2VkIHRvIGJlIHVuZXNjYXBlZCBieQoJICBkZXNlcmlhbGl6YXRpb24gZnVuY3Rpb25zLCBub3QgYnkgcGFyc2luZyBmdW5jdGlvbnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgwMjUKCjIwMTEtMDQtMTggMTQ6MjY6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IE9ubHkgcG9zdCBFT1MgbWVzc2FnZXMgYWZ0ZXIgcmVhY2hpbmcgdGhlIFBMQVlJTkcgc3RhdGUKCSAgRml4ZXMgYnVnICM2NDc3NTYuCgoyMDExLTA0LTE4IDEwOjA0OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBSZW1vdmUgdW5uZWNlc3NhcnkgRklYTUUKCSAgUmVzZXR0aW5nIHRoZSByZXN1bHQgaXMgbm90IG5lY2Vzc2FyeSB3aGVuIHJlc3luY2luZyBiZWNhdXNlCgkgIHBhZHMgdGhhdCBwcmV2aW91c2x5IGdvdCB0aGUgZXZlbnQgd2lsbCBiZSBza2lwcGVkIGFuZCB3ZQoJICBuZWVkIHRvIGNvbnNpZGVyIHRoZSByZXN1bHRzIG9mIHRoZSBwcmV2aW91cyBwdXNoZXMuCgoyMDExLTA0LTE4IDA5OjUzOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IElmIGFjdGl2YXRpbmcgb25lIHBhZCBmYWlsZWQgZXJyb3Igb3V0IGVhcmx5IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBuZXh0IHBhZHMKCSAgSWYgb25lIHBhZCBmYWlscyB0byBhY3RpdmF0ZSB0aGUgY29tcGxldGUgYWN0aXZhdGlvbiBwcm9jZXNzIHdpbGwgZmFpbAoJICBhbnl3YXkgYW5kIHRyeWluZyB0byBhY3RpdmF0ZSB0aGUgb3RoZXIgcGFkcyBvbmx5IHdhc3RlcyB0aW1lLgoKMjAxMS0wNC0xOCAwOTo0OTowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSWYgYWN0aXZhdGluZyBvbmUgcGFkIGZhaWxlZCBlcnJvciBvdXQgZWFybHkgaW5zdGVhZCBvZiB0cnlpbmcgdG8gYWN0aXZhdGUgdGhlIG5leHQgcGFkcwoJICBJZiBvbmUgcGFkIGZhaWxzIHRvIGFjdGl2YXRlIHRoZSBjb21wbGV0ZSBhY3RpdmF0aW9uIHByb2Nlc3Mgd2lsbCBmYWlsCgkgIGFueXdheSBhbmQgdHJ5aW5nIHRvIGFjdGl2YXRlIHRoZSBvdGhlciBwYWRzIG9ubHkgd2FzdGVzIHRpbWUuCgoyMDExLTA1LTA1IDEyOjI4OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBSZW1vdmUgbm93YWRheXMgdW51c2VkIGFuZCB1bmluaXRpYWxpemVkIHNldGNhcHMgdmFyaWFibGUKCjIwMTEtMDUtMDUgMTI6Mjc6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmMKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYwoKMjAxMS0wNS0wNCAxODo1OTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgY29udGV4dDogdXNlIGNvbnRleHQgb24gYnVmZmVycyBpbnN0ZWFkIG9mIGNhcHMKCSAgUHV0IHRoZSBzcmNwYWQgY29udGV4dCBvbiBidWZmZXJzIGluc3RlYWQgb2YgY2Fwcy4gVGhpcyBhbGxvd3MgdXMgdG8gYXNzb2NpYXRlCgkgIGFsbCB0aGUgcmVsZXZhbnQgaW5mbyBjb250YWluZWQgaW4gZXZlbnRzIHdpdGggYSBidWZmZXIuCgoyMDExLTA1LTA0IDE1OjI5OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIHRlc3RzOiBmaXggY29tcGlsZXIgd2FybmluZyBpbiBuZXcgbWluaW9iamVjdCB0ZXN0CgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEluIGZ1bmN0aW9uIOKAmHRlc3RfZHVwX251bGxfbWluaV9vYmplY3TigJk6CgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6NDU5Ojc6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlCgoyMDExLTA1LTA0IDE1OjUzOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbnRleHQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IHVzZSB0aGUgY29udGV4dCB0byBzdG9yZSBzdGlja3kgZXZlbnRzCgkgIFN0b3JlIHRoZSBzdGlja3kgZXZlbnRzIGluIHRoZSBjb250ZXh0IG9mIGEgc291cmNlIHBhZC4KCjIwMTEtMDUtMDQgMTU6MjA6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3Rjb250ZXh0LmM6CgkqIGdzdC9nc3Rjb250ZXh0Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJICBjb250ZXh0OiBhZGQgaGVscGVyIG9iamVjdCB0byBtYW5hZ2UgZXZlbnRzCgkgIEFkZCBhIGhlbHBlciBvYmplY3QgdG8gbWFuYWdlIHRoZSBldmVudHMgdGhhdCBkZWZpbmUgdGhlIGNvbnRleHQgb2YgYSBidWZmZXIgYW5kCgkgIGEgc3RyZWFtLgoKMjAxMS0wNS0wNCAxMTowNzoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wNS0wNCAxMTowMzowNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBldmVudDogYWRkIG5ldyBDQVBTIGV2ZW50CgkgIEFkZCBhIG5ldyBDQVBTIGV2ZW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIG5lZ290aWF0ZSBkb3duc3RyZWFtIGVsZW1lbnRzLiBJdCdsbAoJICBhbHNvIHN0aWNrIG9uIHBhZCBzbyB0aGF0IHdlIGNhbiByZW1vdmUgdGhlIEdzdENhcHMgZmllbGQgb24gcGFkcyBhbmQgdGhlCgkgIEdzdENhcHMgZmllbGQgb24gYnVmZmVycy4KCjIwMTEtMDUtMDMgMTg6NTg6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogbW9yZSBzdGlja3kgZXZlbnRzIHdvcmsKCSAgQ29weSB0aGUgc3RpY2t5IGV2ZW50cyBmcm9tIHRoZSBzcmNwYWQgdG8gdGhlIHNpbmtwYWQgd2hlbiBsaW5raW5nIHBhZHMuIFNldCB0aGUKCSAgU1RJQ0tZX1BFTkRJTkcgZmxhZyB0byBtYWtlIHN1cmUgdGhhdCB0aGUgc3RpY2t5IGV2ZW50cyBhcmUgZGlzcGF0Y2hlZCBiZWZvcmUKCSAgcHVzaGluZyB0aGUgbmV4dCBidWZmZXIgdG8gdGhlIGVsZW1lbnQuCgoyMDExLTA1LTAzIDE2OjExOjEyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogaW1wcm92ZSBwb3J0aW5nIGRvYwoKMjAxMS0wNS0wMiAxODo0NToyNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IHVwZGF0ZSBwb3J0aW5nIGRvY3VtZW50CgoyMDExLTA1LTAyIDExOjMwOjA2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IEZpeCBkdXBfbWluaV9vYmplY3QgZnVuY3Rpb24gdG8gaGFuZGxlIE5VTEwgZ3ZhbHVlcwoJICBnX3ZhbHVlX2R1cF9vYmplY3QgaGFuZGxlcyBndmFsdWVzIHRoYXQgY29udGFpbiBOVUxMIHBvaW50ZXJzLAoJICBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0IHNob3VsZCBkbyB0aGUgc2FtZS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0OTE5NQoKMjAxMS0wNS0wMyAxMzo1NTo0MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgZG9jczogaXQgaXRzICVUUlVFIChjb25zdGFudCkKCSAgQXMgc3BvdHRlZCBieSBUaW0uCgoyMDExLTA1LTAyIDE2OjIyOjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZG9jczogZml4IGNvcHknbidwYXN0ZSBkb2MgaGVhZGVyIG1pc3Rha2UKCjIwMTEtMDUtMDIgMTY6MjA6MjQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIGRvY3M6IGFkZCB0d28gdHJpdmlhbCBkb2MgYmxvYnMKCjIwMTEtMDUtMDIgMTY6MDM6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHBhcmFtZXRlciBkb2NzCgoyMDExLTA1LTAyIDE2OjAwOjUyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIGRvY3M6IGFkZCBkb2NzIGZvciBHc3REUFBhY2tldGl6ZXIKCjIwMTEtMDUtMDIgMTU6NTI6NTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmg6CgkgIGRvY3M6IGltcHJvdmUgdGhlIHN5bnRheCBmb3IgdGhlIGNhcHNpbnRlcnNlY3Rtb2RlIGRvY3MKCjIwMTEtMDUtMDIgMTU6NDg6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IGZpeHVwIGJyb2tlbiB4cmVmCgoyMDExLTA1LTAyIDE1OjQ2OjU5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IGFwaSB0byAtc2VjdGlvbi50eHQKCjIwMTEtMDUtMDIgMTU6MzU6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBkb2NzOiBmaXggZ3RrLWRvYyBzeW50YXgKCjIwMTEtMDUtMDIgMTU6MzA6MTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGRvY3M6IGRvbid0IGR1cGxpY2F0ZSBpbmZvIHRoYXQgd2UgdGFrZSBmcm9tIGVsZW1lbnQtZGV0YWlscwoKMjAxMS0wNC0yOCAxNTozNzowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogcmVtb3ZlIG5vbiBleGlzdGluZyBzeW1ib2wKCjIwMTEtMDQtMjggMTU6MDU6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBkb2NzOiB3ZSBkb24ndCBuZWVkIHRvIGRvY3VtZW50IHByaXZhdGUgbWVtYmVycyBpbiBvcGFxdWUgc3RydWN0cwoKMjAxMS0wNC0yOSAxMzo0MzowNyArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkqIGdzdC9nc3RwcmVzZXQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSAgY29yZTogc3RvcmUgcHJlc2V0cywgcmVnaXN0cnkgYW5kIHBsdWdpbnMgaW4gWERHIGRpcmVjdG9yaWVzLgoJICBQcmVzZXRzIGFuZCBwbHVnaW5zIG1vdmVkIHRvICRYREdfREFUQV9IT01FL2dzdHJlYW1lci0wLjExLwoJICByb290IGRpcmVjdG9yeS4gUmVnaXN0cnkgbW92ZWQgdG8gJFhER19DQUNIRV9IT01FL2dzdHJlYW1lci0wLjExLy4KCSAgRml4ZXMgYnVnICM1MTg1OTcuCgoyMDExLTA1LTAzIDA5OjQxOjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgZ3N0L2dzdGJ1cy5jCgoyMDExLTA1LTAyIDE4OjM0OjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZXZlbnQ6IGFkZCBzdGlja3kgZmxhZ3MgdG8gZXZlbnRzCgkgIEFkZCB0aGUgc3RpY2t5IGZsYWcgdG8gZXZlbnRzIGFuZCBhIHN0aWNreSBpbmRleC4KCSAgS2VlcCBzdGlja3kgZXZlbnRzIGluIGFuIGFycmF5IG9uIGVhY2ggcGFkLgoJICBSZW1vdmUgR1NUX0VWRU5UX1NSQygpLCBpdCBpcyBjYXVzaW5nIHJlZmN5Y2xlcyB3aXRoIHN0aWNreSBldmVudHMsIHdhcyBub3QgdXNlZAoJICBhbmQgaXMgbm90IHZlcnkgaW50ZXJlc3RpbmcgYW55d2F5LgoKMjAxMS0wNS0wMiAxMTowOTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgcXVlcnk6IGltcHJvdmUgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIHF1ZXJ5CgkgIFVzZSB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIHRob3NlIHVzZWQgZm9yIHRoZSBidWZmZXJwb29sLiBNYWtlIHN1cmUgd2UgY2FuIHBhc3MKCSAgYSBtaW5pbXVtIGFuZCBtYXhpbXVtIGFtb3VudCBvZiBidWZmZXJzIG5lZWRlZC4KCjIwMTEtMDQtMzAgMTY6NTU6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zdGF0aWNlbGVtZW50cy54bWw6CgkqIHBvL2RlLnBvOgoJKiBwby9mci5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMyLjQgcHJlLXJlbGVhc2UKCjIwMTEtMDQtMjkgMjM6NDQ6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgcGx1Z2luZmVhdHVyZTogaW5jbHVkZSBwbHVnaW4uaCBpbiBoZWFkZXIgd2hlcmUgd2UgdXNlIGEgR3N0UGx1Z2luIHBvaW50ZXIKCSAgU2hvdWxkIGZpeCBpc3N1ZSB3aXRoIGdzdHJlYW1lcm1tIGJ1aWxkIHdoZXJlIDxnc3QvZ3N0aW5kZXguaD4gaXMgaW5jbHVkZWQKCSAgZGlyZWN0bHkgaW5zdGVhZCBvZiBnc3QvZ3N0LmguCgoyMDExLTA0LTI5IDEzOjQyOjU3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHRyYW5zZm9ybTogZG8gcGFkX2FsbG9jIGZhbGxiYWNrIGNvcnJlY3RseQoKMjAxMS0wNC0yOSAxMzoyNjoxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdmFsdmUuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIFJlbW92ZSBwYWRfYWxsb2MsIHRoaXMgY2FuIG5vdyBiZSBkb25lIGJldHRlcgoJICBSZW1vdmUgcGFkX2FsbG9jIGFuZCBhbGwgcmVmZXJlbmNlcy4gVGhpcyBjYW4gbm93IGJlIGRvbmUgbW9yZSBlZmZpY2llbnRseSBhbmQKCSAgbW9yZSBmbGV4aWJsZSB3aXRoIHRoZSBBTExPQ0FUSU9OIHF1ZXJ5IGFuZCB0aGUgYnVmZmVycG9vbCBvYmplY3RzLiBUaGVyZSBpcyBubwoJICByZXZlcnNlIG5lZ290aWF0aW9uIHlldCBidXQgdGhhdCB3aWxsIGJlIGRvbmUgd2l0aCBhbiBldmVudCBsYXRlci4KCjIwMTEtMDQtMjkgMTI6MTE6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IGluaXQgdGhlIEFMTE9DQVRJT04gcXVlcnkgY29ycmVjdGx5CgkgIERvbid0IGFkZCB0aGUgJ3Bvb2wnIHByb3BlcnR5IGluc3RlYWQgb2YgYWRkaW5nIGl0IHdpdGggYSBOVUxMIGFycmF5LgoKMjAxMS0wNC0yOSAxMDo1MDoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBmaXggcGFyc2luZyBvZiB0aGUgQUxMT0NBVElPTiBxdWVyeQoJICBBZGQgbWV0aG9kcyBmb3IgcGFyc2luZyB0aGUgY2FwcyBhbmQgdGhlIG5lZWRfcG9vbCBib29sZWFuLgoKMjAxMS0wNC0yOCAxNjoyMDoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHF1ZXJ5OiBmaXggdHlwbyBpbiBtZXRob2QgbmFtZSBhbmQgaW1wcm92ZSBkb2NzCgkgIEZpeGVkIHR5cG8gaW4gbWV0aG9kIG5hbWUgYW5kIGFkZC9pbXByb3ZlIHRoZSBkb2NzLgoKMjAxMS0wNC0yOCAxNTozMTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWFsbG9jYXRpb24udHh0OgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBxdWVyeSB0byByZXF1ZXN0IHBvb2wgYW5kIGNvbmZpZ3VyYXRpb24KCSAgQWRkIGEgcXVlcnkgdG8gcmVxdWVzdCBhbGxvY2F0aW9uIHBhcmFtZXRlcnMgYW5kIG9wdGlvbmFsbHkgYSBidWZmZXJwb29sIGFzCgkgIHdlbGwuIFRoaXMgc2hvdWxkIGFsbG93IGVsZW1lbnRzIHRvIGRpc2NvdmVyIGRvd25zdHJlYW0gY2FwYWJpbGl0aWVzIGFuZCBhbHNvCgkgIHVzZSB0aGUgZG93bnN0cmVhbSBhbGxvY2F0b3JzLgoKMjAxMS0wNC0yNyAxODoxMDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBmaXggdGltZW91dCBoYW5kbGluZwoKMjAxMS0wNC0yNyAxNzo1NjoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBmaXggc29tZSBkb2NzCgoyMDExLTA0LTI3IDE3OjU1OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIGV2ZW50OiBpbXByb3ZlIGFyZ3VtZW50IG5hbWVzIG9mIHNlZ21lbnRzCgoyMDExLTA0LTI3IDExOjQ5OjExICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBwby9iZy5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMyLjMgcHJlLXJlbGVhc2UKCjIwMTEtMDQtMjYgMTU6NDI6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkgIFJldmVydCBsb2NrZnJlZSBHc3RCdXMgZm9yIHRoZSByZWxlYXNlCgkgIERyb3AgaW4gb2xkIEdzdEJ1cyBjb2RlIGZvciB0aGUgcmVsZWFzZSB0byBwbGF5IGl0IHNhZmUsIHNpbmNlCgkgIHJlZ3Jlc3Npb25zIHRoYXQgYXJlIGFwcGFyZW50bHkgaGFyZCB0byB0cmFjayBkb3duIGFuZCByZXByb2R1Y2UKCSAgaGF2ZSBiZWVuIHJlcG9ydGVkIChvbiB3aW5kb3dzL09TWCBtb3N0bHkpIGFnYWluc3QgdGhlIGxvY2tmcmVlCgkgIHZlcnNpb24sIGFuZCBtb3JlIHRpbWUgaXMgbmVlZGVkIHRvIGZpeCB0aGVtLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDAzMzkxYTg5NzAwMWQzNWQxZDI5MGYyN2RkMTJlOThhOGI3MjlmYjQuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDNjZGJjMTdlNmY5NDRjZGYwMmFlZWQ3OGQxZDVmNmJkZTUxOTBjOS4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4MGViMTYwZTBmNjIzNTAyNzFmMDYxZGFhNWYyODlkOWQ0Mjc3Y2Y0LgoJICBUaGlzIHJldmVydHMgY29tbWl0IGM0MWIwYWRlMjg3OTBmZmRiMGU0ODRiNDFjZDc5MjljNGUxNDVkZWMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgODc0ZDYwZTU4OTlkZDViODk4NTQ2NzlkMWE0YWQwMTZhNThiYTRlMC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA3OTM3MGQ0YjE3ODFhZjljOWE2NWYyZDFlMzQ5ODEyNGQ4YzRjNDEzLgoJICBUaGlzIHJldmVydHMgY29tbWl0IDJjYjNlNTIzNTE5NmViNzFmYjI1ZTBhNGE0Yjg3NDlkNmQwYTg0NTMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYmQxYzQwMDExNDM0YzFlZmFhNjk2ZGM5OGVmODU1ZWY5Y2NlOWIyOC4KCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA0YmY4ZjE1MjRmNmUzMzc0YjNmM2JjNTczMjIzMzc3MjNkMDZiOTI4LgoJICBUaGlzIHJldmVydHMgY29tbWl0IDE0ZDdkYjFiNTI3YjA1ZjAyOTgxOTA1N2FlZjVjMTIzYWM3ZTAxM2QuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc0OTMKCjIwMTEtMDQtMjUgMTE6MTA6NDcgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBTbWFsbCBjb3NtZXRpYyBjbGVhbnVwcwoJICBNYWtlIHN1cmUgdGhlIHJldHVybiB2YWx1ZXMgZnJvbSBnX3JldHVybl8qIGFyZSBvZiB0aGUgcmlnaHQgdHlwZS4KCjIwMTEtMDQtMjUgMTA6NTY6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtaXhpbmcgb2YgcmV0dXJuIHZhbHVlcwoKMjAxMS0wNC0yNSAxMDozMDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTUgMjI6MDA6MTEgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIG1pbm9yIGlubGluZSBkb2N1bWVudGF0aW9uIGZpeAoKMjAxMS0wNC0yNCAxNDowMjo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGMzY2FmZTEgdG8gNDZkZmNlYQoKMjAxMS0wNC0yNCAxMTo0NDoxOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIHRlc3RzOiBjbGVhbiB1cCBwcm9wZXJseSBpbiB0aGUgYmluIHRlc3RfbGlua19zdHJ1Y3R1cmVfY2hhbmdlIHVuaXQgdGVzdAoJICBEb24ndCBmb3JnZXQgdG8gc2V0IHRoZSBwaXBlbGluZSBiYWNrIHRvIE5VTEwgc3RhdGUsIHdoaWNoIG1ha2VzCgkgIHZhbGdyaW5kIGhhcHB5IGFnYWluLgoKMjAxMS0wNC0yNCAwOTo1ODo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHdoZW4gcmVtb3ZpbmcgYSBjYWNoZWQtYnV0LW5vLWxvbmdlci1leGlzdGluZyBwbHVnaW4sIG9ubHkgcmVtb3ZlIGZlYXR1cmVzIHRoYXQgYmVsb25nIHRvIGl0CgkgIFdoZW4gYSBwbHVnaW4gZmlsZSBubyBsb25nZXIgZXhpc3RzLCBlLmcuIGJlY2F1c2UgaXQncyBiZWVuIHJlbW92ZWQgb3IKCSAgcmVuYW1lZCwgZG9uJ3QgcmVtb3ZlIGFsbCBmZWF0dXJlcyBpbiB0aGUgcmVnaXN0cnkgYmFzZWQgb24gdGhlICpuYW1lKgoJICBvZiB0aGUgcGx1Z2luIHRoZXkgYmVsb25nIHRvLCBidXQgb25seSByZW1vdmUgdGhvc2Ugd2hvIGFjdHVhbGx5IGJlbG9uZwoJICB0byB0aGF0IHBhcnRpY3VsYXIgcGx1Z2luIChvYmplY3QvcG9pbnRlcikuCgkgIFRoaXMgZml4ZXMgaXNzdWVzIG9mIHBsdWdpbiBmZWF0dXJlcyBkaXNhcHBlYXJpbmcgd2hlbiBhIHBsdWdpbiAuc28gZmlsZQoJICBpcyByZW5hbWVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA0MDk0CgoyMDExLTA0LTI0IDA5OjUzOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIHBsdWdpbmZlYXR1cmU6IHN0b3JlIHBvaW50ZXIgdG8gcGx1Z2luIGluIGFkZGl0aW9uIHRvIHRoZSBwbHVnaW4gbmFtZQoJICBTbyB3ZSBjYW4gcmVsaWFibHkgcmVtb3ZlIHBsdWdpbiBmZWF0dXJlcyBmb3IgYSBzcGVjaWZpYyBwbHVnaW4gbGF0ZXIuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MDQwOTQKCjIwMTEtMDQtMjQgMTE6MDU6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiB1c2UgVFJBQ0UgbG9nIGxldmVsIHRvIGxvZyBmaWxlcyB0aGF0IGRvbid0IGxvb2sgbGlrZSBwbHVnaW5zCgkgIEN1dHMgZG93biB0aGUgbm9pc2UgaW4gdW5pbnN0YWxsZWQgc2V0dXBzLgoKMjAxMS0wNC0xOSAyMDozNTowNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogZml4IG5lZ290aWF0aW9uIHJlZ3Jlc3Npb24KCSAgRml4dXAgcGF0Y2ggZm9yIDgzNTk3NzY3YjE2OWRkNmMzOWEwN2I2MTQ0YTY1MGMxZjA5ODgyNWEKCSAgVXNlIGEgc2VwYXJhdGUgdmFyaWFibGUgZm9yIGtub3dpbmcgaWYgYSBwYWQgYWxsb2MgaGFzIGJlZW4gbWFkZQoJICBpbnN0ZWFkIG9mIGNoZWNraW5nIGZvciB0aGUgZmxvdyByZXR1cm4gdGhhdCBtaWdodCBub3QgYmUgdGhlCgkgIHJlc3VsdCBvZiB0aGUgcGFkIGFsbG9jCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDgyMjAKCjIwMTEtMDQtMjEgMTI6MzM6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHRlc3RzOiBhZGQgc2ltcGxlIHBpcGVsaW5lLWluLXBpcGVsaW5lIHVuaXQgdGVzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4Mjk3CgoyMDExLTA0LTIwIDE1OjM5OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBhbHNvIGFsbG93IHBvcHBpbmcgYSBtZXNzYWdlIHdpdGhvdXQgdGltZW91dCBpZiBubyBwb2xsIGF2YWlsYWJsZQoJICAuLi4gd2hpY2ggaGFwcGVucyBpbiBwYXJ0aWN1bGFyIGZsdXNoaW5nIGEgYnVzLCBwb3NzaWJseSBhcyBwYXJ0CgkgIG9mIGEgc3RhdGUgY2hhbmdlLCBlLmcuIHdoZW4gaGF2aW5nIGEgcGlwZWxpbmUgaW4gYSBwaXBlbGluZQoJICBhbmQgdGhlbiBjaGFuZ2luZyBzdGF0ZSBiYWNrIHRvIE5VTEwuIFRoZSBpbnRlcmlvciBwaXBlbGluZQoJICB3aWxsL21pZ2h0IHRoZW4gZmx1c2ggdGhlIGJ1cywgd2hpY2ggaXMgYSBjaGlsZCBidXMgZnJvbSB0aGUKCSAgcGFyZW50IHdoaWNoIGRvZXMgbm90IGhhdmUgYSBwb2xsIGFueW1vcmUgdGhlc2UgZGF5cy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODI5NwoKMjAxMS0wNC0yMCAxOTowODo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiB1cGRhdGUgZGVmcwoKMjAxMS0wNC0yMCAxOTowMzo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDQtMjAgMTk6MDA6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCB0b3VjaCBiYXNlX3RpbWUgb3IgY2xvY2sgaW4gc3RhdGUgY2hhbmdlCgkgIERvbid0IHRvdWNoIHRoZSBiYXNlX3RpbWUgb3IgdGhlIGNsb2NrIHdoZW4gc2V0dGluZyBhbiBlbGVtZW50IHRvIHRoZSBSRUFEWSBvcgoJICBOVUxMIHN0YXRlLiBJdCBpcyB0aGUgcGFyZW50IHRoYXQgd2lsbCBtYW5hZ2UgdGhpcyBmb3IgdXMuCgoyMDExLTA0LTE5IDIwOjUyOjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IEltcGxlbWVudCBnc3RfYnVmZmVyX2xpc3RfZm9yZWFjaCgpCgoyMDExLTA0LTE5IDE5OjMwOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0xOSAxODo1Nzo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBtZXRob2QgdG8gY29tcGFyZSBidWZmZXIgZGF0YQoJICBBZGQgbWV0aG9kIHRvIGNvbXBhcmUgdGhlIGRhdGEgaW4gYSBidWZmZXIuCgoyMDExLTA0LTE5IDE2OjIxOjE1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGNvbmZpZ3VyZS5hYwoKMjAxMS0wNC0xOSAxNDowNToyMyArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVubG9jayBiZWZvcmUgZnJlZWluZyB0aGUgY2FjaGUgdG8gYXZvaWQgZGVhZGxvY2sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0ODE5OQoKMjAxMS0wNC0xNCAxMDoxNToyNiArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGRvbid0IHVucmVmIHRyYW5zIHVudGlsIHRoZSBmdW5jdGlvbiBpcyBkb25lIHVzaW5nIGl0CgkgIHRyYW5zLT5wcml2LT5mb3JjZV9hbGxvYyA9IEZBTFNFIHdvdWxkIGNyYXNoIGlmIHRoZSByZWYgaGVsZCBpcyB0aGUgbGFzdAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4MjE1CgoyMDExLTA0LTE5IDEzOjIzOjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBkb2NzOiBhZGQgbm90ZS93YXJuaW5nIHRvIGdzdF9pbmRleF9nZXRfd3JpdGVyX2lkKCkgZG9jcyBhYm91dCB0aGUgT0JKRUNUX0xPQ0sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjgxMQoKMjAxMS0wNC0xOSAxMzowNTo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvbid0IGRlYWRsb2NrIHdoZW4gc2V0dGluZyBleHRlcm5hbCBpbmRleAoJICBQcm90ZWN0IGluZGV4IHdpdGggaXRzIG93biBsb2NrLiBnc3RfaW5kZXhfZ2V0X3dyaXRlcl9pZCgpIG1heSB0YWtlCgkgIHRoZSBvYmplY3QgbG9jayBpbnRlcm5hbGx5ICh0aGUgZGVmYXVsdCByZXNvbHZlciwgR1NUX0lOREVYX1JFU09MVkVSX1BBVEgsCgkgIHdpbGwgYW55d2F5KSwgc28gaWYgd2UncmUgdXNpbmcgdGhhdCB0byBwcm90ZWN0IHRoZSBpbmRleCBhcyB3ZWxsLAoJICB3ZSdsbCBkZWFkbG9jay4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjgxMQoKMjAxMS0wNC0xOSAxMTo1MTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1ha2UgZm10bGlzdCBjb25zdGFudAoKMjAxMS0wNC0xOSAxMTo0ODowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiBjb25zdC1pZnkgZm9ybWF0cyBhcmd1bWVudHMgdG8gZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzdigpCgoyMDExLTA0LTE4IDE4OjE5OjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHRlc3RzOiBVc2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xOCAxODoxOToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNle3Npbmssc3JjfTogRG9uJ3QgdHJ5IHRvIGZpeGF0ZSBBTlkgY2FwcwoKMjAxMS0wNC0xOCAxODowNzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZWxlbWVudHM6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE4IDE3OjMzOjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBuZXQ6IFVzZSBHX0RFRklORV9UWVBFIGluc3RlYWQgb2YgR1NUX0JPSUxFUlBMQVRFCgoyMDExLTA0LTE4IDE3OjMyOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICBiYXNlOiBVc2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xOCAxNzoyODozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IFJlbW92ZSBHU1RfQk9JTEVSUExBVEUgYW5kIGZyaWVuZHMKCjIwMTEtMDQtMTggMTA6NDc6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogTWFrZSB0aGUgc2l6ZSBwYXJhbWV0ZXIgb2YgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSB1bnNpZ25lZAoJICBJbnRlcm5hbGx5IGd1aW50cyB3ZXJlIHVzZWQgZXZlcnl3aGVyZSBhbHJlYWR5LgoKMjAxMS0wNC0xOCAxMDo0MToxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRG9uJ3QgYWxsb3cgZml4YXRpbmcgQU5ZIGNhcHMgYW5kIHJlbW92ZSBGSVhNRQoKMjAxMS0wNC0xOCAxMDozNjo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogRW5hYmxlIERVUkFUSU9OIHF1ZXJ5IGNhY2hpbmcKCSAgRWxlbWVudHMgbXVzdCBub3cgcG9zdCBhIERVUkFUSU9OIG1lc3NhZ2Ugb24gdGhlIGJ1cyBpZiB0aGV5CgkgIGNoYW5nZSB0aGUgZHVyYXRpb24gaW4gUEFVU0VEIG9yIFBMQVlJTkcuCgoyMDExLTA0LTE2IDE1OjIwOjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IHJlbW92ZSByZWZlcmVuY2UgdG8gYmFzZXBhcnNlIEFQSSB0aGF0IGRpZG4ndCBtYWtlIGl0CgoyMDExLTA0LTE2IDE2OjA2OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTEtMDQtMTYgMTU6Mjg6NTMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogQWRkIHRlc3QgZm9yIGluaGVyaXRpbmcgbWV0YWRhdGEvcGFkIHRlbXBsYXRlcwoKMjAxMS0wNC0xNiAxNToyNDowMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlOiBVcGRhdGUgZG9jcyB0byBzYXkgY2xhc3NfaW5pdCBpbnN0ZWFkIG9mIGJhc2VfaW5pdAoJICBBbmQgcmVtb3ZlIGEgdXNlbGVzcyBiYXNlX2luaXQgaW4gYmFzZXNyYwoKMjAxMS0wNC0xNiAxNToyMzo0NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIG5ldDogVXNlIEdfREVGSU5FX1RZUEUKCjIwMTEtMDQtMTYgMTU6MjM6MTkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0OiBEb24ndCB1c2UgYmFzZV9pbml0IGFuZCB1c2UgR19ERUZJTkVfVFlQRSBpbnN0ZWFkIG9mIEdTVF9CT0lMRVJQTEFURQoKMjAxMS0wNC0xNiAxNTowMzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgZWxlbWVudDogSW5oZXJpdCBlbGVtZW50IG1ldGFkYXRhIGFuZCBwYWQgdGVtcGxhdGVzIGZyb20gcGFyZW50IGNsYXNzZXMKCSAgVGhpcyBhbGxvd3MgdG8gYWRkIHBhZCB0ZW1wbGF0ZXMgYW5kIHNldCBtZXRhZGF0YSBpbiBjbGFzc19pbml0IGluc3RlYWQgb2YKCSAgYmFzZV9pbml0LiBiYXNlX2luaXQgaXMgYSBjb25jZXB0IHRoYXQgaXMgbm90IHN1cHBvcnRlZCBieSBhbG1vc3QgYWxsCgkgIGxhbmd1YWdlcyBhbmQgY29weWluZyB0aGUgdGVtcGxhdGVzL21ldGFkYXRhIGZvciBzdWJjbGFzc2VzIGlzIHRoZSBtb3JlCgkgIGludHVpdGl2ZSB3YXkgb2YgZG9pbmcgdGhpbmdzLgoJICBTdWJjbGFzc2VzIGNhbiBvdmVycmlkZSBwYWQgdGVtcGxhdGVzIG9mIHBhcmVudCBjbGFzc2VzIGJ5IGFkZGluZyBhIG5ldwoJICB0ZW1wbGF0ZSB3aXRoIHRoZSBzYW1lIG5vdy4KCSAgQWxzbyBnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlKCkgbm93IHRha2VzIG93bmVyc2hpcCBvZiB0aGUKCSAgcGFkIHRlbXBsYXRlLCB3aGljaCB3YXMgYXNzdW1lZCBieSBhbGwgY29kZSBiZWZvcmUgYW55d2F5LgoJICBGaXhlcyBidWcgIzQ5MTUwMS4KCjIwMTEtMDQtMTYgMTQ6NTY6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMyLjIgcHJlLXJlbGVhc2UKCjIwMTEtMDQtMTYgMTQ6NTQ6MDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbC5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9nbC5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL2x0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcm8ucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDExLTA0LTE2IDE0OjUyOjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcmVtb3ZlIG5ld2xpbmUgZnJvbSB0cmFuc2xhdGFibGUgc3RyaW5nCgoyMDExLTA0LTE2IDEzOjQ5OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgZ3N0OiBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciBkb2Vzbid0IG5lZWQgdG8gc2NhbiBvciB1cGRhdGUgcGx1Z2luIGluZm8KCjIwMTEtMDQtMTYgMTQ6MzQ6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IG1ha2Ugc3VyZSBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciBjYWxscyBnc3RfaW5pdCgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDc5MjIKCjIwMTEtMDQtMTYgMTA6NDU6MTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciBkb2Vzbid0IG5lZWQgdG8gc2NhbiBvciB1cGRhdGUgcGx1Z2luIGluZm8KCSAgTWFrZSBzdXJlIHRoZSBzY2FubmVyIGRvZXNuJ3QgbG9hZCBvciBpbnRyb3NwZWN0IG9yIGNoZWNrIGFueSBwbHVnaW5zLAoJICAoZXNwZWNpYWxseSBub3Qgb3V0c2lkZSB0aGUgYnVpbGQgZGlyZWN0b3J5KS4KCjIwMTEtMDQtMTYgMTA6MzM6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBtYWtlIHN1cmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIgY2FsbHMgZ3N0X2luaXQoKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ3OTIyCgoyMDExLTA0LTE2IDEwOjE3OjI0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgYmFzZXBhcnNlIEFQSSB0byBsaWJnc3RiYXNlLmRlZgoKMjAxMS0wNC0xNiAwOTozMzowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE2IDA5OjMyOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogQWRkIGV4cG9ydHMgZm9yIHRoZSBHc3RQYXJzZUNvbnRleHQgYW5kIEdzdEJ1ZmZlckxpc3RJdGVyYXRvciB0eXBlcwoKMjAxMS0wNC0xNiAwODo1OTo1OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTE1IDIwOjU4OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBvbmx5IHJ1biBnc3QtcGx1Z2luLXNjYW5uZXIgd2l0aCAvdXNyL2Jpbi9hcmNoIHdyYXBwZXIgb24gT1MgWCA+PSAxMC41CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBEYW5pZWwgTWFja3MgPGRtYWNrc0BuZXRzcGFjZS5vcmc+CgkgIEVhcmxpZXIgdmVyc2lvbnMgb2YgT1NYIGRvbid0IHN1cHBvcnQgcHJvcGVyIG11bHRpYXJjaCBhbmQKCSAgdHJ5aW5nIHRvIHVzZSAvdXNyL2Jpbi9hcmNoIC1mb28gd2l0aCB0aG9zZSB2ZXJzaW9ucyB3b3VsZAoJICBqdXN0IGJyZWFrIHRoaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNTM1NwoKMjAxMS0wNC0xNSAxOTowNzo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGV4cG9zZSBnc3RfYmFzZV9wYXJzZV9mcmFtZV9mcmVlKCkgZm9yIGNvbXBsZXRlbmVzcwoJICBBUEk6IGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2ZyZWUoKQoKMjAxMS0wNC0xNSAxODo1MjoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGluaXQgZnJhbWVzIG9uIHRoZSBzdGFjayB3aXRoIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2luaXQoKQoJICBGcmFtZXMgbXVzdCBub3cgYmUgaW5pdGVkIHRoaXMgd2F5LCBjYW4ndCBqdXN0IHplcm8gdGhlbQoJICBvdXQgYW5kIHVzZSB0aGVtLgoKMjAxMS0wNC0xNSAxODozODo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG1vcmUgZGVidWcgbG9nZ2luZywgbWlub3IgY2xlYW4tdXAKCSAgVHJhY2UgZnJhbWVzLCBzcGxpdCBvdXQgY29kZSB0byBxdWV1ZSBhIGZyYW1lIGZvciBsYXRlci4KCjIwMTEtMDQtMTUgMTg6MDA6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBjaGFuZ2UgZ3N0X2Jhc2VfcGFyc2VfZnJhbWVfaW5pdCgpIHRvIG5vdCB0YWtlIGEgR3N0QmFzZVBhcnNlIGFyZ3VtZW50CgoyMDExLTA0LTE1IDE3OjQxOjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbWFrZSBHc3RCYXNlUGFyc2VGcmFtZSBoYW5kbGluZyBtb3JlIGJpbmRpbmdzLWZyaWVuZGx5CgkgIENoYW5nZSBzZW1hbnRpY3Mgb2YgZ3N0X2Jhc2VfcGFyc2VfcHVzaF9mcmFtZSgpIGFuZCBtYWtlIGl0IHRha2UKCSAgb3duZXJzaGlwIG9mIHRoZSB3aG9sZSBmcmFtZSwgbm90IGp1c3QgdGhlIGZyYW1lIGNvbnRlbnRzLiBUaGlzCgkgIGlzIG1vcmUgaW4gbGluZSB3aXRoIGhvdyBnc3RfcGFkX3B1c2goKSBldGMuIHdvcmsuIEp1c3QgdHJhbnNmZXJpbmcKCSAgdGhlIGNvbnRlbnQsIGJ1dCBub3QgdGhlIGNvbnRhaW5lciBvZiBzb21ldGhpbmcgdGhhdCdzIG5vdCByZWFsbHkKCSAga25vd24gdG8gYmUgYSBjb250YWluZXIgaXMgaGFyZCB0byBhbm5vdGF0ZSBwcm9wZXJseSBhbmQgcHJvYmFibHkKCSAgd29uJ3Qgd29yay4gV2UgbWFyayBmcmFtZXMgYWxsb2NhdGVkIG9uIHRoZSBzdGFjayBub3cgd2l0aCBhIHByaXZhdGUKCSAgZmxhZyBpbiBnc3RfYmFzZV9wYXJzZV9mcmFtZV9pbml0KCksIHNvIGdzdF9iYXNlX3BhcnNlX2ZyYW1lX2ZyZWUoKQoJICBvbmx5IGZyZWVzIHRoZSBjb250ZW50cyBpbiB0aGF0IGNhc2UgYnV0IG5vdCB0aGUgZnJhbWUgc3RydWN0IGl0c2VsZi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoJICBBUEk6IGdzdF9iYXNlX3BhcnNlX2ZyYW1lX25ldygpCgoyMDExLTA0LTE1IDE1OjAyOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVnaXN0ZXIgYm94ZWQgdHlwZSBmb3IgR3N0QmFzZUZyYW1lUGFyc2UKCSAgVG8gbWFrZSB0aGlzIHVzYWJsZSBmb3IgYmluZGluZ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMTUgMTM6NTc6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBBZGQgbWlzc2luZyApIHRvIHRoZSByaW5nLWJ1ZmZlci1tYXgtc2l6ZSBwcm9wZXJ0eSBkZXNjcmlwdGlvbgoKMjAxMS0wNC0xNSAxMDo1Mzo1NiArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBSZW1vdmUgdW51c2VkIGJ1dCBzZXQgdmFyaWFibGUKCSAgR0NDIDQuNi4wIHNwaXRzIHdhcm5pbmdzIGFib3V0IHRoZXNlLgoKMjAxMS0wNC0xNCAxNjowNjoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IEFkZCBib3hlZCB0eXBlIGZvciBHc3RCdWZmZXJMaXN0SXRlcmF0b3IgZm9yIGdvYmplY3QtaW50cm9zcGVjdGlvbgoKMjAxMS0wNC0xNCAxNTo1OToyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSAgcGFyc2U6IEFkZCBib3hlZCB0eXBlIGZvciBHc3RQYXJzZUNvbnRleHQgZm9yIGdvYmplY3QtaW50cm9zcGVjdGlvbgoKMjAxMS0wNC0xNCAxNTo1MToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3Q6IEFkZCBzb21lIG1vcmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGFubm90YXRpb25zCgoyMDExLTA0LTE0IDA5OjA3OjQ4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBsZWFrIHRoZSBzaW5rcGFkIG5hbWUKCjIwMTEtMDQtMTQgMDk6MDc6MjUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBEb24ndCBsZWFrIHBhZHMgaW4gdGhlIG5hbWVkIHBhZHMgdW5pdCB0ZXN0CgoyMDExLTA0LTE0IDA4OjU5OjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IGNhcHMgbGVha3MgaW4gZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fYWNjZXB0X3thbnksYWxsfV9jYXBzX2luX2RpcmVjdGlvbigpCgoyMDExLTA0LTEzIDA5OjIwOjEzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9wYXJzZS9wYXJzZS5sOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIHBhcnNlcjogQWxsb3cgZWxlbWVudCBuYW1lcyB0byBiZWdpbiB3aXRoIGRpZ2l0cwoKMjAxMS0wNC0xMyAxMDoyNDozMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdGVzdHM6IEFkZCB0ZXN0IGZvciBncmVhdGVzdCBjb21tb24gZGl2aXNvcgoKMjAxMS0wMS0wNiAxODoxMTozMSArMDEwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvcmF2bmFzQGNpc2NvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZWxlbWVudHM6IEZpeCBwYWQgY2FsbGJhY2tzIHNvIHRoZXkgaGFuZGxlIHdoZW4gcGFyZW50IGdvZXMgYXdheQoJICAxKSBXZSBuZWVkIHRvIGxvY2sgYW5kIGdldCBhIHN0cm9uZyByZWYgdG8gdGhlIHBhcmVudCwgaWYgc3RpbGwgdGhlcmUuCgkgIDIpIElmIGl0IGhhcyBnb25lIGF3YXksIHdlIG5lZWQgdG8gaGFuZGxlIHRoYXQgZ3JhY2VmdWxseS4KCSAgVGhpcyBpcyBuZWNlc3NhcnkgaW4gb3JkZXIgdG8gc2FmZWx5IG1vZGlmeSBhIHJ1bm5pbmcgcGlwZWxpbmUuIEhhcyBiZWVuCgkgIG9ic2VydmVkIHdoZW4gYSBzdHJlYW1pbmcgdGhyZWFkIGlzIGRvaW5nIGEgYnVmZmVyX2FsbG9jKCkgd2hpbGUgYW4KCSAgYXBwbGljYXRpb24gdGhyZWFkIHNlbmRzIGFuIGV2ZW50IG9uIGEgcGFkIGZ1cnRoZXIgZG93bnN0cmVhbSwgYW5kIGZyb20KCSAgd2l0aGluIGEgcGFkIHByb2JlIChob2xkaW5nIFNUUkVBTV9MT0NLKSBjYXJyaWVzIG91dCB0aGUgcGlwZWxpbmUgcGx1bWJpbmcKCSAgd2hpbGUgdGhlIHN0cmVhbWluZyB0aHJlYWQgaGFzIGl0cyBidWZmZXJfYWxsb2MoKSBpbiBwcm9ncmVzcy4KCjIwMTEtMDEtMDYgMTg6MTE6MzEgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b3Jhdm5hc0BjaXNjby5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNlOiBGaXggcGFkIGNhbGxiYWNrcyBzbyB0aGV5IGhhbmRsZSB3aGVuIHBhcmVudCBnb2VzIGF3YXkKCSAgMSkgV2UgbmVlZCB0byBsb2NrIGFuZCBnZXQgYSBzdHJvbmcgcmVmIHRvIHRoZSBwYXJlbnQsIGlmIHN0aWxsIHRoZXJlLgoJICAyKSBJZiBpdCBoYXMgZ29uZSBhd2F5LCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGF0IGdyYWNlZnVsbHkuCgkgIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHNhZmVseSBtb2RpZnkgYSBydW5uaW5nIHBpcGVsaW5lLiBIYXMgYmVlbgoJICBvYnNlcnZlZCB3aGVuIGEgc3RyZWFtaW5nIHRocmVhZCBpcyBkb2luZyBhIGJ1ZmZlcl9hbGxvYygpIHdoaWxlIGFuCgkgIGFwcGxpY2F0aW9uIHRocmVhZCBzZW5kcyBhbiBldmVudCBvbiBhIHBhZCBmdXJ0aGVyIGRvd25zdHJlYW0sIGFuZCBmcm9tCgkgIHdpdGhpbiBhIHBhZCBwcm9iZSAoaG9sZGluZyBTVFJFQU1fTE9DSykgY2FycmllcyBvdXQgdGhlIHBpcGVsaW5lIHBsdW1iaW5nCgkgIHdoaWxlIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBpdHMgYnVmZmVyX2FsbG9jKCkgaW4gcHJvZ3Jlc3MuCgoyMDExLTAxLTA2IDE4OjExOjMxICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9yYXZuYXNAY2lzY28uY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBGaXggcGFkIGNhbGxiYWNrcyBzbyB0aGV5IGhhbmRsZSB3aGVuIHBhcmVudCBnb2VzIGF3YXkKCSAgMSkgV2UgbmVlZCB0byBsb2NrIGFuZCBnZXQgYSBzdHJvbmcgcmVmIHRvIHRoZSBwYXJlbnQsIGlmIHN0aWxsIHRoZXJlLgoJICAyKSBJZiBpdCBoYXMgZ29uZSBhd2F5LCB3ZSBuZWVkIHRvIGhhbmRsZSB0aGF0IGdyYWNlZnVsbHkuCgkgIFRoaXMgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHNhZmVseSBtb2RpZnkgYSBydW5uaW5nIHBpcGVsaW5lLiBIYXMgYmVlbgoJICBvYnNlcnZlZCB3aGVuIGEgc3RyZWFtaW5nIHRocmVhZCBpcyBkb2luZyBhIGJ1ZmZlcl9hbGxvYygpIHdoaWxlIGFuCgkgIGFwcGxpY2F0aW9uIHRocmVhZCBzZW5kcyBhbiBldmVudCBvbiBhIHBhZCBmdXJ0aGVyIGRvd25zdHJlYW0sIGFuZCBmcm9tCgkgIHdpdGhpbiBhIHBhZCBwcm9iZSAoaG9sZGluZyBTVFJFQU1fTE9DSykgY2FycmllcyBvdXQgdGhlIHBpcGVsaW5lIHBsdW1iaW5nCgkgIHdoaWxlIHRoZSBzdHJlYW1pbmcgdGhyZWFkIGhhcyBpdHMgYnVmZmVyX2FsbG9jKCkgaW4gcHJvZ3Jlc3MuCgoyMDExLTA0LTEzIDE3OjI2OjU0ICswMjAwICBKYW5uZSBHcnVuYXUgPGphbm5lLmdydW5hdUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHByZXZlbnQgY2FsY3VsYXRpb24gd2l0aCBHU1RfQ0xPQ0tfVElNRV9OT05FIGluIHVwZGF0ZV90aW1lX2xldmVsKCkKCjIwMTEtMDQtMTEgMTU6MDg6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZTIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSAgdGVzdHM6IGZpeCB1bnVzdWVkLWJ1dC1hc3NpZ25lZC12YXJpYWJsZSB3YXJuaW5ncyB3aXRoIGdjYyA0LjYKCjIwMTEtMDQtMTEgMTM6MDQ6MzIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICB0ZXN0czogZGlzYWJsZSB0ZXN0X21hbnlfYmlucyB1bml0IHRlc3QgZm9yIG5vdwoJICBJdCBmYWlscyBvbiB0aGUgT1NYIGJvdCAoYm90aCB3aXRoIGdpdCBhbmQgdGhlIGxhc3QgcmVsZWFzZSksIGFuZAoJICBpdCBkb2Vzbid0IHJlYWxseSB0ZXN0IGFueXRoaW5nIHVzZWZ1bCwgc28gbWF5IGp1c3QgYXMgd2VsbCBkaXNhYmxlCgkgIGl0IGZvciBub3cuCgoyMDExLTA0LTExIDEyOjUxOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCSAgQ2FzdCBzdHJpbmcgY29uc3RhbnRzIHRvIG1ha2UgY29tcGlsZXIgaGFwcHkuCgoyMDExLTA0LTExIDEyOjA0OjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgdGVzdHM6IGFsbG93IG1vcmUgdGltZSBmb3IgdGhlIHRlc3RfbWFueV9iaW5zIHBpcGVsaW5lIHRvIHByZXJvbGwKCSAgSG9wZWZ1bGx5IG1ha2VzIHRoaXMgdGVzdCB3b3JrIG9uIHRoZSBPU1ggYnVpbGQgYm90IGFuZCBvdGhlcgoJICBub3Qtc28tcG93ZXJmdWwgbWFjaGluZXMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY2MjQKCjIwMTEtMDQtMTEgMTE6Mjk6MDAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IG1ha2Ugc3VyZSBnc3QtcGx1Z2luLXNjYW5uZXIgaXMgY2FsbGVkIHdpdGggdGhlIHJpZ2h0IGFyY2ggb24gT1NYCgkgIE9uIE9TWCwgR1N0cmVhbWVyIG1pZ2h0IGJlIGJ1aWx0IGFzIGEgJ2ZhdC91bml2ZXJzYWwnIGJpbmFyeSBjb250YWluaW5nCgkgIGJvdGggMzItYml0IGFuZCA2NC1iaXQgY29kZS4gV2UgbXVzdCB0YWtlIGNhcmUgdGhhdCBnc3QtcGx1Z2luLXNjYW5uZXIKCSAgaXMgZXhlY3V0ZWQgd2l0aCB0aGUgc2FtZSBhcmNoaXRlY3R1cmUgYXMgdGhlIEdTdHJlYW1lciBjb3JlLCBvdGhlcndpc2UKCSAgYmFkIHRoaW5ncyBtYXkgaGFwcGVuIGFuZCBjb3JlL3NjYW5uZXIgd2lsbCBub3QgYmUgYWJsZSB0byBjb21tdW5pY2F0ZQoJICBwcm9wZXJseS4KCSAgU2hvdWxkIGZpeCBpc3N1ZXMgd2l0aCAoMzItYml0KSBmaXJlZm94IHVzaW5nIGEgMzItYml0IEdTdHJlYW1lciBjb3JlCgkgIHdoaWNoIHRoZW4gc3Bhd25zIGEgJ3VuaXZlcnNhbCcgZ3N0LXBsdWdpbi1zY2FubmVyIGJpbmFyeSB3aGljaCBnZXRzCgkgIHJ1biBpbiA2NC1iaXQgbW9kZSwgY2F1c2luZyAxMDAlIGNwdSB1c2FnZSAvIGJ1c3kgbG9vcHMgb3IganVzdCBoYW5naW5nCgkgIGZpcmVmb3ggdW50aWwga2lsbGVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE1MzU3CgoyMDExLTA0LTExIDExOjA1OjI0ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWxsb3cgdHJhY2tpbmcgb2YgYnVmZmVycyBpbiBHU1RfU0NIRURVTElORyBkZWJ1ZyBvdXRwdXQKCSAgQXMgR1NUX1NDSEVEVUxJTkcgcmVwb3J0cyB3aGVuIGJ1ZmZlcnMgcGFzcyB0aHJvdWdoIHBhZHMgZHVlIHRvCgkgIGdzdF9wYWRfcHVzaCBjYWxscywgdGhleSBhcmUgYSBnb29kIHdheSBvZiB0cmFja2luZyB0aGUgcHJvZ3Jlc3Mgb2YKCSAgYnVmZmVycyB0aHJvdWdoIHBpcGVsaW5lcy4gQXMgc3VjaCwgYWRkaW5nIG91dHB1dCBvZiB0aGUgYnVmZmVyIHBvaW50ZXJzCgkgIHRvIHRoZXNlIG1lc3NhZ2VzIGFsbG93cyB0cmFja2luZyBvZiBzcGVjaWZpYyBidWZmZXJzLCBlYXNpbmcgZGVidWdnaW5nLgoKMjAxMS0wNC0xMSAxMDo1MzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcG9ydCB0byAwLjExCgoyMDExLTA0LTExIDEwOjI2OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGFuZHJvaWQvYmFzZS5tawoJICBhbmRyb2lkL2NvbnRyb2xsZXIubWsKCSAgYW5kcm9pZC9kYXRhcHJvdG9jb2wubWsKCSAgYW5kcm9pZC9lbGVtZW50cy5tawoJICBhbmRyb2lkL2dzdC1pbnNwZWN0Lm1rCgkgIGFuZHJvaWQvZ3N0LWxhdW5jaC5tawoJICBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tawoJICBhbmRyb2lkL2dzdC5tawoJICBhbmRyb2lkL2luZGV4ZXJzLm1rCgkgIGFuZHJvaWQvbmV0Lm1rCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZgoKMjAxMS0wNC0xMSAxMDoyMDoxMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgRklYTUUKCjIwMTEtMDEtMjcgMTQ6MzM6MDggKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogLmdpdGlnbm9yZToKCSogQW5kcm9pZC5tazoKCSogYW5kcm9pZC9OT1RJQ0U6CgkqIGFuZHJvaWQvYmFzZS5tazoKCSogYW5kcm9pZC9jb250cm9sbGVyLm1rOgoJKiBhbmRyb2lkL2RhdGFwcm90b2NvbC5tazoKCSogYW5kcm9pZC9lbGVtZW50cy5tazoKCSogYW5kcm9pZC9nc3QtaW5zcGVjdC5tazoKCSogYW5kcm9pZC9nc3QtbGF1bmNoLm1rOgoJKiBhbmRyb2lkL2dzdC1wbHVnaW4tc2Nhbm5lci5tazoKCSogYW5kcm9pZC9nc3QubWs6CgkqIGFuZHJvaWQvZ3N0L2dzdGNvbmZpZy5oOgoJKiBhbmRyb2lkL2dzdC9nc3RlbnVtdHlwZXMuYzoKCSogYW5kcm9pZC9nc3QvZ3N0ZW51bXR5cGVzLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdG1hcnNoYWwuYzoKCSogYW5kcm9pZC9nc3QvZ3N0bWFyc2hhbC5oOgoJKiBhbmRyb2lkL2dzdC9nc3R2ZXJzaW9uLmg6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIub3V0cHV0OgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5jOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9ncmFtbWFyLnRhYi5oOgoJKiBhbmRyb2lkL2dzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5jOgoJKiBhbmRyb2lkL2luZGV4ZXJzLm1rOgoJKiBhbmRyb2lkL25ldC5tazoKCSogYW5kcm9pZC90b29scy5tazoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIGFuZHJvaWQ6IG1ha2UgaXQgcmVhZHkgZm9yIGFuZHJvZ2VuaXplcgoJICBSZW1vdmUgdGhlIGFuZHJvaWQvIHRvcCBkaXIKCSAgRml4ZSB0aGUgTWFrZWZpbGUuYW0gdG8gYmUgYW5kcm9nZW5pemVkCgkgIFRvIGJ1aWxkIGdzdHJlYW1lciBmb3IgYW5kcm9pZCB3ZSBhcmUgbm93IHVzaW5nIGFuZHJvZ2VuaXplciB3aGljaCBnZW5lcmF0ZXMgdGhlIG5lZWRlZCBBbmRyb2lkLm1rIGZpbGVzLgoJICBBbmRyb2dlbml6ZXIgY2FuIGJlIGZvdW5kIGhlcmU6IGh0dHA6Ly9naXQuY29sbGFib3JhLmNvLnVrLz9wPXVzZXIvZGVyZWsvYW5kcm9nZW5pemVyLmdpdAoKMjAxMS0wNC0wOSAyMzo1NDoyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgdHJhY2U6IGRvbid0IHB1dCBjb2RlIHdpdGggc2lkZSBlZmZlY3RzIGludG8gZ19yZXR1cm5faWZfZmFpbCgpCgoyMDExLTA0LTA5IDIyOjU3OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGRvY3M6IG1pbm9yIGZpeGVzIGZvciBiYXNlcGFyc2UgZG9jcwoJICBDbGFzcyB2ZnVuYyByZWZlcmVuY2VzIHN0aWxsIGFyZW4ndCByaWdodCwgbm8gaWRlYSB3aGF0CgkgIHRoZSBjb3JyZWN0IG1hcmt1cCBmb3IgdGhvc2UgaXMuCgoyMDExLTA0LTA5IDE4OjA0OjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHVucmVmIGV2ZW50IGluIGRlZmF1bHRfc2VuZF9ldmVudCBpbiBjYXNlIGVsZW1lbnQgaGFzIG5vIHBhZHMKCSAgU3BvdHRlZCBieSAgSGFha29uIFNwb3JzaGVpbS4KCjIwMTEtMDQtMDkgMDQ6MDc6MDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGNoZWNrOiBJZ25vcmUgbmV3IGdzdG1ldGEgYmluYXJ5CgoyMDExLTA0LTA5IDA0OjA1OjQ4ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBkZXNpZ246IGRyYWZ0LWJ1ZmZlcjIudHh0IG5vIGxvbmdlciBleGlzdHMKCjIwMTEtMDQtMDkgMDQ6MDU6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBnc3Q6IERvbid0IGZvcmdldCB0byBkaXN0IGdzdGVsZW1lbnRtZXRhZGF0YS5oCgoyMDExLTA0LTA4IDE5OjA3OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgdmFyaWFibGUgbmFtZSBjbGVhbi11cAoKMjAxMS0wNC0wOCAxNTozMToxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlcGFyc2U6IHJlbmFtZSBfc2V0X2ZyYW1lX3Byb3BzKCkgdG8gX3NldF9mcmFtZV9yYXRlKCkKCSAgU2VlbXMgbGlrZSB0aGUgYmVzdCBmaXQgdG8gd2hhdCBpdCBkb2VzLCBhbmQgaXMgc2hvcnRlciB0aGFuCgkgIHNldF9mcmFtZV9wcm9wZXJ0aWVzKCkgd2hpY2ggbWlnaHQgYWxzbyBoYXZlIGJlZW4gY29uZnVzaW5nCgkgIGJlY2F1c2Ugb2YgR3N0QmFzZVBhcnNlRnJhbWUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDYgMTc6NDM6MjcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZXBsYWNlIGZvcm1hdCBmbGFncyB3aXRoIGdzdF9iYXNlX3BhcnNlX3NldF97cGFzc3Rocm91Z2gsc3luY2FibGUsaGFzX3RpbWluZ19pbmZvfQoJICBUaGlzIGlzIG1vcmUgaW4gbGluZSB3aXRoIGUuZy4gR3N0QmFzZVRyYW5zZm9ybSdzIEFQSSwgYW5kIG1ha2VzIGZvciBuaWNlcgoJICB0byByZWFkIGNvZGUuIE5vIGdldHRlcnMgZm9yIG5vdyBzaW5jZSBJIGRvbid0IHNlZSBhbnkgdXNlIGNhc2UgZm9yIHRoZW0sCgkgIHRoZSBBUEkgaXMgZm9yIHN1YmNsYXNzZXMsIHdoaWNoIHVzdWFsbHkga25vdyB3aGF0IGZvcm1hdCB0aGV5J3JlCgkgIGRlYWxpbmcgd2l0aCBhbHJlYWR5IGFuZCBoZW5jZSBrbm93IHdoYXQgdGhleSd2ZSBzZXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD01MTg4NTcKCjIwMTEtMDQtMDQgMTc6NTg6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBtYWtlIERSQUlOIGFuZCBTWU5DIGZsYWdzIG9uIGJhc2VwYXJzZSwgbm90IHRoZSBmcmFtZSwgYW5kIGNoYW5nZSB0byBEUkFJTklORyBhbmQgTE9TVF9TWU5DCgkgIFRoZSBmaXJzdCBiZWNhdXNlIGl0IHNlZW1zIGEgYmV0dGVyIGZpdCBjb25jZXB0dWFsbHksIHRoZSBzZWNvbmQKCSAgdG8gZXhwcmVzcyBib29sZWFubmVzcy4gQWxzbyBjaGFuZ2UgdGhlIGFjY2Vzc29yIG1hY3JvcyBmb3Igc3ViY2xhc3NlcwoJICB0byBHU1RfQkFTRV9QQVJTRV9EUkFJTklORyBhbmQgR1NUX0JBU0VfUEFSU0VfTE9TVF9TWU5DLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTAyIDE0OjE4OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIHNvbWUgcGFkZGluZyB0byBHc3RCYXNlUGFyc2VGcmFtZQoJICBFc3AuIHNpbmNlIGl0J3MgdXN1YWxseSBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTA0LTAyIDE0OjA4OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogZml4IHR5cG8gaW4gZG9jcyBmb3IgR1NUX0JBU0VfUEFSU0VfRk9STUFUX0ZMQUdfUEFTU1RIUk9VR0gKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wNC0wMiAxNDowNDo0MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBHUXVldWUgaW5zdGVhZCBvZiBHTGlzdCBmb3IgcXVldWVkIGZyYW1lcwoJICBhbmQgbWFrZSBidWZmZXIgbWV0YWRhdGEgd3JpdGFibGUgYmVmb3JlIHNldHRpbmcgY2FwcyBvbiBxdWV1ZWQKCSAgYnVmZmVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2MzQxCgoyMDExLTA0LTAyIDEzOjAyOjAxICswMTAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJtZXJhbGlAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgR1NUX0JBU0VfUEFSU0VfRkxPV19RVUVVRUQgdG8gcXVldWUgYnVmZmVycyB1bnRpbCBjYXBzIGFyZSBrbm93bgoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgcGFyc2VyIGxpa2UgZmxhY3BhcnNlIG9yIGgyNjRwYXJzZSB3aGljaCBtYXkgbmVlZCB0byBwcm9jZXNzCgkgIHNvbWUgYnVmZmVycyBiZWZvcmUgdGhleSBjYW4gY29uc3RydWN0IHRoZSBmaW5hbCBjYXBzLCBpbiB3aGljaCBjYXNlIHRoZXkgbWF5CgkgIHdhbnQgdG8gZGVsYXkgcHVzaGluZyB0aGUgaW5pdGlhbCBidWZmZXJzIHVudGlsIHRoZSBmdWxsIGFuZCBwcm9wZXIgY2FwcyBhcmUKCSAga25vd24uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDYzNDEKCjIwMTEtMDMtMzEgMTU6NTA6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgdG8gZG9jcyBhbmQgZml4IHVwIGd0ay1kb2MgbWFya3VwIGEgbGl0dGxlCgkgIEFuZCBhZGQgU2luY2UgbWFya2Vycy4KCjIwMTEtMDMtMzEgMTQ6NDg6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZXBsYWNlIHNldF9zZWVrKCkgd2l0aCBfc2V0X2F2ZXJhZ2VfYml0cmF0ZSgpIGFuZCBGTEFHX1NZTkNBQkxFCgkgIFRoaXMgbWFrZXMgbW9yZSBzZW5zZSBjb25jZXB0dWFsbHksIHNpbmNlIHRoZSBiaXRyYXRlIG1heSBiZSB1c2VkCgkgIHRvIGVzdGltYXRlIGEgc2VlayBwb3NpdGlvbiBpZiB0aGVyZSdzIG5vIHNlZWsgdGFibGUgb3IganVzdCBmb3IKCSAgZHVyYXRpb24gcmVwb3J0aW5nL2VzdGltYXRpb24gaWYgd2UgY2FuJ3Qgc2Vlay4gQWxzbywgZXZlbiBpZiB0aGUKCSAgZm9ybWF0IGlzIG5vdCBzeW5jYWJsZSwgd2UgY291bGQgc3RpbGwgc2VlayBieSBwdXNoaW5nIGRhdGEgZnJvbSB0aGUKCSAgc3RhcnQgYW5kIHVzaW5nIHRoZSBzZWdtZW50IHRvIG1ha2UgZG93bnN0cmVhbSBjbGlwLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTAzLTI0IDE3OjMwOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVuYW1lIEdzdEJhc2VGb3JtYXQgdG8gR3N0QmFzZUZvcm1hdEZsYWdzIGFuZCBmaXggdXAgYXNzb2NpYXRlZCBBUEkKCSAgQWxzbyBjaGFuZ2UgZ3N0X2Jhc2VfcGFyc2Vfc2V0X2Zvcm1hdChwYXJzZSxmbGFncyxzd2l0Y2hfb24pIHRvCgkgIGdzdF9iYXNlX3BhcnNlX3NldF9mb3JtYXRfZmxhZ3MocGFyc2UsZmxhZ3MpIHdoaWNoIGlzIG1vcmUgaW4gbGluZQoJICB3aXRoIHRoZSByZXN0IG9mIG91ciBBUEkgYW5kIGhvdyB0aGUgZnVuY3Rpb24gaXMgdXNlZC4KCjIwMTEtMDMtMTMgMjM6NDM6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBkb24ndCBleHBvc2UgR3N0QWRhcHRlciBpbiBwdWJsaWMgaGVhZGVyCgkgIE5vbmUgb2YgdGhlIGV4aXN0aW5nIHN1YmNsYXNzZXMgbmVlZHMgYWNjZXNzIHRvIHRoYXQsIHNvIHRoZXJlJ3MKCSAgbm8gcmVhc29uIHRvIGV4cG9zZSBpdCBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTAzLTEzIDIzOjM4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogbW92ZSB2YXJpb3VzIHNlZ21lbnQtcmVsYXRlZCBtZW1iZXJzIGludG8gdGhlIHByaXZhdGUgaW5zdGFuY2Ugc3RydWN0CgkgIElmIG5vbmUgb2YgdGhlIGV4aXN0aW5nIHN1YmNsYXNzZXMgdXNlcyB0aGVzZSwgdGhlcmUncyBwcm9iYWJseSBubwoJICBuZWVkIHRvIGV4cG9zZSB0aGVtIGF0IHRoZSBtb21lbnQuIEtlZXAgdGhlIHNlZ21lbnQgaXRzZWxmIGV4cG9zZWQKCSAgdGhvdWdoLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4ODU3CgoyMDExLTAzLTEzIDIzOjMwOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIHVudXNlZCBHU1RfQkFTRV9QQVJTRV97U0lOSyxTUkN9X05BTUUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1NwoKMjAxMS0wMy0xMiAxNjoxNjoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IHJlLWluZGVudCBoZWFkZXIKCjIwMTEtMDMtMTIgMTU6MzQ6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggdXAgR1R5cGUgbmFtZSBhbmQgbWFrZSBfZ2V0X3R5cGUoKSBmdW5jdGlvbiB0aHJlYWQtc2FmZQoJICBSZW5hbWUgR1R5cGUgZnJvbSBHc3RCYXNlUGFyc2VCYWQgdG8gR3N0QmFzZVBhcnNlLgoKMjAxMS0wMy0xMiAxNToyOTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBsaWJzOiBhZGQgR3N0QmFzZVBhcnNlIHdoaWNoIHdhcyBtb3ZlZCBmcm9tIC1iYWQKCjIwMTEtMDItMjMgMTc6MjQ6MTQgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBtYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkgZml4CgoyMDExLTAyLTIxIDEzOjI0OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVuYW1lIEdUeXBlIGZyb20gR3N0QXVkaW9CYXNlUGFyc2VCYWQgdG8gR3N0QmFzZVBhcnNlQmFkCgkgIFdlIHVzZSBpdCBmb3IgdmlkZW8gYXMgd2VsbCBub3cuCgoyMDExLTAyLTE4IDE1OjA1OjMxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHRyaW0gdHJhaWxpbmcgd2hpdGVzcGFjZQoKMjAxMS0wMi0xOCAxNTowNTowMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2UgZGVsdGEtdW5pdCBmbGFncyBpbnN0ZWFkIG9mIG5vbmUKCjIwMTEtMDItMTcgMTM6MjI6MjggLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB1cGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgQVBJIGNoYW5nZXMKCjIwMTAtMTAtMTMgMTU6Mzk6NTUgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBDcmVhdGUgYmFzZXBhcnNlIGxpYnJhcnkKCjIwMTEtMDItMDcgMTQ6NDY6NTcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0dW5lIFFVRVJZX1NFRUtJTkcgcmVzcG9uc2UKCSAgRXZlbiBpZiB3ZSBjdXJyZW50bHkgZG8gbm90IGhhdmUgYSBkdXJhdGlvbiB5ZXQsIGFzc3VtZSBzZWVrYWJsZSBpZgoJICBpdCBsb29rcyBsaWtlIHdlJ2xsIGxpa2VseSBiZSBhYmxlIHRvIGRldGVybWluZSBpdCBsYXRlciBvbgoJICAod2hpY2ggY29pbmNpZGVzIHdpdGggbmVlZGVkIGluZm9ybWF0aW9uIHRvIHBlcmZvcm0gc2Vla2luZykuCgkgIEZpeGVzICM2NDEwNDcuCgoyMDExLTAyLTA4IDIzOjM5OjI0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogVXBkYXRlIG1pbi9tYXggYml0cmF0ZSBiZWZvcmUgZmlyc3QgcG9zdGluZyB0aGVtCgkgIFRoaXMgYXZvaWRzIHBvc3RpbmcgYW4gaW5pdGlhbCBtaW4tYml0cmF0ZSBvZiBHX1VJTlRNQVggYW5kIG1heC1iaXRyYXRlCgkgIG9mIDAuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDE4NTcKCjIwMTEtMDEtMjEgMTQ6NTM6MzkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB0dW5lIGRlZmF1bHQgZHVyYXRpb24gZXN0aW1hdGUgdXBkYXRlIGludGVydmFsCgkgIFJhdGhlciB0aGFuIGEgZml4ZWQgZGVmYXVsdCBmcmFtZSBjb3VudCwgZXN0aW1hdGUgZnJhbWUgY291bnQgdG8gYWltIGZvcgoJICBhbiBpbnRlcnZhbCBkdXJhdGlvbiBkZXBlbmRpbmcgb24gZnBzIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHVzZSBvbGQKCSAgZml4ZWQgZGVmYXVsdC4KCjIwMTEtMDEtMTQgMTU6MTY6MDQgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXZlcnNlIHBsYXliYWNrOyBtaW5kIGtleWZyYW1lcyBmb3IgZnJhZ21lbnQgYm91bmRhcnkKCjIwMTEtMDEtMTIgMTQ6NDA6MzcgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlbnN1cmUgbm9uLWVtcHR5IGNhbmRpZGF0ZSBmcmFtZXMKCjIwMTEtMDEtMTEgMTU6MjQ6MjMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBjbGFyaWZ5IHNvbWUgZGVidWcgc3RhdGVtZW50cwoKMjAxMS0wMS0xMSAxNToyNDowMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3Blcmx5IHRyYWNrIHVwc3RyZWFtIHRpbWVzdGFtcHMKCSAgLi4uIHJhdGhlciB0aGFuIHdpdGggYSBkZWxheS4KCjIwMTEtMDEtMTEgMTU6MjM6MjkgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBuZWVkIHByb3BlciBmcmFtZSBkdXJhdGlvbiB0byBvYnRhaW4gc2Vuc2libGUgZnJhbWUgYml0cmF0ZQoKMjAxMS0wMS0xMSAxNToyMjo1MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3BlciBpbml0aWFsIHZhbHVlcyBmb3IgaW5kZXggdHJhY2tpbmcgdmFyaWFibGVzCgoyMDExLTAxLTExIDEyOjA1OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYXJyYW5nZSBmb3IgY29uc2lzdGVudCBldmVudCBoYW5kbGluZwoKMjAxMS0wMS0xMCAxNjo1OTo1OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGhlYWRlciBzdHlsZSBjbGVhbmluZwoKMjAxMS0wMS0xMCAxNzowNzozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3ZpZGUgc29tZSBtb3JlIGluaXRpYWwgZnJhbWUgbWV0YWRhdGEgaW4gcGFyc2VfZnJhbWUKCSAgLi4uIGFuZCBkb2N1bWVudCBhY2NvcmRpbmdseS4KCjIwMTEtMDEtMTAgMTY6NTY6MzYgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZWZhY3RvciBwYXNzdGhyb3VnaCBpbnRvIGZvcm1hdCBmbGFncwoJICBBbHNvIGFkZCBhIGZvcm1hdCBmbGFnIHRvIHNpZ25hbCBiYXNlcGFyc2UgdGhhdCBzdWJjbGFzcy9mb3JtYXQgY2FuIHByb3ZpZGUKCSAgKHBhcnNlZCkgdGltZXN0YW1wIHJhdGhlciB0aGFuIGFuIGVzdGltYXRlZCBvbmUuICBJbiBwYXJ0aWN1bGFyLCBzdWNoICJzdHJvbmciCgkgIHRpbWVzdGFtcCB0aGVuIGFsbG93cyB0byBlLmcuIGRldGVybWluZSBkdXJhdGlvbi4KCjIwMTEtMDEtMTAgMTU6MzQ6NDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBpbnRyb2R1Y2UgYSBiYXNlcGFyc2UgZnJhbWUgdG8gc2VydmUgYXMgY29udGV4dAoJICAuLi4gYW5kIGFkanVzdCBzdWJjbGFzcyBwYXJzZXJzIGFjY29yZGluZ2x5CgoyMDExLTAxLTA3IDE2OjM5OjUxICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVzdHJpY3QgZHVyYXRpb24gc2Nhbm5pbmcgdG8gcHVsbCBtb2RlIGFuZCBhdm9pZCBleHRyYSBzZXRfY2FwcyBjYWxsCgoyMDExLTAxLTA3IDE1OjU4OjQ5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogdXBkYXRlIHNvbWUgZG9jdW1lbnRhdGlvbgoJICBBbHNvIGFkZCBzb21lIG1vcmUgZGVidWcuCgoyMDExLTAxLTA2IDExOjQxOjQ0ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWxsb3cgaW5jcmVhc2luZyBtaW5fc2l6ZSBmb3IgY3VycmVudCBmcmFtZSBwYXJzaW5nIG9ubHkKCSAgQWxzbyBjaGVjayB0aGF0IHN1YmNsYXNzIGFjdHVhbGx5IGVpdGhlciBkaXJlY3RzIHRvIHNraXAgYnl0ZXMgb3IKCSAgaW5jcmVhc2VzIGV4cGVjdGVkIGZyYW1lIHNpemUgdG8gYXZvaWQgZ29pbmcgbm93aGVyZSBpbiBib2d1cwoJICBpbmRlZmluaXRlIGxvb3BpbmcuCgoyMDExLTAxLTE0IDE1OjI2OjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhZXNwYXJzZTogZml4IHJlZmFjdG9yIHJlZ3Jlc3Npb24gaW4gbG9vcCBiYXNlZCBwYXJzaW5nCgoyMDExLTAxLTA2IDExOjE2OjU2ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcGFzcyBhbGwgYXZhaWxhYmxlIGRhdGEgdG8gc3ViY2xhc3MgcmF0aGVyIHRoYW4gbWluaW11bQoJICBBbHNvIHJlZHVjZSBzb21lIGFkYXB0ZXIgY2FsbHMgYW5kIGFkZCBhIGZldyBkZWJ1ZyBzdGF0ZW1lbnRzLgoKMjAxMC0xMi0xMCAxNTo1OTo0OSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCByZXZlcnNlIHBsYXliYWNrIGhhbmRsaW5nCgoyMDEwLTEyLTEwIDE0OjU2OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgdHlwbyBhbmQgZGVidWcgc3RhdGVtZW50IGNsZWFudXAKCjIwMTAtMTItMTAgMTQ6NDA6MDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZWR1Y2UgbG9ja2luZwoJICAuLi4gd2hpY2ggaXMgZWl0aGVyIGFscmVhZHkgbXV0ZSBhbmQvb3IgaW1wbGljaXRseSBoYW5kbGVkIGJ5IFNUUkVBTV9MT0NLLgoKMjAxMS0wMS0xNCAxNDowODozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGF2b2lkIGxvb3AgaW4gZnJhbWUgbG9jYXRpbmcgaW50ZXJwb2xhdGlvbgoKMjAxMS0wMS0xNCAxNjozMDoxMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IGJhc2VwYXJzZTogQmUgY2FyZWZ1bCB0byBub3QgbG9zZSB0aGUgZXZlbnQgcmVmCgkgIERvbid0IHVucmVmIHRoZSBldmVudCBpZiBpdCBoYXNuJ3QgYmVlbiBoYW5kbGVkLCBiZWNhdXNlIHRoZSBjYWxsZXIKCSAgYXNzdW1lcyBpdCBpcyBzdGlsbCB2YWxpZCBhbmQgbWlnaHQgcmV1c2UgaXQuCgkgIEkgcmFuIGludG8gdGhpcyBwcm9ibGVtIHdoZW4gdHJhbnNjb2RpbmcgYW4gQVZJICh3aXRoIG1wMyBpbnNpZGUpCgkgIHRvIGdwcC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTU1NQoKMjAxMS0wMS0xMyAxNjoyNzowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBkb2NzOiBtaW5vciBiYXNlcGFyc2UgZG9jcy9jb21tZW50IGZpeGVzCgkgIFJlbW92ZSBjb3B5J24ncGFzdGUgbGVmdG92ZXJzLgoKMjAxMC0xMS0wOCAxOTo1ODozMSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGluY3JlYXNlIGtleWZyYW1lIGF3YXJlbmVzcwoJICAuLi4gd2hpY2ggaXMgbm90IHBhcnRpY3VsYXIgcmVsZXZhbnQgZm9yIGF1ZGlvIHBhcnNpbmcsIGJ1dCBtb3JlIHNvCgkgIGluIHZpZGVvIGNhc2VzLiAgSW4gcGFydGljdWxhciwgYXV0by1kZXRlcm1pbmUgaWYgZGVhbGluZyB3aXRoIHZpZGVvIChjYXBzKS4KCjIwMTAtMTEtMzAgMTU6NDE6MDIgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhdm9pZCB1bmV4cGVjdGVkIHN0cmF5IG1ldGFkYXRhCgoyMDEwLTExLTMwIDE1OjQwOjI4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogdXNlIHByb3BlciBfTk9ORSBvdXRwdXQgdmFsdWUgd2hlbiBhcHBsaWNhYmxlCgoyMDEwLTExLTI1IDE4OjU2OjQyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cwoKMjAxMC0xMS0yNSAxNzoxNDoyMyArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDxhbW9yYWxlc0BmbHVtb3Rpb24uY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZTogZml4IHBvc3NpYmxlIGRpdmlzaW9uLWJ5LXplcm8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTc4NgoKMjAxMC0xMS0xNyAxNjoyMzo0MiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBjb3JyZWN0IG9mZnNldCB3aGVuIGFkZGluZyBpbmRleCBlbnRyeQoJICAuLi4gYmVhcmluZyBpbiBtaW5kIHRoYXQgQlVGRkVSX09GRlNFVCBpcyBtZWRpYSBzcGVjaWZpYyBhbmQgbWF5IG5vdAoJICByZWZsZWN0IHRoZSBiYXNpYyBvZmZzZXQgYWZ0ZXIgaGF2aW5nIGJlZW4gcGFyc2VkLgoKMjAxMC0xMS0xNyAxNDozMDowOSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGVuaGFuY2VtZW50cyBmb3IgdGltZXN0YW1wIG1hcmtlZCBmcmFtZWQgZm9ybWF0cwoJICBUaGF0IGlzLCBhcyBzdWNoIGZvcm1hdHMgYWxsb3cgc3ViY2xhc3MgdG8gZXh0cmFjdCBwb3NpdGlvbiBmcm9tIGZyYW1lLAoJICBpdCBpcyBwb3NzaWJsZSB0byBleHRyYWN0IGR1cmF0aW9uIChpZiBub3Qgb3RoZXJ3aXNlIHByb3ZpZGVkKQoJICBmcm9tIChuZWFyKSBsYXN0IGZyYW1lLCBhbmQgYSBzZWVrIGNhbiBmYWlybHkgYWNjdXJhdGVseSB0YXJnZXQgdGhlIHJlcXVpcmVkCgkgIHBvc2l0aW9uLgoJICBGaXhlcyAjNjMxMzg5LgoKMjAxMC0xMS0xNiAxNzowNjoxNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlZmFjdG9yIGZyYW1lIHNjYW5uaW5nIHBlZm9ybWVkIGJ5IF9sb29wCgoyMDEwLTExLTE2IDE4OjA0OjAwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2xpZ2h0bHkgb3B0aW1pemUgc2VuZGluZyBvZiBwZW5kaW5nIG5ld3NlZ21lbnQgZXZlbnRzCgoyMDEwLTExLTE2IDE3OjA0OjM1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgZml4ZXMgYW5kIGVuaGFuY2VtZW50cwoJICBBcnJhbmdlIGZvciB1cHN0cmVhbSBhcyB3ZWxsIGFzIGRvd25zdHJlYW0gZmx1c2hpbmcgd2hlbiBzZWVraW5nLgoJICBBbHNvIGRldGVybWluZSB1cHN0cmVhbSBzaXplIGFzIHdlbGwgYXMgc2Vla2FiaWxpdHkuICBBZGp1c3Qgc29tZSBjb21tZW50cwoJICB0byByZWFsaXR5IGFuZCBlbXBsb3kgZGVidWcgc3RhdGVtZW50IGluIHByb3BlciBvcmRlci4KCjIwMTAtMTAtMjkgMTQ6MDg6NTggKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiB1c2Ugb25seSB1cHN0cmVhbSBkdXJhdGlvbiBpZiBpdCBwcm92aWRlcyBvbmUKCjIwMTAtMTAtMjUgMTQ6MTU6NTAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZWZsb3cgdXBkYXRlX2JpdHJhdGUgY29kZQoJICAuLi4gd2hpY2ggbWFrZXMgbG9jYWwgdmFyaWFibGVzIHJlcHJlc2VudCByZWFsIHN0YXRlIGJldHRlciwgYW5kIGF2b2lkcwoJICB0cmlnZ2VyaW5nIHVubmVlZGVkIHVwZGF0ZXMvYWN0aW9ucy4KCjIwMTAtMTAtMjUgMTQ6MTM6NTEgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGQgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzCgoyMDEwLTEwLTExIDE3OjQ5OjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcGVyZm9ybSBiaXRyYXRlIGhhbmRsaW5nIGFuZCBwb3N0aW5nIGFmdGVyIG5ld3NlZ21lbnQgc2VuZGluZwoKMjAxMC0xMC0xMSAxNzozNjoxOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGltbWVkaWF0ZWx5IHBvc3Qgc3ViY2xhc3MgcHJvdmlkZWQgYml0cmF0ZQoKMjAxMC0xMC0wNSAxMToxNzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBSZXZlcnQgImJhc2VwYXJzZTogYWRkIHNraXAgcHJvcGVydHkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYjVhM2Q2MDM2M2Q4MzdhMTBmMDUzM2MxNDFlYzkzZDEwYjc0MjMxMi4KCSAgUmV2ZXJ0aW5nIHRoaXMgZm9yIG5vdywgc2luY2Ugbm8gb25lIHJlYWxseSBzZWVtcyB0byByZW1lbWJlciB3aHkgdGhpcwoJICBwcm9wZXJ0eSBleGlzdHMgb3Igd2hhdCBpdCBjb3VsZCBwb3NzaWJseSBiZSBnb29kIGZvci4gSXQgc2VlbXMgdG8gaGF2ZQoJICBiZWVuIGluIHRoZSBvcmlnaW5hbCBtcDNwYXJzZSBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHRpbWUgYW5kIHdhcyBiYWNrLQoJICBwb3J0ZWQgZnJvbSB0aGVyZS4KCjIwMTAtMTAtMDMgMjM6NTA6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXI6IExldCB0aGUgZm9ybWF0IHN0cmluZyBhZ3JlZSB3aXRoIHRoZSBwYXJhbWV0ZXJzIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTA5LTIyIDE1OjQ0OjQzICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IGRlYnVnIG91dHB1dAoJICBXZSBsb3NlIHRoZSByZWZlcmVuY2UgdG8gdGhlIGJ1ZmZlciBhZnRlciBnc3RfcGFkX3B1c2goKSwgc28gdGhlIGRlYnVnCgkgIHByaW50IHNob3VsZCBoYXBwZW4gYmVmb3JlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMjc2CgoyMDEwLTA5LTI5IDE2OjEyOjQyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc3VwcG9ydCByZXZlcnNlIHBsYXliYWNrCgkgIC4uLiBpbiBwdWxsIG1vZGUgb3IgdXBzdHJlYW0gZHJpdmVuLgoKMjAxMC0wOS0yNyAxMjoxNjo0MyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHJlbW92ZSBkb25lIFRPRE9zIGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbgoKMjAxMC0wOS0yNSAxNDo0MDo1NCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZSBkZXRlcm1pbmVkIHNlZWthYmlsaXR5IGluIGFuc3dlcmluZyBTRUVLSU5HIHF1ZXJ5CgoyMDEwLTA5LTI1IDE0OjMyOjA2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRkIHNraXAgcHJvcGVydHkKCjIwMTAtMDktMjIgMTU6MDc6MDkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB1c2UgX3NldF9mcmFtZV9wcm9wcyB0byBjb25maWd1cmUgZnJhbWUgbGVhZF9pbiBhbmQgbGVhZF9vdXQKCSAgLi4uIHByb3ZpZGVkIGEgY29ycmVzcG9uZGluZyBkZWNvZGVyIHdpdGggc3VmZmljaWVudCBsZWFkaW5nIGFuZCBmb2xsb3dpbmcKCSAgZnJhbWVzIHRvIGNhcnJ5IG91dCBmdWxsIGRlY29kaW5nIGZvciBhIHBhcnRpY3VsYXIgc2VnbWVudC4KCjIwMTAtMDktMjIgMTQ6MTM6MTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiB1c2UgX3NldF9kdXJhdGlvbiB0byBjb25maWd1cmUgZHVyYXRpb24gdXBkYXRlIGludGVydmFsCgkgIC4uLiBhcyBpdCBsb2dpY2FsbHkgYmVsb25ncyB0aGVyZSBhcyBvbmUgb3IgdGhlIG90aGVyOyBlaXRoZXIgc3ViY2xhc3MKCSAgY2FuIHByb3ZpZGUgYSBkdXJhdGlvbiwgb3IgYW4gZXN0aW1hdGUgbXVzdCBiZSBtYWRlIChyZWd1YXJseSB1cGRhdGVkKS4KCjIwMTAtMDktMjIgMTM6NTU6MjAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBsb2NhbGl6ZSB1c2Ugb2YgcHJvdmlkZWQgZnBzIGluZm9ybWF0aW9uCgoyMDEwLTA5LTIyIDEyOjEzOjEyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc2VlayB0YWJsZSBhbmQgYWNjdXJhdGUgc2VlayBzdXBwb3J0CgoyMDEwLTA5LTIxIDEzOjU3OjEwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJvcGVyIGFuZCBtb3JlIGV4dGVuZGVkIHNlZ21lbnQgYW5kIHNlZWsgaGFuZGxpbmcKCSAgVGhhdCBpcywgbG9vcCBwYXVzZSBoYW5kbGluZywgc2VnbWVudCBzZWVrIHN1cHBvcnQsIG5ld3NlZ21lbnQgZm9yIGdhcHMsIGV0YwoKMjAxMC0wOS0yMSAxMDo1NzowNCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGFkZCBpbmRleCBzdXBwb3J0CgoyMDEwLTA5LTIxIDA5OjU5OjU2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3Igc3RhdGUgcmVzZXQKCjIwMTAtMDktMjAgMTY6Mzk6MzcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGluZGVmaW5pdGUgcmVzeW5jaW5nCgoyMDEwLTA5LTIwIDEzOjU3OjU1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogc3BlY2lmaWMgRU9TIGhhbmRsaW5nIGlmIG5vIG91dHB1dCBzbyBmYXIKCjIwMTAtMDktMjAgMTM6MzE6NTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBhZGp1c3QgX3NldF9mcmFtZV9wcm9wIGRvY3VtZW50YXRpb24gYW5kIHNldCBkZWZhdWx0IGFzIGNsYWltZWQKCjIwMTAtMDktMjAgMTM6MzA6NTQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggYml0cmF0ZSBjb3B5LWFuZC1wYXN0ZSBhbmQgdXBkYXRlIGhldXJpc3RpYwoKMjAxMC0wOS0xNyAxODozMzoyOSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHBvc3QgZHVyYXRpb24gbWVzc2FnZSBpZiBhdmVyYWdlIGJpdHJhdGVzIGlzIHVwZGF0ZWQKCjIwMTAtMDktMTcgMTg6MjQ6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiByZW1vdmUgaXNfc2Vla2FibGUgdm1ldGhvZCBhbmQgdXNlIGEgc2V0X3NlZWsgaW5zdGVhZAoJICBTZWVrYWJpbGl0eSwgbGlrZSBkdXJhdGlvbiwgZXRjIGlzIHVubGlrZWx5IHRvIGNoYW5nZSAoZnJlcXVlbnRseSksIGFuZAoJICB0aGUgZGVmYXVsdCBhc3N1bXB0aW9uIGNvdmVycyBtb3N0IGNhc2VzLCBzbyBsZXQgc3ViY2xhc3Mgc2V0IHdoZW4gbmVlZGVkLgoJICBBdCB0aGUgc2FtZSB0aW1lLCBhbGxvdyBzdWJjbGFzcyB0byBpbmRpY2F0ZSBpZiBpdCBoYXMgc2Vlay1tZXRhZGF0YSAodGFibGUpCgkgIGF2YWlsYWJsZSwgYW5kIHBvc3NpYmx5IGhhdmUgaXQgcHJvdmlkZSBhbiBhdmVyYWdlIGJpdHJhdGUuCgoyMDEwLTA5LTE3IDE3OjIxOjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogYWRkIGFub3RoZXIgaG9vayBmb3Igc3ViY2xhc3MgcHJpb3IgdG8gcHVzaGluZyBidWZmZXIKCSAgLi4uIGFuZCBhbGxvdyBzdWJjbGFzcyB0byBwZXJmb3JtIGN1c3RvbSBzZWdtZW50IGNsaXBwaW5nLCBvciB0bwoJICBlbWl0IHRhZ3Mgb3IgbWVzc2FnZXMgYXQgdGhpcyB0aW1lLgoKMjAxMC0wOS0xNyAxNzoxOTozNyArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IDAgY29udmVydHMgdG8gMCBieSBkZWZhdWx0CgoyMDEwLTA5LTE2IDE4OjU2OjQ2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogcmVmYWN0b3IgY29udmVyc2lvbiB1c2luZyBoZWxwZXIgZnVuY3Rpb24gYW5kIGV4cG9ydCBkZWZhdWx0IGNvbnZlcnQKCjIwMTAtMDktMTYgMTg6MzU6NDcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBzdHJlYW1saW5lIHF1ZXJ5IGhhbmRsaW5nCgoyMDEwLTA5LTE2IDExOjUxOjIwICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY2xlYW51cCBzdHJ1Y3QgYW5kIHJlbW92ZSB1bnVzZWQgbWVtYmVyCgoyMDEwLTA5LTIyIDE2OjA3OjI0ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogQWxsb3cgY2hhaW5pbmcgb2Ygc3ViY2xhc3MgZXZlbnQgaGFuZGxlcnMKCSAgVGhpcyBhbGxvd3MgdGhlIGNoaWxkIGNsYXNzIHRvIGNoYWluIGl0cyBldmVudCBoYW5kbGVyIHdpdGgKCSAgR3N0QmFzZVBhcnNlLCBzbyB0aGF0IHN1YmNsYXNzZXMgZG9uJ3QgaGF2ZSB0byBkdXBsaWNhdGUgYWxsIHRoZSBkZWZhdWx0CgkgIGV2ZW50IGhhbmRsaW5nIGxvZ2ljLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMjc2CgoyMDEwLTA4LTI3IDE4OjM1OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRG9uJ3QgdXNlIEdTVF9GTE9XX0lTX0ZBVEFMKCkKCSAgQWxzbyBkb24ndCBwb3N0IGFuIGVycm9yIG1lc3NhZ2UgZm9yIFVORVhQRUNURUQgYW5kIGRvIGl0CgkgIGZvciBOT1RfTElOS0VELgoKMjAxMC0wOS0wNiAxNDoxMjowMCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IG5vbi1USU1FIHNlZWsgZXZlbnQgaXMgc2ltcGx5IG5vdCBoYW5kbGVkCgoyMDEwLTA2LTE1IDE1OjM0OjA1ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHNlZWsgZXZlbnQgcmVmIGhhbmRsaW5nCgoyMDEwLTA2LTE1IDE1OjMzOjM3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcHJldmVudCBhcml0aG1ldGljIG92ZXJmbG93cyBpbiBwdWxsIG1vZGUgYnVmZmVyIGNhY2hlIGhhbmRsaW5nCgoyMDEwLTA2LTE1IDE1OjMyOjM0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHNlZWsgaGFuZGxpbmcKCSAgQWxsb3cgYSBmZXcgbW9yZSBzZWVrIGV2ZW50IHR5cGUgY29tYmluYXRpb25zLCBhbmQgcmVhbGx5IHVzZSB0aGUgcmVzdWx0CgkgIG9mIGdzdF9zZWdtZW50X3NldF9zZWVrIHRvIHBlcmZvcm0gdGhlIHNlZWsuICBBbHNvIGFkZCBzb21lIGRlYnVnLgoKMjAxMC0wMy0yNiAxODo1Njo0OSArMDAwMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IERvbid0IGVtaXQgYml0cmF0ZSB0YWdzIHRvbyBlYXJseQoJICBXZSB3YWl0IHRvIHBhcnNlIGEgbWluaW11bSBudW1iZXIgb2YgZnJhbWVzICgxMCwgYXJiaXRyYXJpbHkpIGJlZm9yZQoJICBlbWl0aW5nIGJpdHJhdGUgdGFncyBzbyB0aGF0IG91ciBlYXJseSBlc3RpbWF0ZXMgYXJlIG5vdCB3aWxkbHkKCSAgaW5hY2N1cmF0ZSBmb3Igc3RyZWFtcyB0aGF0IHN0YXJ0IHdpdGggYSBzaWxlbmNlLiBJZiB0aGUgc3RyZWFtIGVuZHMKCSAgYmVmb3JlIHRoYXQsIHdlIGp1c3QgZW1pdCB0aGUgdGFncyBhbnl3YXkuCgkgIFdoaWxlIGl0IF93b3VsZF8gYmUgbmljZXIgdG8gYmUgc3BlY2lmeSB0aGUgdGhyZXNob2xkIHRvIHN0YXJ0IHB1c2hpbmcKCSAgdGhlIHRhZ3MgaW4gdGVybXMgb2YgZHVyYXRpb24sIHRoaXMgd291bGQgaW50cm9kdWNlIG1vcmUgY29tcGxleGl0eSB0aGFuCgkgIHRoaXMgbWVyaXRzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE0OTkxCgoyMDEwLTAzLTI2IDE4OjIwOjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogU2V0IHRoZSBsYXN0IHN0b3AgdG8gdGhlIGJ1ZmZlciBzdGFydHRpbWUgaWYgdGhlIGR1cmF0aW9uIGlzIGludmFsaWQKCSAgLi4uaW5zdGVhZCBvZiBub3Qgc2V0dGluZyBpdCBhdCBhbGwuCgoyMDEwLTAzLTI2IDE4OjE5OjAwICswMTAwICBKb3NodWEgTS4gRG9lIDxqb3NoQGpvc2hkb2UuY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBTZW5kIE5FV1NFR01FTlQgZXZlbnQgd2l0aCBjb3JyZWN0IHN0YXJ0IGFuZCBwb3NpdGlvbgoJICBJbnN0ZWFkIG9mIHRha2luZyB0aGUgbGFzdCBzdG9wICh3aGljaCBjb3VsZCBiZSBidWZmZXIgZW5kdGltZSBpbnN0ZWFkCgkgIG9mIHN0YXJ0dGltZSkgYWx3YXlzIHRha2UgdGhlIGJ1ZmZlciBzdGFydHRpbWUuCgkgIEZpeGVzIGJ1ZyAjNjE0MDE2LgoKMjAxMC0wMy0yNSAxNzowOToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBhdWRpb3BhcnNlcnM6IHJlbW92ZSB1bnVzZWQgR3N0QmFzZVBhcnNlQ2xhc3NQcml2YXRlIHN0cnVjdHVyZQoKMjAxMC0wMy0yNSAxMToyMjo1OCArMDAwMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5oOgoJICBhdWRpb3BhcnNlcnM6IEFkZCBiaXRyYXRlIGNhbGN1bGF0aW9uIHRvIGJhc2VwYXJzZQoJICBUaGlzIG1ha2VzIGJhc2VwYXJzZSBrZWVwIGEgcnVubmluZyBhdmVyYWdlIG9mIHRoZSBzdHJlYW0gYml0cmF0ZSwgYXMKCSAgd2VsbCBhcyB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBiaXRyYXRlcy4gU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgYQoJICB2ZnVuYyB0byBtYWtlIHN1cmUgdGhhdCBwZXItZnJhbWUgb3ZlcmhlYWQgZnJvbSB0aGUgY29udGFpbmVyIGlzIG5vdAoJICBhY2NvdW50ZWQgZm9yIGluIHRoZSBiaXRyYXRlIGNhbGN1bGF0aW9uLgoJICBXZSB0YWtlIGNhcmUgbm90IHRvIG92ZXJyaWRlIHRoZSBiaXRyYXRlLCBtaW5pbXVtLWJpdHJhdGUsIGFuZAoJICBtYXhpbXVtLWJpdHJhdGUgdGFncyBpZiB0aGV5IGhhdmUgYmVlbiBwb3N0ZWQgdXBzdHJlYW0uIFdlIGFsc28KCSAgcmF0ZS1saW1pdCB0aGUgZW1pc3Npb24gb2YgYml0cmF0ZSBzbyB0aGF0IGl0IGlzIG9ubHkgdHJpZ2dlcmVkIGJ5IGEKCSAgY2hhbmdlIG9mID4xMCBrYnBzLgoKMjAxMC0wMS0xNCAxMTo1MDozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IHJlbmFtZSBiYXNlcGFyc2UgR1R5cGUgbmFtZSB0byBhdm9pZCBwb3NzaWJsZSBjb25mbGljdHMKCjIwMTAtMDEtMDUgMTU6MDU6MDUgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZXJzOiBkb2N1bWVudGF0aW9uIGZpeGVzCgoyMDA5LTEyLTIxIDE4OjE4OjM5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogYWRqdXN0IHNlZWsgaGFuZGxpbmcgYW5kIG5ld3NlZ21lbnQgc2VuZGluZwoJICBQZXJmb3JtIHNhbml0eSBjaGVjayBvbiB0eXBlIG9mIHNlZWssIGFuZCBvbmx5IHBlcmZvcm0gb25lIHRoYXQgaXMKCSAgYXBwcm9wcmlhdGVseSBzdXBwb3J0ZWQuICBBZGp1c3QgZG93bnN0cmVhbSBuZXdzZWdtZW50IGV2ZW50CgkgIHRvIGZpcnN0IGJ1ZmZlciB0aW1lc3RhbXAgdGhhdCBpcyBzZW50IGRvd25zdHJlYW0uCgoyMDA5LTEyLTIxIDExOjU5OjQ1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogbWlub3IgcmVmYWN0b3IgY2xlYW51cAoJICBBbHNvIGFkZCBzb21lIGRlYnVnIGxvZ2dpbmcuCgoyMDA5LTEyLTE4IDIxOjAyOjQwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogaW1wbGVtZW50IGxlZnRvdmVyIGRyYWluaW5nIGluIHB1bGwgbW9kZQoKMjAwOS0xMi0xNiAxODozODozMyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHByb3ZpZGUgZGVmYXVsdCBjb252ZXJzaW9uIHVzaW5nIGJwcyBpZiBubyBmcHMgYXZhaWxhYmxlCgkgIEFsc28gc3RvcmUgZXN0aW1hdGVkIGR1cmF0aW9uIGFzIHN1Y2gsIHJhdGhlciB0aGFuIHByZXRlbmRpbmcgb3RoZXJ3aXNlCgkgIChlLmcuIHNldCBieSBzdWJjbGFzcykuCgoyMDA5LTEyLTE4IDEzOjMwOjI5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogY2hlY2sgZm9yIHJlbWFpbmluZyBkYXRhIHdoZW4gZHJhaW5pbmcgaW4gcHVzaCBtb2RlCgoyMDA5LTEyLTE4IDEzOjMwOjA3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IHB1bGwgbW9kZSBjYWNoZSBzaXplIGNvbXBhcmlzb24KCjIwMDktMTItMTEgMTA6MjU6MTYgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L2F1ZGlvcGFyc2Vycy9nc3RiYXNlcGFyc2UuYzoKCSAgYXVkaW9wYXJzZTogZml4IGEgZm9ybWF0IHN0cmluZyBhcyByZXBvcnRlZCBvbiBpcmMuCgoyMDA5LTEwLTI5IDE1OjE4OjM3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGJhc2VwYXJzZTogY3VzdG9tIGJ1ZmZlcmZsYWcgaW5kaWNhdGVzIG5vdCB0byBjb3VudCBmcmFtZSBpbiBzdGF0cwoKMjAwOS0xMS0yNyAxNzoyNzozMiArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYXVkaW9wYXJzZXJzL2dzdGJhc2VwYXJzZS5jOgoJICBhdWRpb3BhcnNlcnM6IHJlZmVyZW5jZSBHc3RCYXNlUGFyc2Ugbm93IGxpdmVzIGhlcmUKCjIwMDktMTEtMjggMTg6MTM6MzEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hdWRpb3BhcnNlcnMvZ3N0YmFzZXBhcnNlLmg6CgkgIGF1ZGlvcGFyc2VyczogcmVuYW1lICdhYWNwYXJzZScgcGx1Z2luIHRvIGdlbmVyaWMgJ2F1ZGlvcGFyc2VycycgcGx1Z2luCgoyMDA5LTEwLTI5IDE2OjA1OjAwICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiByZXNldCBwYXNzdGhyb3VnaCBtb2RlIHRvIGRlZmF1bHQgKGRpc2FibGVkKSBvbiBhY3RpdmF0aW9uCgoyMDA5LTEwLTI5IDE1OjE2OjU5ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBlbnN1cmUgYnVmZmVyIG1ldGFkYXRhIGlzIHdyaXRhYmxlCgoyMDA5LTEwLTI4IDE0OjA2OjEzICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBiYXNlcGFyc2U6IGZpeC9lbmhhbmNlIERJU0NPTlQgbWFya2luZwoJICBJbiBwYXJ0aWN1bGFyLCBjb25zaWRlciBESVNDT05UID09ICFzeW5jLCBhbmQgYWxsb3cgc3ViY2xhc3MgdG8gcXVlcnkKCSAgc3luYyBzdGF0ZSwgYXMgaXQgbWF5IHdhbnQgdG8gcGVyZm9ybSBhZGRpdGlvbmFsIGNoZWNrcyBkZXBlbmRpbmcKCSAgb24gd2hldGhlciBzeW5jIHdhcyBhY2hpZXZlZCBlYXJsaWVyIG9uLgoJICBBbHNvIGFycmFuZ2UgZm9yIHN1YmNsYXNzIHRvIHF1ZXJ5IHdoZXRoZXIgbGVmdG92ZXIgZGF0YSBpcyBiZWluZyBkcmFpbmVkLgoKMjAwOS0xMS0yMyAxNTo0ODoyNSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuaDoKCSAgYmFzZXBhcnNlOiBhZGQgdGltZXN0YW1wIGhhbmRsaW5nLCBhbmQgZGVmYXVsdCBjb252ZXJzaW9uCgkgIEluIHBhcnRpY3VsYXIsIChvcHRpb25hbGx5KSBwcm92aWRlIGJhc2VwYXJzZSB3aXRoIGEgbm90aW9uIG9mIGZyYW1lcyBwZXIgc2Vjb25kCgkgIChhbmQgdGhlcmVmb3JlIGFsc28gZnJhbWUgZHVyYXRpb24pIGFuZCBoYXZlIGl0IHRyYWNrIGZyYW1lIGFuZCBieXRlIGNvdW50cy4KCSAgVGhpcyB3YXksIHN1YmNsYXNzIGNhbiBwcm92aWRlIGJhc2VwYXJzZSB3aXRoIGZwcyBhbmQgaGF2ZSBpdCBwcm92aWRlIGRlZmF1bHQKCSAgYnVmZmVyIHRpbWUgbWV0YWRhdGEgYW5kIGNvbnZlcnNpb25zLCB0aG91Z2ggc3ViY2xhc3MgY2FuIHN0aWxsIGluc3RhbGwKCSAgY2FsbGJhY2tzIHRvIGhhbmRsZSBzdWNoIGl0c2VsZi4KCjIwMDktMTAtMjggMTI6MDI6MDMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGRvY3VtZW50YXRpb24gZml4ZXMKCjIwMDktMTAtMjggMTI6MDA6MDggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IHVzZV9maXhlZF9jYXBzIGZvciBzcmMgcGFkCgkgIEFmdGVyIGFsbCwgc3RyZWFtIGlzIGFzLWlzLCBhbmQgdGhlcmUgaXMgbGl0dGxlIG1vbGRpbmcgdG8gZG93bnN0cmVhbSdzCgkgIHRhc3RlIHRoYXQgY2FuIGJlIGRvbmUuICBJZiBzdWJjbGFzcyBjYW4gYW5kIHdhbnRzIHRvIGRvIHNvLCBpdCBjYW4KCSAgc3RpbGwgb3ZlcnJpZGUgYXMgc3VjaC4KCjIwMDktMTEtMjAgMTc6MzI6MTMgKzAxMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBmbHVlbmRvLmNvbT4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYWFjcGFyc2U6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncwoKMjAwOS0xMC0xMSAxMToyMjoxMSArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBhYWNwYXJzZTogZml4IHdhcm5pbmdzIGluIG1hY29zeCBzbm93IGxlb3BhcmQKCjIwMDktMDktMjUgMTc6MDI6NTMgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmg6CgkgIGFhY3BhcnNlOiBmb3JlZ28gKGJvZ3VzKSBwYXJzaW5nIG9mIGFscmVhZHkgcGFyc2VkIChyYXcpIGlucHV0CgoyMDA5LTA4LTA3IDEzOjA3OjE3ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcmV2ZW50IGluZmluaXRlIGxvb3Agd2hlbiBkcmFpbmluZwoKMjAwOS0wOC0wNyAxMzowNjoyOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogZml4IG1pbm9yIG1lbW9yeSBsZWFrCgoyMDA5LTA3LTE0IDE0OjA4OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBhYWNwYXJzZTogQWRkIGZ1bmN0aW9uIGZvciB0aGUgYmFzZXBhcnNlIHN1YmNsYXNzIHRvIHB1c2ggYnVmZmVycyBkb3duc3RyZWFtCgkgIEFsc28gaGFuZGxlIHRoZSBjYXNlIGdyYWNlZnVsbHkgd2hlcmUgdGhlIHN1YmNsYXNzIGRlY2lkZXMgdG8gZHJvcAoJICB0aGUgZmlyc3QgYnVmZmVycyBhbmQgaGFzIG5vIGNhcHMgc2V0IHlldC4gSXQncyBzdGlsbCByZXF1aXJlZCB0bwoJICBoYXZlIHZhbGlkIGNhcHMgc2V0IHdoZW4gdGhlIGZpcnN0IGJ1ZmZlciBzaG91bGQgYmUgcGFzc2VkIGRvd25zdHJlYW0uCgoyMDA5LTA3LTE0IDE0OjA3OjQ0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBGaXggc2VlayBldmVudCBsZWFraW5nCgoyMDA5LTA2LTAxIDEzOjU2OjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBwcm9wYWdhdGUgcmV0dXJuIHZhbHVlIG9mIEdzdEJhc2VQYXJzZTo6c2V0X3NpbmtfY2FwcygpCgkgIGdzdF9iYXNlX3BhcnNlX3Npbmtfc2V0Y2FwcygpIHByZXN1bWFibHkgc2hvdWxkIGZhaWwgaWYgdGhlIHN1YmNsYXNzCgkgIHJldHVybnMgRkFMU0UgZnJvbSBpdHMgOjpzZXRfc2lua19jYXBzKCkgZnVuY3Rpb24uCgoyMDA5LTA2LTAxIDEzOjQ3OjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBkb24ndCB0cnkgdG8gR1NUX0xPRyBhbiBhbHJlYWR5LWZyZWVkIGNhcHMgc3RyaW5nCgkgIFRoZSBwcm9wZXIgd2F5IHRvIGxvZyBjYXBzIGlzIHZpYSBHU1RfUFRSX0ZPUk1BVCBhbnl3YXkuCgoyMDA5LTA1LTI2IDE5OjQzOjUzICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9hYWNwYXJzZS9nc3RiYXNlcGFyc2UuYzoKCSAgYmFzZXBhcnNlOiBmaXggZGVidWcgY2F0ZWdvcnkKCjIwMDktMDQtMjcgMjI6Mzk6MTUgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IGZpeCAocmVncmVzc2lvbiBpbikgbmV3c2VnbWVudCBoYW5kbGluZwoJICAoYWFjcGFyc2UsIGFtcnBhcnNlLCBmbGFjcGFyc2UpLiAgRml4ZXMgIzU4MDEzMy4KCjIwMDktMDQtMDcgMDQ6NTM6MDIgKzAzMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRml4IHNsaWdodGx5IGJyb2tlbiBidWZmZXItaW4tc2VnbWVudCBjaGVjayAoYWFjcGFyc2UsIGFtcnBhcnNlLCBmbGFjcGFyc2UpCgoyMDA5LTA0LTA1IDAzOjUwOjE5ICswMzAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBiYXNlcGFyc2U6IEZpeCBwdXNoIG1vZGUgc2Vla2luZyAoYWFjcGFyc2UsIGFtcnBhcnNlKQoJICBTZW5kaW5nIHRoZSBmbHVzaC1zdGFydCBldmVudCBmb3J3YXJkIGJlZm9yZSB0YWtpbmcgdGhlIHN0cmVhbSBsb2NrIGFjdHVhbGx5CgkgIHdvcmtzLCBpbiBjb250cmFzdCB0byBkZWFkbG9ja2luZyBpbiBkb3duc3RyZWFtIHByZXJvbGxfd2FpdCAoaHVuayAxKS4KCSAgQWZ0ZXIgdGhhdCB3ZSBnZXQgdGhlIGNoYWluIGZ1bmN0aW9uIGJlaW5nIHN0dWNrIGluIGEgYnVzeSBsb29wLiBUaGlzIGlzIGZpeGVkCgkgIGJ5IHVwZGF0aW5nIHRoZSBtaW5pbXVtIGZyYW1lIHNpemUgaW5zaWRlIHRoZSBzeW5jaHJvbml6YXRpb24gbG9vcCBiZWNhdXNlIHRoZQoJICBzdWJjbGFzcyBhc2tzIGZvciBtb3JlIGRhdGEgaW4gdGhpcyB3YXkgKGh1bmsgMikuCgkgIEZpbmFsbHksIHRoaXMgbGVhZHMgdG8gYSB2ZXJ5IHByb2JhYmxlIGNyYXNoIGJlY2F1c2UgdGhlIHN1YmNsYXNzIGNhbiBmaW5kIGEKCSAgdmFsaWQgZnJhbWUgd2l0aCBhIHNpemUgZ3JlYXRlciB0aGFuIHRoZSBjdXJyZW50bHkgYXZhaWxhYmxlIGRhdGEgaW4gdGhlCgkgIGFkYXB0ZXIuIFRoaXMgbWFrZXMgdGhlIHN1YnNlcXVlbnQgZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIgY2FsbCByZXR1cm4gTlVMTCwKCSAgd2hpY2ggaXMgbm90IGV4cGVjdGVkIChodW5rIDMpLgoKMjAwOS0wMy0zMSAxNjowNzo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogRGVsYXkgbmV3c2VnbWVudCBhcyBsb25nIGFzIHBvc3NpYmxlLgoJICBJZiBuZXdzZWdtZW50IGlzIHNlbnQgKHRvbykgZWFybHksIGNhcHMgbWF5IG5vdCB5ZXQgYmUgZml4ZWQvc2V0LAoJICBhbmQgZG93bnN0cmVhbSBtYXkgbm90IGhhdmUgYmVlbiBsaW5rZWQuCgoyMDA5LTAyLTI3IDExOjI0OjM3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmV2ZXJ0IGxhc3QgY2hhbmdlIGFuZCBwcm9wZXJseSBmaXgKCSAgQmFzZXBhcnNlIGludGVybmFseSBicmVha3MgdGhlIHNlbWFudGljcyBvZiBhIF9jaGFpbiBmdW5jdGlvbiBieSBjYWxsaW5nIGl0IHdpdGgKCSAgYnVmZmVyPT1OVUxMLiBUaGUgcmVzb24gSSBiZWxpdmVkIGl0IHdhcyBva2F5IHRvIHJlbW92ZSBpdCB3YXMgdGhhdCB0aGVyZSBpcwoJICBhbHNvIGFuIHVuY2hlY2tlZCBhY2Nlc3MgdG8gYnVmZmVyIGxhdGVyIGluIF9jaGFpbi4gQWN0dWFsbHkgdGhhdCBjb2RlIGlzIHdyb25nLAoJICBhcyBpdCBtb3N0IHByb2JhYmx5IHdhbnRzIHRvIHNldCBkaXNjb250IG9uIHRoZSBvdXRnb2luZyBidWZmZXIuCgoyMDA5LTAyLTI2IDExOjAyOjA2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIGJhc2VwYXJzZTogcmVtb3ZlIGNoZWNrcyBmb3IgYnVmZmVyPT1OVUxMCgkgIEFjY29yZGlmbiB0byBkb2NzIGZvciBHc3RQYWRDaGFpbkZ1bmN0aW9uIGJ1ZmZlciBjYW5ub3QgYmUgTlVMTC4gSWYgd2Ugd291bGQKCSAgbGVhdmUgdGhlIGNoZWNrLCB3ZSB3b3VsZCBhbHNvIG5lZWQgbW9yZSBzdWNoIGNoZWNrIGJlbG93LgoKMjAwOS0wMS0zMCAxODoxODoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgIEZpeCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBkZWZhdWx0IHBhcnNlX2ZyYW1lIGZ1bmN0aW9uLgoJICBGaXggdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZGVmYXVsdCBwYXJzZV9mcmFtZSBmdW5jdGlvbiBpbiBib3RoCgkgIGNvcGllcyBvZiBHc3RCYXNlUGFyc2UKCjIwMDgtMTEtMTMgMTQ6MjE6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEZpeCBiYXNlcGFyc2UgdHlwZSBuYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGJhc2VwYXJzZS5jOgoJICBGaXggYmFzZXBhcnNlIHR5cGUgbmFtZS4KCjIwMDgtMTEtMTMgMTI6NTk6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCB0d28gbmV3IGJhc2VwYXJzZSBiYXNlZCBwYXJzZXJzIChhYWMgYW5kIGFtcikgZnJvbSBCdWcgIzUxODg1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9hYWNwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuYzoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YWFjcGFyc2UuaDoKCSAgKiBnc3QvYWFjcGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgICogZ3N0L2FhY3BhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICAqIGdzdC9hbXJwYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YW1ycGFyc2UuYzoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YW1ycGFyc2UuaDoKCSAgKiBnc3QvYW1ycGFyc2UvZ3N0YmFzZXBhcnNlLmM6CgkgICogZ3N0L2FtcnBhcnNlL2dzdGJhc2VwYXJzZS5oOgoJICBBZGQgdHdvIG5ldyBiYXNlcGFyc2UgYmFzZWQgcGFyc2VycyAoYWFjIGFuZCBhbXIpIGZyb20gQnVnICM1MTg4NTcuCgoyMDExLTAzLTIwIDAwOjU2OjA4ICswMTAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlWzJdOiBNYWtlIHNyYyBxdWVyeSBNVC1zYWZlCgkgIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGVsZW1lbnQgbWlnaHQgYmUgZ29pbmcgZG93biB3aGlsZSB0aGUgZXZlbnQgYXJyaXZlcwoKMjAxMS0wMy0yMCAwMDo1NjowOCArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IE1ha2Ugc3JjIHF1ZXJ5IE1ULXNhZmUKCSAgSXQgaXMgcG9zc2libGUgdGhhdCB0aGUgZWxlbWVudCBtaWdodCBiZSBnb2luZyBkb3duIHdoaWxlIHRoZSBldmVudCBhcnJpdmVzCgoyMDExLTA0LTA4IDE0OjU2OjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWVbMl06IFVucmVmIGV2ZW50cyBpZiB0aGUgcGFyZW50IGVsZW1lbnQgZGlzYXBwZWFyZWQKCjIwMTEtMDMtMjEgMTY6MDE6MDUgKzAxMDAgIEhhdmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWVbMl06IE1ha2UgdXBzdHJlYW0gZXZlbnRzIE1ULXNhZmUKCjIwMTEtMDQtMDggMTQ6NTU6MDkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNlOiBVbnJlZiBldmVudHMgaWYgdGhlIHBhcmVudCBlbGVtZW50IGRpc2FwcGVhcmVkCgkgIEFuZCBhbHNvIHVucmVmIGV2ZW50cyBpZiB0aGUgYmFzZXRyYW5zZm9ybSBzdWJjbGFzcyBoYXMgbm8KCSAgZXZlbnQgaGFuZGxlciBhbmQgdGhlIGV2ZW50IGlzIG5vdCBmb3J3YXJkZWQgYXQgYWxsLgoKMjAxMS0wMy0yMSAxNjowMTowNSArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNlOiBNYWtlIHVwc3RyZWFtIGV2ZW50cyBNVC1zYWZlCgoyMDExLTAzLTI5IDExOjU3OjA2ICswMjAwICBTdGlhbiBTZWxuZXMgPHN0aWFzZWxuQGNpc2NvLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgZ3N0cXVldWUsIGdzdHF1ZXVlMjogY2hlY2sgaWYgcGFyZW50IG9mIHBhZCBpcyBOVUxMIGluIF9nZXRjYXBzCgkgIFBhcmVudCBvZiB0aGUgcGFkICh0aGUgcXVldWUpIG1heSBiZSBzZXQgdG8gTlVMTCB3aGlsZSB0aGVyZSBpcwoJICBhIGJ1ZmZlciBhbGxvYyBnb2luZyBvbi4KCjIwMTEtMDQtMDggMTQ6NTA6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEZpeCBnZXRjYXBzIGFuZCBldmVudCBmdW5jdGlvbiBmcm9tIGxhc3QgY29tbWl0CgkgIFJldHVybiBBTlkgY2FwcyBpZiB0aGUgcGFyZW50IGRpc2FwcGVhcmVkLCBpLmUuIHRoZSB0ZW1wbGF0ZSBjYXBzCgkgIGFuZCBkb24ndCBsZWFrIGV2ZW50cyBpZiB0aGUgcGFyZW50IGRpc2FwcGVhcmVkLgoKMjAxMS0wNC0wMSAwODo0NjoxNCArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFByb3RlY3QgYWdhaW5zdCBwYWQtcGFyZW50IGRpc2FwcGVhcmluZwoKMjAxMC0xMi0xNCAxNjowNjo0NiArMDEwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbi5zZWxuZXNAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiByZXN5bmMgdG8gYXZvaWQgaW5maW5pdGUgbG9vcAoKMjAxMS0wNC0wOCAwOToyMDoyOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDExLTA0LTA4IDA5OjE1OjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBSZW1vdmVkIHVudXNlZCBHQ29uZAoKMjAxMS0wNC0wOCAwOTowNzo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogQWRkIGFub3RoZXIgY2hlY2sgZm9yIHRoZSBmbHVzaGluZyBmbGFnIGFmdGVyIHRha2luZyB0aGUgbG9jawoJICBUaGlzIHByZXZlbnRzIGFub3RoZXIgcG90ZW50aWFsIGRlYWRsb2NrIHdoZW4gZmx1c2hpbmcgdGhlIHBhZAoJICBhdCBleGFjdGx5IHRoZSByaWdodCB0aW1lLgoKMjAxMS0wNC0wNyAxMToyNDozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogSW1tZWRpYXRlbHkgZHJvcCBtZXNzYWdlcyBhZnRlciBjYWxsaW5nIHRoZSBzeW5jIGhhbmRsZXIgaWYgdGhpcyBpcyBhIHN5bmNocm9ub3VzIGJ1cwoJICBPdGhlcndpc2Ugd2UgbWlnaHQgd2FpdCBmb3JldmVyIGZvciB0aGUgbWVzc2FnZSB0byBiZSBwb3BwZWQgZnJvbQoJICB0aGUgcXVldWUgaWYgYSBzeW5jIGhhbmRsZXIgcmV0dXJuZWQgR1NUX0JVU19BU1lOQy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzAwNQoKMjAxMS0wNC0wNyAxMToxOTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGJ1czogVXNlIGEgY29uc3RydWN0LW9ubHkgcHJvcGVydHkgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBjaGlsZCBidXNlcyBhbmQgbm9ybWFsIGJ1c2VzCgkgIFRoaXMgYWxsb3dzIHRvIG9ubHkgY3JlYXRlIHRoZSBzb2NrZXRwYWlyIHdoZW4gaXQgaXMgcmVhbGx5IHJlcXVpcmVkIGluc3RlYWQKCSAgb2YgYWx3YXlzIGNyZWF0aW5nIGl0IGFuZCBpbW1lZGlhdGVseSBkZXN0cm95aW5nIGl0IGFnYWluIGZvciBjaGlsZCBidXNlcy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NzAwNQoKMjAxMS0wNC0wNyAyMDo0NzoyNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUyLmM6CgkgIHRlc3RzOiBhZGQgc29tZSBiYXNpYyB1bml0IHRlc3RzIGZvciBxdWV1ZTIKCjIwMTEtMDQtMDcgMjA6NDU6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggYnVmZmVyIGxlYWsgb24gZW9zIHdoZW4gdXNpbmcgdGhlIHJpbmcgYnVmZmVyCgoyMDExLTAxLTExIDE0OjI3OjM1ICswMTAwICBJZGFyIFRvbGxlZnNlbiA8aXRvbGxlZnNAY2lzY28uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXhlcyBtZW1vcnkgbGVhayBvbiBvdXRfZmx1c2hpbmcgZXJyb3IgaW4gZ3N0X3F1ZXVlMl9jcmVhdGVfcmVhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0Njk3MgoKMjAxMS0wNC0wNyAxOTo0NDo0NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBtaW5vciBtZW1vcnkgbGVhawoKMjAxMS0wNC0wNyAxNzozNDoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IG1pbm9yIGVsZW1lbnQgZGVzY3JpcHRpb24gZml4CgoyMDExLTA0LTA3IDE2OjEzOjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wNC0wNyAxNjowMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBOT19TSEFSRSBmbGFnIHRvIG1lbW9yeQoJICBBZGQgYSBOT19TSEFSRSBmbGFnIHRvIG1lbW9yeSB0byBpbmRpY2F0ZSB0aGF0IGl0IHNob3VsZCBub3QgYmUgc2hhcmVkCgkgIGJldHdlZW4gYnVmZmVycy4KCjIwMTEtMDQtMDcgMTY6MDg6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBmaWxlIGFzIHdlIGhhdmUgZG9jcy9kZXNpZ24vcGFydC1taXNzaW5nLXBsdWdpbnMudHh0CgoyMDExLTA0LTA3IDEwOjQ4OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBIYW5kbGUgdGFnIGFuZCBjdXN0b20gZG93bnN0cmVhbSBldmVudHMgdGhlIHNhbWUKCSAgRXNwZWNpYWxseSBkcm9wIHRhZyBldmVudHMgd2hlbiBmbHVzaGluZyB0byBub3Qgc2VuZCB0aGVtIG92ZXIKCSAgYW5kIG92ZXIgYWdhaW4uCgkgIFNob3VsZCd2ZSBiZWVuIGluIHRoZSBsYXN0IGNvbW1pdCBhbHJlYWR5IGJ1dCBJIGZvcmdvdCB0byBjYWxsCgkgIGdpdCByZWJhc2UgLS1jb250aW51ZS4uLgoKMjAxMS0wNC0wNyAxMDo0MDoxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmxhCgoyMDExLTA0LTA3IDEwOjI5OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBTZW5kIHN5bmNyb25pemVkIGN1c3RvbSBkb3duc3RyZWFtL2JvdGggZXZlbnRzIGRvd25zdHJlYW0gZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZAoJICBJbnN0ZWFkIG9mIGp1c3Qgc2lsZW50bHkgZHJvcHBpbmcgdGhlbS4gVGhlIHNhbWUgd2FzIGRvbmUgZm9yIHRhZyBldmVudHMKCSAgYmVmb3JlIGFscmVhZHkuCgkgIEZpeGVzIGJ1ZyAjNjM1NzE4LgoKMjAxMS0wNC0wNiAxOToxOTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZW1vcnkuYzoKCSAgbWVtb3J5OiBkb24ndCBmb2xsb3cgdGhlIHBhcmVudCBpbiB0aGUgZmFsbGJhY2sgc2hhcmUKCjIwMTEtMDQtMDYgMTg6NTc6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGJ1ZmZlcjogbWFrZSBtZW1vcnkgd3JpdGFibGUgaW4gX3BlZWsKCSAgTWFrZSB0aGUgbWVtb3J5IHdyaXRhYmxlIHdoZW4gd2UgYXJlIGFza2VkIHRvIF9wZWVrIHdpdGggTUFQX1dSSVRFLgoJICBJbXByb3ZlIGRlYnVnZ2luZyBvZiBtaW5pb2JqZWN0LgoKMjAxMS0wNC0wNiAxNjozNzo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGZpeCBkZWJ1ZwoKMjAxMS0wNC0wNiAxNDoyMDo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTA2IDE0OjA2OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBBZGQgcHJpdmF0ZSBBUEkgdG8gc2V0IGEgR3N0QnVzIGluIGNoaWxkIG1vZGUKCSAgVGhpcyBpcyB1c2VkIGJ5IEdzdEJpbiB0byBjcmVhdGUgYSBjaGlsZCBidXMgd2l0aG91dAoJICBhIHNvY2tldHBhaXIgYmVjYXVzZSBjaGlsZCBidXNlcyB3aWxsIGFsd2F5cyB3b3JrCgkgIHN5bmNocm9ub3VzLiBPdGhlcndpc2UgdG9vIG1hbnkgc29ja2V0cyBjb3VsZCBiZQoJICBjcmVhdGVkIGFuZCB0aGUgbGltaXQgb2YgZmlsZSBkZXNjcmlwdG9ycyBmb3IgdGhlCgkgIHByb2Nlc3MgY291bGQgYmUgcmVhY2hlZC4KCSAgRml4ZXMgYnVnICM2NDY2MjQuCgoyMDExLTA0LTA2IDEzOjU2OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgUmV2ZXJ0ICJidXM6IE9ubHkgY3JlYXRlIHRoZSBzaWduYWxsaW5nIHNvY2tldCBwYWlyIHdoZW4gcmVxdWlyZWQiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNGJmOGYxNTI0ZjZlMzM3NGIzZjNiYzU3MzIyMzM3NzIzZDA2YjkyOC4KCjIwMTEtMDQtMDYgMTM6NTY6NDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBSZXZlcnQgImJ1czogQ2hlY2sgaWYgcGVuZGluZyBtZXNzYWdlcyBhcmUgaW4gdGhlIHF1ZXVlIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGJkMWM0MDAxMTQzNGMxZWZhYTY5NmRjOThlZjg1NWVmOWNjZTliMjguCgoyMDExLTA0LTA2IDExOjM4OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgY2hlY2tzOiBtYWtlIHRlc3RzX21hbnlfYmlucyBpbiBiaW4gdW5pdCB0ZXN0IGEgYml0IGZhc3RlcgoJICBOb3QgZG9pbmcgZXhwZW5zaXZlIGNoZWNrcyB3aGVuIGxpbmtpbmcgZWxlbWVudHMgbWFrZXMgdGhpbmdzCgkgIG11Y2ggZmFzdGVyLgoKMjAxMS0wNC0wNiAxMTozMDoxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIGNoZWNrczogYWRkIHNvbWUgcXVldWVzIHRvIHRlc3RfbWFueV9iaW5zIHVuaXQgdGVzdAoJICBUbyBsaW1pdCB0aGUgbnVtYmVyIG9mIGNhbGxzIGluIGEgcm93IHBlciB0aHJlYWQuCgoyMDExLTA0LTA2IDEyOjAzOjE4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiBDaGVjayBpZiBwZW5kaW5nIG1lc3NhZ2VzIGFyZSBpbiB0aGUgcXVldWUKCSAgV2UgY2FuJ3QgcmVseSBjb21wbGV0ZWx5IG9uIHRoZSBwb2xsIGZkIGJlY2F1c2UgdGhlIGZkIG1pZ2h0IGJlCgkgIGNyZWF0ZWQgYWZ0ZXIgbWVzc2FnZXMgd2VyZSBwb3N0ZWQgdG8gdGhlIGJ1cy4KCjIwMTEtMDQtMDYgMTE6NDU6MjcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBHc3REYXRlL0dEYXRlIGhhcyBhIGFiYnJldmlhdGlvbiBub3cKCjIwMTEtMDQtMDMgMTY6MTE6NTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBjaGVja3M6IGFkZCBHc3RCaW4gdW5pdCB0ZXN0IHRoYXQgY3JlYXRlcyBhIGxvdCBvZiBiaW5zCgkgIEN1cnJlbnRseSBmYWlscyAoaW4gbm9ybWFsIGNpcmN1bXN0YW5jZXMpIGJlY2F1c2Ugd2UgY3JlYXRlIGEKCSAgc29ja2V0IHBhaXIgZm9yIGVhY2ggYmluJ3MgYnVzIGFuZCBleGhhdXN0IHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlCgkgIGZpbGUgZGVzY3JpcHRvcnMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDY2MjQKCjIwMTEtMDQtMDUgMTY6MjI6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICBidXM6IE9ubHkgY3JlYXRlIHRoZSBzaWduYWxsaW5nIHNvY2tldCBwYWlyIHdoZW4gcmVxdWlyZWQKCSAgT3RoZXJ3aXNlIGEgbmV3IG9uZSB3b3VsZCBiZSBjcmVhdGVkIGZvciBldmVyeSBzaW5nbGUgYnVzIGFuZAoJICB0aGUgcHJvY2VzcyBjb3VsZCBlYXNpbHkgcnVuIG91dCBvZiBmaWxlIGRlc2NyaXB0b3JzLgoJICBGaXhlcyBidWcgIzY0NjYyNC4KCjIwMTEtMDQtMDUgMTQ6MzY6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IEFkZCBkYXRlIGFzIGEgdHlwZSBhYmJyZXZpYXRpb24gb2YgR0RhdGUKCSAgU2VlIGJ1ZyAjNjQ2Njk2LgoKMjAxMS0wNC0wNCAxNTo1NjozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxY2NiZTA5IHRvIGMzY2FmZTEKCjIwMTEtMDQtMDQgMTE6MTc6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTA0IDAzOjMzOjQ2ICswMjAwICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgPHlsYXR1eWFAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogcmV0cnkgcmVhZGluZyB0aGUgY29udHJvbCBzb2NrZXQgdG8gcmVsZWFzZSBwcm9wZXJseSBhbGwgd2FrZXVwcwoJICBpZiBzZXQtPmNvbnRyb2xfcGVuZGluZyBpcyBzZXQgdG8gMCBidXQgd2UgZGlkbid0IG5vdCBzdWNjZWQgcmVhZGluZwoJICB0aGUgY29udHJvbCBzb2NrZXQsIGZ1dHVyZSBjYWxscyB0byBnc3RfcG9sbF93YWl0KCkgd2lsbCBiZSBhd2Fpa2VuCgkgIGJ5IHRoZSBjb250cm9sIHNvY2tldCB3aGljaCB3aWxsIG5vdCBiZSByZWxlYXNlZCBwcm9wZXJseSBiZWNhdXNlCgkgIHNldC0+Y29udHJvbF9wZW5kaW5nIGlzIGFscmVhZHkgMCwgY2F1c2luZyBhbiBpbmZpbml0ZSBsb29wLgoKMjAxMS0wNC0wNCAxMDoxODoxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogRG9uJ3QgYWxsb3cgaW52YWxpZCBHRGF0ZXMgaW4gYWxsIHN0cnVjdHVyZXMgYW5kIGRvbid0IGFsbG93IE5VTEwgR0RhdGVzIGluIHRhZ2xpc3RzCgkgIFNvbWUgY29kZSAoZS5nLiBnc3R2b3JiaXN0YWcuYykgYXNzdW1lcyBub24tTlVMTCBHRGF0ZXMgaW4gdGFnbGlzdHMgYW5kCgkgIGV4cGxvZGVzIG90aGVyd2lzZSBhbmQgTlVMTCBvciBpbnZhbGlkIEdEYXRlcyBkb24ndCBtYWtlIG11Y2ggc2Vuc2UgYW55d2F5LgoKMjAxMS0wMy0yNSAxNTo1NjowNyArMDEwMCAgVGhvbWFzIEtyaXN0ZW5zZW4gPHRob21hcy5rcmlzdGVuc2VuQGNpc2NvLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IGRvbid0IGNhbGwgV1NBV2FpdEZvck11bHRpcGxlRXZlbnRzIHdpdGggbm8gZXZlbnRzCgkgIEZpeGVzIGVycm9yIGNhdWdodCBieSBNaWNyb3NvZnQgQXBwbGljYXRpb24gVmVyaWZpZXIuCgoyMDExLTA0LTAzIDE2OjE4OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBhZGQgcG9pbnRlciB0byBwYXJ0LXNlZWtpbmcudHh0IGRlc2lnbiBkb2NzIHRvIGV2ZW50IHNlZWsgZmxhZ3MgZG9jcwoKMjAxMS0wNC0wMyAxNjoxODoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBjaGVja3M6IGlnbm9yZSBuZXcgZnVubmVsIHVuaXQgdGVzdCBiaW5hcnkKCjIwMTEtMDQtMDIgMTQ6NTE6MTggKzAxMDAgIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICB1dGlsczogQXZvaWQgdXNpbmcgInR5cGUiIGFzIG5hbWUgZm9yIGEgdmFyaWFibGUgYW5kIGEgbWFjcm8gYXJndW1lbnQgaW4gR1NUX0JPSUxFUlBMQVRFCgkgIFRoaXMgY2F1c2VkICJyZS1kZWNsYXJhdGlvbiIgcHJvYmxlbXMuCgkgIC4vY2x1dHRlci1nc3QtdmlkZW8tc2luay5jOiBJbiBmdW5jdGlvbiDigJhjbHV0dGVyX2dzdF92aWRlb19zaW5rX2luaXRfaW50ZXJmYWNlc+KAmToKCSAgLi9jbHV0dGVyLWdzdC12aWRlby1zaW5rLmM6MjMxOjE6IHdhcm5pbmc6IGRlY2xhcmF0aW9uIG9mIOKAmENsdXR0ZXJHc3RWaWRlb1NpbmvigJkgc2hhZG93cyBhIGdsb2JhbCBkZWNsYXJhdGlvbiBbLVdzaGFkb3ddCgkgIC4vY2x1dHRlci1nc3QtdmlkZW8tc2luay5oOjY0OjQ0OiB3YXJuaW5nOiBzaGFkb3dlZCBkZWNsYXJhdGlvbiBpcyBoZXJlIFstV3NoYWRvd10KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjUzMQoKMjAxMS0wNC0wMSAxMzo1NjowOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBXaGVuIHJlcXVlc3RpbmcgYW4gZXhpc3RpbmcgcGFkIHByaW50IGEgZ19jcml0aWNhbCgpIGluc3RlYWQgb2YgdXNpbmcgYW4gYXNzZXJ0aW9uCgkgIFNvbWUgYXBwbGljYXRpb25zIGFyZSByZXF1ZXN0aW5nIHRoZSBzYW1lIHBhZCBuYW1lIG11bHRpcGxlIHRpbWVzCgkgIGFuZCB0aGUgYmVoYXZpb3VyIGlzIHVuZGVmaW5lZCBhbmQgZGlmZmVyZW50IGZyb20gZWxlbWVudCB0byBlbGVtZW50CgkgIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGJyZWFrIGFwcGxpY2F0aW9ucyB0aGF0IHdvcmsganVzdCBmaW5lLgoJICBJbiAwLjExIHRoaXMgY2hlY2sgc2hvdWxkIGJlIGFuIGFzc2VydGlvbiBhZ2FpbiwgYWx0aG91Z2ggZWxlbWVudHMKCSAgaGF2ZSB0byBkbyBtYW51YWwgY2hlY2tpbmcgaWYgdGhlIHBhZCBhbHJlYWR5IGV4aXN0cyBhZ2FpbiBiZWNhdXNlCgkgIGl0IGNhbid0IGJlIGRvbmUgaW4gYSB0aHJlYWRzYWZlIHdheSBoZXJlLgoKMjAxMS0wNC0wMSAxMzo1MzozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBVc2UgZ2ludDY0L2d1aW50NjQgc3RyaW5nIHBhcnNpbmcgZnVuY3Rpb25zCgkgIEFuZCBjaGVjayB0aGF0IHRoZSByZXF1ZXN0ZWQgcGFkIG5hbWVzIGFyZSBpbnNpZGUgdGhlIHZhbGlkCgkgIGdpbnQvZ3VpbnQgcmFuZ2UuCgoyMDExLTA0LTAxIDEzOjUxOjMxICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBzdHJ0b1t1XWwoKSByZXR1cm5zIGEgZ1t1XWxvbmcKCjIwMTEtMDQtMDEgMTA6NDc6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTA0LTAxIDEwOjQ2OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZ3VpZGUgd2l0aCBidWZmZXJsaXN0IGNoYW5nZXMKCjIwMTEtMDMtMzEgMTk6MjU6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgZGVzaWduIGRvY3M6IGRvY3VtZW50IGV4cGVjdGVkIGJlaGF2aW91ciBmb3IgQUNDVVJBVEUgYW5kIEtFWV9VTklUIHNlZWsgZmxhZ3MKCjIwMTEtMDMtMzEgMTg6Mzk6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSAgYnl0ZXdyaXRlcjogZG9uJ3QgYWRkIE5VTEwgZGF0YQoKMjAxMS0wMy0zMSAxNzo1NToyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oCgoyMDExLTAzLTMxIDE3OjUxOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogc2ltcGxpZnkgYnVmZmVybGlzdHMKCSAgV2Ugbm93IGhhdmUgbXVsdGlwbGUgbWVtb3J5IGJsb2NrcyBhcyBwYXJ0IG9mIHRoZSBidWZmZXJzIGFuZCB3ZSBjYW4gdGhlcmVmb3JlCgkgIHJlZHVjZSB0aGUgYnVmZmVybGlzdCB0byBhIHNpbXBsZSBhcnJheSBvZiBidWZmZXJzLgoKMjAxMS0wMy0zMSAxMDo1MzowMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBnc3RhYmk6IEFkZCBzb21lIG5ldyBzdHJ1Y3R1cmVzIGZvciB4ODYtNjQKCjIwMTEtMDMtMzEgMTA6NDY6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3g4Nl82NC5oOgoJICBsaWJzYWJpOiBBZGQgbG90cyBvZiBuZXcgc3RydWN0dXJlcyBmb3IgeDg2LTY0CgoyMDExLTAzLTMxIDEwOjMxOjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDExLTAzLTMwIDIwOjA1OjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBmaXggZm9yIEFQSSBjaGFuZ2UKCjIwMTEtMDMtMzAgMTk6NTg6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExLWZkbwoJICBDb25mbGljdHM6CgkgIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHkKCSAgZ3N0L2dzdGVsZW1lbnQuYwoKMjAxMS0wMy0zMCAxOTowMToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWV0YS5jOgoJICBkb2NzOiB1cGRhdGUgZG9jcwoKMjAxMS0wMy0zMCAxODo0NTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGdzdC9nc3RtZW1vcnkuYzoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZG9jczogdXBkYXRlIGRvY3VtZW50YXRpb24KCjIwMTEtMDMtMzAgMTY6NDc6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNvbXBhdC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogbW9yZSBBUEkgdHdlYWtzCgkgIF90cmltIC0+IF9yZXNpemUKCSAgX2NyZWF0ZV9zdWIgLT4gY29weV9yZWdpb24KCjIwMTEtMDMtMzAgMTU6Mjk6MzkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlci50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtYnVmZmVybGlzdC50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIGRlc2lnbiBkb2NzCgoyMDExLTAzLTMwIDEzOjA0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXRhLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBkZXNpZ246IHVwZGF0ZSBkb2NzCgoyMDExLTAzLTMwIDEwOjQ4OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IE1ha2UgYXNzaWdubWVudCBvZiBxdWV1ZSBJRHMgYW5kIHBhZCBuYW1lcyB0aHJlYWRzYWZlCgkgIEFsc28gYWRkIGEgdGVzdCBmb3IgbmFtaW5nIHBhZHMgYnkgdGhlIGNhbGxlciBhbmQgcmV0dXJuIE5VTEwKCSAgd2hlbiByZXF1ZXN0aW5nIGFuIGFscmVhZHkgZXhpc3RpbmcgcGFkLgoKMjAxMS0wMy0yOSAyMzo1ODo0MyArMDIwMCAgQW5kcmVhcyBGcmlzY2ggPGZyYXhpbmFzQG9wZW5kcmVhbWJveC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogU2V0IHRoZSBzaW5nbGUgcXVldWUgSUQgdG8gdGhlIElEIG9mIHRoZSByZXF1ZXN0ZWQgcGFkIGlmIG9uZSB3YXMgZ2l2ZW4gYnkgdGhlIGNhbGxlcgoKMjAxMS0wMy0yOSAxOToxNzo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lbW9yeTogZnVydGhlciBtZW1vcnkgdHdlYWtpbmcKCSAgQWxsb3cgZm9yIGF1dG9tYXRpYyBtZXJnaW5nIG9mIG1lbW9yeSBibG9jayBpbiB0aGUgX21hcCBmdW5jdGlvbiBhbmQgYXV0b21hdGljCgkgIGZyZWVpbmcgb2YgdGhlIHRlbXBvcmFyeSBtZW1vcnkuCgkgIFJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucy4KCSAgQWRkIHBvc3NpYmlsaXR5IHRvIGZvcmNlIHdyaXRhYmxlIHNwYW5uZWQgbWVtb3J5LgoKMjAxMS0wMy0yOSAxNzoxNzo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBpbXBsZW1lbnQgQ09QWV9NRVJHRQoKMjAxMS0wMy0yOSAxNjo1MjoyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXI6IGNsZWFuIHVwIF9zcGFuIGFuZCBhZGQgbW9yZSBnX3JldHVybl9pZi4uCgoyMDExLTAzLTI5IDE2OjIyOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpeCBzYW5pdHkgY2hlY2tzIGZvciByZXF1ZXN0IHBhZCB0ZW1wbGF0ZXMgd2l0aG91dCAlCgoyMDExLTAzLTI5IDEzOjUxOjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogb3B0aW1pemUgbWVtb3J5IGhhbmRsaW5nCgoyMDExLTAzLTI5IDExOjU3OjU4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEFkZCBzb21lIG1vcmUgc2FuaXR5IGNoZWNrcyB0byB0aGUgcGFkIG5hbWUgY2hlY2tpbmcgb2YgcmVxdWVzdCBwYWRzIGluIGFsbCBjYXNlcwoJICBFc3BlY2lhbGx5IGNoZWNrIGlmIGEgcGFkIHdpdGggdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzLgoKMjAxMS0wMy0yOSAxMTo1MjowNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDaGVjayAldSB0b28gd2hlbiB0cnlpbmcgdG8gZmluZCBhIHBhZCB0ZW1wbGF0ZSBmb3IgYSByZXF1ZXN0IHBhZAoKMjAxMS0wMy0yOSAxMTozMTozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IG1vdmUgaW1wbGVtZW50YXRpb24gZGV0YWlscyBpbiBwcml2YXRlIHN0cnVjdAoKMjAxMS0wMy0yOCAyMTowMToxMyArMDIwMCAgRnJheGluYXMgPGFuZHJlYXMuZnJpc2NoQG11bHRpbWVkaWEtbGFicy5kZT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggYXJiaXRyYXJ5IHNpbmsgKyBzb3VyY2UgcGFkIG5hbWluZwoJICBVc2UgdGhlIHN0cmluZyBwcm92aWRlZCBieSB0aGUgY2FsbGVyIGZvciB0aGUgc2lua3BhZCBuYW1lCgkgIGlmIHBvc3NpYmxlLiBOb3RlIHRoYXQgYWxsIHNhbml0eSBjaGVja2luZyBmb3IgdGhpcyBuYW1lCgkgIGlzIGFscmVhZHkgZG9uZSBpbiBHc3RFbGVtZW50LgoJICBGaXhlcyBCdWcgIzY0NTkzMQoKMjAxMS0wMy0yOSAxMToxODozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IEFkZCBzb21lIG1vcmUgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgYmVoYXZpb3VyIG9mIGZ1bm5lbAoKMjAxMS0wMy0yOSAxMTowODo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZ1bm5lbC5jOgoJICBmdW5uZWw6IFNlbmQgYSBuZXdzZWdtZW50IGV2ZW50IGFmdGVyIGZsdXNoLXN0b3AKCjIwMTEtMDMtMjkgMTE6MDc6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSAgZnVubmVsOiBTb21lIHJhbmRvbSBjbGVhbnVwCgoyMDExLTAzLTI5IDEwOjU2OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZnVubmVsLmM6CgkgIGZ1bm5lbDogVXNlIGEgR3N0UGFkIHN1YmNsYXNzIGZvciB0aGUgc2lua3BhZHMgaW5zdGVhZCBvZiB1c2luZyB0aGUgcGFkJ3MgZWxlbWVudCBwcml2YXRlIGRhdGEKCjIwMTEtMDMtMjkgMTA6NDI6MzEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLWRvY3Muc2dtbDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zdGF0aWNlbGVtZW50cy54bWw6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Z1bm5lbC5jOgoJICBmdW5uZWw6IEludGVncmF0ZSBpbnRvIHRoZSBidWlsZCBzeXN0ZW0gYW5kIHJlbmFtZSB0aGUgdHlwZXMKCjIwMTEtMDMtMjkgMTA6Mzk6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmdW5uZWwuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZnVubmVsLmM6CgkgIGZ1bm5lbDogSW1wb3J0IGZ1bm5lbCBlbGVtZW50IGZyb20gZmFyc2lnaHQyCgoyMDExLTAzLTI5IDExOjA3OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtb3JlIGJ1ZmZlciB1cGRhdGVzCgoyMDExLTAzLTI4IDIwOjIwOjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzCgoyMDExLTAzLTI4IDIwOjExOjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMS1mZG8KCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0LmMKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jCgoyMDExLTAzLTI4IDE5OjE5OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBidWZmZXI6IGZpeCBzdWJidWZmZXJzCgoyMDExLTAzLTI4IDE2OjQwOjI0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGltcGxlbWV0IHRyaW0gYW5kIHNldF9zaXplCgoyMDExLTAzLTI4IDE1OjUyOjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVyOiBtb3JlIGZpeGVzCgoyMDExLTAzLTI4IDEwOjI4OjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgYnVmZmVyOiBhZGQgbW9yZSBtZXRob2RzCgoyMDExLTAzLTI0IDIxOjIxOjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IGFkZCBjbGFzcyBpbml0CgoyMDExLTAzLTI0IDIxOjE4OjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcjogZml4IHJlbWFpbmluZyB1bml0IHRlc3RzCgoyMDExLTAzLTI0IDIwOjA5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogZml4IHVuaXQgdGVzdAoKMjAxMS0wMy0yNCAxMzowMTowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgbWVtb3J5OiByZW1vdmUgbWVtb3J5IG1ldGFkYXRhIGFnYWluCgoyMDExLTAzLTI0IDExOjQ5OjQ2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBtZW1vcnk6IG1vcmUgZml4ZXMKCSAgQXV0b21hdGljYWxseSBtYWtlIHRoZSBtZW1vcnkgb2YgYSBidWZmZXIgd3JpdGFibGUgd2hlbiB0aGUgYnVmZmVyIGlzIHdyaXRhYmxlCgkgIGFuZCB0aGUgbWVtb3J5IGlzIGFza2VkIHRvIG1hcHBlZCBXUklURS4KCSAgQWRkIGRvY3MKCjIwMTEtMDMtMjMgMjA6NTI6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIG1lbW9yeTogbW9yZSB3b3JrIG9uIGltcGxlbWVudGluZyBidWZmZXIgbWVtb3J5CgoyMDExLTAzLTIyIDIwOjUxOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBtZW1vcnk6IG1vcmUgd29yayBvbiBwb3J0aW5nIHRoZSB1bml0IHRlc3RzCgoyMDExLTAzLTIxIDE5OjE1OjI3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1ldGEuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgdGVzdHM6IG1ha2Ugc29tZSB0ZXN0cyBjb21waWxlCgoyMDExLTAzLTIxIDE4OjEzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyL2FkYXB0ZXJfdGVzdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIG1lbW9yeTogcG9ydCBjb2RlIHRvIG5ldyBidWZmZXIgZGF0YSBBUEkKCjIwMTEtMDMtMjEgMTM6MDc6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgbWVtb3J5OiBtb3JlIGZpeGVzCgkgIEZpeCBzcGFuIGFuZCBpc19zcGFuCgkgIEltcGxlbWVudCBidWZmZXIgbWVtb3J5CgoyMDExLTAzLTIxIDA5OjUxOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgV0lQIHVzZSBtZW1vcnkgaW4gYnVmZmVyCgoyMDExLTAzLTIwIDExOjQyOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5jOgoJKiBnc3QvZ3N0bWVtb3J5Lmg6CgkgIG1lbW9yeTogbW9yZSBpbXByb3ZlbWVudHMKCjIwMTEtMDMtMTkgMTA6NDU6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBtb3JlIG1lbW9yeSBpbXByb3ZlbWVudHMKCjIwMTEtMDMtMTggMjE6NDU6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgbW9yZSBtZW1vcnkgb3BlcmF0aW9ucwoKMjAxMS0wMy0xOCAxOToyODoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0bWVtb3J5LmM6CgkqIGdzdC9nc3RtZW1vcnkuaDoKCSAgbWVtb3J5OiBhZGQgbWVtb3J5IGltcGxlbWVudGF0aW9uCgoyMDExLTAzLTE4IDE4OjM1OjQyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lbW9yeS5oOgoJICBtZW1vcnk6IGFkZCBBUEkgZm9yIGhhbmRsaW5nIG1lbW9yeSBibG9ja3MKCSAgQWRkcyBzb21lIEFQSSB0byBoYW5kbGUgbWVtb3J5IGJsb2Nrcy4KCjIwMTEtMDMtMDggMTg6MTg6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWV0YS5oOgoJICBtZXRhOiBmaXggZG9jcwoKMjAxMS0wMy0yOCAyMToyMTowMCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBSZXR1cm4gRkFMU0UgaWYgd2UgZG9uJ3QgaGFuZGxlIGFuIGV2ZW50CgkgIGJhc2VzcmMncyBkZWZhdWx0IGV2ZW50IGhhbmRsZXIgcmV0dXJucyBUUlVFIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUKCSAgZXZlbnQgaXMgaGFuZGxlZCBvciBub3QuIFRoaXMgZml4ZXMgdGhlIGhhbmRsZXIgdG8gY29uZm9ybSB3aXRoIHRoZQoJICBleHBlY3RlZCBiZWhhdmlvdXIgKHdoaWNoIGlzIHRvIG9ubHkgcmV0dXJuIFRSVUUgd2hlbiB0aGUgZXZlbnQgaGFzCgkgIGFjdHVhbGx5IGJlbm4gaGFuZGxlZCkuIGdzdF9iaW5fZG9fbGF0ZW5jeV9mdW5jKCkgZGVwZW5kZWQgb24gdGhpcwoJICAoaW5jb3JyZWN0KSBiZWhhdmlvdXIsIGFuZCBpcyBub3cgbW9kaWZpZWQgYXMgd2VsbC4KCSAgKFJlbWFpbmluZyAxLWxpbmVyIGNoYW5nZSBpbiBnc3RiYXNlc3JjLmMgaXMgdG8ga2VlcCBnc3QtaW5kZW50IGhhcHB5KQoKMjAxMS0wMy0yNSAyMjowODo0MSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE5M2I3MTcgdG8gMWNjYmUwOQoKMjAxMS0wMy0yNSAxNDo1NTozOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBiNzdlMmJmIHRvIDE5M2I3MTcKCjIwMTEtMDMtMjUgMDk6Mjc6NTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkODgxNGI2IHRvIGI3N2UyYmYKCjIwMTEtMDMtMjUgMDg6NTk6MzcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA2YWFhMjg2IHRvIGQ4ODE0YjYKCjIwMTEtMDMtMjQgMTg6NDg6NDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmFlYzZiOSB0byA2YWFhMjg2CgoyMDExLTAzLTI0IDE4OjI3OjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIGRvY3M6IGZpeCBzb21lIGd0ay1kb2Mgd2FybmluZ3MKCSAgRG9jdW1lbnQgdGhlIHF1ZXVlIGxlYWt5IGVudW1zLgoKMjAxMS0wMy0yNCAxODoyNTowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzZXQgbWF4IHZhbHVlIGZvciB0byB0aGUgbWF0Y2hpbmcgb25lIGZvciB0aGUgZGF0YXR5cGUKCSAgVGhlIHByb3BlcnR5IGlzIGd1aW50NjQsIHNvIHVzZSBHX01BWFVJTlQ2NCBpbnN0ZWFkIG9mIEdfTUFYVUlOVC4KCjIwMTEtMDMtMjQgMTM6MjI6NTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgZG9jczogY2xlYW51cCBhbmQgeHJlZiBmaXhlcwoJICBEZWFsIHdpdGggdGhlIGhpbnRzIGZyb20gZ3RrLWRvYyBhbmQgZml4IHRoZSB4cmVmcy4gQXBwbHkgYSB3b3JrLWFyb3VuZCBmb3IgKCkKCSAgcHJlY2VkZW5jZSBvdmVyIEAuIE1vdmUgIk1UIFNhZmUiIHRleHQgdG8gZG9jIGJvZHkgaW4gbWFueSBwbGFjZXMuIFRyaW0gZW9sCgkgIHdoaXRlc3BhY2VzLgoKMjAxMS0wMy0yMyAxNjo0MjoyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcHJpbnQgZmxvdyByZXR1cm4gYXMgYSBuYW1lIGluIGRlYnVnIGxvZwoKMjAxMS0wMy0yMyAxNzoxMzo1OCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGRvY3M6IGRvIHhyZWZzIGZvciBub24gaW5zdGFsbGVkIGJvb2tzIHRvbwoJICBHZXQgdGhlIHhyZWZzIGZyb20gdGhlIGJ1aWxkZGlyIGZvciB0aGUgYm9va3MgaW4gdGhlIHNhbWUgcGFja2FnZXMuIFRoaXMgZml4ZXMKCSAgdGhlIGNyb3NzIHJlZmVyZW5jZXMgaWYgb25lIGRvZXMgbm90IGhhdmUgdGhlIGRvY3MgYWxyZWFkeSBpbnN0YWxsZWQuCgoyMDEwLTA0LTE5IDIwOjM5OjUzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IEtlZXAgZG93bnN0cmVhbSBjYXBzIG9yZGVyIHdoZW4gZml4YXRpbmcKCSAgVGhpcyBhbGxvd3MgdXNlIHRvIHVzZSB0aGUgZmlyc3QgaW50ZXJzZWN0aW5nIGZvcm1hdCBwcmVmZXJlZCBieSBkb3duc3RyZWFtLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MDQ1CgoyMDEwLTA0LTE5IDIwOjQwOjU2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJldGFpbiBjYXBzIG9yZGVyIHdoZW4gZ2V0dGluZyBjYXBzCgkgIElmIHRoZSBlbGVtZW50IGdhdmUgdXMgY2FwcyBpbiBhIHNwZWNpZmljIG9yZGVyLCBsZXQncyByZXRhaW4gdGhhdAoJICBieSBpbnRlcnNlY3RpbmcgYWdhaW5zdCB0aGUgdGVtcGxhdGUgYnV0IHJldGFpbmluZyB0aGUgb3JkZXIgZ2l2ZW4KCSAgYnkgdGhlIGVsZW1lbnQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTcwNDUKCjIwMTEtMDItMjUgMTA6MjU6MjYgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGNhcHM6IFRlc3RzIGZvciB0aGUgbmV3IGNhcHMgaW50ZXJzZWN0aW9uIG1vZGUKCSAgQWRkcyB0ZXN0IGNhc2VzIGZvciB0aGUgY2FwcyAnZmlyc3QnIGludGVyc2VjdCBtb2RlCgkgIEFkZHMgYW5vdGhlciB0ZXN0IGZvciB0aGUgJ3ppZ3phZycgbW9kZQoJICBGaXhlcyAjNjE3MDQ1CgoyMDExLTAyLTI1IDA4OjUwOjEyIC0wMzAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0Y2FwczogbmV3IEFQSSA6IGdzdF9jYXBzX2ludGVyc2VjdF9mdWxsCgkgIEp1c3QgbGlrZSBnc3RfY2Fwc19pbnRlcnNlY3QsIGJ1dCBhZGRzIGEgbmV3IHBhcmFtZXRlciAnbW9kZScKCSAgdGhhdCBhbGxvd3Mgc2VsZWN0aW5nIHRoZSBpbnRlcnNlY3Rpb24gYWxnb3JpdGhtIHRvIHVzZS4KCSAgQ3VycmVudGx5IHdlIGhhdmUgR1NUX0NBUFNfSU5URVJTRUNUX01PREVfWklHX1pBRyAoZGVmYXVsdCkgYW5kCgkgIEdTVF9DQVBTX0lOVEVSU0VDVF9NT0RFX0ZJUlNULgoJICBBUEk6IGdzdF9jYXBzX2ludGVyc2VjdF9mdWxsCgkgIEFQSTogR3N0Q2Fwc0ludGVyc2VjdE1vZGUKCSAgQVBJOiBHU1RfQ0FQU19JTlRFUlNFQ1RfTU9ERV9aSUdfWkFHCgkgIEFQSTogR1NUX0NBUFNfSU5URVJTRUNUX01PREVfRklSU1QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzA0NQoKMjAxMS0wMy0xMiAxNzowMTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dzdGxpYnNjcHAuY2M6CgkgIHRlc3RzOiBhZGQgbGlic2NwcCB1bml0IHRlc3QgdG8gbWFrZSBzdXJlIGcrKyBsaWtlcyBvdXIgbGlicmFyeSBoZWFkZXJzCgoyMDExLTAzLTEyIDE2OjU4OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXJlYWRlciwgYnl0ZXdyaXRlcjogZml4IHVwIGlubGluZSBmdW5jdGlvbnMgdG8gbWFrZSBnKysgaGFwcHkKCSAgZ3N0Ynl0ZXJlYWRlci5oOiBJbiBmdW5jdGlvbiDigJhndWludDgqIGdzdF9ieXRlX3JlYWRlcl9kdXBfZGF0YV91bmNoZWNrZWQoR3N0Qnl0ZVJlYWRlciosIGd1aW50KeKAmToKCSAgZ3N0Ynl0ZXJlYWRlci5oOjI0OTo3NTogZXJyb3I6IGludmFsaWQgY29udmVyc2lvbiBmcm9tIOKAmHZvaWQq4oCZIHRvIOKAmGd1aW50OCrigJkKCSAgZ3N0Ynl0ZXdyaXRlci5oOiBJbiBmdW5jdGlvbiDigJhnYm9vbGVhbiBfZ3N0X2J5dGVfd3JpdGVyX2Vuc3VyZV9mcmVlX3NwYWNlX2lubGluZShHc3RCeXRlV3JpdGVyKiwgZ3VpbnQp4oCZOgoJICBnc3RieXRld3JpdGVyLmg6MTk2Ojc1OiBlcnJvcjogaW52YWxpZCBjb252ZXJzaW9uIGZyb20g4oCYdm9pZCrigJkgdG8g4oCYZ3VpbnQ4KuKAmQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1NTk1CgoyMDExLTAzLTIyIDE2OjI2OjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGdzdGVsZW1lbnQ6IEZpeCB0eXBvIGluIHRoZSBkb2NzCgkgIEdTVF9FTEVNRU5UX0lORk8gd2lsbCBwb3N0IGEgSU5GTyBtZXNzYWdlLCBub3QgYSBXQVJOSU5HCgoyMDExLTAzLTE4IDA4OjIyOjIzIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiBSZW1vdmluZyB1bnVzZWQgZGVidWcgY2F0ZWdvcnkKCSAgdGFnc2V0dGVyJ3MgZGVidWcgY2F0ZWdvcnkgaGFkIGEgdHlwbyBhbmQgd2FzIHVudXNlZC4gUmVtb3ZpbmcgaXQuCgoyMDExLTAzLTE4IDE5OjM0OjU3ICswMTAwICBMdWlzIGRlIEJldGhlbmNvdXJ0IDxsdWlzQGRlYmV0aGVuY291cnQuY29tPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbjogd2luZ28gc2lnbmVkIGNvbW1lbnQKCjIwMTEtMDMtMjIgMTE6MDQ6MjAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IERvbid0IGxlYWsgb2JqZWN0cyB3aGVuIGZsdXNoaW5nIGFmdGVyIGRlcXVldWVpbmcgYW5kIGJlZm9yZSBwdXNoaW5nIHRoZSBvYmplY3QKCjIwMTEtMDMtMjEgMTc6NTQ6MTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IFJlYWxseSByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDExLTAzLTIxIDE3OjUyOjEzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogSW5jcmVtZW50IHVuaXF1ZSBpdGVtIGNvdW50ZXIgd2l0aCBhdG9taWMgb3BlcmF0aW9ucwoJICBCZWZvcmUgaXQgd2FzIG9ubHkgcHJvdGVjdGVkIGJ5IHRoZSBzdHJlYW0gbG9jayBidXQgZXZlcnkgcGFkCgkgIGhhcyBpdHMgb3duIHN0cmVhbSBsb2NrLCBtYWtpbmcgdGhlIHByb3RlY3Rpb24gcmF0aGVyIHVzZWxlc3MuCgoyMDExLTAzLTIxIDE3OjE3OjIyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBVbmJsb2NrIGFsbCB3YWl0aW5nIHBhZHMgd2hlbiBzaHV0dGluZyBkb3duCgoyMDExLTAzLTIxIDEyOjM5OjM0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDExLTAzLTIxIDE2OjI4OjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBFeGl0IGxvb3AgZnVuY3Rpb24gaWYgdGhlIHBhZCBpcyBmbHVzaGluZwoJICBGaXhlcyBwb3NzaWJsZSBkZWFkbG9ja3Mgd2hlbiBmbHVzaGluZyBhbiB1bmxpbmtlZCBwYWQgdGhhdCB3YWl0cwoJICBmb3Igb3RoZXIgcGFkcyB0byBhZHZhbmNlLgoKMjAxMS0wMy0xOSAxNzowNjoxMiAtMDUwMCAgSmFzb24gRC4gQ2xpbnRvbiA8bWVAamFzb25jbGludG9uLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgYnVpbGQ6IGZpeCBidWlsZCB3aXRoIC1XZXJyb3Igd2l0aCBHQ0MgNC42LjAKCSAgVGhpcyB0b3VjaGVzIHRocmVlIGFyZWFzIG9mIGNvZGUsIHJlbW92ZXMgdW51c2VkIHZhcmlhYmxlcyBhbmQgZGlzY2FyZHMKCSAgcmV0dXJuIHZhbHVlcyBmcm9tIHR3byBmdW5jdGlvbnMgd2l0aCAodm9pZCkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUyNjcKCjIwMTEtMDMtMTkgMTA6Mzk6MjggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBBZGQgc2luY2UgbWFya2VyIHRvIEdTVF9FVkVOVF9TSU5LX01FU1NBR0UKCjIwMTEtMDMtMTkgMDg6NTU6NTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFN0b3Agd2FpdGluZyBmb3IgYSBwYWQgc3dpdGNoIHdoZW4gdGhlIHBhZCBpcyBmbHVzaGluZwoKMjAxMS0wMy0xOSAwODo1MDowNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogTW92ZSBsb2NraW5nIGFuZCBzaWduYWxsaW5nIG1hY3JvcyBmcm9tIHRoZSBoZWFkZXIgdG8gdGhlIHNvdXJjZSBmaWxlCgoyMDExLTAzLTE3IDIzOjQyOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmg6CgkgIHRhc2s6IGZpeCBHU1RfVEFTS19CUk9BRENBU1QKCSAgU3VycHJpc2luZ2x5IGVub3VnaCwgeW91IGNhbid0ICJicmVhZGNhc3QiIG9uIGEgR0NvbmQuCgkgIFNwb3R0ZWQgYnkgUnVuZSBTw6Z0cmUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUwMjIKCjIwMTEtMDMtMTcgMTQ6MjE6MTcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IEhvbGQgdGhlIHNlbGVjdG9yIGxvY2sgd2hpbGUgcmVhZGluZyBwcm9wZXJ0aWVzIG9mIHRoZSBhY3RpdmUgcGFkCgoyMDExLTAzLTE3IDE0OjEwOjQ5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBNYWtlIHN1cmUgdGhhdCBFT1MgaXMgYWx3YXlzIHNlbnQgZG93bnN0cmVhbSBmb3IgdGhlIGFjdGl2ZSBwYWQKCSAgSXQgY2FuIGhhcHBlbiB0aGF0IHRoZSBjdXJyZW50bHkgYWN0aXZlIHBhZCBnb3QgdGhlIEVPUyBldmVudAoJICBiZWZvcmUgaXQgd2FzIGFjdGl2YXRlZCBhbmQgdGhlIHByZXZpb3VzbHkgYWN0aXZlIHBhZCBnb3QgdGhlCgkgIEVPUyBldmVudCBhZnRlciBpdCB3YXMgZGVhY3RpdmF0ZWQuIEluIHRoYXQgY2FzZSB3ZSBoYXZlIHRvCgkgIHNlbmQgdGhlIEVPUyBldmVudCBmcm9tIGFuIGluYWN0aXZlIHBhZCBkb3duc3RyZWFtLgoKMjAxMS0wMy0xNiAxODoxOToxMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUmV0dXJuIEdTVF9GTE9XX09LIHVudGlsIHRoZSBzZWxlY3RlZCBwYWQgcHVzaGVkIHNvbWV0aGluZyBkb3duc3RyZWFtCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGR1cmluZyBzd2l0Y2hlcyBhdCBubyBwb2ludCBpbiB0aW1lIGFsbCBwYWRzCgkgIGhhdmUgcmV0dXJuZWQgbm90LWxpbmtlZCwgd2hpY2ggY2FuIGhhcHBlbiB3aGVuIHBsYXlpbmcgYW4gYXVkaW8tb25seQoJICBmaWxlIHdpdGggcGxheWJpbjIgYW5kIHN3aXRjaGluZyBiZXR3ZWVuIHRoZSBzdHJlYW1zIGZvciBleGFtcGxlLgoJICBGaXhlcyBidWcgIzY0NDkzNS4KCjIwMTEtMDMtMTcgMTA6NTM6NDkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IFJlbW92ZSBkZXByZWNhdGVkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX3tzaW5rLHNyY31fY2FwcygpCgoyMDExLTAzLTE3IDEwOjUwOjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBnc3QvZ3N0YnVmZmVybGlzdC5jCgoyMDExLTAzLTE2IDEyOjAxOjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBEb2N1bWVudCB0aGF0IHBhZCBibG9ja3Mgb25seSBtYWtlIHNlbnNlIGZvciBzaW5rIHBhZHMgaW4gcHVsbCBtb2RlIGFuZCBzcmMgcGFkcyBpbiBwdXNoIG1vZGUKCSAgU2VlIGJ1ZyAjNjQ0OTA3LgoKMjAxMS0wMy0xNiAxMTo1Mzo1MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IFRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWQgb2YgdGhlIHByb3h5cGFkIGlzIHRoZSBnaG9zdHBhZAoJICBQcmV2aW91c2x5IHdlIHdlcmUgcmV0dXJuaW5nIHRoZSBwZWVycGFkLCB3aGljaCBpcyB0aGUgdGFyZ2V0CgkgIG9mIHRoZSBnaG9zdHBhZC4KCjIwMTEtMDItMjUgMTY6MjA6NDkgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IFVzZSBhIEdRdWV1ZSBpbnN0ZWFkIG9mIGEgR0xpc3QKCSAgQWRkaW5nIGEgYnVmZmVyIHRvIHRoZSBlbmQgb2YgYSBHc3RCdWZmZXJMaXN0IGlzIHN1cHBvc2VkIHRvIGJlIGEgZmFzdAoJICBvcGVyYXRpb24sIGJ1dCBpdCB3YXMgbm90IHNpbmNlIHRoZSBpdGVyYXRvciBkb2VzIG5vdCBhZHZhbmNlIGl0cwoJICBuZXh0cG9pbnRlciB3aGVuIGFkZGluZyBidWZmZXJzIGFuZCBHTGlzdCBkb2VzIG5vdCBoYXZlIGEgdGFpbCBwb2ludGVyLgoJICBVc2luZyBhIEdRdWV1ZSB0byBzdG9yZSB0aGUgYnVmZmVycyBtYWtlcyBpdCBlYXNpZXIgdG8gYWRkIGJ1ZmZlcnMgdG8KCSAgdGhlIGVuZCBvZiB0aGUgbGlzdCBhbmQgdGhpcyBvcGVyYXRpb24gd2lsbCBub3cgYmUgbXVjaCBtb3JlIGVmZmljaWVudC4KCSAgQWRkaW5nIGFuIGVudGlyZSBHTGlzdCBvZiBidWZmZXJzIHVzaW5nCgkgIGdzdF9idWZmZXJfbGlzdF9pdGVyYXRvcl9hZGRfbGlzdCgpIHdpbGwgaG93ZXZlciBoYXZlIHRvIGl0ZXJhdGUgb3ZlcgoJICB0aGUgbGlzdCBiZWluZyBhZGRlZCB0byBiZSBhYmxlIHRvIHVwZGF0ZSB0aGUgdGFpbCBwb2ludGVyIGluIHRoZQoJICBHUXVldWUuCgoyMDExLTAzLTEwIDE3OjQ4OjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXRpbHM6IGZpeCBBQkkgYnJlYWsgd2hlbiBjb21waWxpbmcgZ3N0cmVhbWVyIHdpdGggLURHU1RfRElTQUJMRV9ERVBSRUNBVEVECgkgIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgc2hvdWxkIG9ubHkgYWZmZWN0IHZpc2liaWxpdHkgb2YgZGVjbGFyYXRpb25zIGluIGhlYWRlcnMsCgkgIG5vdCBhY3R1YWxseSByZW1vdmUgc3ltYm9scy4gU2VlIEdpdERldmVsb3Blckd1aWRlbGluZXMgYW5kIERlcHJlY2F0aW5nQVBJCgkgIHBhZ2VzIGluIHdpa2kuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD00MDIxNDEKCjIwMTEtMDMtMTAgMTY6NDY6MDQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBVcGRhdGUgLmRlZiBmaWxlIGZvciBBUEkgYWRkaXRpb24KCjIwMTEtMDMtMTAgMTA6MjU6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTAzLTA5IDE2OjE1OjMzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIHB3ZzogZml4IGVsZW1lbnQgbmFtZSAidmlkZW9kcm9wIiB0byAidmlkZW9yYXRlIgoKMjAxMS0wMy0wOCAxMjoxMTowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHRlc3Q6IGFkZCB0ZXN0cyBmb3IgbmV3IGVsZW1lbnRfZmFjdG9yeSBhcGkuCgoyMDEwLTA2LTIzIDIyOjAwOjA0ICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dXRpbHM6IHJlcGxhY2UgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fe3Npbmssc3JjfV9jYXBzCgkgIEFkZCBuZXcgZnVuY3Rpb25zIHRvIGNsYXJpZnkgaG93IHRoZSBjYXBzIGFyZSBjb21wYXJlZCB0byB0aGUgdGVtcGxhdGUgY2FwcyBvZgoJICB0aGUgZWxlbWVudCBmYWN0b3J5LiBJbXByb3ZlIHRoZSBkb2NzIHRvIHBvaW50IG91dCB0aGUgZGlmZmVyZW5jZS4KCSAgRGVwcmVjYXRlOiBnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl97c3JjfHNpbmt9X2NhcHMKCSAgQVBJOiBhZGQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fe3NyY3xzaW5rfV97YW55fGFsbH1fY2FwcHMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTQwMjE0MQoKMjAxMS0wMy0wNyAyMzoxMzo1NiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IGFkZCBhIHVuaXQgdGVzdCBmb3IgZ3N0X2NhcHNfbmV3X3NpbXBsZQoJICBBZGQgYSB0ZXN0IGZvciB0aGUgY3Jhc2ggaW4gYnVnICM2NDIyNzEuCgoyMDExLTAzLTA4IDE4OjA1OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWV0YS50eHQ6CgkgIGRvY3M6IHJlbmFtZSBkcmFmdCB0byBvZmZpY2lhbCBkb2MKCjIwMTEtMDMtMDggMTY6NTg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIG1ldGE6IGltcGxlbWVudCB0cmFuc2Zvcm0gZnVuY3Rpb24KCSAgUmVwbGFjZSBzdWJidWZmZXIgYW5kIGNvcHkgdm1ldGhvZHMgYnkgYSBtb3JlIGdlbmVyaWMgdHJhbnNmb3JtIGZ1bmN0aW9uIHRoYXQKCSAgY2FuIHRoZW4gYmUgcGFyYW1ldHJpc2VkIGJ5IHRyYW5zZm9ybSBzcGVjaWZpYyBkYXRhLiBUaGlzIHNob3VsZCBhbGxvdyB1cyB0bwoJICBpbXBsZW1lbnQgbWFrZS13cml0YWJsZSBhbmQgbW9yZSBmdXR1cmUgdHJhbnNmb3JtIGZ1bmN0aW9ucy4KCjIwMTEtMDMtMDggMTc6MDY6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3RlcicgaW50byAwLjExCgoyMDExLTAzLTA4IDExOjU1OjI5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgdGVzdHM6IGFkZCB0ZXN0IHRvIGNyZWF0ZSBhIGZhY3RvcnkKCjIwMTEtMDMtMDggMTA6MzY6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIHRlc3RzOiBzdGFydCBhIG5ldyB0ZXN0IHN1aXRlIGZvciBlbGVtZW50IGZhY3RvcmllcwoJICBNb3ZlIG9uZSB0ZXN0IGZyb20gZ3N0ZWxlbWVudCBzdWl0ZS4KCjIwMTEtMDMtMDggMTE6MzQ6MTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogYWRkIG1pc3NpbmcgOyBpbiBleGFtcGxlIChhbmQgdHJpbSB3aGl0ZXNwYWNlKQoKMjAxMS0wMy0wOCAwOTo1ODo1NSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGdzdF9zdHJ1Y3R1cmVfZW1wdHlfbmV3KCkgZG9lcyBiZXR0ZXIgZXJyb3IgY2hlY2tpbmcKCSAgTm8gbmVlZCB0byBjaGVjayBmb3IgbWVkaWFfdHlwZSE9TlVMTCBhcyB0aGUgZnVuY3Rpb24gd2UgY2FsbCB0aGF0IGFjdHVhbCBjcmVhdGUKCSAgdGhlIHN0cnVjdHVyZSBkb2VzIGEgZnVsbCBjaGVjayBhbnl3YXkuCgoyMDExLTAzLTA4IDEwOjA2OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGNhcHMsc3RydWN0dXJlOiB0cmltIHRyYWlsaW5nIHdoaXRlc3BhY2UKCjIwMTEtMDMtMDQgMDg6Mjg6MjUgKzEwMDAgIEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuQGQxNG4ub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZG9uJ3QgY3JlYXRlIGJyb2tlbiBjYXBzIGZvciBpbnZhbGlkIG1lZGlhIHR5cGVzCgkgIENoZWNrIGlmIHN0cnVjdHVyZSBoYXMgYmVlbiBjcmVhdGVkIGJlZm9yZSBhcHBlbmRpbmcgaXQgdG8gdGhlIGNhcHMuIEZyZWUgdGhlCgkgIGNhcHMgaW4gdGhlIGNhc2Ugb2YgYW4gZXJyb3IgdG8gbm90IGNvbmNlYWwgaXQgYmUgcmV0dXJuaW5nIGVtcHR5IGNhcHMuCgkgIEZpeGVzICM2NDIyNzEKCjIwMTEtMDMtMDcgMTY6MjE6NDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICBleGFtcGxlczogdXBkYXRlIGhlbGxvIHdvcmxkIGV4YW1wbGUKCSAgT3VyIGhlbGxvd29ybGQgZXhhbXBsZSB0aGF0dyBlIHJlZmVyZW5jZSBmcm9tIHRoZSBtYW51YWwgaGFzIGJlZW4gYSBiaXQKCSAgY29tcGxpY2F0ZWQgdG8gc2VydmUgYSBmaXJzdCBjb250YWN0IHdpdGggZ3N0cmVhbWVyLiBTaW5jZSB3ZSBoYXZlIGFuZAoJICBwcm9tb3RlIHBsYXliaW4yIGFzIGEgcGxheWJhY2sgYXBpIHVzZSBpdCBoZXJlLgoJICBCYXNlZCBvbiB3b3JrIGZyb20gTWF0aGlhcyBIYXNzZWxtYW5uIDxtYXRoaWFzLmhhc3NlbG1hbm5AZ214LmRlPgoJICBGaXhlcyAjNDI0MTQzCgoyMDExLTAzLTA0IDE5OjAyOjMzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBtZXRhZGF0YSBkcmFmdAoKMjAxMS0wMy0wNCAxODoxMToxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IHJlbW92ZSBGSVhNRQoJICBOb3cgdGhhdCB3ZSBkb24ndCBzdWJjbGFzcyBidWZmZXJzIGFueW1vcmUsIHRoZSBGSVhNRSBhYm91dCBsaW1pdGVkCgkgIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGNvcHkgZnVuY3Rpb24gaXMgaXJyZWxldmFudC4KCjIwMTEtMDMtMDQgMTc6NDM6MjQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogYWRkIGZsYWcgcmVnaXN0cmF0aW9uCgoyMDExLTAzLTA0IDE3OjI1OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBwYWQ6IG1vcmUgcHJlcm9sbCBsb2NrIHRvIGJhc2VzaW5rCgkgIE1vdmUgdGhlIHByZXJvbGwgbG9jayB0byBiYXNlc2luayB3aGVyZSBpdCBiZWxvbmdzLgoKMjAxMS0wMy0wNCAxNjowNTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVycG9vbCBkcmFmdAoKMjAxMS0wMy0wNCAxMjowNjoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSAgYnVmZmVycG9vbDogYWRkIG1vcmUgZGVidWcgaW5mbwoKMjAxMS0wMy0wMyAxODozODozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBkZWJ1ZwoKMjAxMS0wMy0wMyAxODoyMTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBzb21lIG1vcmUgZGVidWcgaW5mbwoKMjAxMS0wMy0wMyAxNjozMTo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgYnVmZmVycG9vbDogYWRkIGNhcHMgdG8gdGhlIGNvbmZpZwoJICBBZGQgdGhlIGNhcHMgdG8gdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBvZiB0aGUgcG9vbC4KCSAgSW5pdGlhbGl6ZSB0aGUgcHJpdmF0ZSBkYXRhCgoyMDExLTAzLTAyIDExOjU3OjQwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDExLTAzLTAyIDExOjU3OjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbGVhc2UgYnVmZmVyIHRvIHBvb2wgaW4gZGlzcG9zZQoJICBVc2UgdGhlIGRpc3Bvc2UgbWV0aG9kIHRvIHJlbGVhc2UgdGhlIGJ1ZmZlciB0byB0aGUgcG9vbCB3aGVuIGl0IGlzIGNvbmZpZ3VyZWQuCgoyMDExLTAyLTIyIDEyOjM1OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcjogYWRkIHBvb2wgdG8gYnVmZmVyIHN0cnVjdHVyZQoJICBLZWVwIGEgcG9pbnRlciB0byB0aGUgYnVmZmVycG9vbC4gUmVsZWFzZSB0aGUgYnVmZmVyIHRvIHRoZSBwb29sIHdoZW4KCSAgZmluYWxpemluZy4gTWFrZSBzdXJlIHRoZSBwb29sIHNldHMgaXRzZWxmIGFzIHRoZSBwb29sIG1lbWJlciBvZiBidWZmZXJzIHRoYXQgaXQKCSAgc2VuZHMgb3V0LgoKMjAxMS0wMi0yMiAxMjozNTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBhZGQgcG9vbCBmbGFncyB0eXBlCgoyMDExLTAyLTIyIDExOjA1OjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRvY3M6IHVwZGF0ZSBidWZmZXJwb29sIGRvY3MKCjIwMTEtMDItMjEgMTg6NDM6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBSZWZhY3RvciBzdG9wcGluZyBvZiB0aGUgcG9vbAoJICBNb3ZlIHNvbWUgbWV0aG9kcyBhcm91bmQuCgkgIE1ha2Ugc3VyZSB3ZSBjaGVjayBmb3IgY29uZmlnIHBhcnNpbmcgZXJyb3JzLgoJICBJbmNyZW1lbnQgdGhlIG91dHN0YW5kaW5nIGJ1ZmZlcnMgYmVmb3JlIGNhbGxpbmcgYWNxdWlyZSBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlCgkgIHRoYXQgc2V0X2FjdGl2ZSgpIGRvZXNuJ3QgZnJlZSB0aGUgcG9vbCBmcm9tIHVuZGVyIHVzLgoKMjAxMS0wMi0yMSAxNzozMzozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IFJld29yayBidWZmZXIgbWFuYWdlbWVudCBhIGxpdHRsZQoJICBBZGQgc3RhcnQvc3RvcCBtZXRob2RzIHRvIGFsbG93IGZvciBidWxrIGFsbG9jYXRpb24gb2YgYnVmZmVycy4KCSAgRnJlZSBidWZmZXJzIG9ubHkgd2hlbiBhbGwgb3V0c3RhbmRpbmcgYnVmZmVycyByZXR1cm5lZC4KCSAgTWFrZSB0aGluZ3MgbW9yZSB0aHJlYWRzYWZlIHdydCBmbHVzaGluZyBhbmQgc3RhcnRpbmcvc3RvcHBpbmcgYnkKCSAga2VlcGluZyB0cmFjayBvZiBzdGFydCBhbmQgc3RvcCBtZXRob2QgY2FsbHMuCgoyMDExLTAyLTIxIDEyOjE4OjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbWVtb3J5IG1hbmFnZW1lbnQgY2xlYW51cHMKCSAgVXNlIGEgbG9jayB0byBwcm90ZWN0IGNvbmN1cnJlY3QgZXhlY3V0aW9uIG9mIHNldF9jb25maWcgYW5kIHNldF9hY3RpdmUuCgkgIFN0YXJ0IGZyZWVpbmcgdGhlIGJ1ZmZlcnMgd2hlbiBmbHVzaGluZyBhbmQgYWxsIGJ1ZmZlcnMgYXJlIHJldHVybmVkIHRvIHRoZQoJICBwb29sLgoJICBNYWtlIGEgY29weSBvZiB0aGUgY29uZmlnIHRvIGF2b2lkIGNyYXNoaW5nIHdpdGggY29uY3VycmVudCBhY2Nlc3MuCgoyMDExLTAyLTE4IDE2OjM1OjQ2ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVmZmVycG9vbC5jOgoJICBidWZmZXJwb29sOiBhbHNvIGFsbG93IE5VTEwgcGFyYW1zIGluIF9hY3F1aXJlCgoyMDExLTAyLTE4IDE2OjE1OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogbW9yZSB1cGRhdGVzCgkgIEtlZXAgdHJhY2sgaWYgdGhlIGJ1ZmZlciBpcyBjb25maWd1cmVkIGFuZCBibG9jayBhY3RpdmF0aW9uIHdoZW4gbm90IGNvbmZpZ3VyZWQKCSAgeWV0LgoJICBLZWVwIHRyYWNrIG9mIG91dHN0YW5kaW5nIGJ1ZmZlcnMgYW5kIGRpc2FsbG93IGNvbmZpZ3VyYXRpb24gd2hlbiBub3QgYWxsCgkgIGJ1ZmZlcnMgYXJlIHJldHVybmVkIHRvIHRoZSBwb29sLiBXZSBuZWVkIHRvIGRvIHRoaXMgb3IgZWxzZSB3ZSBtaWdodCBlbmQgdXAKCSAgd2l0aCB3cm9uZyBidWZmZXJzIGluIHRoZSBwb29sLgoJICBBZGQgcmV0dXJuIHZhbHVlIHRvIHNldF9hY3RpdmUuCgkgIFNtYWxsIGNsZWFudXBzLiBGaXggZmluYWxpemUuCgoyMDExLTAyLTE4IDEyOjUwOjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuYzoKCSogZ3N0L2dzdGJ1ZmZlcnBvb2wuaDoKCSAgYnVmZmVycG9vbDogcmVuYW1lICdmbHVzaGluZycgdG8gJ2FjdGl2ZScKCSAgUmVuYW1lIHRoZSBmbHVzaGluZyB2YXJpYWJsZSBhbmQgbWV0aG9kcyB0byBhY3RpdmUgdG8gYmV0dGVyIG1hdGNoCgkgIHRoZSBvdGhlciBnc3RyZWFtZXIgbmFtZSBjb252ZW50aW9ucwoKMjAxMS0wMi0xNyAxODozNzoxOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkgIGJ1ZmZlcnBvb2w6IHByZWFsbG9jIHdoZW4gdW5zZXQgZmx1c2hpbmcKCSAgQWNjb3JkaW5nIHRvIHRoZSBkZXNpZ24gZG9jIHdlIG5lZWQgdG8gcHJlYWxsb2MgYnVmZmVycyB3aGVuIHdlIHVuc2V0IHRoZQoJICBmbHVzaGluZyBzdGF0ZSwgbm90IGluIHNldF9jb25maWcuCgkgIFNldCB0aGUgZmx1c2hpbmcgc3RhdGUgYmV0dGVyLgoKMjAxMS0wMi0xNyAxNzoyOToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgYnVmZmVycG9vbDogdXNlIHF1YXJrcyBmb3Igc3RydWN0dXJlIGZpZWxkcwoKMjAxMS0wMi0xNyAxNjo0Njo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJwb29sOiB1c2UgR3N0U3RydWN0dXJlIHRvIGNvbmZpZ3VyZSB0aGUgcG9vbAoJICBVc2UgYSBHc3RTdHJ1Y3R1cmUgdG8gcHJvdmlkZSB0aGUgcG9vbCB3aXRoIHRoZSByaWdodCBjb25maWd1cmF0aW9uLiBBbHNvCgkgIHByb3ZpZGUgc29tZSBoZWxwZXIgbWV0aG9kcyB0byBjb25maWd1cmUgc3VjaCBhIHN0cnVjdHVyZS4KCSAgZG9uJ3QgcGFzcyB0aGUgY29uZmlnIGluIGFsbG9jX2J1ZmZlciwgcG9vbCBpbXBsZW1lbnRhdGlvbiB3aWxsIGFscmVhZHkgaGF2ZQoJICBwYXJzZWQgaXQgZHVyaW5nIHNldF9jb25maWcuCgkgIFVwZGF0ZSBkZWZzCgoyMDExLTAyLTE3IDEyOjU1OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGZpeCBkZWZzCgoyMDEwLTExLTAyIDE4OjU2OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RidWZmZXJwb29sLmM6CgkqIGdzdC9nc3RidWZmZXJwb29sLmg6CgkgIGJ1ZmZlcnBvb2w6IGFkZCBzaW1wbGUgYnVmZmVycG9vbCBoZWxwZXIgb2JqZWN0CgoyMDExLTAzLTAyIDExOjA4OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoJICBDb25mbGljdHM6CgkgIGdzdC9nc3RyZWdpc3RyeS5oCgoyMDExLTAzLTAyIDEzOjU1OjM2ICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dpdC54bWw6CgkgIGZhcTogTWlub3IgdXBkYXRlIHRvIHNzaCBrZXkgZ2VuZXJhdGlvbiBjb21tYW5kcwoJICBmZC5vIHJlcXVpcmVzIFJTQSBrZXlzLCBhbmQgaW4gZ2VuZXJhbCwgdXNlcnMgd291bGQgcHJvYmFibHkgd2FudCB0bwoJICBtYWtlIGEgcGVyLXNlcnZlciBrZXkgZmlsZSByYXRoZXIgdGhhbiBvdmVyd3JpdGUgaWRfcnNhLCBpZF9yc2EucHViLgoKMjAxMS0wMi0yOCAxODo0Mzo0MSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogZXhwb3J0IHBsdWdpbiBkZXNjcmlwdGlvbiBtb3JlIHBsYXRmb3JtIGluZGVwZW5kZW50CgkgIEZpeGVzICM2NDI1MDQuCgoyMDExLTAyLTI4IDE4OjMyOjA3ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMWRlN2Y2YSB0byA2YWVjNmI5CgoyMDExLTAyLTI4IDE1OjAxOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgZG9jczogdHlwbyBmaXhlcwoJICBjb252aW5pZW5jZSAtPiBjb252ZW5pZW5jZQoKMjAxMS0wMi0yOCAxNDo1NjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICB0b29sczogcHJpbnQgInBhZC1hZGRlZCIsICJwYWQtcmVtb3ZlZCIgYW5kICJuby1tb3JlLXBhZHMiIHNpZ25hbHMgZm9yIGVsZW1lbnRzIHdpdGggc29tZXRpbWVzIHBhZHMKCSAgSXQncyBvZnRlbiBub3Qgb2J2aW91cyB0byBwZW9wbGUgdGhhdCBlbGVtZW50cyBsaWtlIGUuZy4gdXJpZGVjb2RlYmluCgkgIChvciBkZW11eGVycykgYXV0b21hdGljYWxseSBzdXBwb3J0IHRoZSBzdGFuZGFyZCBzaWduYWxzIG9mIHRoZQoJICBHc3RFbGVtZW50IGNsYXNzLCBzbyBsZXQncyBwcmludCB0aGUgdXNlZnVsIHBhZC1yZWxhdGVkIG9uZXMgZm9yCgkgIGVsZW1lbnRzIHdpdGggc29tZXRpbWVzIHBhZHMuCgoyMDExLTAyLTI4IDE2OjI3OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZG9jczogc21hbGwgdXBkYXRlcyBhcyBzdWdnZXN0ZWQgb24gYSBibG9nCgkgIExpbmsgZnJvbSBjb252aW5pZW5jZSBhcGkgdG8gdGhlIHVuZGVybHlpbmcgYXBpLgoKMjAxMS0wMi0yOCAxMDowNTo0NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IGFkZCB0aW1pbmcgbWV0YWRhdGEKCjIwMTEtMDItMjggMTA6MDU6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICBtaW5pb2JqZWN0OiBmaXggd2hpdGVzcGFjZQoKMjAxMS0wMi0yOCAwOTozOTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkgIHRlc3RzOiBhZGQgbWVtb3J5IHVuaXQgdGVzdAoKMjAxMS0wMi0yNyAyMDo1NDo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkgIG1ldGE6IHNpbXBsaWZ5IGEgYml0CgoyMDExLTAyLTI3IDIwOjQyOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1ldGEuYzoKCSogZ3N0L2dzdG1ldGEuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1ldGE6IGFkZCBkZWZhdWx0IG1lbW9yeSBtZXRhZGF0YQoJICBBZGQgYSBtZXRhZGF0YSBpbXBsZW1lbnRhdGlvbiBmb3Igbm9ybWFsbCBtYWxsb2NlZCBtZW1vcnkuCgoyMDExLTAyLTI3IDE5OjQwOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBtZXRhOiBzZXBhcmF0ZSBhZGQgYW5kIGdldCBtZXRob2RzCgkgIE1ha2Ugc2VwYXJhdGUgYXBpIGZvciBnZXR0aW5nIGFuZCBhZGRpbmcgbWV0YWRhdGEuIFRoaXMgYWxsb3dzIHVzIHRvIHBhc3MgZXh0cmEKCSAgcGFyYW1ldGVycyB0byB0aGUgaW5pdCBmdW5jdGlvbnMgd2hlbiBjcmVhdGluZyBtZXRhZGF0YSwgd2hpY2ggaXMgbmVlZGVkIGZvcgoJICBzcGVjaWZpYyBBUEkgaW1wbGVtZW50YXRpb25zLgoJICBBZGQgYmVnaW5uaW5ncyBvZiBtZW1vcnkgbWV0YWRhdGEuCgoyMDExLTAyLTI3IDEyOjIxOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkb2NzOiB1cGRhdGUgZG9jcyBhbmQgZGVmcwoKMjAxMS0wMi0yNiAxODoxNDozNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbW92ZSB1c2VsZXNzIG1ldGhvZAoJICBSZW1vdmUgdGhlIG1ldGhvZCB0byByZXRyaWV2ZSBtZXRhZGF0YSBieSBhcGkuIE9uZSB3aWxsIGFsd2F5cyB1c2UgdGhlCgkgIEdzdE1ldGFJbmZvIHRvIGdldCBtZXRhZGF0YS4KCjIwMTEtMDItMjUgMTY6MzE6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgYnVmZmVyOiByZW1vdmUgb3duZXJfcHJpdiBub3cgdGhhdCB3ZSBoYXZlIG1ldGFkYXRhCgkgIE5vdyB0aGF0IHdlIGhhdmUgbWV0YWRhdGEgd2UgY2FuIHJlbW92ZSB0aGUgb3duZXJfcHJpdiBmaWVsZC4KCjIwMTEtMDItMjUgMTM6MjM6MTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMKCjIwMTEtMDItMjUgMTM6MTU6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmM6CgkqIGdzdC9nc3RidWZmZXJtZXRhLmg6CgkqIGdzdC9nc3RtZXRhLmM6CgkqIGdzdC9nc3RtZXRhLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWV0YS5jOgoJICBtZXRhZGF0YTogUmVuYW1lIHRvIEdzdE1ldGEKCSAgUmVuYW1lIHRvIHRoZSBzaG9ydGVyIEdzdE1ldGEKCSAgQWRkIGRvY3MKCSAgQWRkIGFwaSB0byBnZXQgbWV0YWRhdGEgYnkgQVBJCgoyMDExLTAyLTI1IDEwOjM3OjA3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGZpeCBkZWZzCgoyMDEwLTExLTE1IDExOjQ5OjI0ICswMTAwICBQaGlsaXBwZSBOb3JtYW5kIDxwaGlsIGF0IGJhc2UtYXJ0Lm5ldD4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggbWVtb3J5IGNvcnJ1cHRpb24KCjIwMTAtMDQtMDcgMTE6MzQ6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YnVmZmVybWV0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybWV0YS5jOgoJICBidWZmZXJtZXRhOiBmaXggY29tcGlsYXRpb24KCjIwMTAtMDItMjYgMTM6MTE6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuaDoKCSAgdXBkYXRlcwoKMjAwOS0xMi0yNyAyMjowMzozMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJtZXRhLmM6CgkgIG1ldGE6IGltcHJvdmUgdGVzdCBhIGxpdHRsZQoKMjAwOS0xMi0xNyAxMjozNDo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuYzoKCSogZ3N0L2dzdGJ1ZmZlcm1ldGEuaDoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJtZXRhLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBidWZmZXJtZXRhOiBhZGQgYmVnaW5uaW5ncyBvZiBidWZmZXIgbWV0YWRhdGEKCSAgQWRkIGZpcnN0IGltcGxlbWVudGF0aW9uIG9mIGFyYml0cmFyeSBidWZmZXIgbWV0YWRhdGEuIFdlIHVzZSBhIHNpbXBsZSBsaW5rZWQKCSAgbGlua2VkIG9mIHNsaWNlIGFsbG9jYXRlZCBtZXRhZGF0YSBjaHVua3MuIEZ1dHVyZSBpbXBsZW1lbnRhdGlvbnMgY291bGQgdXNlCgkgIHNvbWV0aGluZyBtb3JlIHBlcmZvcm1hbnQuCgkgIEFkZCBnZXQsIHJlbW92ZSwgaXRlcmF0ZSBtZXRob2RzIHRvIGhhbmRsZSB0aGUgbWV0YWRhdGEuCgoyMDExLTAyLTI1IDEwOjE5OjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRlc2lnbjogYWRkIGFwaSB0YWcKCSAgV2Ugd2FudCB0byBmaW5kIG1ldGFkYXRhIGJhc2VkIG9uIHRoZSBBUEkgaXQgaW1wbGVtZW50cyBhbmQgYmFzZWQgb24gdGhlCgkgIHNwZWNpZmljIGltcGxlbWVudGF0aW9uLgoKMjAxMS0wMi0yNCAxNzoxMTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHVyaTogbWFrZSB3aW4zMiBidWlsZGJvdCBoYXBweQoJICBnc3R1cmkuYzo4NTQ6MTY6IGVycm9yOiB1bnVzZWQgdmFyaWFibGUgJ2Fic19jbGVhbicKCSAgZ3N0dXJpLmM6Nzg4OjE6IGVycm9yOiAnZ3N0X2ZpbGVfdXRpbHNfY2Fub25pY2FsaXNlX3BhdGgnIGRlZmluZWQgYnV0IG5vdCB1c2VkCgoyMDExLTAyLTI0IDE1OjMyOjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgZmlsZXNyYywgZmlsZXNpbms6IGZpeCBVUkkgY3JlYXRpb24gcmVncmVzc2lvbiBmb3Igbm9uLWFic29sdXRlIGxvY2F0aW9ucwoJICBQYXNzaW5nIGUuZy4gbG9jYXRpb249Zm9vIHdvdWxkIGxlYWQgdG8gd2FybmluZ3MgYmVjYXVzZSBnX2ZpbGVuYW1lX3RvX3VyaSgpCgkgIHdhbnRzIGFuIGFic29sdXRlIGZpbGUgcGF0aCBhbmQgcmV0dXJucyBOVUxMIG90aGVyd2lzZS4gVXNlIGJyYW5kLW5ldwoJICBnc3RfZmlsZW5hbWVfdG9fdXJpKCkgaW5zdGVhZCwgd2hpY2ggd2lsbCB0cnkgaGFyZGVyIHRvIGNyZWF0ZSBhIHByb3BlcgoJICBVUkkgZm9yIHVzLgoJICBBbHNvIGFkZCB1bml0IHRlc3QuCgoyMDExLTAyLTI0IDE1OjE4OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1cmkuYzoKCSogZ3N0L2dzdHVyaS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXJpOiBhZGQgZ3N0X2ZpbGVuYW1lX3RvX3VyaSgpIHRoYXQgdGFrZXMgcmVsYXRpdmUgZmlsZW5hbWVzCgkgIEFkZCBmdW5jdGlvbiB0aGF0ICh1bmxpa2UgdGhlIEdMaWIgZXF1aXZhbGVudCkgYWxzbyBhY2NlcHRzIHBhdGhzIHRoYXQKCSAgYXJlbid0IGFic29sdXRlIGFuZCB3aWxsIGNsZWFuIHVwIHJlbGF0aXZlIG1hcmtlcnMgc3VjaCBhcyAuLyBhbmQgLi4vCgkgIGJlZm9yZSBmb3JtaW5nIGEgVVJJLgoJICBGaXhlcyB3YXJuaW5ncyB3aXRoIGUuZy4gZmlsZXNyYyBsb2NhdGlvbj1mb28gISB0eXBlZmluZCBjYXVzZWQgYnkgdGhlCgkgIHJlY2VudCBzd2l0Y2ggdG8gZ19maWxlbmFtZV90b191cmkoKSwgYnV0IGFsc28gYWN0dWFsbHkgY3JlYXRlcyB2YWxpZAoJICBVUklzIGZvciB0aGUgZmlyc3QgdGltZS4KCSAgV2luZG93cyBjb2RlIHBhdGhzIGNvdWxkIG5lZWQgc29tZSBtb3JlIHdvcmssIGUuZy4gd2UgZG9uJ3QgY2xlYW4gdXAKCSAgdGhlIHJlbGF0aXZlIG1hcmtlcnMgdGhlcmUgZm9yIG5vdyAoYmVjYXVzZSBwYXRoIGNvdWxkIGhhdmUgXCBhbmQgLwoJICBhcyBzZXBhcmF0b3JzKS4KCSAgQVBJOiBnc3RfZmlsZW5hbWVfdG9fdXJpKCkKCjIwMTEtMDItMjQgMTY6MjA6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgIHRlc3RzOiByZWZpeCB0aGUgdGVzdHMgKG1pc3NpbmcgI2VuZGlmKQoKMjAxMS0wMi0yNCAxNjoxMToxNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIE1ha2VmaWxlLmFtOiBhZGQgbmV3IGFiaSBoZWFkZXJzIHRvIG5vZGlzdF9IRUFERVJTCgoyMDExLTAyLTIxIDExOjI0OjQ1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIGluZGV4IHN1cHBvcnQKCSAgV2hlbiBvcHRpb24gIi1pIiBpcyBnaXZlbiwgc2V0IGFuIGluZGV4IG9iamVjdCBvbiB0aGUgcGlwZWxpbmUgYW5kIGNvbXB1dGUKCSAgc3RhdGlzdGljcyBmb3IgYWxsIGluZGV4IHdyaXRlcnMuIFByaW50IGEgc3VtYXJ5IHdoZW4gc2h1dHRpbmcgZG93biB0aGUKCSAgcGlwZWxpbmUuCgoyMDExLTAyLTI0IDE1OjEyOjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfYXJtLmg6CgkgIHRlc3RzOiBhZGQgYWJpIGNoZWNrIGRhdGEgZm9yIEFSTSAobGlicykKCjIwMTEtMDItMjQgMTU6MDI6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9hcm0uaDoKCSAgdGVzdHM6IGFkZCBhYmkgY2hlY2sgZGF0YSBmb3IgQVJNCgoyMDExLTAyLTI0IDEzOjU1OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IGFkZCBvd25lciBwcml2YXRlIGFzIGludGVybWVkaWF0ZSBzb2x1dGlvbgoJICBBZGQgYW4gb3duZXIgcHJpdmF0ZSBmaWVsZCB3aGVyZSB0aGUgb3duZXIgb2YgYSBidWZmZXIgY2FuIHN0b3JlIHNvbWUgZXh0cmEKCSAgaW5mb3JtYXRpb24uIFdlIGNhbiB1c2UgdGhpcyB0byBpbXBsZW1lbnQgbW9zdCBvZiB0aGUgc3ViY2xhc3NpbmcgdGhhdCBoYXBwZW5zCgkgIG5vdy4gTGF0ZXIgdGhpcyB3aWxsIGJlIHJlbW92ZWQgYW5kIHJlcGxhY2VkIGJ5IGFyYml0cmFyeSBidWZmZXIgbWV0YWRhdGEuCgoyMDExLTAyLTI0IDEwOjI4OjIwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogcmVtb3ZlIHBvaXNvbmluZwoKMjAxMS0wMi0yMyAxNjo0ODowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBtaW5pb2JqZWN0OiBjbGVhbnVwcwoJICBVc2UgdGhlIHN0b3JlZCBzaXplIGluIHRoZSBtaW5pb2JqZWN0IHRvIGZyZWUgdGhlIG1pbmlvYmplY3QuCgkgIFJlZmFjdG9yIHNvbWUgaW5pdCBtZXRob2RzLgoKMjAxMS0wMi0yMyAxNTo0Mzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBwb3J0aW5nIGd1aWRlCgoyMDExLTAyLTIzIDEyOjU0OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgZG9jczogdXBkYXRlIHBvcnRpbmcgZ3VpZGUKCjIwMTEtMDItMjMgMTI6NDQ6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBjYXBzOiB3YXJuIHdoZW4gbWFrZV93cml0YWJsZSByZXN1bHQgaXMgaWdub3JlZAoKMjAxMS0wMi0yMyAxMjowODowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBmaXggZGVmcwoKMjAxMS0wMi0yMyAxMjowMTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiBmaXggdHlwZSByZWdpc3RyYXRpb24KCSAgV2UgbmVlZCB0byBoYXZlIHRoZSB0eXBlcyBvZiB0aGUgbWluaW9iamVjdHMgYmVmb3JlIHJlZ2lzdGVyaW5nIHRoZQoJICB0cmFuZm9ybXMuCgoyMDExLTAyLTIzIDEyOjAxOjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBpbXByb3ZlIGNhcHMgc3RyaW5nIG1hbmFnZW1lbnQKCjIwMTEtMDItMjMgMTI6MDA6NDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBjbGVhciBmbGFncyBpbiBpbml0CgoyMDExLTAyLTIzIDEyOjMzOjU4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgZG9jczogdGVsbCB0aGF0IE9SQ19DT0RFIGNhbiBjb250YWluIGEgbGlzdCBvZiBmbGFncwoKMjAxMS0wMi0yMyAxMDozMTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogZml4IGZsYWdzCgoyMDExLTAyLTIyIDE5OjMwOjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGZpeCBjb21waWxhdGlvbiBhZnRlciByZWJhc2UKCjIwMTAtMTEtMDIgMTM6MzE6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgaW1wcm92ZSB0eXBlIHJlZ2lzdHJhdGlvbgoKMjAxMC0xMS0wMiAxMjo1ODoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBmaXggY29tcGlsYXRpb24KCjIwMDktMTItMDcgMjA6MzI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgZml4IG1hY3JvcwoKMjAwOS0xMi0wNSAxNToxODowOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzZXQgYm94ZWQgdHlwZSBjb3JyZWN0bHkKCjIwMDktMTItMDUgMTQ6MTY6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgbWluaW9iamVjdDogc21hbGwgZml4ZXMKCSAgTWFrZSBkYXRhZmxvdyBoYXBwZW4uCgoyMDA5LTEyLTA0IDIzOjUyOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIG1pbmlvYmplY3Q6IG1vcmUgYm94ZWQgdHlwZSBmaXhpbmcKCSAgTW9yZSBtaW5pb2JqZWN0IGZpeGluZywgbGVha3MgaG9ycmlibHkgc29tZXdoZXJlLi4KCjIwMDktMTItMDQgMjI6MzI6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdG1hcnNoYWwubGlzdDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBtaW5pb2JqZWN0OiBtYWtlIHF1ZXJpZXMgYSBib3hlZCB0eXBlCgkgIE1vcmUgbWluaW9uamVjdCBzdHVmZi4KCjIwMDktMTItMDMgMjA6NDk6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlczogbWFrZSBtZXNzYWdlIGEgc2ltcGxlIGJveGVkIHR5cGUKCjIwMDktMTItMDIgMjE6MjE6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogd29yayBvbiBtYWtpbmcgY2FwcyBhIGJveGVkIHR5cGUKCSAgTW9yZSB3b3JrIG9uIG1ha2luZyBtaW5pb2JqZWN0IGEgc2ltcGxlIGFsbG9jYXRlZCBzdHJ1Y3QuCgoyMDA5LTExLTI5IDAwOjIxOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgbWluaW9iamVjdDogbWFrZSBtaW5pb2JqZWN0IGEgYm94ZWQgdHlwZQoJICBGaXJzdCBhdHRlbXB0IGF0IG1ha2luZyBtaW5pb2JqZWN0IGEgc2ltcGxlIGJveGVkIHR5cGUuCgoyMDExLTAyLTIyIDE5OjA5OjQ4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBsaWJzOiBjbGVhbnVwcyBmb3IgMC4xMQoJICBSZW1vdmUgZGVwcmVjYXRlZCBzdHVmZiwgZml4IHBhZGRpbmcsIHJlYXJyYW5nZSBtZXRob2RzLgoKMjAxMS0wMi0yMiAxNjowNDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgY2xlYW51cHMKCSAgRml4IHBhZGRpbmcsIHJlbW92ZSBkZXByZWNhdGVkIHN5bWJvbHMuCgoyMDExLTAyLTIyIDE1OjA4OjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIGludG8gMC4xMQoKMjAxMS0wMi0yMiAxNDoxMTo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCSAgQ29uZmxpY3RzOgoJICBjb25maWd1cmUuYWMKCSAgZ3N0L2dzdGVsZW1lbnQuYwoJICBnc3QvZ3N0ZWxlbWVudC5oCgkgIGdzdC9nc3RwYWQuYwoJICBnc3QvZ3N0dXRpbHMuYwoJICBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW0KCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtCgkgIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbQoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZgoKMjAxMS0wMi0xNCAxODowNTowOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEJlIHNtYXJ0ZXIgd2l0aCBwYWQgYWxsb2NzCgkgIEF2b2lkIGRvaW5nIHVubmVjZXNzYXJ5IHBhZC1hbGxvY3Mgd2hlbiBvbiBwYXNzdGhyb3VnaCBtb2RlLgoJICBJZiBtdWx0aXBsZSBiYXNldHJhbnNmb3JtIGVsZW1lbnRzIGFyZSBvbiBhIHBpcGVsaW5lLCB0aGV5CgkgIHdvdWxkIGRvIGEgcGFkLWFsbG9jIGZvciBlYWNoIHJlY2VpdmVkIGJ1ZmZlciwgZWFjaCBlbGVtZW50CgkgIHdvdWxkIGRvIHRoaXMsIHNvIHdlIHdvdWxkIGhhdmUgbG90cyBvZiBwYWQgYWxsb2NzIG9uIHRoZQoJICBwaXBlbGluZSBmb3IgYSBzaW5nbGUgYnVmZmVyIGJlaW5nIHB1c2hlZCB0aHJvdWdoIGl0LgoJICBUaGlzIHBhdGNoIGF0dGVtcHRzIHRvIHJlZHVjZSB0aGlzIGFtb3VudCBieSBhdm9pZGluZwoJICBkb2luZyBwYWQtYWxsb2NzIGlmIHRoZSBlbGVtZW50IGhhcyBhbHJlYWR5IGRvbmUgaXQKCSAgYWZ0ZXIgdGhlIGxhc3QgcHVzaGVkIGJ1ZmZlci4gU28gaXQgd2lsbCBvbmx5IGJlIGFsbG93ZWQKCSAgdG8gZG8gYSBuZXcgcGFkLWFsbG9jIGFmdGVyIGl0IGhhcyBwdXNoZWQgYSBidWZmZXIsIHNvIHdlIGdldAoJICAxeDEgcGFkLWFsbG9jIGFuZCBidWZmZXIgcmF0aW8KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjM3MwoKMjAxMS0wMi0yMSAxMzozOTozOCArMDEwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBkb2NzOiBmaXggdHlwbyBpbiBnc3RfaW5kZXhfbmV3KCkgZG9jcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyODY5CgoyMDExLTAyLTIxIDEyOjQ0OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHByaW50IG5ldyBNRURJQTQgZmxhZyBhcyB3ZWxsCgoyMDExLTAxLTAzIDExOjM3OjA1ICswMTAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIG1pbmlvYmplY3QsIGJ1ZmZlcjogc3RlYWwgbWluaW9iamVjdCBmbGFnIGZvciB1c2UgYXMgTUVESUE0IGJ1ZmZlciBmbGFnCgkgIFRoaXMgd2FzIHJlcXVpcmVkIHRvIGFkZCBhIG5ldyBNRURJQTQgYnVmZmVyIGZsYWcgZm9yIGluZGljYXRpbmcKCSAgcHJvZ3Jlc3NpdmUvbWl4ZWQgdGVsZWNpbmUgdmlkZW8gYnVmZmVycy4gVGhlcmUgaXMgbm8gc3BhY2UgZm9yCgkgIGFkZGl0aW9uYWwgZmxhZ3MgaW4gR3N0QnVmZmVyLCBzbyBzdGVhbCBvbmUgZnJvbSBHc3RNaW5pT2JqZWN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyNjcxCgoyMDExLTAyLTIwIDE2OjExOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5jOgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuaDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBTaW5jZTogbWFya2VycyB0byBhdG9taWMgcXVldWUgZG9jcwoKMjAxMS0wMi0yMSAxMTo1NTo1MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IENhbGwgLT5yZWxlYXNlX3BhZCgpIHRvIGNsZWFuIHVwIHBhZCIKCSAgVGhpcyBjb21taXQgY2hhbmdlcyB0aGUgcmVxdWVzdCBwYWQgYmVoYXZpb3VyIGZvciBwbHVnaW5zIGFuZCBhcHBsaWNhdGlvbnMuCgkgIFJlb3BlbnMgQnVnICM0MDI1NjIKCSAgVGhlIHByb3BlciBmaXggZm9yIHRoYXQgYnVnIGlzIHRvIGtlZXAgdHJhY2sgb2YgY3JlYXRlZCByZXF1ZXN0IHBhZHMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYTVlNDRmZmZmYWE2ZDdhOGQ3YWY4ZGNiNzdlMzc5OTA5OTYyNTNhNS4KCjIwMTEtMDItMjEgMTA6MDM6MTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmRleC5jOgoJICBpbmRleDogYWRkIEZJWE1FLTAuMTE6IGNvbW1lbnRzCgoyMDExLTAyLTE1IDEwOjU3OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5kZXguYzoKCSAgZG9jczogaW1wcm92ZSBpbmRleCBkb2NzCgoyMDExLTAyLTE4IDE3OjA5OjE0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogc3BlbGwtY2hlY2sKCjIwMTEtMDItMTUgMTk6MTU6MTYgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogcHJpbnQgYnVmZmVyIGZsYWdzCgoyMDEwLTEyLTA0IDE4OjUzOjU1IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IENhbGwgLT5yZWxlYXNlX3BhZCgpIHRvIGNsZWFuIHVwIHBhZAoJICBGaXhlcyAjNjM2MDExIGFuZCAjNDAyNTYyLgoKMjAxMS0wMi0xNyAxNDo1MDo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGluZGV4OiBmaXggY3JlYXRpb24gb2Ygd3JpdGVyIGlkIGZvciB1bnBhcmVudGVkIHBhZHMKCSAgQWxzbyBkbyBzb21lIGNsZWFudXAgaW4gdGhlIGltcGwuCgoyMDExLTAyLTE3IDEwOjM0OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGFkZCAoZGUpc2VyaWFsaXNhdGlvbiBmdW5jdGlvbiBmb3IgdWNoYXIKCSAgLi4gc2luY2Ugd2Ugc2FkbHkgaGF2ZSBhIHBsdWdpbiBpbiAtZ29vZCB0aGF0IGhhcyBhIHVjaGFyIHByb3BlcnR5CgkgIChjbW1sZW5jKQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQyNTIyCgoyMDExLTAyLTE2IDE5OjU0OjU3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggaW5jbHVkZSBvcmRlciBhdG9taWNxdWV1ZTogZml4IGluY2x1ZGUgb3JkZXIjIFBsZWFzZSBlbnRlciB0aGUgY29tbWl0IG1lc3NhZ2UgZm9yIHlvdXIgY2hhbmdlcy4gTGluZXMgc3RhcnRpbmcKCjIwMTAtMTAtMjggMTM6Mjc6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RidXMuaDoKCSAgYnVzOiBtYWtlIHRoZSBidXMgYWxtb3N0IGxvY2tmcmVlCgkgIFVzZSBuZXcgR3N0UG9sbCBmdW5jdGlvbmFsaXR5IHRvIHdha2V1cCB0aGUgbWFpbmxvb3AuCgkgIFVzZSBhbiBhdG9taWMgcXVldWUgb24gdGhlIHdyaXRlciBzaWRlIHRvIHBvc3QgdGhlIG1lc3NhZ2VzLgoJICBUaGUgcmVhZGVyIHNpZGUgaXQgcHJvdGVjdGVkIHdpdGggdGhlIGxvY2sgc3RpbGwgYmVjYXVzZSB3ZSBkb24ndCB3YW50IG11bHRpcGxlCgkgIGNvbmN1cnJlbnQgcmVhZGVycy4KCjIwMTEtMDItMTYgMTc6MjE6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogZml4IGRlZnMgZmlsZSBmb3IgbmV3IHN5bWJvbHMKCjIwMTEtMDItMTYgMTc6MTQ6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IHVzZSBjb3JyZWN0IGFycmF5IHNpemVzCgoyMDExLTAyLTE2IDE2OjIxOjU4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkgIGF0b21pY3F1ZXVlOiBmaXggZG9jcyBzb21lIG1vcmUKCjIwMTEtMDItMTYgMTY6MTk6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmg6CgkgIGF0b21pY3F1ZXVlOiBhZGQgcmVmY291bnRpbmcgYW5kIGRvY3MKCjIwMTEtMDItMTYgMTI6NDg6NTkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YXRvbWljcXVldWUuYzoKCSAgYXRvbWljcXVldWU6IG1ha2Ugc3VyZSBhIG1pbiBpbml0aWFsX3NpemUgaXMgdXNlZAoKMjAxMC0xMC0yOCAxNjowMjozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdGF0b21pY3F1ZXVlLmM6CgkqIGdzdC9nc3RhdG9taWNxdWV1ZS5oOgoJICBhdG9taWNxdWV1ZTogYWRkIGFuIGF0b21pYyBxdWV1ZQoJICBBZGQgYW4gYXRvbWljIHF1ZXVlLiBUaGUgcXVldWUgY2FuIGJlIHVzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIHNpbXVsdGFuZW91c2x5CgkgIGFuZCB3aXRob3V0IHRha2luZyBhbnkgbG9ja3Mgb3IgZG9pbmcgYW55IGJsb2NraW5nIG9wZXJhdGlvbnMuIFRoaXMgbWFrZXMgaXQKCSAgaGlnaGx5IHNjYWxhYmxlIGZvciB0aGluZ3MgbGlrZSB0aGUgYnVzLCBidWZmZXJwb29scyBhbmQgb2JqZWN0IHJlY3ljbGluZy4KCjIwMTEtMDItMTYgMTc6MTQ6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGNoZWNrOiBmaXggYSBsZWFrIGluIHRoZSBidXMgdW5pdCB0ZXN0CgoyMDExLTAyLTE2IDE3OjI4OjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBkZWluaXQ6IGFkZCBwcm9ncmVzcyB0eXBlIGNsYXNzIHVucmVmCgoyMDExLTAyLTE2IDE1OjEzOjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHRlbGwgYWxzbyB3aGF0IHBhZCBhIHBhZCBpcyBhbHJlYWR5IGxpbmtlZCBhZ2FpbnN0CgoyMDExLTAyLTE1IDIyOjU2OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzoKCSAgZmlsZXtzaW5rLHNyY306IENoZWNrIGlmIG5vbi1VUkkgY2hhcmFjdGVycyBhcmUgZXNjYXBlZCwgYnV0IG9ubHkgZm9yIHRoZSBVUkkgbm90IHRoZSBsb2NhdGlvbiBwcm9wZXJ0eQoKMjAxMS0wMi0xNSAyMjo0OToyNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6CgkgIGZpbGV7c3JjLHNpbmt9OiBGaXggdW5pdCB0ZXN0cwoJICBmaWxlc2luayBhbmQgZmlsZXNyYyBzaG91bGQgcmV0dXJuIGV4YWN0bHkgdGhlIHNhbWUgVVJJIGFzIHBhc3NlZAoJICBhbmQgbXVzdCBub3QgZXNjYXBlIHBhdGggc2VwYXJhdG9ycy4KCjIwMTEtMDItMTUgMjI6NDg6NDQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBmaWxlc2luazogRml4IGVzY2FwaW5nIG9mIFVSSXMKCSAgRXNwZWNpYWxseSBkb24ndCBlc2NhcGUgLyBhcyBwYXRoIHNlcGFyYXRvcnMKCjIwMTEtMDItMTUgMjI6MDU6MzEgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogRml4IGVzY2FwaW5nIG9mIGZpbGUgdXJpcwoJICBGaXhlcyBidWcgIzY0MjM5My4KCjIwMTEtMDItMTUgMTg6MjY6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkgIG1lc3NhZ2U6IGFkZCB0aW1lb3V0IHRvIHByb2dyZXNzIG1lc3NhZ2UKCSAgQWRkIGEgdGltZW91dCBtZW1iZXIgdG8gdGhlIHByb2dyZXNzIG1lc3NhZ2VzIHRvIGxldCB0aGUgYXBwbGljYXRpb24ga25vdyBhYm91dAoJICB0aGUgdGltZW91dCBzbyB0aGF0IGl0IGNhbiBkbyBzb21lIGd1aSB0aGluZ3Mgd2l0aCBpdC4KCjIwMTEtMDItMTUgMTg6MTQ6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXByb2dyZXNzLnR4dDoKCSAgZGVzaWduOiBtZW50aW9uIHRpbWVvdXQgaW4gdGhlIHByb2dyZXNzIG1lc3NhZ2UKCjIwMTEtMDItMTUgMTc6MjA6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJvZ3Jlc3MudHh0OgoJICBkZXNpZ246IG1ha2UgcHJvZ3Jlc3MgZHJhZnQgb2ZmaWNpYWwKCjIwMTEtMDEtMDYgMTg6NTU6NDMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSAgbWVzc2FnZTogcmVuYW1lIGNhdGVnb3J5IHRvIGNvZGUKCjIwMTEtMDEtMDYgMTU6NTg6NDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBtZXNzYWdlOiBhZGQgbmV3IG1lc3NhZ2UgcXVhcmsKCjIwMTEtMDEtMDYgMTU6NTg6MjMgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1wcm9ncmVzcy50eHQ6CgkgIGRvY3M6IGFkZCBtb3JlIHN0YW5kYXJkIGNhdGVnb3JpZXMKCjIwMTEtMDEtMDUgMTM6NTM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogcmVnaXN0ZXIgbmV3IHR5cGUKCjIwMTEtMDEtMDUgMTM6NDg6NTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICBjaGVjazogYWRkIHByb2dyZXNzIG1lc3NhZ2UgdW5pdCB0ZXN0CgoyMDExLTAxLTA1IDEzOjQxOjA4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogYWRkIHByb2dyZXNzIG1lc3NhZ2UgZnVuY3Rpb25zCgoyMDExLTAxLTA1IDEzOjM5OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkb2NzOiB1cGRhdGUgcHJvZ3Jlc3MgZmllbGQKCSAgQXZvaWQgbmFtaW5nIHRoZSBwcm9ncmVzcyBmcmVlIHRleHQgZmllbGQgJ21lc3NhZ2UnIGFzIGl0IGNvbmZsaWN0cyB3aXRoIHRoZQoJICBtZXNzYWdlIGl0c2VsZi4KCjIwMTEtMDItMTUgMTQ6NDI6NTggKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb24ndCByZWFkIGJleW9uZCB0aGUgZW5kIG9mIGZpbGUgdXBzdHJlYW0gaW4gcHVsbCBtb2RlCgkgIC4uLiB3aGljaCBjb3VsZCBsZWFkIHRvIGEgcHJlbWF0dXJlIGVvcyBiZWluZyByZXBvcnRlZCBkb3duc3RyZWFtLAoJICByYXRoZXIgdGhhbiBhIHN1Y2Nlc3NmdWwgcGFydGlhbCByZWFkIHdoaWNoIHdvdWxkIHJlc3VsdCB3aGVuCgkgIHBlcmZvcm1lZCBkaXJlY3RseSBvbiBlLmcuIGJhc2VzcmMuCgoyMDExLTAxLTI2IDE2OjQ2OjI1ICswODAwICBDaGVuIFJ1aSA8cnVpLmNoZW5AdGlldG8uY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiByZXR1cm4gcmVhbCBlcnJvciBpbiBjb21wYXRpYmxlIGxpbmsgY2hlY2sKCSAgV2UgbmVlZCB0byBlbnN1cmUgd2UgY2FsbCBnc3RfcGFkX2NoZWNrX2xpbmsoKSB3aXRoIHRoZSB0d28gcGFkcyBpbiB0aGUgY29ycmVjdAoJICBvcmRlci4gVGhlIG9yZGVyIGRlcGVuZHMgb24gd2hldGVyIHdlIGl0ZXJhdGUgc3JjIG9yIHNpbmsgcGFkcy4KCSAgU2lnbmVkLW9mZi1ieTogQ2hlbiBSdWkgPHJ1aS5jaGVuQHRpZXRvLmNvbT4KCjIwMTEtMDItMTQgMTc6MzE6MjUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQ2hlY2sgc2lua3BhZCBmb3IgZmx1c2hpbmcKCSAgQ2hlY2sgdGhlIHNpbmtwYWQgZm9yIHRoZSBmbHVzaGluZyBzdGF0ZSBiZWZvcmUgY2FsbGluZyB0aGUgY2hhaW5mdW5jdGlvbiBvbiB0aGUKCSAgcGFkLiBXZSBkbyB0aGlzIGJ5IGNoZWNraW5nIHRoZSBjYWNoZSAod2hpY2ggaXMgYWxzbyBjbGVhcmVkIG9uIHRoZSBzcmNwYWQgd2hlbgoJICB0aGUgc2luayBpcyBzZXQgdG8gZmx1c2hpbmcpLgoJICBGaXhlcyAjNjQxOTI4CgoyMDExLTAyLTExIDE3OjQ3OjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBDaGVjayBmb3IgcGFkIGFsbG9jIGNhcHMgd2hlbiBzdWdnZXN0aW9uIGlzIG5vdCBmaXhlZAoJICBJZiBhZnRlciBjb21wdXRpbmcgdGhlIHN1Z2dlc3Rpb24gd2l0aCBkb3duc3RyZWFtIGNhcHMgd2Ugc3RpbGwgaGF2ZQoJICBhIG5vbi1maXhlZCBzdWdnZXN0aW9uIGNhcHMgdHJ5IHRvIGludGVyc2VjdCB3aXRoIHRoZSBpbnB1dCBjYXBzCgkgIG9mIHRoZSBwYWQgYWxsb2MgdG8gYXZvaWQgdXNlbGVzcyByZW5lZ290aWF0aW9ucy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MjEzMAoKMjAxMS0wMi0xNCAxNDowMDozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgZHVyYXRpb24gY2FsY3VsYXRpb24KCSAgS2VlcCB0cmFjayBvZiB0aGUgYXZlcmFnZSBkaXN0YW5jZSBiZXR3ZWVuIGluY29tbWluZyB0aW1lc3RhbXBzIGFuZAoJICB1c2UgdGhhdCB0byBlc3RpbWF0ZSB0aGUgZnJhbWUgZHVyYXRpb24gd2hlbiBidWZmZXJzIGhhdmUgbm8gZHVyYXRpb24gc2V0IG9uCgkgIHRoZW0uCgoyMDExLTAyLTE0IDEzOjQ5OjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSByYXRlIGNhbGN1bGF0aW9uCgkgIFdoZW4gdGhlcmUgaXMgbm8gZHVyYXRpb24gb24gaW5wdXQgYnVmZmVycywgYXNzdW1lIHRoZSByYXRlIGlzIDEuMAoJICBpbnN0ZWFkIG9mICh0aGUgdW5kZWZpbmVkKSAwLjAuCgoyMDExLTAyLTE0IDEzOjQ3OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBhdmVyYWdlIGR1cmF0aW9uIGNhbGN1bGF0aW9uCgkgIEltcHJvdmUgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBkdXJhdGlvbi4gV2hlbiB3ZSBoYXZlIG5vIGlucHV0IGR1cmF0aW9uIHNldCBvbgoJICB0aGUgaW5wdXQgYnVmZmVycyBzdG9wIGlzIHNldCB0byBzdGFydCBhbmQgdGhlbiB3ZSBlbmQgdXAgdXNpbmcgYSAwIGR1cmF0aW9uIGluCgkgIHRoZSBhdmVyYWdlIGNhbGN1bGF0aW9uLgoKMjAxMS0wMi0xNCAxMjoyMTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlbmFtZSB2YXJpYWJsZQoJICBSZW5hbWUgYW4gaW50ZXJuYWwgdmFyaWFibGUgdG8gYmV0dGVyIHJlZmxhY3Qgd2hhdCBpdHMgdmFsdWUgbWVhbnMuCgoyMDExLTAyLTE0IDE1OjM5OjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS1sYXVuY2g6IHRyaW0gd2hpdGVzcGFjZXMKCjIwMTEtMDItMTQgMTU6Mzc6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogZml4IHR5cG8gaW4gcGFkLWxpc3QgbGVuZ3RoIGNvbXBhcmlzaW9uCgkgIEl0IHdhcyBjb21wYXJpbmcgdGhlIGxlbmd0aCB3aXRoIGl0c2VsZi4KCSAgRml4ZXMgIzY0MjA3MS4KCjIwMTEtMDItMTQgMTI6NTI6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjk0ZDczOSB0byAxZGU3ZjZhCgoyMDExLTAyLTEzIDIyOjU2OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcHJldHR5LXByaW50IGRhdGV0aW1lIHRhZ3MKCjIwMTEtMDItMTAgMjM6MzA6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIGdzdHJlYW1lci5kb2FwOiB1cGRhdGUgbWFpbGluZyBsaXN0IGhvc3QKCjIwMTEtMDItMTAgMTQ6NTM6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggc29tZSBjb21tZW50cwoKMjAxMS0wMi0xMCAxNDo1MDowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGtlZXAgdHJhY2sgb2YgZWFybGllc3QgUW9TIHRpbWVzdGFtcAoJICBLZWVwIHRyYWNrIG9mIHRoZSBlYXJsaWVzdCBhbGxvd2VkIHRpbWVzdGFtcCBhY2NvcmRpbmcgdG8gdGhlIGxhdGVzdAoJICBRb1MgcmVwb3J0IGFuZCBkcm9wIGJ1ZmZlcnMgYmVmb3JlIHRoYXQgdGltZS4gQWN0aXZhdGUgdGhpcyBmaWx0ZXIKCSAgd2hlbiB0aHJvdHRsaW5nIGlzIGVuYWJsZWQuIFdlIGNvdWxkIGxhdGVyIGFsc28gYWN0aXZhdGUgdGhpcyBpbiB0aGUKCSAgb3RoZXIgUW9TIGNhc2VzLgoJICBTZWUgIzYzODg5MQoKMjAxMS0wMi0xMCAxNDoxNzoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBuZXcgUW9TIHR5cGUKCSAgVXNlIHRoZSBuZXcgUW9TIHR5cGUgYW5kIHNlbmQgdGhyb3R0bGluZyBRb1MgbWVzc2FnZXMuCgoyMDExLTAyLTEwIDEzOjQyOjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYmFzZXNpbms6IGFkZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgYSB0aHJvdHRsZS10aW1lCgkgIEFkZCBhIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSB0aGUgdGhyb3R0bGUgdGltZSBvbiBhIHNpbmsuIFRoZQoJICBwcm9wZXJ0eSBpcyBub3QgeWV0IHVzZWQuCgkgIFNlZSAjNjM4ODkxCgoyMDExLTAyLTEwIDEyOjAyOjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXZlbnQ6IGFkZCBRb1MgZXZlbnQgdHlwZQoJICBBZGQgYSBwYXJhbWV0ZXIgdG8gdGhlIFFvUyBldmVudCB0byBzcGVjaWZ5IHRoZSBRb1MgZXZlbnQgdHlwZS4KCSAgVXBkYXRlIGRvY3MgYW5kIGFkZCB1bml0IHRlc3QuCgkgIFNlZSAjNjM4ODkxCgoyMDExLTAyLTEwIDEyOjAwOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBmaXggcGFyYW1ldGVyIGRvY3MKCjIwMTEtMDItMTAgMTA6NDk6MjIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRlc2lnbjogdHdlYWsgZG9jcyBhIGxpdHRsZQoKMjAxMS0wMi0xMCAxMDozNDo1NyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZGVzaWduOiB1cGRhdGUgUW9TIGRvY3VtZW50CgkgIEFkZCBuZXcgUW9TIHR5cGVzIGFuZCB0YWxrIGFib3V0IHRoZSBuZXcgdGhyb3R0bGUgUW9TIG1lc3NhZ2UuCgoyMDExLTAyLTEwIDEzOjQ2OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkb2NzOiBmaXggc29tZSB0eXBvcyBpbiB0aGUgYnVmZmVycG9vbCBkcmFmdAoKMjAxMS0wMi0xMCAxMDoxOTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZXZlbnRzOiBmaXggZy1pIGFubm90YXRpb24gZm9yIGdzdF9ldmVudF9uZXdfdGFnKCkgd2hpY2ggdGFrZXMgb3duZXJzaGlwIG9mIHRoZSB0YWcgbGlzdAoKMjAxMS0wMi0xMCAwMDowMjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBkb2NzOiBtZW50aW9uIHRoYXQgaXQncyBuZWNlc3NhcnkgdG8gc2V0IHRoZSBzdGF0ZSBvZiBlbGVtZW50cyBhZGRlZCB0byBhbiBhbHJlYWR5LXJ1bm5pbmcgcGlwZWxpbmUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTYzMQoKMjAxMS0wMi0wOSAxNjoyMjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcnBvb2wudHh0OgoJICBkZXNpZ246IGFkZCBkcmFmdCBmb3IgZmlyc3QgaWRlYXMgZm9yIGEgYnVmZmVycG9vbCBmZWF0dXJlCgkgIEFkZCBhIGZpcnN0IGRyYWZ0IHdpdGggc29tZSBpZGVhcyBhbmQgdXNlIGNhc2VzIGZvciB0aGUgaW1wbGVtZW50YXRpb24KCSAgZm9yIGJ1ZmZlcnBvb2xzLiBUaGUgcHVycG9zZSBpcyB0byBiZSBhYmxlIHRvIG1ha2UgZWxlbWVudHMgbmVnb3RpYXRlCgkgIHRoZWlyIGJ1ZmZlciByZXF1aXJlbWVudHMgYXMgd2VsbCBhcyBwcm92aWRlIGFuIGluZnJhc3RydWN0dXJlIHRvCgkgIHByZWFsbG9jYXRlIGFuZCByZXVzZSBidWZmZXJzIGluIGFuIGVhc3kgd2F5LgoKMjAxMS0wMi0wOSAxNToyMzoxMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZG9jczogY2xhcmlmeSB0aGUgTk9NSU5BTF9CSVRSQVRFIGRvY3MKCSAgVGVsbCB0aGF0IGl0cyBhIHRhcmdldCBiaXRyYXRlIGFuZCBhY3R1YWwgdmFsdWVzIG1pZ2h0IGJlIGRpZmZlcmVudC4KCjIwMTEtMDItMDMgMTU6MTc6MTMgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogdHJpZ2dlciByZWJ1aWxkIHNldHVwIGluIF9uZXcKCSAgRmFpbGluZyB0byBkbyBzbyBpbiB0aGUgV2luZG93cyBjYXNlIChpbXBsaWNpdGx5IHRyaWdnZXJlZCBvdGhlcndpc2UpCgkgIHdvdWxkIGhhdmUgYSBzdWJzZXF1ZW50IF93YWl0IHJldHVybiBpbW1lZGlhdGVseSBsZWFkaW5nIHRvIGhpZ2ggQ1BVCgkgIHVzYWdlIHRpbWVvdXQgbG9vcHMuCgkgIEZpeGVzICM2NDA2NzUuCgoyMDExLTAyLTAzIDEwOjUzOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IG1ha2UgYWRkaW5nL3JlbW92aW5nIG9mIGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCgpIHdvcmsgcHJvcGVybHkKCSAgTWFrZSBhZGRpbmcvcmVtb3ZpbmcgZ3N0X2RlYnVnX2xvZ19kZWZhdWx0KCkgd29yayByZWxpYWJseSBpbiBhbGwKCSAgY2lyY3Vtc3RhbmNlcy4gVGhlIHByb2JsZW0gd2FzIHRoYXQgZGVwZW5kaW5nIG9uIHBsYXRmb3JtIGFuZCBsaW5rZXIKCSAgZmxhZ3MgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50IG1pZ2h0IHJlc29sdmUgdG8gZGlmZmVyZW50IGFkZHJlc3NlcywKCSAgd2hpY2ggbWFkZSBpdCBpbXBvc3NpYmxlIHRvIHJlbW92ZSB0aGUgZGVmYXVsdCBsb2cgZnVuY3Rpb24gYWRkZWQKCSAgaW4gZ3N0X2luaXQoKSBmcm9tIGFwcGxpY2F0aW9uIGNvZGUgKGJlY2F1c2UgdGhlIHBvaW50ZXIgdmFsdWVzCgkgIGRpZG4ndCBtYXRjaCkuIFRoZSBuZXcgYXBwcm9hY2ggc2hvdWxkIGtlZXAgdGhpbmdzIHNpbXBsZSBieSBwYXNzaW5nCgkgIE5VTEwgZm9yIHRoZSBkZWZhdWx0IGZ1bmN0aW9uLCB3aGljaCB0aGUgY29kZSBpbiBsaWJnc3RyZWFtZXIgY2FuCgkgIHRoZW4gaGFuZGxlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI1Mzk2CgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDA3NzEKCjIwMTEtMDItMDMgMTA6Mjg6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgUmV2ZXJ0ICJpbmZvOiB1c2UgdGhlIHB1YmxpY2x5IHZpc2libGUgYWRkcmVzcyB0byBmaXggdGhlIHRlc3RzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGViNTY2ODdhNmRmZDIwNzUwN2E0Y2EwMDBlYWU1M2Y5M2I1ZTMzZWEuCgkgIFdoaWxlIHRoaXMgY29tbWl0IG1heSBoYXZlIGZpeGVkIGEgcHJvYmxlbSBvbiBvbmUgb2YgdGhlIGJ1aWxkIGJvdHMsCgkgIGl0IGRpZG4ndCBhY3R1YWxseSBmaXggdGhlIG9yaWdpbmFsIGJ1ZyByZXBvcnRlZCBmb3Igd2luMzIuCgkgIEFsc28sIGl0IGNhdXNlcyBvdGhlciBwcm9ibGVtcywgc3VjaCBhcyB0aGUgbG9va3VwIGZhaWxpbmcgd2hlbgoJICBjYWxsZWQgZnJvbSBDKysgY29kZSAoZ3N0LXBob25vbiwgYW1hcm9rKS4KCSAgVGhpcyBuZWVkcyB0byBiZSBmaXhlZCBkaWZmZXJlbnRseS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDc3MQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI1Mzk2CgoyMDExLTAyLTAyIDE1OjM1OjQ1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcHJvcGVybHkgaWRlbnRpdHkgZGVxdWV1ZWQgZXZlbnQgYXMgc3VjaAoJICAuLi4gd2hpY2ggYXZvaWRzIHRlcm1pbmF0aW5nIHdpdGggRVJST1IgcmF0aGVyIHRoYW4gVU5FWFBFQ1RFRC4KCjIwMTEtMDItMDIgMDI6MDc6NTggKzAwMDAgIFBldGVyIENvbGxpbmdib3VybmUgPHBldGVyQHBjYy5tZS51az4KCgkqIHNjcmlwdHMvZ3N0LXVuaW5zdGFsbGVkOgoJICBnc3QtdW5pbnN0YWxsZWQ6IHVzZSAkR1NUX1BSRUZJWCB2YXJpYWJsZQoJICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjaGFuZ2UgdGhlIHByZWZpeCBieSBlZGl0aW5nIHRoZSBzY3JpcHQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDEyMTIKCjIwMTAtMDgtMTkgMjI6NDM6MDcgKzAzMDAgIFNyZWVyZW5qIEJhbGFjaGFuZHJhbiA8c3JlZXJlbmouYmFsYWNoYW5kcmFuQG5va2lhLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IGFkZCBhIG5ldyAiZW5jb2RlZC1ieSIgdGFnCgkgIFVzZWNhc2U6IElEM3YyIFRFTkMgKCJFbmNvZGVkIGJ5IikgZnJhbWUuCgkgIEFQSTogR1NUX1RBR19FTkNPREVEX0JZCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjcyNjgKCjIwMTEtMDEtMjkgMTg6MDI6MTEgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIG5ldDogdXNlIHNvY2tsZW5fdCB3aGVyZSBhcHByb3ByaWF0ZSByYXRoZXIgdGhhbiBzcGVjaWZpYyB0eXBlCgkgIEluIHBhcnRpY3VsYXIsIGZpeGVzIEN5Z3dpbiBidWlsZCB3aGVyZSBzb2NrbGVuX3QgaXMgZGVmaW5lZCBhcyBpbnQKCSAgaW4gbGluZSB3aXRoIG5hdGl2ZSB3aW4zMiBhcGkgZGVmaW5pdGlvbi4KCjIwMTEtMDEtMzEgMTU6NTg6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIGJ1czogaG9ub3VyIGFueSBwZXItdGhyZWFkIGRlZmF1bHQgbWFpbiBjb250ZXh0IHNldCB2aWEgZ19tYWluX3RocmVhZF9wdXNoX3RocmVhZF9kZWZhdWx0KCkKCSAgTWFrZXMgZ3N0X2J1c19hZGRfd2F0Y2goKSwgZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCgpLCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2goKSwKCSAgYW5kIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKCkgY29udmVuaWVuY2UgZnVuY3Rpb25zIGF1dG9tYXRpY2FsbHkgcGljayB1cAoJICBhbnkgbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0cyBzZXQgZm9yIHRoZSBjdXJyZW50IHRocmVhZCB2aWEKCSAgZ19tYWluX3RocmVhZF9wdXNoX3RocmVhZF9kZWZhdWx0KCkuCgoyMDExLTAxLTI4IDE1OjM2OjMzIC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBPbmx5IHNldCBkaXNjb250IG9uIHRoZSBmaXJzdCBidWZmZXIgYWZ0ZXIgZHJvcHMKCSAgUmVzZXQgdGhlIGRpc2NvbnQgbWVtYmVyIGFmdGVyIHNldHRpbmcgZGlzY29udCBvbiB0aGUgZmlyc3QgYnVmZmVyIGFmdGVyCgkgIGRyb3BwaW5nLgoKMjAxMS0wMS0yOCAxOTowODowOCArMDAwMCAgQmFzdGllbiBOb2NlcmEgPGhhZGVzc0BoYWRlc3MubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgR3N0RWxlbWVudDogRml4IHdhcm5pbmcgd2l0aCBHQ0MgNC42CgkgIGdzdGVsZW1lbnQuYzogSW4gZnVuY3Rpb24g4oCYZ3N0X2VsZW1lbnRfZ2V0X3JlcXVlc3RfcGFk4oCZOgoJICBnc3RlbGVtZW50LmM6MTA1MjoxODogZXJyb3I6IHZhcmlhYmxlIOKAmHRtcOKAmSBzZXQgYnV0IG5vdCB1c2VkIFstV2Vycm9yPXVudXNlZC1idXQtc2V0LXZhcmlhYmxlXQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwODUwCgoyMDExLTAxLTI3IDA5OjI4OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgaWRlbnRpdHk6IHByaW50IHVuc2V0IGJ1ZmZlciB0aW1lc3RhbXBzIG9yIGR1cmF0aW9ucyBhcyAnbm9uZScKCSAgTGlrZSBmYWtlc2luayBhbmQgZmFrZXNyYyBkby4KCjIwMTEtMDEtMTIgMTY6MDM6MzAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCB0YWtlIG9iamVjdCBsb2NrIGZvciByZWFkaW5nIHRoZSBmb3VuZCBjYXBzCgkgIE9uY2Ugd2Ugc3dpdGNoIHRvIG5vcm1hbCBtb2RlLCB3ZSdyZSBub3QgdHlwZWZpbmRpbmcgYW55bW9yZSBhbmQgdGh1cyB0aGUgY2FwcwoJICB3aWxsIG5vdCBjaGFuZ2UuIFRoZXJlZm9yZSBjYW4gYXZvaWQgdGhlIG9iamVjdCBsb2NrIGluIHRoZSBkYXRhLWZsb3cgcGF0aC4KCSAgVGhlIGxvY2tpbmcgd2FzIGFkZGVkIGluIG9yZGVyIHRvIGZpeCBidWcgIzYwODg3Ny4KCjIwMTEtMDEtMjUgMDk6Mzk6NDUgKzA4MDAgIFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSogZG9jcy9yYW5kb20vY2FwczoKCSogZG9jcy9yYW5kb20vb21lZ2EvVE9ETy0wLjEuMDoKCSogZG9jcy9yYW5kb20vdGhvbWFzdnMvY2FwdHVyaW5nOgoJKiBkb2NzL3JhbmRvbS93dGF5L2V2ZW50czoKCSogZG9jcy9yYW5kb20vd3RheS9ldmVudHMzOgoJKiBkb2NzL3NsaWRlcy9vdXRsaW5lOgoJICBkb2NzOiBmaXggYSBmZXcgbW9yZSB0eXBvcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQwNTAyCgoyMDExLTAxLTI1IDE4OjQ4OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGRvY3M6IGZsZXNoIG91dCB0eXBlZmluZGVsZW1lbnQgZG9jcyBzb21lIG1vcmUKCSAgTWVudGlvbiB0aGF0IGhhdmUtdHlwZSBzaWduYWwgbWF5IGJlIGVtaXR0ZWQgZnJvbSBzdHJlYW1pbmcKCSAgdGhyZWFkIG9yIGFwcGxpY2F0aW9uIHRocmVhZCwgYW5kIGZpeCBhIHR5cG8uCgoyMDExLTAxLTEyIDE2OjAzOjU3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogY29kZSBhbmQgY29tbWVudCBjbGVhbnVwcwoJICBNYWtlIGNvZGUgdHdvIHBsYWNlcyBvZiB0aGUgY29kZSB0aGUgcHVzaGVzIHRoZSBidWZmZXIgc3RvcmUgbW9yZSBzaW1pbGFyLiBNb3JlCgkgIGNvbW1lbnRzIGFuZCBkZWJ1ZyBsb2dnaW5nLgoKMjAxMS0wMS0xMiAxMzowNTowNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIHRyYWNlOiBlbnN1cmUgbWVzc2FnZXMgYXJlIFwwIHRlcm1pbmF0ZWQKCjIwMTEtMDEtMTIgMTI6NTg6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgbmV0dGltZXByb3ZpZGVyOiBoYW5kbGUgaW52YWxpZCBuZXR3b3JrIGFkZHJlc3NlcyBlYXJsaWVyCgkgIEhhbmRsZSBpbmV0X2F0b24oKSByZXR1cm4gY29kZS4KCjIwMTEtMDEtMTIgMTI6NDQ6NTkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBjaGVja3M6IGFkZCBhIGNvbW1lbnQgdG8gaW5kaWNhdGUgdGhhdCB3ZSBpbnRlbnRpb25hbGx5IGxlYXZlIG91dCB0aGUgJ2JyZWFrJwoKMjAxMS0wMS0xMiAxMjo0MzowNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiByZW1vdmUgZGVhZCBjb2RlCgkgIFRoZSBHRXJyb3IgaXMgb25seSB1c2VkIGZvciB0aGUgbW1hcCBvcGVyYXRpb25zLiBJZiB3ZSBoYXZlIGFuIGVycm9yIHdlIGhhbmRsZQoJICBhbmQgY2xlYW4gaXQgdGhlcmUgYWxyZWFkeS4KCjIwMTEtMDEtMTIgMDk6MzM6NTMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBkb2NzOiBzbWFsbCBjb250cm9sbGVyIGFwaSBkb2NzIGltcHJvdmVtZW50CgoyMDExLTAxLTExIDE1OjA5OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogY2Fub25pY2FsaXplIHNpZ25hbCBuYW1lCgoyMDExLTAxLTExIDE1OjA5OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBkb2NzOiBtZW50aW9uIGhhdmUtdHlwZSBzaWduYWwgaW4gdGhlIGRvY3MuCgoyMDExLTAxLTI1IDA5OjE1OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogbWlub3IgZ3N0LWxhdW5jaCBtYW4gcGFnZSBmaXgKCSAgVHJhbnNtaXR0ZXIvcmVjZWl2ZXIgcGlwZWxpbmVzIHdlcmUgbWlzbGFiZWxsZWQuIFNwb3R0ZWQgYnkgTWFqaW4uCgoyMDExLTAxLTI1IDE2OjA5OjE4ICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWUgdGVzdDogUmVtb3ZlIHdvcmthcm91bmQgZm9yIHBhZF90YXNrIGhhbmdzCgkgIFJlbW92ZSBjb2RlIHRoYXQgaXNuJ3QgbmVlZGVkIGFueSBsb25nZXIsIHdoaWNoIHNldHMgdGhlIG11bHRpcXVldWUKCSAgdG8gUExBWUlORyBhbmQgYmFjayBiZWZvcmUgdW5yZWZmaW5nLCBpbiBvcmRlciB0byBhdm9pZCBhIGRlYWRsb2NrCgkgIHdhaXRpbmcgZm9yIGdzdHBhZCB0YXNrcyB0aGF0IHdlcmUgbmV2ZXIgc3RhcnRlZC4gVGhlIHByb2JsZW0gc2VlbXMKCSAgdG8gaGF2ZSBiZWVuIGZpeGVkIGxvbmcgYWdvLgoKMjAxMS0wMS0yNSAwMDoyMDozNCArMDgwMCAgQ2FpIFl1YW5xaW5nIDxja2phY2tldEBnbWFpbC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgZGVzaWduIGRvY3M6IGZpeCAyIHR5cG9zIGluIHBhcnQtTVQtcmVmY291bnRpbmcKCjIwMTEtMDEtMjQgMTc6NDY6MTUgKzA4MDAgIFlhbmcgWGljaHVhbiA8eGljaHVhbi55YW5nQHRpZXRvLmNvbT4KCgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgZGVzaWduIGRvY3M6IHBhcnQtZ3N0YmluLnR4dCBmaXggdHlwbwoJICBTaWduZWQtb2ZmLWJ5OiBZYW5nIFhpY2h1YW4gPHhpY2h1YW4ueWFuZ0B0aWV0by5jb20+CgoyMDExLTAxLTE5IDE1OjQ4OjI2ICswMDAwICBWaW5jZW50IFBlbnF1ZXJjJ2ggPHZpbmNlbnQucGVucXVlcmNoQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtYmxvY2sudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBkZXNpZ24gZG9jczogZml4IGEgZmV3IHR5cG9zIGFuZCBhIHRoaW5rbwoKMjAxMS0wMS0xMSAxNzo0Mzo1NyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBjbG9jazogQVBJOiBBZGQgZnVuY3Rpb24gdG8gcmUtaW5pdCBwZXJpb2RpYyBHc3RDbG9ja0lEcwoKMjAxMS0wMS0yMCAxNDozNzoyNSArMDAwMCAgVmluY2VudCBQZW5xdWVyYydoIDx2aW5jZW50LnBlbnF1ZXJjaEBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIGdzdHBsdWdpbmxvYWRlcjogZG8gbm90IGxlYWsgdGhlIGRlc2NyaXB0aW9uIHN0cmluZwoJICBUaGUgZGVzY3JpcHRpb24gc3RyaW5nIHdhcyBjaGFuZ2VkIHRvIGFuIGlubGluZWQgc3RyaW5nIGEgd2hpbGUgYmFjay4KCSAgKEJ1dDogbm8gbmVlZCB0byBpbnRlcm4gdGhlIGNvbnN0IHN0cmluZ3MgaGVyZSwgd2UganVzdCB1c2UgdGhlIGludGVybmluZwoJICB0byBhdm9pZCBhbGxvY2F0aW5nIGR1cGxpY2F0ZXMgYW5kIG1ha2UgbWVtb3J5IG1hbmFnZW1lbnQgZWFzaWVyLAoJICBzaW5jZSB0aGUgc3RyaW5ncyB3aWxsIGJlIGFyb3VuZCBmb3IgdGhlIGxpZmUtdGltZSBvZiB0aGUgYXBwIGFueXdheSkuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NDAwNzEKCjIwMTEtMDEtMjIgMTU6MzM6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogY2xhcmlmeSBkb2NzCgoyMDExLTAxLTExIDEwOjMzOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBkZXNpZ246IHVwZGF0ZSBidWZmZXJpbmcgZG9jCgkgIEFkZCBzdHJhdGVnaWVzIHRvIGJ1ZmZlcmluZyBkb2MKCjIwMTEtMDEtMjQgMTE6NTM6MTIgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPG1hcnQucmF1ZHNlcHBAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyAiU2luY2U6IDAuMTAuMzIiIG1hcmtlcnMgZm9yIEdzdENsb2NrCgkgIFNpbmNlIHRhZ3Mgd2VyZSBtaXNzaW5nIGZvciBnc3RfY2xvY2tfc2luZ2xlX3Nob3RfaWRfcmVpbml0KCkKCSAgYW5kIEdTVF9DTE9DS19ET05FLgoKMjAxMS0wMS0yNCAxMDo1NjoyMSArMDIwMCAgTWFydCBSYXVkc2VwcCA8bWFydC5yYXVkc2VwcEBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBkb2NzOiBGaXggR3N0UXVldWUyOnJpbmctYnVmZmVyLW1heC1zaXplIHByb3BlcnR5IFNpbmNlIHRhZyAoMC4xMC4zMSwgbm90IDAuMTAuMzApCgoyMDExLTAxLTI0IDEwOjI2OjQ1ICswMjAwICBNYXJ0IFJhdWRzZXBwIDxtYXJ0LnJhdWRzZXBwQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jczogYWRkIG1pc3NpbmcgIlNpbmNlOiAwLjEwLjMxIiBtYXJrZXIgZm9yIGdzdF9zdHJ1Y3R1cmVfZ2V0X2RhdGVfdGltZSgpCgoyMDExLTAxLTI0IDE0OjIyOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgdGVzdHM6IGFkZCB1bml0IHRlc3QgZm9yIHJlYWQtYmV5b25kLWVuZC1vZi1zdHJpbmcgYnVnCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mzk2NzQKCjIwMTEtMDEtMjQgMTQ6MTY6MzcgKzAwMDAgIE1pZ3VlbCBBbmdlbCBDYWJyZXJhIE1veWEgPG1hZG1hYzI1MDFAZ21haWwuY29tPgoKCSogZ3N0L3BhcnNlL3R5cGVzLmg6CgkgIHBhcnNlLWxhdW5jaDogZG9uJ3QgcmVhZCBwYXN0IGVuZCBvZiBzdHJpbmcgaWYgbGFzdCBjaGFyYWN0ZXIgaXMgYW4gZXNjYXBlIGNoYXIKCSAgV2hlbiB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBwcm9wZXJ0eSB2YWx1ZSBpcyBhIGJhY2tzbGFzaAoJICB0aGUgdW5lc2NhcGluZyBjb2RlIHJlYWRzIG9uZSBieXRlIHBhc3MgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5Njc0CgoyMDExLTAxLTE0IDA5OjIxOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIGRvY3M6IGhhY2sgYSBjaGFyc2V0PXV0Zi04IGludG8gcHdnL2FkbSBodG1sIHZlcnNpb25zCgkgIFNvIHRoZSBlbmNvZGluZyBvZiB0aGUgb3JpZ2luYWwgZG9jdW1lbnQgaXMgcmVzcGVjdGVkIGFuZAoJICBkaXNwbGF5cyBwcm9wZXJseSBpbiBicm93c2VycyB3aGVyZSB0aGUgZW5jb2RpbmcgYXV0b2RldGVjdGlvbgoJICBmYWlscyB0byByZWNvZ25pc2UgdGhhdCBpdCdzIHV0Zi04LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM5NDQ4CgoyMDExLTAxLTEzIDE1OjQxOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBkb24ndCBsZWFrIHhtbCBmaWxlIG5hbWUgaWYgR1NUX0NIRUNLX1hNTCBpcyBzZXQKCSAgU3BvdHRlZCBieSBudmluZWV0aEBnbWFpbC5jb20KCjIwMTEtMDEtMjMgMjM6NDU6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4zMiA9PT0KCjIwMTEtMDEtMjEgMTA6MjU6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjMyCgoyMDExLTAxLTIwIDE5OjA3OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmV2ZXJ0ICJjb25maWd1cmU6IHJlcXVpcmUgZ29iamVjdC1pbnRyb3NwZWN0aW9uID49IDAuOS4xMiIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAzYTU5ZDQxNmFmNmQwZjhiNjFlMjQ2MDgzMGViNmYxMTM4OTI5ZWMyLgoJICBSZXZlcnRpbmcgdGhpcywgYXMgdGhlIGZlYXR1cmUgd2UgYnVtcGVkIHRoZSByZXF1aXJlbWVudCBmb3IKCSAgZGlkbid0IGFjdHVhbGx5IHdvcmsgcHJvcGVybHkgb3IgaGVscCB3aXRoIHRoZSBpc3N1ZSB3ZSB3ZXJlCgkgIHRyeWluZyB0byBmaXggKGFuZCBpdCB3YXMgZml4ZWQgZGlmZmVyZW50bHkgaW4gdGhlIGVuZCkuCgoyMDExLTAxLTE4IDIyOjUxOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICBkb2NzOiBmaXggc3BlbGxpbmcgb2YgJ3RocmVzaG9sZCcgaW4gYXBwIGRldiBtYW51YWwKCjIwMTEtMDEtMTggMTA6MTA6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMS40IHByZS1yZWxlYXNlCgoyMDExLTAxLTE4IDA5OjA0OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uOiB0cnkgaGFyZGVyIHRvIG1ha2UgZy1pci1zY2FubmVyIHVzZSB0aGUgcmlnaHQgbGliZ3N0cmVhbWVyCgkgIEFwcGx5IGZpeCBmcm9tIGxpYmdzdGJhc2UgdG8gYWxsIGNvcmUgbGlicyBub3cgdGhhdCB3ZSBrbm93IHRoYXQgaXQKCSAgd29ya3MuIFNob3VsZCBmaXggcHJvYmxlbXMgd2l0aCBnLWlyLXNjYW5uZXIgdXNpbmcgdGhlIHdyb25nCgkgIChpZS4gc3lzdGVtKSBsaWJnc3RyZWFtZXIsIGxlYWRpbmcgdG8gbGlua2luZyBlcnJvcnMgc3VjaCBhcwoJICB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBnc3RfY2xvY2tfc2luZ2xlX3Nob3RfaWRfcmVpbml0Jy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzU0OQoKMjAxMS0wMS0xNCAwMDoyMDo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbHMubWFrOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkb2NzOiBmaXggZ2FyYmxlZCBVVEYtOCBjaGFyYWN0ZXJzIHdoZW4gZ2VuZXJhdGluZyBhcHAgZGV2IG1hbnVhbCBwcy9wZGYKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzOTQ0OAoKMjAxMS0wMS0xMyAyMDoxMjoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBnb2JqZWN0LWludHJvc3BlY3Rpb246IGFub3RoZXIgYXR0ZW1wdCB0byBtYWtlIGctaSBmaW5kIHRoZSByaWdodCBsaWJnc3RyZWFtZXIKCSAgVHVybnMgb3V0IGctaSBwdXRzIHRoZSBhZGRpdGlvbmFsIC1MIHdlIHNwZWNpZnkgYXQgdGhlIGVuZCwgaGVscGZ1bGx5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3NTQ5CgoyMDExLTAxLTEyIDE1OjQ2OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZXF1aXJlIGdvYmplY3QtaW50cm9zcGVjdGlvbiA+PSAwLjkuMTIKCSAgRWFybGllciB2ZXJzaW9ucyBkb24ndCBob25vdXIgdGhlIC1MLy0tbGlicmFyeS1wYXRoIG9wdGlvbiwKCSAgd2hpY2ggd2UgbmVlZC4gU2VlIGNvbW1pdCA0ZDBjY2RhZCBpbiBnb2JqZWN0LWludHJvc3BlY3Rpb24gZ2l0LgoKMjAxMS0wMS0xMiAxMDoxNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICBjb250cm9sbGVyOiB1cGRhdGUgZy1pIGluY2x1ZGUgcGF0aHMgYXMgd2VsbCBmb3IgaGVhZGVyIGNoYW5nZXMKCSAgSG9wZWZ1bGx5IG1ha2VzIEx1Y2lkIGFuZCBNYXZlcmljayBidWlsZCBib3RzIGhhcHB5IGFnYWluCgoyMDExLTAxLTExIDE4OjM5OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzEuMyBwcmUtcmVsZWFzZQoKMjAxMS0wMS0xMSAxODozODozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9nbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3N2LnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMS0wMS0xMSAxOToyNjo0MCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSAgY29udHJvbGxlcjogRml4IGhlYWRlcnMgdG8gdXNlIDwgPiBpbiAjaW5jbHVkZSBzdGF0ZW1lbnRzCgkgIFRoZSBiZWhhdmlvciBvZiAiICIgaW4gaW5jbHVkZSBzdGF0ZW1lbnRzIGlzIGltcGxlbWVudGF0aW9uLWRlZmluZWQgLQoJICBzZWUgdGhlIEMgc3RhbmRhcmQsIHNlY3Rpb24gNi4xMC4yIG9yCgkgIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjE1OTMKCjIwMTEtMDEtMTEgMTk6MTQ6MjggKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgZ3N0bmV0OiBGaXggLS1jLWluY2x1ZGUgZm9yIGdpciBnZW5lcmF0aW9uCgkgIFByZXZpb3VzbHkgaXQgd2FzIC0gcHJvYmFibHkgZHVlIHRvIGNvcHkvcGFzdGUgZXJyb3IgLSBsb29raW5nIGZvcgoJICBnc3RiYXNlIGhlYWRlcnMuCgkgIEl0J3MgY2hhbmdlZCBub3cgdG8gb25seSBpbmNsdWRlIHRoZSBvbmUgcHVibGljIGhlYWRlciBmb3IgZ3N0bmV0LmgKCjIwMTEtMDEtMTEgMTM6NDc6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBnb2JqZWN0LWludHJvc3BlY3Rpb246IG1ha2UgZy1pci1zY2FubmVyIHRyeSBoYXJkZXIgdG8gZmluZCB0aGUgcmlnaHQgbGliZ3N0cmVhbWVyCgkgIEl0J3Mgbm90IHF1aXRlIGNsZWFyIHRvIG1lIHdoeSBnLWlyLXNjYW5uZXIgZG9lc24ndCBnZXQgdGhpcyBpbmZvIGZyb20KCSAgdGhlIHBrZy1jb25maWcgZmlsZSwgbm9yIHdoeSBsaWJ0b29sIGRvZXNuJ3QgZ2V0IGl0IGZyb20gdGhlIC5sYS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzU0OQoKMjAxMS0wMS0xMSAxMzowNToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJICBwa2djb25maWc6IGFsc28gYWRkIGxpYmRpciB0byAtdW5pbnN0YWxsZWQgLnBjIGZpbGVzCgkgIFRoaXMgd2F5IHdlIGNhbiBmaW5kIHRoZSBwYXRocyB0byBwYXNzIGUuZy4gZy1pci1zY2FubmVyIGZvcgoJICB1bmluc3RhbGxlZCBzZXR1cHMuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzkwMzkKCjIwMTEtMDEtMTEgMTU6NDk6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZTU3MmM4NyB0byBmOTRkNzM5CgoyMDExLTAxLTExIDE1OjEwOjMyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBmaXhlIHRoZSBwcm9wZXJ0eSBsaW5rIGFuZCB0aGUgc2ljZSBkb2NzCgoyMDExLTAxLTExIDEyOjQ2OjMxICswMDAwICBSYWltbyBKw6RydmkgPHJhaW1vLmphcnZpQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IGZpeCBjb21waWxlciB3YXJuaW5nIHdpdGggTWluZ1cKCSAgZ3N0cG9sbC5jOiBJbiBmdW5jdGlvbiAnZ3N0X3BvbGxfZ2V0X3JlYWRfZ3BvbGxmZCc6CgkgIGdzdHBvbGwuYzo2OTI6MTA6IHdhcm5pbmc6IGFzc2lnbm1lbnQgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3QKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODkwMAoKMjAxMS0wMS0xMCAxNDozNzo0MSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0OiBvdXRwdXRzZWxlY3RvcjogQWRkIGFub3RoZXIgbmVnb3RpYXRpb24gdGVzdAoJICBBZGRzIGFuIHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IHRoZSBvdXRwdXQtc2VsZWN0b3Igd29ya3MKCSAgd2hlbiBuZWdvdGlhdGluZyBiZWZvcmUgc3JjcGFkcyBhcmUgcmVxdWVzdGVkCgoyMDExLTAxLTEwIDE0OjE5OjE3IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IEltcHJvdmUgZ2V0IGFuZCBzZXQgY2FwcyBmdW5jdGlvbnMKCSAgSW1wcm92ZSBzaW5rIHBhZCBnZXRjYXBzIGFuZCBzZXRjYXBzIGJ5IGhhbmRsaW5nIHRoZSBjYXNlIHdoZXJlCgkgIG5vIHNyYyBwYWRzIGV4aXN0IHlldAoKMjAxMS0wMS0xMCAxNjozNToyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGNjYmFhODUgdG8gZTU3MmM4NwoKMjAxMS0wMS0xMCAxNDo1Mjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ2NDQ1YWQgdG8gY2NiYWE4NQoKMjAxMS0wMS0xMCAwOTo1OToxOSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICB0ZXN0czogc2VsZWN0b3I6IHVucmVmIHBlZXIgcGFkCgkgIERvIG5vdCBmb3JnZXQgdG8gdW5yZWYgcGVlcidzIHBhZCBvbiBvdXRwdXQtc2VsZWN0b3IgbmVnb3RpYXRpb24KCSAgdGVzdHMKCjIwMTEtMDEtMTAgMTM6MTg6MTYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogbWFrZSBzdXJlIHdlIHdhaXQgYW5kIHJlbGVhc2UgdGhlIGxpdmUgbG9jawoJICBNYWtlIHN1cmUgd2UgcmVsZWFzZSB0aGUgbGl2ZSBsb2NrIGFuZCB3YWl0IGluIGFsbCBjYXNlcyB3aGVuIHdlIG5lZWQgdG8gd2FpdAoJICBmb3IgdGhlIHBsYXlpbmcgb3IgZmx1c2hpbmcgc3RhdGUgY2hhbmdlLgoJICBGaXhlcyAjNjM1Nzg1CgoyMDExLTAxLTA4IDE0OjUyOjI3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBEb24ndCByZXBsYWNlIHZhbGlkIGV4aXN0aW5nIHBsdWdpbnMgYnkgYmxhY2tsaXN0ZWQgb25lcwoJICBPbmx5IHJlcGxhY2UgZXhpc3RpbmcgcGx1Z2lucyBieSBibGFja2xpc3RlZCBvbmVzIGlmIHRoZXkgY29ycmVzcG9uZAoJICB0byB0aGUgZXhhY3Qgc2FtZSBwbHVnaW4uIElmIHRoZXkncmUgbm90IHRoZSBzYW1lLCBrZWVwIHRoZSBleGlzdGluZwoJICB2YWxpZCBvbmUuCgkgIEZpeGVzICM2Mzg5NDEKCjIwMTEtMDEtMDggMDI6MTk6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QtZWxlbWVudC1jaGVjay5tNC5pbjoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIGNvbmZpZ3VyZSwgZ3N0LXVuaW5zdGFsbGVkOiByZW1vdmUgYSBmZXcgYmFzaGlzbQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4OTYxCgoyMDExLTAxLTA3IDEyOjEzOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMzEuMiBwcmUtcmVsZWFzZQoKMjAxMS0wMS0wNyAwMjoxODozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIGluZGV4ZXJzOiBmaXggdHdvIHNtYWxsIGxlYWtzCgkgIGVsZW1lbnQgZmFjdG9yeSBwbHVnaW5fbmFtZXMgYXJlIGludGVybmVkIHN0cmluZ3MgdGhlc2UgZGF5cy4KCjIwMTEtMDEtMDcgMDA6NTM6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBuZXZlciBkaXNhYmxlIGdfYXNzZXJ0KCkgYW5kIGNhc3QgY2hlY2tzIGZvciB0aGUgdW5pdCB0ZXN0cwoJICBUaGUgdW5pdCB0ZXN0cyBhcmUgcmlkZGxlZCB3aXRoIGdfYXNzZXJ0KCkgYW5kIGZyaWVuZHMsIG1ha2Ugc3VyZSB3ZQoJICBkb24ndCBkaXNhYmxlIGFzc2VydCBhbmQgY2FzdCBjaGVja3MgZm9yIHRoZSB1bml0IHRlc3RzIGV2ZW4gaWYKCSAgdGhpcyBoYXMgYmVlbiBzcGVjaWZpZWQgZm9yIHRoZSByZXN0IG9mIHRoZSBjb2RlIGJhc2UsIGUuZy4gdmlhCgkgIC0tZGlzYWJsZS1nbGliLWFzc2VydHMuCgoyMDExLTAxLTA2IDE5OjQwOjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogaWdub3JlIG9sZCBsaWJnc3R2YWx2ZS5zbyBhbmQgbGliZ3N0c2VsZWN0b3Iuc28gcGx1Z2lucyB0byBtaW5pbWl6ZSB1cGdyYWRlIHBhaW4KCSAgSWdub3JlIHBsdWdpbnMgd2hpY2ggaGF2ZSBiZWVuIG1vdmVkIGludG8gY29yZWVsZW1lbnRzLCBzbyBpdCdzCgkgIHN0aWxsIHBvc3NpYmxlIHRvIGp1c3QgdXBncmFkZSBHU3RyZWFtZXIgY29yZSB3aXRob3V0IGhhdmluZyB0bwoJICB1cGdyYWRlIHRoZSB3aG9sZSBzdGFjay4KCjIwMTEtMDEtMDYgMTk6MjE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIFJldmVydCAicGFkdGVtcGxhdGU6IGFsbG93IGRpc2FibGluYmcgdGhlIHRlbXBsYXRlIG5hbWUgY29uZm9ybWFuY2UgY2hlY2tzIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGY5MDM5YzIyMDQwZTFhMzhhMzY5MWJjNGQyOTlhZjQyN2M5NjMyNTUuCgkgIFdlIHVzZSAtREdfRElTQUJMRV9BU1NFUlRTIGZvciByZWxlYXNlcyBhbmQgcHJlLXJlbGVhc2VzLCBidXQKCSAgZG9uJ3Qgd2FudCB0byBkaXNhYmxlIHBhZCBuYW1lIGNoZWNraW5nIGZvciByZWxlYXNlcyBpbiBnZW5lcmFsLAoJICBJIHRoaW5rLiBOZWVkIGEgYmV0dGVyIHNvbHV0aW9uIGhlcmUuIEZpeGVzIHBhZCB1bml0IHRlc3QgaW4KCSAgcHJlLXJlbGVhc2UvcmVsZWFzZSBtb2RlLgoKMjAxMS0wMS0wNCAxMjo0Mjo1MCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJICBvdXRwdXQtc2VsZWN0b3I6IEFkZCBwYWQtbmVnb3RpYXRpb24tbW9kZSBwcm9wZXJ0eQoJICBBZGRzIGdldGNhcHMvc2V0Y2FwcyB0byBvdXRwdXQtc2VsZWN0b3IgYW5kIGFkZHMgYSBwcm9wZXJ0eQoJICB0byBzZWxlY3Qgd2hpY2ggdHlwZSBvZiBuZWdvdGlhdGlvbiBzaG91bGQgYmUgZG9uZS4KCSAgVGhlIGF2YWlsYWJsZSBtb2RlcyBhcmU6CgkgICogbm9uZTogICBubyBuZWdvdGlhdGlvbiAoY3VycmVudCBiZWhhdmlvciksIGdldGNhcHMgcmV0dXJuIEFOWSBhbmQKCSAgc2V0Y2FwcyBhcmVuJ3Qgc2V0IG9uIGFueSBvZiB0aGUgcGVlcnMKCSAgKiBhbGw6ICAgIHVzZSBhbGwgcGFkcyAoZGVmYXVsdCksIGdldGNhcHMgcmV0dXJucyB0aGUgaW50ZXJzZWN0aW9uIG9mCgkgIHBlZXIgcGFkcyBhbmQgc2V0Y2FwcyBpcyBzZXQgb24gYWxsIHBlZXJzCgkgICogYWN0aXZlOiBnZXRjYXBzIGFuZCBzZXRjYXBzIGFyZSBwcm94aWVkIHRvIHRoZSBhY3RpdmUgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzgzODEKCjIwMTEtMDEtMDYgMTg6MTg6MjkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGRvY3M6IG1lbnRpb24gZXh0cmEgaW5wdXQtc2VsZWN0b3IgcGFkIHByb3BlcnRpZXMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzODM4MQoKMjAxMS0wMS0wNiAxNzo0NzozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9MSU5HVUFTOgoJKiBwby9lbC5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDktMjMgMTI6NDk6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogYXZvaWQgdW5uZWNlc3NhcnkgbWFsbG9jL2ZyZWUgZm9yIGVhY2ggbG9nIGZ1bmN0aW9uIGNhbGwgb24gTVNWQwoJICBBdm9pZCB1bm5lY2Vzc2FyeSBtYWxsb2MvZnJlZSB0byBnZXQgdGhlIGZpbGUgYmFzZW5hbWUgb24gTVNWQyB0byBhdm9pZAoJICB1bm5lY2Vzc2FyeSBvdmVyaGVhZCB3aGVuIGRvaW5nIEdTVF9ERUJVRz1mb286NSBvciBzbyAoc2luY2UgaXQgd291bGQgYmUKCSAgZG9uZSBiZWZvcmUgdGhlIGNhdGVnb3J5IGxvZyBsZXZlbCBmaWx0ZXJpbmcpLgoKMjAxMS0wMS0wNiAxNzoyOTo0NiArMDAwMCAgY2hyaXN0aWFuIHNjaGFsbGVyIDxjaHJpc3RpYW4uc2NoYWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIFVwZGF0ZSBzcGVjIGZpbGUgd2l0aCBsYXRlc3QgY2hhbmdlcyBhbmQgZW5hYmxlIEdJUgoKMjAxMS0wMS0wNSAxMjo1OTo0OCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIG9iamVjdDogRml4IGNyZWF0aW9uIG9mIGRlZmF1bHQgbmFtZQoJICBDaGFuZ2UgdGhlIGZpeGVkIGFsbG9jYXRpb24gKCEpIHRvIGdfc3RyZHVwX3ByaW50ZigpLgoKMjAxMC0xMi0yMCAxMzozMDo0MyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdEVsZW1lbnQ6IEFkZCBhIG1vcmUgZmxleGlibGUgd2F5IHRvIGdldCByZXF1ZXN0IHBhZHMuCgkgIFRoZSBuZXcgcmVxdWVzdF9uZXdfcGFkX2Z1bGwgdm1ldGhvZCBwcm92aWRlcyBhbiBhZGRpdGlvbmFsIGNhcHMgZmllbGQsCgkgIHdoaWNoIGFsbG93cyBlbGVtZW50cyB0byB0YWtlIGJldHRlciBkZWNpc2lvbiBwcm9jZXNzLgoJICBBbHNvLCBhZGQgYSBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCgpIGZ1bmN0aW9uIHRvIGFsbG93IGRldmVsb3BlcnMgdG8gYmUKCSAgYWJsZSB0byBzcGVjaWZ5IHdoaWNoIHBhZCB0ZW1wbGF0ZSB0aGV5IHdhbnQgYSBwYWQgb2YuCgkgIENvbnZlcnQgZ3N0dXRpbHMgdG8gdXNlIHRoYXQgbmV3IG1ldGhvZCBpbnN0ZWFkIG9mIHRoZSBvbGQgb25lIHdoZW4gbW9yZQoJICBlZmZpY2llbnQuCgkgIFRoaXMgaXMgdXNlZnVsIGZvciBiZWluZyBhYmxlIHRvIHJlcXVlc3QgcGFkcyBpbiBhIG1vcmUgZmxleGlibGUgd2F5LAoJICBlc3BlY2lhbGx5IHdoZW4gdGhlIGVsZW1lbnQgY2FuIHByb3ZpZGUgcGFkcyB3aG9zZSBjYXBzIGRlcGVuZCBvbgoJICBydW50aW1lIGNvbmZpZ3VyYXRpb24gYW5kIHRoZXJlZm9yZSBjYW4ndCBwcm92aWRlIHByZS1yZWdpc3RlcmVkCgkgIHBhZCB0ZW1wbGF0ZXMuCgkgIEFQSTogR3N0RWxlbWVudDo6cmVxdWVzdF9uZXdfcGFkX2Z1bGwKCSAgQVBJOiBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM3MzAwCgoyMDExLTAxLTA1IDE1OjUzOjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgaW5wdXRzZWxlY3RvcjogcmVtb3ZlICJzZWxlY3QtYWxsIiBwcm9wZXJ0eQoJICBzZWxlY3QtYWxsIG1vZGUgaXMgYSBiaXQgYnJva2VuIChlLmcuIG5ld3NlZ21lbnQgZXZlbnQKCSAgaGFuZGxpbmcpLCBzbyByZW1vdmUgdGhhdCBmb3Igbm93LiBUaGUgZnVubmVsIGVsZW1lbnQKCSAgaW4gZmFyc2lnaHQgcHJvdmlkZXMgc2ltaWxhciBmdW5jdGlvbmFsaXR5LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM5MDQyCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzgzODEKCjIwMTEtMDEtMDUgMTU6MzY6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlbW92ZSBzYWZldHkgY2hlY2sgZm9yIEdMaWIgPCAyLjgKCSAgRG9uJ3Qgd29ycnkgYWJvdXQgYWNjaWRlbnRhbGx5IHVzaW5nIEdMaWIgPCAyLjggYXQgcnVudGltZSBhbnltb3JlLgoKMjAxMS0wMS0wNSAxMToyNjoxMyArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSAgZ3N0ZGF0ZXRpbWU6IERpc2FibGUgdXNhZ2Ugb2YgR0RhdGVUaW1lIG9uIE1hY09TWAoJICBHTGliJ3MgR0RhdGVUaW1lIGRvZXNuJ3QgaGFuZGxlIHByb3Blcmx5IHRoZSBnbXQgb2Zmc2V0LiBUaGVyZWZvcmUKCSAgdXNlIG91ciBvd24gaW50ZXJuYWwgdmVyc2lvbiBpbnN0ZWFkIG9uIE1hY09TWC4KCSAgU2VlIGJ1ZyAjNjM4NjY2CgoyMDExLTAxLTA1IDEwOjU2OjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHJvZ3Jlc3MudHh0OgoJICBkZXNpZ246IG1vcmUgdXBkYXRlcyBmb3IgdGhlIHByb2dyZXNzIG1lc3NhZ2VzCgoyMDExLTAxLTA0IDE4OjM2OjQxICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXNpZ25hbHMueG1sOgoJICBwd2c6IEZpeCBsaW5rIHRvIEdPYmplY3QgZG9jdW1lbnRhdGlvbgoJICBCZXR0ZXIgaGF2ZSBnbm9tZS5vcmcgdGhhbiB2aWFncmEgOikKCjIwMTEtMDEtMDMgMjA6MzI6MjMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEFsd2F5cyBtYXJrIHJlY2VwdGlvbiBhcyBjb21wbGV0ZSBhZnRlciBFWElUCgkgIEF2b2lkcyB3YWl0aW5nIGZvcmV2ZXIgb24gZ3N0X3BvbGxfd2FpdCB3aGVuIHVzaW5nIHRoZSBzZWxlY3QKCSAgYmFja2VuZC4KCSAgRml4ZXMgIzYzNzA1NwoKMjAxMS0wMS0wNCAwMDo0ODoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgIGdzdGluZm86IGRvbid0IHVzZSBwcmludGYgZXh0ZW5zaW9ucyBpZiBHTGliIGlzbid0IHVzaW5nIHRoZSBzeXN0ZW0gcHJpbnRmCgkgIE1pZ2h0IGhlbHAgd2l0aCBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM4NTk5CgoyMDExLTAxLTAzIDIwOjE5OjA1ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEZpeCBmb3IgKHApc2VsZWN0IGJhY2tlbmQKCSAgV2UgbmVlZCB0byByZXNldCB0aGUgcmV2ZW50cyBmaWVsZCBvZiBlYWNoIHBvbGxmZCB3aGVuIHJlYWRpbmcgdGhlIHJlc3VsdHMKCSAgZnJvbSBzZWxlY3QgZWxzZSB3ZSdsbCBlbmQgdXAgd2l0aCBzdHJheSBpbmZvIGZyb20gcHJldmlvdXMgY2FsbHMgdG8KCSAgc2VsZWN0LgoKMjAxMS0wMS0wMyAwMTowNjowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IG1ha2UgbmV3IGdzdF92YWx1ZV9saXN0X21lcmdlKCkgd29yayBwcm9wZXJseQoJICBGaXggZnJlZWluZyBvZiBwYXJ0aWFsbHktaW5pdGVkIGxpc3QgdmFsdWUgd2hlbiBib3RoIHZhbHVlcwoJICBwYXNzZWQgYXJlIGVxdWFsIGFuZCB3ZSB3YW50IHRvIHJldHVybiBhIHNpbmdsZSBub24tbGlzdAoJICB2YWx1ZSBhcyByZXN1bHQuIEZpeGVzIHVuaXQgdGVzdC4gQWxzbyBmaXggdXAgZG9jcyBhIGJpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNzc3NgoKMjAxMC0xMi0yMSAyMzowMzoxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnczogZG9uJ3QgcHJvZHVjZSBkdXBsaWNhdGVkIGVudHJpZXMgd2hlbiBtZXJnaW5nIHNhbWUgdmFsdWUgdHdpY2UKCSAgQWRkIGEgdmFyaWFudCBvZiBnc3RfdmFsdWVfbGlzdF9jb25jYXQoKSB0aGF0IHNraXBzIGR1cGxpY2F0ZXMgYW5kIHVzZSB0aGF0IHdoZW4KCSAgbWVyZ2luZyB0YWdsaXN0cy4KCSAgQVBJOiBnc3RfdmFsdWVfbGlzdF9tZXJnZSgpCgoyMDExLTAxLTAyIDE2OjU4OjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmMsIGJhc2VzaW5rOiBhZGQgc29tZSBGSVhNRXMgZm9yIHRoZSB0eXBlIG9mIHRoZSBibG9ja3NpemUgcHJvcGVydHkKCjIwMTAtMTItMzEgMTI6MDg6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IG1ha2UgcGFkJ3MgZ2V0X3R5cGUgZnVuY3Rpb24gdGhyZWFkLXNhZmUKCjIwMTAtMTItMzEgMTE6Mzc6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RzZWxlY3Rvci1tYXJzaGFsLmxpc3Q6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3IuYzoKCSAgY29yZWVsZW1lbnRzOiByZW1vdmUgdW51c2VkIGZpbGVzCgoyMDEwLTEyLTMxIDEyOjI3OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBQcm90ZWN0ZWQgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbHMgZm9yIHRoZSBhY3RpdmUtcGFkIHdpdGggYSByZWN1cnNpdmUgbXV0ZXgKCSAgVGhpcyB3b3JrcyBhcm91bmQgYSB0aHJlYWQgc2FmZXR5IHByb2JsZW0gaW4gR0xpYiA8IDIuMjYuMCBhbmQgc2hvdWxkCgkgIGJlIHJlbW92ZWQgd2hlbiB3ZSBkZXBlbmQgb24gMi4yNi4wLgoJICBGaXhlcyBidWcgIzYwNzUxMy4KCjIwMTAtMTItMzEgMTY6NTI6NTQgKzA4MDAgIFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHRlc3RzOiBmaXggdHlwbwoJICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCjIwMTAtMTItMzEgMTY6NTA6NTcgKzA4MDAgIFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgZ3N0ZmRzaW5rOiBmaXggdHlwbwoJICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXYW5taW5nIDxXYW5taW5nLlpoYW5nQHRpZXRvLmNvbT4KCjIwMTAtMTItMzEgMTY6NTA6MTcgKzA4MDAgIFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkgIGRvY3M6IGZpeCB0eXBvCgkgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdhbm1pbmcgPFdhbm1pbmcuWmhhbmdAdGlldG8uY29tPgoKMjAxMC0xMi0zMSAwMTowOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICB0ZXN0czogcmVtb3ZlIG91dHB1dC1zZWxlY3RvciB0ZXN0IHdoaWNoIG5lZWRzIGVsZW1lbnRzIGZyb20gLWJhc2UKCSAgTW92ZSBpdCB0byAtYmFzZSBpbnN0ZWFkLgoKMjAxMC0xMi0zMSAwMDo1OTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSAgY2hlY2tzOiBlbmFibGUgaW5wdXQtc2VsZWN0b3IgYW5kIG91dHB1dC1zZWxlY3RvciB1bml0IHRlc3RzIGFmdGVyIG1vdmUKCjIwMTAtMTItMzEgMDA6NDg6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmhpZXJhcmNoeToKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICBkb2NzOiBhZGQgaW5wdXQtc2VsZWN0b3IgYW5kIG91dHB1dC1zZWxlY3RvciB0byBkb2NzCgoyMDEwLTEyLTMxIDAwOjQ1OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGNvcmVlbGVtZW50czogR1NUX0JPSUxFUlBMQVRFIGFscmVhZHkgc2V0cyBwYXJlbnRfY2xhc3MKCjIwMTAtMTItMzEgMDA6NDM6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3IsIG91dHB1dC1zZWxlY3RvcjogbWlub3IgY2xlYW4tdXBzCgoyMDEwLTEyLTMwIDE4OjU3OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGNvcmVlbGVtZW50czogbW92ZSBpbnB1dC1zZWxlY3RvciBhbmQgb3V0cHV0LXNlbGVjdG9yIHRvIGNvcmUKCSAgTW92ZWQgdG8gY29yZSBmcm9tIGdzdC1wbHVnaW5zLWJhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDMwNgoKMjAxMC0xMS0yNCAxMjoyMjowMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgb3V0cHV0LXNlbGVjdG9yLXRlc3Q6IGRvbid0IGhhcmRjb2RlIHZpZGVvc2lua3MgYW5kIHVzZSBtb3JlIGNvbG9yc3BhY2UgY29udi4KCSAgVXNlIGF1dG92aWRlb3NpbmsgaW5zdGVhZCBvZiBoYXJkY29kZWQgc2lua3MuIFVzZSBhbiBhZGRpdGlvbmFsIGNvbG9yc3BhY2UKCSAgY29udmVydGVyIGJldHdlZW4gdmlkZW90ZXN0c3JjIGFuZCB0aW1lb3ZlcmxheS4KCjIwMTAtMDktMTcgMDk6NTI6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogQXZvaWQgbG9zaW5nIHRoZSBsYXN0X2J1ZmZlciB3aGVuIHN3aXRjaGluZwoJICBUaGlzIHBhdGNoIG1ha2VzIG91dHB1dHNlbGVjdG9yIHRha2UgYW4gZXh0cmEgcmVmIHdoZW4gcHVzaGluZwoJICB0aGUgbGFzdF9idWZmZXIgdG8gYXZvaWQgaXQgbG9zaW5nIGl0IGR1cmluZyB0aGUgc3dpdGNoIGZ1bmN0aW9uLgoJICBUaGlzIG1ha2VzIHJlc2VuZC1sYXRlc3QgcHJvcGVybHkgd29yayBpZiB0aGUgYWN0aXZlLXBhZCBpcyBjaGFuZ2VkCgkgIGR1cmluZyB0aGUgc3dpdGNoIGZ1bmN0aW9uIGJ1ZmZlciBwdXNoaW5nIChvbiBhIHBhZCBwcm9iZSwgZm9yIGV4YW1wbGUpLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI5OTE3CgoyMDEwLTA5LTE3IDA5OjQ0OjAyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IFJlY2hlY2sgcGVuZGluZyBzd2l0Y2ggYWZ0ZXIgcHVzaGluZyBidWZmZXIKCSAgVGhpcyBwYXRjaCBtYWtlcyBvdXRwdXQtc2VsZWN0b3IgYWx3YXlzIHJlY2hlY2sgaWYgdGhlcmUncyBhCgkgIHBlbmRpbmcgcGFkIHN3aXRjaCBhZnRlciBwdXNoaW5nIGEgYnVmZmVyLCBwcmV2ZW50aW5nIHRoYXQKCSAgaXQgcHVzaGVzIGEgYnVmZmVyIG9uIHRoZSAnd3JvbmcnIHBhZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTkxNwoKMjAxMC0xMS0wMSAyMzowNDo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGxvZyB0aW1lcyBpbiBodW1hbiByZWFkYWJsZSBmb3JtCgoyMDEwLTExLTAxIDIyOjQwOjM2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogbW92ZSByZW9jY3VyaW5nIGxvZ3MgdG8gTE9HIGFuZCByZW1vdmUgYSBkb3VibGUgaW5mbwoJICBMZXNzIGRlYnVnIHNwZXcgaW4gREVCVUcgY2F0ZWdvcnkuIE5vIG5lZWQgdG8gbG9nIHBhZCBhZ2FpbiBpZiB3ZSB1c2UKCSAgR1NUX0xPR19PQkpFQ1QocGFkLC4uLikuCgoyMDEwLTEwLTE5IDEzOjQzOjE0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICB2YXJpb3VzIChnc3QpOiBhZGQgbWlzc2luZyBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGZsYWdzCgkgIENhbm9uaWNhbGl6ZSBwcm9wZXJ0eSBuYW1lcyBhcyBuZWVkZWQuCgoyMDEwLTA5LTA2IDExOjAzOjA3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3Rvcjogc3luYyB3aXRoIGNvcHkgaW4gLWJhc2UKCSAgVXNlIF9nZXRfY2Fwc19yZWZmZWQgdG8gYXZvaWQgY29waWVzLgoKMjAxMC0wOC0yNCAxMTo1MDo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogbW92ZSB0aGUgZGVidWcgaW5pdCB0byB0aGUgYm9pbGVycGxhdGUgbWFjcm8KCjIwMTAtMDgtMjQgMTE6NTA6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiB1c2UgR1NUX0JPSUxFUlBMQVRFIG1hY3JvCgoyMDEwLTAzLTIyIDEzOjE2OjMzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBBZGQgLVd3cml0ZS1zdHJpbmdzCgkgIGFuZCBmaXggaXRzIHdhcm5pbmdzCgoyMDEwLTAzLTIxIDIxOjM5OjE4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9zZWxlY3Rvci5jOgoJICBBZGQgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctcHJvdG90eXBlcyB0byBjb25maWd1cmUgZmxhZ3MKCSAgQW5kIGZpeCBhbGwgd2FybmluZ3MKCjIwMTAtMDMtMTggMTc6MzA6MjYgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzID0+IGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZQoKMjAxMC0wMS0yNSAxMjoyMTozNCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgUmV2ZXJ0ICJpbnB1dHNlbGVjdG9yOiBQcm90ZWN0IGdfb2JqZWN0X25vdGlmeSgpIHdpdGggdGhlIG9iamVjdCdzIG11dGV4IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDdlMDY3NjE1ZmZiNTYxNGYwNjhmNzc1M2MxMGRkZTk5YWZlNDljM2MsIGl0J3MgY2F1c2luZwoJICBkZWFkbG9ja3Mgd2l0aCBwbGF5YmluMi4KCjIwMTAtMDEtMjQgMjA6NTM6MDAgKzAxMDAgIEtpcHAgQ2Fubm9uIDxrY2Fubm9uQGxpZ28uY2FsdGVjaC5lZHU+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUHJvdGVjdCBnX29iamVjdF9ub3RpZnkoKSB3aXRoIHRoZSBvYmplY3QncyBtdXRleAoJICBUaGlzIHdvcmtzIGFyb3VuZCB0aGUgdGhyZWFkIHVuc2FmZXR5IG9mIGdfb2JqZWN0X25vdGlmeSgpCgkgIEZpeGVzIGJ1ZyAjNjA3NTEzLgoKMjAwOS0xMS0wOSAxMTo0OToxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogUmVtb3ZlIHVzZWxlc3MgdmFyaWFibGVzIGFuZCBmaXggYSB1bmluaXRpYWxpemVkIHZhcmlhYmxlIGNvbXBpbGVyIHdhcm5pbmdzCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIGRmZDUxYWE4MmE5ZTFjOTkyNDM3NTE4Mzc5NmVhYjcwZTU3NGEyMzEuCgoyMDA5LTExLTA5IDExOjQ4OjM5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBNYWtlIHN1cmUgdGhhdCBydW5uaW5nX3RpbWUtPnRpbWVzdGFtcCBjYWxjdWxhdGlvbiBuZXZlciBiZWNvbWVzIG5lZ2F0aXZlCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIGYzNjUzODU0NTg1ODY0YTA5ZDM1ZTAzNzg1MzQwNzMzMmVhNjkwMWYuCgoyMDA5LTExLTA5IDExOjQ4OjAwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgdGhlIHN0YXJ0IHRpbWUgKGkuZS4gdGltZXN0YW1wKSBhcyB0aGUgbGFzdCBzdG9wCgkgIFVzaW5nIHRoZSBlbmQgdGltZSBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHJlcGxhY2UgYnVmZmVycywgd2hpY2ggaXMKCSAgYSBiaWcgcHJvYmxlbSBmb3Igc3VidGl0bGVzIHRoYXQgY291bGQgaGF2ZSB2ZXJ5IGxvbmcgZHVyYXRpb25zLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCAyNzAzNGJlNDYxMTIzMWNjNTVmYTNkM2UyNTNiYWE0MGM2YmZmNDFkLgoKMjAwOS0xMS0wOSAxMTo0NzoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogSW1wcm92ZSBkZWJ1Z2dpbmcKCSAgTWVyZ2VkIGZyb20gZ3N0LXBsdWdpbnMtYmFzZS4KCjIwMDktMTEtMDUgMTM6NTM6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgUmV2ZXJ0ICJpbnB1dHNlbGVjdG9yOiB1c2UgZ2V0X2NhcHNfcmVmZmVkKCkiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNDllYzRmNzk2YTBlM2Y4OGE4NTE3MDg3ODJjODUzYmFmNGIwNTcyNC4KCSAgV2UgY2FuJ3QgdXNlIHRoaXMgbmV3IGZ1bmN0aW9uIHlldC4KCjIwMDktMTEtMDUgMTM6Mjk6NTUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogdXNlIGdldF9jYXBzX3JlZmZlZCgpCgoyMDA5LTExLTA0IDAwOjIxOjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogYWxzbyBhZGQgaW5saW5lIHRvIHRoZSBwcm90byB0byBmaXggdGhlIGJ1aWxkCgoyMDA5LTExLTAzIDE4OjE0OjEyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGdzdDogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMgYW5kIHJlc3VsdGluZyB1bnVzZWQgdmFyaWFibGVzCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDhjZDFiNTIwOWI2ODk0NGUxYmU1NmNhOGJiNjllNDZkNGFiYjdhMzQuCgoyMDA5LTExLTAzIDE4OjEyOjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBVc2UgdGhlIHNhbWUgaXRlcmF0ZSBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbiBhcyBpbiBnc3QtcGx1Z2lucy1iYXNlCgoyMDA5LTExLTAzIDE4OjExOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogUmVtb3ZlIEdTVF9ERUJVR19GVU5DUFRSIHdoZXJlIHRoZXkncmUgcG9pbnRsZXNzCgkgIFRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgaW4gdXNpbmcgR1NUX0RFQlVHX0ZVTkNQVFIgd2l0aCBHT2JqZWN0CgkgIHZpcnR1YWwgZnVuY3Rpb25zIHN1Y2ggYXMgZ2V0X3Byb3BlcnR5LCBzZXRfcHJvcGVyeSwgZmluYWxpemUgYW5kCgkgIGRpc3Bvc2UsIHNpbmNlIHRoZXknbGwgbmV2ZXIgYmUgdXNlZCBieSBhbnlvbmUgYW55d2F5LiBTYXZlcyBhCgkgIGZldyBieXRlcyBhbmQgcG9zc2libHkgYSBzaXh0ZWVudGggb2YgYSBwb2xhciBiZWFyLgoJICBNZXJnZWQgZnJvbSBnc3QtcGx1Z2lucy1iYXNlLCA2ZjRjMWFjNTgzNDFlZTE4OTIyNWQzMTNkZGZlOWFlMjRhNjVjODhjLgoKMjAwOS0xMS0wMyAxODowOTo1NSArMDEwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IFJlbW92ZSBSb25hbGQgQnVsdGplIGZyb20gQXV0aG9ycyBmaWVsZAoJICBSZXBsYWNlZCB3aXRoICJHU3RyZWFtZXIgbWFpbnRhaW5lcnMKCSAgPGdzdHJlYW1lci1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+IiBvciBqdXN0IHJlbW92ZWQsCgkgIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIG90aGVyIGF1dGhvcnMuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDBlOWJjNTEyNWFjYTU0NmQ3NzNlZDEwMDJkZjU3M2RkOGUyZGMxMzYuCgoyMDA5LTExLTAzIDE4OjA4OjA1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IHNldCBvdXRwdXQgY2FwcyBiZWZvcmUgcHVzaGluZwoJICBTZXQgdGhlIG91dHB1dCBjYXBzIG9uIHRoZSBzcmNwYWQgYmVmb3JlIHB1c2hpbmcgdGhlIGJ1ZmZlciBiZWNhdXNlIGVsc2UgY29yZQoJICB3aWxsIGRvIGEgcmF0aGVyIGV4cGVuc2l2ZSBjaGVjayB0byBzZWUgaWYgd2UgY2FuIGFjdHVhbGx5IGFjY2VwdCB0aG9zZSBjYXBzIG9uCgkgIHRoZSBzcmNwYWQuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIGJkZmI0YjQ2ZDc0NmVmMjk4ZmNmNDQyNjA4NzljMzQyYWY0Y2FmYTMuCgoyMDA5LTExLTAzIDE4OjA2OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IGluc3RhbGwgYW4gYWNjZXB0Y2FwcyBmdW5jdGlvbgoJICBJbnN0YWxsIGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gaW5zdGVhZCBvZiB1c2luZyB0aGUgZGVmYXVsdCBleHBlbnNpdmUKCSAgY2hlY2suIFdlIGFjY2VwdCB3aGF0ZXZlciBkb3duc3RyZWFtIGFjY2VwdHMgc28gd2UgcGFzcyBhbG9uZyB0aGUgYWNjZXB0Y2FwcwoJICBjYWxsIHRvIHRoZSBkb3duc3RyZWFtIHBlZXIuCgkgIE1lcmdlZCBmcm9tIGdzdC1wbHVnaW5zLWJhc2UsIDViNzJmMmFkZjk5NjczOTAzNmU4ZDliNWY5MTAwNTQ1NWQxZmZhY2UuCgoyMDA5LTEwLTI3IDExOjUxOjA1IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIFJlbW92ZSBleGVjdXRhYmxlIGJpdHMgZnJvbSBub24tZXhlY3V0YWJsZSBmaWxlcy4KCjIwMDktMDktMjUgMTE6MDc6MDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IFVzZSBuZXcgc2luZ2xlIGl0ZXJhdG9yIGZvciB0aGUgaW50ZXJuYWxseSBsaW5rZWQgcGFkcwoJICBUaGlzIGZpeGVzIGEgZGVhZGxvY2sgYW5kIHJlbW92ZXMgc29tZSB1c2VsZXNzIGNvZGUuCgoyMDA5LTA4LTMxIDE5OjMxOjU3ICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBtYWtlIEdTVF9GT1JNQVRfVElNRSB0aGUgZGVmYXVsdCBzZWdtZW50IGZvcm1hdAoKMjAwOS0wOC0xOSAxNzowNTozMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXRzZWxlY3RvcjogVXNlIGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGdldCBpbnRlcm5hbCBsaW5rcwoKMjAwOS0wNy0zMSAxMToyNzowMyArMDMwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLjEubXlvaGFuZW5Abm9raWEuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOgoJICBvdXRwdXRzZWxlY3RvcjogY2hlY2sgZm9yIHBlbmRpbmcgc3JjcGFkIGluIF9nZXRfcHJvcGVydHkoKQoJICBJZiB0aGVyZSBpcyBhIHBlbmRpbmcgc3JjcGFkLCByZXR1cm4gaXQgaW5zdGVhZCBvZiBhY3RpdmUgc3JjcGFkCgkgIGluIGdzdF9vdXRwdXRfc2VsZWN0b3JfZ2V0X3Byb3BlcnR5KCkgZnVuY3Rpb24uCgoyMDA5LTA2LTEyIDEwOjE0OjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dHNlbGVjdG9yOiBkbyB0aGUgcGFkX2FsbG9jIGZvciB0aGUgcGFkIHRoYXQgaXMgcGVuZGluZyBhbmQgaGF2ZSBhIGZhbGxiYWNrCgkgIFdlIHNob3VsZCBkbyB0aGUgcGFkX2FsbG9jIGZvciB0aGUgcGVuZGluZyBwYWQgaWYgYW55LCBhcyB3ZSB3aWxsIHN3aXRjaCB0byB0aGF0CgkgIHBhZCBvbiBuZXh0IF9jaGFpbigpIGNhbGwuIEFsc28gZG8gYSBmYWxsYmFjayBhbGxvYywgaWYgdGhlcmUgaXMgbm8gb3V0cHV0IHlldCB0bwoJICBub3QgZmFpbCBzdGF0ZSB0cmFuc2l0aW9ucyBpbiBkeW5hbWljIHBpcGVsaW5lcy4KCjIwMDktMDYtMDEgMTY6MzE6NDIgKzAzMDAgIExhc3NlIExhdWtrYW5lbiA8ZXh0LWxhc3NlLjIubGF1a2thbmVuQG5va2lhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0LXNlbGVjdG9yOiBzZXJpYWxpemUgc2V0dGluZyBhbmQgYWN0dWFsIGNoYW5naW5nIG9mIG5ldyBhY3RpdmUgcGFkCgoyMDA5LTA1LTA0IDEyOjI5OjU0ICswMzAwICBMYXNzZSBMYXVra2FuZW4gPGV4dC1sYXNzZS4yLmxhdWtrYW5lbkBub2tpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3RvcjogdW5yZWYgbGF0ZXN0IGJ1ZmZlciBhbHNvIHdoZW4gcmVzZW5kaW5nIGhhcyBiZWVuIGRpc2FibGVkCgoyMDA5LTA0LTE2IDE3OjMyOjAzICswMzAwICBMYXNzZSBMYXVra2FuZW4gPGV4dC1sYXNzZS4yLmxhdWtrYW5lbkBub2tpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIG91dHB1dC1zZWxlY3Rvcjoga2VlcCByZWYgdG8gYnVmZmVyIGZvciByZXNlbmRpbmcgb25seSBpZiBleHBsaWNpdGx5IHJlcXVlc3RlZAoKMjAwOS0wNi0wNCAxOTowODoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBkb24ndCBsZWFrIHBhZHMgaW4gaXRlcmF0b3IKCjIwMDktMDYtMDQgMDg6NTY6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgIGlucHV0c2VsZWN0b3I6IE5vdGlmeSB3aGVuIHRoZSB0YWdzIHByb3BlcnR5IG9mIHRoZSBzZWxlY3RvciBzaW5rcGFkcyBjaGFuZ2VzCgkgIEZpcnN0IHBhcnQgb2YgYnVnICM1ODQ2ODYuCgoyMDA5LTA1LTI4IDEwOjM4OjUwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmg6CgkgIHNlbGVjdG9yOiByZW1vdmUgbm90IG5lZWRlZCBpbnN0YW5jZSB2YXIgKHByZXZpb3VzIGNvbW1pdCkuCgoyMDA5LTA1LTI4IDEwOjEyOjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuaDoKCSAgb3V0cHV0c2VsZWN0b3I6IGltcGxlbWVudCBwYWRfYWxsb2Mgb24gYWN0aXZlIHBhZC4KCjIwMDktMDQtMjMgMTE6MDQ6NDYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dC1zZWxlY3RvcjogRm9yd2FyZCBzZWdtZW50IGV2ZW50cyBmb3IgdGhlIGFjdGl2ZSBwYWQgaW1tZWRpYXRlbHkuCgkgIFdoZW4gYSBzZWdtZW50IGV2ZW50IGlzIHJlY2VpdmVkIG9uIHRoZSBhY3RpdmUgcGFkLCBmb3J3YXJkIGl0IGRvd25zdHJlYW0KCSAgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiBkZWZlcnJpbmcgaXQgdW50aWwgdGhlIG5leHQgZGF0YSBidWZmZXIgYXJyaXZlcy4gVGhpcwoJICBmaXhlcyBwcm9ibGVtcyB3aXRoIHNlZ21lbnQgdXBkYXRlcyBuZXZlciBiZWluZyBzZW50IGRvd25zdHJlYW0sIGxpa2UgdGhvc2UKCSAgbmVlZGVkIGZvciBzcGFyc2Ugc3RyZWFtcywgb3IgZm9yIGNsb3NpbmcgcHJldmlvdXNseSBvcGVuZWQgc2VnbWVudHMuCgkgIFRoaXMgZml4ZXMgcGxheWJhY2sgb2YgRFZEIG1lbnVzIHdpdGggYSBzdGlsbCB2aWRlbyBmcmFtZSBhbmQgYW4gYXVkaW8gdHJhY2ssCgkgIGZvciBleGFtcGxlLgoJICBGaXhlczogIzU3Nzg0MwoKMjAwOS0wMy0yNyAxMToyMDowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgb3V0cHV0c2VsZWN0b3I6IHJlc2V0IHN0YXRlIHdoZW4gZ29pbmcgdG8gUkVBRFkKCSAgUmVzZXQgdGhlIGxhc3QtYnVmZmVyLCB0aGUgcGVuZGluZyBwYWQgYW5kIHRoZSBzZWdtZW50IHdoZW4gZ29pbmcgdG8gdGhlIFJFQURZCgkgIHN0YXRlLgoJICBGaXhlcyAjNTc2NzEyLgoKMjAwOS0wMy0yNCAxNToyMzowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBzZWxlY3RvcjogbWVyZ2UgdGhlIHRhZ3MKCSAgTWVyZ2UgdGhlIHRhZ3MgcmVjZWl2ZWQgb24gdGhlIGlucHV0LXNlbGVjdG9yIHNpbmtwYWRzIGluc3RlYWQgb2Ygb25seSBrZWVwaW5nCgkgIHRoZSBsYXN0IG9uZSB3ZSBzYXcuCgoyMDA5LTAyLTI1IDExOjQ1OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgZG9jczogdmFyaW91cyBkb2MgZml4ZXMKCSAgTm8gc2hvcnQtZGVzYyBhcyB3ZSBoYXZlIHRoZW0gaW4gdGhlIGVsZW1lbnQgZGV0YWlscy4KCSAgQWxzbyBrZWVwIHRoaW5ncyAoTWFrZWZpbGUuYW0gYW5kIHNlY3Rpb25zLnR4dCkgc29ydGVkLgoJICBSZXdvcmQgYW1iaWdvdXMgcmV0dXJucy4gTm8gdGV4dCBhZnRlciBzaW5jZSBwbGVhc2UuCgoyMDA5LTAyLTExIDE3OjIxOjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBpbnB1dHNlbGVjdG9yOiBGaXggY29tcGlsYXRpb24sIGFjdGl2YXRlX3NpbmtwYWQoKSBoYXMgbm8gbm90aWZ5IHBhcmFtZXRlcgoKMjAwOS0wMi0xMCAxNjoyMjo1NCAtMDgwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgaW5wdXQtc2VsZWN0b3I6IEFjdGl2YXRlIGFuZCBub3RpZnkgcGFkIGJlZm9yZSBwcm9jZXNzaW5nIGV2ZW50cy4KCSAgRXZlbnRzIHNob3VsZCB0cmlnZ2VyIHBhZCBzZWxlY3Rpb24gaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIGFuCgkgIGV4cGxpY2l0bHkgc2VsZWN0ZWQgcGFkLCBzbyB0aGF0IGV2ZW50cyBwcmlvciB0byBmaXJzdCBidWZmZXIgZG9uJ3QgZ2V0CgkgIGxvc3QuCgoyMDA5LTAxLTMwIDE4OjI3OjAzIC0wODAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBVbnJlZiBldmVudCBpZiB3ZSBkb24ndCBmb3J3YXJkIGl0LCB1bnJlZiBwYWRzIHdoZW4gZG9uZSB3aXRoIHRoZW0uCgoyMDA4LTEyLTA0IDE3OjUxOjM3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogRW5zdXJlIHdlIGVtaXQgbm90aWZ5OjphY3RpdmUtcGFkIHdoZW4gYXV0by1zZWxlY3RpbmcgYSBwYWQgZHVlIHRvIGl0IGhhdmluZyBhY3Rpdml0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICBFbnN1cmUgd2UgZW1pdCBub3RpZnk6OmFjdGl2ZS1wYWQgd2hlbiBhdXRvLXNlbGVjdGluZyBhIHBhZAoJICBkdWUgdG8gaXQgaGF2aW5nIGFjdGl2aXR5IGFuZCB1cyBub3QgaGF2aW5nIGFuIGV4aXN0aW5nIGFjdGl2ZQoJICBwYWQuIEZpeGVzICM1NjMxNDcKCjIwMDgtMTAtMTUgMTc6NDU6MzcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogR3JhY2VmdWxseSBoYW5kbGUgdGhlIGNhc2VzIHdoZW4gd2UgZG9udCcgaGF2ZSBvdGhlcnBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3RfaW5wdXRfc2VsZWN0b3JfZXZlbnQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3F1ZXJ5KToKCSAgR3JhY2VmdWxseSBoYW5kbGUgdGhlIGNhc2VzIHdoZW4gd2UgZG9udCcgaGF2ZSBvdGhlcnBhZC4KCSAgRml4ZXMgIzU1NjQzMAoKMjAwOC0xMC0wNyAxMzoxNDo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5jOiBDaG9vc2UgcmlnaHQgcGFkIGZvciBzZW5kaW5nIGV2ZW50cy4gRml4ZXMgIzU1NTI0NAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIENob29zZSByaWdodCBwYWQgZm9yIHNlbmRpbmcgZXZlbnRzLiBGaXhlcyAjNTU1MjQ0CgoyMDA4LTA5LTA4IDIwOjI3OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IFJlc2V0IHRoZSBzZWxlY3RvciBzdGF0ZSB3aGVuIGdvaW5nIHRvIFJFQURZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogKGdzdF9zZWxlY3Rvcl9wYWRfcmVzZXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3Jlc2V0KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jaGFuZ2Vfc3RhdGUpOgoJICBSZXNldCB0aGUgc2VsZWN0b3Igc3RhdGUgd2hlbiBnb2luZyB0byBSRUFEWS4KCjIwMDgtMDktMDEgMTM6MjM6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogUmV1c2UgdGhlIGdldF9saW5rZWRfcGFkcyBmb3IgYm90aCBzb3VyY2UgYW5kIHNpbmtwYWRzIGJlY2F1c2UgdGhleSBhcmUgdGhlIHNhbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X2lucHV0X3NlbGVjdG9yX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2V2ZW50KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9xdWVyeSk6CgkgIFJldXNlIHRoZSBnZXRfbGlua2VkX3BhZHMgZm9yIGJvdGggc291cmNlIGFuZCBzaW5rcGFkcyBiZWNhdXNlIHRoZXkgYXJlCgkgIHRoZSBzYW1lLgoJICBJbXBsZW1lbnQgYSBjdXN0dW0gZXZlbnQgaGFuZGxlciBhbmQgZ2V0IHRoZSBpbnRlcm5hbGx5IGxpbmtlZCBwYWQKCSAgZGlyZWN0bHkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0IChzbG93ZXIpIGltcGxlbWVudGF0aW9uLgoKMjAwOC0wOC0yNyAxNTo0NToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBJbXBsZW1lbnQgdGhlIExBVEVOQ1kgcXVlcnkgaW4gYSBiZXR0ZXIgd2F5IGJ5IHRha2luZyB0aGUgbGF0ZW5jeSBvZiBhbGwgc2lua3BhZHMgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcXVlcnkpOgoJICBJbXBsZW1lbnQgdGhlIExBVEVOQ1kgcXVlcnkgaW4gYSBiZXR0ZXIgd2F5IGJ5IHRha2luZyB0aGUgbGF0ZW5jeSBvZiBhbGwKCSAgc2lua3BhZHMgYW5kIHRha2luZyB0aGUgbWluL21heCBpbnN0ZWFkIG9mIGp1c3QgdGFraW5nIGEgcmFuZG9tIHBhZC4KCjIwMDgtMDgtMDUgMDk6MDU6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogTW92ZSB0aGUgc2VsZWN0LWFsbCBsb2dpYyBpbnRvIHRoZSBhY3RpdmF0aW9uIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcGFkLiBXZSB3YW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9nZXRjYXBzKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9hY3RpdmF0ZV9zaW5rcGFkKToKCSAgTW92ZSB0aGUgc2VsZWN0LWFsbCBsb2dpYyBpbnRvIHRoZSBhY3RpdmF0aW9uIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQKCSAgcGFkLiBXZSB3YW50IHRvIHJlbWVtYmVyIHRoZSBsYXN0IHBhZCB3aXRoIGFjdGl2aXR5IGluIHNlbGVjdC1hbGwgbW9kZS4KCSAgRml4IHRoZSBnZXRjYXBzIGZ1bmN0aW9uLCB3ZSBjYW4gcHJvZHVjZSB0aGUgdW5pb24gb2YgdGhlIHVwc3RyZWFtIGNhcHMKCSAgaW4gc2VsZWN0LWFsbCBtb2RlLCBub3QgdGhlIGludGVyc2VjdGlvbiBsaWtlIHByb3h5X2dldGNhcHMoKSBkb2VzLgoKMjAwOC0wNi0xOSAxMzoxODoyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgb3V0cHV0LXNlbGVjdG9yOiBVc2UgQk9JTEVSUExBVEUgbWFjcm8gYW5kIHVwZGF0ZSB0ZXN0IHRvIHRoZSBsYXRlc3QgYXBpIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgKiB0ZXN0cy9pY2xlcy9vdXRwdXQtc2VsZWN0b3ItdGVzdC5jOgoJICBVc2UgQk9JTEVSUExBVEUgbWFjcm8gYW5kIHVwZGF0ZSB0ZXN0IHRvIHRoZSBsYXRlc3QgYXBpIGNoYW5nZXMuCgoyMDA4LTA2LTEyIDE0OjQ5OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEbyBub3QgdXNlIHNob3J0X2Rlc2NyaXB0aW9uIGluIHNlY3Rpb24gZG9jcyBmb3IgZWxlbWVudHMuIFdlIGV4dHJhY3QgdGhlbSBmcm9tIGVsZW1lbnQgZGV0YWlscyBhbmQgdGhlcmUgd2lsbCBiZSB3YXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXh0L2RjMTM5NC9nc3RkYzEzOTQuYzoKCSAgKiBleHQvaXZvcmJpcy92b3JiaXNkZWMuYzoKCSAgKiBleHQvamFjay9nc3RqYWNrYXVkaW9zaW5rLmM6CgkgICogZXh0L21ldGFkYXRhL2dzdG1ldGFkYXRhZGVtdXguYzoKCSAgKiBleHQvbXl0aHR2L2dzdG15dGh0dnNyYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6CgkgICogZ3N0LWxpYnMvZ3N0L2FwcC9nc3RhcHBzaW5rLmM6CgkgICogZ3N0L2JheWVyL2dzdGJheWVyMnJnYi5jOgoJICAqIGdzdC9kZWludGVybGFjZS9nc3RkZWludGVybGFjZS5jOgoJICAqIGdzdC9yYXdwYXJzZS9nc3RhdWRpb3BhcnNlLmM6CgkgICogZ3N0L3Jhd3BhcnNlL2dzdHZpZGVvcGFyc2UuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBiaW4uYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBjbGllbnQuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBqaXR0ZXJidWZmZXIuYzoKCSAgKiBnc3QvcnRwbWFuYWdlci9nc3RydHBwdGRlbXV4LmM6CgkgICogZ3N0L3J0cG1hbmFnZXIvZ3N0cnRwc2Vzc2lvbi5jOgoJICAqIGdzdC9ydHBtYW5hZ2VyL2dzdHJ0cHNzcmNkZW11eC5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0b3V0cHV0c2VsZWN0b3IuYzoKCSAgKiBnc3QvdmlkZW9zaWduYWwvZ3N0dmlkZW9hbmFseXNlLmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvZGV0ZWN0LmM6CgkgICogZ3N0L3ZpZGVvc2lnbmFsL2dzdHZpZGVvbWFyay5jOgoJICAqIHN5cy9vc3M0L29zczQtbWl4ZXIuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNpbmsuYzoKCSAgKiBzeXMvb3NzNC9vc3M0LXNvdXJjZS5jOgoJICBEbyBub3QgdXNlIHNob3J0X2Rlc2NyaXB0aW9uIGluIHNlY3Rpb24gZG9jcyBmb3IgZWxlbWVudHMuIFdlIGV4dHJhY3QKCSAgdGhlbSBmcm9tIGVsZW1lbnQgZGV0YWlscyBhbmQgdGhlcmUgd2lsbCBiZSB3YXJuaW5ncyBpZiB0aGV5IGRpZmZlci4KCSAgQWxzbyBmaXhpbmcgdXAgdGhlIENoYW5nZUxvZyBvcmRlci4KCjIwMDgtMDMtMjAgMTg6MTA6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogRG8gZ19vYmplY3Rfbm90aWZ5KCkgb25seSB3aGVuIG5vdCBob2xkaW5nIHRoZSBsb2NrIHRvIGdldCB0aGUgcHJvcGVydHkgYmVjYXVzZSBvdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOgoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zd2l0Y2gpOgoJICBEbyBnX29iamVjdF9ub3RpZnkoKSBvbmx5IHdoZW4gbm90IGhvbGRpbmcgdGhlIGxvY2sgdG8gZ2V0IHRoZSBwcm9wZXJ0eQoJICBiZWNhdXNlIG90aGVyd2lzZSB3ZSBydW4gaW50byBhIGRlYWRsb2NrIHdpdGggdGhlIGRlZXAtbm90aWZ5IGhhbmRsZXJzCgkgIHRoYXQgYXJlIHBvc3NpYmx5IGluc3RhbGxlZC4KCjIwMDgtMDMtMjAgMTc6NDg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogUmVsZWFzZSB0aGUgc2VsZWN0b3IgbG9jayB3aGVuIHBhZCBhbGxvYyBoYXBwZW5zIG9uIGEgbm9uIHNlbGVjdGVkIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksIChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLCAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKToKCSAgUmVsZWFzZSB0aGUgc2VsZWN0b3IgbG9jayB3aGVuIHBhZCBhbGxvYyBoYXBwZW5zIG9uIGEgbm9uIHNlbGVjdGVkIHBhZC4KCjIwMDgtMDMtMjAgMTc6MDc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogQWRkIHBhZCBwcm9wZXJ0eSB0byBjb25maWd1cmUgYmVoYXZpb3VyIG9mIHRoZSB1bnNlbGVjdGVkIHBhZCwgaXQgY2FuIHJldHVybiBPSyBvciBOLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfaW5pdCksIChnc3Rfc2VsZWN0b3JfcGFkX3NldF9wcm9wZXJ0eSksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2dldF9wcm9wZXJ0eSksIChnc3Rfc2VsZWN0b3JfcGFkX2V2ZW50KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfYnVmZmVyYWxsb2MpLCAoZ3N0X3NlbGVjdG9yX3BhZF9jaGFpbiksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpOgoJICBBZGQgcGFkIHByb3BlcnR5IHRvIGNvbmZpZ3VyZSBiZWhhdmlvdXIgb2YgdGhlIHVuc2VsZWN0ZWQgcGFkLCBpdCBjYW4KCSAgcmV0dXJuIE9LIG9yIE5PVF9MSU5LRUQsIGJhc2VkIG9uIHRoZSB1c2UgY2FzZS4KCjIwMDgtMDMtMjAgMTY6NDg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuKjogRmlndXJlIG91dCB0aGUgbG9ja2luZyBhIGJpdCBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZ2V0X3J1bm5pbmdfdGltZSksIChnc3Rfc2VsZWN0b3JfcGFkX3Jlc2V0KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZXZlbnQpLCAoZ3N0X3NlbGVjdG9yX3BhZF9idWZmZXJhbGxvYyksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfd2FpdCksIChnc3Rfc2VsZWN0b3JfcGFkX2NoYWluKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9jbGFzc19pbml0KSwgKGdzdF9pbnB1dF9zZWxlY3Rvcl9pbml0KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9kaXNwb3NlKSwgKGdzdF9zZWdtZW50X3NldF9zdGFydCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9nZXRfbGlua2VkX3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfaXNfYWN0aXZlX3NpbmtwYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2FjdGl2YXRlX3NpbmtwYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3JlcXVlc3RfbmV3X3BhZCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfcmVsZWFzZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2NoYW5nZV9zdGF0ZSksIChnc3RfaW5wdXRfc2VsZWN0b3JfYmxvY2spLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3N3aXRjaCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIEZpZ3VyZSBvdXQgdGhlIGxvY2tpbmcgYSBiaXQgbW9yZS4KCSAgTWFyayBidWZmZXJzIHdpdGggZGlzY29udCBhZnRlciBzd2l0Y2hpbmcuCgkgIEZpeCBpbml0aWFsIHNlZ21lbnQgZm9yd2FyZGluZywgbWFrZSBzdXJlIHRvIG9ubHkgZm9yd2FyZCBvbmUgc2VnbWVudAoJICByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHNlcXVlbmNlIG9mIGJ1ZmZlcnMvc2VnbWVudHMgaXMuIFNlZSAjNTIyMjAzLgoJICBJbXByb3ZlIGZsdXNoaW5nIHdoZW4gYmxvY2tlZC4KCSAgUmV0dXJuIE5PVF9MSU5LRUQgd2hlbiBhIHN0cmVhbSBpcyBub3Qgc2VsZWN0ZWQuCgkgIE5vdCBBUEkgY2hhbmdlIGZvciB0aGUgc3dpdGNoIHNpZ25hbCBpbiB0aGUgZG9jcy4KCSAgRml4IHN0YXJ0L3RpbWUvYWNjdW0gdmFsdWVzIG9mIHRoZSBuZXcgc2VnbWVudC4KCSAgQ29ycmVjdGx5IHVubG9jayBhbmQgZmx1c2ggYSBibG9ja2luZyBzZWxlY3RvciB3aGVuIGdvaW5nIHRvIFJFQURZLgoKMjAwOC0wMy0xNCAxNzoyMjoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiBBZGQgbG90cyBvZiBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksCgkgIChnc3Rfc2VsZWN0b3JfcGFkX2J1ZmZlcmFsbG9jKSwgKGdzdF9zZWxlY3Rvcl9wYWRfY2hhaW4pLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX2NsYXNzX2luaXQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9hY3RpdmVfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3B1c2hfcGVuZGluZ19zdG9wKToKCSAgQWRkIGxvdHMgb2YgZGVidWdnaW5nLgoJICBGaXggdGltZSBtZW1iZXIgaW4gdGhlIG5ld3NlZ21lbnQgZXZlbnQuCgoyMDA4LTAzLTEzIDE2OjQ2OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLio6IFZhcmlvdXMgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9zZWxlY3Rvcl9wYWRfZmluYWxpemUpLCAoZ3N0X3NlbGVjdG9yX3BhZF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCksIChnc3RfaW5wdXRfc2VsZWN0b3JfY2xhc3NfaW5pdCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfaW5pdCksIChnc3RfaW5wdXRfc2VsZWN0b3Jfc2V0X2FjdGl2ZV9wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3JfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9yZXF1ZXN0X25ld19wYWQpLAoJICAoZ3N0X2lucHV0X3NlbGVjdG9yX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF9pbnB1dF9zZWxlY3Rvcl9wdXNoX3BlbmRpbmdfc3RvcCksCgkgIChnc3RfaW5wdXRfc2VsZWN0b3Jfc3dpdGNoKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgQWRkZWQgdGFncyB0byB0aGUgcGFkcy4KCSAgU2VsZWN0IGFjdGl2ZSBwYWQgYmFzZWQgb24gdGhlIHBhZCBvYmplY3QgaW5zdGVhZCBvZiBpdHMgbmFtZS4KCSAgRml4IHJlZmNvdW50IGluIHNldF9hY3RpdmVfcGFkLgoJICBBZGQgcHJvcGVydHkgdG8gZ2V0IHRoZSBudW1iZXIgb2YgcGFkcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIChnc3Rfb3V0cHV0X3NlbGVjdG9yX2NsYXNzX2luaXQpLAoJICAoZ3N0X291dHB1dF9zZWxlY3Rvcl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X291dHB1dF9zZWxlY3Rvcl9nZXRfcHJvcGVydHkpOgoJICBWYXJpb3VzIGNsZWFudXBzLgoJICBTZWxlY3QgdGhlIGFjdGl2ZSBwYWQgYmFzZWQgb24gdGhlIHBhZCBvYmplY3QgaW5zdGVhZCBvZiBpdHMgbmFtZS4KCSAgRml4IGxvY2tpbmcgd2hlbiBzZXR0aW5nIHRoZSBhY3RpdmUgcGFkLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3ItbWFyc2hhbC5saXN0OgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6IChjbGVhbnVwX3BhZCksCgkgIChzZWxlY3Rvcl9zZXRfYWN0aXZlX3BhZCksIChydW5faW5wdXRfc2VsZWN0b3JfYnVmZmVyX2NvdW50KToKCSAgRml4ZXMgZm9yIHBhZCBpbnN0ZWFkIG9mIHBhZG5hbWUgZm9yIHBhZCBzZWxlY3Rpb24uCgoyMDA4LTAyLTI2IDEyOjAxOjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6IEZpeCBjaGFuZ2luZyB0byBzYW1lIHBhZCB0d2ljZSBiZWZvcmUgYSBjaGFpbiBjYWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIEZpeCBjaGFuZ2luZyB0byBzYW1lIHBhZCB0d2ljZSBiZWZvcmUgYSBjaGFpbiBjYWxsLgoKMjAwOC0wMi0yNSAwODo1Mzo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLio6IEFkZGVkICJzZWxlY3QtYWxsIiBwcm9wZXJ0eSB0byBtYWtlIGl0IHdvcmsgbGlrZSBhZ2dyZWdhdG9yIGluIDAuOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpbnB1dHNlbGVjdG9yLmg6CgkgIEFkZGVkICJzZWxlY3QtYWxsIiBwcm9wZXJ0eSB0byBtYWtlIGl0IHdvcmsgbGlrZSBhZ2dyZWdhdG9yIGluIDAuOC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIEZpeCByZXNlbmQtbGF0ZXN0IGJlaGF2b2l1ci4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3NlbGVjdG9yLmM6CgkgIEFkZCB1bml0IHRlc3RzIGZvciBzZWxlY3Rvci4KCjIwMDgtMDItMDcgMTM6NDg6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9tdWx0aWZpbGUvZ3N0bXVsdGlmaWxlc2luay5jOiBBZGQgYSBmaXhtZSBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbXVsdGlmaWxlL2dzdG11bHRpZmlsZXNpbmsuYzoKCSAgQWRkIGEgZml4bWUgY29tbWVudC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgIEZpeCBzYW1lIGxlYWsgYXMgaW4gaW5wdXQtc2VsZWN0b3IuCgkgICogdGVzdHMvaWNsZXMvb3V0cHV0LXNlbGVjdG9yLXRlc3QuYzoKCSAgSW1wcm92ZSB0aGUgdGVzdC4KCjIwMDgtMDItMDEgMTc6MDg6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzogRG9uJ3QgbGVhayBldmVudCBvbiBwYWRzIHRoYXQgYXJlIG5vdCBsaW5rZWQuIEZpeGVzICM1MTI4MjYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aW5wdXRzZWxlY3Rvci5jOiAoZ3N0X3NlbGVjdG9yX3BhZF9ldmVudCk6CgkgIERvbid0IGxlYWsgZXZlbnQgb24gcGFkcyB0aGF0IGFyZSBub3QgbGlua2VkLiBGaXhlcyAjNTEyODI2LgoKMjAwOC0wMS0yOSAwNzozODozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmVwbGFjZSB0aGUgc3dpdGNoIHBsdWdpbiB3aXRoIHRoZSBzZWxlY3RvciBwbHVnaW4uIEFkZCBvdXRwdXQtIHNlbGVjdG9yIGFzIHRoZSBvcHBvc2l0ZSBvZiBpbnB1dC1zZWxlY3RvbyAod2FzIHN3aXRjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLWRvY3Muc2dtbDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFkLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYWQtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLmludGVyZmFjZXM6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhZC1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLW1ldGFkYXRhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc2VsZWN0b3IueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1zb3VuZHRvdWNoLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tc3dpdGNoLnhtbDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlucHV0c2VsZWN0b3IuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG91dHB1dHNlbGVjdG9yLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RvdXRwdXRzZWxlY3Rvci5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3ItbWFyc2hhbC5saXN0OgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2VsZWN0b3IuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL3NlbGVjdG9yLnZjcHJvajoKCSAgKiBnc3Qvc3dpdGNoLy5jdnNpZ25vcmU6CgkgICogZ3N0L3N3aXRjaC9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc3dpdGNoL2dzdHN3aXRjaC1tYXJzaGFsLmxpc3Q6CgkgICogZ3N0L3N3aXRjaC9nc3Rzd2l0Y2guYzoKCSAgKiBnc3Qvc3dpdGNoL2dzdHN3aXRjaC5oOgoJICAqIGdzdC9zd2l0Y2gvc3dpdGNoLnZjcHJvajoKCSAgKiB0ZXN0cy9pY2xlcy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2ljbGVzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2ljbGVzL291dHB1dC1zZWxlY3Rvci10ZXN0LmM6CgkgIFJlcGxhY2UgdGhlIHN3aXRjaCBwbHVnaW4gd2l0aCB0aGUgc2VsZWN0b3IgcGx1Z2luLiBBZGQgb3V0cHV0LQoJICBzZWxlY3RvciBhcyB0aGUgb3Bwb3NpdGUgb2YgaW5wdXQtc2VsZWN0b28gKHdhcyBzd2l0Y2gpLiBBZGQgYSB0ZXN0CgkgIGZvciBvdXRwdXQtc2VsZWN0b3IuIEFkZCBkb2NzIGZvciB0aGUgZWxlbWVudHMuIFRoZSB2Y3Byb2ogbmVlZHMKCSAgdXBkYXRlLiBGaXhlcyAjNTAwMTQyLgoKMjAxMC0xMi0zMCAwMDo0NjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSAgZG9jczogYWRkIHZhbHZlIGVsZW1lbnQgdG8gZG9jdW1lbnRhdGlvbgoKMjAxMC0xMi0zMCAwMDo0MTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgdmFsdmU6IHNvbWUgbWlub3IgY2xlYW4tdXBzCgoyMDEwLTEyLTMwIDAwOjMwOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IGZpeCB0eXBvIGluIHByb3BlcnR5IGRlc2NyaXB0aW9uCgkgIEFuZCByZXBocmFzZSB3aGlsZSBhdCBpdCwgdG8gbWFrZSBpdCBtb3JlIGNvbmNpc2UuCgoyMDEwLTEyLTMwIDAwOjI2OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB0ZXN0czogZW5hYmxlIHZhbHZlIHVuaXQgdGVzdAoKMjAxMC0xMi0zMCAwMDoyMjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZWxlbWVudHM6IGFkZCBuZXcgdmFsdmUgZWxlbWVudCB0byBidWlsZAoJICBNb3ZlZCBmcm9tIGdzdC1wbHVnaW5zLWJhZAoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwODA4CgoyMDEwLTEwLTE5IDIzOjQwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHRlc3RzOiBmaXggdmFsdmUgdW5pdCB0ZXN0CgkgIGdzdF9idWZmZXJfcGFkX2FsbG9jKCkgbmVlZHMgc2ltcGxlIGNhcHMgb3IgTlVMTCBjYXBzLAoJICBBTlkgY2FwcyBhcmUgbm90IGFsbG93ZWQuCgoyMDEwLTA5LTI4IDEzOjUyOjI5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBubyBuZWVkIHRvIHJlZiB0aGUgb2JqZWN0IGluIF9jaGFpbgoJICBEb24ndCByZWYgdGhlIHBhZCBpbiBjaGFpbiwgbGlrZSBlbHNld2hlcmUKCjIwMTAtMDktMzAgMTc6NDg6MzUgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3ZhbHZlLmM6CgkgIHRlc3RzOiBGaXggY2FwcyBsZWFrIGluIHRoZSB2YWx2ZSB0ZXN0CgoyMDEwLTA5LTMwIDE3OjI0OjI5IC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy92YWx2ZS5jOgoJICB2YWx2ZTogQWRkIHVuaXQgdGVzdHMKCSAgQWRkIGEgdW5pdCB0ZXN0IGZvciB0aGUgdmFsdmUgZWxlbWVudC4KCjIwMTAtMDktMzAgMTY6MjY6MTkgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICB2YWx2ZTogTWFrZSB0aGUgZHJvcCB2YXJpYWJsZSBpbnRvIGFuIGF0b21pYy4KCSAgVXNpbmcgYW4gYXRvbWljIGFsbG93cyB1cyB0byBhdm9pZCBsb2NraW5nIHRoZSB3aG9sZSBvYmplY3QgYWxsIHRpbWUgdGltZS4KCSAgQXMgc3VnZ2VzdGVkIGJ5IFN0ZWZhbiBLb3N0LgoKMjAxMC0wOS0zMCAxNjoyMjowNCAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogQ29ycmVjdGx5IHNldCB0aGUgRElTQ09OVCBmbGFnIGFmdGVyIGRyb3BwaW5nIGJ1ZmZlcnMKCjIwMTAtMDktMzAgMTY6MTY6NDcgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IFJlbW92ZSBzdXBlcmZsb3VzIGNoZWNraW5nIGNhc3RzCgoyMDEwLTA5LTMwIDE2OjEzOjIzIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBGaXggc3R5bGUsIGltcHJvdmUgY29tbWVudHMKCSAgTWlub3IgaW1wcm92ZW1lbnRzIHRvIHRoZSBjb21tZW50cyBhbmQgYnJlYWsgYSBmZXcgb3Zlcmx5IGxvbmcgbGluZXMKCjIwMTAtMDktMjggMTQ6MjY6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgdmFsdmU6IG1vdmUgZGVmYXVsdDogcGFyc3QgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQgdG8gdGhlIGVuZAoJICBOb3cgc3VyZSBpZiBpdCBtYXR0ZXJzLCBidXQgdGhlIHByZXZpb3VzIGZvcm0gbG9va3Mgd2VpcmVkLgoKMjAxMC0wOS0yOCAxNDoyMzowMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogbW92ZSBkZWJ1Zy1jYXRlZ29yeSByZWdpc3RyYXRpb24gdG8gdHlwZSBpbml0CgoyMDEwLTA5LTI4IDE0OjE1OjEzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiB1c2UgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBvbiBwcm9wZXJ0aWVzCgoyMDEwLTA5LTI4IDE0OjA3OjM5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIHZhbHZlOiBHU1RfQk9JTEVSUExBVEUgYWxyZWFkeSBzZXRzIHBhcmVudF9jbGFzcwoKMjAxMC0wMy0xOCAxNzozMDoyNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICB2YWx2ZTogZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHMgPT4gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlCgoyMDA5LTAyLTEwIDE4OjUyOjU0ICswMDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZG9jczogZG9jdW1lbnQgdmFsdmUgZWxlbWVudAoKMjAwOS0wMi0xMCAxNzo1NzoxNiArMDAwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiByZW5hbWUgdG8gdmFsdmUKCjIwMDktMDItMTAgMTc6NTU6NDcgKzAwMDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiByZS1pbmRlbnQgZ3N0IHN0eWxlCgoyMDA4LTEyLTEzIDAwOjMxOjQ1IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IElnbm9yZSBlcnJvcnMgaWYgZHJvcHBpbmcgaXMgc2V0IHRvIHRydWUKCjIwMDgtMTItMTAgMTc6MDA6MzMgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogQWRkIGdldGNhcHMgcHJveHlpbmcgdG8gdGhlIHZhbHZlCgoyMDA4LTA4LTIwIDE0OjExOjAyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogUmViYXNlIHZhbHZlIG9udG8gZ3N0ZWxlbWVudCBpbnN0ZWFkIG9mIGJhc2V0cmFuc2Zvcm0KCjIwMDgtMDgtMTkgMTg6NDk6NTEgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogUmV2ZXJ0ICJGaXggcmVmY291bnRpbmcgaXNzdWVzIGluIHByZXBhcmVfb3V0cHV0X2J1ZmZlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA2NWRkNDYwZjBhM2E5YzQ4ODJlNjM4Yzg2MjA4Zjc0ZWY2MmMzNDYwLgoKMjAwOC0wOC0wNSAxMTozMDo1NyArMDAwMCAgc2pvZXJkQGx1b24ubmV0IDxzam9lcmRAbHVvbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IEZpeCByZWZjb3VudGluZyBpc3N1ZXMgaW4gcHJlcGFyZV9vdXRwdXRfYnVmZmVyCgkgIDIwMDgwODA1MTEzMDU3LWJlMGYyLTlkYzI3MDc4MWYwYTBmMjFjNjE2ZWQxMWRiZDFmMTk4ZmQxYjMyNmUuZ3oKCjIwMDgtMDQtMDkgMTY6MzI6MjEgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBSZW1vdmUgdW51c2VkIGRpc3Bvc2UgbWV0aG9kIGluIHZhbHZlCgkgIDIwMDgwNDA5MTYzMjIxLTNlMmRjLTkyY2NiMmRiODc0ZTQ2ZTBkOTJjMTU1MjA1NzdjMWJlMGUyYmM2MTcuZ3oKCjIwMDctMTItMTkgMjA6MzI6MzAgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJICBmc3ZhbHZlOiBEb250IGhvbGQgdGhlIG9iamVjdCBsb2NrIHdoaWxlIGNhbGxpbmcgYmFzZSBhbGxvYyBmdW5jdGlvbgoJICAyMDA3MTIxOTIwMzIzMC0zZTJkYy02NTE5MTc1ZDhkODE0OTY1MTViMmQ5MDYwYWMzMTY2NTA1NjBmNjkxLmd6CgoyMDA3LTEyLTE5IDIwOjMyOjE4ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5oOgoJICBmc3ZhbHZlOiBTZXQgdGhlIERJU0NPTlQgZmxhZyBhZnRlciBkcm9wcGluZyBidWZmZXJzCgkgIDIwMDcxMjE5MjAzMjE4LTNlMmRjLWJjNWYwM2Q4OGZmNTgzNzA0MGI5MjE0ZGUwMTZjYzE0Mjc3NmRmYzIuZ3oKCjIwMDctMTItMTkgMDA6NTc6MzkgKzAwMDAgIE9saXZpZXIgQ3JldGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R2YWx2ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmg6CgkgIGZzdmFsdmU6IFVzZSBkbyB0aGUgYWxsb2NfYnVmZmVyIGZ1bmN0aW9uIGluIHRoZSB2YWx2ZQoJICAyMDA3MTIxOTAwNTczOS0zZTJkYy0yYTBmZGZhMmYzOGYwM2FiNDc5MWZlNWM0YWI4NWU4NzkwMTEzNjgzLmd6CgoyMDA3LTExLTIxIDIwOjA4OjU4ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogT25seSBzZXQgcGFzc3Rocm91Z2ggdG8gVFJVRSBvbiBuZXdlciB2ZXJzaW9ucyBvZiBnc3QKCSAgMjAwNzExMjEyMDA4NTgtM2UyZGMtYjE2Y2RlYWJiYzNjMDU2MmM2ZmM3YjExYjliOTc5MmM5MTBmNTY5ZS5negoKMjAwNy0xMS0yMSAxODoxNzoyOSArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkgIGZzdmFsdmU6IENvbXBhcmUgbWlub3IsIG5vdCBtYWpvcgoJICAyMDA3MTEyMTE4MTcyOS0zZTJkYy1hNTk5N2MzYjdmNWM4Njk2NjM3MDk2OTcxNGZhY2Y4ZWUyNDI2NTlkLmd6CgoyMDA3LTEwLTI2IDIyOjM3OjQ5ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogTWFrZSB0aGUgdmFsdmUgZWxlbWVudCB3b3JrIHdpdGggZ3N0IDwgMC4xMC4xMwoJICAyMDA3MTAyNjIyMzc0OS0zZTJkYy0xOGY2ODVhNGU0NWZiZGNlNjc3YWM3Nzc1ODY4NzZmYzcxOWQ3MjIyLmd6CgoyMDA3LTEwLTI0IDIyOjQyOjQ2ICswMDAwICBPbGl2aWVyIENyZXRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuYzoKCSAgZnN2YWx2ZTogUmVuYW1lIHZhbHZlIHRvIGZzdmFsdmUKCSAgMjAwNzEwMjQyMjQyNDYtM2UyZGMtYzU0MjE2YWYyZWYwZWYzZjFhMjIwNmQ3MjNlODdiZTJhMjNhYjhlZC5negoKMjAwNy0xMC0yNCAyMjo0MTo0NyArMDAwMCAgT2xpdmllciBDcmV0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHZhbHZlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dmFsdmUuaDoKCSAgZnN2YWx2ZTogQWRkIHZhbHZlIGVsZW1lbnQKCSAgMjAwNzEwMjQyMjQxNDctM2UyZGMtZjI4YWIwYzA3M2UyODM4OTRiNjVjMjJjNGY0NDM5N2M4OTdkZWMwMS5negoKMjAxMC0xMi0zMCAxODozMToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIGZha2VzaW5rOiBtYWtlIHZhcmlhYmxlIHN0YXRpYwoKMjAxMC0xMi0yOSAxMTo0ODoxOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggZGVhZGxvY2sKCSAgT25seSBnbyBpbnRvIExJVkVfV0FJVCB3aGVuIHRoZSBhcmUgbm90IGxpdmVfcnVubmluZyBhbmQgb25seSBzdG9wIHdhaXRpbmcgd2hlbgoJICBsaXZlX3J1bm5pbmcgaXMgVFJVRS4gSWYgd2UgZG9uJ3QgbG9vcCwgd2UgY291bGQgZGVhZGxvY2sgd2hlbiBjYWxsZWQgZnJvbQoJICBvdXRzaWRlIG9mIGJhc2VzcmMsIHN1Y2ggYXMgYmFzZWF1ZGlvc3JjLgoJICBGaXhlcyAjNjM1Nzg1CgoyMDEwLTEyLTI4IDE2OjQwOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBjaGVjazogYWRkIG1vcmUgc2luayB1bml0IHRlc3RzCgoyMDEwLTEyLTI4IDE2OjIzOjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWxzbyBwcmVyb2xsIGFzeW5jPWZhbHNlIHNpbmtzCgkgIEFsc28gcHJlcm9sbCBhc3luYz1mYWxzZSBzaW5rcyBhZnRlciBhIGZsdXNoLgoKMjAxMC0xMi0yMiAxNjo1NTozMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogZml4IHR5cG8KCjIwMTAtMTItMjYgMjE6MjA6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIFJldmVydCAibWljcm8tb3B0aW06IGlmICh4KSBpcyBjaGVhcGVyIHRoYW4gaWYgKHggPiAwKSBmb3IgdW5zaWduZWQgaW50ZWdlcnMiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNmFhOGNhMzdlZWI5ZGViZmE2OTE5NzQxYTAyMzI1MGJmMjc4MjQ4Zi4KCSAgU2VlIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLnZpZGVvLmdzdHJlYW1lci5kZXZlbC8zMjI4MgoKMjAxMC0xMi0yNCAxNDowMjowOCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICBlbGVtZW50czogcmVlbmFibGUgZmRzcmMvZmRzaW5rIG9uIE1TVkMKCjIwMTAtMTItMjIgMTY6MzY6MDkgLTA4MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgRml4IEdTdGF0QnVmIGRlZmluaXRpb24gZm9yIHdpbjMyIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBvbGRlciBnbGliLiBOb3cgbWF0Y2hlcyB1cHN0cmVhbSBnbGliIGRlZmluaXRpb24uCgoyMDEwLTEyLTIyIDIyOjM2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gYW5ub3RhdGlvbgoKMjAxMC0xMi0yMiAxNjo0MjowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LXByb2dyZXNzLnR4dDoKCSAgZG9jczogYWRkIGRyYWZ0IGlkZWEgZm9yIHByb2dyZXNzIHJlcG9ydGluZwoKMjAxMC0xMi0yMSAxMDozMzo1OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCB0eXBvCgoyMDEwLTEyLTIwIDE3OjQ2OjM2ICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTY5NDYyYSB0byA0NjQ0NWFkCgoyMDEwLTEyLTE5IDEyOjQ5OjU4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogRG9uJ3QgbGVhayBjb3BpZXMgb2YgZW1wdHkgc3RyaW5ncwoKMjAxMC0xMi0xNyAxOToxOTo0MCArMDEwMCAgRWR3YXJkIEhlcnZleSA8ZWR3YXJkLmhlcnZleUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgYmFzZTogZG9jdW1lbnRhdGlvbiBmaXh1cHMgYW5kIGFubm90YXRpb24KCjIwMTAtMTItMTcgMTk6MTQ6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3Q6IGRvY3VtZW50YXRpb24gZml4dXBzIGFuZCBhbm5vdGF0aW9uCgkgIFJlcG9ydGVkIGJ5IGVuYWJsaW5nIHRoZSAtLXdhcm4tYWxsIG9wdGlvbiBvZiBnLWlyLXNjYW5uZXIKCjIwMTAtMTItMTcgMTU6NDg6MzQgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBGaXggZG9jdW1lbnRhdGlvbgoJICBzZWNvbmQgPT4gc2Vjb25kcwoJICBtaWNyb3NlY29uZCBhcmd1bWVudCB3YXMgZHJvcHBlZAoKMjAxMC0xMi0wNCAxNTozMjowNiArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBVc2UgYW4gYXRvbWljIGludGVnZXIgaW5zdGVhZCBvZiBhIGxvY2sgZm9yIGNoZWNraW5nIHRhZ3MgcHJlc2VuY2UKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNjQ1NQoKMjAxMC0xMi0xNiAxMDo1NToyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogSGFuZGxlIGRvd25zdHJlYW0gZ2l2aW5nIGEgYnVmZmVyIHdpdGggbmV3IGNhcHMgYnV0IGludmFsaWQgc2l6ZQoJICBUaGlzIGNhbiBoYXBwZW4gZm9yIGV4YW1wbGUgd2hlbiBkb3duc3RyZWFtIHByb3Bvc2VkIG5ldyBjYXBzLCBsYXRlciBwcm9wb3NlZAoJICB0aGUgcHJldmlvdXMgY2FwcyBhZ2FpbiB3aGljaCBpbiB0dXJuIGVuYWJsZXMgcGFzc3Rocm91Z2ggbW9kZSBpbiB1cHN0cmVhbQoJICBlbGVtZW50cyBhbmQgdGhlIHdyb25nLXNpemVkIGJ1ZmZlciBhcHBlYXJzIGluIGFuIGVsZW1lbnQgd2hlcmUgdGhlIGNhcHMKCSAgY2hhbmdlIG5ldmVyIGhhcHBlbmVkLiBTaW1wbHkgYWxsb2NhdGUgYSBuZXcgYnVmZmVyIGluIHRoaXMgY2FzZS4KCSAgU2VlIGJ1ZyAjNjM1NDYxLgoKMjAxMC0xMi0xNSAyMzoxOTo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdXNlIHRoZSBwdWJsaWNseSB2aXNpYmxlIGFkZHJlc3MgdG8gZml4IHRoZSB0ZXN0cwoJICBUaGUgLUJzeW1ib2xpYyBjaGFuZ2UgY2F1c2VzIHVzIHRvIGdldCBhIGRpZmZlcmVudCBhZGRyZXNzIHdoZW4gaW50ZXJuYWx5CgkgIGxvb2tpbmcgdXAgdGhlIGZ1bmN0aW9uIHRoYW4gd2hhdCBhcHBsaWNhdGlvbiB3b3VsZCBnZXQgd2hlbiB0aGUgdXNlIHRoZSBzeW1ib2wKCSAgdGhhdCB0aGV5IHNlZS4gVGhpcyBtYWRlIHJlbW92aW5nIHRoZSBkZWZhdWx0IGxvZ2hhbmRsZXIgdG8gZmFpbCwgYXMgaXQgaXMgc2V0CgkgIGludGVybmFsbHkgYW5kIHJlbW92ZWQgZXh0ZXJuYWx5LgoKMjAxMC0xMi0xNSAxNDo1NToxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAyMDc0MmFlIHRvIDE2OTQ2MmEKCjIwMTAtMTItMTUgMTI6MTA6MDIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1c2UgdGhlIC1Cc3ltYm9saWMtZnVuY3Rpb25zIGxpbmtlciBmbGFnIGlmIHN1cHBvcnRlZAoJICBUaGlzIGZlYXR1cmUgdHVybnMgaW50cmEgbGlicmFyeSBjYWxscyBpbnRvIGRpcmVjdCBmdW5jdGlvbiBjYWxscyBhbmQgdGh1cyBtYWtlcwoJICB0aGVtIGEgbGl0dGxlIGZhc3Rlci4gVGhlIGRvd25zaWRlIGlzIHRoYXQgdGhpcyBjYXVzZXMgcHJvYmxlbXMgZm9yIGUuZy4KCSAgTERfUFJFTE9BRCBiYXNlZCB0b29scy4gVGh1cyBhZGQgYSBjb25maWd1cmUgb3B0aW9uIHRvIHR1cm4gaXQgb2ZmLgoKMjAxMC0xMi0xNCAxOTowMDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcHJvdmUgbGFzdF9zdG9wIGNhbGN1bGF0aW9uCgkgIE9ubHkgdXBkYXRlIHRoZSBsYXN0X3N0b3AgdmFsdWUgd2hlbiB3ZSBoYWQgYSB2YWxpZCBzdG9wIHBvc2l0aW9uIGZvciB0aGUKCSAgY2xpcHBpbmcgb3IgZWxzZSB0aGUgY2xpcHBpbmcgY29kZSBhc3N1bWVzIHRoZSBzdG9wIHBvc2l0aW9uIGV4dGVuZHMgdG8gdGhlIGVuZAoJICBvZiB0aGUgc2VnbWVudCwgd2hpY2ggbWFrZXMgdGhlIHBvc2l0aW9uIHJlcG9ydGluZyByZXR1cm4gd2VpcmQgdmFsdWVzLgoKMjAxMC0xMi0xNCAxNTo1MjoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZpeCBvYmplY3QgdHlwZSBoYW5kbGluZyBpbiBxdWV1ZWQgcHJlcm9sbAoJICBGYWN0b3Igb3V0IHRoZSBtZXRob2QgdG8gZ2V0IHRoZSBvYmplY3QgdHlwZS4KCSAgV2hlbiBwcmVyb2xsLXF1ZXVlLWxlbiA+IDAsIHVzZSB0aGUgcmlnaHQgb2JqZWN0IHR5cGUgaW5zdGVhZCBvZiBpZ25vcmluZwoJICBidWZmZXItbGlzdHMuCgoyMDEwLTEyLTEzIDE2OjIyOjQ2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDAxMWJjYzggdG8gMjA3NDJhZQoKMjAxMC0xMi0xMSAxMDoxMDowNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogRml4IEdJUiBidWlsZCBmb3Igc3JjZGlyICE9IGJ1aWxkZGlyCgoyMDEwLTEyLTA4IDE3OjUxOjEwICswMTAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGNvbW1pdCAnMGVhYTI1Y2JmNWMwZTRiZjg2NTQ1ZmI2N2MxODFhMGVjZDJmMTljNycgaW50byAwLjExCgoyMDEwLTEyLTA4IDEyOjE3OjM1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGRvY3M6IGZpeCB3cm9uZyB1c2Ugb2YgU2luY2U6IGtleXdvcmQKCjIwMTAtMTItMDggMTE6NTI6MzEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeTogbWFpbnRhaW4gdGhlIHR5cGVmaW5kIGV4dGVuc2lvbiBsaXN0IG9yZGVyCgoyMDEwLTEyLTA4IDExOjUxOjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgIGRvY3M6IGFkZCAoKSB0byB4cmVmIHRoZSBmdW5jdGlvbi4KCjIwMTAtMTItMDcgMTk6MzU6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiByZW1vdmUgc29tZSBkZWFkIGNvZGUsIEdTVF9ERUJVR19DT0xPUiBpcyBuZXZlciBkZWZpbmVkCgoyMDEwLTEyLTA3IDE5OjM1OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IGNvbnN0LWlmeSBhcmd1bWVudHMgdG8gZ3N0X29iamVjdF9kZWZhdWx0X2Vycm9yKCkKCjIwMTAtMTItMDcgMTg6NDY6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGRvY3M6IGdzdF9lcnJvcl9nZXRfbWVzc2FnZSgpIHJldHVybnMgc3RyaW5nIGluIFVURi04LCBub3QgY3VycmVudCBsb2NhbGUKCSAgV2UgdGVsbCBnZXR0ZXh0IHRvIHJldHVybiBldmVyeXRoaW5nIGluIFVURi04IGVuY29kaW5nLgoKMjAxMC0xMi0wNSAyMDoxNzowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVnaXN0ZXIgZ3N0X3BhZF9nZXRfZml4ZWRfY2Fwc19mdW5jKCkgd2l0aCB0aGUgZGVidWcgbG9nIHN5c3RlbQoKMjAxMC0xMi0wNyAxODozNTo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci1kb2NzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBkb2NzOiBsaWJnc3RiYXNlOiBtb3JlIGdvYmplY3QgaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucwoJICBNYW55IG9mIHRoZXNlIGFyZSBzdXBlcmZsdW91cyBhbmQgd2VyZSBhZGRlZCBmb3IgY2xhcml0eS4KCjIwMTAtMTItMDcgMTg6MzU6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGZpbHRlci5oOgoJKiBnc3QvZ3N0Zm9ybWF0LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cHJlc2V0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dXJpLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3M6IGdzdDogbW9yZSBnb2JqZWN0IGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCSAgTWFueSBvZiB0aGVzZSBhcmUgc3VwZXJmbHVvdXMsIGFkZGVkIGZvciBjbGFyaXR5LgoKMjAxMC0xMi0wNyAxODo0MDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzCgoyMDEwLTEyLTA3IDE4OjMzOjUxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0ZGF0YXByb3RvY29sLmRlZjoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IHVwZGF0ZSBkZWZzCgoyMDEwLTEyLTA3IDE4OjMyOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBkaXNhYmxlIEFCSSBjaGVja3MKCjIwMTAtMTItMDcgMTg6MzI6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBwb3J0aW5nOiB1cGRhdGUgcG9ydGluZyBkb2N1bWVudAoKMjAxMC0xMi0wNyAxODoxNDozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rjb21wYXQuaDoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIGdldF9jYXBzX3JlZmZlZCB2YXJpYW50cwoJICBNYWtlIHRoZSBfZ2V0X2NhcHMgZnVuY3Rpb25zIGJlaGF2ZSBsaWtlIHRoZSBfZ2V0X2NhcHNfcmVmZmVkIHZhcmlhbnRzIGFuZAoJICByZW1vdmUgdGhlIF9yZWZmZWQgdmFyaWFudHMuIFRoaXMgbWVhbnMgdGhhdCBfZ2V0X2NhcHMgZG9lc24ndCByZXR1cm4gYSB3cml0YWJsZQoJICBjYXBzIGFueW1vcmUgYW5kIGFuIGV4cGxpY2l0IF9tYWtlX3dyaXRhYmxlKCkgaXMgbmVlZGVkIGJlZm9yZSBtb2RpZnlpbmcgdGhlCgkgIGNhcHMuCgoyMDEwLTEyLTA3IDE4OjEyOjUzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogdXBkYXRlIHBvcnRpbmcgZG9jCgoyMDEwLTEyLTA3IDE2OjUyOjQ3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogQ2xlYW4gdXAgLmggZmlsZQoKMjAxMC0xMi0wNyAxNTo1Mzo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBpbnRvIDAuMTEKCjIwMTAtMTItMDcgMTU6MzM6MDQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZGV0YWlscy5oOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlbGVtZW50bWV0YWRhdGEuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICBlbGVtZW50OiByZXdvcmsgR3N0RWxlbWVudERldGFpbHMKCSAgQ2xlYW4gdXAgdGhlIEdzdEVsZW1lbnQgc3RydWN0dXJlCgkgIFJlcGxhY2UgR3N0RWxlbWVudERldGFpbHMgd2l0aCBtZXRhZGF0YQoKMjAxMC0xMi0wNyAxNTozMToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHJlbW92ZSBkZXByZWNhdGVkIG1ldGhvZHMKCSAgUmVtb3ZlIG1vcmUgZGVwcmVjYXRlZCBtZXRob2RzIGFuZCBmaXggdW5pdCB0ZXN0LgoKMjAxMC0xMi0wNyAxNToyMTowNiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGNoZWNrOiByZW1vdmUgZGVwcmVjYXRlZCB0ZXN0cwoKMjAxMC0xMi0wNyAxNToyMDoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2s6IGZpeCBvYmplY3QgdW5pdCB0ZXN0CgoyMDEwLTEyLTA3IDE1OjE5OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIG9iamVjdDogZml4IGRvY3MKCjIwMTAtMTItMDcgMTM6MTk6MTAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGVkd2FyZC5oZXJ2ZXlAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogQWRkIC1JJCh0b3Bfc3JjZGlyKS9saWJzIHRvIGctaXItc2Nhbm5lciBjb21tYW5kcwoJICBXaXRob3V0IHRoaXMsIGl0IHdpbGwgZmFpbCBmaW5kaW5nIGFsbCBoZWFkZXJzLgoKMjAxMC0xMi0wNyAxMjo1Nzo0MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHJlY29tbWVuZCAiLS1nc3QtZGlzYWJsZS1yZWdpc3RyeS1mb3JrIiBhcyB3ZWxsCgkgIERpc2FibGluZyBmb3JraW5nIGhlbHBzIHdpdGggZGVidWdnaW5nIHRoZSBjYXVzZSBvZiB0aGUgY3Jhc2ggaW4gZ2RiLgoKMjAxMC0xMi0wNyAxMjo1Njo0NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9wbHVnaW5kb2NzLnR4dDoKCSAgZG9jczogc29tZSBub3RlcyBhYm91dCBvdXIgcGx1Z2luIGRvY3Mgd29ya2Zsb3cKCjIwMTAtMTItMDcgMTE6NTg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIG9iamVjdDogUmVtb3ZlZCBkZXByZWNhdGVkIGZpZWxkcyBhbmQgbWV0aG9kcwoJICBNYWtlIEdzdE9iamVjdCBleHRlbmQgZnJvbSBHSW5pdGlhbGx5VW5vd25lZCwgcmVtb3ZlIHRoZSBGTE9BVElORyBmbGFnIGFuZCB1c2UKCSAgR09iamVjdCBtZXRob2RzIGZvciBtYW5hZ2luZyB0aGUgZmxvYXRpbmcgcmVmLgoJICBSZW1vdmUgY2xhc3MgbG9jaywgaXQgd2FzIGEgd29ya2Fyb3VuZCBmb3IgYSBnbGliIDwgMi44IGJ1Zy4KCSAgUmVtb3ZlIHRoZSBwYXJlbnQtc2V0IGFuZCBwYXJlbnQtdW5zZXQgc2lnbmFscywgYXR0ZW1wdCB0byBpbXBsZW1lbnQgd2l0aCBub3RpZnkKCSAgYnV0IGRpc2FibGVkIGJlY2F1c2UgZGVhZGxvY2tzIGluIGRlZXAtbm90aWZ5LgoKMjAxMC0xMi0wNiAyMDowMzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3BvcnRpbmctdG8tMC4xMS50eHQ6CgkgIHBvcnRpbmc6IG1lbnRpb24gcmVtb3ZhbCBvZiBwcm90b2NvbCBwcm9wZXJ0eQoKMjAxMC0xMi0wNiAxOTo0MDowMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIGxpYnM6IHJlbW92ZSBkZXByZWNhdGVkIGNvZGUKCjIwMTAtMTItMDYgMTk6MjQ6MzAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wb3J0aW5nLXRvLTAuMTEudHh0OgoJICBkb2NzOiB1cGRhdGUgcG9ydGluZyBkb2MKCjIwMTAtMTItMDYgMTk6MTg6MzEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIGdzdC9nc3R4bWwuaDoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJICByZW1vdmUgZGVwcmVjYXRlZCBzeW1ib2xzIGFuZCBtZXRob2RzCgoyMDEwLTEyLTA2IDEzOjUxOjUwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcG9ydGluZy10by0wLjExLnR4dDoKCSAgcG9ydGluZzogQWRkIHBvcnRpbmcgZG9jCgoyMDEwLTEyLTA2IDEzOjQ4OjMxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcGxhbi0wLjExLnR4dDoKCSAgcGxhbjogZml4IHR5cG8KCjIwMTAtMTEtMTEgMTA6Mzg6NTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBwbGFuOiBhZGQgc29tZXRoaW5nIGFib3V0IEdWYXJpYW50IHJlZ2lzdHJ5CgoyMDEwLTExLTA4IDE4OjM5OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vdXNlLWNhc2VzLTAuMTEudHh0OgoJICBhZGQgc29tZSB1c2UtY2FzZXMKCjIwMTAtMTEtMDggMTQ6MDg6MzYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBtb3JlIHVwZGF0ZXMKCjIwMTAtMTEtMDggMTI6MTQ6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBtb3JlIHVwZGF0ZXMKCjIwMTAtMTEtMDggMTE6MTg6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICBtb3JlIHVwZGF0ZXMKCjIwMTAtMTEtMDQgMTk6MzA6NTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9wbGFuLTAuMTEudHh0OgoJICB3b3JrIG9uIHRvZG8gbGlzdCBmb3IgMC4xMSB3b3JrCgoyMDEwLTEyLTA2IDEzOjIxOjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogYW5kcm9pZC9iYXNlLm1rOgoJKiBhbmRyb2lkL2NvbnRyb2xsZXIubWs6CgkqIGFuZHJvaWQvZGF0YXByb3RvY29sLm1rOgoJKiBhbmRyb2lkL2VsZW1lbnRzLm1rOgoJKiBhbmRyb2lkL2dzdC1pbnNwZWN0Lm1rOgoJKiBhbmRyb2lkL2dzdC1sYXVuY2gubWs6CgkqIGFuZHJvaWQvZ3N0LXBsdWdpbi1zY2FubmVyLm1rOgoJKiBhbmRyb2lkL2dzdC5tazoKCSogYW5kcm9pZC9pbmRleGVycy5tazoKCSogYW5kcm9pZC9uZXQubWs6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06CgkqIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOgoJICBtb3JlIDAuMTAgLT4gMC4xMQoKMjAxMC0xMi0wNiAxMjowMzoyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBvcGVuIDAuMTEgYnJhbmNoCgoyMDEwLTEyLTA2IDExOjE4OjAxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogcmV0dXJuIHdha2V1cCBldmVudCBpbiBHUG9sbEZECgoyMDEwLTEyLTA2IDExOjA3OjM4ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgc29tZSBkZWJ1ZyB0byBmYXN0IHB1c2ggcGF0aAoJICAuLi4gc28gd2UgZG9uJ3QgbG9vc2UgdHJhY2sgYXQgdGltZXMgaXQgaXMgbmVlZGVkIHRoZSBtb3N0LgoKMjAxMC0xMi0wNSAxNTo1ODo0OCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IERvbid0IGZvcmdldCB0byB1bnJlZiB0aGUgY2FjaGVkIENsb2NrSWQKCjIwMTAtMTItMDUgMTQ6NDY6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBnc3RjaGVjazogRG9uJ3QgY2hlY2sgcGFkIHJlZmNvdW50IHRvbyBlYXJseQoJICBCZWNhdXNlIG9mIHRoZSBuZXcgcGFkIGNhY2hpbmcgc3lzdGVtLCB0aGUgcGVlciBwYWQgbWlnaHQgc3RpbGwKCSAgaGF2ZSBhIHJlZmVyZW5jZSBvbiBhIHBhZC4gV2UgdGhlcmVmb3JlIGRlbGF5IHRoZSByZWZjb3VudCBjaGVja2luZwoJICB0aWwgJ2FmdGVyJyB3ZSB1bmxpbmsgdGhlIHBhZCBmcm9tIGFueSBwb3RlbnRpYWwgcGVlci4KCjIwMTAtMTItMDUgMTQ6MTE6NDUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogTWFrZSBlbGVtZW50IG5hbWVzIGNsZWFyZXIgaW4gZGVidWcgc3RhdGVtZW50cwoJICBSZXBsYWNlcyBjb25mdXNpbmcgbWVzc2FnZXMgbGlrZToKCSAgIk5hbWUgbmFtZSBpcyBub3QgdW5pcXVlIGluIGJpbiBiaW4sIG5vdCBhZGRpbmciCgkgIGJ5CgkgICJOYW1lICduYW1lJyBpcyBub3QgdW5pcXVlIGluIGJpbiAnYmluJywgbm90IGFkZGluZyIKCjIwMTAtMTItMDQgMjE6MDY6MzQgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBGaXggcGVybWlzc2lvbnMgaWYgdW1hc2sgaXMgYnJva2VuCgkgIEZpeGVzOiAjNTY0MDU2LgoKMjAxMC0xMi0wNCAxNDoyMzo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlcyBhZnRlciBiYWNrc2xhc2ggaW4gTWFrZWZpbGUuYW0KCjIwMTAtMTItMDQgMTM6MTQ6MzkgKzAwMDAgIEtvb3AgTWFzdCA8a3dtQEZyZWVCU0Qub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGZpeCB0ZXN0IHNvIGl0IHdvcmtzIHdpdGggRnJlZUJTRCdzIC9iaW4vc2gKCSAgVXNlICc9JyBpbnN0ZWFkIG9mICc9PScuIEZpeGVzOgoJICBjb25maWd1cmU6IHdvcmtpbmcgYysrIGNvbXBpbGVyIGZvdW5kOiB5ZXMKCSAgdGVzdDogeHllczogdW5leHBlY3RlZCBvcGVyYXRvcgoJICBodHRwOi8vYnVnemlsbGEtYXR0YWNobWVudHMuZ25vbWUub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTE3NTY5MgoKMjAxMC0xMi0wMyAxMToyOTozMCAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIFVzZSBnX3NucHJpbnRmKCkgaW5zdGVhZCBvZiBzbnByaW50ZigpCgoyMDEwLTEyLTAzIDE2OjQ0OjIzICswMTAwICBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAc3Rlcmljc3Nvbi5jb20+CgoJKiBBbmRyb2lkLm1rOgoJKiBhbmRyb2lkL05PVElDRToKCSogYW5kcm9pZC9iYXNlLm1rOgoJKiBhbmRyb2lkL2NvbnRyb2xsZXIubWs6CgkqIGFuZHJvaWQvZGF0YXByb3RvY29sLm1rOgoJKiBhbmRyb2lkL2VsZW1lbnRzLm1rOgoJKiBhbmRyb2lkL2dzdC1pbnNwZWN0Lm1rOgoJKiBhbmRyb2lkL2dzdC1sYXVuY2gubWs6CgkqIGFuZHJvaWQvZ3N0LXBsdWdpbi1zY2FubmVyLm1rOgoJKiBhbmRyb2lkL2dzdC5tazoKCSogYW5kcm9pZC9nc3QvZ3N0Y29uZmlnLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdGVudW10eXBlcy5jOgoJKiBhbmRyb2lkL2dzdC9nc3RlbnVtdHlwZXMuaDoKCSogYW5kcm9pZC9nc3QvZ3N0bWFyc2hhbC5jOgoJKiBhbmRyb2lkL2dzdC9nc3RtYXJzaGFsLmg6CgkqIGFuZHJvaWQvZ3N0L2dzdHZlcnNpb24uaDoKCSogYW5kcm9pZC9nc3QvcGFyc2UvZ3JhbW1hci5vdXRwdXQ6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIudGFiLmM6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2dyYW1tYXIudGFiLmg6CgkqIGFuZHJvaWQvZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LmM6CgkqIGFuZHJvaWQvaW5kZXhlcnMubWs6CgkqIGFuZHJvaWQvbmV0Lm1rOgoJKiBhbmRyb2lkL3Rvb2xzLm1rOgoJICBBZGQgYnVpbGQgc3lzdGVtIGZvciBBbmRyb2lkCgoyMDEwLTEyLTAzIDE2OjAyOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiBpbml0IHZhcmlhYmxlcyBpbiBfcmVpbml0KCkKCSAgUHJvcGVybHkgaW5pdGlhbGl6ZSB2YXJpYWJsZXMgaW4gX3JlaW5pdCgpIHRvbwoKMjAxMC0xMC0yMSAxODowODo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBtYWtlIHN5bmMgY2xvY2sgd2FpdCBsb2NrZnJlZQoJICBNYWtlIHRoZSBjb21tb24gY2FzZSBsb2NrZnJlZS4KCjIwMTAtMTItMDMgMTI6MDQ6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiB1c2UgZnVuY3Rpb24gaW50cm9kdWNlZCBpbiBHTGliIDIuMjIgdW5jb25kaXRpb25hbGx5CgoyMDEwLTEyLTAzIDEyOjQyOjEwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogc21hbGwgY2xlYW51cHMKCjIwMTAtMTEtMDMgMTg6Mzg6MTEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBwb2xsOiBtYWtlIHN1cmUgd2UgcmVtb3ZlIHRoZSByZWFkZmQgbWVzc2FnZXMKCjIwMTAtMTEtMDMgMTg6MTY6MDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cG9sbC5jOgoJKiBnc3QvZ3N0cG9sbC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcG9sbDogYWRkIG1ldGhvZCB0byBnZXQgYSBHUG9sbEZECgoyMDEwLTExLTAzIDE3OjU2OjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogUmVmYWN0b3IgYW5kIG1ha2UgbW9yZSBsb2NrZnJlZQoJICBSZWZhY3RvciB0aGUgd2FrZXVwIG9mIHRoZSBwb2xsIHRocmVhZC4KCSAgQWx3YXlzIG1ha2UgYSBjb250cm9sIHNvY2tldCB0byBtYWtlIHRoaW5ncyBlYXNpZXIuCgkgIE1ha2UgbW9yZSBtZXRob2RzIGxvY2tmcmVlLgoKMjAxMC0xMC0yMSAwMjowMjoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIHBvbGw6IG1vdmUgbG9jayB0byB3aGVyZSBpdCBtYWtlcyBtb3JlIHNlbnNlCgoyMDEwLTEwLTIxIDAxOjE1OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgcG9sbDogbWFrZSB0aW1lciBwb2xscyBsb2NrZnJlZQoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgdGFrZSBhIG11dGV4IGluIHRoZSBub3JtYWwgY29kZSBwYXRoIG9mIHRoZSB0aW1lcgoJICBwb2xsLgoKMjAxMC0xMi0wMiAxNzo1MTo1OCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogcmV0dXJuIHVwb24gaW5wdXQgd2hlbiBhbHJlYWR5IGVvcwoJICAuLi4gcmF0aGVyIHRoYW4gaGFuZ2luZyBpbmNvbWluZyB0aHJlYWQgKGFzIGNvbnNpZGVyZWQgZnVsbCBpbiBlb3MpLgoKMjAxMC0xMi0wMiAxNzo0OTowNCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBmaXggZG9jIHR5cG8KCjIwMTAtMTAtMTYgMTY6MTY6MTcgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHJlbW92ZSBzb21lIGNvbW1lbnRlZCBjb2RlCgoyMDEwLTEyLTAzIDEzOjUyOjAzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogYWRkIHN0ZGlvLmggZm9yIHNucHJpbnQKCjIwMTAtMTItMDMgMTE6Mjc6MTcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFVzZSBhbiBvYmplY3QgYXMgZmlyc3QgYXJndW1lbnQgdG8gR1NUX1dBUk5JTkdfT0JKRUNUCgoyMDA5LTA0LTExIDE1OjA0OjQxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIG1pY3JvLW9wdGltOiBpZiAoeCkgaXMgY2hlYXBlciB0aGFuIGlmICh4ID4gMCkgZm9yIHVuc2lnbmVkIGludGVnZXJzCgoyMDA5LTA0LTEwIDA5OjAxOjIyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIGdzdHF1ZXJ5OiBVc2Ugc3RydWN0dXJlIHByb3BlcnR5IGRpcmVjdGx5LCBhdm9pZCBmdW5jdGlvbiB2YXJpYWJsZS4KCSAgQWxsIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgY2FuIGFjY2VzcyB0aGUgc3RydWN0dXJlIGZpZWxkIG9mIGEgcXVlcnkgZGlyZWN0bHkuCgkgIFRoaXMgYXZvaWRzIGhhdmluZyB0byBjYWxsIGdzdF9xdWVyeV9nZXRfc3RydWN0dXJlKCkgdG8gZ2V0IGl0LCBhbG9uZyB3aXRoIGJlaW5nCgkgIGFibGUgdG8gcmVtb3ZlIHNvbWUgZnVuY3Rpb24gdmFyaWFibGVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIHRoZSByZXN1bHQgb2YgdGhhdAoJICBmdW5jdGlvbi4KCjIwMDktMDQtMTAgMDg6NTE6MDIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiByZW1vdmUgdXNlbGVzcyB0ZXJuYXJ5IG9wZXJhdG9yIHVzYWdlLgoKMjAxMC0wOS0xNCAxMzowODo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBnc3RldmVudDogVXNlIHN0cnVjdHVyZSBwcm9wZXJ0eSBkaXJlY3RseSwgYXZvaWQgZnVuY3Rpb24gdmFyaWFibGUuCgkgIEFsbCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGNhbiBhY2Nlc3MgdGhlIHN0cnVjdHVyZSBmaWVsZCBvZiBhbiBldmVudCBkaXJlY3RseS4KCSAgVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGNhbGwgZ3N0X3F1ZXJ5X2dldF9zdHJ1Y3R1cmUoKSB0byBnZXQgaXQsIGFsb25nIHdpdGggYmVpbmcKCSAgYWJsZSB0byByZW1vdmUgc29tZSBmdW5jdGlvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc3RvcmUgdGhlIHJlc3VsdCBvZiB0aGF0CgkgIGZ1bmN0aW9uLgoKMjAxMC0xMi0wMyAxMToxOToyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgcHVzaCBjYWNoZSB0byBidWZmZXJsaXN0cwoJICBBZGQgdGhlIHB1c2ggY2FoY2UgZm9yIHRoZSBidWZmZXJsaXN0IHB1c2ggY29kZSBwYXRoIGFzIHdlbGwuCgoyMDEwLTEyLTAzIDExOjExOjI0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGNhY2hlIHRoZSBwZWVyIGNoYWluZnVuYwoJICBUaGVyZSBpcyBubyBuZWVkIHRvIGNhY2hlIHRoZSBwZWVyIGNoYWluZnVuY3Rpb24gYXMgd2UgY2FuIGp1c3QgYXMgZWZmaWNpZW50bHkKCSAgZ2V0IHRvIGl0IGZyb20gdGhlIHBlZXIgb2JqZWN0LiBBbHNvIG5vdCBjYWNoaW5nIHRoZSBjaGFpbiBmdW5jdGlvbiB3b3JrcyBiZXR0ZXIKCSAgYmVjYXVzZSB0aGVuIHdlIGF1dG9tYXRpY2FsbHkgZ2V0IHRoZSBuZXcgY2hhaW5mdW5jdGlvbnMgd2hlbiB0aGV5IGNoYW5nZS4KCjIwMTAtMTItMDMgMTA6NTI6MzkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgcGFkOiBjbGVhciBwYWQgY2FjaGUgd2hlbiBpbnN0YWxsaW5nIHByb2JlcwoJICBNb3ZlIHRoZSBtZXRob2QgdG8gY2xlYXIgdGhlIHBhZCBjYWNoZSBpbnRvIF9wcml2YXRlLmgKCSAgQ2xlYXIgdGhlIHBhZCBjYWNoZSB3aGVuIGluc3RhbGxpbmcgcGFkIHByb2Jlcy4KCjIwMTAtMTAtMjAgMTc6MTE6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZXhwbGljaXRseSBpbmxpbmUgc29tZSBmdW5jdGlvbnMKCjIwMTAtMTAtMTMgMDI6NDg6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0xMC0xMyAwMjo0MjoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBpbnZhbGlkYXRlIGNhY2hlcyBvbiBmbHVzaCBhbmQgcGFkIGJsb2NrCgoyMDEwLTEwLTEzIDAyOjIwOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHVucmVmIE5VTEwgY2FwcwoKMjAxMC0xMC0xMyAwMjoxNzoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBhZGQgaW52YWxpZGF0ZSBmdW5jdGlvbgoJICBNb3JlIHNtYWxsIG9wdGltaXNhdGlvbnMsIHJlbW92ZSB0aGUgdW5uZWVkZWQgdmFsaWQgYm9vbGVhbi4KCSAgQWRkIGZ1bmN0aW9uIHRvIGludmFsaWRlIHRoZSBjYWNoZS4KCSAgSW52YWxpZGF0ZSB0aGUgY2FjaGUgb24gdW5saW5rLgoKMjAxMC0xMC0xMyAwMTozNzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBzbWFsbCBjbGVhbnVwCgoyMDEwLTEwLTEzIDAxOjI1OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGltcHJvdmUgcGFkIHB1c2ggY2FjaGluZwoJICBCdWlsZCB0aGUgY2FjaGUgd2hpbGUgd2UgcHVzaCBkYXRhLiBXaGVuIHdlIGRvbid0IGhhdmUgYSBjYWNoZSwgd2UgcnVuIHRoZQoJICBzbG93cGF0aCBhbmQgY29sbGVjdCBjYWNoZWFibGUgcHJvcGVydGllcy4gV2hlbiBhbGwgY29uZGl0aW9ucyBhcmUgbWV0LCBrZWVwIHRoZQoJICBjYWNoZWQgZGF0YSBhcm91bmQgc28gdGhhdCB3ZSBjYW4gbW9yZSBlZmZpY2llbnRseSBwdXNoIGRhdGEgYXJvdW5kLgoKMjAxMC0xMC0xMiAxMjoyOTo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBwcm90b3R5cGUgb2YgcGFkIHB1c2ggY2FjaGUKCSAgUHJvdG90eXBlIG9mIGhvdyB3ZSBjYW4gY2FjaGUgdGhlIHBlZXIgYW5kIGNhcHMgZm9yIGEgcGFkIGxpbmsuCgoyMDEwLTEyLTAzIDEyOjIzOjI3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSAgZG9jczogZml4IHByZXZpb3VzIGV4dHJhY3QucGwgY29tbWl0CgkgIE1ha2UgaXQgYWxzbyB3b3JrIGluIHRoZSBzcmNkaXI9YnVpbGRkaXIgY2FzZSBhZ2Fpbi4KCjIwMTAtMTAtMjAgMTE6NTg6MDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBhdm9pZCB0YXNrIGxvY2sgZm9yIGVhY2ggaXRlcmF0aW9uCgkgIE1ha2UgdGhlIHRhc2sgc3RhdGUgYW4gYXRvbWljIHZhcmlhYmxlIHNvIHRoYXQgd2UgY2FuIGF2b2lkIHRha2luZyBhbmQgcmVsZWFzaW5nCgkgIHRoZSB0YXNrIGxvY2sgZm9yIGVhY2ggaXRlcmF0aW9uLgoKMjAxMC0xMi0wMyAxMDoxODoxOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkgIGRvY3M6IGZpeCBleGFtcGxlIG1hdGNoaW5nIGluIGV4dHJhY3QucGwKCSAgV2hlbiBidWlsZGluZyB3aXRoICRzcmNkaXIgIT0gJGJ1aWxkZGlyIG91dHB1dCB3b3VsZCBjb250YWluIHRoZSBidWlsZGRpciBwYXRoLgoJICBTdHJpcCB0aGUgcGF0aCB3aGVuIHNjYW5uaW5nIHRoZSB4bWwgZm9yIHRoZSBleGFtcGxlIG1hcmtlcnMuCgoyMDEwLTExLTE5IDE1OjA2OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiBxdWVyeSBkb2MgaW1wcm92ZW1lbnRzCgkgIE1vcmUgeHJlZnMuIE1lbnRpb25lZCB0aGF0IHNvbWUgcXVlcmllcyBuZWVkIGEgcnVubmluZyBwaXBlbGluZS4KCjIwMTAtMTEtMTkgMTE6NDM6NDAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBlbGVtZW50ZmFjdG9yeTogY2xhcmlmeSBsaXN0IGl0ZW0gdHlwZXMgaW4gY29tbWVudHMKCjIwMTAtMTEtMTkgMTA6Mjk6MzQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSAgcGFkdGVtcGxhdGU6IGFkZCB0d28gRklYTUUwLjExOiBjb21tZW50cwoKMjAxMC0xMS0xOSAxMDoyMzo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBhbGxvdyBkaXNhYmxpbmJnIHRoZSB0ZW1wbGF0ZSBuYW1lIGNvbmZvcm1hbmNlIGNoZWNrcwoKMjAxMC0xMS0xOCAxNjozMTozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiB0aGUgc3VwcGxpZWQgY2FwcyBtYXkgbm90IGJlIE5VTEwKCSAgVGhlcmUgaXMgYSBlYXJsaWVyIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIGNoZWNrLiBBbHNvCgkgIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCBkb2VzIG5vdCBoYXZlIHN1Y2ggYSBjaGVjay4KCjIwMTAtMTEtMDMgMTY6Mzc6MTAgKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8YW1vcmFsZXNAZmx1bW90aW9uLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IFByaW50IHNpbmstbWVzc2FnZSBldmVudHMgbGlrZSBhIG1lc3NhZ2UgYW5kIHRoZSBHc3RNZXNzYWdlIHN0cnVjdHVyZQoKMjAxMC0xMS0wMSAxNTozMjo0MyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkqIGRvY3MvZGVzaWduL2RyYWZ0LW1ldGFkYXRhLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWFjdGl2YXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtY29udmVudGlvbnMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWR5bmFtaWMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1wdXNoLXB1bGwudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcXVlcnkudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXJlbGF0aW9ucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YW5kYXJkcy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc3RhdHVzLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBkZXNpZ24tZG9jczogYWRkIGh0bWwgb3V0cHV0IHVzaW5nIGFzY2lpZG9jCgkgIFVuaWZ5IHRoZSBhZC1ob2MgbWFya3VwIHRvIGJlIGFzY2lpZG9jIHN0eWxlIGluIG1hbnkgcGxhY2VzLiBBZGQgYSAiaHRtbCIgdGFyZ2V0CgkgIHRvIE1ha2VmaWxlIHRvIGdlbmVyYXRlIHRoZSBvdXRwdXQuCgoyMDEwLTEwLTE5IDE0OjI3OjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogbW9yZSBkZWZhdWx0IG5hbWUgZ2VuZXJhdGlvbiBtb3JlIGVmZmljaWVudAoJICBTYXZlIH4yMDAwIG1hbGxvYy9tZW1jcHkvZnJlZSBwYWlycyBhdCBzdGFydHVwIGJ5IHJ1bm5pbmcgdG9fbG93ZXIgaW4tcGxhY2UuCgkgIEFsc28gc2tpcCB0aGUgbnVtYmVycyBhcyB3ZSBjYW4uCgoyMDEwLTEwLTE4IDE0OjQ1OjE2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBwbHVnaW5mZWF0dXJlOiB1c2UgdGhlIHBhcmVudF9jbGFzcyBmcm9tIEdfREVGSU5FX1RZUEUgbWFjcm8gYW5kIGRyb3AgZXh0cmEgY29weQoKMjAxMC0xMC0yMCAxNDoyNzoxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiB1c2UgZ19pbnRlcm5fc3RyaW5nIGZvciBpbnRlcmZhY2UgbmFtZXMKCjIwMTAtMTAtMTggMTM6Mjk6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IGFsc28gaW50ZXJuIHRoZSBzdGF0aWMgY2FwcwoKMjAxMC0xMi0wMyAwMDowMDowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBtZXRhLWRhdGEgY2FuIGJlIE5VTEwKCjIwMTAtMTItMDIgMTY6Mjg6NDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJICBnc3RkYXRldGltZTogRml4IGhhbmRsaW5nIG9mIHRpbWV6b25lcwoJICBGaXggcmV0dXJuaW5nIG9mIHRpbWV6b25lcyBvbiBzeXN0ZW1zIHdpdGggZ2RhdGV0aW1lCgkgIHRvIHVzZSBmbG9hdHMgb24gdGhlIG1hdGggZXhwcmVzc2lvbiB0byBhdm9pZAoJICB0cnVuY2F0aW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQuCgkgIEFsc28gYWRkcyBhIHRlc3QgZm9yIGNvdmVyaW5nIHRoaXMgY2FzZS4KCjIwMTAtMTItMDIgMTk6NDQ6NDEgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBnc3RkYXRhcXVldWU6IERvbid0IGJyZWFrIEFCSQoJICBUaGUgb3JkZXIgb2YgdGhlIGZpZWxkIHdhcyB3cm9uZywgYW5kIHRoZSBzaXplIG9mIHRoZSBzdHJ1Y3R1cmUgZGlkbid0CgkgIGVuZCB1cCBiZWluZyB0aGUgc2FtZS4KCjIwMTAtMTEtMjUgMTg6NDg6MDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSAgYmFzZXNpbms6IHJld29yayBwb3NpdGlvbiByZXBvcnRpbmcgY29kZQoJICBVbmlmeSB0aGUgZGlmZmVyZW50IHBvc2l0aW9uIHJlcG9ydGluZyBjb2RlIHBhdGhzIHRvIG1ha2UgaXQgbW9yZQoJICB1bmRlcnN0YW5kYWJsZS4KCSAgVXNlIHN0YXJ0X3RpbWUgdG8gZ2V0IG1vcmUgYWNjdXJhdGUgcG9zaXRpb24gcmVwb3J0aW5nIGluIHBhdXNlZC4KCSAgRml4IHVuaXQgdGVzdHMgZm9yIG1vcmUgYWNjdXJhdGUgcmVwb3J0aW5nLgoKMjAxMC0xMS0yNSAxNjowNjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBlcmZvcm0gd2FpdF9wcmVyb2xsIGluIGEgd2hpbGUgbG9vcAoJICBXZSBuZWVkIHRvIGNvbnRpbnVlIGNhbGxpbmcgd2FpdF9wcmVyb2xsKCkgYXMgbG9uZyBhcyB0aGUgbmVlZF9wcmVyb2xsIHZhcmlhYmxlCgkgIGlzIHRydWUuCgoyMDEwLTExLTE3IDE2OjQ2OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiByZXR1cm4gaW1tZWRpYXRlbHkgZm9yIC0xIGNvbnZlcnNpb24KCSAgV2hlbiB3ZSBhcmUgYXNrZWQgdG8gY29udmVydCAtMSwgd2UgY2FuIHJldHVybiBpbW1lZGlhdGVseSB3aXRoIGEgLTEgcmV0dXJuCgkgIHZhbHVlLgoKMjAxMC0xMS0xNyAxNjo0MjowMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogYSBjb252ZXJ0IHF1ZXJ5IGNhbiBoYXZlIGEgLTEgaW5wdXQgdmFsdWUKCSAgSXQgaXMgYWxsb3dlZCB0byBwYXNzIC0xIHRvIHRoZSBzcmNfdmFsIGZvciBhIGNvbnZlcnQuCgoyMDEwLTExLTE2IDEyOjIwOjM3ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgIGJhc2VzaW5rOiBhbHNvIHByZXJvbGwgYWZ0ZXIgYSBmbHVzaCB3aXRoIGFzeW5jPWZhbHNlCgkgIE1ha2Ugc3VyZSB0byBwcmVyb2xsIGFmdGVyIGEgZmx1c2ggZXZlbiB3aGVuIHdlIGFyZSBhc3luYz1mYWxzZS4KCSAgQWRkIHVuaXQgdGVzdC4KCSAgRml4ZXMgIzYzNDk2NQoKMjAxMC0xMS0xNSAxODoyMDoyNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBpbXByb3ZlIGRvY3MgYSBsaXR0bGUuCgoyMDEwLTExLTE1IDE4OjE3OjM2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOgoJICBjaGVjazogbG9jayBzcmMgc3RhdGUgdG8gYXZvaWQgZXJyb3IgY2FzZXMKCSAgTG9jayB0aGUgc3RhdGUgb2YgdGhlIHNyYyBlbGVtZW50IG9yIGVsc2UgdGhlIHBpcGVsaW5lIG1pZ2h0IGdvIGludG8gdGhlIGVycm9yCgkgIHN0YXRlIHdoZW4gd2Ugc2V0IGl0IHRvIFBBVVNFRCBsYXRlci4KCjIwMTAtMTEtMTUgMTI6NDk6MDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGF2b2lkIHVzaW5nIGludmFsaWQgY2xvY2sgdGltZXMKCSAgQmUgZXh0cmEgY2FyZWZ1bCB0byBub3QgdXNlIGludmFsaWQgY2xvY2sgdGltZXMgYnV0IGdpdmUgYSB3YXJuaW5nIGluc3RlYWQuIFRoaXMKCSAgc2hvdWxkIG1ha2UgdGhpbmdzIHdvcmsgYmV0dGVyIHdpdGggZmF1bHR5IGNsb2NrIGltcGxlbWVudGF0aW9ucy4KCjIwMTAtMTEtMTEgMTA6NDE6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBpbXByb3ZlIHNvbWUgY29tbWVudHMgYWJvdXQgdGhlIHppZ3phZyBpbnRlcnNlY3Rpb24KCjIwMTAtMTItMDIgMTM6MDQ6MzAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBkb2NzOiBBZGQgdW51c2VkIHN5bWJvbHMgdG8gcHJvcGVyIHNlY3Rpb25zCgoyMDEwLTEyLTAyIDEzOjAzOjU3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogQWRkIEdzdERhdGVUaW1lIHNlY3Rpb24gYW5kIHVwZGF0ZSBpdCBmb3IgbGF0ZXN0IHN5bWJvbHMKCjIwMTAtMTAtMTkgMTg6MDk6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IE9ubHkgY2FsbCB1cGRhdGVfYnVmZmVyaW5nIGlmIG5lZWRlZC4KCSAgdXBkYXRlX2J1ZmZlcmluZyBpcyBzbyBiaWcgaXQgd2lsbCBuZXZlciBiZSBpbmxpbmVkIChhbmQgc2hvdWxkbid0KSwKCSAgd2UgdGhlcmVmb3JlIG1vdmUgdGhlIGNoZWNrIG91dHNpZGUgb2YgaXQuCgoyMDEwLTEwLTE5IDE3OjQ1OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBBdm9pZCByZS1jaGVja2luZyBtYW55IHRpbWVzIHdoZXRoZXIgYW4gaXRlbSBpcyBhIGJ1ZmZlcgoJICBBdm9pZHMgY2FsbGluZyA2IHRpbWVzIGdzdF9idWZmZXJfZ2V0X3R5cGUoKSBmb3IgZXZlcnkgaXRlbSBjb21pbmcKCSAgdGhyb3VnaCBxdWV1ZTIKCjIwMTAtMTAtMTkgMTc6NDM6NTYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFJlZHVjZSBhbW91bnQgb2YgdGltZSBsb2NrcyBhcmUgdGFrZW4KCjIwMTAtMTAtMTkgMTc6NDI6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeHVwIGRvY3VtZW50YXRpb24gb2Ygc29tZSBwcm9wZXJ0aWVzCgoyMDEwLTEwLTE5IDE3OjQwOjEzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBBdm9pZCB1c2VsZXNzIHNlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgY2FsY3VsYXRpb25zLgoJICAqIENhY2hlIHNyYyBhbmQgc2luayB0aW1lCgkgICogVXNlIGEgYm9vbGVhbiB0byBrbm93biB3aGV0aGVyIHNyYy9zaW5rIHRpbWUgbmVlZHMgdG8gYmUgcmVjYWxjdWxhdGVkCgkgIEF2b2lkcyA1MCUgb2YgY2FsbHMgdG8gZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKCkKCjIwMTAtMTAtMjAgMTc6NDE6MjggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBSZS11c2luZyBHc3RDbG9ja0lEIGluc3RlYWQgb2YgY29uc3RhbnRseSByZWNyZWF0aW5nIG9uZQoJICBNYWtlcyBfc2lua193YWl0X2Nsb2NrIGF0IGxlYXN0IDIgdGltZXMgZmFzdGVyLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzc4CgoyMDEwLTEwLTIwIDE3OjQwOjQzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0Y2xvY2s6IE5ldyBBUEkgdG8gcmUtdXNlIGEgc2luZ2xlIHNob3QgR3N0Q2xvY2tJRAoJICBBUEk6IGdzdF9jbG9ja19zaW5nbGVfc2hvdF9pZF9yZWluaXQKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OAoKMjAxMC0xMC0yMCAxMzo1MjowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFBhc3MgYWxvbmcgbWluaW9iamVjdCB0eXBlIHRocm91Z2ggdmFyaW91cyBmdW5jdGlvbnMKCSAgQXZvaWRzIGRvaW5nIHVzZWxlc3MgR1NUX0lTXyoKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OAoKMjAxMC0xMC0yMCAxMzowODowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFN3aXRjaCBlbmFibGVfbGFzdF9idWZmZXIgdG8gYW4gYXRvbWljIGludAoJICBBdm9pZHMgaGF2aW5nIHRvIHRha2UgYSBsb2NrIHRvIHJlYWQvd3JpdGUgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI3NzgKCjIwMTAtMTAtMTkgMTU6NTM6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBSZW1vdmUgdXNlbGVzcyBjaGVja3MgZnJvbSBlNDA2ZjcKCSAgc3JjcmVzdWx0IHdhcyBiZWluZyByZWNoZWNrZWQgaW4gcGxhY2VzIGl0IGNvdWxkbid0IGhhdmUgY2hhbmdlZC4KCSAgcXVldWUgbGV2ZWwgd2FzIGJlaW5nIHJlY2hlY2tlZCBpbiBwbGFjZXMgaXQgY291bGRuJ3QgaGF2ZSBjaGFuZ2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMyNzgwCgoyMDEwLTEwLTEzIDEzOjUwOjIyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSAgZ3N0ZGF0YXF1ZXVlOiBPbmx5IGVtaXQgZ19jb25kX3NpZ25hbCB3aGVuIG5lZWRlZAoJICBLZWVwIHRyYWNrIG9mIHdoaWNoIGNvbmQgd2UncmUgd2FpdGluZyBmb3IgYW5kIG9ubHkgZW1pdCB3aGVuIG5lZWRlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzMjc3OQoKMjAxMC0xMC0yMCAxNzoxMjoyOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IG1vdmUgZ19yZXR1cm5faWZfZmFpbCB0byB3aGVyZSBpdCBpcyBuZWVkZWQKCjIwMTAtMTEtMDMgMTE6MTQ6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgdmVyc2lvbjogVGFrZSBuYW5vIHZlcnNpb24gaW50byBhY2NvdW50IGluIEdTVF9DSEVDS19WRVJTSU9OKCkKCSAgSWYgdGhlIG5hbm8gaXMgPiAwIHRoZSBjdXJyZW50IHZlcnNpb24gc2hvdWxkIGJlIGhhbmRsZWQgdGhlIHNhbWUgYXMKCSAgbWljcm8gKyAxLgoKMjAxMC0xMS0wMSAxNjozNDo0NiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogU2V0IHRoZSBldmVudCBzb3VyY2Ugb2JqZWN0IGlmIG5vbmUgaXMgc2V0IHlldCBpbiBnc3RfcGFkX3B1c2hfZXZlbnQoKQoJICBPdGhlcndpc2UgdGhlIHNvdXJjZSB3aWxsIHN0YXkgYXQgTlVMTCwgdGhlIGV2ZW50IGlzIHBhc3NlZCB0byB0aGUKCSAgcGVlcnBhZCB2aWEgZ3N0X3BhZF9zZW5kX2V2ZW50KCkgYW5kIHRoZW4gdGhlIHBlZXJwYWQgaXMgc2V0IGFzCgkgIHNvdXJjZSBvZiB0aGUgZXZlbnQgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYXRpbmcgcGFkLgoKMjAxMC0xMC0zMSAxODo0ODoxOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQgYW5kIHVudXNlZCB2YXJpYWJsZQoKMjAxMC0xMC0zMSAxODo0Njo0MyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQgYW5kIG1vdmUgdmFyaWFibGUgZGVjbGFyYXRpb24gaW50byBpbm5lciBibG9jawoKMjAxMC0xMC0zMSAxODoyMzowMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IFJlbW92ZSByZWR1bmRhbnQgdmFyaWFibGUKCSAgT3RoZXIgdGhhbiBzYXZpbmcgYW4gaW1tZW5zZSBhbW91bnQgb2YgNCBieXRlcyBvZiBtZW1vcnkgdGhpcwoJICBwcmV2ZW50cyBjbGFuZyBmcm9tIGNvbXBsYWluaW5nIGFuZCBrZWVwcyB0aGUgcmluZyBidWZmZXIgc3RhdGUKCSAgaW4gYSBzaW5nbGUgdmFyaWFibGUgaW5zdGVhZCBvZiB0d28uCgoyMDEwLTEwLTIwIDEwOjE4OjE4ICswMjAwICBEYXZpZCBIb3l0IDxkaG95dEBsbG5sLmdvdj4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIGdzdHRhc2s6IFNldCB0aHJlYWQgbmFtZXMgb24gV2luZG93cyB3aXRoIE1TVkMgaWYgYSBkZWJ1Z2dlciBpcyBhdHRhY2hlZAoJICBGaXhlcyBidWcgIzYzMjE2OC4KCjIwMTAtMTAtMTkgMTU6NTI6MzAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJICBtYWNyb3M6IERlZmluZSByZXN0cmljdCBrZXl3b3JkIGlmIG5vdCBhdmFpbGFibGUKCSAgVGhpcyBjaGFuZ2UgYWx3YXlzIGRlZmluZXMgdGhlIHJlc3RyaWN0IGtleXdvcmQgaWYgYQoJICBub24tQzk5IEMgY29tcGlsZXIgaXMgdXNlZC4gSW4gdGhlIGNhc2Ugb2YgR0NDID49IDQKCSAgaXQgd2lsbCBiZSBkZWZpbmVkIHRvIF9fcmVzdHJpY3RfXywgaW4gYWxsIG90aGVyCgkgIGNhc2VzIHRvIG5vdGhpbmcuIFRoaXMgYWxsb3dzIHRvIHVzZSB0aGUgcmVzdHJpY3QKCSAga2V5d29yZCB1bmNvbmRpdGlvbmFsbHkuCgoyMDEwLTEyLTAxIDIzOjU3OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBHTGliIHJlcXVpcmVtZW50IHRvID49IDIuMjIKCSAgU2VlIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3dpa2kvUmVsZWFzZVBsYW5uaW5nL0dMaWJSZXF1aXJlbWVudAoKMjAxMC0xMi0wMSAyMzo1Njo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50Cgo9PT0gcmVsZWFzZSAwLjEwLjMxID09PQoKMjAxMC0xMS0zMCAxNzo0MDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMzEKCjIwMTAtMTEtMjcgMTk6MTM6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIHV0aWxzOiBhdm9pZCAndW51c2VkIGFyZ3VtZW50JyB3YXJuaW5ncyBjYXVzZWQgYnkgR1NUX0JPSUxFUlBMQVRFX0ZVTEwKCSAgVGhlIHVudXNlZCBkYXRhIHBhcmFtZXRlciBpbiB0aGUgY2xhc3NfaW5pdCB0cmFtcG9saW5lIGZ1bmN0aW9uCgkgIHNlZW1zIHRvIGNhdXNlIHdhcm5pbmdzIHdpdGggc29tZSBjKysgY29tcGlsZXJzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1ODY5CgoyMDEwLTExLTA5IDIzOjI3OjE3IC0wMzAwICByZXluYWxkbyA8cmV5bmFsZG9Ab3BlbmRvdC5jbD4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIGRvY3M6IHNvbWUgc21hbGwgZml4ZXMgdG8gdGhlIHBsdWdpbiB3cml0ZXIncyBndWlkZQoJICBGaXggd3JvbmdseSBwbGFjZWQgZXhhbXBsZSBhbmQgd2VpcmRseSBwaHJhc2VkICdub3RlJyBsYWNraW5nIHByb3BlcgoJICBmb3JtYXR0aW5nLiBGaXggbWlzc2luZyBoaW50IGZvciBhdXRvZ2VuLnNoIGxvY2F0aW9uIGFuZCByZXBocmFzZQoJICAnYnVpbHQgYW5kIGluc3RhbGxlZCcgc2VudGVuY2UuIEZpeCB3cm9uZ2x5IHBocmFzZWQgYW5kIHJlZHVuZGFudAoJICBwYXJhZ3JhcGggaW4gUFdHCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzQ5MjEKCjIwMTAtMTEtMjcgMTE6MDI6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSAgbWFudWFsOiBJbXByb3ZlIHN0YXRlcyBkb2N1bWVudGF0aW9uCgkgIEJlIG1vcmUgZXhwbGljaXQgYWJvdXQgYmVpbmcgb24gTlVMTCBiZWZvcmUgdW5yZWZzCgoyMDEwLTExLTIwIDE0OjU0OjIzIC0wODAwICBFdmFuIE5lbWVyc29uIDxldmFuQGNvZXVzLWdyb3VwLmNvbT4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBJbmNsdWRlIGV4cG9ydGVkIHBhY2thZ2VzIGluZm9ybWF0aW9uIGluIEdJUnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTM4OQoKMjAxMC0xMS0xOCAwMDoyOTo0MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC41IHByZS1yZWxlYXNlCgoyMDEwLTExLTE4IDAwOjI5OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogZml4IGNhcHMgbGVhayBpbiBlbGVtZW50IGZhY3RvcnkgbGlzdCB1dGlsaXR5IGZ1bmN0aW9ucwoKMjAxMC0xMS0xNyAyMzo1NTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2RhLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2h1LnBvOgoJKiBwby9zay5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMTEtMTcgMDk6Mzk6MzQgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRldGltZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGF0ZXRpbWU6IEFkZCBfZnJvbV91bml4X2Vwb2NoIHZhcmlhbnRzCgkgIEFkZHMgMiB2YXJpYW50cyBmb3IgdGhlIGdzdF9kYXRlX3RpbWVfZnJvbV91bml4X2Vwb2NoIGZ1bmN0aW9uLAoJICBvbmUgZm9yIFVUQyBhbmQgYW5vdGhlciBmb3IgbG9jYWwgdGltZS4KCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19mcm9tX3VuaXhfZXBvY2hfdXRjCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV91bml4X2Vwb2NoX2xvY2FsX3RpbWUKCSAgRml4ZXMgIzY1MzAzMQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM1MDMxCgoyMDEwLTExLTAzIDE0OjIxOjAyICswMDAwICBWbGFkaW1pciBFcmVtZWV2IDx3bDI3NzZAZ21haWwuY29tPgoKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkgIG1hdGgtY29tcGF0OiBkb24ndCByZS1kZWZpbmUgX1VTRV9NQVRIX0RFRklORVMgaWYgYWxyZWFkeSBkZWZpbmVkCgkgIFRoaXMgYXZvaWRzIGNvbXBpbGVyIHdhcm5pbmdzLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMzODg2CgoyMDEwLTExLTAxIDE2OjA2OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMwLjQgcHJlLXJlbGVhc2UKCjIwMTAtMTEtMDEgMTU6MzY6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vZGUucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0xMC0zMSAyMDoxNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IGxlYWsgcGFkIHJlZiBpbiBwdWxsIG1vZGUgd2hlbiBmbHVzaGluZwoJICBGaXggcGFkIGxlYWsgd2hlbiBxdWV1ZTIgaXMgZmx1c2hpbmcgb3IgYmVpbmcgc2h1dCBkb3duLgoKMjAxMC0xMC0zMSAxOTo0NzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IGRvbid0IHNlbmQgc2Vla3MgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGZpbGUgdXBzdHJlYW0gaW4gcHVsbCBtb2RlCgkgIElmIGRvd25zdHJlYW0gaXMgb3BlcmF0aW5nIGluIHB1bGwgbW9kZSwgc2hvcnQtY2lyY3VpdCBhbnkgcHVsbHMgYmV5b25kCgkgIHRoZSBlbmQgb2YgdGhlIGZpbGUgYW5kIHJldHVybiBGTE9XX1VORVhQRUNURUQgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZgoJICBzZW5kaW5nIGEgc2VlayBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgZmlsZSB1cHN0cmVhbSwgc2luY2UgdGhpcyBtaWdodAoJICBjb25mdXNlIHVwc3RyZWFtIGVsZW1lbnRzIChhbmQvb3IgaHR0cCBzZXJ2ZXJzLCBmb3IgZXhhbXBsZSkuIEZpeGVzCgkgIHBsYXliYWNrIG9mIGFwcGxlIHRyYWlsZXJzIGluIHRvdGVtIGFuZCB5b3V0dWJlL2h0bWw1IGNsaXBzIGluCgkgIFdlYmtpdEdUSysuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MzI5NzcKCjIwMTAtMTAtMjggMjM6Mjg6MTUgKzEwMDAgIEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuQGQxNG4ub3JnPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHVzZSBpbnB1dCBwb3NpdGlvbiBmb3IgcXVlcmllcyBpZiB3ZSBoYXZlIG5vIG91dHB1dCBwb3NpdGlvbgoKMjAxMC0xMC0yOCAxMzoyOTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBmaXggcmV2ZXJzZSBuZWdvdGlhdGlvbgoJICBXaGVuIHRoZSBkb3duc3RyZWFtIGVsZW1lbnQgc3VnZ2VzdHMgYSBuZXcgZm9ybWF0LCBwYXNzIHRoZSBzdWdnZXN0aW9uCgkgIHVwc3RyZWFtIGlmIHdlIGNhbid0IGNvbnZlcnQgdG8gaXQuCgkgIEZpeGVzICM2MzMxNDcKCjIwMTAtMTAtMjcgMTg6MTI6MzYgKzAyMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBGaXggdHJhY2tpbmcgb2YgdW5saW5rZWQgc3RyZWFtcy4KCSAgMzMwODJlYjllNDJjNTJlNGRmODQ4MTk1OTQ2ZjFiN2JiY2U3NjhjNSBpbnRyb2R1Y2VkIGEgYnVnCgkgIHByZXZlbnRpbmcgc3BhcnNlIHVubGlua2VkIHN0cmVhbXMgZnJvbSBhZHZhbmNpbmcgcHJvcGVybHksCgkgIGxlYWRpbmcgdG8gdGhlIHF1ZXVlIGJsb2NraW5nLgoJICBGaXhlczogIzYzMzE3NgoKMjAxMC0xMC0yNyAxODoxMTozNSArMDIwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogQWRkIGEgbXVsdGlxdWV1ZSBzcGFyc2Ugc3RyZWFtcyB0ZXN0CgoyMDEwLTEwLTI3IDEzOjE2OjExICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdiYmQ3MDggdG8gMDExYmNjOAoKMjAxMC0xMC0yMiAxNzozNToyMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4zMC4zIHByZS1yZWxlYXNlCgoyMDEwLTEwLTE4IDE3OjQyOjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogY29uc3QtaWZ5IGJ5dGUgcmVhZGVyIGFyZ3VtZW50IGluIHBlZWsvc2NhbiBBUEkKCSAgQmVjYXVzZSB3ZSBjYW4uCgoyMDEwLTEwLTIyIDExOjUyOjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIGVsZW1lbnRmYWN0b3J5OiBGaXggNjRiaXQgY29uc3RhbnQKCSAgQmFzaWNhbGx5IHdlJ3JlIG5vdCBtZWFudCB0byBwdXQgYW55dGhpbmcgbW9yZSBjb21wbGV4IHRoYW4gc2ltcGxlIG51bWJlcnMsCgkgIGR1ZSB0byB0aGUgZGVmaW5pdGlvbiBvZiBHX0dVSU5UNjRfQ09OU1RBTlQ6CgkgIEdfR1VJTlQ2NF9DT05TVEFOVCh2YWwpCSh2YWwjI1VMKQoJICBXaGljaCBwcmV2aW91c2x5IHJlc3VsdGVkIGluIC4uLi4gMSA8PCA0OVVMCgoyMDEwLTEwLTE4IDEwOjQ2OjU5ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHJlY29tcHV0ZSBjb3JyZWN0IHJ1bm5pbmcgdGltZSBmb3IgYnVmZmVyIGVuZGluZyBmbHVzaGluZyBzdGVwCgkgIFByZXZlbnRzIGRlbGF5aW5nL2hhbmdpbmcgd2hlbiByZXN1bWluZyBQTEFZSU5HLgoJICBGaXhlcyAjNjMyNDMzLgoKMjAxMC0xMC0xNiAxOToxOTo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6CgkgIGRvY3M6IGZpeCBtaXNjLiBndGstZG9jIHdhcm5pbmdzIGluIGxpYnMKCSAgKGZvciBndGstZG9jIDEuMTUpCgoyMDEwLTEwLTE2IDE4OjI2OjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIFJldmVydCAibGlicy9nc3QvZGF0YXF1ZXVlOiBEb2N1bWVudCBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4MDcyN2MxMTc3MDM1MDdmNzkwYTg2YjA5NjJhYjNkOTE1ZTVhNDkxLgoJICBUaGlzIGRvZXNuJ3QgbWFrZSBzZW5zZS4gZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwoKSBpcyBhbHJlYWR5CgkgIGRvY3VtZW50ZWQgYWJvdmUuIEFuZCB3ZSBuZWVkIHRoZSBkb2MgYmx1cmIgZm9yIF9uZXcoKSBoZXJlLgoKMjAxMC0xMC0xNiAxNzowMDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBmbGVzaCBvdXQgcmVsZWFzZSBpbnN0cnVjdGlvbnMgYSBiaXQgbW9yZQoKMjAxMC0xMC0xNiAxNjo1Mzo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFyc2UuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jczogYWRkIHNvbWUgZ3RrLWRvYyBTaW5jZTogbWFya2VycwoJICBBZGQgc29tZSBndGstZG9jIFNpbmNlOiBtYXJrZXJzLCBmaXggb25lIFNpbmNlOiBtYXJrZXIsCgkgIGZpeCB0eXBvLgoKMjAxMC0xMC0xNiAwMDoyNTo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjMwLjIgcHJlLXJlbGVhc2UKCjIwMTAtMTAtMTYgMDA6MTQ6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTElOR1VBUzoKCSogcG8vZXMucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9sdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3JvLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc2wucG86CgkqIHBvL3N2LnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTEwLTE1IDE5OjQ1OjE0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiB1c2VmdWwgZmFjdG9yeSBuYW1lcyBmb3IgdXJpLWhhbmRsZXJzIG91dHB1dAoJICBGaXhlcyAjNjMyMjM2LgoKMjAxMC0xMC0xNCAxMjozMTozMiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVhNjY4YmYgdG8gN2JiZDcwOAoKMjAxMC0xMC0xMiAxNToxMzo0OCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGRhdGV0aW1lOiBVc2Ugc2Vjb25kcyBhcyBkb3VibGUKCSAgVXNlIHNlY29uZHMgYXMgZG91YmxlIHRvIG1ha2UgQVBJIHNpbWlsYXIgdG8gZ2xpYidzCgkgIGdkYXRldGltZS4gQWxzbyBtb3ZlIHRpbWV6b25lIHBhcmFtZXRlciB0byB0aGUKCSAgZmlyc3QgcG9zaXRpb24sIGp1c3QgbGlrZSBnbGliJ3MuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjg0MDgKCjIwMTAtMTAtMTEgMTY6MTU6MjkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBNb3ZlIGRvYyBvdXRzaWRlIHRoZSBpZmRlZnMKCSAgTW92ZSB0aGUgZGF0ZXRpbWUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZnVuY3Rpb25zIG91dHNpZGUgdGhlCgkgIGlmZGVmcwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4NDA4CgoyMDEwLTA5LTI3IDE5OjM1OjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkqIGdzdC9nc3RkYXRldGltZS5jOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuaDoKCSAgZGF0ZXRpbWU6IFVzZSBHRGF0ZVRpbWUgaWYgYXZhaWxhYmxlCgkgIFVzZSBHRGF0ZVRpbWUgaW50ZXJuYWxseSBvbiBHc3REYXRlVGltZSBpZiBnbGliIGFscmVhZHkKCSAgcHJvdmlkZXMgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjg0MDgKCjIwMTAtMDktMjggMTc6NDY6MjkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgZ2xpYi1wcml2YXRlOiBBZGQgaW5jbHVkZSBwcm90ZWN0aW9uIG1hY3JvCgoyMDEwLTEwLTEzIDEyOjUxOjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhZGQgZ3VhcmQgdG8gYnVmZmVyX3NldF9jYXBzKCkgdGhhdCBjaGVja3MgaWYgY2FwcyBhcmUgc2ltcGxlCgoyMDEwLTEwLTEzIDE1OjU2OjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IGFkZCBhIG1pc3NpbmcgR19QQVJBTV9TVEFUSUNfU1RSSU5HUwoKMjAwOS0xMC0wMSAxMToxNDowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkgIGxpYnMvZ3N0L2RhdGFxdWV1ZTogRG9jdW1lbnQgZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwKCjIwMDktMDktMjggMTM6MzU6MzUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBiYXNlL2dzdGRhdGFxdWV1ZTogaW5saW5lIHNvbWUgZnVuY3Rpb25zLCBnZXQgbGV2ZWxzIHdpdGggbWVtY3B5LgoKMjAxMC0xMC0xMyAxMTo1NDowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogUmVtb3ZlIHVudXNlZCBhcmd1bWVudCBmcm9tIGZpbmRfcmFuZ2UoKQoKMjAxMC0xMC0xMyAxMTo1MjoyNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogY2xlYW51cCBnZXRfcHJvcGVydHkvc2V0X3Byb3BlcnR5CgoyMDEwLTEwLTEyIDE4OjQ4OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBhdm9pZCBnX2NvbmRfc2lnbmFsIHdoZW4gd2UgY2FuCgkgIEtlZXAgdHJhY2sgb2Ygd2hhdCBjb25kIHdlIGFyZSB3YWl0aW5nIG9uIGFuZCBvbmx5IHNpZ25hbCB3aGVuIHNvbWUgb3RoZXIgdGhyZWFkCgkgIGlzIHdhaXRpbmcuCgoyMDEwLTEwLTExIDE5OjI3OjU0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIGR1cGxpY2F0ZSB0eXBlIGNoZWNrIHdoZW4gZnJlZWluZyBtaW5pb2JqZWN0CgkgIGdzdF9taW5pX29iamVjdF91bnJlZigpIGhhcyBndWFyZHMgdGhhdCBjaGVjayB0aGUgdHlwZSBhbHJlYWR5LCBzbwoJICB3ZSBkb24ndCByZWFsbHkgbmVlZCB0byByZS1jaGVjayBpdCBoZXJlIGFnYWluIHdoaWxlIGdldHRpbmcgdGhlCgkgIGNsYXNzICh0aGVyZSdzIG5vdCByZWFsbHkgbXVjaCBwb2ludCB0byB0aGF0IGFueXdheSwgc2luY2Ugd2UgZG9uJ3QKCSAgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZ2V0X2NsYXNzLCBzbyB3ZSdkIGNyYXNoIGFueXdheSBpZgoJICB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgbWluaSBvYmplY3QsIHRoZSBvbmx5IHF1ZXN0aW9uIHdvdWxkCgkgIGJlIGlmIHRoZXJlJ2QgYmUgYSB3YXJuaW5nIGJlZm9yZSB0aGUgY3Jhc2ggb3Igbm90KS4KCjIwMTAtMTAtMTEgMTg6NTU6MTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBEaXJlY3RseSBpbmNyZWF0ZSBtaW5pX29iamVjdCBpbiBtaW5pX29iamVjdF9mcmVlKCkKCSAgU3BlZWRzIHVwIG1pbmlfb2JqZWN0X3VucmVmIGJ5IDI1JSBieSBhdm9pZGluZyB0aGUgdHlwZWNoZWNrIHdoaWNoCgkgIGlzIGF2b2lkYWJsZSBoZXJlIHNpbmNlIGl0IGlzIG9ubHkgY2FsbGVkIG9uIGV4aXN0aW5nIG1pbmlvYmplY3RzLgoKMjAxMC0xMC0xMSAxODozMDo1NCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IFJlbW92ZSBjb25mdXNpbmcgREVCVUdfUkVGQ09VTlQgZGVmaW5lCgkgIHRoZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyB3aWxsIGJlIHNpbGVuY2VkIGF1dG9tYXRpY2FsbHkgaWYgZGVidWdnaW5nCgkgIGlzIGRpc2FibGVkLCBhbmQgdGhlIHR5cGUgY2hlY2sgaXMgYWN0dWFsbHkgcmVxdWlyZWQuCgoyMDEwLTEwLTExIDE4OjEwOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWxlYXNlIHF1ZXVlMiBsb2NrIGJlZm9yZSBub3RpZnkKCSAgTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgaG9sZCB0aGUgbG9jayB3aGVuIHdlIG5vdGlmeSB0aGUgdGVtcC1sb2NhdGlvbgoJICBwcm9wZXJ0eSwKCSAgRml4ZXMgIzYzMTg1MwoKMjAxMC0xMC0xMSAxNjo0NToxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGFkZCBkZWJ1ZyBzdGF0ZW1lbnQKCjIwMTAtMTAtMTEgMTA6Mjc6NTIgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGFwcGx5IHNpbmsgc2VnbWVudCBvbiB0aGUgc291cmNlIGlmIHF1ZXVlIGlzIGVtcHR5CgkgIEFwcGx5IHRoZSBzaW5rIHNlZ21lbnQgb24gdGhlIHNvdXJjZSBpbW1lZGlhdGx5IHdoZW4gaXQgaXMgcmVjZWl2ZWQKCSAgYW5kIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIHF1ZXVlLgoJICBTb2x2ZXMgIzQ4MjE0NwoKMjAxMC0xMC0xMSAxNTo1MToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggZG9jdW1lbnRhdGlvbiBmb3IgaXRlcmF0ZV9zb3VyY2VzCgoyMDEwLTEwLTExIDE2OjQxOjI2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgZG9jczogdXNlIHRoZSBndGstZG9jIHNob3J0Y3V0cyB0byBnZXQgY29sb3VyZWQgYW5kIHhyZWZlZCBleGFtcGxlCgoyMDEwLTEwLTExIDE0OjIwOjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBJbml0aWFsaXplIHZhcmlhYmxlCgoyMDEwLTEwLTExIDEwOjU2OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IEltcHJvdmUgdHJhY2tpbmcgb2Ygc291cmNlIGVsZW1lbnRzCgkgIFRyYWNrIGVsZW1lbnRzIHRhZ2dlZCB3aXRoIHRoZSBJU19TT1VSQ0UgZmxhZyBpbiBhIHNpbWlsYXIgd2F5IHdlIHRyYWNrIHRoZSBzaW5rCgkgIGVsZW1lbnRzLiBUaGlzIGFsbG93cyB1cyB0byBlZmZpY2llbnRseSBkaXNwYXRjaCBkb3duc3RyZWFtIGV2ZW50cyB0byB0aGUgcmlnaHQKCSAgZWxlbWVudHMuCgoyMDEwLTEwLTExIDEwOjU1OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHRhZyBhcyBhIFNPVVJDRSBlbGVtZW50CgkgIFRhZyBhbGwgZWxlbWVudHMgZGVyaXZpbmcgZnJvbSB0aGUgYmFzZXNyYyB3aXRoIHRoZSBJU19TT1VSQ0UgZmxhZy4KCjIwMTAtMTAtMTEgMTA6NTM6NDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBlbGVtZW50OiBhZGQgSVNfU09VUkNFIGZsYWcKCSAgQWRkIHRoZSBHU1RfRUxFTUVOVF9JU19TT1VSQ0UgZmxhZyBzbyB0aGF0IHdlIGNhbiB0YWcgc291cmNlIGVsZW1lbnRzIGxpa2Ugd2UKCSAgY2FuIHdpdGggc2luayBlbGVtZW50cy4KCjIwMTAtMTAtMDkgMTQ6MTg6NDQgKzAxMDAgIFZpbmNlbnQgUGVucXVlcmMnaCA8b2dnLmsub2dnLmtAZ29vZ2xlbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IGdfbWFwcGVkX2ZpbGVfdW5yZWYgZXhpc3RzIGFscmVhZHkgc2luY2UgR0xpYiAyLjIxLjMKCjIwMTAtMTAtMTAgMTg6MTQ6NDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlcG9ydCB0aGUgb3V0cHV0IHBvc2l0aW9uIG9uIFBPU0lUSU9OIHF1ZXJpZXMgb24gdGhlIHNyY3BhZAoJICBUaGVyZSBjYW4gYmUgYSBkaWZmZXJlbmNlIGJldHdlZW4gaW5wdXQgYW5kIG91dHB1dCBsYXN0X3N0b3AuCgkgIEZpeGVzIGJ1ZyAjNjI5NDEwLgoKMjAxMC0xMC0wOCAxMjo0MzoyMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGM0YThhZGMgdG8gNWE2NjhiZgoKMjAxMC0xMC0wOCAxMjo1NDo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGFuZCBzaW1wbGlmeSBjb2RlCgkgIG9sZGlkIHdhcyBvbmx5IHVzZWQgd2hlbiB3ZSB3ZXJlIGRvaW5nIG11bHRpcGxlIHBvcHMgcGVyIGxvb3AuCgoyMDEwLTEwLTA4IDEyOjUwOjEwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNWUzYzliZiB0byBjNGE4YWRjCgoyMDEwLTEwLTA4IDEyOjQ4OjQyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci1kb2NzLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCBtaXNzaW5nIGZpbGUKCjIwMTAtMTAtMDggMTI6MTg6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIGJ5dGV3cml0ZXI6IEFkZCB1bmNoZWNrZWQgdmFyaWFudHMgb2YgdGhlIHdyaXRpbmcgZnVuY3Rpb25zCgkgIFRoZXNlIGRvbid0IGNoZWNrIGlmIHRoZXJlJ3MgZW5vdWdoIGZyZWUgc3BhY2UgYXZhaWxhYmxlIGFuZCBhcmUKCSAgYXZhaWxhYmxlIGFzIGlubGluZSBmdW5jdGlvbnMgb25seS4KCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDhfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQxNl9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDE2X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQyNF9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDMyX2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfaW50MzJfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9pbnQ2NF9iZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2ludDY0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDhfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MTZfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MTZfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MzJfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MzJfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50NjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF91aW50NjRfbGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDMyX2JlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZmxvYXQzMl9sZV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0NjRfYmVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2J5dGVfd3JpdGVyX3B1dF9mbG9hdDY0X2xlX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9wdXRfZGF0YV91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYnl0ZV93cml0ZXJfZmlsbF91bmNoZWNrZWQKCjIwMTAtMTAtMDggMDk6MzQ6NDcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgY29udHJvbGxlciwgZGF0YXByb3RvY29sOiBtYWtlIHB1YmxpYyBlbnVtIF9nZXRfdHlwZSgpIGZ1bmN0aW9ucyB0aHJlYWQtc2FmZQoJICBOb3QgdGhhdCBpdCBpcyBsaWtlbHkgdG8gbWF0dGVyIGluIHByYWN0aWNlLCBidXQgc2luY2UgdGhlc2UgYXJlIHB1YmxpYwoJICBBUEkgdGhleSBzaG91bGQgcHJvYmFibHkgYmUgdGhyZWFkLXNhZmUuCgoyMDEwLTEwLTA4IDAwOjM4OjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGRhdGFwcm90b2NvbCwgbGZvY29udHJvbHNvdXJjZTogZml4IGVudW0gdmFsdWUgbmFtZSBpbiBlbnVtcyB0aGF0IGFyZSBwdWJsaWMgQVBJCgkgIFNvIHJ1bi10aW1lIGJpbmRpbmdzIGNhbiBpbnRyb3NwZWN0IHRoZSBuYW1lcyBjb3JyZWN0bHkgKHdlIGFidXNlIHRoaXMKCSAgZmllbGQgYXMgZGVzY3JpcHRpb24gZmllbGQgb25seSBpbiBlbGVtZW50cywgbm90IGZvciBwdWJsaWMgQVBJCgkgICh3aGVyZSB0aGUgZGVzY3JpcHRpb24gYmVsb25ncyBpbnRvIHRoZSBndGstZG9jIGNodW5rKS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTk0NgoKMjAxMC0xMC0wOCAwOTo0NzoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogRml4IHBvc3NpYmxlIGluZmluaXRlIGxvb3AgY2F1c2VkIGJ5IGFuIG92ZXJmbG93CgoyMDEwLTEwLTA3IDE4OjQ2OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgZWxlbWVudHM6IG1pbm9yIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IHdoZW4gZG9pbmcgZ19vYmplY3Rfbm90aWZ5KCkgZm9yIHRoZSAibGFzdC1tZXNzYWdlIiBwcm9wZXJ0eQoJICBNYWtlIHN1cmUgcHJvcGVydHkgbmFtZXMgcGFzc2VkIHRvIGdfb2JqZWN0X25vdGlmeSgpIGFyZSBpbiB0aGUgY2Fub25pY2FsIGZvcm0KCSAgKGllLiAibGFzdC1tZXNzYWdlIiBub3QgImxhc3RfbWVzc2FnZSIpLCBzbyB0aGF0IGdfcGFyYW1fc3BlY19wb29sX2xvb2t1cCgpCgkgIGRvZXNuJ3QgaGF2ZSB0byBkbyBzdHJkdXAvY2Fub25pY2FsaXplL2ZyZWUgZm9yIGV2ZXJ5IHNpbmdsZSBub3RpZnkgY2FsbC4KCSAgVGhpcyBvbmx5IGFwcGxpZXMgd2hlbiBidWlsZGluZyBhZ2FpbnN0IG9sZGVyIEdMaWIgdmVyc2lvbnMgKDwgMi4yNikuCgoyMDEwLTEwLTA3IDE4OjI3OjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBmYWtlc2luazogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGFuZCByZW1vdmUgd29yay1hcm91bmQgZm9yIG9sZCBHTGliIHZlcnNpb25zIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYsIGFuZCBhbHNvIHJlbW92ZSB3b3JrLWFyb3VuZCBmb3IgZ19vYmplY3Rfbm90aWZ5KCkgdGhyZWFkLQoJICBzYWZldHkgaXNzdWVzIHdpdGggb2xkZXIgR0xpYiB2ZXJzaW9ucyBpZiBpdCdzIG5vdCBuZWVkZWQgYW55IG1vcmUuCgoyMDEwLTEwLTA3IDE4OjIxOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogdXNlIGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHBvc3NpYmxlCgkgIFVzZSBtb3JlIGVmZmljaWVudCBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBpZiB3ZSdyZSBjb21waWxpbmcgYWdhaW5zdAoJICBHTGliID49IDIuMjYuCgoyMDEwLTEwLTA3IDE4OjE5OjMxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiB1c2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgaWYgcG9zc2libGUKCSAgVXNlIG1vcmUgZWZmaWNpZW50IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0CgkgIEdMaWIgPj0gMi4yNi4KCjIwMTAtMTAtMDcgMTc6NTM6MTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIGlkZW50aXR5OiB1c2UgZ19vYmplY3Rfbm90aWZ5X2J5X3BzcGVjKCkgYW5kIHJlbW92ZSB3b3JrLWFyb3VuZCBmb3Igb2xkIEdMaWIgdmVyc2lvbnMgaWYgcG9zc2libGUKCSAgVXNlIG1vcmUgZWZmaWNpZW50IGdfb2JqZWN0X25vdGlmeV9ieV9wc3BlYygpIGlmIHdlJ3JlIGNvbXBpbGluZyBhZ2FpbnN0CgkgIEdMaWIgPj0gMi4yNiwgYW5kIGFsc28gcmVtb3ZlIHdvcmstYXJvdW5kIGZvciBnX29iamVjdF9ub3RpZnkoKSB0aHJlYWQtCgkgIHNhZmV0eSBpc3N1ZXMgd2l0aCBvbGRlciBHTGliIHZlcnNpb25zIGlmIGl0J3Mgbm90IG5lZWRlZCBhbnkgbW9yZS4KCjIwMTAtMTAtMDcgMTc6MjM6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkczogdXNlIG5ldyBnX29iamVjdF9ub3RpZnlfYnlfcHNwZWMoKSBmb3IgY2FwcyBub3RpZmllcyBpZiBhdmFpbGFibGUKCSAgSWYgd2UncmUgYnVpbGRpbmcgYWdhaW5zdCBHTGliID49IDIuMjYuMCwgd2UgY2FuIHVzZSB0aGUgbW9yZSBlZmZpY2llbnQKCSAgZ19vYmplY3Rfbm90aWZ5X2J5X2NhcHMoKSwgd2hpY2ggYXZvaWRzIHRoZSBwYXJhbSBzcGVjIGxvb2t1cC4KCjIwMTAtMTAtMDcgMTY6Mjc6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGNsb2NrOiByZW1vdmUgdW5uZWNlc3NhcnkgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbAoJICBHT2JqZWN0IHdpbGwgZG8gdGhhdCBmb3IgdXMgd2hlbiBnX29iamVjdF9zZXQqKCkgaXMgY2FsbGVkLgoKMjAxMC0xMC0wNyAxOToxODowMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogdXBkYXRlIHFvcyBkZXNpZ24gZG9jCgkgIEZpeCBzb21lIHR5cG9zLgoJICBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgdGhlIHF1YWxpdHkgZmllbGQgZm9yIHZpZGVvIGRlY29kZXJzIHRvIHNvbWV0aGluZyB0aGF0CgkgIG1ha2VzIG1vcmUgc2Vuc2UuCgoyMDEwLTEwLTA1IDE3OjAyOjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJICBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHRlbXAgZGlyZWN0b3JpZXMgdG8gQ1JVRlRfRElSUwoKMjAxMC0xMC0wNSAxNTowNTo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgbGZvY29udHJvbHNvdXJjZTogdXNlIG1hdGgtY29tcGF0LmggZm9yIE1fUEkKCjIwMTAtMTAtMDUgMTQ6NDU6MDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0aW5mbzogcmVtb3ZlIHJhbmRvbSBNU1ZDIGNvbXBhdGliaWxpdHkgZGVmaW5lIGZvciBNX1BJIHRoYXQgZG9lc24ndCBiZWxvbmcgaGVyZQoJICBDb2RlIHRoYXQgbmVlZHMgdGhpcyBzaG91bGQgaW5jbHVkZSBnc3QvbWF0aC1jb21wYXQuaCBvciB1c2UgR19QSS4KCjIwMTAtMTAtMDUgMTQ6MTY6MTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L21hdGgtY29tcGF0Lmg6CgkgIGdzdDogYWRkIG1hdGgtY29tcGF0LmggaGVhZGVyCgkgIEFkZCBtaW5pbWFsIG1hdGgtY29tcGF0aC5oIGhlYWRlciB3aGVyZSB3ZSBjYW4gZGVmaW5lIGZhbGxiYWNrCgkgIHZlcnNpb25zIGZvciBtaXNjZWxsYW5lb3VzIG1hdGggZnVuY3Rpb25zIHRoYXQgYXJlbid0IGFsd2F5cwoJICBhdmFpbGFibGUsIHNvIHdlIGRvbid0IGhhdmUgdG8gZHVwbGljYXRlIHRoaXMgaW4gcGx1Z2lucy4KCSAgVGhlIGhlYWRlciBpcyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdCwgc28gbmVlZHMgdG8gYmUKCSAgaW5jbHVkZWQgZXhwbGljaXRseSBmb3Igbm93LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwODAyCgoyMDEwLTEwLTA1IDExOjQ3OjU5ICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIHRvb2xzOiBmaXggcGFyc2luZyBvZiB0aW1lc3RhbXAgaW4gZ3N0LXBsb3QtdGltZWxpbmUKCjIwMTAtMDktMjUgMTQ6MjQ6NDYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvbid0IHRha2UgcHJlcm9sbC1sb2NrIGluIGdldF9wcm9wZXJ0eQoJICBVc2UgYXRvbWljIG9wcyB0byByZWFkIGFuZCB3cml0ZSBtb3JlIHByb3BlcnRpZXMuIFRha2luZyB0aGUgcHJlcm9sbCBsb2NrIGluIGdldF9wcm9wZXJ0eQoJICBjYW4gbG9jayB1cCBhcHBsaWNhdGlvbnMgcmVhZGluZyB0aGUgcHJvcGVydHkgZHVyaW5nIHByZXJvbGwuCgoyMDEwLTEwLTAyIDE4OjExOjMyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgYSBmaXhtZSBmb3IgMC4xMQoKMjAxMC0xMC0wNCAxNTo0OToxOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGZvcm1hdCBuZWdhdGl2ZSB2YWx1ZXMgYmV0dGVyCgkgIEZvcm1hdCBuZWdhdGl2ZSB2YWx1ZXMgcHJvcGVybHkgaW4gdGhlIGRlYnVnIGxvZy4KCjIwMTAtMTAtMDMgMjM6NDE6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSAgYml0cmVhZGVyOiBGaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5ncwoJICBnY2MgZG9lc24ndCBub3RpY2UgdGhhdCB0aGUgY2hlY2sgYXNzZXJ0aW9uIG1hY3JvcyB3aWxsIGFib3J0CgkgIGZ1cnRoZXIgZXhlY3V0aW9uIG9mIHRoZSB0ZXN0cy4KCjIwMTAtMTAtMDMgMjM6MzI6MDYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgaW5saW5lIHZhcmlhbnRzIG9mIGFsbCBpbXBvcnRhbnQgZnVuY3Rpb25zCgoyMDEwLTEwLTAzIDE1OjI3OjM3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9iaXRyZWFkZXIuYzoKCSAgYml0cmVhZGVyOiBBZGQgaW5saW5lZCBhbmQgdW5jaGVja2VkIHZlcnNpb25zIG9mIHRoZSBpbXBvcnRhbnQgZnVuY3Rpb25zCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfc2tpcF91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9za2lwX3RvX2J5dGVfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfZ2V0X2JpdHNfdWludDE2X3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX2dldF9iaXRzX3VpbnQzMl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9nZXRfYml0c191aW50NjRfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfZ2V0X2JpdHNfdWludDhfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfcGVla19iaXRzX3VpbnQxNl91bmNoZWNrZWQKCSAgQVBJOiBnc3RfYml0X3JlYWRlcl9wZWVrX2JpdHNfdWludDMyX3VuY2hlY2tlZAoJICBBUEk6IGdzdF9iaXRfcmVhZGVyX3BlZWtfYml0c191aW50NjRfdW5jaGVja2VkCgkgIEFQSTogZ3N0X2JpdF9yZWFkZXJfcGVla19iaXRzX3VpbnQ4X3VuY2hlY2tlZAoJICBUaGlzIGFsb25lIG1ha2VzIGZsYWNwYXJzZSBhYm91dCAzIHRpbWVzIGZhc3Rlci4KCjIwMTAtMTAtMDMgMTQ6NTk6NDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgZ3VhcmRzIHRvIHRoZSBpbmxpbmVkIGdldF9wb3MvZ2V0X3JlbWFpbmluZy9nZXRfc2l6ZS9ldGMgZnVuY3Rpb25zCgoyMDEwLTEwLTAzIDE0OjI0OjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkgIGJpdHJlYWRlcjogT3B0aW1pemUgcGVla19iaXRzL2dldF9iaXRzIGEgYml0CgkgIFVzZSBsb2NhbCB2YXJpYWJsZXMgaW5zdGVhZCBvZiBkZXJlZmVyZW5jaW5nIHRoZSBiaXRyZWFkZXIKCSAgcG9pbnRlciBhbGwgdGhlIHRpbWUgYW5kIGRvbid0IGNvcHkgdGhlIHJlYWRlciBmb3IgcGVla19iaXRzLgoKMjAxMC0wOS0yNyAxOToyOToyNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdGRhdGV0aW1lOiBGaXggc3RyaW5nIHNlcmlhbGl6YXRpb24KCSAgQ29ycmVjdGx5IHNlcmlhbGl6ZSB0em9mZnNldCBhcyBhIGdzdHZhbHVlCgoyMDEwLTA5LTI0IDEyOjIyOjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogaW1wcm92ZSBhZGp1c3RfdGltZSgpCgkgIEFkZCBzb21lIG1vcmUgY29tbWVudHMuCgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBlbmQgdXAgd2l0aCBuZWdhdGl2ZSB0aW1lc3RhbXBzLgoKMjAxMC0wNS0yNiAyMDoyOToyMiArMDIwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogcmVuZGVyZGVsYXkgbmVlZHMgdG8gYmUgc3VidHJhY3RlZCBpbiBhZGp1c3RfdGltZSgpCgkgIGxhdGVuY3kgaXMgYWxyZWFkeSBzaW5rLWxhdGVuY3kgKyByZW5kZXItZGVsYXksIGFuZCBoZXJlIHdlIG9ubHkKCSAgd2FudCB0byBkZWFsIHdpdGggdGhlIHNpbmstbGF0ZW5jeS4KCSAgRml4ZXMgIzYzMDQzNgoKMjAxMC0wOS0yNCAwMDoxMzo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RtYXJzaGFsLmM6CgkgIHdpbjMyOiBkZWZpbmUgR1NUX1BBQ0tBR0VfUkVMRUFTRV9EQVRFVElNRSBpbiB3aW4zMiBjb25maWcuaCBhcyB3ZWxsCgoyMDEwLTA5LTIzIDIwOjU3OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NsLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyBzdHJpbmdzCgoyMDEwLTA5LTIzIDIwOjQ4OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBwcmludCBHU1RfUEFSQU1fTVVUQUJMRV8qIHByb3BlcnR5IGZsYWdzCgoyMDEwLTA1LTA0IDA5OjM2OjQzICswMjAwICBIYXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogTWFrZSBhIFdBUk5JTkcgaW50byBhIERFQlVHIHN0YXRlbWVudAoJICBGaXhlcyBidWcgIzYzMDQzNy4KCjIwMTAtMDEtMTIgMTc6MTA6NTkgKzAxMDAgIFRyb25kIEFuZGVyc2VuIDx0cm9uZC5hbmRlcnNlbkB0YW5kYmVyZy5jb20+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IGZpeCByYWN5IHNodXRkb3duIGNsb2NrIGlkIGxlYWsKCSAgQ2xvY2sgSURzIHdlcmUgbGVha2VkIGlmIHRoZSBjbG9jayBnb3QgZGlzcG9zZWQgYmVmb3JlIHRoZSB3b3JrZXIgdGhyZWFkCgkgIGdvdCBhIGNoYW5jZSB0byByZWFwIHVuc2NoZWR1bGVkIGVudHJpZXMuCgkgIEZpeGVzIGJ1ZyAjNjMwNDM5LgoKMjAxMC0wOS0yMyAxODoxODo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBhdm9pZCB1c2VsZXNzIG1lbWNweQoJICBCZWNhdXNlIG9mIHRoZSBhd2t3YXJkIHJlZmNvdW50aW5nIGluIHByZXBhcmVfb3V0cHV0X2J1ZmZlciwgd2UgbWlnaHQgZW5kIHVwCgkgIHdpdGggd3JpdGFibGUgYnVmZmVycyB0aGF0IHBvaW50IHRvIHRoZSBzYW1lIGRhdGEuIENoZWNrIGZvciB0aG9zZSBjYXNlcyBzbyB0aGF0CgkgIHdlIGF2b2lkIGEgdXNlbGVzcyBtZW1jcHkgYW5kIGtlZXAgdmFsZ3JpbmQgcXVpZXQuCgkgIEZpeGVzICM2MjgxNzYKCjIwMTAtMDktMjMgMTQ6Mzc6NDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IGZpeCAnbWFrZSBjaGVjaycgYnVpbGQgZm9yIHNldHVwcyB3aGVyZSBubyBjKysgY29tcGlsZXIgaXMgYXZhaWxhYmxlCgkgIE9ubHkgdHJ5IHRvIGJ1aWxkIChwc2V1ZG8tKUMrKyB1bml0IHRlc3QgaWYgYSB3b3JraW5nIEMrKyBjb21waWxlciBoYXMgYmVlbgoJICBmb3VuZCwgb3RoZXJ3aXNlIHRoZSBidWlsZCB3aWxsIGZhaWwuIChXZSBkbyB0aGlzIHRvIG1ha2Ugc3VyZSBvdXIgaGVhZGVycwoJICBhcmUgJ0MrKyBjbGVhbicpLgoKMjAxMC0wOS0yMyAxMDowODowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19HRU9fTE9DQVRJT05fSE9SSVpPTlRBTF9FUlJPUgoJICBBZGRzIGEgbmV3IHRhZyB0byBpbmRpY2F0ZSB0aGUgZXJyb3IgaW4gaG9yaXpvbnRhbCBwb3NpdGlvbmluZwoJICBpbiBtZXRlcnMuIFRoaXMgaXMgb25lIG9mIHRoZSBhdmFpbGFibGUgJ2dwcyBlcnJvcicgZmllbGRzIGluCgkgIGV4aWYsIGZvciBleGFtcGxlLgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0hPUklaT05UQUxfRVJST1IKCjIwMTAtMDktMjMgMTU6MzQ6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgUmV2ZXJ0ICJwYWQ6IHVzZSBhIG5lc3RlZCBsb2NrIHRvIGF2b2lkIHJlZmZpbmcgdGhlIHBlZXIiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOWI0MjRiMTU3MDM2NmIxMDc0NmE3NjJlOGM5YzRjMWIzNWIyMWU5MS4KCjIwMTAtMDktMjMgMTU6MTI6MzIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIHZhciBvbmx5IHVzZWQgZm9yIGRlYnVnIHN0YXRlbWVudAoKMjAxMC0wOS0wNyAxNjo1NjozOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHVzZSBhIG5lc3RlZCBsb2NrIHRvIGF2b2lkIHJlZmZpbmcgdGhlIHBlZXIKCSAgRml4ZXMgIzUwMzU5MgoKMjAxMC0wNy0xNSAxNTo0NzozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjcHAuY2M6CgkgIHRlc3RzOiByZWJ1aWxkIG9uZSB0ZXN0IHVzaW5nIGNwcAoJICBUaGlzIGFpbXMgdG8gY2F0Y2ggY3BwIGlzc3VlcyBpbiBjb3JlLiBBZGQgYysrIGJvaWxlcnBsYXRlIHRvIGNvbmZpZ3VyZS4KCjIwMTAtMDktMjEgMTg6MzM6MjYgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGFhMGQxZDAgdG8gNWUzYzliZgoKMjAxMC0wOS0xOSAxNjoxMDoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogSGFuZGxlIG5ldyBhc3NlcnRpb24gaW4gZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyCgoyMDEwLTA5LTE4IDE5OjI5OjA5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBBZGQgY2hlY2sgZm9yIHBhdHRlcm4gYml0cyBub3QgaW4gbWFzawoKMjAxMC0wOS0xNyAxOTo1MzozMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFVzZSBnX2ZpbGVfdGVzdCgpIGluc3RlYWQgb2YgYWNjZXNzKCkgd2hpY2ggZG9lcyBub3QgZXhpc3Qgb24gTVNWQzYKCSAgRml4ZXMgYnVnICM2Mjk0OTQuCgoyMDEwLTA5LTE3IDE3OjM0OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBmdW5jdGlvbiB0byBhZGQgYSBsaXN0IG9mIGJ1ZmZlcnMKCSAgQWRkIGEgZnVuY3Rpb24gdG8gYWRkIGEgbGlzdCBvZiBidWZmZXJzIHRvIHRoZSBidWZmZXJsaXN0LgoKMjAxMC0wOS0xNyAxNTo1MTowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRhcHRlcjogYWRkIGZ1bmN0aW9uIHRvIGdldCBhIGxpc3Qgb2YgYnVmZmVycwoJICBBZGQgYSBmdW5jdGlvbiB0byByZXRyaWV2ZSBhIGxpc3Qgb2YgYnVmZmVycyBjb250YWluaW5nIHRoZSBmaXJzdCBOIGJ5dGVzIGZyb20KCSAgdGhlIGFkYXB0ZXIuIFRoaXMgY2FuIGJlIGRvbmUgd2l0aG91dCBhIG1lbWNweSBhbmQgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgdG8KCSAgdHJhbnNmZXIgdGhlIGxpc3QgdG8gYSBHc3RCdWZmZXJMaXN0IGxhdGVyLgoKMjAxMC0wOS0xNyAxNTowNzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiByZXVzZSBtb3JlIGRhdGEgaW4gX3BlZWsoKQoJICBPcHRpbWl6ZSBfcGVlaygpIHNvbWUgbW9yZSBieSByZXVzaW5nIGFscmVhZHkgYXNzZW1ibGVkIGRhdGEgd2hlbiB3ZSBjYW4uCgoyMDEwLTA5LTE3IDEzOjU3OjM5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG9wdGltaXplIF90YWtlKCkgYSBsaXR0bGUgbW9yZQoJICBXaGVuIHdlIGhhdmUgYWxyZWFkeSBhc3NlbWJsZWQgc29tZSBkYXRhIGJlZm9yZSwgcmV1c2UgdGhpcyBkYXRhIGFuZCBvbmx5IGNvcHkKCSAgdGhlIHBhcnQgdGhhdCBpcyBuZXcuCgoyMDEwLTA5LTE3IDEyOjQ4OjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IHJlZmFjdG9yIGFkYXB0ZXIgdGFrZQoJICBNb3ZlIHNvbWUgY29tbW9uIGNvZGUgaW50byBvbmUgcGxhY2UKCjIwMTAtMDktMTcgMTI6NDA6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGFkZCBzdXBwb3J0IGZvciAwIHNpemVkIGJ1ZmZlcnMKCSAgQWRkIHN1cHBvcnQgZm9yIDAgc2l6ZWQgYnVmZmVycy4gVGhpcyBpcyBpbnRlcmVzdGluZyBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZQoJICB0aW1lc3RhbXAgZnVuY3Rpb25zLgoJICBGaXhlcyAjNjI5NTUzCgoyMDEwLTA5LTE3IDEwOjAxOjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgIHB3ZzogTWFrZSBhIHNlbnRlbmNlIGNsZWFyZXIuCgoyMDEwLTA5LTE2IDE5OjI3OjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBlbGVtZW50ZmFjdG9yeTogbWFrZSBzdXJlIGdzdHJlYW1lciBoYXMgYmVlbiBpbml0aWFsaXplZCB3aGVuIGNyZWF0aW5nIGVsZW1lbnRzCgkgIEFkZCBnc3RfaXNfaW5pdGlhbGl6ZWQoKSBndWFyZCB0byBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoKSwgc28KCSAgcGVvcGxlIHdobyBmb3Jnb3QgdG8gY2FsbCBnc3RfaW5pdCgpIGdldCBhIHVzZWZ1bCB3YXJuaW5nIGZvciB3aGF0CgkgIHNlZW1zIHRvIGJlIGEgY29tbW9uIGVub3VnaCBtaXN0YWtlLgoKMjAxMC0wOS0xNiAwMDozNzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IG1pbm9yIGdzdF9xdWVyeV9hZGRfYnVmZmVyaW5nX3JhbmdlKCkgY29kZSByZWZsb3cKCSAgU3ByaW5rbGUgc29tZSBHX1VOTElLRUxZKCksIHJldHVybiBUUlVFL0ZBTFNFIGNvbnN0YW50cywgYXZvaWQgYW4KCSAgdW5uZWNlc3NhcnkgZ192YWx1ZV91bnNldCgpLCBtb3ZlIGdfdmFsdWVfaW5pdCgpK3NldF9pbnQ2NF9yYW5nZSgpCgkgIGNsb3NlciB0byB3aGVyZSB0aGV5J3JlIG5lZWRlZC4KCjIwMTAtMDktMTYgMDA6MzA6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkgIHF1ZXJ5OiBnc3RfcXVlcnlfYWRkX2J1ZmZlcmluZ19yYW5nZSgpIG9wdGltaXNhdGlvbnMKCSAgRG9uJ3QgY3JlYXRlIGEgbmV3IEdWYWx1ZUFycmF5IGNvcHkgZm9yIGV2ZXJ5IHNpbmdsZSBfYWRkX2J1ZmZlcmluZ19yYW5nZSgpCgkgIGNhbGwsIGJ1dCBhcHBlbmQgdG8gdGhlIGV4aXN0aW5nIHZhbHVlIGFycmF5IG93bmVkIGJ5IHRoZSBzdHJ1Y3R1cmUgaW5zdGVhZC4KCjIwMTAtMDktMTYgMDA6MDM6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IG1pY3JvLW9wdGltaXNhdGlvbiBmb3Igc29tZSBzZXR0ZXIgZnVuY3Rpb25zCgkgIFNwbGl0IG91dCBmdW5jdGlvbnMgdGhhdCBkbyB0aGUgYWN0dWFsIHdvcmssIHNvIHdlIGF2b2lkIGRvaW5nCgkgIHRoZSBzYW1lIGdfcmV0dXJuX2lmX2ZhaWwoKSBjaGVja3MgbXVsdGlwbGUgdGltZXMgZm9yIGVhY2ggY2FsbC4KCjIwMTAtMDktMTUgMjM6NDI6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBnc3Rfc3RydWN0dXJlX3tpZF99dGFrZV92YWx1ZSgpCgkgIEFkZCBfc2V0X3ZhbHVlKCkgdmFyaWFudHMgdGhhdCB0YWtlIG93bmVyc2hpcCBvZiB0aGUgdmFsdWUgcGFzc2VkCgkgIGluc3RlYWQgb2YgbWFraW5nIGEgY29weSBvZiB0aGUgdmFsdWUuIFRoaXMgaXMgdXNlZnVsIGZvciBzZXR0aW5nCgkgIHZhbHVlcyB0byB0aGluZ3MgdGhhdCBhcmVuJ3QgcmVmY291bnRlZCAoZS5nLiBHVmFsdWVBcnJheXMgb3IKCSAgc3RyaW5ncyBvciBzdHJpbmcgYXJyYXlzLCBldGMuKS4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX3Rha2VfdmFsdWUoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfaWRfdGFrZV92YWx1ZSgpCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjk4MzEKCjIwMTAtMDktMTYgMTk6MTk6MjEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGRvYyBzdHJpbmcsIHdlIHBvc3QgZWxlbWVudCBtZXNzYWdlcwoKMjAxMC0wOS0xNiAxOTowNjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBhZGQgbWVzc2FnZS1mb3J3YXJkIG9wdGlvbgoJICBBZGQgYW4gb3B0aW9uIHRvIGZvcndhcmQgYWxsIHRoZSBpbnRlcm5hbCBtZXNzYWdlcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZQoJICBmaWx0ZXJlZCBzdWNoIGFzIEVPUywgU0VHTUVOVCBhbmQgQVNZTkMgbWVzc2FnZXMuCgkgIFRoaXMgYWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0bywgZm9yIGV4YW1wbGUsIGRldGVjdCB0aGF0IGEgcGFydGlhbCBwaXBlbGluZSBpcwoJICBwcmVyb2xsZWQgb3IgcmVhY2hlZCBlb3MuCgkgIFRoZSBvcmlnaW5hbCBtZXNzYWdlcyBhcmUgd3JhcHBlZCBpbnNpZGUgYW4gZWxlbWVudCBtZXNzYWdlIGJlY2F1c2UgdGhlIHBhcmVudAoJICBiaW5zIGFyZSBub3Qgc3VwcG9zZWQgdG8gc2VlIHRob3NlIGludGVybmFsIG1lc3NhZ2VzIGVzY2FwZS4KCjIwMTAtMDktMTIgMTY6NTA6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IHVzZSBzdHJzdHIoKSBpbnN0ZWFkIG9mIGdfc3Ryc3RyX2xlbigpCgkgIFNhdmVzIHVzIGEgc3RybGVuKCkgY2FsbC4KCjIwMTAtMDktMTUgMTM6Mjk6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IG9ubHkgcG9zdCBidWZmZXJpbmcgbWVzc2FnZSB3aGVuIHBlcmNlbnQgY2hhbmdlZAoKMjAxMC0wOS0xNSAxMzoxNToxOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWx3YXlzIHVwZGF0ZSBidWZmZXJpbmcgc3RhdHVzCgkgIFVwZGF0ZSB0aGUgYnVmZmVyaW5nIHN0YXR1cyBldmVuIHdoZW4gd2UgYXJlIG5vdCB1c2luZyBhIHF1ZXVlIHNvIHRoYXQgRU9TIGNhbgoJICBwcm9wZXJseSBmaW5pc2ggdGhlIGJ1ZmZlcmluZy4KCjIwMTAtMDktMTMgMjA6Mzk6NTAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IEZpeCBmbHVzaC1zdG9wIGV2ZW50IGhhbmRsaW5nCgkgIEEgZmx1c2gtc3RvcCBldmVudCB3b3VsZCBtYWtlIGEgcGFkIHVuZmx1c2hpbmcsIGNhdXNpbmcgaXQKCSAgdG8gc3RhcnQgYWN0aW5nIGFzIGFuIGFjdGl2YXRlZCBwYWQuIFRoaXMsIGZvciBleGFtcGxlLAoJICBjb3VsZCBsZWFkIHRvIHRoZSBjaGFpbiBmdW5jdGlvbiBiZWluZyBjYWxsZWQgd2hlbiBzdHVmZgoJICBpc24ndCBpbml0aWFsaXplZC4KCSAgVGhpcyBjb3VsZCBoYXBwZW5kIHdoZW4gc2V0dGluZyBxdGRlbXV4IHRvIE5VTEwgd2hpbGUgYSBzZWVrCgkgIHdhcyBiZWluZyBoYW5kbGVkIGluIHRoZSB1cHN0cmVhbSBmaWxlc3JjIChpbiBwdXNoIG1vZGUpLgoJICBUaGlzIHBhdGNoIG1ha2VzIGl0IGNoZWNrIGlmIGl0IGlzIGFjdGl2YXRlZCBiZWZvcmUgc2V0dGluZwoJICBpdCB0byB1bmZsdXNoaW5nLgoKMjAxMC0wOS0xMyAxMToxNzozNCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIGRvY3M6IGZpeCB3YXJuaW5ncyBwb2ludGVkIG91dCBieSBndGstZG9jCgoyMDEwLTA5LTEzIDA5OjUwOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSAgdGFza3Bvb2w6IG1ha2UgZGVidWcgb25seSBjb2RlIGNvbmRpdGlvbmFsCgoyMDEwLTA5LTEwIDE1OjA3OjAzIC0wNDAwICBDb2xpbiBXYWx0ZXJzIDx3YWx0ZXJzQHZlcmJ1bS5vcmc+CgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgaW50cm9zcGVjdGlvbjogQnVpbGQgd2l0aCBsYXRlc3QgZy1pCgkgIEhpZGUgYSBjb21wYXRpYmlsaXR5IHR5cGVkZWYuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkyNDEKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU1MDYxNgoKMjAxMC0wOS0wOSAyMjoyNDozOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IGRvbid0IGxlYWsgZW50cmllcyBmb3IgYmxhY2tsaXN0ZWQgZmlsZXMKCjIwMTAtMDktMDkgMjE6NTk6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIGNoZWNrczogYW5kIGNoZWNrIHRoZSByaWdodCBlbnYtdmFyIChmaXh1cCBsYXN0IGNvbW1pdCkKCjIwMTAtMDktMDkgMjE6NTY6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOgoJICB0ZXN0czogYWxsb3cgcnVubmluZyBzdGF0ZSB0ZXN0cyBmb3IgYWxsIGVsZW1lbnRzCgkgIE5vdyBvbmUgY2FuIHVzZSBHU1RfTk9fU1RBVEVfSUdOT1JFX0VMRU1FTlRTPTEgbWFrZSBnZW5lcmljL3N0YXRlcy5jaGVjawoJICB0byB0cnkgZWxlbWVudHMgdGhhdCB3b3VsZCBub3JtYWx5IGJlIHNraXBwZWQuCgoyMDEwLTA5LTA2IDE1OjE2OjE2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGF2b2lkIHN0cmluZyBjcmVhdGlvbiB3aGVuIG5vdCBuZWVkZWQKCjIwMTAtMDktMDkgMTY6MTE6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogaWRlbnRpdHkgaXMgR0FQIGZsYWcgYXdhcmUsIG5vIG5lZWQgdG8gbGV0IGl0IGJlIHVuc2V0IGJ5IGJhc2V0cmFuc2Zvcm0KCjIwMTAtMDktMDkgMTU6NTc6MTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIGEgc3luYyBidXMgaGFuZGxlciBhbmQgbW92ZSBzdGF0ZS1jaGFuZ2UgbG9nZ2luZyB0aGVyZQoJICBUaGUgc3luYyBoYW5kbGVyIGlzIGNhbGxlZCBmb3IgYWxsIG1lc2FnZXMsIHRoZSBldmVudCBsb29wIHdlIHByZXZpb3VzbHkgdXNlZAoJICB3YXMgbm90LiBJbiB0aGUgc3luYyBoYW5kbGVyIHRyaWdnZXIgcGlwZWxpbmUgZG90IGR1bXBzIGFuZCBjYWxsIGFjY2VzcyBmb3IgYQoJICBmaWxlIGluIHRtcC1kaXIgdG8gYWRkIG1hcmtlcnMgaW50ZXJjZXB0YWJsZSBieSBzdHJhY2UgYW5kIGNvLgoKMjAxMC0wOS0wOCAxODo0MToxOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiBzaW1wbGlmeSBjb2RlIGEgYml0CgkgIE5vIG5lZWQgdG8gY2FsbCBnX3NsaXN0X2xlbmd0aCgpIGhlcmUuCgoyMDEwLTA5LTA4IDA5OjM3OjQyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogYWRkIGEgdW5jaGVja2VkIHZhcmlhbnQgZm9yIHB1bGwKCSAgQWRkIGludGVybmFsIF9nZXRfcmFuZ2VfdW5jaGVja2VkIHRoYXRzIGlzIGNhbGxlZCBmcm9tIF9nZXRfcmFuZ2UgYW5kCgkgIF9wdWxsX3JhbmdlLgoKMjAxMC0wOS0wNyAyMzo0ODo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBzY3JpcHRzL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgdWdseS9iYWQvZmZtcGVnIHBrZy1jb25maWcgZGlycyB0byBQS0dfQ09ORklHX1BBVEgKCSAgU28gd2UgY2FuIGZpZ3VyZSBvdXQgcGx1Z2luIGRpcmVjdG9yaWVzIG9mIG90aGVyIG1vZHVsZXMgcHJvcGVybHkgaW4KCSAgdGhlIHVuaW5zdGFsbGVkIHNldHVwIGNhc2UsIGZvciB1bml0IHRlc3RzIHRoYXQgbmVlZCBlbGVtZW50cyBmcm9tCgkgIG90aGVyIG1vZHVsZXMuCgoyMDEwLTA5LTA3IDEyOjAxOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJICBkb2NzOiB1cGRhdGUgcGx1Z2luIGRvY3MgZm9yIHJlY2VudCBjaGFuZ2VzCgkgIEFuZCBzb3J0ZWQgaGllcmFyY2h5CgoyMDEwLTA5LTA3IDExOjQxOjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzJlMTBiZiB0byBhYTBkMWQwCgoyMDEwLTA5LTA3IDExOjA5OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGdzdC1pbnNwZWN0OiBkb24ndCB1c2UgZ3N0X3N0cnVjdHVyZV9mb3JlYWNoKCkgb24gTlVMTCBwb2ludGVycwoKMjAxMC0wOS0wNiAyMDoxOToyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zbC5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucyBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDktMDYgMjA6MTY6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVycm9yLmM6CgkgIGdzdGVycm9yOiBhZGQgZGVmYXVsdCBlcnJvciBtZXNzYWdlIGZvciBHU1RfTElCUkFSWV9FUlJPUl9FTkNPREUKCSAgTm8gaWRlYSB0aG91Z2ggd2h5IHdlIGV2ZW4gaGF2ZSBHU1RfTElCUkFSWV9FUlJPUl9FTkNPREUgb3Igd2hlbiBvbmUKCSAgd291bGQgd2FudCB0byB1c2UgdGhhdCBpbnN0ZWFkIG9mIEdTVF9TVFJFQU1fRVJST1JfRU5DT0RFLgoKMjAxMC0wOS0wNiAyMDowNjo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZ3N0ZXJyb3I6IGF2b2lkIHBvaW50bGVzcyBzdHJpbmcgY29weWluZwoJICBUaGVyZSdzIG5vIG5lZWQgdG8gY3JlYXRlIHRoZXNlIHRhYmxlcyB3aXRoIGR1cGxpY2F0ZXMgb2YgdGhlCgkgIHVudHJhbnNsYXRlZCBlcnJvciBtZXNzYWdlIHN0cmluZyBjb25zdGFudHMsIHdlIGNhbiBqdXN0IHVzZQoJICBvbGQtZmFzaGlvbmVkIHN3aXRjaC9jYXNlIGFuZCBjYWxsIGdldHRleHQgZGlyZWN0bHkuIFRoaXMgYWxzbwoJICBtYWtlcyB0aGluZ3Mgc2xpZ2h0bHkgbW9yZSB0aHJlYWQgc2FmZSBhbmQgbW9yZSByb2J1c3QgdG8gYmFkCgkgIGlucHV0IChpbnZhbGlkIGVycm9yIGNvZGVzKS4KCjIwMTAtMDktMDYgMTg6MzM6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgY2hlY2s6IEF2b2lkIGVycm9yOiBhcnJheSBzdWJzY3JpcHQgaXMgYWJvdmUgYXJyYXkgYm91bmRzCgkgIENvdWxkIGhhdmUgY29tZSB1cCB3aXRoIHNvbWV0aGluZyBiZXR0ZXIgZm9yIG15IDIwMDB0aCBjb21taXQKCSAgdG8gR1N0cmVhbWVyLi4uCgoyMDEwLTA5LTA2IDE3OjAxOjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGRvY3M6IGdpdmUgYSBwcmFjdGljYWwgZXhhbXBsZSBmb3IgdGhlIGdzdF9vYmplY3RfaGFzX2FuY2hlc3RvcgoKMjAxMC0wOS0wNiAxNDozMzo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiB1c2UgdGhlIHBhcmVudF9jbGFzcyBkZWZpbmVkIGJ5IEdfREVGSU5FX1RZUEUKCjIwMTAtMDktMDYgMTQ6MzI6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIE1ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IHR1bmUgc2tpcHBpbmcgY2hlY2tzIGlmIHdlIGhhdmUgZGlzYWJsZWQgc3Vic3lzdGVtcwoJICBTa2lwIEFCSSB0ZXN0cyBpZiBzb21lIHN1YnN5c3RlbXMgYXJlIG9mZi4gUmVtb3ZlIERJU0FCTEVfR1NUX0RFQlVHIGZyb20KCSAgc2tpcHBpbmcgZXhwb3J0IGNoZWNrcyBhcyB0aGlzIGlzIHNhZmUgbm93LgoKMjAxMC0wOS0wNiAxNDowOTo1MiArMDMwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBVc2UgdGhlIGNvcnJlY3QgdmFyaWFibGUgZm9yIGRlYnVnIG1lc3NhZ2UKCSAgRGVidWcgcHJpbnQgd2FzIHVzaW5nIGEgdmFyaWFibGUgdGhhdCB3YXMgbm90IGluaXRpYWxpemVkLgoKMjAxMC0wOC0xMCAxNDowNToyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGVsZW1lbnQtZGV0YWlsczogYWxsb3cgZm9yIGFyYml0cmFyeSBlbGVtZW50IGRldGFpbHMKCSAgQWRkIGEgR3N0U3RydWN0dXJlIHRvIEdzdEVsZW1lbnRDbGFzcyBhbmQgR3N0RWxlbWVudEZhY3RvcnkuIEFkZCBzZXR0ZXJzL2dldHRlci4KCSAgSGFuZGxlIGl0IGluIHRoZSByZWdpc3RyeSBjb2RlLiBQcmludCBpdGVtcyBpbiBnc3QtaW5zcGVjdC4KCSAgRml4ZXMgIzM5Njc3NC4KCSAgQVBJOiBnc3RfZWxlbWVudF9jbGFzc19zZXRfbWV0YV9kYXRhKCksIGdzdF9lbGVtZW50X2ZhY3RvcnlfZ2V0X21ldGFfZGF0YV9kZXRhaWwoKQoKMjAxMC0wOS0wNSAxODo1Nzo1NiAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQzZDlhY2YgdG8gYzJlMTBiZgoKMjAxMC0wOS0wNSAxMjoxMzowMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGNhMWM4NjcgdG8gZDNkOWFjZgoKMjAxMC0wOS0wNSAxMDoyMjoyMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBzeW1ib2xzIGZyb20gR3N0RWxlbWVudEZhY3RvcnlMaXN0CgkgIEFuZCBoZXJlJ3MgYSByZW1pbmRlciBzaW5jZSBJIGZvcmdvdCB0byBwdXQgdGhlbSBpbiBteSBwcmV2aW91cwoJICBjb21taXQuCgkgIEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9saXN0X2ZpbHRlcgoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfbGlzdF9nZXRfZWxlbWVudHMKCSAgQVBJOiBnc3RfZWxlbWVudF9mYWN0b3J5X2xpc3RfaXNfdHlwZQoJICBBUEk6IGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2RlYnVnCgkgIEFQSTogZ3N0X3BsdWdpbl9mZWF0dXJlX3JhbmtfY29tcGFyZV9mdW5jCgkgIEFQSTogR3N0RWxlbWVudEZhY3RvcnlMaXN0VHlwZQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9BTlkKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfQVVESU9WSURFT19TSU5LUwoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9BVURJT19FTkNPREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFQ09EQUJMRQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9ERUNPREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX0RFTVVYRVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfREVQQVlMT0FERVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfRU5DT0RFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9GT1JNQVRURVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfTUFYX0VMRU1FTlRTCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX0FVRElPCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX0lNQUdFCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX01FVEFEQVRBCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX1NVQlRJVExFCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX1ZJREVPCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX01FRElBX0FOWQoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9NVVhFUgoJICBBUEk6IEdTVF9FTEVNRU5UX0ZBQ1RPUllfVFlQRV9QQVJTRVIKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfUEFZTE9BREVSCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1NJTksKCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX1RZUEVfU1JDCgkgIEFQSTogR1NUX0VMRU1FTlRfRkFDVE9SWV9UWVBFX1ZJREVPX0VOQ09ERVIKCjIwMTAtMDgtMzEgMTE6Mzc6NDIgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGJ1ZmZlcmluZ19yYW5nZXMgcXVlcnkgc3VwcG9ydAoJICBGaXhlcyBidWcgNjIzMTIxCgoyMDEwLTA5LTAzIDE5OjU4OjQ5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBnc3RxdWVyeTogT25seSBmaWxsIHRoZSBzdGFydC9zdG9wIHZhbHVlcyBvZiB0aGUgYnVmZmVyaW5nIHJhbmdlcyBpZiBhIG5vbi1OVUxMIHBvaW50ZXIgd2FzIHByb3ZpZGVkCgoyMDEwLTA4LTMxIDExOjM1OjEyICswMjAwICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0cXVlcnk6IG5ldyBidWZmZXJpbmdfcmFuZ2VzIEFQSQoJICBBZGRlZCBhIG5ldyBxdWVyeSB0eXBlIHRvIHJldHJpZXZlIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgYXJlYXMgb2YgdGhlCgkgIG1lZGlhIGN1cnJlbnRseSBidWZmZXJlZC4gU2VlIGJ1ZyA2MjMxMjEuCgkgIEFQSTogZ3N0X3F1ZXJ5X2FkZF9idWZmZXJpbmdfcmFuZ2UKCSAgQVBJOiBnc3RfcXVlcnlfZ2V0X25fYnVmZmVyaW5nX3JhbmdlcwoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9udGhfYnVmZmVyaW5nX3JhbmdlCgoyMDEwLTA4LTE2IDE5OjAxOjE1ICswMjAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgR3N0RWxlbWVudEZhY3Rvcnk6IEFkZCBsaXN0aW5nIGZlYXR1cmVzCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjYxODEKCjIwMTAtMDktMDIgMTI6NDQ6MDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIGRvY3M6IG1lbnRpb24gR1NUX0RFQlVHX09QVElPTlMsIE9SQ19DT0RFLCBHX0RFQlVHIGFuZCBHX1NMSUNFIGVudmlyb25tZW50IHZhcmlhYmxlcwoJICBNZW50aW9uIGEgZmV3IG1vcmUgdXNlZnVsIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgJ1J1bm5pbmcgR1N0cmVhbWVyCgkgIGFwcGxpY2F0aW9ucycgc2VjdGlvbiBvZiB0aGUgQVBJIHJlZmVyZW5jZS4KCjIwMTAtMDktMDIgMTQ6MTU6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBmYWtlc3JjOiBmaXggdXNlIG9mIGVtcHR5IHN1YmJ1ZmZlcnMKCSAgUmVtb3ZlIGEgc2hvcnQgY3V0IHRoYXQgd2FzIGlnbm9yaW5nIHNyYy0+ZGF0YSBhbGxvY2F0aW9uIG1vZGUuIEFsbAoJICB0aGUgY2FsbGVkIGNvZGUtcGF0aCBiZWxvdyBoYW5kbGUgc2l6ZT09MC4KCjIwMTAtMDktMDIgMDA6MDE6MjUgKzAxMDAgIEplZmZyZXkgUy4gU21pdGggPHdoeWRvdWJ0QHlhaG9vLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmg6CgkgIEZpeCBjYXN0cyBpbiBhIGJ1bmNoIG9mIGlubGluZSBmdW5jdGlvbnMgdG8gbWFpbnRhaW4gY29ycmVjdCBjb25zdC1uZXNzCgkgIE1ha2UgY29kZSBpbmNsdWRpbmcgR1N0cmVhbWVyIGhlYWRlcnMgY29tcGlsZSB3aXRoIC1XY2FzdC1xdWFsIGJ5CgkgIG1haW50YWluaW5nIGNvbnN0LW5lc3Mgd2hlbiBjYXN0aW5nLiBBbHNvIGZpeCBmdW5jdGlvbiBzaWduYXR1cmUgb2YKCSAgZ3N0X2J5dGVfd3JpdGVyX3NldF9wb3MoKTogdGhlIGJ5dGUgd3JpdGVyIHNob3VsZCBub3QgYmUgbWFya2VkIGFzCgkgIGNvbnN0LgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI3OTEwCgoyMDEwLTA4LTMxIDE4OjQwOjQ0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiB1c2UgbmV3IEFHX0dTVF9QS0dfQ09ORklHX1BBVEggbTQgbWFjcm8gZnJvbSBjb21tb24KCSAgU2V0cyB1cCBhIEdTVF9QS0dfQ09ORklHX1BBVEggdmFyaWFibGUgZm9yIHVzZSBpbiBNYWtlZmlsZS5hbQoJICAoYXZvaWRzIHRyYWlsaW5nICc6JyBpbiBQS0dfQ09ORklHX1BBVEggdXNlZCkuIEEgdXNlZnVsIHNpZGUKCSAgZWZmZWN0IG9mIHRoaXMgaXMgYWxzbyB0aGF0IHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQKCSAgaXMgbm93IGxvZ2dlZCBpbiB0aGUgY29uZmlndXJlIG91dHB1dC4KCjIwMTAtMDktMDEgMTE6MzQ6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICBtYW51YWw6IGltcHJvdmUgY2xvY2sgZG9jcyBhIGxpdHRsZQoKMjAxMC0wOS0wMSAxMTowNjo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEZpeCBtZW1vcnkgbGVha3MgaW4gdGhlIGludDY0cmFuZ2UgdGVzdHMKCjIwMTAtMDgtMjQgMTI6Mjc6MzAgKzAyMDAgIFBoaWxpcHBlIE5vcm1hbmQgPHBub3JtYW5kQGlnYWxpYS5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R2YWx1ZTogQWRkIG5ldyBHc3RJbnQ2NFJhbmdlIHR5cGUKCSAgbmV3IEdzdEludDY0UmFuZ2UgdG8gc3RvcmUgZ2ludDY0IHJhbmdlcy4KCSAgQVBJOiBHU1RfVFlQRV9JTlQ2NF9SQU5HRQoJICBBUEk6IGdzdF92YWx1ZV9zZXRfaW50NjRfcmFuZ2UKCSAgQVBJOiBnc3RfdmFsdWVfZ2V0X2ludDY0X3JhbmdlX21pbgoJICBBUEk6IGdzdF92YWx1ZV9nZXRfaW50NjRfcmFuZ2VfbWF4CgkgIEZpeGVzIGJ1ZyAjNjI3ODI2LgoKMjAxMC0wOC0zMCAyMToyNjoxOCAtMDMwMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBUcml2aWFsIGNsZWFudXAgZm9yIEdTVF9ERUJVR19DQVRFR09SWV9HRVQKCjIwMTAtMDgtMzAgMTY6MDI6NTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBSZS1pbnN0YXRlIHRoZSBkZWZhdWx0IGZvciBjb2xvciB1c2FnZQoJICBUaGlzIHdhcyBhY2NpZGVudGx5IHJlbW92ZWQgaW4gN2E3MjIwOTFiNmQxYjVkN2Y5NDA0ZmRlZjRjNjk1YTI5YTY1YTk4OQoKMjAxMC0wOC0zMCAxMjo0NzozMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBVc2UgZ19zdHJjbXAwIGluc3RlYWQgb2Ygc3RyY21wCgkgIEF2b2lkcyBzZWdmYXVsdHMgd2hlbiB1c2luZyBOVUxMIGFyZ3VtZW50cy4KCjIwMTAtMDgtMjcgMTU6MzU6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogYWRkIHNpbGVudCBwcm9wZXJ0eSB0byBzdXBwcmVzcyBzaWduYWwgZW1pc3Npb24KCSAgQWxsb3cgdG8gdHVybiBvZmYgc2lnbmFsIGVtaXNzaW9uIGFuZCB0aGVyZWZvcmUgZXh0cmEgbG9ja2luZyBpZiB0aGlzIGlzIG5vdCBuZWVkZWQuCgkgIEZpeGVzICM2MjEyOTkKCjIwMTAtMDgtMjggMTA6MTY6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBBZGQgZ3N0X3V0aWxfZnJhY3Rpb25fY29tcGFyZSgpIHRvIHRoZSBkb2NzIGFuZCBleHBvcnRlZCBzeW1ib2xzCgoyMDEwLTA4LTI4IDE3OjUxOjE0ICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgIHRlc3RzOiBSZW1vdmUgY2hlY2tzIGZvciBkZXByZWNhdGVkIGZsb3cgY2hlY2sgbWFjcm9zCgkgIEdTVF9GTE9XX0lTX0ZBVEFMKCkgYW5kIEdTVF9GTE9XX0lTX1NVQ0NFU1MoKSBhcmUgZGVwcmVjYXRlZCwKCSAgc28gYXJlbid0IGF2YWlsYWJsZSBmb3IgdGhlIHRlc3RzdWl0ZSBhbnkgbW9yZS4KCjIwMTAtMDgtMjggMDk6MzU6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBGaXggaW52ZXJ0ZWQgYXNzZXJ0aW9uIGxvZ2ljIGluIGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKQoKMjAxMC0wOC0yOCAwOTozMDoxOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB1dGlsczogQWRkIGdzdF91dGlsX2ZyYWN0aW9uX2NvbXBhcmUoKSB0byBjb21wYXJlIGZyYWN0aW9ucwoJICBBbmQgdXNlIGl0IGZvciB0aGUgZnJhY3Rpb24gY29tcGFyaXNvbnMgaW4gZ3N0dmFsdWUuYyBpbnN0ZWFkCgkgIG9mIHVzaW5nIGNvbXBhcmlzb25zIGJ5IGZpcnN0IGNvbnZlcnRpbmcgdGhlIGZyYWN0aW9ucyB0byBkb3VibGUuCgkgIFNob3VsZCBmaXggYnVnICM2MjgxNzQuCgkgIEFQSTogZ3N0X3V0aWxfZnJhY3Rpb25fY29tcGFyZSgpCgoyMDEwLTA4LTI4IDE3OjA0OjQzICsxMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgdGVzdHM6IEFkZCBhIGNvdXBsZSBvZiBleHRyYSBjYXBzIHN0cmluZ3MgdG8gdGVzdAoKMjAxMC0wOC0yNyAxNjo1MjoxMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3QgZG8gYW4gaW5maW5pdGUgbG9vcCBpbiB0aGUgbG9vcCBmdW5jdGlvbgoJICBJbnN0ZWFkIHJldHVybiBhZnRlciBldmVyeSBpdGVyYXRpb24sIHdoaWNoIG1ha2VzIHN1cmUgdGhhdCB0aGUKCSAgc3RyZWFtIGxvY2sgaXMgcmVsZWFzZWQgZm9yIGEgc2hvcnQgdGltZSBhZnRlciBldmVyeSBpdGVyYXRpb24sCgkgIHRhc2sgc3RhdGUgY2hhbmdlcyBhcmUgY2hlY2tlZCwgZXRjIGFuZCB0aGlzIGFsbG93cyB0aGUgdGFzawoJICB0byBiZSBzdG9wcGVkIHByb3Blcmx5LgoKMjAxMC0wOC0yNyAxNjo0OToxNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRmx1c2ggdGhlIGRhdGEgcXVldWUgaWYgZG93bnN0cmVhbSByZXR1cm4gV1JPTkdfU1RBVEUgdG9vCgoyMDEwLTA4LTI2IDIzOjM5OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIGVsZW1lbnRzOiBTdG9wIHVzaW5nIEdTVF9GTE9XX0lTX0ZBVEFMKCkKCjIwMTAtMDgtMjYgMjM6Mzc6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZTogU3RvcCB1c2luZyBHU1RfRkxPV19JU19GQVRBTCgpCgkgIEFuZCBkb2N1bWVudCB0aGUgc3BlY2lhbCBoYW5kbGluZyBvZiBXUk9OR19TVEFURS4KCjIwMTAtMDgtMjYgMjM6MDc6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IERlcHJlY2F0ZSBHU1RfRkxPV19JU19GQVRBTCgpIGFuZCBHU1RfRkxPV19JU19TVUNDRVNTKCkKCSAgVGhlIHByb2JsZW0gd2l0aCBib3RoIG1hY3JvcyBpcywgdGhhdCB0aGV5IHN1Z2dlc3Qgc29tZXRoaW5nIHRoYXQgaXNuJ3QgdHJ1ZS4KCSAgSWYgR1NUX0ZMT1dfSVNfRkFUQUwgaXMgdHJ1ZSwgdGhlcmUgY291bGQgc3RpbGwgYmUgYSBwcm9ibGVtIGZvciBtYW55IGVsZW1lbnRzCgkgIGFuZCB0aGV5IHNob3VsZCBzdG9wIHdoYXQgdGhleSdyZSBjdXJyZW50bHkgZG9pbmcgYW5kIHJldHVybiB0aGF0IHZhbHVlCgkgIHVwc3RyZWFtIChlLmcuIG5vdC1saW5rZWQgaW4gYSBwYXJzZXIpLiBJZiBHU1RfRkxPV19JU19TVUNDRVNTIGlzIGZhbHNlLCBpdAoJICBjb3VsZCBzdGlsbCBiZSB0aGF0IHRoaXMgaXMgIm9rIiBmb3IgdGhlIGVsZW1lbnQgKGUuZy4gbm90LWxpbmtlZCBmb3IgYSBkZW11eGVyCgkgIG9uIGEgZmV3IG9mIGl0cyBwYWRzIGJ1dCBub3QgYWxsKS4KCSAgSXQncyBiZXR0ZXIgdG8gbm90IGhhdmUgdGhlc2UgImNvbnZlbmllbmNlIiBtYWNyb3MgYnV0IGluc3RlYWQgbGV0IHBlb3BsZQoJICAqdGhpbmsqIGFib3V0IHRoZSBoYW5kbGluZyBvZiBkaWZmZXJlbnQgZmxvdyByZXR1cm5zLCB0aGF0IG1ha2VzIHNlbnNlIGZvcgoJICB0aGVpciBlbGVtZW50LiBBbmQgd2Ugc2hvdWxkIGRvY3VtZW50IHRoZSBleHBlY3RlZCBoYW5kbGluZyBvZiBmbG93IHJldHVybnMgZm9yCgkgIGRpZmZlcmVudCBjbGFzc2VzIG9mIGVsZW1lbnRzIGluIHRoZSBwbHVnaW4gd3JpdGVyJ3MgZ3VpZGUuCgkgIEZpeGVzIGJ1ZyAjNjI4MDE0LgoKMjAxMC0wOC0yNyAxMToxMTowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazoga2VlcCBwcm9wZXJ0aWVzIGluIG9yZGVyCgoyMDEwLTA4LTI3IDEwOjIyOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBBUkdfIC0+IFBST1BfIGZvciBwcm9wZXJ0eSBjb25zdGFudHMKCjIwMTAtMDgtMjYgMTc6MDQ6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBvbi1kaXNrIGJ1ZmZlcmluZyBhZ2FpbgoKMjAxMC0wOC0yNiAxNToxMjo0OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiByZWNvdmVyIGZyb20gaW52YWxpZCBkb3duc3RyZWFtIHN1Z2dlc3Rpb25zCgkgIFdoZW4gd2UgYXJlIGhhbmRsaW5nIGEgYnVmZmVyIGFuZCBuZWVkIHRvIGFsbG9jYXRlIGFuIG91dHB1dCBidWZmZXIsIGhhbmRsZSB0aGUKCSAgY2FzZSB3aGVuIGRvd25zdHJlYW0gc3VnZ2VzdHMgdXMgYSBmb3JtYXQgdGhhdCB3ZSBjYW4ndCBjb252ZXJ0IHRoZSBpbnB1dCBidWZmZXIKCSAgdG8uIEluIHRoYXQgY2FzZSwgY2hlY2sgaWYgdGhlcmUgaXMgYW5vdGhlciBmb3JtYXQgYXZhaWxhYmxlIGRvd25zdHJlYW0gaW5zdGVhZAoJICBvZiBmYWlsaW5nLgoJICBGaXhlcyAjNjIxMzMyIGFuZCBzZWUgYWxzbyAjNjE0Mjk2CgoyMDEwLTA4LTI2IDEzOjQ2OjM0ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBnc3RwbHVnaW46IGxvYWQgdGhlIGdzdC1weXRob24gcGx1Z2luIGxvYWRlciB3aXRoIEdfTU9EVUxFX0JJTkRfTEFaWS4KCjIwMTAtMDgtMTYgMTQ6MTI6MzUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnOiBBZGRzIEdTVF9UQUdfQVBQTElDQVRJT05fREFUQQoJICBBZGRzIEdTVF9UQUdfQVBQTElDQVRJT05fREFUQSBmb3IgcmVwcmVzZW50aW5nIGFyYml0cmFyeSBwcml2YXRlCgkgIGRhdGEgdGhhdCBhcHBsaWNhdGlvbnMgbWlnaHQgd2FudCB0byBzdG9yZSBpbnRvIHRhZ3MuIEV4aWYvaWQzLAoJICBmb3IgZXhhbXBsZSwgaGF2ZSB0YWdzIGZvciB0aGlzLgoJICBBUEk6IEdTVF9UQUdfQVBQTElDQVRJT05fREFUQQoJICBGaXhlcyAjNjI2NjUxCgoyMDEwLTA4LTI0IDEyOjQ2OjM4IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZ3N0LWxhdW5jaDogRml4IE9JTF9DUFVfRkxBR1MgZG9jcyBmb3IgT3JjCgoyMDEwLTA4LTI0IDE2OjI0OjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIG1hbjogcmVtb3ZlIE9JTF9DUFVfRkxBR1MgZnJvbSBtYW4gcGFnZQoJICBXZSdyZSB1c2luZyBPUkMgaW5zdGVhZCBvZiBsaWJPaWwgbm93LgoKMjAxMC0wOC0yMyAxODoyMDoyMyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBWYWxncmluZCBkZWZpbmUgaXMgSEFWRV9WQUxHUklORF9WQUxHUklORF9ICgoyMDEwLTA3LTI3IDE4OjI0OjQ0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIEFsbG93IGdzdF9kZWJ1Z19zZXRfZGVmYXVsdF90aHJlc2hvbGQoKSBiZWZvcmUgZ3N0X2luaXQoKQoJICBDYWxsaW5nIGdzdF9kZWJ1Z19zZXRfZGVmYXVsdF90aHJlc2hvbGQoKSBiZWZvcmUgaW5pdGlhbGl6YXRpb24KCSAgc2VlbXMgbGlrZSB0aGUgIm9idmlvdXMiIG9yZGVyLgoKMjAxMC0wOC0yMyAxMzowNjoxOSArMDIwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzoKCSAgcXVldWU6IGZpeCBzZWdmYXVsdCBpbiB0ZXN0CgoyMDEwLTA4LTIzIDEwOjU4OjE2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogaW50ZXJuIGFsbCBHc3RQbHVnaW5EZXNjIG1lbWJlcnMgd2hlbiB1bnBhY2tpbmcKCjIwMTAtMDgtMjMgMTA6NTY6MzAgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGZpeCBsZWFrIHdoZW4gbmFtaW5nIHBhcmVudGVkIG9iamVjdAoKMjAxMC0wOC0yMCAwMzowNzo1OCArMDUzMCAgQXJ1biBSYWdoYXZhbiA8YXJ1bi5yYWdoYXZhbkBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdDogQWRkIGEgZ3N0X2lzX2luaXRpYWxpemVkKCkgQVBJCgkgIEZvciBvbmUsIHRoaXMgd2lsbCBhbGxvdyBsaWJyYXJpZXMgdGhhdCBleHBlY3QgYXBwbGljYXRpb25zIHRvCgkgIGluaXRpYWxpemUgR1N0cmVhbWVyIGJlZm9yZSB1c2luZyB0aGVpciBBUEkgdG8gaGF2ZSBhIGNoZWNrIGZvciB0aGlzCgkgIGNvbmRpdGlvbi4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzQzOAoKMjAxMC0wOC0yMCAxODowNDo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiByZWxheCB0aGUgc291cmNlIGVsZW1lbnQgY2hlY2sKCSAgV2hlbiB0aGVyZSBpcyBhIHNpbmsgaW5zaWRlIGEgYmluLCB0aGUgU0lOSyBmbGFnIGlzIHNldCBvbiB0aGUgYmluLiBXaGVuIHdlIGFyZQoJICB0cnlpbmcgdG8gaXRlcmF0ZSB0aGUgc291cmNlIGVsZW1lbnRzLCBhbHNvIGluY2x1ZGUgdGhlIGJpbnMgd2l0aCB0aGUgU0lOSyBmbGFnCgkgIGJlY2F1c2UgdGhleSBjb3VsZCBhbHNvIGNvbnRhaW4gc291cmNlIGVsZW1lbnRzLCBpbiB3aGljaCBjYXNlIHRoZXkgYXJlIGFsc28gYQoJICBzb3VyY2UuCgkgIFRoaXMgc29sdmVzIHRoZSBjYXNlIHdoZXJlIHNlbmRpbmcgYW4gRU9TIHRvIGEgcGlwZWxpbmUgZGlkbid0IGdldCBkaXNwYXRjaGVkIHRvCgkgIGFsbCBzb3VyY2UgZWxlbWVudHMuCgkgIFNlZSAjNjI1NTk3CgoyMDEwLTA4LTE5IDE3OjA3OjAwICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogYWRkZWQgdW5pdCB0ZXN0IGZvciBuZXdzZWdtZW50IGV2ZW50cwoKMjAxMC0wMy0wNSAxNzoxODoyMyArMDEwMCAgSm9uYXMgSG9sbWJlcmcgPGpvbmFzLmhvbG1iZXJnQGF4aXMuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIHF1ZXVlOiBQdXNoIG5ld3NlZ21lbnQgd2hlbiBsaW5raW5nIGluIFBMQVlJTkcKCSAgRml4ZXMgIzYxMTkxOAoKMjAxMC0wOC0xMiAyMDoyMzo0NSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZWxlbWVudDogbGlua19tYW55IHNob3VsZCBhY3RpdmF0ZSBwYWRzIGlmIG5lZWRlZAoJICBnc3RfZWxlbWVudF9saW5rX21hbnkgZG9lcyBzb21lIG1hZ2ljIGFuZCBjcmVhdGVzIGdob3N0cGFkcwoJICBpZiBuZWVkZWQsIGJ1dCBpdCBkaWRuJ3Qgc2V0IHRoZSBuZXdseSBjcmVhdGVkIGdob3N0cGFkIHRvCgkgIGFjdGl2ZSBpZiBuZWVkZWQuIFRoaXMgcGF0Y2ggZml4ZXMgaXQuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjY3ODQKCjIwMTAtMDgtMTkgMTE6MTE6MjggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGRhdGV0aW1lOiBGaXggbWVtb3J5IGxlYWsgaW4gdGhlIHVuaXQgdGVzdCBieSB1bnJlZmZpbmcgR3N0RGF0ZVRpbWUgaW5zdGFuY2UgYWZ0ZXIgdXNhZ2UKCjIwMTAtMDgtMTkgMTA6MDM6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogZml4IGNvbW1lbnRzIGluIHRlc3QKCjIwMTAtMDgtMTkgMDk6NTg6NTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IFVzZSBHX0dVSU5UNjRfRk9STUFUIHdoZXJlIG5lZWRlZAoJICBGaXhlcyBidWlsZCBvbiBtYWNvc3gKCjIwMTAtMDgtMTggMTU6MzE6MDkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGVuYWJsZSBxdWV1ZSB0ZXN0IGFnYWluCgoyMDEwLTA4LTE4IDE1OjEyOjQ1ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICBxdWV1ZTogZml4ZWQgcmFjeSB1bml0IHRlc3RzCgkgIEZpeGVzICM2MDAwMDQKCjIwMTAtMDgtMTYgMTg6MDE6MjcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHBsdWdpbnM6IGFkZCBleGFtcGxlIGxhdW5jaCBsaW5lcyBhbmQgbW9yZSBleHBsYW5hdGlvbiB0byB0aGUgZG9jcy4KCSAgVGhlIHBsdWdpbnMgd2hlcmUgYWxtb3N0IHVuZG9jdW1lbnRlZCA6LyAuLi4KCjIwMTAtMDgtMTMgMTY6MTk6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBjb21waWxhdGlvbgoKMjAxMC0wNy0wNyAwODoyMDoyMSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBGaXggYSBzcGVjaWFsIGNhc2UgZHVyaW5nIHJhbmdlIG1hbmFnZW1lbnQKCSAgV2hlbiBhIHJhbmdlIGNvbnRhaW5lZCBubyBkYXRhLCBpZiBpdCB3YXMgbmV3IG9yIG5ld2x5IGVtcHR5LCBpdCB3b3VsZAoJICBiZSBtaXNoYW5kbGVkIGlmIGl0IHdlcmUgdGhlIGN1cnJlbnQgcmFuZ2UuCgoyMDEwLTA3LTA1IDEzOjQzOjA1ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBsb2NraW5nIGFyb3VuZCBpbml0X3JhbmdlcwoJICBUaGlzIGZpeGVzIGEgc2VnZmF1bHQgd2hlcmUgdGhlIHJlYWR5IHRvIHBhdXNlZCBzdGF0ZSBjaGFuZ2UgY2F1c2VzCgkgIGZyZWVpbmcgYW5kIGFsbG9jYXRpb24gb2YgbmV3IHJhbmdlcyB3aGlsZSBhbm90aGVyIHRocmVhZCBpcyB0cnlpbmcgdG8KCSAgdXNlIHRoZW0uCgoyMDEwLTA3LTAyIDE3OjQwOjA4ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IE1vcmUgcmluZyBidWZmZXIgZml4ZXMKCSAgLSBTZXQgcmVhZGluZ19wb3MgY29ycmVjdGx5IGluIF9jcmVhdGVfcmVhZCAoKQoJICAtIFNlZWsgdG8gZGF0YSBpZiBpdCBpcyBmdXJ0aGVyIHRoYW4gUVVFVUVfTUFYX0JZVEVTIChxdWV1ZSkgLQoJICBjdXJfbGV2ZWwuYnl0ZXMgYXdheS4gVGhpcyBzaG91bGQgYXZvaWQgYSBzaXR1YXRpb24gd2hlcmUgdGhlIHJpbmcKCSAgYnVmZmVyIGlzIGZ1bGwgYnV0IHRoZSBkYXRhIG9mZnNldCBmcm9tIHdoaWNoIHdlIHNoYWxsIHJlYWQgaXMgbm90IGluCgkgIHRoZSByaW5nIGJ1ZmZlci4KCSAgLSBPbmx5IHVwZGF0ZSB0aGUgbWF4X3JlYWRpbmdfcG9zIHRvIGEgbG93ZXIgdmFsdWUgdG8gcHJvdGVjdCBkYXRhIHdoZW4KCSAgbmVjZXNzYXJ5CgkgIC0gQWx3YXlzIHNpZ25hbCBhbiBBREQgaW4gX2xvY2tlZF9lbnF1ZXVlICgpIHNvIHRoYXQgYW4gRU9TIHVubG9ja3MgdGhlCgkgIHJlYWRlcgoJICAtIE1vcmUgdXNlZnVsIGRlYnVnIG91dHB1dAoKMjAxMC0wNi0yOCAxNzo1MDowNiArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByaW5nIGJ1ZmZlciBmaXhlcwoJICBPbmUgbXVzdCBub3QgYWZmZWN0IHRoZSB2YWx1ZXMgb2YgdGhlIGN1cnJlbnQgcmFuZ2UgYmFzZWQgb24gYSByZWFkCgkgIHJlcXVlc3QgYmVmb3JlIHRoZSBjb3JyZWN0IHJhbmdlIGlzIGFjdGl2YXRlZC4KCjIwMTAtMDYtMjUgMTI6NTg6MjcgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGJ1Z3MKCSAgdXBkYXRlX2J1ZmZlcmluZyAoKSBuZWVkcyB0byBiZSBjYWxsZWQgZXZlcnkgdGltZSB3ZSB3cml0ZSB0byB0aGUgcmluZwoJICBidWZmZXIgc28gdGhhdCBhcHBsaWNhdGlvbnMgZG9uJ3QgZ2V0IHN0dWNrIHdhaXRpbmcgZm9yIGEgMTAwJSBidWZmZXJlZAoJICBtZXNzYWdlIHdoaWxlIHF1ZXVlMiBpcyB3YWl0aW5nIGZvciBzcGFjZQoJICBfY3JlYXRlX3dyaXRlICgpIG11c3Qgb25seSBiZSBjYWxsZWQgZm9yIHRlbXAgZmlsZS9yaW5nIGJ1ZmZlciBjYXNlcwoKMjAxMC0wNi0xOCAxNzo0Mzo0MCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBleHRlbmQgcmluZyBidWZmZXIgdG8gc3VwcG9ydCByYW0gbW9kZQoKMjAxMC0wNi0xOCAxNDozNjozMyArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBtZXJnZSB3cml0ZSBidWZmZXIgZnVuY3Rpb25zIGFuZCBmaXggYnVncwoJICBDYWNoZWQgZGF0YSBjb3VsZCBoYXZlIGJlZW4gb3ZlcndyaXR0ZW4gc28gaXQgaXMgbm93IHByb3RlY3RlZCB1bnRpbAoJICBpdCBpcyByZWFkLiBTaW1pbGFybHkgZGF0YSB3YXMgb3ZlcnJlYWQgYXMgX2hhdmVfZGF0YSAoKSB3YXMgYWx3YXlzCgkgIGxvb2tpbmcgZm9yIHRoZSBvcmlnaW5hbGx5IHJlcXVlc3RlZCBkYXRhIGV2ZW4gaWYgcGFydCBvZiBpdCBoYWQgYmVlbgoJICByZWFkIGFscmVhZHkuCgoyMDEwLTA2LTE3IDEwOjE4OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBzbWFsbCBjbGVhbnVwCgoyMDEwLTA2LTE2IDE4OjI1OjM1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjbGVhbnVwIHdyaXRlX3RvX3JpbmdfYnVmZmVyCgkgIFVzZSBjdXJfbGV2ZWwuYnl0ZXMgdG8gc2VlIGhvdyBtdWNoIHNwYWNlIGlzIGZyZWUgaW4gdGhlIHJpbmdidWZmZXIuCgkgIFNpbXBseWZ5IHRoZSB3cml0ZSBmdW5jdGlvbiwgYXZvaWQgdGFraW5nIHN1YmJ1ZmZlcnMsIG1vdmUgd2FpdGluZyBmb3IgZnJlZQoJICBzcGFjZSBpbiBvbmUgc3BvdCwgdXNlIHNpbXBseSBjb3VudGVyIHRvIHdyaXRlIGRhdGEgb2YgYSBidWZmZXIuCgoyMDEwLTA2LTE2IDE3OjAzOjQ5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjbGVhbnVwcwoJICBBZGQgYSBtYWNybyB0byBnZXQgdGhlIG1heCBzaXplIG9mIHRoZSBxdWV1ZSBpbiBieXRlcywgd2hpY2ggZGVwZW5kcyBvbiB0aGUKCSAgbWF4X2xldmVsLmJ5dGVzIGFuZCB0aGUgcmluZ19idWZmZXJfbWF4X3NpemUuCgkgIFNvbWUgY2xlYW51cHMuCgoyMDEwLTA2LTE2IDE2OjIzOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDEwLTA2LTE2IDE2OjEzOjI4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBjbGVhbnVwcwoJICBNYWtlIHN1cmUgdGhlIGN1cl9sZXZlbC5ieXRlcyBpcyB1cGRhdGVkIGFmdGVyIHdlIGNoYW5nZSB0aGUgd3JpdGluZ19wb3Mgb3IgdGhlCgkgIG1heF9yZWFkaW5nX3Bvcy4KCSAgUmVmYWN0b3IgZ2V0X2ZyZWVfc3BhY2UoKQoJICBBZGQgc29tZSBjb21tZW50cwoKMjAxMC0wNi0xNiAxMjowMDo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIHVubmVlZGVkIHNpZ25hbAoKMjAxMC0wNi0xNiAxMjowMDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogc2V0IGJ1ZmZlcmluZyBtb2RlIGNvcnJlY3RseQoKMjAxMC0wNi0xNiAxMToyMDowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGNhbGN1bGF0aW9uIG9mIGF2YWlsYWJsZSByaW5nYnVmZmVyIGRhdGEKCjIwMTAtMDYtMTYgMTE6MTE6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHJlYWRpbmdfcG9zIGlzIHVwZGF0ZWQgaW4gY3JlYXRlX3JlYWQgb25seQoKMjAxMC0wNi0xNiAxMToxMToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVmYWN0b3IgYW5kIGFkZCBkZWJ1ZwoKMjAxMC0wNi0xNiAxMToxMDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGZsdXNoaW5nCgoyMDEwLTA2LTE2IDExOjA5OjI1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgZGVidWcKCjIwMTAtMDYtMTUgMTc6MjY6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHRyeSB0byB3cml0ZSAwIGJ5dGVzCgoyMDEwLTA2LTE1IDE2OjEyOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOyBjbGVhbnVwcyBhbmQgZml4ZXMKCSAgTWFrZSBhIG1hY3JvIGZvciBzb21lIGZyZXF1ZW50IGNoZWNrcwoJICBFbWl0IHRoZSByZW1vdmVkIHNpZ25hbCBpbiBhbGwgY2FzZXMgd2hlbiB3ZSByZW1vdmUgc29tZXRoaW5nCgoyMDEwLTA2LTE1IDEyOjM3OjMzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiByZWZhY3RvcmluZ3MKCSAgQ2hlY2sgYW5kIGhhbmRsZSBzZWVrIGVycm9ycwoJICBSZWZhY3RvciB0aGUgd2FpdF9mcmVlX3NwYWNlIGZ1bmN0aW9uLgoKMjAxMC0wNi0xNiAxMjoyNDoyNSArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgcmluZy1idWZmZXItbWF4LXNpemUgcHJvcCB0byBjb250cm9sIHJpbmcgYnVmZmVyCgoyMDEwLTA2LTA2IDA5OjMwOjQ4ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IENsZWFuIHVwIGFuZCBpbXByb3ZlIGNvZGUKCjIwMTAtMDUtMjYgMDQ6MTE6NDggKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IGNvbmRpdGlvbnMgd2hlcmUgYmVoYXZpb3VyIHNob3VsZCBkaWZmZXIgYmV0d2VlbiByaW5nIGJ1ZmZlciBhbmQgdGVtcCBmaWxlCgoyMDEwLTA1LTE5IDE2OjA0OjE1ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCB1c2VmdWwgZGVidWcgbWVzc2FnZXMgYW5kIGZpeCBhbiBhc3N1bXB0aW9uIGluIF9oYXZlX2RhdGEgKCkKCjIwMTAtMDUtMTggMTc6NDI6MDcgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IGJ1ZmZlcmluZyBwZXJjZW50YWdlIGluIHJpbmcgYnVmZmVyIG1vZGUKCjIwMTAtMDUtMTggMTc6MjE6NDAgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogdmFyaW91cyByaW5nIGJ1ZmZlciBmaXhlcwoJICAtIG1ha2UgX2dldF9yYW5nZSAoKSBlbWl0IHRoZSBkZWwgc2lnbmFsIG9uY2UgYSBidWZmZXIgaGFzIGJlZW4gcmVhZAoJICAtIHVzZSBkbyB7fSB3aGlsZSAoKTsgZm9yIHdhaXQgY29kZSBhcyBxdWV1ZSBpcyBsb2NrZWQgYW5kIG5vIGRhdGEgY291bGQKCSAgaGF2ZSBiZWVuIHJlYWQgaW4gdGhlIG1lYW4gdGltZSBzbyBpdCBtYWtlcyBubyBzZW5zZSB0byBjaGVjayBiZWZvcmUKCSAgd2FpdGluZwoJICAtIG1ha2UgX2lzX2ZpbGxlZCAoKSBtb3JlIHJvYnVzdAoKMjAxMC0wNS0wNyAwOTozMDo0NCArMDIwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiByaW5nIGJ1ZmZlciB3b3JrIGluIHByb2dyZXNzCgoyMDEwLTA1LTA1IDEwOjIxOjU1ICswMjAwICBSb2JlcnQgU3dhaW4gPHJvYmVydC5zd2FpbkBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IEFkZCB1c2UtcmluZy1idWZmZXIgYW5kIHJpbmctYnVmZmVyLW1heC1zaXplIHByb3BlcnRpZXMKCjIwMTAtMDYtMTUgMDg6NTk6MTEgKzAyMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIFNULUVyaWNzc29uIGNvcHlyaWdodAoKMjAxMC0wOC0xMyAxNzoyMzozMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzZThkYjFkIHRvIGVjNjAyMTcKCjIwMTAtMDgtMTIgMjI6MDg6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHhyZWZzIGdsaWIgc3ltYm9sIGluIGRvY3MKCjIwMTAtMDgtMTIgMTY6MDU6MzUgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBnc3Rjb2xsZWN0cGFkczogRml4IGRvY3MgYWJvdXQgR3N0Q29sbGVjdERhdGEgbGlzdAoJICBBZGQgdG8gdGhlIGRvY3MgdGhlIGZhY3QgdGhhdCBpcyBvbmx5IHNhZmUgdG8gaXRlcmF0ZQoJICBHc3RDb2xsZWN0UGFkJ3MgZGF0YSBsaXN0IGluc2lkZSB0aGUgY29sbGVjdGVkIGNhbGxiYWNrLgoJICBGaXhlcyAjNjEwMzY2CgoyMDEwLTA4LTEwIDEwOjU2OjM4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYmQyMDU0YiB0byAzZThkYjFkCgoyMDEwLTA4LTA0IDExOjI0OjEyIC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZzogQWRkcyBHU1RfVEFHX0FQUExJQ0FUSU9OX05BTUUgdGFnCgkgIEFkZHMgYSBuZXcgdGFnIGZvciByZXByZXNlbnRpbmcgYXBwbGljYXRpb24gdXNlZCB0byBjcmVhdGUKCSAgYSBtZWRpYQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI2MDI3CgoyMDEwLTA4LTA4IDE3OjU3OjUyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGJ1ZmZlcmxpc3Q6IEluaXRpYWxpemUgdGhlIEdUeXBlIGNhY2hlIGZvciB0aGUgYnVmZmVybGlzdCBhZ2FpbgoJICBUaGlzIHdhcyBhY2NpZGVudGlhbGx5IHJlbW92ZWQgd2l0aCBsYXN0IGNvbW1pdC4KCjIwMTAtMDgtMDYgMTk6Mzg6MjIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogRG9uJ3QgY2hhaW4gdXAgZmluYWxpemUgdG8gdGhlIHBhcmVudCBjbGFzcwoJICBHc3RNaW5pT2JqZWN0OjpmaW5hbGl6ZSBkb2VzIG5vdGhpbmcgYW5kIHRoaXMgcHJldmVudHMgYQoJICBydW50aW1lLXR5cGUtY2hlY2sgY2FzdCBhbmQgZnVuY3Rpb24gY2FsbCBwZXIgYnVmZmVyIGxpc3QuCgoyMDEwLTA3LTIwIDA5OjIzOjExIC0wNTAwICBTaGl4aW4gWmVuZyA8emVuZy5zaGl4aW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdDogbWFrZSBfZ2V0X3R5cGUoKSBpbiBnc3QvKiB0aHJlYWQgc2FmZQoJICBUaGlzIGlzIG5vdCByZWFsbHkgbmVjZXNzYXJ5IGhlcmUgYmVjYXVzZSBldmVyeXRoaW5nIGlzCgkgIGluaXRpYWxpemVkIGZyb20gZ3N0X2luaXQoKSBhbHJlYWR5IGJ1dCB1c2luZyBHX0RFRklORV9UWVBFKCkKCSAgcmVtb3ZlcyBzb21lIGNvcHkmcGFzdGUgYm9pbGVycGxhdGUgY29kZS4KCjIwMTAtMDgtMDYgMTk6MzQ6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgcGx1Z2luczogQWRkIGRlY2xhcmF0aW9ucyBmb3IgX2dldF90eXBlKCkgZnVuY3Rpb25zIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wNy0yMCAwOToyMzo1NCAtMDUwMCAgU2hpeGluIFplbmcgPHplbmcuc2hpeGluQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHBsdWdpbnM6IE1ha2UgKl9nZXRfdHlwZSgpIGluIHBsdWdpbnMvKiB0aHJlYWQgc2FmZQoJICBJdCdzIG5vdCByZWFsbHkgbmVlZGVkIGhlcmUgYnV0IHVzaW5nIEdfREVGSU5FX1RZUEUoKSByZWR1Y2VzCgkgIHNvbWUgY29weSZwYXN0ZSBib2lsZXJwbGF0ZSBjb2RlLgoKMjAxMC0wOC0wNiAxODo0Mzo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogTWFrZSBzdXJlIHRoZSBidWZmZXIgbWV0YWRhdGEgaXMgd3JpdGFibGUgYmVmb3JlIGNoYW5naW5nIGl0CgoyMDEwLTA4LTA1IDEzOjU2OjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDIwMDRkMDMgdG8gYmQyMDU0YgoKMjAxMC0wOC0wNSAxMDowNDo0NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHNwZWVkIHVwIHBhZCBsaW5raW5nIHV0aWxpdHkgZnVuY3Rpb25zIGJ5IG5vdCB0cnlpbmcgcGFkcyB0aGF0IHdpbGwgbmV2ZXIgd29yawoJICBJbiBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQoKSwgd2hlbiB0cnlpbmcgdG8gZmluZCBhIGNvbXBhdGlibGUgcGFkIG9uIGFuCgkgIGVsZW1lbnQgZm9yIGEgZ2l2ZW4gcGFkLCB0aGVyZSdzIG5vIHBvaW50IGluIGNoZWNraW5nIHRoZSBlbGVtZW50J3Mgc2luayBwYWRzCgkgIGlmIHRoZSBwYWQgdG8gbGluayBpcyBhIHNpbmsgcGFkIGFzIHdlbGwsIG9yIHRoZSBlbGVtZW50J3Mgc291cmNlIHBhZHMgaWYgdGhlCgkgIGdpdmVuIHBhZCBpcyBhIHNvdXJjZSBwYWQgYWxyZWFkeSwgc2luY2UgdGhvc2Ugd291bGQgbmV2ZXIgYmUgYWJsZSB0byBsaW5rCgkgIGFueXdheS4gU2hvdWxkIHNwZWVkIHVwIGxpbmtpbmcgdXNpbmcgdGhlIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBhIGxpdHRsZSBiaXQsCgkgIG9yIGF0IGxlYXN0IHJlZHVjZSBkZWJ1ZyBsb2cgb3V0cHV0LgoKMjAxMC0wOC0wNSAxMDozMjo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdGFrZSB0aGUgdGltZXN0YW1wIGEgdGljayBsYXRlcgoJICBUaGUgbG9nZ2luZyBpcyBub3QgYW4gYXRvbWljIG9wZXJhdGlvbiBhbmQgYmVjYXVzZSBvZiB0aGUgbXVsdGktdGhyZWFkaW5nIHdlIGVuZAoJICB1cCB3aXRoIG91dC1vZi1vcmRlciBsb2cgbGluZXMuIFRvb2xzIHRoYXQgcHJlc2VudCB0aGUgbG9nLWZpbGUgc2hvdWxkIHByb2JhYmx5CgkgIHJlc29ydCB0aGUgbGluZXMuIFRoaXMgY2hhbmdlIGp1c3QgdGFrZXMgdGhlIHRpbWVzdGFtcCBhIGJpdCBjbG9zZXIgdG8gdGhlCgkgIGFjdHVhbCBsb2dnaW5nLgoKMjAxMC0wOC0wNSAwOTozNjoxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGRlYnVnOiBsb2dnaW5nIGltcHJvdmVtZW50cwoJICBVc2UgdGhlIGV2ZW50IHNlcmlhbGlzYXRpb24uIExvZyBmb3JtYXRzIG5hbWUgaW5zdGVhZCBvZiBudW1iZXIuCgoyMDEwLTA3LTE1IDE1OjQ2OjI0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogZG9uJ3QgdXNlIGMrKyBrZXl3b3JkcyBhcyB2YXJpYWJsZSBuYW1lcwoKMjAxMC0wNy0xNSAxMTozNzozMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IGxvZyBzZWVrIGV2ZW50IGRldGFpbHMKCjIwMTAtMDctMTIgMTA6NTA6NTMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJICBtYW51YWw6IHVwZGF0ZSBnc3QtY29udHJvbGxlciBjaGFwdGVyCgkgIFRoZSBkb2NzIHdlcmUgc3RpbGwgZGVzY3JpYmluZyBkZXByZWNhdGVkIGFwaS4gVXBkYXRlIGl0IHRvIHRlbGwgYWJvdXQKCSAgY29udHJvbC1jb3VyY2VzLgoKMjAxMC0wNy0wOSAxNTo1ODo1MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jb250cm9sbGVyLmM6CgkqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSogdGVzdHMvZXhhbXBsZXMvcXVldWUvcXVldWUuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSogdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzoKCSAgdGVzdHM6IGNsZWFuIHVwIGV2ZW50bG9vcCBpbiBleGFtcGxlcwoJICBEb24ndCBsZWFrIHRoZSBidXMuIERvbid0IHBhcnNlIG1lc3NhZ2VzIHdpdGggdGhlIG1ldGhvZCBmb3IgZXJyb3JzICh0cmlnZ2VycwoJICBnb2JqZWN0IHdhcm5pbmcpLgoKMjAxMC0wNy0wOCAxNDowODoyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcms6IGhhbmRsZSBlcnJvcnMgZnJvbSB0aGUgcGlwZWxpbmUKCSAgQ2F0Y2ggZXJyb3JzIGFuZCB3YXJuaW5ncyBvbiB0aGUgYnVzLiBUaGlzIGZpeGVzIGhhbmdpbmcgcGlwZWxpbmVzIGluIHRoZSBjYXNlCgkgIG9mIGJ1Z3MgZWxzZXdoZXJlLiBBbHNvIHByaW50IHN0YXRlLWNoYW5nZSBtZXNzYWdlcyB0byBnaXZlIG1vcmUgZGV0YWlsIG9uIHRoZSBwcm9ncmVzcy4KCjIwMTAtMDctMDYgMTg6MjA6NDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBjbGVhbnVwIGxhc3QgY2hhbmdlIGluIGNhcHNuZWdvIGJlbmNobWFyawoJICBBIHBhZCBuYW1lIGlzIG5vdCBhIGZhY3RvcnkgbmFtZS4KCjIwMTAtMDctMDYgMTQ6Mjk6MzkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYXJzZS5jOgoJICBkb2NzOiBtb3JlIGRvY3MgZm9yIGdzdF9wYXJzZV9sYXVuY2ggYW5kIGNvCgkgIFRlbGwgYWJvdXQgbGltaXRlZCByZXVzYWJpbGl0eSBvZiBzb21lIHBhcnNlZCBwaXBlbGluZXMuCgoyMDEwLTA3LTA1IDE2OjMyOjAwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBpbnNwZWN0OiBwYWQgaW5mbyBvdXRwdXQgaW1wcm92ZW1lbnRzCgkgIERvbid0IHByaW50IGVtcHR5IHF1ZXJ5IHR5cGVzLiBBbHNvIHByaW50IGNhcHMtdm1ldGhvZHMuCgoyMDEwLTA3LTA2IDE2OjQ3OjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogbG9nIGVsZW1lbnQ6cGFkIG5hbWVzIHdpdGggY2FwcwoKMjAxMC0wNi0zMCAxMTo0NjoxMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBiZXR0ZXIgZXJyb3IgbG9nZ2luZyBpbiBsaW5rX3BhZHNfZmlsdGVyZWQKCjIwMTAtMDYtMjQgMTA6MDA6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICB0ZXN0czogYWRkIGNvbW1lbnRzIHRlbGxpbmcgdGhlIG1lYW5pbmcgb2YgdGhlIGFiYnJldmlhdGlvbnMKCjIwMTAtMDctMDUgMTI6MTk6MjkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhdm9pZCBzb21lIGNhcHMgbWFuaXB1bGF0aW9uCgkgIEFmdGVyIHRoZSBpbnRlcnNlY3Qgd2UgaGF2ZSB3cml0YWJsZSBjYXBzLiBDb3B5IHRoZSB0ZW1wbGF0ZSBjYXBzIHNvIHRoYXQgYWxzbwoJICB0aGVyZSB3ZSBoYXZlIHdyaXRhYmxlIGNhcHMuCgoyMDEwLTA4LTA1IDAxOjA5OjAyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB0ZXN0czogYWRkIGJhc2ljIHVuaXQgdGVzdCBmb3IgZ3N0X3BhZF9wcm94eV9nZXRjYXBzKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNDIwMwoKMjAxMC0wOC0wNSAwMTowNjo1NyArMDEwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBNYWtlIGdzdF9wYWRfcHJveHlfZ2V0Y2FwcygpIHJldHVybiBlbXB0eSBjYXBzIGlmIGl0J3Mgd2hhdCB0aGUgb3RoZXIgc2lkZSBoYXMKCSAgZ3N0X3BhZF9wcm94eV9nZXRjYXBzKCkgd291bGQgcmV0dXJuIHRoZSBwYWQgdGVtcGxhdGUgY2FwcyBpZiB0aGUgb3RoZXIgc2lkZQoJICByZXR1cm5lZCBlbXB0eSBjYXBzIG9yIGlmIHRoZSBpbnRlcnNlY3Rpb24gb2YgYWxsIHRoZSBjYXBzIG9uIHRoZSBvdGhlciBzaWRlCgkgIHdhcyBlbXB0eS4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyNDIwMwoKMjAxMC0wOC0wNCAxOToxOTo1NSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQ2hlY2sgaWYgdGhlIGNvbXBpbGVyIHN1cHBvcnRzIElTTyBDODkgb3IgQzk5IGFuZCB3aGljaCBwYXJhbWV0ZXJzIGFyZSByZXF1aXJlZAoJICBUaGlzIGZpcnN0IGNoZWNrcyB3aGF0IGlzIHJlcXVpcmVkIGZvciBJU08gQzk5IHN1cHBvcnQgYW5kIHNldHMgdGhlIHJlbGV2YW50CgkgIGNvbXBpbGVyIHBhcmFtZXRlcnMgYW5kIGlmIG5vIEM5OSBjb21waWxlciBpcyBmb3VuZCwgaXQgY2hlY2tzIGZvciBhCgkgIEM4OSBjb21waWxlci4gVGhpcyBlbmFibGVzIHVzIHRvIGNoZWNrIGZvciBhbmQgdXNlIEM4OS9DOTkgZnVuY3Rpb25zCgkgIHRoYXQgZ2NjIGhpZGVzIGZyb20gdXMgd2l0aG91dCB0aGUgY29ycmVjdCBjb21waWxlciBwYXJhbWV0ZXJzLgoKMjAxMC0wOC0wNCAxMzo0NzoyMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogRml4IGRvY3MKCSAgRml4IHR5cG8gaW4gZG9jcyBmb3IgdGhlIHVuc2lnbmVkIHBlZWsgZnVuY3Rpb25zCgoyMDEwLTA3LTA1IDEwOjAwOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IHJlbW92ZSBcbiBmcm9tIGRlYnVnIHN0YXRlbWVudHMKCjIwMTAtMDgtMDMgMTE6Mzc6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZG9jczogZml4IGJ1aWxkIHdpdGggZ3RrLWRvYyBmcm9tIGdpdAoJICBGb3Igc29tZSByZWFzb24gdGhlIHN0YXRpYyBpbmxpbmUgZnVuY3Rpb24gR1NUX0NBVF9MRVZFTF9MT0dfdmFsaXN0IGlzCgkgIG5vdyBwaWNrZWQgdXAsIHdoaWNoIHRoZW4gYnJlYWtzIHRoZSBidWlsZCBiZWNhdXNlIGl0J3Mgbm90IGRvY3VtZW50ZWQsCgkgIHNvIGFkZCBpdCB0byB0aGUgc2VjdGlvbnMgZmlsZS4KCSAgQmFzZWQgb24gcGF0Y2ggYnkgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsIDx2amFxdWV6QGlnYWxpYS5jb20+LgoJICBGaXhlcyAjNjI1ODYyLgoKMjAxMC0wNy0xNSAyMzowNTowOSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGFkZCBjb21tZW50IGFuZCBtb3JlIGxvZ2dpbmcKCjIwMTAtMDctMjkgMTc6Mjc6MDYgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBkb3dubG9hZCBtb2RlOyBwcmV2ZW50IHJhbmdlIGNvcnJ1cHRpb24gZHVlIHRvIHJhY2UKCSAgQ3VycmVudCByYW5nZSB3YXMgYmVpbmcgdXBkYXRlZCBpbiB0aGUgdGhyZWFkIHBlcmZvcm1pbmcgc2VlaywgYnV0IGFzCgkgIG5vIGxvY2tzIHdlcmUga2VwdCBmb3IgYSBzaG9ydCBzZWN0aW9uLCBkYXRhIGZsb3cgY291bGQgcmVzdW1lIGJlZm9yZQoJICBjdXJyZW50IHJhbmdlIHVwZGF0ZWQsIHNvIGRhdGEgZm9yIHRoZSBuZXcgcmFuZ2Ugd291bGQgYmUgYWNjZXB0ZWQgYXMKCSAgZnJvbSB0aGUgcHJldmlvdXMgcmFuZ2UuCgkgIFJhdGhlciwgcmFuZ2Ugc2hvdWxkIGJlIHVwZGF0ZWQgaW4gc2VyaWFsaXplZCBtYW5uZXIgYmFzZWQgb24KCSAgbmV3c2VnbWVudCBldmVudC4KCjIwMTAtMDUtMjIgMTY6MzM6MTEgLTA1MDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtIGZpeCBmb3IgdXBzdHJlYW0gY2Fwcy1yZW5lZ290aWF0aW9uCgkgIElmIGluaXRpYWxseSBwYXNzLXRocm91Z2ggY2FwcyBhcmUgbmVnb3RpYXRlZCBiZXR3ZWVuIGEgdHJhbnNmb3JtIGVsZW1lbnQncwoJICBzaW5rIGFuZCBzcmMgcGFkcywgYnV0IHRoZW4gdGhlIGRvd25zdHJlYW0gZWxlbWVudCByZXR1cm5zIGRpZmZlcmVudCBjYXBzCgkgIG9uIGEgYnVmZmVyIGZyb20gcGFkX2FsbG9jKCksIGJhc2V0cmFuc2Zvcm0gZ2V0cyBzdHVjayB3aXRoIHByb3h5X2FsbG9jPVRSVUUKCSAgZXZlbiB0aG91Z2ggdGhlIHVwc3RyZWFtIHBlZXIgZG9lc24ndCBhY2NlcHQgdGhlIGNhcHMsIGNhdXNpbmcKCSAgZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzKCkgdG8gYmUgY2FsbGVkIG9uIGVhY2ggYnVmZmVyIGluIF9idWZmZXJfYWxsb2MoKToKCSAgaWYgKCFnc3RfY2Fwc19pc19lcXVhbCAobmV3Y2FwcywgY2FwcykpIHsKCSAgR1NUX0RFQlVHX09CSkVDVCAodHJhbnMsICJjYXBzIGFyZSBuZXciKTsKCSAgLyogd2UgaGF2ZSBuZXcgY2Fwcywgc2VlIGlmIHdlIGNhbiBwcm94eSBkb3duc3RyZWFtICovCgkgID4+ICAgIGlmIChnc3RfcGFkX3BlZXJfYWNjZXB0X2NhcHMgKHBhZCwgbmV3Y2FwcykpIHsKCSAgLyogcGVlciBhY2NlcHRzIHRoZSBjYXBzLCByZXR1cm4gYSBidWZmZXIgaW4gdGhpcyBmb3JtYXQgKi8KCSAgR1NUX0RFQlVHX09CSkVDVCAodHJhbnMsICJwZWVyIGFjY2VwdGVkIG5ldyBjYXBzIik7CgkgIHdoaWNoIGlzIHRha2luZyB+NDBtcy9mcmFtZS4KCSAgVGhpcyBwYXRjaCBkb2VzIHR3byB0aGluZ3MuICAoMSkgaWYgdGhlIGJ1ZmZlciByZXR1cm5lZCBmcm9tIHBhZF9hbGxvYygpIGhhcwoJICBuZXcgY2FwcywgdHJpZ2dlciB0aGUgZGVjaXNpb24gd2hldGhlciB0byBwcm94eSB0aGUgYnVmZmVyLWFsbG9jIHRvIGJlCgkgIHJldmlzaXRlZCwgYW5kICgyKSBkaXNhYmxlIHByb3h5IGlmIHBlZXIgZG9lcyBub3QgYWNjZXB0IG5ldyBjYXBzLiAgKFRoZSBmaXJzdAoJICBwYXJ0IG1heSBub3QgYmUgc3RyaWN0bHkgbmVlZGVkLCBidXQgc2VlbWVkIGxpa2UgYSBnb29kIGlkZWEuKQoJICBOb3RlIHRoYXQgdGhpcyBpc3N1ZSB3b3VsZCBub3QgYXJpc2UgZXhjZXB0IGluIGNhc2Ugb2YgZG93bnN0cmVhbSBlbGVtZW50cwoJICB3aG8gaGF2ZSBvbiB0aGVpciB0ZW1wbGF0ZS1jYXBzLCBzb21lIHRoYXQgd291bGQgYmUgc3VpdGFibGUgZm9yIHBhc3MtdGhyb3VnaCwKCSAgYnV0IGF0IHJ1bnRpbWUgcGljayBtb3JlIHJlc3RyaWN0aXZlIGNhcHMgKGZvciBleCwgYWZ0ZXIgcXVlcnlpbmcgYSBkcml2ZXIgZm9yCgkgIHdoYXQgZm9ybWF0cyBpdCBhY3R1YWxseSBzdXBwb3J0cykuCgoyMDEwLTA3LTI3IDE0OjMwOjUxICswMjAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IGZpeCBjb21waWxhdGlvbiBvbiB3aW5kb3dzCgkgIEZpeCBtaXNtYXRjaGVkIGJyYWNrZXRzICgjNjI1Mjk1KS4KCjIwMTAtMDctMjcgMDc6MjE6MTkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkgIGdzdGRhdGV0aW1lOiBGaXggbG9jYWx0aW1lIHVzYWdlCgkgIGxvY2FsdGltZSBvbmx5IHRha2VzIG9uZSBwYXJhbWV0ZXIgYW5kIHJldHVybnMgYSBzdGF0aWNhbGx5CgkgIGFsbG9jYXRlZCB0bSBzdHJ1Y3QuIFVzZSBpdCBjb3JyZWN0bHkuCgkgIEZpeGVzICM2MjUzNjgKCjIwMTAtMDMtMjkgMTg6MDU6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBiYXNldHJhbnNmb3JtOiBUcnkgc3VnZ2VzdGluZyBjYXBzIG9uIGJhZCBjYXBzIHBhZF9hbGxvYwoJICBXaGVuIGJhc2V0cmFuc2Zvcm0gcmVjZWl2ZWQgYW4gdW5zdXBwb3J0ZWQgY2FwcyBvbiBwYWRfYWxsb2MKCSAgaXQganVzdCByZXR1cm5lZCBub3QtbmVnb3RpYXRlZC4gVGhpcyBwYXRjaCBtYWtlcyBpdCBxdWVyeQoJICB0aGUgYWxsb3dlZCBjYXBzIGJldHdlZW4gaGlzIHNpbmtwYWQgYW5kIHVwc3RyZWFtJ3Mgc3JjcGFkCgkgIHRvIGZpbmQgYSBjYXBzIHRvIHN1Z2dlc3QuCgkgIFRoaXMgaGFwcGVucyB3aGVuIGRpbmFtaWNhbGx5IHN3aXRjaGluZyBwaXBlbGluZSBlbGVtZW50cwoJICBhbmQgdXBzdHJlYW0gcGFkX2FsbG9jcyB3aXRoIHRoZSBwcmV2aW91cyBjYXBzIHRoYXQgd2FzCgkgIGJlaW5nIHVzZWQuCgkgIEZpeGVzICM2MTQyOTYKCjIwMTAtMDctMjYgMTg6NTM6NTcgKzAyMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogZmx1c2ggYWdhaW4gYWZ0ZXIgZXZlcnkgbGluZSBvZiBkZWJ1ZyBvdXRwdXQKCSAgZ19wcmludGVycigpIHVzZWQgdG8gZG8gdGhpcyBmb3IgdXMuIEFsc28gdXNlIGxpYmMncyBmcHJpbnRmKCkgZnVuY3Rpb25zLAoJICB0byBtYWtlIHN1cmUgdGhlIHN0ZGVyciBwb2ludGVyIHdlIHVzZSBpcyBhY3R1YWxseSBjb21wYXRpYmxlIHdpdGggdGhlCgkgIGxpYmMgbGlua2VkIGFnYWluc3QgYnkgR1N0cmVhbWVyICh3aGljaCBhcHBhcmVudGx5IG1heSBub3QgYWx3YXlzIGJlIHRoZQoJICBzYW1lIGFzIHdoYXQgR0xpYiBpcyBsaW5rZWQgYWdhaW5zdCBvbiB3aW5kb3dzKSwgYW5kIHdlIGRvbid0IG5lZWQgdGhlCgkgIGZ1bmN0aW9uYWxpdHkgZW5zdXJlZCBieSBnX2ZwcmludGYoKS4KCSAgRml4ZXMgIzYyNTI5NS4KCjIwMTAtMDctMjYgMTg6NTM6MzUgKzAyMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc2wucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDYtMjMgMTE6MzE6MzMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGRzIHRlc3RzIGZvciBkYXRldGltZQoJICBBZGRzIHRlc3RzIGZvciBkYXRldGltZSBmaWVsZHMgaW4gZ3N0dmFsdWUgdGVzdHMKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNi0yMyAxMTozMDowMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHN0cnVjdHVyZTogQWRkcyBkYXRldGltZSBnZXR0ZXIgZnVuY3Rpb24KCSAgQWRkcyBnc3Rfc3RydWN0dXJlX2dldF9kYXRlX3RpbWUgZnVuY3Rpb24KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldF9kYXRlX3RpbWUKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNi0yMSAyMzo0Mjo0NCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19EQVRFX1RJTUUgdGFnCgkgIEFkZHMgYSBuZXcgdGFnIHRoYXQgcmVwcmVzZW50cyBhIGRhdGUgYW5kIHRpbWUgYSBtZWRpYSB3YXMKCSAgY3JlYXRlZAoJICBBUEk6IEdTVF9UQUdfREFURV9USU1FCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMjEgMjI6MDg6MjEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IEFkZCBkYXRldGltZSBnZXQgZnVuY3Rpb25zCgkgIEFkZHMgX2RhdGVfdGltZV9nZXQgYW5kIF9kYXRlX3RpbWVfZ2V0X2luZGV4IGZ1bmN0aW9ucyB0bwoJICB0YWdsaXN0LgoJICBBUEk6IGdzdF90YWdfbGlzdF9nZXRfZGF0ZV90aW1lCgkgIEFQSTogZ3N0X3RhZ19saXN0X2dldF9kYXRlX3RpbWVfaW5kZXgKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNy0yMSAyMjowNDoyMyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0dmFsdWU6IEFkZHMgZGF0ZXRpbWUgZnVuY3Rpb25zCgkgIEFkZHMgYSBkYXRldGltZSBmdW5jdGlvbnMgdG8gZ3N0dmFsdWUKCSAgRml4ZXMgIzU5NDUwNAoKMjAxMC0wNy0xNiAxNDowOToxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0ZGF0ZXRpbWUuYzoKCSogZ3N0L2dzdGRhdGV0aW1lLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGRhdGV0aW1lLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RkYXRldGltZTogQWRkcyBHc3REYXRlVGltZQoJICBBZGRzIEdzdERhdGVUaW1lIHRvIHJlcHJlc2VudCBkYXRlcyArIHRpbWUgKyB0aW1lem9uZQoJICBpbmZvcm1hdGlvbi4KCSAgVGVzdHMgaW5jbHVkZWQuCgkgIEFQSTogR3N0RGF0ZVRpbWUKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9kYXkKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9tb250aAoJICBBUEk6IGdzdF9kYXRlX3RpbWVfZ2V0X3llYXIKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9ob3VyCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9nZXRfbWljcm9zZWNvbmQKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9taW51dGUKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF9zZWNvbmQKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX2dldF90aW1lX3pvbmVfb2Zmc2V0CgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXcKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19sb2NhbF90aW1lCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfZnJvbV91bml4X2Vwb2NoCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9uZXdfbm93X2xvY2FsX3RpbWUKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX25ld19ub3dfdXRjCgkgIEFQSTogZ3N0X2RhdGVfdGltZV9yZWYKCSAgQVBJOiBnc3RfZGF0ZV90aW1lX3VucmVmCgkgIEZpeGVzICM1OTQ1MDQKCjIwMTAtMDctMjYgMTQ6NTk6NTEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBnc3Q6IEZpeCB1c2FnZSBvZiBnbGliX2NoZWNrX3ZlcnNpb24oKQoJICBJdCByZXR1cm5zIE5VTEwgaWYgdGhlIGluc3RhbGxlZCBHTGliIHZlcnNpb24gaXMgYXMgbGVhc3QgYXMKCSAgbmV3IGFzIHRoZSByZXF1aXJlZCB2ZXJzaW9uIGFuZCBzb21lIGV4cGxhbmF0b3J5IHN0cmluZyBvdGhlcndpc2UuCgoyMDEwLTA3LTIzIDIwOjQ2OjEwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzOiBtYWtlIGdzdC1pbnNwZWN0IHByaW50IHRoZSByZWxlYXNlIGRhdGUgdGltZSBzdGFtcAoKMjAxMC0wNi0yMSAxNzozNDo0OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiB1c2UgbmV3IEFHX0dTVF9TRVRfUEFDS0FHRV9SRUxFQVNFX0RBVEVUSU1FX1dJVEhfTkFOTyBtYWNybwoKMjAxMC0wNi0yMCAwMTo1NTowMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIGJpbmFyeXJlZ2lzdHJ5OiBzYXZlIGFuZCBsb2FkIHJlbGVhc2UgZGF0ZSB0aW1lIGluIEdzdFBsdWdpbkRlc2MKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzA0MAoKMjAxMC0wNi0yMCAwMDozMzozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW46IGFkZCByZWxlYXNlIGRhdGV0aW1lIGZpZWxkIHRvIEdzdFBsdWdpbkRlc2MgYW5kIHNldCBpdCBpZiBHU1RfUEFDS0FHRV9SRUxFQVNFX0RBVEVUSU1FIGlzIGRlZmluZWQKCSAgVGhpcyBpcyBhIHN0cmluZyBkZXNjcmliaW5nIGEgZGF0ZSBhbmQvb3IgZGF0ZS90aW1lIGluIGEgc2ltcGxlIHN1YnNldCBvZgoJICB0aGUgSVNPLTg2MDEgZm9ybWF0LCBuYW1lbHkgZWl0aGVyICJZWVlZLU1NLUREIiBvciAiWVlZWS1NTS1ERFRISDpNTVoiICh3aXRoCgkgICdUJyB0aGUgZGF0ZS90aW1lIHNlcGFyYXRvciBhbmQgdGhlICdaJyBpbmRpY2F0aW5nIFVUQykuCgkgIFRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBmaWVsZCBpcyB0byBrZWVwIHRyYWNrIG9mIHBsdWdpbiBhbmQgZWxlbWVudCB2ZXJzaW9ucwoJICBvbiBhbiBhYnNvbHV0ZSB0aW1lbGluZSwgc28gaXQncyBwb3NzaWJsZSB0byBkZXRlcm1pbmUgd2hpY2ggb25lIGlzIG5ld2VyIHdoZW4KCSAgY29tcGFyaW5nIHR3byBkYXRlIHRpbWUgbnVtYmVycy4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIGV4cHJlc3MgJ3JlcGxhY2VzJy10eXBlCgkgIHJlbGF0aW9uc2hpcHMgYmV0d2VlZW4gcGx1Z2lucyBhbmQgZWxlbWVudCBmYWN0b3JpZXMgaW4gZnV0dXJlLCBldmVuIGFjcm9zcwoJICBkaWZmZXJlbnQgbW9kdWxlcyBhbmQgcGx1Z2luIG1lcmdlcyBvciBzcGxpdHMgKHNvdXJjZSBtb2R1bGUgdmVyc2lvbiBudW1iZXJzCgkgIGFyZW4ndCBwYXJ0aWN1bGFybHkgdXNlZnVsIGhlcmUsIHNpbmNlIHRoZXkgY2FuIG9ubHkgbWVhbmluZ2Z1bGx5IGJlIGNvbXBhcmVkCgkgIHdpdGhpbiB0aGUgc2FtZSBtb2R1bGUpLiBJdCBhbHNvIGFsbG93cyBhcHBsaWNhdGlvbnMgYW5kIGxpYnJhcmllcyB0byByZWxpYWJseQoJICBjaGVjayB0aGF0IGEgcGx1Z2luIGlzIHJlY2VudCBlbm91Z2ggd2l0aG91dCBtYWtpbmcgYXNzdW1wdGlvbnMgYWJvdXQgbW9kdWxlcwoJICBvciBtb2R1bGUgdmVyc2lvbnMuCgkgIFdlIHVzZSBhIHN0cmluZyBoZXJlIHRvIGtlZXAgdGhpbmdzIHNpbXBsZSBhbmQgY2xlYXIsIGVzcC4gb24gdGhlIGJ1aWxkIHN5c3RlbQoJICBzaWRlIG9mIHRoaW5ncy4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzA0MAoKMjAxMC0wNy0yMCAwOToyNToyMCAtMDUwMCAgU2hpeGluIFplbmcgPHplbmcuc2hpeGluQGdtYWlsLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgdGVzdHM6IG1ha2UgKl9nZXRfdHlwZSgpIGluIHRlc3RzIHRocmVhZCBzYWZlCgkgIEV2ZW4gaWYgaXQgc2hvdWxkbid0IGJlIG5lZWRlZCBoZXJlLiBTZWUgIzYyMzQ5MS4KCjIwMTAtMDYtMDQgMTE6MjQ6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogd3JpdGUgZGVidWdnaW5nIG91dHB1dCB0byBmaWxlIGlmIEdTVF9ERUJVR19GSUxFIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldAoJICBUaGlzIGNoYW5nZXMgYmVoYXZpb3VyIHNsaWdodGx5IGluIHRoYXQgd2Ugbm8gbG9uZ2VyIG91dHB1dCB0aGluZ3MKCSAgdmlhIGdfcHJpbnRlcnIoKSwgc28gYW55IG5vbi1zdGFuZGFyZCBnbGliIHByaW50ZXJyIGhhbmRsZXJzIGFyZSBubwoJICBsb25nZXIgY2FsbGVkIHdoZW4gR1NUX0RFQlVHIGlzIGVuYWJsZWQuIEhvd2V2ZXIsIHRoaXMgc2VlbXMgbm90CgkgIHJlYWxseSBkZXNpcmFibGUgaW4gbW9zdCBjYXNlcyBhbnl3YXksIGFuZCB0aGUgR0xpYiBkb2NzIGFsc28gc2F5CgkgIHRoYXQgbGlicmFyaWVzIHNob3VsZCBub3QgdXNlIGdfcHJpbnRlcnIoKSBmb3IgbG9nZ2luZy4KCSAgT3RoZXIgc3RkZXJyIG91dHB1dCAoZS5nLiB3YXJuaW5ncywgb3IgYXBwbGljYXRpb24gbWVzc2FnZXMpIHdpbGwKCSAgb2YgY291cnNlIG5vdCBiZSBjYXB0dXJlZCBpbiB0aGUgbG9nIGZpbGUgdGhpcyB3YXkuCgkgIEdTVF9ERUJVR19GSUxFPS0gd2lsbCByZWRpcmVjdCBkZWJ1ZyBvdXRwdXQgdG8gc3Rkb3V0LgoKMjAxMC0wNy0yMCAyMDo0OToxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBBc3N1bWUgcGFkcyBhcmUgY29tcGF0aWJsZSBpZiB3ZSBkb24ndCBoYXZlIHRlbXBsYXRlcwoJICBUaGlzIGlzIHRoZSBzYW1lIGJlaGF2aW91ciBhcyBpZiB3ZSBoYWQgYSBwYWQgdGVtcGxhdGUgY2FwcyBvZgoJICBHU1RfQ0FQU19BTlkgb24gYW55IG9mIHRoZSBwYWRzIChpLmUuIHRoZSBhY3R1YWwgY2hlY2sgd2lsbCBiZSBkb25lCgkgIGR1cmluZyBjYXBzIG5lZ290aWF0aW9uKS4KCjIwMTAtMDctMTcgMjE6Mjg6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFsbG93IHRoZSBzdWJjbGFzcyB0byBhZGQgbmV3IGZpZWxkcyB0byBjYXBzIHdoZW4gZ2V0dGluZyBuZXcgY2FwcyBmcm9tIGRvd25zdHJlYW0KCSAgVGhpcyB3YXMgYWxyZWFkeSBkb25lIGluIGFsbCBvdGhlciBjYXNlcyB3aGVyZSBuZXcgY2FwcyBhcmUgaGFuZGxlZAoJICBleGNlcHQgdXBzdHJlYW0gbmVnb3RpYXRpb24uCgoyMDEwLTA3LTEyIDE0OjM5OjAwICswMjAwICBNaWNoYWVsIEJ1bmsgPGJ1bmtAaWF0LnVuaS1sZWlwemlnLmRlPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC10aHJlYWRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWVsZW1lbnRzLnhtbDoKCSogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBkb2NzOiBmaXggc29tZSB0eXBvcyBhbmQgYWRkIHNvbWUgbWlzc2luZyBsaW5rcyBpbiB0aGUgYXBwIGRldiBtYW51YWwKCSAgRml4ZXMgIzYyNDE2NC4KCjIwMTAtMDctMTIgMTQ6MjI6NTAgKzAyMDAgIE1pY2hhZWwgQnVuayA8YnVua0BpYXQudW5pLWxlaXB6aWcuZGU+CgoJKiB0b29scy9nc3QtaW5zcGVjdC4xLmluOgoJICBkb2NzOiBmaXggdHlwbyBvbiBnc3QtaW5zcGVjdCBtYW4gcGFnZQoJICBTZWUgIzYyNDE2NC4KCjIwMTAtMDctMDMgMTU6MDg6MTIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IGZpeCBzb21lIHNpbGx5IGxpc3QgaXRlcmF0aW9uIGNvZGUKCSAgZ19saXN0X2xlbmd0aCgpIGlzIG5vdCB0aGUgYmVzdCB3YXkgdG8gY2hlY2sgaWYgYSBsaXN0IGlzIGVtcHR5IG9yIG5vdC4KCjIwMTAtMDctMTYgMTc6NTM6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiB1c2UgR1N0YXRCdWYgdW5jb25kaXRpb25hbGx5IGFuZCBhZGQgdHlwZWRlZiBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKCSAgTm8gbmVlZCB0byBjbHV0dGVyIHRoZSBjb2RlIHdpdGggI2lmICNlbHNlICNlbmRpZi4KCSAgU2VlICM2MjM4NzUuCgoyMDEwLTA3LTE2IDE3OjMzOjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBzdHJ1Y3R1cmU6IFVzZSBhIGNvbnN0IEdzdFN0cnVjdHVyZSAqIGFzIHBhcmFtZXRlciBmb3Igc29tZSBtb3JlIGdzdF9zdHJ1Y3R1cmVfZ2V0IHZhcmlhbnRzCgoyMDEwLTA3LTE0IDE5OjQ3OjQzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgUmV2ZXJ0ICItbGF1bmNoOiBkaXNhYmxlIENMT0NLX0xPU1QgbWVzc2FnZSBoYW5kbGluZyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAxZjhlYmE2MTFhNjNmNDU3NjZjMzhjNjQwMjg4ZTQyYjI3YjEwYmQ0LgoJICBUaGlzIHNob3VsZCBiZSBmaXhlZCBub3cgKGFuZCBpZiBub3Qgc2hvdWxkIGJlIGZpeGVkKSBhbmQgdGhlCgkgIGNsb2NrLWxvc3QgaGFuZGxpbmcgaXMgbm93IG5lZWRlZCBmb3IgcGxheWJpbjIgZ2FwbGVzcyBwbGF5YmFjay4KCSAgU2VlIGJ1ZyAjNTc5MTI3LgoKMjAxMC0wNy0wOCAyMTowNDo1NCArMDIwMCAgRGF2aWQgSG95dCA8ZGhveXRAbGxubC5nb3Y+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnliaW5hcnk6IEZpeCBjb21wYXRpYmlsaXR5IHdpdGggR0xpYiAyLjI1IHdoZW4gdXNpbmcgTVNWQwoJICBOZXdlciBHTGliIHVzZXMgYSBuZXcgdHlwZSBmb3IgZ19zdGF0KCkgYW5kIGZyaWVuZHMgdG8gaW1wcm92ZQoJICBXaW5kb3dzIGNvbXBhdGliaWxpdHkuIE9uIFBPU0lYIHRoaXMgaXMgYSB0eXBlZGVmIHRvIHN0cnVjdCBzdGF0LgoJICBGaXhlcyBidWcgIzYyMzg3NS4KCjIwMTAtMDctMDggMDc6NDg6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBJZiB0aGUgY3VycmVudGx5IHVzZWQgY2xvY2sgZ2V0cyBsb3N0IHVwZGF0ZSBpdCB0aGUgbmV4dCB0aW1lIHdoZW4gZ29pbmcgZnJvbSBQQVVTRUQgdG8gcGxheWluZwoJICBGaXhlcyBidWcgIzYyMzgwNi4KCjIwMTAtMDctMDUgMTk6MzM6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFJldHVybiB2YWx1ZXMgaW4gc3RyZWFtIHRpbWUgZm9yIHRoZSBQT1NJVElPTiBxdWVyeQoJICBGaXhlcyBidWcgIzYyMzYyMi4KCjIwMTAtMDctMDUgMTg6NTQ6NDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSW1wbGVtZW50IEdzdEVsZW1lbnQ6OmdldF9xdWVyeV90eXBlcygpCgoyMDEwLTA3LTA2IDEwOjEzOjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IE9ubHkgYW5zd2VyIHRoZSBTRUdNRU5UIHF1ZXJ5IGluIHB1bGwgbW9kZQoJICBPdGhlcndpc2UgdGhlIGVsZW1lbnQgaGFuZGxpbmcgdGhlIHNlZWtzIHNob3VsZCBhbnN3ZXIgdGhpcyBxdWVyeS4KCSAgRml4ZXMgYnVnICM2MjM2MjIuCgoyMDEwLTA3LTA1IDEwOjM2OjA1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbXBsZW1lbnQgUE9TSVRJT04gcXVlcnkKCSAgRml4ZXMgYnVnICM2MjM1NDEuCgoyMDEwLTA2LTI1IDE2OjMxOjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBHc3RQYWQ6IERvIG5vdCBjYWxsIGdzdF9wYWRfYWNjZXB0X2NhcHMoKSB3aGVuIGNhcHMgY2hhbmdlCgkgIEluc3RlYWQganVzdCBjaGVjayB0aGF0IHRoZSBjYXBzIGludGVyc2VjdCB3aXRoIHRoZSBwYWQgdGVtcGxhdGUuCgkgIFRoZSBlbGVtZW50cyBzaG91bGQgcHJvcGVybHkgYWNjZXB0L3JlZnVzZSB0aGUgY2FwcyBpbiBzZXRjYXBzKCkuCgkgIFNoYXZlcyBvZmYgY2FsbGluZyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBhY2NlcHRjYXBzIHdoaWNoIGRvZXMKCSAgYW4gZXhwZW5zaXZlIGdzdF9wYWRfZ2V0X2NhcHMoKSAoc28gaWYgeW91IGhhdmUgNTAgb2YgdGhvc2UgZWxlbWVudHMgaW4KCSAgYSByb3csIHlvdSdkIGJlIGRvaW5nIGZhY3RvcmlhbCg1MCkgZ3N0X3BhZF9nZXRfY2Fwcy4uLikuCgkgIERvZXMgbm90IGJyZWFrIGFueSBtb2R1bGUgdW5pdCB0ZXN0IGFuZCBtb3N0IGFwcHMgd29yayBmaW5lLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyNzQwCgoyMDEwLTA3LTA4IDE2OjI0OjIxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBBZGQgbW9yZSBkZXRhaWxzIGFib3V0IGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZAoKMjAxMC0wNy0xNiAxMToxNjoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBCYWNrIHRvIGRldmVsb3BtZW50LgoKPT09IHJlbGVhc2UgMC4xMC4zMCA9PT0KCjIwMTAtMDctMTQgMjM6NTk6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjMwCgoyMDEwLTA3LTE0IDE3OjU4OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2RlLnBvOgoJKiBwby9pZC5wbzoKCSogcG8vemhfQ04ucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA3LTE1IDEyOjAxOjI0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogcmVtb3ZlIGNvbW1hIGF0IHRoZSBlbmQgb2YgdGhlIGxhc3QgZW51bSB2YWx1ZQoJICBGaXhlcyB0aGUgYnVpbGQgZm9yIGMrKy4KCjIwMTAtMDctMTEgMTk6MDA6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICBjaGVja3M6IGFkZCB1bml0IHRlc3QgZm9yIHJlY2VudCB0YWdsaXN0IG1lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSBmaXgKCSAgU2VlICM2MjQxMTMuCgoyMDEwLTA3LTExIDE4OjU5OjUzICswMTAwICBFZHVhcmRvIERvYmF5IDxlZHVkb2JheUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiBmaXggbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKCkgZm9yIG1vcmUgdGhhbiB0d28gc3RyaW5ncwoJICBGaXhlcyAjNjI0MTEzLgoKMjAxMC0wNy0wOCAxMzo0Njo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGlnbm9yZSBuZXcgYmFzZXNpbmsgdW5pdCB0ZXN0IGJpbmFyeQoKMjAxMC0wNy0wOCAxMzo0MzoyMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHJlbW92ZSAtcCBzaG9ydGhhbmQgZm9yIC0tbm8tc2lndXNyLWhhbmRsZXIKCSAgSXQncyBub3QgcmVhbGx5IG5lZWRlZCwgYW5kIGRvZXNuJ3QgbWFwIGFueSBsb25nZXIgYWZ0ZXIgdGhlIGxvbmcgb3B0aW9uCgkgIGhhcyBiZWVuIHJlbmFtZWQuCgoyMDEwLTA3LTA2IDE1OjQ3OjQwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI5LjQgcHJlLXJlbGVhc2UKCSAgQWxzbyBidW1wIGxpYnRvb2wgdmVyc2lvbnMgbm93ICh3aGljaCBJIG1lYW50IHRvIGRvIGZvciB0aGUgZmlyc3QKCSAgcHJlLXJlbGVhc2UgYnV0IGZvcmdvdCkuCgoyMDEwLTA3LTA2IDIzOjQ0OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL0xJTkdVQVM6CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vc2wucG86CgkqIHBvL3N2LnBvOgoJKiBwby96aF9DTi5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMTAtMDctMDYgMTY6MjE6MDUgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc2luazogYWRkIGFjY2Vzc29ycyBmb3IgdGhlIGVuYWJsZS1sYXN0LWJ1ZmZlciBwcm9wZXJ0eS4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3NldF9sYXN0X2J1ZmZlcl9lbmFibGVkCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19pc19sYXN0X2J1ZmZlcl9lbmFibGVkCgoyMDEwLTA3LTA2IDEyOjE4OjQ1ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBuZXcgZW5hYmxlLWxhc3QtYnVmZmVyIHByb3BlcnR5LgoJICBBZGQgYSBuZXcgZW5hYmxlLWxhc3QtYnVmZmVyIHByb3BlcnR5LiBXaGVuIGZhbHNlLCBpdCBkaXNhYmxlcyBzdG9yaW5nIHRoZSBsYXN0CgkgIHJlY2VpdmVkIGJ1ZmZlciBpbiBiYXNlc2luazo6bGFzdC1idWZmZXIuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpbiBjYXNlcyB3aGVyZQoJICBidWZmZXJzIG5lZWQgdG8gYmUgcmVsZWFzZWQgYXNhcC4KCSAgQVBJOiBHc3RCYXNlU2luazo6ZW5hYmxlLWxhc3QtYnVmZmVyCgoyMDEwLTA3LTA2IDEwOjQ4OjI3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgY2hlY2tzOiByZXdyaXRlIGdzdHRhZ3NldHRlciB0ZXN0IHRvIHVzZSBmZXdlciBnX3VzbGVlcCgpCgkgIFNvbWV0aGluZyBhYm91dCB0aGF0IHNlZW1zIHRvIGludGVyYWN0IGJhZGx5IHdpdGggc29tZSBzY2hlZHVsZXJzLAoJICBzbyBkbyB0aGluZ3MgZGlmZmVyZW50bHkuCgkgIEZpeGVzICM2MjM0NjkuCgoyMDEwLTA3LTA2IDEwOjE5OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgYWRkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwoKSB0byBkb2NzCgkgIEFQSTogYWRkIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jX2Z1bGwKCSAgU2VlICM2MjM1ODkuCgoyMDEwLTA3LTA2IDEwOjI4OjE0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBJbXByb3ZlIGdzdF92YWx1ZV97c2V0fGdldH1fY2FwcyBkb2NzCgoyMDEwLTA3LTA2IDEwOjM1OjA5ICswMjAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBleHBvcnQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbAoKMjAxMC0wNy0wNiAxMDozMToyNSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaHBwYS5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGMzMi5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF94ODZfNjQuaDoKCSAgdGVzdHM6IHJlbW92ZSBBQkkgY2hlY2tzIGZvciBHc3RDbG9ja0VudHJ5LgoKMjAxMC0wNy0wNSAxODo0NTo1NSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5oOgoJICBjbG9jazogZG9jdW1lbnQgdGhhdCBHc3RDbG9ja0VudHJ5IHNob3VsZCBiZSB0cmVhdGVkIGFzIGFuYSBvcGFxdWUgc3RydWN0dXJlLgoKMjAxMC0wNy0wNSAxMzoxMDowOSArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogdXNlIHRoZSBuZXcgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbC4KCSAgVXNlIHRoZSBuZXcgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbCBpbiBnc3RfY2xvY2tfc2V0X21hc3Rlci4KCSAgQWxzbyBhZGQgc29tZSB0ZXN0cy4KCjIwMTAtMDctMDUgMTM6MDE6NTMgKzAyMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRlY2luYUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgY2xvY2s6IGZpeCByZWZjb3VudGluZyBidWcgaW4gZ3N0X2Nsb2NrX3NldF9tYXN0ZXIuCgkgIE1ha2Ugc3VyZSBjbG9jay0+Y2xvY2tpZCBpcyB1bnJlZmZlZCBiZWZvcmUgY2xvY2stPm1hc3Rlci4KCSAgZ3N0X2Nsb2NrX2lkX3Vuc2NoZWR1bGUgKGNsb2NrLT5jbG9ja2lkKSB0cmllcyB0byBhY2Nlc3MgY2xvY2stPm1hc3Rlci4gSWYKCSAgY2xvY2stPm1hc3RlciBpcyB1bnJlZmZlZCBiZWZvcmUgYW5kIGl0J3MgZGVhbGxvY2F0ZWQsIF91bnNjaGVkdWxlIGNvdWxkIGFjY2VzcwoJICBmcmVlJ2QgbWVtb3J5LgoKMjAxMC0wNy0wNSAxMjo1Njo0MCArMDIwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8uZGVjaW5hQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSAgY2xvY2s6IGFkZCBnc3RfY2xvY2tfaWRfd2FpdF9hc3luY19mdWxsLgoJICBBZGQgZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmNfZnVsbC4gSXQncyB0aGUgc2FtZSBhcyBnc3RfY2xvY2tfaWRfd2FpdF9hc3luYyBidXQKCSAgYWxsb3dzIHBhc3NpbmcgYSBHRGVzdHJveU5vdGlmeSB0byBkZXN0cm95IHVzZXJfZGF0YS4KCjIwMTAtMDctMDUgMTc6NTA6MzMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGltcHJvdmUgdGhlIGFwaSBkb2NzIGZvciBuZXcgR3N0UGFkTGlua0NoZWNrcyBhbmQgaXRzIHVzZQoKMjAxMC0wNy0wNSAxMjoyMTo1MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvUkVBRE1FOgoJICBSRUFETUU6IHVwZGF0ZSBhZnRlciByZW1vdmFsIG9mICJvbGQiIGRpci4KCSAgUmVtb3ZlICJvbGQiIGFuZCBhZGQgYSBsaW5lIGFib3V0ICJleGFtcGxlcyIuCgoyMDEwLTA3LTA0IDE3OjM0OjMwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL1RPRE86CgkqIHRlc3RzL29sZC9leGFtcGxlcy9hcHByZWFkZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2FwcHJlYWRlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2FwcHJlYWRlci9hcHByZWFkZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2N1dHRlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvZXZlbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvZXZlbnRzL3NlZWsuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkMi9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQyL2hlbGxvd29ybGQyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9tYW51YWwvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC9leHRyYWN0LnBsOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9waW5ncG9uZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGluZ3BvbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9waW5ncG9uZy9waW5ncG9uZy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy9leHRyYWN0LnBsOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTIvcXVldWUyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9xdWV1ZTMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlMy9xdWV1ZTMuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlNC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWU0L01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWU0L3F1ZXVlNC5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvcmV0YWcuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvdGhyZWFkLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy90aHJlYWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy90aHJlYWQvdGhyZWFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9SdWxlczoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2FwcF9maXhhdGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2F1ZGlvc2NhbGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2NhcHMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2NhcHMuaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2NhcHNfc3RyaW5nczoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2NvbXBhdGliaWxpdHkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9lbnVtY2Fwcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZXJhdG9zdGhlbmVzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9maWx0ZXJjYXBzLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9maXhlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZnJhY3Rpb24tY29udmVydC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvZnJhY3Rpb24tbXVsdGlwbHktYW5kLXplcm8uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdDIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9yZW5lZ290aWF0ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc2V0cy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc2ltcGxpZnkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3N0cmluZy1jb252ZXJzaW9ucy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvc3RydWN0dXJlLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9zdWJ0cmFjdC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvdW5pb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL2NhdGVnb3J5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvY29tbWFuZGxpbmUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9nbG9iYWwuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9vdXRwdXQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGxvcGVuLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGxvcGVuL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2Rsb3Blbi9kbG9wZW5fZ3N0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGxvcGVuL2xvYWRnc3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL2dzdC1pbnNwZWN0LWNoZWNrLmluOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X3NpemUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL2NhY2hlMS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2luZGV4ZXJzL2luZGV4ZHVtcC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvcGFyc2UxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFyc2UvcGFyc2UyLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi9SRUFETUU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL2R5bmFtaWMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vbGlua2VkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL2xvYWRpbmcuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vcmVnaXN0cnkuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vc3RhdGljLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3N0YXRpYzIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wbHVnaW4vdGVzdHBsdWdpbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luMl9zLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW5fcy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvYmluLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL2VsZW1lbnRfcGFkLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvbWFpbmxvb3AuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9tZW0uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9tZW0uaDoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9vYmplY3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9wYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy9zY2hlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3JlZmNvdW50aW5nL3RocmVhZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9wYXJlbnQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy8xNTk1NjYuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzLzE1OTg1Mi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9xdWV1ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvc2lnbmFscy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3RocmVhZHMvc3RhdGljcmVjLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGYuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGcuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGguYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGkuYzoKCSAgUmVtb3ZlIG9sZCAwLjggdGVzdHMgYW5kIGV4YW1wbGVzIGZyb20gZ2l0IHRyZWUKCSAgRG9lc24ndCByZWFsbHkgbG9vayBsaWtlIGFueXRoaW5nJ3Mgd29ydGgga2VlcGluZy4KCjIwMTAtMDctMDMgMTY6Mzk6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVjazogc2tpcCBzaWxseSB0ZXN0IHRoYXQgc2VnZmF1bHRzIHdoZW4gaW4gYSBDS19GT1JLPW5vIGVudmlyb25tZW50CgkgIFNlZSAjNjIzNDY5LgoKMjAxMC0wNy0wMyAxNToxMzoxNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkgIGNoZWNrczogbWFrZSBmYWtlc3JjIGNoZWNrIHdvcmsgaW4gYSBDS19GT1JLPW5vIGVudmlyb25tZW50CgkgIFJlc2V0IGhhdmVfZW9zIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCB0ZXN0LgoJICBTZWUgIzYyMzQ2OS4KCjIwMTAtMDctMDMgMTQ6MDk6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICBjaGVja3M6IHJ1biB0ZXN0cyBjYWxsaW5nIGdzdF9kZWluaXQoKSBsYXN0IHNvIHRoaW5ncyB3b3JrIHdpdGggQ0tfRk9SSz1ubwoJICBCZWNhdXNlIGdzdF9pbml0KCkgd2lsbCBmYWlsIG9uY2UgZ3N0X2RlaW5pdCgpIGhhcyBiZWVuIGNhbGxlZC4KCSAgU2VlICM2MjM0NjkuCgoyMDEwLTA3LTAzIDE0OjA0OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGNoZWNrczogZG9uJ3QgYXNzdW1lIGVsZW1lbnQgZmFjdG9yeSBpcyBub3QgbG9hZGVkIHlldAoJICBJdCBtYXkgYWxyZWFkeSBiZSBsb2FkZWQgaWYgY2hlY2sgaXMgYmVpbmcgcnVuIHdpdGggQ0tfRk9SSz1uby4KCSAgU2VlICM2MjM0NjkuCgoyMDEwLTA3LTAxIDE5OjU4OjA5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIGRvY3M6IGZpeCBhIGNvdXBsZSBvZiB0eXBvcyBpbiB0aGUgbWFudWFsCgkgIFNwb3R0ZWQgYnkgQWxleGFuZGVyIFNhcHJ5a2luLgoJICBGaXhlcyAjNjIyMzc5LgoKMjAxMC0wNy0wMSAxNzo1NjozMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IE1ha2Ugc3VyZSBfbm9ybWFsaXplKCkgaXMgYXBwbGllZCBvbiBhbGwgc3RydWN0dXJlcy4KCSAgV2UgbmVlZCB0byB1c2UgZ3N0X2NhcHNfZ2V0X3NpemUoKSBpbiB0aGUgbG9vcCBjb3VudGVyIHNpbmNlIHNvbWUKCSAgc3RydWN0dXJlcyBjb3VsZCBiZSBhZGRlZCB3aGlsZSBpdGVyYXRpbmcuCgkgIEZpeGVzICM2MjMzMDEKCjIwMTAtMDYtMzAgMTM6MTY6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaGlnaGxldmVsLXhtbC54bWw6CgkgIGRvY3M6IHVwZGF0ZSAnWE1MIGluIEdTdHJlYW1lcicgc2VjdGlvbiBpbiBhcHBsaWNhdGlvbiBkZXZlbG9wZXIncyBtYW51YWwKCjIwMTAtMDYtMjkgMTg6NDg6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yOS4zIHByZS1yZWxlYXNlCgoyMDEwLTA2LTI1IDE5OjAzOjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGltcGxlbWVudCBhY2NlcHRjYXBzIGZ1bmN0aW9uCgkgIE91ciBhY2NlcHRjYXBzIGZ1bmN0aW9uIGNhbiBzaW1wbHkgZm9yd2FyZCB0aGUgcXVlcnkuCgoyMDEwLTA2LTI4IDE1OjI4OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBhdXRvbWFrZSByZXF1aXJlbWVudCB0byAxLjEwCgkgIEZvciBtYWludGFpbmFiaWxpdHkgcmVhc29ucyBhbmQgJChidWlsZGRpcikuCgkgIEZpeGVzICM2MjI5NDQuCgoyMDEwLTA2LTI4IDEzOjU2OjAwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgdG9vbHM6IG1lbnRpb24gLS1lb3Mtb24tc2h1dGRvd24gb24gZ3N0LWxhdW5jaCBtYW4gcGFnZQoKMjAxMC0wNi0yOCAxMDoyMDozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IERvbid0IHVzZSBHX0dOVUNfQ09OU1QgZm9yIHRoZSB1aW50NjQgc2NhbGluZyBmdW5jdGlvbnMKCSAgVGhleSBhcmUgYWN0dWFsbHkgKm5vdCogY29uc3QgZnVuY3Rpb25zIGJlY2F1c2Ugb24gYXJjaGl0ZWN0dXJlcwoJICB3aXRob3V0IGludDEyOCBpbnN0cnVjdGlvbnMgdGhlIHBhcmFtZXRlcnMgd2VyZSBjaGFuZ2VkLgoJICBnY2MgcmUtdXNlZCB0aGUgcGFyYW1ldGVycyBvbiB0aGUgc3RhY2sgZm9yIG11bHRpcGxlIGNhbGxzIHRob3VnaAoJICBhbmQgdGhlIGNoYW5nZWQgcGFyYW1ldGVycyB3ZXJlIHVzZWQgZm9yIHRoZSBzZWNvbmQgY2FsbCB0aGVuLgoJICBGaXhlcyBidWcgIzYyMzAwMy4KCjIwMTAtMDYtMjYgMTc6NDg6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI5LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDYtMjYgMTc6NDc6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAxMC0wNi0yNiAxMDoxNjozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSAgZXhhbXBsZXM6IHJlbW92ZSB4bWwgZXhhbXBsZSBidWlsZCBzeXN0ZW0gYml0cyBhbmQgcHVyZ2UgZnJvbSB0cmVlCgkgIEZpeGVzIG1ha2UgZGlzdGNoZWNrLgoKMjAxMC0wNi0yNiAwOTo1OTozMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0eG1sLmM6CgkgIHhtbDoga2VlcCBkdW1teSBnc3RfeG1sX2dldF90eXBlKCkgZnVuY3Rpb24gZm9yIGctaSBldmVuIGlmIHJlc3Qgb2YgR3N0WE1MIGlzIHJlbW92ZWQKCSAgQWRkIGEgbWluaW1hbCBnc3RfeG1sX2dldF90eXBlKCkgZnVuY3Rpb24sIHNvIHRoYXQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGRvZXNuJ3QKCSAgYnJlYWsgdGhlIGNvbXBpbGF0aW9uIGlmIHdlJ3JlIGNvbXBpbGluZyB3aXRoIEdTVF9SRU1PVkVfREVQUkVDQVRFRCBkZWZpbmVkIG9yCgkgIC0tZGlzYWJsZS1sb2Fkc2F2ZSBoYXZpbmcgYmVlbiBwYXNzZWQgdG8gY29uZmlndXJlLiBVbnRpbCBzb21lb25lIGZpZ3VyZXMgb3V0CgkgIGEgYmV0dGVyIHdheSBhdCBsZWFzdC4KCjIwMTAtMDYtMjYgMDE6MDE6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJICBEb24ndCBpbmNsdWRlIDxsaWJ4bWwvcGFyc2VyLmg+IGZyb20gcHVibGljIGhlYWRlcnMgaWYgR1NUX0RJU0FCTEVfREVQUkVDQVRFRCBpcyBkZWZpbmVkCgkgIFNpbmNlIGV2ZXJ5dGhpbmcgR3N0WE1MIHJlbGF0ZWQgaGFzIGJlZW4gZGVwcmVjYXRlZCwgd2UgY2FuIG5vdyBza2lwIHRoZQoJICBsaWJ4bWwgaW5jbHVkZXMgZnJvbSB0aGUgcHVibGljIGhlYWRlcnMgd2hlbiBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGlzCgkgIGRlZmluZWQuCgkgIFNlZSAjNDYzNDM1LgoKMjAxMC0wNi0yNiAwMDoxODoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJICBleGFtcGxlczogYWRkIG1pc3Npbmcgc3RkbGliLmggaW5jbHVkZSBpbiB0eXBlZmluZCBleGFtcGxlCgoyMDEwLTA2LTI1IDIxOjIzOjIyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkb3QtZHVtcDogdGVybWluYXRlIHRydW5jYXRlZCBzdHJpbmdzIGFuZCBlc2NhcGUgc3BlY2lhbCBjaGFycwoJICBGaXhlcyBzeW50YXggZXJyb3JzIGluIGdlbmVyYXRlZCBkb3QgZmlsZXMgZm9yIGNhcHMgd2l0aCBzdHJpbmdzLgoKMjAxMC0wNi0yNSAxODo1MjowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IG1vcmUgZG9jdW1lbnRhdGlvbiByZWdhcmRpbmcgdGhlIG5ldyBmbGFncwoKMjAxMC0wNi0yNSAxODoxODo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBtYWtlIHRoZSBOT1RISU5HIGxpbmsgY2hlY2sgZmxhZyBiZSAwCgkgIE1ha2UgdGhlIHBhZCBsaW5rIGNoZWNrIG9mIE5PVEhJTkcgYmUgMC4gVGhpcyB3YXkgd2UgaGF2ZSBhIGZsYWcgZm9yIGVhY2gKCSAgZmVhdHVyZSBhbmQgMCB3aGVuIG5vIGZsYWdzIGFyZSBzZXQuCgoyMDEwLTA2LTI1IDE4OjI0OjQ3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfcHBjMzIuaDoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3NwYXJjLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIHRlc3RzOiBSZW1vdmUgR3N0WE1MIHRlc3RzCgoyMDEwLTA2LTI1IDE4OjEzOjU3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvZ3N0eG1sLmg6CgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkqIHRvb2xzL01ha2VmaWxlLmFtOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdHhtbDogRGVwcmVjYXRlIEdzdFhtbCBhbmQgcmVsYXRlZCBmdW5jdGlvbnMKCSAgUGlwZWxpbmUgc2VyaWFsaXNhdGlvbiB0byBhbmQgZnJvbSBYTUwgaXMgaG9ycmlibHkgYnJva2VuIGZvciBhbGwKCSAgYnV0IHRoZSBtb3N0IHNpbXBsZSB1c2UgY2FzZXMsIGFuZCB3aWxsIGxpa2VseSBuZXZlciBiZSBmaXhlZC4KCSAgTWFrZSBzdXJlIGV2ZXJ5b25lIHBsYXlpbmcgYXJvdW5kIHdpdGggdGhlc2UgdG9vbHMgaXMgYXdhcmUgb2YKCSAgdGhpcywgdG8gYXZvaWQgZnJ1c3RyYXRpb24uIFNlZSBjb3VudGxlc3MgYnVnIHJlcG9ydHMgaW4gYnVnemlsbGEuCgkgIEZpeGVzIGJ1ZyAjNjIyNjg1LgoKMjAxMC0wNi0yNSAxODoxMTozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogRml4IGJ1aWxkIHdpdGggR1NUX1JFTU9WRV9ERVBSRUNBVEVECgoyMDEwLTA2LTI0IDEyOjE5OjIwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzbmVnby5jOgoJICBiZW5jaG1hcmtzOiBVc2UgZ3N0X2VsZW1lbnRfbGlua19wYWRzX2Z1bGwKCSAgV2UncmUgdGVzdGluZyBjYXBzIG5lZ290aWF0aW9uLCBub3QgcGFkIGxpbmtpbmcuIEJyaW5ncyB0aGUgc3RhcnR1cAoJICB0aW1lIGRvd24gMTAwIGZvbGQuCgoyMDEwLTA2LTI0IDE3OjUzOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXhtbGxhdW5jaC4xLmluOgoJICB0b29sczogZGVwcmVjYXRlIGdzdC14bWxsYXVuY2ggYW5kIHByaW50IGZhdCB3YXJuaW5nIGlmIHNvbWVvbmUgdHJpZXMgdG8gdXNlIGl0CgkgIFBpcGVsaW5lIHNlcmlhbGlzYXRpb24gdG8gYW5kIGZyb20gWE1MIGlzIGhvcnJpYmx5IGJyb2tlbiBmb3IgYWxsCgkgIGJ1dCB0aGUgbW9zdCBzaW1wbGUgdXNlIGNhc2VzLCBhbmQgd2lsbCBsaWtlbHkgbmV2ZXIgYmUgZml4ZWQuCgkgIE1ha2Ugc3VyZSBldmVyeW9uZSBwbGF5aW5nIGFyb3VuZCB3aXRoIHRoZXNlIHRvb2xzIGlzIGF3YXJlIG9mCgkgIHRoaXMsIHRvIGF2b2lkIGZydXN0cmF0aW9uLiBTZWUgY291bnRsZXNzIGJ1ZyByZXBvcnRzIGluIGJ1Z3ppbGxhLgoKMjAxMC0wNi0yNCAxNzoyMjoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogcmVuYW1lIG5ldyAtLW5vLXBsYXkgY29tbWFuZCBsaW5lIG9wdGlvbiB0byAtLW5vLXNpZ3Vzci1oYW5kbGVyCgkgIC0tbm8tcGxheSBzZWVtcyBhIGJpdCBjb25mdXNpbmcuCgkgIEZpeGVzICM2MjE4NjcuCgoyMDEwLTA2LTI0IDE1OjA3OjExICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDczZmY5M2EgdG8gYTUxOTU3MQoKMjAxMC0wNi0yMyAxMTowMjoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSAgYmluYXJ5cmVnaXN0cnk6IGlnbm9yZSB0aGUgcGx1Z2luIGNhY2hlIGlmIHRoZSBmaWx0ZXIgZW52aXJvbm1lbnQgaGFzIGNoYW5nZWQKCSAgTWFrZSBzdXJlIHRoYXQgd2UgcHJvcGVybHkgdXBkYXRlIHRoZSByZWdpc3RyeSBhbmQgdGhlIGNhY2hlIGZpbGUgd2hlbmV2ZXIKCSAgdGhlIGZpbHRlciBlbnZpcm9ubWVudCBjaGFuZ2VzIG9yIHRoZXJlJ3Mgbm8gbW9yZSBmaWx0ZXIgc2V0LgoKMjAxMC0wNS0yNyAxMjozNjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW5sb2FkaW5nOiBhZGQgc3VwcG9ydCBmb3Igd2hpdGVsaXN0aW5nIGJhc2VkIG9uIHBsdWdpbiBvciBzb3VyY2UgbW9kdWxlIG5hbWUgYW5kIHBhdGgKCSAgVGhpcyBmZWF0dXJlIGlzIHByaW1hcmlseSBpbnRlbmRlZCBmb3IgdXNlIGluIHBsdWdpbiBtb2R1bGVzJyB1bml0IHRlc3RzLgoJICBDb25zaWRlciB0aGUgZm9sbG93aW5nIHNpdHVhdGlvbjogZ3N0LXBsdWdpbnMtZ29vZCBpcyBidWlsdCBhZ2FpbnN0IGFuCgkgIGluc3RhbGxlZCBHU3RyZWFtZXIgY29yZS4gQW4gb2xkZXIgdmVyc2lvbiBvZiBnc3QtcGx1Z2lucy1nb29kIGlzIGFsc28KCSAgaW5zdGFsbGVkIGluIHRoYXQgcHJlZml4LCBhbG9uZyB3aXRoIHJhbmRvbSBvdGhlciBwbHVnaW4gbW9kdWxlcy4gTm93LAoJICB3aGVuIGRvaW5nICdtYWtlIGNoZWNrJyBpbiB0aGUganVzdC1idWlsdCBnc3QtcGx1Z2lucy1nb29kIHRyZWUsIHdlCgkgIHdhbnQgdG8gb25seSBsb2FkIHBsdWdpbnMgZnJvbSBHU3RyZWFtZXIgY29yZSwgZ3N0LXBsdWdpbnMtYmFzZSwgYW5kCgkgIGdzdC1wbHVnaW5zLWdvb2QsIGJ1dCBub3QgcmFuZG9tIG90aGVyIG1vZHVsZXMgKHdlIGRvbid0IHdhbnQgYW55IHVuaXQKCSAgdGVzdHMgdG8gZmFpbCBqdXN0IGJlY2F1c2Ugc29tZSBtb2R1bGUgaW4gZ3N0LXBsdWdpbnMtYmFkIGhhcyBhIGJyb2tlbgoJICBwbHVnaW5faW5pdCwgZm9yIGV4YW1wbGUpLiBBbHNvLCB3ZSB3YW50IHRvIG9ubHkgbG9hZCBnc3QtcGx1Z2lucy1nb29kCgkgIG1vZHVsZXMgZnJvbSB0aGUgbG9jYWxseS1idWlsdCBzb3VyY2UgdHJlZSwgYnV0IG5vdCBhbnkgb2YgdGhlIG9sZGVyCgkgIGdzdC1wbHVnaW5zLWdvb2QgbW9kdWxlcyBpbnN0YWxsZWQuIFRoaXMgaXMgdXN1YWxseSBhc3N1cmVkIGJ5IGxvYWRpbmcKCSAgdGhlIG9uZXMgaW4gdGhlIHNvdXJjZSB0cmVlIGZpcnN0IChieSBhZGRpbmcgdGhhdCBwYXRoIGZpcnN0IHRvIHRoZQoJICByaWdodCBlbnZpcm9ubWVudCB2YXJpYWJsZXMpLCBidXQgaXQgZ2V0cyB0cmlja3kgd2hlbiBwbHVnaW5zIGFyZQoJICBtb3ZlZCwgcmVtb3ZlZCwgbWVyZ2VkLCBvciByZW5hbWVkLCBvciB0aGUgcGx1Z2luIGZpbGVuYW1lIGNoYW5nZXMuCgkgIE5vdGUgdGhhdCAnbWFrZSBjaGVjaycgc2hvdWxkIHJlYWxseSB3b3JrIHJpZ2h0IHdpdGhvdXQgZG9pbmcKCSAgJ21ha2UgaW5zdGFsbCcgb3IgdW5pbnN0YWxsaW5nIHRoZSBvbGQgZ3N0LXBsdWdpbnMtZ29vZCBwYWNrYWdlIChvcgoJICBhbnkgb3RoZXIgZ3N0LXBsdWdpbnMtZm9vIHBhY2thZ2UpIGZpcnN0LgoJICBFbnRlciBHU1RfUExVR0lOX0xPQURJTkdfV0hJVEVMSVNULiBUaGlzIGVudmlyb25tZW50IHZhcmlhYmxlIG1heQoJICBjb250YWluIHNvdXJjZS1wYWNrYWdlQHBhdGgtcHJlZml4IHBhaXJzIHNlcGFyYXRlZCBieSB0aGUgcGxhdGZvcm0KCSAgc2VhcmNoIHBhdGggc2VwYXJhdG9yIChHX1NFQVJDSFBBVEhfU0VQQVJBVE9SX1MpLiBUaGUgc291cmNlIHBhY2thZ2UKCSAgYW5kIHBhdGggcHJlZml4IGFyZSBzZXBhcmF0ZWQgYnkgdGhlICdAJyBjaGFyYWN0ZXIuIFRoZSBwYXRoIHByZWZpeCBpcwoJICBlbnRpcmVseSBvcHRpb25hbCwgYXMgaXMgdGhlICdAJyBzZXBhcmF0b3IgaWYgbm8gcGF0aCBpcyBnaXZlbi4KCSAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBmaWx0ZXIgYmFzZWQgb24gcGx1Z2luIG5hbWVzIGluc3RlYWQgb2YgdGhlIG5hbWUKCSAgb2YgdGhlIHNvdXJjZS1wYWNrYWdlIGJ5IHNwZWNpZnlpbmcgb25lIG9yIG1vcmUgcGx1Z2luIG5hbWVzIHNlcGFyYXRlZAoJICBieSBjb21tYXMgYmVmb3JlIHRoZSBvcHRpb25hbCBwYXRoIHByZWZpeC4KCSAgSW4gc2hvcnQsIHRoZSBmb2xsb3dpbmcgbWF0Y2ggcGF0dGVybnMgYXJlIHBvc3NpYmxlOgoJICBwbHVnaW4xLHBsdWdpbjJAcGF0aHByZWZpeCBvcgoJICBwbHVnaW4xLHBsdWdpbjJAKiBvciBqdXN0CgkgIHBsdWdpbjEscGx1Z2luMiBvcgoJICBzb3VyY2UtcGFja2FnZUBwYXRocHJlZml4IG9yCgkgIHNvdXJjZS1wYWNrYWdlQCogb3IganVzdAoJICBzb3VyY2UtcGFja2FnZQoJICBTbyBmb3Igb3VyIGdzdC1wbHVnaW5zLWdvb2QgdW5pdCB0ZXN0IGV4YW1wbGUgYWJvdmUsIHdlICB3b3VsZCBzZXQgdGhlCgkgIGVudmlyb25tZW50IHZhcmlhYmxlIG9uICpuaXggdG8gc29tZXRoaW5nIGxpa2UgdGhpcyAod2lsbCBsaWtlbHkgYmUgYQoJICByZWxhdGl2ZSBwYXRoIGluIHByYWN0aWNlKToKCSAgZ3N0cmVhbWVyOmdzdC1wbHVnaW5zLWJhc2U6Z3N0LXBsdWdpbnMtZ29vZEAvcGF0aC90by9zcmMvZ3N0LXBsdWdpbnMtZ29vZAoJICBGaXhlcyAjNjE5ODE1IGFuZCAjNjE5NzE3LgoKMjAxMC0wNi0yMyAxNzoyNDowNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnc3RnaG9zdHBhZDogV2UgZG9uJ3QgbmVlZCBhbnkgY2hlY2tzIHdoZW4gbGlua2luZyB0YXJnZXQgcGFkCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI1MDQKCjIwMTAtMDYtMjMgMTc6MDA6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R1dGlsczogTmV3IGdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsIG1ldGhvZAoJICBMaW5rcyB0aGUgZWxlbWVudHMgd2l0aCB0aGUgc3BlY2lmaWVkIHBhZCBsaW5raW5nIGNoZWNrcy4KCSAgQVBJOmdzdF9lbGVtZW50X2xpbmtfcGFkc19mdWxsCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI1MDQKCjIwMTAtMDYtMjMgMTY6NDU6MTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0UGFkOiBBZGQgbmV3IHBhZCBsaW5raW5nIG1ldGhvZCB3aXRoIGNvbmZpZ3VyYWJsZSBjaGVja3MuCgkgIFRvIGJlIHVzZWQgZm9yIGNhc2VzIHdoZXJlIHdlIGRvbid0IG5lZWQgYWxsIGNoZWNrcyB0byBiZSB2YWxpZGF0ZWQuCgkgIEFQSTogZ3N0X3BhZF9saW5rX2Z1bGwKCSAgQVBJOiBHc3RQYWRMaW5rQ2hlY2sKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjUwNAoKMjAxMC0wNi0xNSAxODoyNjowMSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWc6IEFkZHMgR1NUX1RBR19JTUFHRV9PUklFTlRBVElPTiB0YWcKCSAgQWRkcyBhIG5ldyB0YWcgdG8gaW5mb3JtIGFib3V0IHRoZSBpbWFnZSBvcmllbnRhdGlvbiBhbmQgaG93CgkgIHRvIHJvdGF0ZSBhbmQgZmxpcCBpdCBiZWZvcmUgZGlzcGxheS4KCSAgTm90ZSB0aGF0IHRoaXMgdGFnIGlzIGEgc3RyaW5nIHdpdGggYSBwcmVkZWZpbmVkIHNldCBvZgoJICBwb3NzaWJsZSB2YWx1ZXMuCgkgIEFQSTogR1NUX1RBR19JTUFHRV9PUklFTlRBVElPTgoJICBGaXhlcyAjNjE5NTA4CgoyMDEwLTA2LTIyIDE4OjUzOjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBnc3RvYmplY3Q6IGRlcHJlY2F0ZSBnc3Rfb2JqZWN0X3tzZXR8Z2V0fV9uYW1lX3ByZWZpeCgpCgkgIFRoZSBuYW1lIHByZWZpeCBzdHVmZiBoYXMgbmV2ZXIgYmVlbiB1c2VkIGZvciBhbnl0aGluZyBhbmQgaXQgZG9lc24ndAoJICBsb29rIGxpa2Ugd2UnbGwgZXZlciB3YW50IHRvIHVzZSBpdCBmb3IgYW55dGhpbmcuCgkgIEZpeGVzICM2MjEwMDYuCgoyMDEwLTA2LTIyIDEwOjIwOjUzIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9ucyBmb3IgR3N0UGFkSW50TGlua0Z1bmN0aW9uCgkgIEZpeGVzIGJ1aWxkIHdpdGggbGF0ZXN0IGdvYmplY3QtaW50cm9zcGVjdGlvbiBmcm9tIGdpdC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjAyNQoKMjAxMC0wNi0yMSAxMTo0MTo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogZml4IG1lcmdpbmcgb2YgcmFuZ2VzCgkgIFdoZW4gd2UgbWVyZ2UgdHdvIHJhbmdlcywgZG9uJ3QgdXBkYXRhIHRoZSBjdXJyZW50IHJhbmdlIHdyaXRpbmdfcG9zIHdpdGgKCSAgd2hlcmVldmVyIHdlIHdlcmUgd3JpdGluZyBlYXJsaWVyIGluIHRoZSBtZXJnZWQgcmFuZ2UuICBTcG90dGVkIGJ5IGJpbGJvZWQuCgoyMDEwLTA2LTE5IDExOjE5OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogYWxzbyBza2lwIC5kZXBzIGRpcnMgd2hlbiBzY2FubmluZyBmb3IgcGx1Z2lucwoJICBObyBuZWVkIHRvIGRlc2NlbmQgaW50byAuZGVwcyBkaXJzIGluIHVuaW5zdGFsbGVkIHNldHVwcywgd2Uga25vdwoJICB0aGVzZSBkb24ndCBjb250YWluIGFueSBwbHVnaW5zLgoKMjAxMC0wNi0xNyAxMTozOTowNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdGFnbGlzdDogYWRkIGdzdF90YWdfbGlzdF9wZWVrX3N0cmluZ19pbmRleCB0byBhdm9pZCBhIGNvcHkKCSAgQWRkcyBhIHZhcmlhdGlvbiBvZiB0aGUgX2dldF9zdHJpbmdfaW5kZXggZnVuY3Rpb24gdGhhdCBkb2Vzbid0IGNvcHkKCSAgdGhlIHN0cmluZy4KCSAgQVBJOiBnc3RfdGFnX2xpc3RfcGVla19zdHJpbmdfaW5kZXgKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTg5NgoKMjAxMC0wNi0xOCAxMjowMDo1MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogbWFrZSBzdXJlIGJ1ZmZlcnMnIG1ldGFkYXRhIGlzIHdyaXRhYmxlIGJlZm9yZSBzZXR0aW5nIGNhcHMgb24gdGhlbQoJICBGaXhlcyB3YXJuaW5ncyB3aGVuIHVzaW5nIHBsYXliaW4yIHdpdGggZHZiOi8vIHN0cmVhbXMsIHdoZXJlIHR5cGVmaW5kCgkgIGNvbWVzIGFmdGVyIG1wZWd0c3BhcnNlLgoKMjAxMC0wNi0xNyAxNTo1Mjo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSAgZG9jczogdXBkYXRlIGludHJvc3BlY3RlZCBwbHVnaW4gZG9jcyBmb3IgZ3N0ZG9jLXNjYW5vYmogY2hhbmdlcwoJICBVcGRhdGUgY29tbW9uIGZvciBsYXRlc3QgZ3N0ZG9jLXNjYW5vYmogYW5kIGluc3BlY3QgeG1sIGZpbGVzIGZvcgoJICBlc2NhcGluZyBhbmQgcGFkIHRlbXBsYXRlIG9yZGVyIGNoYW5nZXMuCgoyMDEwLTA2LTE3IDEzOjE5OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEluaXRpYWxpemUgaml0dGVyIHRvIHByZXZlbnQgcHJpbnRpbmcgYW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZSBpZiB3YWl0aW5nIGZvciB0aGUgY2xvY2sgZmFpbGVkCgoyMDEwLTA2LTE3IDEwOjM0OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDYtMTcgMDk6MzM6NDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgbWFudWFsOiBmaXggYW5vdGhlciB0eXBvIGFuZCBzb21lIGluYWNjdXJhY2llcwoJICBGaXggYSB3cm9uZyBzdGF0ZW1lbnQgYW5kIGZsZXNoIG91dCBzZWN0aW9uIG9uIG1lc3NhZ2VzIGFuZCBxdWVyaWVzCgkgIGEgYml0LgoKMjAxMC0wNi0xNyAwOTowNTo1OCArMDIwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIG1hbnVhbDogRml4IGFub3RoZXIgdHlwbwoKMjAxMC0wNi0xNyAwOTowNToyOCArMDIwMCAgQWxleGFuZGVyIFNhcHJ5a2luIDx4ZWxmaXVtQGdtYWlsLmNvbT4KCgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIG1hbnVhbDogRml4IHR5cG8KCjIwMTAtMDYtMTYgMTM6MTE6MDYgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBBZGQgYW4gYWxsb3ctbm9uZSBhbm5vdGF0aW9uCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjE3NzMKCjIwMTAtMDYtMTYgMTM6MTA6MjYgLTAzMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgbWluaW9iamVjdDogQWRkIGludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMKCSAgVGhlc2UgYXJlIHJlcXVpcmVkIHRvIGtub3cgaG93IHRvIHVucmVmL3JlZiBhbmQKCSAgY29udmVydCB0by9mcm9tIGEgR1ZhbHVlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjEwOjEzIC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBldmVudDogQWRkIG91dCBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjEwOjA2IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBxdWVyeTogQWRkIG91dCBhbm5vdGF0aW9ucwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNzczCgoyMDEwLTA2LTE2IDEzOjA5OjU3IC0wMzAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IEFkZCBvdXQgYW5ub3RhdGlvbnMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTc3MwoKMjAxMC0wNi0xNiAxMzowMDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogbWFrZSBzeW5jIHByb3BlcnR5IHdvcmsgY29ycmVjdGx5CgkgIERvbid0IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGdldF90aW1lcyB2bWV0aG9kIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgc3luYwoJICBwcm9wZXJ0eS4KCSAgU2V0IHRoZSBkZWZhdWx0IHN5bmMgcHJvcGVydHkgdG8gRkFMU0UuIEl0IHVzZWQgdG8gYmUgc2V0IHRvIFRSVUUgYnV0IGJlY2F1c2UKCSAgdGhlIGdldF90aW1lcyB3YXMgTlVMTCwgaXQgYWx3YXlzIGJlaGF2ZWQgbGlrZSBGQUxTRS4KCSAgRml4ZXMgIzYyMTUzMAoKMjAxMC0wNi0xNSAxODo0ODo1MyArMDIwMCAgQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdhaWduYXJkQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGVsZW1lbnQ6IEltcHJvdmUgZ3N0X2VsZW1lbnRfZ2V0X25hbWUoKSBkb2NzCgkgIEZpeGVzIGJ1ZyAjNjIxNjYwLgoKMjAxMC0wNi0xNSAxNjo0OTowNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTMzOWNjYyB0byAzNTYxN2MyCgoyMDEwLTA2LTE1IDE2OjUzOjM1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDVhZGIxY2EgdG8gOTMzOWNjYwoKMjAxMC0wNi0xNSAxNjozNDozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1N2M4OWI3IHRvIDVhZGIxY2EKCjIwMTAtMDYtMTUgMTU6MzE6MTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYzgwNDk4OCB0byA1N2M4OWI3CgoyMDEwLTA2LTE1IDExOjQ4OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBSZXZlcnQgIkdzdFBhZDogQWRkIEdTVF9QQURfTkVHT1RJQUJMRSBHc3RQYWRGbGFnIgoJICBUaGlzIHJldmVydHMgY29tbWl0IGRjMzhlNzVkODhiZDg5MjE4OTU4MjFmN2FmZWQwMWNhYjMwZTQ2YzkuCgkgIGJvb20KCjIwMTAtMDYtMTUgMTE6NDg6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICBSZXZlcnQgImdzdHBhZDogUmV0dXJuIHBhZCB0ZW1wbGF0ZSBpbiBnZXRfY2FwcyBpZiBwYWQgaXMgbm90IG5lZ290aWFibGUiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNzQ2MDMyMWE2MDA0Mzg5NjZkNzE1MmFiMmI0MzE4YmU0OGVhZGNlMC4KCSAgY3JhY2sKCjIwMTAtMDYtMTUgMTE6NDg6MDcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIFJldmVydCAicGFkOiBmaXggY29tbWVudCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4ZTkyY2I0YTdkNTZjZGZhNDY3NDMxNWM2NGI1OGMxYjFiOWQ4MjA4LgoJICB3aGF0ZXZlci4uLgoKMjAxMC0wNi0xNSAxMTo0Nzo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIFJldmVydCAiZWxlbWVudDogb25seSBjbGVhciBuZWdvdGlhYmxlIHdoZW4gZ29pbmcgdG8gTlVMTCIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA4ZjVlYzFmNzM3YzNiMzc1MzhiMjMwN2FlZjE2MGQ5ZDIxZjFjNDIyLgoJICBibGVlZWVoCgoyMDEwLTA2LTE1IDEwOjQ2OjA4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGFkZCBkdW1teSBUUkFDRSBsb2cgbGV2ZWwgbWFjcm9zIGZvciB3aGVuIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoJICBGb3Jnb3QgdGhvc2Ugd2hlbiBhZGRpbmcgdGhlIG9yaWdpbmFsIEFQSSwganVzdCBsaWtlIHRoZSBBUEkgbWFya2VycwoJICBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgkgIEFQSTogR1NUX1RSQUNFCgkgIEFQSTogR1NUX1RSQUNFX09CSkVDVAoJICBBUEk6IEdTVF9DQVRfVFJBQ0UKCSAgQVBJOiBHU1RfQ0FUX1RSQUNFX09CSkVDVAoJICBBUEk6IEdTVF9MRVZFTF9UUkFDRQoJICBGaXhlcyBjb21waWxhdGlvbiB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcKCjIwMTAtMDYtMTUgMDE6MTU6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBwcmludCBtb3JlIGVycm9ycyB0byBzdGRlcnIgYW5kIHN1cHByZXNzIG1vcmUgb3V0cHV0IGluIHF1aWV0IG1vZGUKCSAgSWYgLS1xdWlldCBpcyBnaXZlbiwgZG9uJ3QgcHJpbnQgYW55dGhpbmcgYnV0IGVycm9ycy4gQWxzbywgbWFrZQoJICBzdXJlIGVycm9ycyBhcmUgYWx3YXlzIHByaW50ZWQgdG8gc3RkZXJyIGFuZCBub3QgdG8gc3Rkb3V0LgoJICBGaXhlcyAjNjIxNTk1LgoKMjAxMC0wNi0xNCAxODowNzoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IG9ubHkgY2xlYXIgbmVnb3RpYWJsZSB3aGVuIGdvaW5nIHRvIE5VTEwKCSAgRG9uJ3QgY2xlYXIgdGhlIG5lZ290aWFibGUgZmxhZyB3aGVuIGdvaW5nIHRvIFJFQURZIGJlY2F1c2UgdGhlbiBpdCB3aWxsIG5ldmVyCgkgIGJlIHNldCB0byBUUlVFIGFnYWluLgoKMjAxMC0wNi0xNCAxNzozMzoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkOiBmaXggY29tbWVudAoKMjAxMC0wNS0xNyAxNTowNjozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdzdHBhZDogUmV0dXJuIHBhZCB0ZW1wbGF0ZSBpbiBnZXRfY2FwcyBpZiBwYWQgaXMgbm90IG5lZ290aWFibGUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxODY0NAoKMjAxMC0wNS0xNyAxNTowNDo0OCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0UGFkOiBBZGQgR1NUX1BBRF9ORUdPVElBQkxFIEdzdFBhZEZsYWcKCSAgQSBwYWQgaXMgJ25lZ290aWFibGUnIHdoZW4gaXRzIGNvbnRhaW5lciBlbGVtZW50IGlzIGluIGEgc3RhdGUgZ3JlYXRlcgoJICB0aGFuIEdTVF9TVEFURV9SRUFEWQoJICBBUEk6Z3N0X3BhZF9pc19uZWdvdGlhYmxlCgkgIEFQSTpnc3RfcGFkX3NldF9uZWdvdGlhYmxlCgkgIEFQSTpHU1RfUEFEX05FR09USUFCTEUKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxODY0NAoKMjAxMC0wNi0xNCAxNjo1MTozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgZmFrZXNpbms6IHVzZSBtZXRob2QgdG8gc2V0IHN5bmMgcHJvcGVydHkKCSAgVXNlIHRoZSBiYXNlc2luayBtZXRob2QgdG8gY29uZmlndXJlIHRoZSBzeW5jIHByb3BlcnR5IGluc3RlYWQgb2YgcG9raW5nIHRoZQoJICBwYXJlbnQgc3RydWN0dXJlLgoKMjAxMC0wNi0xNCAxNjo1MDo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IHVzZSB0aGUgZGVmYXVsdCBnZXRfdGltZXMgZnVuY3Rpb24KCSAgVXNlIHRoZSBkZWZhdWx0IGdldF90aW1lcyBmdW5jdGlvbiBvZiBiYXNlc2luayBzbyB0aGF0IHdlIGhvbm91ciB0aGUgc3luYwoJICBwcm9wZXJ0eSBpbnN0ZWFkIG9mIG5ldmVyIHN5bmNocm9uaXppbmcgdG8gdGhlIGNsb2NrLgoJICBGaXhlcyAjNjIxNTMwCgoyMDEwLTA2LTE0IDE2OjIwOjE4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlZXZhbHVhdGUgcHJveHlfYWxsb2Mgd2hlbiByZWNvbmZpZ3VyZWQKCSAgV2hlbiB3ZSByZWNvbmZpZ3VyZSB0aGUgdHJhbnNmb3JtIGVsZW1lbnQsIG1ha2Ugc3VyZSB3ZSByZWV2YWx1YXRlIHRoZSBwcm94eWluZwoJICBvZiBidWZmZXJfYWxsb2MgdGhlIG5leHQgdGltZSBhcm91bmQuCgkgIEZpeGVzICM2MjEzMzIKCjIwMTAtMDYtMTQgMTU6Mzk6NTcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2NhcHNsaXN0Lmg6CgkgIGNhcHM6IERvbid0IHVzZSBpbnZhbGlkIGZyYWN0aW9uIHJhbmdlIGluIHRoZSB1bml0IHRlc3QKCjIwMTAtMDYtMTQgMTU6MzA6MDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBBZGQgc29tZSBtb3JlIGFzc2VydGlvbnMgYW5kIGNoZWNrcyBmb3IgdmFsaWQgaW5wdXQgcGFyYW1ldGVycwoKMjAxMC0wNS0yNyAxNToxMzoxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogb3B0aW1pemUgcHJvZ3Jlc3NpdmUgbWFza2VkX3NjYW4KCSAgUmV0YWluIHRoZSBsYXN0IHNjYW5uZWQgYnVmZmVyIGVudHJ5IGFuZCBvZmZzZXQsIHNvIHdlIGNhbiByZXN1bWUgYnVmZmVyCgkgIHNjYW5uaW5nIHRoZXJlIGluIGNhc2Ugb2YgYSB0eXBpY2FsIHByb2dyZXNzaXZlIHNjYW4uCgkgIEFsc28gcG90ZW50aWFsbHkgb3B0aW1pemUgX2NvcHkgc3Vic2VxdWVudGx5IG9jY3VycmluZyBpbiB0aGF0IGFyZWEuCgoyMDEwLTA1LTI3IDEyOjE1OjIyICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGFwdGVyOiBhZGQgZXh0ZW5kZWQgbWFza2VkX3NjYW5fdWludDMyX3BlZWsgdGhhdCBhbHNvIHByb3ZpZGVzIG1hdGNoaW5nIHZhbHVlCgkgIEFsc28gYWRkIHRvIC5kZWYgYW5kIGRvY3MuCgkgIEZpeGVzICM2MTk4MjguCgkgIEFQSTogZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyX3BlZWsKCjIwMTAtMDYtMTQgMTM6Mzg6NDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgd2luMzI6IGZpeCAuZGVmIGZpbGUKCjIwMTAtMDYtMTQgMTI6MjU6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogYWRkIFNpbmNlOiB0YWcgZm9yIG5ldyBnc3RfY2Fwc19zdGVhbF9zdHJ1Y3R1cmUKCjIwMTAtMDYtMTEgMTU6MzY6MTAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZG9jczogZml4IGV4YW1wbGUgdG8gdXNlIGEgY2F0ZWdvcnkgbmFtZSB0aGF0IGFjdHVhbGx5IGV4aXN0cwoKMjAxMC0wNi0xNCAxMTozOTo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3RjYXBzOiBOZXcgZ3N0X2NhcHNfc3RlYWxfc3RydWN0dXJlKCkgbWV0aG9kCgkgIFRoaXMgYWxsb3dzIHJlbW92aW5nIHN0cnVjdHVyZXMgZnJvbSBjYXBzIHdpdGhvdXQgdGhlbSBiZWluZyBmcmVlZC4gSGVscGZ1bCB3aGVuCgkgIHBsdWdpbnMgbmVlZCB0byBtb3ZlIGFyb3VuZCBzdHJ1Y3R1cmVzIHdpdGhvdXQgaGF2aW5nIHRvIGRvIGFuIGV4cGVuc2l2ZSBzdHJ1Y3R1cmUKCSAgY29weS4KCSAgQVBJOmdzdF9jYXBzX3N0ZWFsX3N0cnVjdHVyZQoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIxNTI3CgoyMDEwLTA2LTE0IDEzOjEwOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBEb24ndCBhZGQgR19USFJFQURTX01BTkRBVE9SWSB0byBHU1RfQUxMX0NGTEFHUwoJICBJdCdzIGFscmVhZHkgaW5jbHVkZWQgaW4gR0xJQl9FWFRSQV9DRkxBR1MKCjIwMTAtMDYtMTQgMTM6MDc6MzMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHVzZSBHTElCX0VYVFJBX0NGTEFHUwoKMjAxMC0wNi0xNCAxMzowMjowOCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDdhMGZkZjUgdG8gYzgwNDk4OAoKMjAxMC0wNi0xNCAxMzowMTo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBmaXggcHJpbnRmIGZvcm1hdAoKMjAxMC0wNi0xNCAxMjozOTo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBpbXBsZW1lbnQgY3VzdG9tIGFjY2VwdF9jYXBzIG1ldGhvZAoJICBJbXBsZW1lbnQgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbi4gV2UgY2FuIHNpbXBseSBjaGVjayBpZiB0aGVyZSBpcyBhbgoJICBpbnRlcnNlY3Rpb24gd2l0aCB0aGUgbmV3IGNhcHMuIFRoaXMgbWFrZXMgdGhlIGFjY2VwdCBjYXBzIGZ1bmN0aW9uIG11Y2ggZmFzdGVyLgoJICBTZWUgIzYyMTE5MAoKMjAxMC0wNi0xNCAxMjozNjo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYmFzZXRyYW5zZm9ybTogYWRkIGFjY2VwdF9jYXBzIHZtZXRob2QKCSAgQWxsb3cgc3ViY2xhc3NlcyB0byBvdmVycmlkZSB0aGUgYWNjZXB0Y2FwcyBmdW5jdGlvbiBiZWNhdXNlIGluIHNvbWUgY2FzZXMgYQoJICBjdXN0b20gaW1wbGVtZW50YXRpb24gY2FuIGJlIG11Y2ggbXVjaCBmYXN0ZXIgdGhhbiB0aGUgZGVmYXVsdCBvbmUuCgkgIFNlZSAjNjIxMTkwCgoyMDEwLTA2LTE0IDExOjMwOjIwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNmRhM2JhYiB0byA3YTBmZGY1CgoyMDEwLTA2LTExIDE4OjQ5OjAyIC0wNDAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogUmVtb3ZlIHRyYW5zZm9ybV9zaXplCgkgIEdzdEJhc2VUcmFuc2Zvcm0gbm93IGFzc3VtZXMgdGhhdCB0aGUgc2l6ZSBpcyB0aGUgc2FtZSBpZiB0aGVyZSBpcyBub3QKCSAgdHJhbnNmb3JtX3NpemUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjEzMzQKCjIwMTAtMDYtMTEgMTg6NDY6MzAgLTA0MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBBc3N1bWUgc2l6ZSBpcyB0aGUgc2FtZSBpZiBubyB0cmFuc2Zvcm1fc2l6ZS9nZXRfdW5pdF9zaXplCgkgIFN1YmNsYXNzZXMgdGhhdCBkb24ndCBpbXBsZW1lbiB0cmFuc2Zvcm1fc2l6ZSBzaG91bGQgYmUgYXNzdW1lZCB0byBwcm9kdWNlIG91dHB1dAoJICBidWZmZXJzIG9mIHRoZSBzYW1lIHNpemUuCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MjEzMzQKCjIwMTAtMDYtMTQgMDg6MTg6MDAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBEb24ndCBpbml0aWFsaXplIGFycmF5cyBmcm9tIHZhcmlhYmxlcwoKMjAxMC0wNi0xNCAwODoxMTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBTdG9yZSByZXN1bHQgb2Ygc3RydG9sIGluIGFuIHVudXNlZCB2YXJpYWJsZSB0byByZWFsbHkgZml4IGEgY29tcGlsZXIgd2FybmluZy4uLgoKMjAxMC0wNi0xMyAyMDo1MjozNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBDYXN0IHJldHVybiB2YWx1ZSB0byB2b2lkIHRvIHByZXZlbnQgY29tcGlsZXIgd2FybmluZwoKMjAxMC0wNi0xMyAxODoxMjo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkgIHJ0cG9vbC10ZXN0OiBQcmV2ZW50IE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZQoKMjAxMC0wNi0xMyAxODowNTo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBNYWtlIHN1cmUgd2UgaGF2ZSBhIHZhbGlkIG9iamVjdCB0byByZW5kZXIgaW4gX3JlbmRlcl9vYmplY3QoKQoKMjAxMC0wNi0xMyAxODowMDoyMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IEFkZCBzb21lIGFzc2VydGlvbiBndWFyZHMgYWdhaW5zdCBpbnZhbGlkIHBhcmFtZXRlcnMgdG8gcHVibGljIEFQSQoKMjAxMC0wNi0xMyAxNzowODo0OCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgUmVtb3ZlIHNvbWUgZGVhZCBhc3NpZ25tZW50cwoKMjAxMC0wNi0xMyAxNzowNjo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJICBidWZmZXJzdHJlc3M6IENoZWNrIGlmIHRoZSBudW1iZXIgb2YgdGhyZWFkcyBhbmQgYnVmZmVycyBtYWtlcyBzZW5zZQoKMjAxMC0wNi0xMyAxNzowMzo1MyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkgIHJlYWQtbWV0YWRhdGE6IFN0b3AgaWYgc2V0dGluZyB0aGUgcGlwZWxpbmUgc3RhdGUgYmFjayB0byBOVUxMIGZhaWxzCgoyMDEwLTA2LTEzIDE2OjU5OjQwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJICBjb21wbGV4aXR5OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50cyBhbmQgdW51c2VkIHZhcmlhYmxlcwoKMjAxMC0wNi0xMyAxNjozMToyMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IERvbid0IGlnbm9yZSBmYWlsdXJlIHRvIG9wZW4gdGhlIHRlbXBvcmFyeSBmaWxlIGxvY2F0aW9uCgkgIEFuZCBpbW1lZGlhdGVseSBsZWF2ZSB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIG9uIGZhaWx1cmVzLgoKMjAxMC0wNi0xMyAxNjoyNzozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogRml4IGl0ZXJhdG9yIGFnZ3JlZ2F0aW9uIG9mIGFsbCBwYWRzIGluIHRoZSBpbnRlcm5hbCBsaW5rcyBmYWxsYmFjawoJICBnX2xpc3RfcHJlcGVuZCgpIHJldHVybnMgdGhlIG5ldyBoZWFkIG9mIHRoZSBsaXN0IGFuZCBub3QKCSAgdXNpbmcgdGhpcyB3aWxsIGNyZWF0ZSBhIG1lbW9yeSBsZWFrIGFuZCBhIHNpbmdsZS1lbGVtZW50IGxpc3QuCgoyMDEwLTA2LTEzIDE1OjI1OjI0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWRkIG5ldyBGSVhNRSBmb3IgMC4xMSBhbmQgdXBkYXRlIGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSBkb2NzCgkgIFRoZSBjb21wYXJlIGZ1bmN0aW9uIHNob3VsZCBvbmx5IHVucmVmIHRoZSBlbGVtZW50IGlmIGl0J3MKCSAgbm90IHRoZSBtYXRjaGluZyBlbGVtZW50LgoJICBBbHNvIHRoZSBGSVhNRSBpbiBfZm9sZCgpIGlzIG5vdCByZWxldmFudCBiZWNhdXNlIHRoZSByZWYvdW5yZWYKCSAgaGFwcGVucyBpbiB0aGUgZm9sZCBmdW5jdGlvbi4KCjIwMTAtMDYtMTMgMTE6MjQ6MTAgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBJZiB0aGUgaXRlcmF0b3IgcmVzeW5jIGluIGZpbmRfY3VzdG9tKCkganVzdCByZXRyeQoKMjAxMC0wNi0xMiAwODoyNToyNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDczM2ZjYTkgdG8gNmRhM2JhYgoKMjAxMC0wNi0xMiAwODowNDo0NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IEFkZCB0ZXN0IGZvciBkZXNlcmlhbGl6aW5nIGZvdXJjY3MKCjIwMTAtMDYtMTEgMjI6NTY6MTMgKzAwMDAgIE1hcnRpbiBCaXNzb24gPG1hcnRpbi5iaXNzb25AZ21haWwuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogRml4ZWQgc2VyaWFsaXphdGlvbiBmb3Igc2hvcnQgZm91cmNjcy4KCSAgIlkxNiAiIGFuZCAiWTggICIgd2VyZSBub3QgZGlzcGxheWVkIHByb3Blcmx5IGJlY2F1c2UgdGhlIHNwYWNlCgkgIGNoYXJhY3RlciBpcyBub3QgYWxudW0uICBBIHVuaXQgdGVzdCBpcyBhbHNvIGluY2x1ZGVkLgoJICBGaXhlcyBidWcgIzYyMTI4Mi4KCjIwMTAtMDYtMTEgMTY6MTI6MzMgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHByaW50IHJhbmtzIHdpdGggb2Zmc2V0cyBmcm9tIG5hbWVzCgoyMDEwLTA2LTA5IDEyOjM5OjU0IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZmFkMTQ1YiB0byA3MzNmY2E5CgoyMDEwLTA2LTA5IDEyOjMwOjQ5IC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gNDc2ODNjMSB0byBmYWQxNDViCgoyMDEwLTA2LTA5IDEyOjE3OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggY29tbWVudCB0eXBvIGV2ZW4gbW9yZQoKMjAxMC0wNi0wOSAxMjowNjo1MiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGRvY3M6IHVwZGF0ZSBkb2NzIChmb3JtYXQgYW5kIHNlYXJjaCBwYXRoKS4KCSAgUmVtb3ZlIG9ic29sZXRlIHhtbCByZWdpc3RyeSBjYWNoZSBleHRlbnNpb24uIFRlbGwgdGhhdCBjb250ZW50IGFuZCBsb2NhdGlvbiBpcwoJICBpbnRlcm5hbCBkZXRhaWwuIERvY3VlbW50IHRoZSBwbHVnaW4gc2VhcmNoIG9yZGVyLgoKMjAxMC0wNi0wOSAxMjowNjoxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBjb21tZW50czogYWRkIGEgZmV3IGNvbW1lbnRzIHRvIHRoZSBzcGFyc2VseSBkb2N1bWVudGVkIHBsdWdpbiBsb2FkZXIKCjIwMTAtMDYtMDggMTE6NDE6MTEgKzAyMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBmaXggY29tbWVudCB0eXBvCgoyMDEwLTA2LTA4IDEyOjEyOjQyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2UgZ3N0X2NhcHNfYXBwZW5kX3N0cnVjdHVyZV91bmNoZWNrZWQoKSBtYWNybyBvbmNlIG1vcmUKCjIwMTAtMDYtMDggMTI6MTA6MzYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IHVzZSBhIHNhZmVyIG5hbWUgZm9yIHRlbXBvcmFyeSB2YXIuIHRvIG5vdCBzaGFkb3cgb25lIGZyb20gb3V0ZXIgc2NvcGUKCjIwMTAtMDYtMDcgMTI6MjA6NDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogdXNlIGdsaWIgdHlwZXMgaW4gbW9yZSBwbGFjZXMKCSAgRG8gYSBidW5jaCBvZiBjaGFyIC0+IGdjaGFyLCBpbnQgLT4gZ2ludCwgZG91YmxlIC0+IGdkb3VibGUgY2hhbmdlcy4KCjIwMTAtMDYtMDcgMTI6MDc6MzAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZToganVzdCBjb21wdXRlIHN0cmxlbigpIG9uY2UKCjIwMTAtMDYtMDcgMTA6MTY6MDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGRvbid0IHdhaXQgZm9yIGRhdGEgd2hlbiBFT1MKCSAgV2hlbiBpbiBkb3dubG9hZCBtb2RlIGFuZCB3ZSBuZWVkIHRvIHByb3ZpZGUgZGF0YSBmb3IgYW4gb2Zmc2V0IHRoYXQgd2UgZG9uJ3QKCSAgaGF2ZSwgYWxzbyBwZXJmb3JtIGEgc2VlayB0byB0aGUgcmVxdWVzdGVkIGxvY2F0aW9uIHdoZW4gd2UgYXJlIEVPUy4gVGhlIHJlYXNvbgoJICB3aHkgd2Ugc2hvdWxkbid0IHdhaXQgZm9yIG1vcmUgZGF0YSBpcyBiZWNhdXNlIGFmdGVyIEVPUywgdGhlcmUgc2ltcGx5IHdpbGwgYmUKCSAgbm8gbW9yZSBkYXRhIGFuZCB3ZSBlbmQgdXAgd2FpdGluZyBmb3JldmVyLgoJICBGaXhlcyAjNjIwNTAwCgoyMDEwLTA2LTA3IDA4OjE4OjQwICswMjAwICBNYXJ0aW4gQmlzc29uIDxtYXJ0aW4uYmlzc29uQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogQWRkIHN1cHBvcnQgZm9yIHBhcnNpbmcgc2hvcnQgZm91cmNjcyBmcm9tIHN0cmluZ3MKCSAgRm9yIGV4YW1wbGUgIlkxNiAiIGFuZCAiWTggICIuCgoyMDEwLTA2LTA2IDIzOjE5OjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjaGVjazogdXNlIGdsb2JiaW5nIGZvciBzZWxlY3RpdmUgdGVzdCBpbnZvY2F0aW9uIHZpYSBHU1RfQ0hFQ0tTCgkgIFVzZSBnbGliIGdsb2JiaW5nIGluc3RlYWQgb2Ygc2ltcGxlIHN0cmluZyBtYXRjaGluZyB0byBhbGxvdyBlLmcuCgkgIEdTVF9DSEVDS1M9InRlc3RfaW50ZXIqIiBtYWtlIGdzdC9nc3RjYXBzLmNoZWNrCgoyMDEwLTA2LTA2IDIxOjIwOjIxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NhcHNuZWdvLmM6CgkgIGNhcHNuZWdvOiBhbHNvIG1lYXNzdXJlIHBpcGVsaW5lIGJ1aWxkaW5nIHRpbWUKCjIwMTAtMDYtMDUgMjM6MTg6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBhdm9pZCBhIGNhcHMtY29weQoJICBXZSBjYW4gc2ltcGx5IHRydW5jYXRlIHRoZSBjYXBzLCBhcyAnb3RoZXJjYXBzJyBpcyB0aGUgcmVzdWx0IG9mIGludGVyc2VjdAoJICBvcGVyYXRpb25zIGFuZCB0aHVzIG91cnMgYW5kIHdyaXRhYmxlLgoKMjAxMC0wNi0wMyAwMTo0OTo1MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGluZm86IGFkZCBuZXcgVFJBQ0UgbG9nIGxldmVsIGFuZCBtb3ZlIHJlZmNvdW50aW5nIHRoZXJlIGZyb20gTE9HIGxldmVsCgkgIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZWFzaWx5IGdldCBhICo6NSBkZWJ1ZyBsb2cgd2l0aG91dCBhbGwKCSAgdGhlIHJlZmNvdW50aW5nIG5vaXNlLCBhbmQgZHJhc3RpY2FsbHkgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIGxpbmVzCgkgIG91dHB1dCBmb3IgYSBub3JtYWwgbG9nICg0Nm0gdG8gMjhtIGZvciBhIDIwbWluIHZpZGVvKS4gVGhlIGZ1bGwgbG9nCgkgIGluY2x1ZGluZyByZWZjb3VudGluZyBpbmZvcm1hdGlvbiBjYW4gc3RpbGwgYmUgZ290dGVuIHVzaW5nICo6Ny4KCSAgRml4ZXMgIzYyMDQ2MC4KCjIwMTAtMDYtMDQgMTc6MTA6MDUgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBmb3Igc3RhbmRhcmQgcHJvcGVydGllcwoKMjAxMC0wNi0wMyAxNzoyMTowMCArMDIwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cGhpbEBiYXNlLWFydC5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBNYWtlIGdzdF9iYXNlX3NpbmtfcXVlcnkgcmV0dXJuIFRSVUUgaWYgdGhlIHNlZ21lbnQgcXVlcnkgc3VjY2VlZGVkLgoJICBGaXhlcyBidWcgIzYyMDQ5MC4KCjIwMTAtMDYtMDEgMjM6NDg6NTkgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxN2Y4OWU1IHRvIDQ3NjgzYzEKCjIwMTAtMDYtMDEgMjI6NTQ6MjAgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZDdjYTA0IHRvIDE3Zjg5ZTUKCjIwMTAtMDUtMjQgMTc6MjU6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgcGFkczogSW1wcm92ZSByZWFkYWJpbGl0eSBmb3IgZ3N0X3BhZF9maXhhdGVfY2FwcygpCgkgIEp1c3QgdHJ1bmNhdGUgYW5kIHRoZW4gZml4YXRlLiBXZSBjaGVjayBmb3IgZW1wdHkgY2FwcyBpbiB0aGUgYmVnaW4gYW5kIGEKCSAgZml4YXRlLWZ1bmMgdGhhdCBlbXB0aWVzIGEgY2FwcyB3b3VsZCBiZSBicm9rZW4uIEl0IGFsc28gaGVscHMgbGF6eSBjYXBzIGltcGwuCgkgIGluIGJ1ZyA2MTg4NTMgYnkgYXZvaWRpbmcgdGhlIGdzdF9jYXBzX2dldF9zaXplKCkuCgoyMDEwLTA2LTAxIDExOjQ2OjE3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGNoZWNrOiBsb2cgcGx1Z2lucyBhdmFpbGFibGUgdG8gdW5pdCB0ZXN0cyBhbmQgdGhlaXIgcGF0aHMKCjIwMTAtMDYtMDEgMTE6NDU6MTEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIHdpbjMyOiBjb21taXQgTWFrZWZpbGUgY2hhbmdlcyBmb3Igd2luMzItdXBkYXRlIGFzIHdlbGwKCjIwMTAtMDUtMzEgMTU6MTQ6NTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuYzoKCSogd2luMzIvY29tbW9uL2dzdG1hcnNoYWwuaDoKCSAgd2luMzI6IGFkZCBwcmUtZ2VuZXJhdGVkIHZlcnNpb25zIG9mIGdzdG1hcnNoYWwuW2NoXSBhcyB3ZWxsCgkgIGFuZCBwdXQgdGhlbSBuZXh0IHRvIHRoZSBwcmUtZ2VuZXJhdGVkIGVudW10eXBlcyBmaWxlcyBmb3IgdGhvc2UKCSAgbm90IHVzaW5nIGF1dG90b29scyBmb3IgYnVpbGRsaW5nIEdTdHJlYW1lci4KCjIwMTAtMDUtMjcgMTU6MTA6MzQgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhbHNvIGNoZWNrIGZvciBhZGFwdGVyIGJ1ZmZlciBtZXJnaW5nIGluIHVuaXQgdGVzdAoKMjAxMC0wNS0yNyAxMjo1MDoyMiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZml4IF90cnlfdG9fbWVyZ2VfdXAKCSAgVGhhdCBpcywgcHJvdmlkZSBjb3JyZWN0IHJldHVybiB2YWx1ZSAoYXMgZG9jdW1lbnRlZCksIGFuZCBhY3R1YWxseQoJICBsb29wIHRvIGNvbnNpZGVyIG1vcmUgdGhhbiB0aGUgZmlyc3QgMiBidWZmZXJzLgoKMjAxMC0wNS0yNyAxMjo0ODoxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBmaXggZG9jdW1lbnRhdGlvbiBnbGl0Y2gKCjIwMTAtMDUtMjYgMTE6NTQ6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzNTdiMGRiIHRvIGZkN2NhMDQKCjIwMTAtMDUtMjUgMTk6MTc6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiB1bmxvY2sgX2dldF9zdGF0ZSgpIG9uIGVycm9yCgkgIFdoZW4gYW4gZXJyb3IgbWVzc2FnZSBpcyByZWNlaXZlZCBvbiB0aGUgYnVzLCBtYXJrIHRoZSBiaW4gYXMgYmVpbmcgaW4gdGhlIGVycm9yCgkgIHN0YXRlIGFuZCB1bmxvY2sgYWxsIGN1cnJlbnQgX2dldF9zdGF0ZSgpIGNhbGxzIHdpdGggYW4gZXJyb3IuCgkgIEZpeGVzICM1MDU3NzAKCjIwMTAtMDUtMjQgMTk6MDc6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBjaGVja3M6IGFkZCBtdWx0aS10aHJlYWQgdGVzdCBmb3IgdGFnc2V0dGVyCgkgIFNlZSAjNjE5NTMzLgoKMjAxMC0wNS0yNCAxOTowNjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIHRhZ3NldHRlcjogbWFrZSBzdXJlIG9ubHkgb25lIHRocmVhZCBjcmVhdGVzIHRoZSBUYWdEYXRhCgoyMDEwLTA1LTI0IDE4OjE2OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgdGFnc2V0dGVyOiBwcm90ZWN0IHRhZ3NldHRlciBvcGVyYXRpb25zIHdpdGggYSBsb2NrCgkgIFNvIHdlIGRvbid0IGNyYXNoIHdoZW4gYSBtdXhlciB0cmllcyB0byBhZGQgdGFncyBmcm9tIHR3bwoJICB0aHJlYWRzIGF0IHRoZSBzYW1lIHRpbWUsIGVnLiBiZWNhdXNlIGl0IHJlY2VpdmVkIHRhZyBldmVudHMKCSAgb24gdHdvIGlucHV0IHBhZHMgc2ltdWx0YW5lb3VzbHkuCgkgIFNlZSAjNjE5NTMzLgoKMjAxMC0wNS0yMiAyMzoyNjoxNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogdXNlIG91ciBtYWNyb3MgbW9yZSBvZnRlbiBpbiB0aGUgY29kZQoKMjAxMC0wNS0yMiAyMzowNzoxMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkIGFwcGVuZF9zdHJ1Y3R1cmVfdW5jaGVja2VkCgkgIFRoaXMgaXMgdXNlZnVsIHdoZW4gd2Uga25vdyB0aGF0IGNhcHMgaXMgIU5VTEwsIHdyaXRhYmxlIGFuZCBzdHJ1Y3R1cmUgaXMKCSAgIU5VTEwgdG9vLgoKMjAxMC0wNS0yMiAyMjo0Njo0MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSAgdGVzdHM6IHJlbmFtZSB0ZXN0c3VpdGUKCSAgUHJldmlvdXMgbmFtZSB3YXMgb25seSBhcHBsaWNhYmxlIHRvIGEgZmV3IG9mIHRoZSB0ZXN0cy4KCjIwMTAtMDUtMjIgMjI6NDU6MzMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZG9jczogeHJlZiBmdW5jdGlvbiBuYW1lCgoyMDEwLTA1LTIyIDIyOjQ0OjAyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB1c2Ugb3VyIG1hY29zIG1vcmUKCjIwMTAtMDUtMjIgMjI6MzM6MDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbGF6eWNhcHMudHh0OgoJICBkZXNpZ246IG1vcmUgcGxhbm5pbmcgb24gbGF6eSBjYXBzLgoKMjAxMC0wNS0yMiAxMDowMTo0NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHN0cnVjdHVyZTogQVBJOiBBZGQgZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfc3RyaW5nKCkKCjIwMTAtMDUtMTkgMTY6MjE6NDkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbGF6eWNhcHMudHh0OgoJICBkZXNpZ246IGNvbGxlY3QgaWRlYXMgZm9yIGhhdmluZyBsYXp5IGNhcHMKCSAgRGVzaWduIGRvYyBmb3IgaGF2aW5nIG9uIHRoZSBmbHkgZXZhbHVhdGVkIGNhcHMgKHNlZSBidWcgIzYxODg1MykuCgoyMDEwLTA1LTE5IDE1OjU3OjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YnVzLmM6CgkgIGRvY3M6IGFkZCBsaW5rcyBmb3IgR1NvdXJjZSBwcmlvcml0aWVzCgkgIE5vdyBpdCBpcyB4cmVmZmVkIHdpdGggdGhlIGdsaWIgZG9jcywgd2hlcmUgdGhlIHByaW9yaXR5IHNjYWxlIGlzIGV4cGxhaW5lZC4KCjIwMTAtMDUtMTkgMTQ6MDg6MjYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrOiBhZGQgY29tbWFuZGxpbmUgcGFyYW1ldGVycyBmb3IgY2Fwc25lZ28KCSAgQWxsb3cgdG8gc3BlY2lmeSB0aGUgZ3JhcGggc2l6ZSBhbmQgb2ZmZXIgdHdvIGZsYXZvdXJzIChhdWRpby92aWRlbykuCgoyMDEwLTA1LTE5IDA5OjU2OjUxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvY2Fwc25lZ28uYzoKCSAgYmVuY2htYXJrczogYWRkIGEgYmVuY2htYXJrIGZvciBjYXBzbmVnb3RpYXRpb24KCSAgVGhlIHRlc3QgYnVpbGRzIGEgdHJlZSBsaWtlIGdyYXBoIGhhdmluZyBjb252ZXJzaW9uIGFuZCBiYXNldHJhbnNmb3JtIGVsZW1lbnRzLgoKMjAxMC0wNS0xOCAxNzo1MTowMSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9jYXBzLmM6CgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGJ1ZmZlcnN0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgYmVuY2htYXJrczogdXNlIGdzdF91dGlsX2dldF90aW1lc3RhbXAoKSBpbnN0ZWFkIG9mIG93biBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNS0xOCAxODozODoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGFkZCBqaXR0ZXIgdG8gZGVidWcgb3V0cHV0CgoyMDEwLTA1LTE4IDE4OjM1OjU4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogY2xlYW51cCB0eXBlIHJlZ2lzdHJhdGlvbiBhIGxpdHRsZQoJICBXZSBjYW4gbWFrZSBzb21lIHN0cnVjdHMgY29uc3Qgc3RhdGljIHdpdGggbGl0dGxlIGVmZm9ydC4KCjIwMTAtMDUtMTcgMTM6MDk6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IHByaW50IFdBUk5JTkcgZGVidWcgc3RhdGVtZW50cyBmb3Igbm9ybWFsIHRoaW5ncyBsaWtlIEVPUywgcGFydCBJSQoKMjAxMC0wNS0xNCAxODoyMjo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDRkNjdiZDYgdG8gMzU3YjBkYgoKMjAxMC0wNS0xNCAxMTo1MjowMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogY29tbWVudCBhbmQgd2hpdGVzcGFjZSBjbGVhbnVwCgkgIE1ha2UgY29tbWVudCBtb3JlIHNwZWNpZmljLCByZXBvc2l0aW9uIGl0IGFuZCBhZGQgbW9yZSBvZiB0aGUga2luZC4KCSAgTW92ZSBvbmUgaWZkZWYnZWQgZnVuY3Rpb24gYXJvdW5kLgoKMjAxMC0wNS0xMyAwODoyMTozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IFNpbXBsaWZ5IGZyYWN0aW9ucyBiZWZvcmUgZG9pbmcgY2FsY3VsYXRpb25zIHRoYXQgY291bGQgY2F1c2Ugb3ZlcmZsb3dzCgkgIC4uLiB0byBwcmV2ZW50IHNvbWUgdW5uZWNlc3Nhcnkgb3ZlcmZsb3dzIGZyb20gaGFwcGVuZW5pbmcuCgoyMDEwLTA1LTEzIDA4OjAwOjA4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogR0NEIGlzIDAgaWYgYm90aCBwYXJhbWV0ZXJzIGFyZSAwLCBkb24ndCBkaXZpZGUgYnkgemVybwoJICBBbmQgdHVybiBvdmVyZmxvdyBjaGVja3MgZnJvbSBhc3NlcnRpb25zIGludG8gc2ltcGxlIGNoZWNrcyB0bwoJICByZXR1cm4gRkFMU0UuCgoyMDEwLTA1LTEzIDA3OjUxOjE0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogU2ltcGxpZnkgcmVzdWx0IG9mIGdzdF9mcmFjdGlvbl9tdWx0aXBseSgpCgoyMDEwLTA1LTEwIDEzOjI1OjA0IC0wNDAwICBUcmlzdGFuIE1hdHRoZXdzIDx0cmlzdGFuQHNhdC5xYy5jYT4KCgkqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgZmFxOiB1cGRhdGVkIGxpbmUgYWJvdXQgamFjayBvdXRwdXQKCjIwMTAtMDUtMDMgMTE6MzI6MjAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IFJlYWQgcmV0dXJuIHZhbHVlIHRvIG1ha2UgY2xhbmcvaWNjIGhhcHB5CgoyMDEwLTA1LTA2IDE2OjQxOjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBSZXZlcnQgInBhZDogZG9uJ3QgY2hlY2sgdHdpY2UgZm9yIGNoYW5nZWQgY2FwcyBwZXIgcHVzaCIKCSAgV2UgbmVlZCB0byBjaGVjayB0aGUgcGFkIGNhcHMgb24gdGhlIHNyY3BhZCBhcyB3ZWxsIGFzIG9uIHRoZSBzaW5rcGFkLiBSZXZlcnQKCSAgdGhpcyBjb21taXQgYXMgaXQgcmVtb3ZlcyB0aGUgY2hlY2sgb24gdGhlIHNyY3BhZCBhbmQgY2FuIGxlYXZlIHRoZSBzcmNwYWQKCSAgdW5uZWdvdGlhdGVkIChvciBuZWdvdGlhdGVkIHdpdGggd3JvbmcgY2FwcykKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCAwN2RjMWU1YjQ5NTgwYTg5YmZlZjI3ZmYyNzQ3NmQ1MWZiM2NlMmMyLgoKMjAxMC0wNS0wNiAxNzowMjo0OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGRvbid0IGNoZWNrIHR3aWNlIGZvciBjaGFuZ2VkIGNhcHMgcGVyIHB1c2gKCSAgZ3N0X3BhZF9jaGFpbl9kYXRhX3VuY2hlY2tlZCgpIGRvZXMgdGhlIHNhbWUgY2hlY2sgYWxyZWFkeS4KCjIwMTAtMDUtMDYgMTY6NTE6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZWZsb3cgdG8gdHJ1bmNhdGUgY2FwcyBqdXN0IG9uY2UKCSAgV2UgZ2V0IHdyaXRhYmxlIGNhcHMgZnJvbSB0aGUgaW50ZXJzZWN0aW9uICh1bmxlc3MgaXQgZmFpbGVkKS4gQXMgd2UgdHJ1bmNhdGUKCSAgdGhvc2UgYW55d2F5LCB3ZSBkb24ndCBuZWVkIHRvIG1hbnVhbHkgY29weSB0aGUgZmlyc3Qgc3RydWN0dXJlLgoKMjAxMC0wNS0wNCAxMzoyOTowMiArMDQwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiB0b29scy9nc3QtcnVuLmM6CgkgIHRvb2xzOiBmaXggZ3N0LXJ1biB3cmFwcGVyIHRvIHdvcmsgb24gV2luZG93cwoJICBGaXhlcyAjNjE3NjI1CgoyMDEwLTA1LTAzIDAwOjI2OjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgZG9jczogZG9jdW1lbnQgdGhhdCBnc3RfYnl0ZV93cml0ZXJfcHV0X3N0cmluZyooKSB3cml0ZXMgdGhlIHRlcm1pbmF0b3IgdG9vCgoyMDEwLTA1LTA1IDEyOjAxOjUwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkb2NzOiBjbGFyaWZ5IHRoZSBwdWxsX3JhbmdlIGZ1bmN0aW9ucwoJICBDbGFyaWZ5IHRoZSBnc3RfcGFkX3B1bGxfcmFuZ2UoKSwgR3N0QmFzZVNyYzo6Y3JlYXRlKCksIGdzdF9wYWRfZ2V0X3JhbmdlKCkKCSAgYW5kIEdzdFBhZEdldFJhbmdlIGZ1bmN0aW9ucyBhIGxpdHRsZS4KCSAgRml4ZXMgIzYxNzczMwoKMjAxMC0wNS0wNCAxMTo0NTowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBpbXByb3ZlIGRlYnVnZ2luZwoKMjAxMC0wNC0zMCAxMToyNzoxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIHJlZmZlZCBfZ2V0X2NhcHMoKSB2ZXJzaW9uCgkgIFdlIGRvbid0IG5lZWQgdG8gaGF2ZSBhIHdyaXRhYmxlIGNvcHkgc28gd2UgY2FuIHVzZSB0aGUgX3JlZmZlZAoJICB2ZXJzaW9uIGluc3RlYWQuCgoyMDEwLTA0LTI5IDIxOjU3OjE1IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ3M6IEFkZHMgZ2VvIGxvY2F0aW9uIGRpcmVjdGlvbiB0YWdzCgkgIEFkZHMgMyBuZXcgZ2VvIGxvY2F0aW9uIHRhZ3MgaW52b2x2aW5nIGRpcmVjdGlvbiBhbmQKCSAgbW92ZW1lbnQgb2YgY2FwdHVyZS4gVGhvc2UgYXJlOgoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX0NBUFRVUkVfRElSRUNUSU9OCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fTU9WRU1FTlRfRElSRUNUSU9OCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fTU9WRU1FTlRfU1BFRUQKCSAgRml4ZXMgIzYxNzIyMwoKMjAxMC0wNC0xNiAwNjo1NzowNSAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGRzIEdTVF9UQUdfREVWSUNFX01BTlVGQUNUVVJFUiBhbmQgR1NUX1RBR19ERVZJQ0VfTU9ERUwKCSAgQWRkcyB0aG9zZSBuZXcgdGFncyB0byBkZXNjcmliZSB0aGUgZGV2aWNlIG1hbnVmYWN0dXJlciBhbmQKCSAgbW9kZWwgdXNlZCB0byBjcmVhdGUgbWVkaWFzLgoJICBBUEk6IEdTVF9UQUdfREVWSUNFX01BTlVGQUNUVVJFUgoJICBBUEk6IEdTVF9UQUdfREVWSUNFX01PREVMCgkgIEZpeGVzICM2MTU5NDEKCjIwMTAtMDUtMDIgMTk6NDM6NTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkgIHB3ZzogcmVtb3ZlIGNvbmZ1c2luZyBtZXRhZGF0YSBleGFtcGxlIHdpdGggMC44IGNvZGUKCSAgRml4ZXMgIzUzNDMxNC4KCjIwMTAtMDUtMDIgMTk6MzA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtbWV0YWRhdGEueG1sOgoJICBtYW51YWw6IGFkZCBtaW5pbWFsIHRhZyByZWFkaW5nIGV4YW1wbGUKCSAgU2hvdWxkIHByb2JhYmx5IHB1dCB0aGF0IGludG8gdGVzdHMvZXhhbXBsZXMgYW5kIGZpZ3VyZSBvdXQgaG93IHRvCgkgIGdldCBpdCBpbmNsdWRlZCBhdXRvbWF0aWNhbGx5LCBidXQgY2FuJ3QgYmUgYm90aGVyZWQgcmlnaHQgbm93LgoKMjAxMC0wNC0zMCAxMzoxMDoxNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSAgQnVtcCBHTGliIHJlcXVpcmVtZW50IHRvIDIuMjAKCSAgU2VlIGh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3dpa2kvUmVsZWFzZVBsYW5uaW5nL0dMaWJSZXF1aXJlbWVudAoKMjAxMC0wNC0yOSAyMzoyOTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGJ1ZmZlcjogb25seSB3YXJuIGlmIG1ldGFkYXRhIGlzIG5vdCB3cml0YWJsZSB3aGVuIGl0IHNob3VsZCBiZSwgZG9uJ3QgcmV0dXJuIGFzIHdlbGwKCSAgTWFrZSBzdXJlIHdlIGV4ZWN1dGUgdGhlIHNhbWUgY29kZSBwYXRoIGluIGdpdCB2ZXJzaW9ucyBhbmQgaW4gcmVsZWFzZXMsCgkgIHNvIGp1c3Qgd2FybiB3aGVuIG1ldGFkYXRhIGlzbid0IHdyaXRhYmxlIHdoZW4gd2Ugd2FudCBpdCB0byBiZSBpbnN0ZWFkCgkgIG9mIGJhaWxpbmcgb3V0LgoKMjAxMC0wNC0yOSAyMzoyNjo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBtYWtlICdhZGRpbmcgZmx1c2hpbmcgcGFkJyB3YXJuaW5nIG1vcmUgdXNlZnVsCgkgIFRoaXMgaXMgYSBwcmV0dHkgY29tbW9uIGlzc3VlIHdpdGggZ2hvc3QgcGFkcywgbGV0J3MgbWFrZQoJICB0aGUgd2FybmluZyBtb3JlIGhlbHBmdWwgYW5kIHRlbGwgcGVvcGxlIHdoYXQgdGhleSBuZWVkCgkgIHRvIGRvIHRvIGZpeCBpdC4KCjIwMTAtMDQtMjggMTc6MTU6NDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBhZGQgLXAgb3B0aW9uIHRvIGRpc2FibGUgcGxheSBoYW5kbGVyLgoJICBTYW1lIGxvZ2ljIGFzIGZvciB0aGUgZmF1bHQgaGFuZGxlci4gVGhpcyBpcyB1c2VmdWwgZm9yIHNvbWUgZGVidWcvdHJhY2luZyB0b29scwoJICB0aGF0IG5lZWQgdG8gZ3JhYiBTSUdVU1IxIGFuZCBTSUdVU1IyIHRoZW0gc2VsZi4KCjIwMTAtMDQtMTUgMTA6MzY6NTIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGltcGxlbWVudCBwZXJjZW50YWdlIHBvc2l0aW9uIGFuZCBkdXJhdGlvbiBxdWVyaWVzCgkgIElmIHVwc3RyZWFtIGRvZXMgbm90IGhhbmRsZSB0aGVtLCB0aGVuIGltcGxlbWVudCB0aG9zZSBvdXJzZWxmLgoKMjAxMC0wNC0xNCAxNzo0NzozNiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIGdzdF9wYWRfcGVlcl9xdWVyeSBpbnN0ZWFkIG9mIHJlaW52ZW50aW5nLgoKMjAxMC0wNC0xNCAxNzo0Njo1NSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgcXVlcmllczogYWRkIG1vcmUgbG9nZ2luZwoJICBMb2cgaHVtYW4gcmVhZGFibGUgZm9ybWF0cyBhbmQgbG9nIHF1ZXJ5IHJlc3VsdC4KCjIwMTAtMDQtMTkgMjA6MzU6MzYgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgY2FwczogRG8gbm90IGFsbG93IGZpeGF0aW5nIGVtcHR5IGNhcHMKCSAgUGFzc2luZyBlbXB0eSBjYXBzIHRvIGdzdF9wYWRfZml4YXRlX2NhcHMoKSBpcyBpbnZhbGlkLCBhcyBlbXB0eSBjYXBzCgkgIGNhbm5vdCBiZSBmaXhhdGVkLgoKMjAxMC0wNC0yNiAyMTo1MjowNyArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdGNhcHMuaDoKCSAgY2FwczogVXNlIEdfR05VQ19XQVJOX1VOVVNFRF9SRVNVTFQgZm9yIG1ha2Vfd3JpdGFibGUoKQoJICBQZW9wbGUgb2Z0ZW4gY2FsbAoJICBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlIChjYXBzKTsKCSAgaW5zdGVhZCBvZgoJICBjYXBzID0gZ3N0X2NhcHNfbWFrZV93cml0YWJsZSAoY2Fwcyk7CgkgIGFuZCBjYXVzZSBhIGJ1Zy4gV2FybmluZyBhYm91dCBhbiB1bnVzZWQgcmV0dXJuIHZhbHVlIGhlbHBzIGhlcmUuCgkgIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE2NTQxI2MyIGZvciBhbiBleGFtcGxlLgoKMjAxMC0wNC0yMyAwNjoyNDo1NiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZ3N0OiBVc2UgR0Vycm9yIGJveGVkIHR5cGUgZnJvbSBHT2JqZWN0IDIuMjUuMiBpbnN0ZWFkIG9mIG91ciBvd24gaWYgcG9zc2libGUKCjIwMTAtMDQtMjkgMTQ6NTA6MzYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudC4KCjIwMTAtMDQtMTUgMTc6MTE6NDYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jczogYWRkIHNvbWUgbW9yZSBkb2NzIGZvciB0aGUgZXZlbnRzCgo9PT0gcmVsZWFzZSAwLjEwLjI5ID09PQoKMjAxMC0wNC0yNyAyMzo0MjoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjkKCjIwMTAtMDQtMjcgMjM6NDA6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTA0LTI3IDA5OjQyOjA1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgdGVzdHM6IGFkZCBtb3JlIHRlc3RzIGZvciBjb250cm9sbGVyCgkgIFRoZSB0ZXN0cyB2ZXJpZnkgdGhhdCBidWcgIzYxNjg0NiBpcyBpbmRlZWQgZml4ZWQuCgoyMDEwLTA0LTI2IDE1OjQzOjE3ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgY29udHJvbGxlcjogRml4IGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2ZpbmRfY29udHJvbF9wb2ludF9pdGVyCgkgIFRoZSBsb2dpYyBpbiB0aGF0IGZ1bmN0aW9uIGlzIGJyb2tlbi4gVmFyaW91cyBOVUxMLWNoZWNraW5nIGJhbmRhaWRzIGZvcgoJICBndWFyYW50ZWVkIG5vbi1OVUxMIHZhcmlhYmxlcyBkaWRuJ3QgZXZlbiBoZWxwIHRoZXJlLgoJICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGEgcHJldmlvdXMgaXRlbSBleGlzdHMKCSAgYmVmb3JlIGZldGNoaW5nIGl0IGluc3RlYWQgb2YgYWZ0ZXIuIFRoaXMgbWFrZXMgYWxsIG90aGVyIHRlc3RzCgkgIHVubmVjZXNzYXJ5LgoJICBJbiBwYXJ0aWN1bGFyLCBpdCBtYWtlcyB0aGUgY2hlY2sgZm9yIGFuIGVtcHR5IGxpc3QgdW5uZWNlc3NhcnksIGJlY2F1c2UKCSAgZm9yIGVtcHR5IGxpc3RzIHRoZSBvbmx5IGl0ZXIgaXMgdGhlIGJlZ2luIGl0ZXIgKGFuZCB0aGUgZW5kIGl0ZXIpIGFuZAoJICBzbyB0aGUgbmV3IGNoZWNrIGNhdGNoZXMgdGhhdCBjYXNlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE2ODQ2CgoyMDEwLTA0LTI1IDIxOjE1OjUxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjguMyBwcmUtcmVsZWFzZQoKMjAxMC0wNC0yMCAxNzoxNzozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgZG9hcDogdXBkYXRlIHJlcG9zaXRvcnkgaW5mbyBmcm9tIGN2cy0+Z2l0IGFuZCBtYWludGFpbmVycwoKMjAxMC0wNC0yMyAxNDozOToyMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZjODU4NjcgdG8gNGQ2N2JkNgoKMjAxMC0wNC0xNiAyMDowOTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBkb2NzOiBDb25zaXN0ZW50bHkgdXNlIE15RmlsdGVyIGluc3RlYWQgb2Ygc29tZXRpbWVzIEV4YW1wbGVGaWx0ZXIgaW4gdGhlIGV4YW1wbGUKCSAgRml4ZXMgYnVnICM2MTU1NzkuCgoyMDEwLTA0LTE2IDE0OjIyOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuaDoKCSAgcGFkOiBhZGQgZW51bXMgZm9yIGN1c3RvbSBmbG93IHJldHVybiBzdWNjZXNzIGFuZCBlcnJvciBjb2RlcwoJICBUaGlzIHdheSBwZW9wbGUgY2FuIGp1c3QgI2RlZmluZSB0aGVpciBvd24gY3VzdG9tIGZsb3cgcmV0dXJucyB0bwoJICBvbmUgb2YgdGhlc2Ugd2l0aG91dCBoYXZpbmcgdGhlIGNvbXBpbGVyIChlc3AuIGdjYy00LjUpIGNvbXBsYWluCgkgIGFib3V0IGNvbXBhcmluZyBpbnRlZ2VycyB0byBhbiBlbnVtIG9yIHRoZSBlbnVtIG5vdCBiZWluZyBsaXN0ZWQKCSAgRml4ZXMgIzYxNTg4MC4KCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fU1VDQ0VTU18xCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1NfMgoJICBBUEk6IEdTVF9GTE9XX0NVU1RPTV9FUlJPUl8xCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX0VSUk9SXzIKCjIwMTAtMDQtMTUgMjI6MDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IFVzZSBjb3JyZWN0IHNldHRlciBmb3IgZG91YmxlIEdWYWx1ZXMKCjIwMTAtMDQtMTUgMTE6MDg6MDMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogZG9jIGZpeGVzCgkgIEFkZHMgbWlzc2luZyAnOicgdG8gdGFncyBkb2NzCgoyMDEwLTA0LTE1IDExOjM4OjE5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggYm9ndXMgdmFyaWFibGUgdHlwZQoJICBUaGUgcmVzdWx0IG9mIGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSgpIGlzIG5vdCBhIEdzdEl0ZXJhdG9yICouCgoyMDEwLTA0LTE0IDEyOjIwOjEzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjguMiBwcmUtcmVsZWFzZQoKMjAxMC0wNC0xNCAxMjoxMjo1NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTA0LTE0IDEyOjQzOjQxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBsb2cgd2hhdCBzdHJ1Y3R1cmUgc3RyaW5nIHdlIGZhaWxlZCB0byBwYXJzZQoKMjAxMC0wNC0xNCAxNzo1NjoxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZpeCByZWZjb3VudCB3aGVuIHJlbW92aW5nIGVsZW1lbnRzIGR1cmluZyBzdGF0ZSBjaGFuZ2UKCSAgV2hlbiBhbiBlbGVtZW50IGlzIHJlbW92ZWQgZnJvbSBhIGJpbiBiZWNhdXNlIGl0IGNhdXNlZCBhIHN0YXRlIGNoYW5nZSBlcnJvciwKCSAgZG9uJ3QgdW5yZWYgdGhlIGNoaWxkIHR3aWNlLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhpcyBlcnJvci4KCSAgRml4ZXMgIzYxNTc1NgoKMjAxMC0wNC0xNCAxMTo1MDozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICB0ZXN0czogbW9yZSBMREZMQUdTIC0+IExEQUREIGZpeGVzCgoyMDEwLTA0LTE0IDExOjQwOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6ICQoTElCTSkgYmVsb25ncyBpbnRvIExJQkFERCBub3QgTERGTEFHUwoKMjAxMC0wNC0wOCAwOToxNDoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiB0b29scy9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IHdoZW4gYnVpbGRpbmcgZXhlY3V0YWJsZXMsIHB1dCBsaWJzIHRvIGxpbmsgdG8gaW50byBMREFERCBpbnN0ZWFkIG9mIExERkxBR1MKCSAgVXNlIGZvb19MREFERCBpbnN0ZWFkIG9mIGZvb19MREZMQUdTIHRvIHNwZWNpZnkgdGhlIGxpYnJhcmllcyB0byBsaW5rIHRvLgoJICBUaGlzIHNob3VsZCBtYWtlIHN1cmUgYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGxpbmtlciBpbiB0aGUgcmlnaHQKCSAgb3JkZXIuIFNlZSAjNjE1Njk3LgoKMjAxMC0wNC0xNCAxMToxOToxNCArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFJlbW92ZSAtV2Nhc3QtYWxpZ24KCSAgQXBwYXJlbnRseSBnY2Mgd2FybnMgdGhhdCBHc3RNaW5pT2JqZWN0IGlzIG5vdCBjYXN0YWJsZSB0bwoJICBHc3RFdmVudC9NZXNzYWdlL0J1ZmZlciBkdWUgdG8gdGhlbSBjb250YWluaW5nIDY0Yml0IHZhcmlhYmxlcywgZXZlbgoJICB0aG91Z2ggQVJNIGhhY2tlcnMgY2xhaW0gdGhhdCB0aG9zZSBvbmx5IG5lZWQgNGJ5dGUgYWxpZ25tZW50LiBBbmQgYXMKCSAgbG9uZyBhcyBnY2MgYmVoYXZlcyB0aGF0IHdheSwgdGhpcyB3YXJuaW5nIGlzIG5vdCB2ZXJ5IHVzZWZ1bC4KCSAgU28gd2UnbGwgcmVtb3ZlIHRoZSB3YXJuaW5nIHVudGlsIHRoaXMgcHJvYmxlbSBpcyBmaXhlZC4KCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxNTY5OAoKMjAxMC0wNC0xMyAxMDo0ODo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogcmVtb3ZlIHN1cGVyZmx1b3VzIHJldHVybiBzdGF0ZW1lbnRzIGF0IGVuZCBvZiBBQ19UUllfe0xJTkssQ09NUElMRX0gYmxvY2tzCgkgIFNwb3R0ZWQgYnkgSkYgTWVydGVucy4gU2VlICM2MTQ3NjcuCgoyMDEwLTA0LTA1IDEzOjQ2OjIzIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBDaGFuZ2UgY2hlY2sgZm9yIHVpbnQxMjhfdAoJICBDaGVjayBmb3IgYWJpbGl0eSB0byBkaXZpZGUgdWludDEyOF90IHZhbHVlcywgc2luY2UgdGhhdCB3aGF0CgkgIHdlIGFjdHVhbGx5IHVzZSBpdCBmb3IgKGluIGdzdHV0aWxzLmMpLiAgVGhlIGV4aXN0ZW5jZSBvZiBhCgkgIHVpbnQxMjhfdCB0eXBlIGRvZXNuJ3QgbWVhbiB0aGUgY29tcGlsZXIgY2FuIGFjdHVhbGx5IGdlbmVyYXRlCgkgIGNvZGUgZm9yIGl0LiAgQWxzbyBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4gYWN0dWFsbHkgbGluayB0aGUKCSAgcmVzdWx0IHN1Y2Nlc3NmdWxseS4KCSAgRml4ZXMgYnVnICM2MTQ3NjcuCgoyMDEwLTA0LTEyIDE1OjEzOjU3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBkb2NzOiBtaW5vciBtb3ZpbmctcGx1Z2lucyBhZGRpdGlvbgoKMjAxMC0wNC0wOSAxNTo0ODowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBtYWtlIC1xIGJlIG1vcmUgcXVpZXQKCSAgQ29udmVydCBzb21lIGdfcHJpbnQgaW50byBQUklOVCBzbyB0aGF0IHRoZXkgYXJlIG5vdCBwcmludGVkIHdoZW4gdGhlIC1xIG9wdGlvbgoJICBpcyBzZWxlY3RlZC4KCjIwMTAtMDQtMDkgMTU6MTk6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBzb21lIG1vcmUgZGVidWcgaW5mbwoKMjAxMC0wNC0wOSAxMzoxMjozOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBmZHNyYzogYWxsb3cgc3BlY2lmeWluZyB0aGUgc2l6ZSBpbiBieXRlcyBvbiB0aGUgdXJpCgkgIFBhcnNlIGEgc2l6ZT12YWx1ZSBmcm9tIHRoZSBxdWVyeSBzdHJpbmcgdG8gc3BlY2lmeSBhIHNpemUuIFRoaXMgaXMgaW50ZXJlc3RpbmcKCSAgd2hlbiByZWFkaW5nIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IgdGhhdCBhY3R1YWxseSBoYXMgYSBzaXplIChhbmQgaXMgbm90CgkgIHN0YXQtYWJsZSwgc3VjaCBhcyB0aGUgc29ja2V0IG9mIGFuIGh0dHAgY29ubmVjdGlvbikKCjIwMTAtMDQtMDkgMTI6MzU6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IHdoZW4gRU9TIHdlIGtub3cgdGhlIGR1cmF0aW9uCgkgIFdoZW4gd2UgYXJlIEVPUywgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbiB1cHN0cmVhbSBxdWVyeSBmb3IgdGhlIGR1cmF0aW9uIGluIGJ5dGVzCgkgIGJlY2F1c2Ugd2UgYWxyZWFkeSBrbm93IGl0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIGxhc3Qgd3JpdHRlbiBieXRlLgoKMjAxMC0wNC0wOSAxMzowODoxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEluaXRpYWxpemUgdHlwZWZpbmQvZWxlbWVudCBmYWN0b3J5IHJlZ2lzdHJ5IGNodW5rcyB3aXRoIHplcm9lcwoJICBUaGlzIG1ha2VzIHZhbGdyaW5kIHN0b3AgY29tcGxhaW5pbmcgYWJvdXQgcmVhZGluZyB1bml0aWFsaXphdGVkIG1lbW9yeSwKCSAgd2hpY2ggaXMgbm90IGluaXRpYWxpemVkIGJlY2F1c2UgaXQncyBqdXN0IGNvbXBpbGVyLWFkZGVkIHN0cnVjdCBwYWRkaW5nLi4uCgoyMDEwLTA0LTA5IDExOjE5OjUzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZDY2YThjMyB0byBmYzg1ODY3CgoyMDEwLTA0LTA4IDEwOjEwOjE4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0Ly5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGFkZCBuZXcgLnN2ZyBmaWxlIGluIGRvY3MKCjIwMTAtMDQtMDggMTA6NDc6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGRvY3M6IHVzZSBpbmZvcm1hbGZpZ3VyZSB0YWcgdG8gbm90IHN5bnRheCBoaWdobGlnaHQgdGhlIGNvbnRlbnQKCjIwMTAtMDMtMjUgMTA6MzU6MTMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3QtdW5pdmVyc2UuZG90OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgY29uY2VwdCBtYXAKCSAgQWRkIGEgZ3JhcGh2aXogZG90IGZpbGUuIEFkZCBydWxlcyB0byByZW5kZXIgaXQgdG8gc3ZnIGFuZCBpbmNsdWRlIGluIGRvY3MuCgkgIE5vZGVzIGFyZSBjbGlja2FibGUuIEl0IGlzIGFuIGF0dGVtcHQgdG8gc2hvdyBob3cgdGhpbmdzIGZpdCB0b2dldGhlci4KCjIwMTAtMDQtMDcgMTk6MzA6NDkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgZG9jczogYWRkIGEgZmV3IGNvZGUgc25pcHBldHMgdGhhdCBzaG93IGhvdyB0byB1c2UgZ3N0X21lc3NhZ2VfcGFyc2VfKigpLgoKMjAxMC0wNC0wNyAxOTowNTowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb25maWd1cmUuYWM6CgkgIGJ1aWxkOiBidW1wIGF1dG9jb25mIHJlcXVpcmVtZW50IHRvIDIuNjAgZm9yIGdvYmplY3QtaW50cm9zcGVjdGlvbi5tNAoJICBSZXF1aXJlIGF1dG9jb25mIDIuNjAgKHdoaWNoIHdhcyByZWxlYXNlZCBpbiBKdW5lIDIwMDYpLgoJICBGaXhlcyAjNjAwNzE4LgoKMjAxMC0wNC0wNyAxMjoyOTo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogZml4IG1vcmUgY29tcGlsZXIgd2FybmluZ3MKCSAgRml4ICdncmFtbWFyLnRhYi5jOjgxNTo2OiB3YXJuaW5nOiAiWVlFTkFCTEVfTkxTIiBpcyBub3QgZGVmaW5lZCcKCSAgY29tcGlsZXIgd2FybmluZyBhbmQgdGhlIHNhbWUgZm9yIFlZTFRZUEVfSVNfVFJJVklBTC4gVGhlIHR3bwoJICB0cmFuc2xhdGVkIHN0cmluZ3MgYXJlbid0IHBhcnRpY3VsYXJseSBoZWxwZnVsLCBzbyBqdXN0IGRlZmluZQoJICBZWUVOQUJMRV9OTFMgdG8gMC4KCjIwMTAtMDQtMDcgMTI6MjQ6MTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2U6IGZpeCBjb21waWxlciB3YXJuaW5nCgkgIEZpeCAnZ3JhbW1hci55OjY2ODogcGFzc2luZyBhcmd1bWVudCAxIG9mIOKAmGdfZnJlZeKAmSBkaXNjYXJkcyBxdWFsaWZpZXJzCgkgIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZScgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDQtMDcgMTY6MDU6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiBhZGQgU2luY2U6IG1hcmtlcnMKCjIwMTAtMDQtMDcgMDk6MzE6MzkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgdGVzdHM6IGdzdHN5c3RlbWNsb2NrOiBkb24ndCBsZWFrIHRoZSBzeXN0ZW0gY2xvY2sKCjIwMTAtMDQtMDUgMDA6MDE6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBidWlsZDogZml4IG91dCBvZiBzb3VyY2VkaXIgYnVpbGQgZm9yIGNoZWNrCgkgIE1vdmUgdGhlIGludGVybmFsIGhlYWRlciB0byBub2Rpc3QgKGFzIHdlIGNvcHkgaXQgYXJvdW5kIGFueXdheSkuCgkgIFVzZSBidWlsZGRpciBpbiBwYXR0ZXJuIHN1YnN0aXR1dGlvbiBmb3IgaXQuCgkgIEZpeGVzICM2MTQ4My4KCjIwMTAtMDQtMDYgMTc6NDY6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZG9jczogZml4IHNvbWUgdHlwb3MKCjIwMTAtMDItMjMgMDk6MTY6NTUgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50KCkKCSAgS2VlcCB0cmFjayBvZiBwZW5kaW5nIG5ld3NlZ21lbnQgaW4gZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50KCkKCSAgdG8gYXZvaWQgcHVzaGluZyBuZXdzZWdtZW50IHVwZGF0ZSBiZWZvcmUgbmV3c2VnbWVudC4KCjIwMTAtMDQtMDQgMTU6MjE6MTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQGVuc29uaWMtZGVza3RvcC5sb2NhbGRvbWFpbj4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkb2NzOiBpbXByb3ZlIGV2ZW50IGRvY3MKCSAgUmVwaHJhc2UgZmlyc3QgcGFyYWdyYXBoIG9mIHNlY3Rpb24gZG9jcy4gQWRkIGRldGFpbCB0byBlb3MgZXZlbnQgZG9jcy4KCjIwMTAtMDMtMjkgMDg6NDM6MDUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0b29scy9nc3QtaW5kZW50OgoJICBnc3QtaW5kZW50OiBBZGQgLS1sZWF2ZS1wcmVwcm9jZXNzb3Itc3BhY2UgZm9yIGluZGVudCAyLjIuMTEKCSAgSXQgd2FzIHByZXZpb3VzbHkgYnJva2VuLCB3aGljaCBpcyB3aHkgd2UgbmV2ZXIgbmVlZGVkIGl0LiBUaGlzIGtlZXBzIGJhY2t3YXJkCgkgIGNvbXBhdGliaWxpdHkgd2l0aCBpbmRlbnQgPD0gMi4yLjExCgoyMDEwLTAzLTMxIDEwOjQzOjA0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBsaWJzOiBwb2ludCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lciB0byAubGEgZmlsZXMKCSAgUG9pbnQgZy1pci1zY2FubmVyIHRvIHRoZSAubGEgZmlsZSBvZiBvdXIgbGlicmFyeSwgd2hpY2ggaG9wZWZ1bGx5CgkgIG1ha2VzIGl0IGZpbmQgdGhlIHJpZ2h0IGRlcGVuZGVuY2llcyBpbiBhbGwgY2FzZXMgKGllLiBvdXIgbG9jYWxseQoJICBidWlsdCBsaWJnc3RyZWFtZXIgYW5kIG5vdCB0aGUgc3lzdGVtLWluc3RhbGxlZCBvbmUpLiBUaGlzIGlzIGFsc28KCSAgaG93IGl0J3MgZG9uZSBpbiBHdGsrIGFuZCBob3cgaXQncyBkb2N1bWVudGVkIGluIHRoZSB3aWtpLCBzZWUKCSAgaHR0cDovL2xpdmUuZ25vbWUub3JnL0dPYmplY3RJbnRyb3NwZWN0aW9uL0F1dG90b29sc0ludGVncmF0aW9uCgkgIEJhc2VkIG9uIHBhdGNoZXMgYnkgVmluY2VudCBVbnR6IGFuZCBBbGFuIEtub3dsZXMuCgkgIEZpeGVzICM2MDM3MTAuCgoyMDEwLTA0LTAyIDAxOjE2OjE2ICswMTAwICBQaGlsaXAgV2l0aG5hbGwgPHBoaWxpcEB0ZWNub2NvZGUuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgdXRpbHM6IFVzZSBHX0dOVUNfQ09OU1QgaW5zdGVhZCBvZiBHX0dOVUNfUFVSRSBmb3IgY29udmVyc2lvbiBmdW5jdGlvbnMKCSAgRml4ZXMgYnVnICM2MTQ2MjkuCgoyMDEwLTA0LTAxIDEzOjE5OjA2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIHRlc3RzOiBEb24ndCBmb3JnZXQgdG8gdW5yZWYgdGhlIG5ld3NlZ21lbnQgZXZlbnQKCjIwMTAtMDQtMDEgMTI6MzQ6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIGNvbW1vbjogVXBkYXRlIHRvIGxhdGVzdCByZXZpc2lvbiBmb3IgbmV3IHN1cHByZXNzaW9ucwoKMjAxMC0wMy0zMSAyMjowNzo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgIHRlc3RzOiBhZGQgdGVzdCBmb3IgdXBkYXRpbmcgcGxheWJhY2sgcmF0ZQoJICBUZXN0cyBpZiBhIHNlZWsgd2l0aCBib3RoIHBvc2l0aW9ucyBiZWluZyBHU1RfU0VFS19UWVBFX05PTkUgaXMgaGFuZGxlZC4KCjIwMTAtMDMtMzEgMTY6NTU6NTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogYWRkIGNvcHkgYW5kIGNvbnYgZnVuY3Rpb24gdG8gYnVmZmVyMiBkcmFmdAoKMjAxMC0wMy0zMSAxMDo1NDo1NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiB1cGRhdGUgYnVmZmVyMiBkcmFmdAoKMjAxMC0wMy0zMSAxMToyNjoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9tYW51YWwvY29tbXVuaWNhdGlvbi5wbmc6CgkqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBkb2NzOiBpbXByb3ZlIGNvbW11bmljYXRpb24gcGljdHVyZSBhbmQgc2VjdGlvbgoJICBJbmRpY2F0ZSB0aGF0IG9ubHkgbWVzc2FnZXMgZ28gdmlhIGJ1cy4gQWxzbyBhZGQgcXVlcmllcyBiZXR3ZWVuIGVsZW1lbnRzLgoKMjAxMC0wMy0zMSAxMDoyNDoxMSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZXZlbnQ6IFVzZSBjb3JyZWN0IHR5cGUgZm9yIHRoZSBtZXNzYWdlIHBhcmFtZXRlciBpbiBnc3RfZXZlbnRfe25ldyxwYXJzZX1fc2lua19tZXNzYWdlCgkgIFRoZSBzdHJ1Y3Qgd29ya2Fyb3VuZCB3YXMgb25seSBuZWNlc3NhcnkgaW4gZ3N0ZXZlbnQuaCwgZ3N0dXRpbHMuaCBrbm93cyBhYm91dCBHc3RNZXNzYWdlCgoyMDEwLTAzLTMxIDA5OjU2OjUwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL21hbnVhbC9jb21tdW5pY2F0aW9uLnBuZzoKCSogZG9jcy9tYW51YWwvZGlhZ3JhbXMtZ2VuZXJhbC5zdmc6CgkqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgIGRvY3M6IGFkZCBjb21tdW5pY2F0aW9uIG92ZXJ2aWV3IHRvIGRvY3MKCSAgQWRkIGEgc2VjdGlvbiB0byB0aGUgYmFzaWNzIHRoYXQgc2hvdyBidWZmZXJzLCBldmVudHMsIG1lc3NhZ2VzIGFuZCBxdWVyaWVzCgkgIHRvZ2V0aGVyIGFuZCBkZXNjcmliZSB0aGUgYmFzaWNzLgoKMjAxMC0wMy0zMCAxNTo1NjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2xsZXIucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItbmV0LnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBwa2djb25maWc6IGFkZCBnaXJkaXIgYW5kIHR5cGVsaWJkaXIgdmFyaWFibGVzIHRvIC5wYyBmaWxlcwoJICBTbyB0aGF0IHRoZSAtYmFzZSBsaWJzIGNhbiBmaWd1cmUgb3V0IHRoZSByaWdodCBpbmNsdWRlIHBhdGhzIGZvciB0aGUKCSAgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHRvb2xzIGV2ZW4gaWYgY29yZSBnb3QgaW5zdGFsbGVkIGludG8gYSBwcmVmaXgKCSAgdGhhdCdzIG5vdCB0aGUgc2FtZSBwcmVmaXggYXMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGlzIGluc3RhbGxlZCBpbgoJICBvciBpdCdzIGJlaW5nIGJ1aWxkIGluIGFuIHVuaW5zdGFsbGVkIGdzdHJlYW1lciBzZXR1cC4KCjIwMTAtMDMtMzAgMTU6MjI6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIGZvciBuZXcgc3RyaW5nCgoyMDEwLTAzLTMwIDE1OjIwOjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBhdXRvZ2VuLnNoOgoJKiBjaGVjay1jaGVja3MubTQ6CgkqIGNvbmZpZ3VyZS5hYzoKCSogbTQvLmdpdGlnbm9yZToKCSogbTQvTWFrZWZpbGUuYW06CgkqIG00L2NoZWNrLWNoZWNrcy5tNDoKCSAgYnVpbGQ6IG1ha2UgYXV0b3Rvb2xzIHB1dCBpdHMgbTQgZmlsZXMgaW50byBtNC8gaW5zdGVhZCBvZiBjb21tb24vbTQvCgkgIFRoaXMgaXMgaG93IHdlIGRvIGl0IGluIHRoZSBvdGhlciBtb2R1bGVzLCBhbmQgZ2V0cyByaWQgb2YgdGhlIGFubm95aW5nCgkgIGRpcnR5IHN0YXR1cyBmb3IgY29tbW9uIHdoZW4gZG9pbmcgZ2l0IHN0YXR1cyAoYXQgbGVhc3Qgb25jZSB5b3UgY2xlYW4KCSAgb3V0IHRoZSBvbGQgZmlsZXMgZnJvbSB0aGVyZSkuCgoyMDEwLTAzLTMwIDEyOjMzOjAxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBidWlsZCBleGFtcGxlcyBzdWJkaXJlY3RvcmllcyBpbiBwYXJhbGxlbCBpZiByZXF1ZXN0ZWQKCjIwMTAtMDMtMjggMjA6NTU6MDkgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IFJlZmFjdG9yIGNhcHMgc3VnZ2VzdGlvbiBvbiBwYWRfYWxsb2MKCSAgUmVmYWN0b3IgdGhlIGhhbmRsaW5nIG9mIHNpbmsgc3VnZ2VzdGlvbiBjYXBzIHZhcmlhYmxlCgkgIHNvIHRoYXQgaXQgYWx3YXlzIGhhcyBhIHJlZiB0byB0aGUgY2FwcyBpdCBwb2ludHMgdG8uCgkgIE1ha2VzIHRoZSBjb2RlIGNsZWFyZXIuCgoyMDEwLTAzLTI5IDE2OjM0OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBhZGQgYSBjb21tZW50IGV4cGxhaW5pbmcgdGhlIHJlYXNvbiBmb3IgdXNpbmcgZnVjbnRpb24gcHJvdG9zIGhlcmUuCgoyMDEwLTAzLTI5IDE2OjEzOjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBhbHdheXMgZGVmaW5lIGR1bW15IGRlYnVnIGNhdGVnb3J5IGFzIGEgZnVuY3Rpb24gcHJvdG90eXBlCgkgIEl0IGRvZXMgbm90IHNlZW0gdG8gbWFrZSBzZW5zZSB0byBkZWZpbmUgdGhpcyBhcyBhIGZ1bmN0aW9uIG9ubHkgaWYgd2UgaGF2ZQoJICB2YXJhcmdzIG1hY3Jvcy4KCjIwMTAtMDMtMjggMTU6MTA6MjAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGJ1aWxkOiBmaXggcmVkZWNsYXJhdGlvbiBlcm9ycyB3aGVuIGJ1aWxkaW5nIHdpdGggLS1nc3QtZGlzYWJsZS1nc3QtZGVidWcKCSAgR2l2ZSBkdW1teSBzeW1ib2xzIGEgdW5pcWUgbmFtZS4KCjIwMTAtMDMtMjggMTQ6NDk6MDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGJ1aWxkOiBtb3ZlIHNvbWUgcHJvdG90eXBlcyBvdXQgb2YgI2lmbmRlZiBHU1RfRElTQUJMRV9HU1RfREVCVUcKCSAgTW92ZSB0aGUgcHJvdG90eXBlcyB1cCB0b2dldGhlci4gV2Ugb25seSBkZWZpbmUgdGhlIG1hY3JvcyBkaWZmZXJlbnRseS4KCSAgRml4ZXMgYnVnICM2MTQxNjcgbW9zdGx5LgoKMjAxMC0wMy0yOSAxNjowNTo0NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogcmVhZGQgdGhlIHVzZSBvZiBHc3REZWJ1Z0Z1bmNQdHIgdHlwZWRlZiBhbmQgdGVsbCB3aHkKCSAgVGhpcyByZXZlcnRzIHRoZSByZWxhdGVkIGNoYW5nZXMgZnJvbSAzZjQ5NTRlNDJkMDQ0MGE3YTU5OGE5MDgzMjVjNDVlYTlkYjA3NmU0CgkgIGFuZCBmZmIwYTRlMTkwNWE4NzMxOTFmOGM4MDIzNDYyNjFlOGM0NDM1MDY1LgoKMjAxMC0wMy0yOSAxMDoyMjo0MyArMDEwMCAgQWxhbiBLbm93bGVzIDxhbGFuQGFrYmtob21lLmNvbT4KCgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICBuZXQ6IGZpeCB0eXBvIGluIG5ldCBjbGllbnQgY2xvY2sgc3RydWN0dXJlCgkgIEl0J3Mgc29ja2FkZHJfaW4sIG5vdCBzb2NrYWRkcl9pZC4KCjIwMTAtMDMtMjYgMTc6MTI6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBhZGQgY3J1ZnQgYWxlcnQgZm9yIGNvbW1vbi9zaGF2ZSoKCjIwMTAtMDMtMjggMjE6MDI6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogRml4IGJ1aWxkIGF0IGxlYXN0IHVudGlsIHRoZSBjb3JyZWN0IGZpeCBpcyBmb3VuZAoJICBTZWUgYnVnICM2MTQxNjcuCgoyMDEwLTAzLTI4IDE5OjEzOjIyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBNYWtlIHN0cnVjdHVyZSBhYmJyZXZpYXRpb25zIGFycmF5IG9uZS10aW1lIGluaXRpYWxpemF0aW9uIHRocmVhZHNhZmUKCjIwMTAtMDMtMjggMTg6MDU6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBBZGQgRklYTUUgMC4xMSBmb3IgdXNpbmcgR1NsaWNlIGZvciBhbGxvY2F0aW9uCgoyMDEwLTAzLTI4IDE4OjA1OjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuaDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSAgZ3N0OiBVc2UgR1NsaWNlIGluc3RlYWQgb2Ygbm9ybWFsIGdfbWFsbG9jIGluIG1vcmUgcGxhY2VzCgoyMDEwLTAzLTI4IDEzOjE0OjA2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJKiBnc3QvZ3N0aW5mby5oOgoJICBidWlsZDogbW9yZSBzb21lIHByb3RvdHlwZXMgb3V0IGlmICNpZm5kZWYgR1NUX0RJU0FCTEVfR1NUX0RFQlVHCgkgIFRoZSBidWlsZCB3YXMgZmFpbGluZyBiZWNhc3VlIG9mIGEgbmV3IHdhcm5pbmcuIFRoZXJlIGFyZSBzdGlsbCBmYWlsdXJlcwoJICAodHJhY2tlZCB2aWEgYnVnICM2MTQxNjcpLgoKMjAxMC0wMy0yNSAyMDowNDozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zIGZvciBuZXdseS1hZGRlZCBzdHJpbmdzCgoyMDEwLTAzLTI1IDE5OjU2OjAwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIGRvY3M6IGZpeCBpbnRlcm1pdHRlbnQgbWFrZSBkaXN0Y2hlY2sgZmFpbHVyZXMKCSAgVXNlIC5OT1RQQVJBTExFTCB3aGVuIGJ1aWxkaW5nIGRvY3MuIFRoaXMgYXZvaWRzIGludGVybWl0dGVudAoJICBtYWtlIGRpc3RjaGVjayBmYWlsdXJlcyBsaWtlICdjcDogY2Fubm90IGNyZWF0ZSByZWd1bGFyIGZpbGUKCSAgYGJ1aWxkL2ltYWdlLmVudGl0aWVzJzogRmlsZSBleGlzdHMnIHdoZW4gdXNpbmcgLWpOLgoJICBGaXhlcyAjNTkwNzE4LgoKMjAxMC0wMy0yNSAxODo1Nzo0MCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgZWxlbWVudGZhY3Rvcnk6IEFkZCBGSVhNRSAwLjExIHRvIHJlbW92ZSBHc3RFbGVtZW50RGV0YWlscyBmcm9tIHRoZSBwdWJsaWMgQVBJCgkgIEl0J3Mgbm90IG5lY2Vzc2FyeSBhbnltb3JlIHRvIGV4cG9zZSB0aGlzIGFzIHB1YmxpYyBBUEkgYW5kIHRoaXMgYWxsb3dzCgkgIGVhc2llciBleHRlbnNpb24gb2YgdGhlIGVsZW1lbnQgZGV0YWlscyBieSBuZXcgZmllbGRzLgoKMjAxMC0wMy0yNSAxODo0MzowNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaGFuZGxlIHdyaXRlIGVycm9ycwoJICBIYW5kbGUgd3JpdGUgZXJyb3JzIHRvIHRoZSB0ZW1wb3JhcnkgZG93bmxvYWQgZmlsZSBhbmQgcG9zdCBlcnJvcnMgd2hlbgoJICBzb21ldGhpbmcgd2VudCB3cm9uZy4KCjIwMTAtMDMtMjUgMTg6MTM6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBlbGVtZW50IHF1ZXJ5IGZ1bmN0aW9uCgkgIEFkZCBhbiBlbGVtZW50IHF1ZXJ5IGZ1bmN0aW9uIHRoYXQgaXMgYSBsaXR0bGUgbW9yZSBlZmZpY2llbnQgdGhhbiB0aGUgZ2VuZXJpYwoJICBkZWZhdWx0IHF1ZXJ5IGhhbmRsZXIuCgoyMDEwLTAzLTI1IDE4OjEyOjA2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGltcHJvdmUgZG9jcyBhIGxpdHRsZQoJICBNZW50aW9uIHRoYXQgYSBEVVJBVElPTiBtZXNzYWdlIGRvZXMgbm90IG1lYW4gdGhhdCBvbmUgY2FuIHNhZmVseSBxdWVyeSB0aGUKCSAgZHVyYXRpb24gb24gYSBiaW4sIHRoYXQgb25seSB3b3JrcyB3aGVuIHRoZSBiaW4gaXMgcHJlcm9sbGVkLgoKMjAxMC0wMy0yNSAxODowNToyOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogcmVtb3ZlIGZpeGVkIEZJWE1FCgoyMDEwLTAzLTI1IDE3OjM2OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBhZGQgdGhlIGJ1ZmZlcmluZyBwZXJjZW50IGluIEJVRkZFUklORyBxdWVyeQoKMjAxMC0wMy0yNSAxNzoyMTowMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogaW1wcm92ZSBidWZmZXIgbGV2ZWwgbWVhc3VyZW1lbnQgaW4gZG93bmxvYWQgbW9kZQoJICBLZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50IGJ1ZmZlciBsZXZlbCBpbiB0aGUgY3VycmVudCByYW5nZSBpbiBkb3dubG9hZCBtb2RlIHNvCgkgIHRoYXQgd2UgcG9zdCB0aGUgY29ycmVjdCBidWZmZXJpbmcgbWVzc2FnZXMuCgoyMDEwLTAzLTI1IDE1OjU0OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZG9uJ3QgdXNlIGZhbmN5IHNoZWxsIGZlYXR1cmVzIHdoZW4gaW52b2tpbmcgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHNjYW5uZXIKCSAgSXQncyBQT1NJWCwgYnV0IHRjc2ggZG9lc24ndCBzZWVtIHRvIHN1cHBvcnQgaXQuCgoyMDEwLTAzLTI1IDEzOjQ2OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgbGliczogZml4IFBLR19DT05GSUdfUEFUSCB1c2VkIHdoZW4gY2FsbGluZyBnb2JqZWN0LWludHJvc3BlY3Rpb24gc2Nhbm5lcgoJICBPdXIgb3duIHBrZ2NvbmZpZyBkaXJlY3Rvcnkgc2hvdWxkIGNvbWUgZmlyc3QsIHNvIHRoYXQgcGtnLWNvbmZpZyB1c2VzCgkgIHRoZSBpbi10cmVlIGxpYmdzdHJlYW1lciBhbmQgbm90IHNvbWUgZXh0ZXJuYWwgb25lIHdoZW4gLS1wa2c9Z3N0cmVhbWVyLTAuMTAKCSAgaXMgcGFzc2VkIHRvIGctaXItc2Nhbm5lci4KCSAgU2VlICM2MDM3MTAuCgoyMDEwLTAzLTI1IDEwOjI3OjAwICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEdzdEFkYXB0ZXI6IGFkZCBhIHVuY2hlY2tlZCB2YXJpYW50IG9mIGZsdXNoIGZvciBpbnRlcm5hbCB1c2FnZQoJICBUcmltcyBvZmYgMTAtMjAlIGNwdSB0aW1lIHdoZW4gdXNpbmcgZ3N0X2FkYXB0ZXJfdGFrZVtfYnVmZmVyXQoKMjAxMC0wMy0xOSAxNToxMDowNyAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBBZGQgbmV3IF9VU0VSX1JBVElORyB0YWcKCSAgQWRkcyBhIG5ldyB0YWcgZm9yIHVzZXIgZmF2b3JpdGUgbWVkaWEgcmF0aW5nLgoJICBVc2VyIHJhdGluZyBpbmZvcm1zIGhvdyBtdWNoIChmcm9tIDAgdG8gMTAwKSBhIHVzZXIKCSAgJ2xpa2VzJyBhIG1lZGlhLgoJICBIYXZpbmcgYW4gcGVyY2VudCB1aW50IHJhbmdlIGZvciB0aGlzIGlzIGVhc3kgdG8gbWFwIGludG8gb3RoZXIgc2NhbGVzLAoJICBsaWtlIHNvbWUgcGxheWVycyB0aGF0IGFsbG93IHVzZXJzIHRvIGF0dHJpYnV0ZSAnc3RhcnMnIHRvIGl0cwoJICBtZWRpYS4KCSAgQVBJOiBHU1RfVEFHX1VTRVJfUkFUSU5HCgkgIEZpeGVzICM1MjA2OTcKCjIwMTAtMDMtMjQgMTk6MDI6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGFkZCBtb3JlIGluZm8gaW4gdGhlIGJ1ZmZlcmluZyBxdWVyeQoJICBBZGQgdGhlIGVzdGltYXRlZCBkb3dubG9hZCB0aW1lIGFuZCBlc3RpbWF0ZWQgdGltZSBsZWZ0IHRvIHRoZSBidWZmZXJpbmcgcXVlcnkKCSAgcmVzdWx0cyBhbG9uZyB3aXRoIHRoZSBlc3RpbWF0ZWQgZG93bmxvYWQgYW5kIHBsYXliYWNrIHNwZWVkLgoKMjAxMC0wMy0yNCAxODoxODoxMyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogaW1wbGVtZW50IGZsdXNoaW5nIGluIGRvd25sb2FkIGJ1ZmZlcmluZwoJICBNYWludGFpbiBhIHNlcGFyYXRlIHZhcmlhYmxlIHRvIGNvbnRyb2wgc3JjIGFuZCBzaW5rIGZsb3dyZXR1cm4gdmFsdWVzIHNvIHRoYXQKCSAgd2UgY2FuIHVubG9jayB0aGUgc3JjIHBhcnQgd2l0aG91dCBzaHV0dGluZyBkb3duIHRoZSBzaW5rIHBhcnQuCgkgIEFkZCBmbHVzaGluZyBmb3IgdXBzdHJlYW0gcHVsbCBiYXNlZCBlbGVtZW50cyB0aGF0IHVuYmxvY2tzIG91ciBnZXRyYW5nZQoJICBmdW5jdGlvbi4gVGhpcyBpbXBsZW1lbnRzIHNlZWtpbmcgd2hlbiBibG9ja2luZyBmb3IgbW9yZSBkYXRhLgoJICBBZGQgc29tZSBhcmJpdHJhcnkgdGhyZXNob2xkIGJlZm9yZSBhdHRlbXB0aW5nIGEgc2Vlay4gQWRkIGEgRklYTUUgZm9yIHRoaXMKCSAgYmVjYXVzZSB3ZSBuZWVkIHRvIGZpbmQgYSBzZW5zaWJsZSB0aHJlc2hvbGQgYmFzZWQgb24gdGhlIGlucHV0IHJhdGUuCgoyMDEwLTAzLTI0IDE4OjUwOjAyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1NWNkNTE0IHRvIGMxZDA3ZGQKCjIwMTAtMDMtMjQgMTc6MzI6NTQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIHVudXNlZCBjb2RlCgkgIE9QVF9DRkxBR1Mgd2FzIG5ldmVyIEFDX1NVQlNUKCknZWQgc28gaXQgd2Fzbid0IHVzZWQuIEFuZCB0aGUgbGFzdCB0aW1lCgkgIGl0IHdhcyB0b3VjaGVkIHdhcyBpbiAyMDA1LgoKMjAxMC0wMy0yNCAxNTo0NzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBmaXggbWFrZSBkaXN0Y2hlY2sKCSAgVGhlIGNoYW5nZSBmcm9tIEdTVF9BTExfQ0ZMQUdTIHRvIEdTVF9PUFRJT05fQ0ZMQUdTIGRyb3BwZWQgdGhlIGluY2x1ZGVzLAoJICBwdXR0aW5nIHRoZW0gYmFjayBmaXhlcyBtYWtlIGRpc3RjaGVjay4KCjIwMTAtMDMtMjQgMTU6MTU6MjMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgRml4IHRlc3RzIGFmdGVyIHNldF9lbGVtZW50X2RldGFpbHMoKSBkZXByZWNhdGlvbgoKMjAxMC0wMy0yNCAxMzozMzo1OCArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlOiBGaXggYW5kIHJlc3RydWN0dXJlIGxvZ2ljCgoyMDEwLTAzLTE5IDIyOjM2OjA3ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBEZXByZWNhdGVkIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzKCkKCSAgVXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpIGluc3RlYWQuIElmIHlvdSB3YW50IHRvCgkgIGNvbnZlcnQgYXV0b21hdGljYWxseSwgaGVyZSdzIGEgc2NyaXB0OgoJICBmb3IgZmlsZSBpbiBgZ2l0IGdyZXAgLWwgR3N0RWxlbWVudERldGFpbHNgOyBkbwoJICBzZWQgLWkgLW4gLXIgJwoJICAxaAoJICAxIUgKCSAgJCB7CgkgIGcKCSAgcy8oKFwvXCpbXlxuXSpcKlwvKT9cbikqW15cbl0qR3N0RWxlbWVudERldGFpbHMgLiogPVxzKkdTVF9FTEVNRU5UX0RFVEFJTFNccypcKChcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccyooXCJbXlwiXSpcIlxzKikqKVwpO1xuKiguKilnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyBcKChbXixdKiksXHMqW14pXSpcKS9cblxuXDVnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgKFw2LCBcMykvCgkgIHMvKChcL1wqW15cbl0qXCpcLyk/XG4pKlteXG5dKkdzdEVsZW1lbnREZXRhaWxzIC4qID1ccypce1xzKihcIlteXCJdKlwiLFxzKlwiW15cIl0qXCIsXHMqXCJbXlwiXSpcIixccyooXCJbXlwiXSpcIlxzKikqKVx9O1xuKiguKilnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlscyBcKChbXixdKiksXHMqW14pXSpcKS9cblxuXDVnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUgKFw2LCBcMykvCgkgIHAKCSAgfScgJGZpbGUKCSAgfi9nc3QvZ3N0cmVhbWVyL3Rvb2xzL2dzdC1pbmRlbnQgJGZpbGUKCSAgZG9uZQoKMjAxMC0wMy0yNCAxMDo1NzowOCArMDEwMCAgUGhpbGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgY29tcGlsZXIgd2FybmluZwoKMjAxMC0wMy0yMyAxOToyNTowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IHJlbW92ZSB1bnVzZWQgQ0hFQ0tfQ0ZMQUdTIGFuZCBDSEVDS19MSUJTIGZyb20gTWFrZWZpbGUuYW0KCjIwMTAtMDMtMjMgMTk6MjM6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogYWRkIG1hcHBpbmcgZm9yICh1aW50KSB0byBhbGxvdyBkZXNlcmlhbGlzYXRpb24gb2YgdW5zaWduZWQgaW50ZWdlcnMKCSAgVW5zaWduZWQgaW50cyBhcmUgdXNlZCBpbiB0YWdsaXN0cywgd291bGQgYmUgbmljZSB0byBiZSBhYmxlIHRvCgkgIGRlc2VyaWFsaXNlIHRoZW0sIGVzcC4gaW4gY29ubmVjdGlvbiB3aXRoIHRoZSB0YWdpbmplY3QgQVBJLgoKMjAxMC0wMy0yMyAxOToyNToyOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogaW1wbGVtZW50IHNlZWtpbmcgaW4gZG93bmxvYWQgbW9kZQoJICBXaGVuIGluIGRvd25sb2FkIG1vZGUgYW5kIHRoZSByZXF1ZXN0ZWQgb2Zmc2V0IGlzIHRvbyBmYXIgYXdheSwgYXR0ZW1wdCB0byBkbyBhCgkgIHNlZWsgcmVxdWVzdCB0byBmZXRjaCB0aGUgZGF0YS4KCSAgS2VlcCB0cmFjayBvZiBhbGwgZG93bmxvYWRlZCBwYXJ0cyBhbmQgbWVyZ2UgcmFuZ2VzIHdoZW4gbmVlZGVkLgoJICBGaXhlcyAjNjAwODc3CgoyMDEwLTAzLTIyIDExOjA2OjIxIC0wMzAwICBBbmRyw6kgRGllYiBNYXJ0aW5zIDxhbmRyZS5kaWViQGdtYWlsLmNvbT4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZS5zaDogdXNlIGF1dG9nZW4uc2ggaW5zdGVhZCBvZiBhdXRvcmVnZW4uc2ggb24gZnJlc2ggcmVwb3NpdG9yaWVzLgoJICBGaXhlcyAjNjEzNTkzLgoKMjAxMC0wMy0yMiAxNzoxMDowNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dldHRleHQuaDoKCSAgZ2V0dGV4dDogYnVpbGQgZml4ZXM6ICNpZiAtPiAjaWZkZWYKCjIwMTAtMDMtMTggMTA6MjI6MDkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2UtbGF1bmNoOiBtYWtlIGRlbGF5ZWQgc2V0IHJlY3Vyc2l2ZQoJICBSaWdodCBub3cgZGVsZXllZCBzZXQgd291bGQgb25seSB0cnkgZm9yIGZpcnN0IHNldCBvZiBjaGlsZHJlbi4gV2UgbmVlZCB0byBrZWVwCgkgIHRyeWluZyB0byBzdXBwb3J0IGFyYml0cmFyeSBkZWVwIGhpZXJhcmNoaWVzIChsaWtlIGluIHBsYXliaW4yIHdpdGggYXV0bypzaW5rcykuCgkgIEFsc28gR3N0QmluIHdvdWxkIG5lZWQgdG8gYWN0dWFseSBlbWl0IHRoZSBjaGlsZC1hZGRlZC9yZW1vdmVkIHNpZ25hbCBhcyBpdAoJICBpbXBsZW1lbnRzIHRoZSBpZmFjZS4gRml4ZXMgIzYxMzIxNS4KCjIwMTAtMDMtMjIgMDg6NDA6MzQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgcGtnY29uZmlnOiBVc2UgQExJQk1AIGluc3RlYWQgb2YgLWxtCgoyMDEwLTAzLTE5IDAxOjAyOjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIHBrZ2NvbmZpZzogYWRkIGJhY2sgc3VwcG9ydCBmb3IgYnVpbGRkaXIgIT0gc3JjZGlyIGNhc2UgaW4gdW5pbnN0YWxsZWQgc2V0dXAKCSAgQXR0ZW1wdCB0byBhZGQgYmFjayBzdXBwb3J0IGZvciBidWlsZGRpciAhPSBzcmNkaXIuIFVzZSBhYnNvbHV0ZSBwYXRocwoJICBpbnN0ZWFkIG9mIHJlbGF0aXZlIHBhdGhzIGJhc2VkIG9uIHBjZmlsZWRpciB0aGlzIHRpbWUgdG8gbWFrZSB0aGluZ3MKCSAgY2xlYXJlciAtIHRoZXJlJ3Mgbm90IHJlYWxseSBhbnkgbmVlZCBmb3IgdW5pbnN0YWxsZWQgdHJlZXMgdG8gYmUKCSAgcmVsb2NhdGFibGUgd2l0aG91dCByZS1ydW5uaW5nIGNvbmZpZ3VyZS4KCjIwMTAtMDMtMTggMTE6MTg6MzkgKzAwMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBJbXBsZW1lbnQgUW9TIG1lc3NhZ2UgcG9zdGluZwoJICBBbmQgc29tZSBtb3JlIGZvciBidWcgIzMyMjk0NwoKMjAxMC0wMy0xOCAxMzo0MTozNSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBjYXRjaCwgcGFyc2UgYW5kIHN0b3JlIFFvUyBldmVudCB2YWx1ZXMKCSAgQ2F0Y2gsIHBhcnNlIGFuZCBzdG9yZSB0aGUgUW9TIHZhbHVlcyBmcm9tIFFvUyBldmVudHMgZm9yIGxhdGVyIHVzZS4KCjIwMTAtMDMtMTcgMTU6Mjk6NDggKzAwMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEltcGxlbWVudCBRb1MgbWVzc2FnZSBwb3N0aW5nIGluIGJhc2VzaW5rCgkgIFBvc3QgUW9TIG1lc3NhZ2VzIHdoZW4gZnJhbWVzIGFyZSBkcm9wcGVkLgoJICBUaGlzIGdvZXMgYSBsaXR0bGUgZnVydGhlciB0b3dhcmRzIHJlc29sdmluZyBidWcgIzMyMjk0NwoKMjAxMC0wMy0xNyAxOToyNjozMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGltcHJvdmUgZG9jcyBhIGxpdHRsZQoKMjAxMC0wMy0xNyAxOToxNjo0MiArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgbWVzc2FnZTogYWRkIFFvUyBtZXNzYWdlIHRvIGluZm9ybSBhcHBzIG9mIGxvc3QgZGF0YQoJICBUaGlzIGhhcyBiZWVuIGltcGxlbWVudGVkIGFzIHBlciBwYXJ0LXFvcy50eHQgYW5kIHBhcnRpYWxseSBhZGRyZXNzZXMKCSAgYnVnICMzMjI5NDcKCjIwMTAtMDMtMTcgMTY6NDQ6MDUgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICB0ZXN0OiBSZW1vdmUgbmVlZGxlc3MgY2FzdAoJICBHc3RWYWx1ZUFycmF5Lm5hbWUgaXMgY29uc3Qgbm93CgoyMDEwLTAzLTE3IDE0OjMzOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIFJldmVydCAiQWRkIHNyY2RpciB0byBpbmNsdWRlcyBmb3Igb3V0LW9mLXNvdXJjZSBidWlsZHMiCgkgIEkgZG9uJ3Qga25vdyBob3cgdGhpcyBldmVyIHdvcmtlZCwgYXMgaXQgc2VlbXMgdG8gcHV0IC1JLi8uLgoJICBhbmQgLUkuLy4uL2xpYnMgdmVyYmF0aW0gaW50byB0aGUgaW5jbHVkZXMsIGF0IGxlYXN0IHdpdGgKCSAgY3VycmVudCBhdXRvdG9vbHMgdmVyc2lvbnMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMjc5YTgwZmYyN2JhNGM5MGY1Mjk4MWU4OWU3MTBlYjExODFiYzIwMS4KCjIwMTAtMDMtMTcgMTU6NDY6NDYgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIGRvY3M6IGF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIGV2ZW50cyBhbmQgbWVzc2FnZXMKCjIwMTAtMDMtMTcgMTI6MTg6MTggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkgIGNvbnRyb2xsZXI6IE1hcmsgcHJvcGVydHlfbmFtZSBpbiBHc3RWYWx1ZUFycmF5IGFzIGNvbnN0CgkgIFRoaXMgd29uJ3QgYW5kIHNob3VsZCBub3QgYmUgY2hhbmdlZCBmcm9tIGFueSBBUEkKCjIwMTAtMDMtMTcgMTI6NDU6NDkgKzAyMDAgIE1hcnQgUmF1ZHNlcHAgPGxlaW9AZ2VudG9vLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDEwLTAzLTE2IDA5OjU2OjE2ICswMjAwICBNYXJ0IFJhdWRzZXBwIDxsZWlvQGdlbnRvby5vcmc+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkb2NzOiBhZGQgbWlzc2luZyAiU2luY2U6IDAuMTAuMjYiIG1hcmtlciBmb3IgZ3N0X2RhdGFfcXVldWVfbmV3X2Z1bGwoKQoKMjAxMC0wMy0xNiAwOTo0MjoyMSArMDIwMCAgTWFydCBSYXVkc2VwcCA8bGVpb0BnZW50b28ub3JnPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2NzOiBmaXggc2luY2UgdGFnIGZvciBnc3Rfc3RydWN0dXJlX2lkX2hhc19maWVsZF90eXBlZCgpCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfaGFzX2ZpZWxkX3R5cGVkIHdhcyBhZGRlZCBpbiAwLjEwLjI2LCBub3QgMC4xMC4xNi4KCSAgQXBwYXJlbnQgdHlwbyBpbiBjb21taXQgZjllM2I3MmYgd2hlbiB0aGUgQVBJIHdhcyBhZGRlZC4KCjIwMTAtMDMtMTcgMTA6NTM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkgIGRvY3M6IGZpeCBTaW5jZSBtYXJrZXJzIGZvciBnc3RfYnl0ZV93cml0ZXJfcHV0X2Zsb2F0KigpCgkgIEFzIHRoZSBoZWFkZXJzIHdlcmUgYnJva2VuIGluIDAuMTAuMjYgdGhlIGZ1bmN0aW9ucyB3ZXJlbid0IHJlYWxseQoJICB1c2FibGUgYmFjayB0aGVuLCBzbyB3ZSBzaG91bGQgYWR2ZXJ0aXNlIHRoZW0gYXMgYmVpbmcgdGhlcmUgb25seQoJICBzaW5jZSAwLjEwLjI3LgoJICBTcG90dGVkIGJ5IE1hcnQgUmF1ZHNlcHAuCgoyMDEwLTAzLTE2IDE3OjU2OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZ3N0OiB1c2UgI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiBpbnN0ZWFkIG9mICNpZm5kZWYgR0xJQk1BQ1JPCgkgIGZvciBiZXR0ZXIgZ3JlcHBhYmlsaXR5IGF0IHRoZSB0aW1lIHdlIGJ1bXAgR0xpYiB2ZXJzaW9uIHJlcXVpcmVtZW50cy4KCjIwMTAtMDMtMTQgMTE6NDc6MjMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICB0eXBlZmluZDogZGVhY3RpdmF0ZSBwYWQgaWYgd2UgY2FuJ3QgZ2V0IGxlbmd0aCBvciBpdCdzIGEgbGVuZ3RoIG9mIHplcm8uCgkgIEZpeGVzIGlzc3VlcyB3aGVuIHJlLXVzaW5nIHR5cGVmaW5kIGFmdGVyIGEgZmlsZSBvZiBsZW5ndGggemVyby4KCjIwMTAtMDMtMTYgMTA6MzI6MTIgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEFjY2VwdCBub24tZml4ZWQgY2FwcyBzdWdnZXN0aW9ucwoJICBXaGVuIGRvaW5nIHBhZF9hbGxvY3MsIHVzZSBub24tZml4ZWQgY2FwcyBzdWdnZXN0aW9ucyBhbmQKCSAgdHJ5IHRvIGZpeGF0ZSB0aGVtIGJlZm9yZSB1c2luZy4gVGhpcyBtYWtlcyBwb3NzaWJsZSB0bwoJICBoYXZlIHN1Z2dlc3RlZCBidWZmZXIgc2l6ZSB3aXRoIDAgaW4gYmFzZXRyYW5zZm9ybSBqdXN0CgkgIHRvIHNpZ25hbCB1cHN0cmVhbSBhIHJlbmVnb3RpYXRpb24gaXMgbmVlZGVkCgkgIEZpeGVzICM1NzYyMzQKCSAgRml4ZXMgIzYwOTA0NgoKMjAxMC0wMy0xNiAxMDo0MDo0MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogbWVyZ2UgUW9TIG1lc3NhZ2UgZmllbGRzCgkgIFRoZXJlIHdhcyBhbHJlYWR5IGEgc2VjdGlvbiBhYm91dCBRb1MgbWVzc2FnZXMgdGhhdCBpcyBub3cgbWVyZ2VkIHdpdGggdGhlIG5ldwoJICBpbmZvcm1hdGlvbi4KCjIwMTAtMDMtMTYgMTA6NDQ6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIHB3ZzogbWVudGlvbiBob3cgdG8gYnVpbGQgYWZ0ZXIgdXNpbmcgdGhlIHByb2plY3Qgc3RhbXAKCjIwMTAtMDMtMTYgMDk6NTY6NDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIHRhc2s6IHNucHJpbnRmIG5lZWRzIHRvIGluY2x1ZGUgInN0ZGlvLmgiCgoyMDEwLTAzLTE1IDE4OjQ4OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBkb2NzOiB1cGRhdGUgUU9TIGRvY3MgdG8gaW5jbHVkZSBRT1MgbWVzc2FnZXMKCSAgQWRkIHNvbWUgZG9jcyBhYm91dCB0aGUgdmFsdWVzIG5lZWRlZCBmb3IgYSBRb1MgbWVzc2FnZSBhbmQgc29tZSB1c2UKCSAgY2FzZXMuCgkgIFNlZSAjMzIyOTQ3CgoyMDEwLTAzLTE1IDE3OjA3OjU5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiB1c2UgYmlvbmljL2xpYmMgZnJpZW5kbHkgYXJndW1lbnRzIHRvIHByY3RsCgkgIHByY3RsIGlzIHN1cHBvc2VkIHRvIHRha2UgNSBhcmd1bWVudHMuIEl0IHVzZWQgdG8gd29yayB3aXRoIDIgYXJndW1lbnRzIG9uIHNvbWUKCSAgdmVyc2lvbnMgb2YgbGliYyBiZWNhdXNlIGl0IGlzIGRlZmluZWQgYXMgYSB2YXJhZ3MgZnVuY3Rpb24gdGhlcmUuCgkgIFNlZSAjNjExOTExCgoyMDEwLTAzLTE1IDE1OjA3OjM1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogdXBkYXRlIGRvY3MuCgoyMDEwLTAzLTE1IDE0OjQ0OjUxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIHRhZ2xpc3Q6IFdvcmsgYXJvdW5kIGd0ay1kb2MgcHJvYmxlbQoKMjAxMC0wMy0xNSAxNDo0NDoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogVXNlIGNvcnJlY3QgZ3RrLWRvYyB3b3JrYXJvdW5kCgoyMDEwLTAzLTE1IDE0OjA1OjM1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogSGFuZGxlIGl0ZXJhdG9yIHJlc3luY3MgaW4gZ3N0X3BhZF9wcm94eV9zZXRjYXBzKCkKCSAgRml4ZXMgYnVnICM2MTI4ODEuCgoyMDEwLTAzLTE1IDE0OjQ4OjE5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dGFzay5jOgoJICB0YXNrOiBjb25maWd1cmUgdGhlIG9iamVjdCBuYW1lIGFzIHRocmVhZCBuYW1lCgkgIFdoZW4gd2UgaGF2ZSBwcmN0bCBhdmFpbGFibGUsIHVzZSBpdCB0byBzZXQgdGhlIGNvbmZpZ3VyZWQgb2JqZWN0IG5hbWUgYXMgdGhlCgkgIHRocmVhZCBuYW1lIGZvciBiZXR0ZXIgZGVidWdnaW5nLgoJICBCYXNlZCBvbiBwYXRjaCBieSBSb2JlcnQgU3dhaW4uCgoyMDEwLTAzLTE1IDEzOjQ4OjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IHNldCBhIGdvb2QgbmFtZSBvbiB0aGUgdGFzayBvZiB0aGUgcGFkCgkgIFVzZSB0aGUgZWxlbWVudDpwYWQgbmFtZXMgdG8gY29uZmlndXJlIGEgZ29vZCBuYW1lIGZvciB0aGUgcGFkIHRhc2suCgoyMDEwLTAzLTE1IDEyOjEzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suaDoKCSAgdGFzazogcmV0YWIKCjIwMTAtMDMtMTUgMTA6MjY6MTggKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgbG9nZ2luZzogcmVtb3ZlIGV4dHJhIG5ld2xpbmUKCjIwMTAtMDMtMDQgMjM6MzY6NTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiB0dXJuIGdfcmV0dXJuX2lmX2ZhaWwgaW50byBnX2Fzc2VydC4KCSAgVGhpcyBlaXRoZXIgbXVzdCBuZXZlciBoYXBwZW4gKHdoaWNoIG1ha2VzIHNlbnNlIGluIHRoaXMgY2FzZSkgYW5kIHRodXMgc2hvdWxkCgkgIHVzZSBhc3NlcnQoKSBvciB3ZSBzaG91bGQgdXNlIGEgdHJhZGl0aW9uYWwgaWYgKHBvbGxfZGF0YS0+bWVzc2FnZSkgcmV0dXJuOwoJICB0byBhdm9pZCBkaWZmZXJuZXQgYmVoYXZpb3VyIG9mIGludGVuYWwgYXBpIHdoZW4gY29tcGlsaW5nIHdpdGgKCSAgR19ESVNBQkxFX0NIRUNLUy4KCjIwMTAtMDMtMDMgMjM6Mzc6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IG1vdmUgdGhlIGNoZWNrIHRvIHRoZSBwdWJsaWMgYXBpLgoJICBUaGlzIGF2b2lkcyBjcmVhdGluZyBlbXB0eSBjYXBzIGFuZCBkZXN0cm95aW5nIHRoZW0gaW4gdGhlIGNhc2Ugb2YgYW4gZXJyb3IuIFdlCgkgIGFsc28gYXZvaWQgZG91YmxlIGNoZWNraW5nIGluIG90aGVyIGNvZGUgcGF0aCB3aGVyZSB3ZSBjYWxsIHRoZSBpbnRlcm5hbCBhcGkuCgoyMDEwLTAzLTAzIDIzOjM0OjU4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBjYXBzOiB0aGlzIGlzIGludGVybmFsIEFQSSB3aGVyZSB3ZSBuZWVkIHRvIGVuc3VyZSAhTlVMTCBoaWdoZXIgdXAKCjIwMTAtMDMtMDMgMjE6NTA6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZ3N0OiB0aGlzIGlzIGFuIGludGVybmFsIGZ1bmN0aW9uIHdoZXJlIHdlIGFscmVhZHkgZW5zdXJlICFOVUxMIHdoZW4gY2FsbGluZwoKMjAxMC0wMi0yNiAwOToyOToyMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogZml4IGNhc2Ugb2YgcGFkIGZsYWcKCSAgRHVlIHRvIGEgdHlwbyB0aGUgY29kZSB3YXMgYWx3YXlzIHNob3dpbmcgdGhlIGZsYWcgYXMgJ3MnIChsb3dlciBjYXNlKS4KCSAgRml4ZXMgIzYxMTA3NQoKMjAxMC0wMi0yMyAyMzo1MDozNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZGVidWc6IGFkZCBwcmV0dHkgcHJpbnRlciBmb3IgZXZlbnRzCgkgIEFkZGVyIGlzIHVzaW5nIEdTVF9QVFJfRk9STUFUIGZvciBldmVudHMgYWxyZWFkeSwgc28gd2UgbWlnaHQgYWN0dWFseQoJICBpbXBsZW1lbnQgdGhpcyBhbmQgcHJpbnQgb3V0IHNvbWUgdXNlZnVsIGluZm8uCgoyMDEwLTAzLTEzIDExOjAzOjU5ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIEFkZCBzb21lIDAuMTEgRklYTUVzIGZvciBHc3RQbHVnaW5Jbml0RnVuYwoJICBTZWUgOGZlNjMwMDBkZTMxYmIyYmNmMzQ2ZDU5MjMwZGVhMDYxMTc5OTdjZCBmb3Igd2h5IGhhdmluZyBhIFRSVUUvRkFMU0UKCSAgcmV0dXJuIHZhbHVlIGlzIGEgYmFkIGlkZWEuCgkgIEkndmUgc2Nhbm5lZCBhIGZldyBwbHVnaW5zIGFuZCB0aGV5IGdlbmVyYWxseSBnZXQgaXQgd3JvbmcgYW5kIGFyZW4ndAoJICB1bmxvYWRhYmxlIHdoZW4gdGhleSByZXR1cm4gRkFMU0UuCgoyMDEwLTAzLTEyIDE5OjA3OjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSBmb3IgbmV3IHN0cmluZ3MKCjIwMTAtMDMtMTIgMTk6MDU6MTYgKzAwMDAgIExlbyBTaW5nZXIgPGxzaW5nZXJAY2FsdGVjaC5lZHU+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBmaXggY29tcGlsYXRpb24gZXJyb3IgaWYgSEFWRV9SRUdJU1RFUl9QUklOVEZfU1BFQ0lGSUVSIGlzIHVuZGVmaW5lZAoJICBVc2UgI2lmIEhBVkVfRk9PIGluc3RlYWQgb2YgI2lmZGVmIEhBVkVfRk9PLgoJICBGaXhlcyAjNjEyNzMzLgoKMjAxMC0wMy0xMiAxNjo0Mjo0NyArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBwbHVnaW5zOiBEbyBub3QgZXZlciB1bmxvYWQgYSBwbHVnaW4gYWZ0ZXIgY2FsbGluZyBpbnRvIGl0CgkgIFRoaXMgaXMgd2hhdCBjYW4gaGFwcGVuIGluIGEgcGx1Z2luX2luaXQgZnVuY3Rpb246CgkgIC0gQW4gZWxlbWVudCBiYXNlZCBvbiBHc3RCYXNlU2luayBpcyByZWdpc3RlcmVkCgkgIC0gT3RoZXIgZWxlbWVudHMgZmFpbCB0byByZWdpc3RlcgoJICAtIFRoZSBwbHVnaW5faW5pdCBmdW5jdGlvbiByZXR1cm5zIEZBTFNFCgkgIE5vdyBpZiB0aGlzIHRoZSBwbHVnaW4gaXMgdGhlIGZpcnN0IHBsdWdpbiB0byBsaW5rIGFnYWluc3QKCSAgbGliZ3N0YmFzZS5zbywgaXQgd2lsbCBoYXZlIGNhdXNlZCBsaWJnc3RiYXNlLnNvIHRvIGJlIGxvYWRlZCBhbmQgc3RhdGljCgkgIHN0cmluZ3MgZnJvbSB0aGF0IGxpYnJhcnkgd2lsbCBoYXZlIGJlZW4gYWRkZWQgdG8gZ29iamVjdCB3aGlsZQoJICByZWdpc3RlcmluZyBHc3RCYXNlU2luay4KCSAgU28gdW5sb2FkaW5nIHRoZSBwbHVnaW4gd2lsbCBjYXVzZSB0aG9zZSBzdHJpbmdzIHRvIGdvIHN0YWxlIGFuZCB0aGUKCSAgbmV4dCBwbHVnaW4gdXNpbmcgR3N0QmFzZVNpbmsgd2lsbCBjcmFzaC4gU28gd2UgbXVzdCBub3QgdW5sb2FkIG1vZHVsZXMKCSAgYWZ0ZXIgY2FsbGluZyBpbnRvIHRoZW0gZXZlci4KCSAgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD01NzI4MDAKCjIwMTAtMDMtMTIgMTU6MzY6MzggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBEb24ndCBwYXNzIE5VTEwgdG8gdGhlIEdTZXF1ZW5jZSBBUEkKCjIwMTAtMDMtMTIgMTM6MzM6MDAgKzAwMDAgIFJvYmVydCBTd2FpbiA8cm9iZXJ0LnN3YWluQGNvbGxhYm9yYS5jby51az4KCgkqIHNjcmlwdHMvZ2l0LXVwZGF0ZS5zaDoKCSAgZ2l0LXVwZGF0ZTogRml4IGVycm9yIHJldHVybiB2YWx1ZSBhbmQgbWFrZSB0aGUgc2NyaXB0IGV4aXQgb24gZXJyb3JzCgkgIE5ld2VyIHZlcnNpb25zIG9mIEJBU0ggKDQueD8pIHNlZW0gdG8gZGlzbGlrZSB1c2luZyAtMSBmb3IgYSByZXR1cm4uIEV2ZW4KCSAgdGhvdWdoIGl0J3MgZG9jdW1lbnRlZCBhcyBiZWluZyBzaWduZWQsIEJBU0ggY29tcGxhaW5zIGFib3V0IGl0LCBzbyB1c2UKCSAgMjU1IGluc3RlYWQuCgoyMDEwLTAzLTEyIDEzOjU0OjI5ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBlMjcyZjcxIHRvIDU1Y2Q1MTQKCjIwMTAtMDItMTcgMTM6MDI6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGdzdDogVXNlIEdfVkFMVUVfQ09MTEVDVF9JTklUIGlmIGF2YWlsYWJsZQoJICBUaGlzIGJyaW5ncyB0b3RhbCBjYWxsIHNwZWVkdXBzIGJldHdlZW4gNSUgYW5kIDI1JS4KCSAgZ3N0X2NhcHNfc2V0X3NpbXBsZV92YWxpc3Q6ICs1JQoJICBnc3Rfc3RydWN0dXJlX3NldF92YWxpc3Q6ICsgMTAlCgkgIGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbGlzdDogKzI1JQoJICBnc3RfdGFnX2xpc3RfYWRkX3ZhbGlzdDogKzUlCgkgIE1lYXN1cmVkIHVzaW5nIHZhbGdyaW5kIHdoZW4gcnVuIG92ZXIgdGhlIGRpc2NvdmVyeSBvZiAyMDAgbWVkaWEgZmlsZXMuCgkgIEZpeGVzICM2MTAyNTYKCjIwMTAtMDMtMTEgMjA6Mjk6MjkgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIHdpbjMyOiBGaXggYnVpbGQgZmFpbHVyZXMgb2YgdGVzdHMKCjIwMTAtMDMtMDkgMjA6Mzg6NDcgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnczogQWRkcyBuZXcgZ2VvIGxvY2F0aW9uIHRhZ3MKCSAgQWRkcyBuZXcgdGFncyBHU1RfVEFHX0dFT19MT0NBVElPTl9DT1VOVFJZLAoJICBHU1RfVEFHX0dFT19MT0NBVElPTl9DSVRZIGFuZCBHU1RfVEFHX0dFT19MT0NBVElPTl9TVUJMT0NBVElPTi4KCSAgQVBJOiBHU1RfVEFHX0dFT19MT0NBVElPTl9DT1VOVFJZCgkgIEFQSTogR1NUX1RBR19HRU9fTE9DQVRJT05fQ0lUWQoJICBBUEk6IEdTVF9UQUdfR0VPX0xPQ0FUSU9OX1NVQkxPQ0FUSU9OCgkgIEZpeGVzICM2MTI0MTAKCjIwMTAtMDMtMTEgMTg6MzY6MzIgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3QuYzoKCSAgd2luMzI6IEFkZCBwcm90b3R5cGUgZm9yIERsbE1haW4oKQoKMjAxMC0wMy0xMSAxMTo0NjowOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0xMi0yOCAxNzoyNToyMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGdzdHJlYW1lcjogcmVtb3ZlIHVubmVlZGVkIGNhc3RzCgkgIEdfUEFSQU1fU1BFQ19WQUxVRV9UWVBFIGRvZXMgYW4gZXhwZW5zaXZlIHR5cGUgY2hlY2ssIHdoZXJlYXMgdGhlCgkgIHZhbHVlX3R5cGUgZmllbGQgaXMgYSBwdWJsaWMgZmllbGQsIHNvIHdlIGNhbiBqdXN0IHVzZSBpdCBkaXJlY3RseS4KCjIwMTAtMDMtMTEgMTE6Mzk6NDAgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgUmVtb3ZlIC1XaW5saW5lIGZsYWcgYWdhaW4KCSAgSXQgdHJpZ2dlcnMgZm9yIGEgbG90IG9mIEdTdHJlYW1lciBBUEkgKGV2ZW4gdGhvdWdoIHRob3NlIHRyaWdnZXJzIGFyZQoJICB3cm9uZyBtb3N0IG9mIHRoZSB0aW1lKS4KCSAgSSBtaXNzZWQgaXQgYmVjYXVzZSBpdCBvbmx5IHRyaWdnZXJzIHdpdGggLU8yLCBhbmQgSSB3YXMgdXNpbmcgLU8wLgoKMjAxMC0wMy0xMSAxMToyMDozNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkZjhhN2M4IHRvIGUyNzJmNzEKCjIwMTAtMDMtMTEgMTE6MTA6NDQgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgQWRkIGEgYnVuY2ggbW9yZSB3YXJuaW5nIGZsYWdzIHRvIGNvbmZpZ3VyZQoJICBOb25lIG9mIHRoZXNlIGZsYWdzIGNhdXNlIHdhcm5pbmdzIGFueW1vcmUsIHNvIG5vIGZpeGVzIG5lY2Vzc2FyeS4KCSAgVGhlIGZsYWdzIGFyZToKCSAgLVdmb3JtYXQtbm9ubGl0ZXJhbAoJICAtV2Zvcm1hdC1zZWN1cml0eQoJICAtV29sZC1zdHlsZS1kZWZpbml0aW9uCgkgIC1XY2FzdC1hbGlnbgoJICAtV2lubGluZQoJICAtV2luaXQtc2VsZgoJICAtV21pc3NpbmctaW5jbHVkZS1kaXJzCgkgIC1XYWRkcmVzcwoJICAtV2FnZ3JlZ2F0ZS1yZXR1cm4KCSAgLVduby1tdWx0aWNoYXIKCSAgLVduZXN0ZWQtZXh0ZXJucwoKMjAxMC0wMy0wMiAyMjo1ODowNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGRldGFpbHMuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhcnNlLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9wYXJzZS90eXBlcy5oOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuaDoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgRml4ZXMgZm9yIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLXByb3RvdHlwZXMKCSAgQWxzbyBhZGRzIHRob3NlIGZsYWdzIHRvIHRoZSBjb25maWd1cmUgd2FybmluZyBmbGFncwoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTExIDA5OjM5OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBmaXggcHJpbnRmIGZvcm1hdAoJICBVc2UgJXUgdG8gcHJpbnQgdW5zaWduZWQgaW50ZWdlcnMuCgoyMDEwLTAzLTExIDEwOjI5OjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL3R5cGVmaW5kaGVscGVyLmM6CgkgIHRlc3RzOiBjYXN0IHRoZSBhcmcuIHRvIGZpeCB0aGUgYnVpbGQgd2l0aCBuZXcgY29tcGlsZXIgb3B0cy4KCSAgVGhpcyBpcyB1Z2x5LiBJIGFtIG5vdCBzdXJlIGlmIHdlIHJlYWxseSB3YW50IHRvIGhhdmUgc3VjaCBjYXN0cyBhbGwgb3ZlciB0aGUKCSAgcGxhY2UuCgoyMDEwLTAzLTExIDEwOjE0OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0LWkxOG4tYXBwLmg6CgkqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgaTE4bjogZGVmaW5lIGR1bW15IG5nZXR0ZXh0IGlmIGkxOG4gaXMgZGlzYWJsZWQuCgkgIFdlIGNhbm5vdCBibGluZGx5IHVzZSBnZXR0ZXh0IGZ1bmN0aW9uIGFuZCBub3QgZGVmaW5lIHRoZW0gd2hlbiBub3QgdXNpbmcgZ2V0dGV4dC4KCjIwMTAtMDMtMTEgMTA6MDA6NDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBpMThuOiBmaXggdGhlIGJ1aWxkIHdpdGggaTE4biBkaXNhYmxlZC4KCSAgRG9uJ3QgaW5jbHVkZSBnZXR0ZXh0LmggaWYgIUVOQUJMRV9OTFMuCgoyMDEwLTAzLTA0IDEwOjQ0OjUyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgYnVmZmVyOiBhbGxvdyBjb25maWd1cmFibGUgbWVtb3J5IGFsaWdubWVudC4gRml4ZXMgIzU5NjgzMgoJICBUaGUgYWxpZ25tZW50IGd1YXJhbnRlZWQgYnkgbWFsbG9jIGlzIG5vdCBhbHdheXMgc3VmZmljaWVudC4gRS5nLiB2ZWN0b3IKCSAgaW5zdHJ1Y3Rpb25zIG9yIGhhcmR3YXJlIHN1YnN5c3RlbXMgd2FudCBzcGVjaWZpY2FsbHkgYWxpZ25lZCBidWZmZXJzLiBUaGUKCSAgYXR0YWNoZWQgcGF0Y2ggd2lsbCB1c2UgcG9zaXhfbWVtYWxpZ24gaWYgYXZhaWxhYmxlIHRvIGFsbG9jYXRlIGJ1ZmZlcnMuCgkgIFRoZSBkZXNpcmVkIGFsaWdubWVudCBjYW4gYmUgc2V0IHdoZW4gcnVubmluZyBjb25maWd1cmUgdXNpbmcgdGhlIG5ldwoJICAtLXdpdGgtYnVmZmVyLWFsaWdubWVudCBvcHRpb24uCgoyMDEwLTAzLTEwIDIxOjUxOjUwICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDk3MjBhN2QgdG8gZGY4YTdjOAoKMjAxMC0wMy0xMCAyMDo1MjowNiArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSAgTWVyZ2UgYnJhbmNoICd3b3JrJwoKMjAxMC0wMy0wMyAxMTo0NTozOCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHJhY2UuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvaGVscGVycy9nc3QtcGx1Z2luLXNjYW5uZXIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIEZpeGVzIGZvciAtV3dyaXRlLXN0cmluZ3MKCSAgVGhpcyBjaGFuZ2VzIHNvbWUgQVBJcyBpbiBjb21wYXRpYmxlIHdheXM6CgkgIC0gU29tZSBmdW5jdGlvbnMgbm93IHRha2UgImNvbnN0IGNoYXIgKiIgYXJndW1lbnRzLCBub3QgImNoYXIgKiIKCSAgLSBTb21lIHN0cnVjdHMgbm93IGhhdmUgImNvbnRzIGNoYXIgKiIgbWVtYmVycywgbm90ICJjaGFyICoiCgkgIFRoZSBjaGFuZ2VzIG1heSBjYXVzZSB3YXJuaW5ncyB3aGVuIGNvbXBpbGluZyB3aXRoIHRoZSByaWdodCB3YXJuaW5nCgkgIGZsYWdzLiBZb3UndmUgYmVlbiB3YXJuZWQuCgkgIEFsc28gYWRkcyAtV3dyaXRlLXN0cmluZ3MgYXMgYSB3YXJuaW5nIGZsYWcgaW4gY29uZmlndXJlLmFjLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAzIDEwOjMxOjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6CgkgIEZpeGVzIC1XdW5kZWYgd2FybmluZ3MKCSAgLi4uIGFuZCBhZGRzIHRoYXQgZmxhZyB0byBjb25maWd1cmUuYWMKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMyAxMDozMTowNSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IFJlbW92ZSB1bm5lZWRlZCBnX3RocmVhZF9leGl0KCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0wMyAxMDoyNjoxNCArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBGaXhlcyBmb3IgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAyIDIzOjUxOjE4ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZHAtcHJpdmF0ZS5oOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFyYW1zcGVjcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkgIE1ha2UgY29kZSBzYWZlIGZvciAtV3JlZHVuZGFudC1kZWNscwoJICBBZGRzIHRoYXQgd2FybmluZyB0byBjb25maWd1cmUuYWMKCSAgSW5jbHVkZXMgYSB0aW55IGNoYW5nZSBvZiB0aGUgR1NUX0JPSUxFUlBMQVRFX0ZVTEwoKSBtYWNybzoKCSAgVGhlIGdldF90eXBlKCkgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyIGRlY2xhcmVkIGJlZm9yZSBiZWluZyBkZWZpbmVkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTEwIDIwOjQzOjM1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDBiNmUwNzIgdG8gOTcyMGE3ZAoKMjAxMC0wMy0wMyAxMDowMDo0MSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBNYWtlIHN1cmUgZ2VuZXJhdGVkIGNvZGUgZG9lc24ndCBydW4gd2l0aCAtV2Vycm9yCgkgIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02MTE2OTIKCjIwMTAtMDMtMTAgMTc6MDM6MjkgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgVXBkYXRlIHRvIGNvbW1vbi8gY2hhbmdlcyB0byBFUlJPUl9DRkxBR1MKCjIwMTAtMDMtMTAgMTk6MTc6NDIgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBSZXZlcnQgInJlZ2lzdHJ5OiByZW1vdmUgdW51c2VkIGZ1bmN0aW9uIgoJICBUdXJucyBvdXQgIHRoZSBmdW5jdGlvbiBpcyBub3QgdW51c2VkLCBidXQgd2FzIGluIGFuICNpZmRlZiBXSU4zMgoJICBzZWN0aW9uLgoJICBXaG9vcHMuCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNTdkNWRiNDI0YzY4YWI1YTYxZjMzY2UzNmNlMDE3OWViMzAyNTFhYy4KCjIwMTAtMDMtMTAgMTY6MDk6MzMgKzAxMDAgIEJlbmphbWluIE90dGUgPG90dGVAcmVkaGF0LmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gN2NjNWViNCB0byAwYjZlMDcyCgoyMDEwLTAzLTAyIDIxOjA3OjMzICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KCSAgQWN0dWFsbHksIHRoZXJlIHdhcyB0d28gZnVuY3Rpb25zIHdpdGggdGhlIHNhbWUgbmFtZSwgYnV0IG9ubHkgb25lIHdhcwoJICB1c2VkLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjExNjkyCgoyMDEwLTAzLTAyIDE2OjIwOjE1ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVtb3ZlIHVudXNlZCBnc3RfZWxlbWVudF9kZWZhdWx0X2Vycm9yKCkKCSAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTYxMTY5MgoKMjAxMC0wMy0xMCAwNzoxNToxNSArMDAwMCAgSmVyZW15IEh1ZGRsZXN0b24gPGplcmVteWh1QGZyZWVkZXNrdG9wLm9yZz4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogVXNlIG11bHEgaW5zdGVhZCBvZiBtdWwgYXMgc29tZSBhc3NlbWJsZXJzIGNhbid0IGd1ZXNzIHRoZSBzaXplIG9mIHRoZSBvcGVyYW5kcwoJICBGaXhlcyBidWcgIzYxMjM3MC4KCjIwMTAtMDMtMTAgMDE6MDk6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA3YWE2NWI1IHRvIDdjYzVlYjQKCjIwMTAtMDMtMDkgMjE6MjA6MjcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA0NGVjY2U3IHRvIDdhYTY1YjUKCjIwMTAtMDItMjYgMTY6MDM6NDcgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBNYWtlIHNvbWUgbW9yZSBydWxlcyBzaWxlbnQgaWYgcmVxdWVzdGVkCgoyMDEwLTAyLTI2IDE1OjMyOjE0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBVc2UgYXV0b21ha2UgMS4xMSBzaWxlbnQgcnVsZXMgaW5zdGVhZCBvZiBzaGF2ZSBpZiBhdmFpbGFibGUKCSAgVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgdXNlIHNvbWV0aGluZyB0aGF0IGlzIHN0aWxsIG1haW50YWluZWQgYW5kCgkgIGFsc28gYnJpbmdzIGJhY2sgbGlidG9vbCAxLjUgc3VwcG9ydC4KCjIwMTAtMDItMjIgMTY6MjU6NDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIGxmb2NvbnRyb2xzb3VyY2U6IE9wdGltaXplIGdldF92YWx1ZV9hcnJheSgpCgkgIERvbid0IGNvbnZlcnQgZnJvbSBHVmFsdWUgdG8gdGhlIGFjdHVhbCB0eXBlIGZvciBldmVyeSBzaW5nbGUKCSAgdmFsdWUuCgoyMDEwLTAyLTIyIDE1OjE4OjQxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICBpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZTogT3B0aW1pemUgZ2V0X3ZhbHVlX2FycmF5KCkKCSAgVGhpcyBtYWtlcyBpdCA+MTB4IGZhc3RlciBpZiBtb3JlIHRoYW4gYSBzaW5nbGUgdmFsdWUgaXMgcmVxdWVzdGVkCgkgIGJ5IG5vdCBzZWFyY2hpbmcgaW4gdGhlIEdTZXF1ZW5jZSBmb3IgZXZlcnkgdmFsdWUgYW5kIGNvbnZlcnRpbmcKCSAgdGhlIHZhbHVlIGZyb20gR1ZhbHVlIHRvIHRoZSByZWFsIHZhbHVlIHR5cGUuCgoyMDEwLTAyLTIxIDE3OjM2OjU1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBBZGQgYmVuY2htYXJrIGZvciBnZXR0aW5nIGEgdmFsdWUgYXJyYXkgb2YgdGhlIGNvbnRyb2wgcG9pbnRzCgoyMDEwLTAzLTA4IDIzOjI4OjA0ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIEZpeCB0eXBvcyBpbiBkb2N1bWVudGF0aW9uCgoyMDEwLTAzLTA4IDIzOjA0OjI2ICswMTAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQHJlZGhhdC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgY2FwczogRmFpbCB3aGVuIGZyYWN0aW9ucyBhcmUgZm9sbG93ZWQgYnkgcmFuZG9tIHRleHQKCSAgUHJldmlvdXMgY29kZSB0cmVhdGVkICIxLzF5b3VybW9tIiB0aGUgc2FtZSBhcyAiMS8xIiBhbmQgIjF3aW1zbW9tIiB0aGUKCSAgc2FtZSBhcyAiMSIuIE5vdyB0aGUgY29kZSBpcyBzdHJpY3RlciBhbmQgd2lsbCBmYWlsIHRvIGNvbnZlcnQgYQoJICBmcmFjdGlvbiB3aGVuIGZvbGxvd2VkIGJ5IGdhcmJhZ2UgdGV4dC4KCjIwMTAtMDMtMDkgMTc6MzI6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgQmFjayB0byBkZXZlbG9wbWVudAoKPT09IHJlbGVhc2UgMC4xMC4yOCA9PT0KCjIwMTAtMDMtMDggMjM6MDk6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjI4CgoyMDEwLTAzLTA4IDIzOjA2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wMy0wOCAyMjowNToyOSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGNhcHM6IEFsbG93IDEvbWF4IGFzIHRoZSBtaW5pbWFsIGZyYWN0aW9uIHZhbHVlID4gMAoJICBUaGlzIGlzIHVzZWZ1bCBmb3IgZm9ybWF0cyB0aGF0IHJlcXVpcmUgYSB2YWxpZCBmcmFtZXJhdGUgKGxpa2UKCSAgdGhlb3JhZW5jKS4KCjIwMTAtMDMtMDQgMTU6MjE6MzcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggdHlwbyBpbiBjb21tZW50cwoKPT09IHJlbGVhc2UgMC4xMC4yNyA9PT0KCjIwMTAtMDMtMDUgMjM6NDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgUmVsZWFzZSAwLjEwLjI3CgoyMDEwLTAzLTA1IDIzOjQxOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAxMC0wMy0wNCAxODozOTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Rwb2xsOiBkb24ndCBwYXNzIG5vbi1vYmplY3RzIGFzIGZpcnN0IGFyZ3VtZW50IHRvIEdTVF9ERUJVR19PQkpFQ1QoKQoJICBUaGlzIG1heSBjYXVzZSBjcmFzaGVzIHdoZW4gbG9nZ2luZyBpcyBlbmFibGVkLCBlc3BlY2lhbGx5IG9uIHdpbmRvd3MuCgkgIEl0J3Mgbm90IHNhZmUgdG8gcGFzcyByYW5kb20gcG9pbnRlcnMgdG8gZ190eXBlX2NoZWNrX2luc3RhbmNlX2lzX2EoKS4KCSAgRml4ZXMgIzYxMTcxOS4KCjIwMTAtMDMtMDMgMTk6NTQ6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjYuNCBwcmUtcmVsZWFzZQoKMjAxMC0wMy0wMyAxOTo0OTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTAzLTAzIDEyOjA2OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBkb2NzOiBmaXggdXAgYnl0ZXdyaXRlciBkb2MgY2h1bmtzIGZvciBmbG9hdCBmdW5jdGlvbnMgYXMgd2VsbAoKMjAxMC0wMy0wMyAxMToyODoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGV3cml0ZXIuaDoKCSAgYnl0ZXdyaXRlcjogZml4IGhlYWRlcnMgZm9yIGZsb2F0L2RvdWJsZSB3cml0aW5nIGZ1bmN0aW9ucwoJICBUaGUgZnVuY3Rpb25zIGFyZSBjYWxsZWQgZ3N0X2J5dGVfd3JpdGVyX3B1dF97ZmxvYXQzMnxmbG9hdDY0fV8qKCkgYW5kIG5vdAoJICBnc3RfYnl0ZV93cml0ZXJfcHV0X3tmbG9hdHxkb3VibGV9XyooKS4KCSAgU3BvdHRlZCBieTogQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKMjAxMC0wMy0wMSAxMjowMjo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiB0cnkgdG8gbWFrZSBjb21tZW50IGZvciB0cmFuc2xhdG9ycyBtb3JlIGhlbHBmdWwKCjIwMTAtMDItMjYgMTU6NDY6NTAgKzAxMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IGVtZXJnZW5jeSByZW5kZXJpbmcgdGltZXN0YW1wIHRyYWNraW5nCgkgIFNwZWNpZmljYWxseSwgaWYgYWxsIChpbmNsdWRpbmcgaW5pdGlhbCkgYnVmZmVycyB0dXJuIHVwIGxhdGUsCgkgIGVtZXJnZW5jeSByZW5kZXJpbmcgc2hvdWxkIGFsc28ga2ljayBpbiBhcHByb3ByaWF0ZWx5LgoJICBGaXhlcyAjNjExMDg3LgoKMjAxMC0wMi0yNCAwMDozMDowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yNi4zIHByZS1yZWxlYXNlCgoyMDEwLTAyLTI0IDAwOjI5OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2JnLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vbmwucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb25zCgoyMDEwLTAyLTE5IDEzOjI2OjAxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGludGVycG9sYXRpb25jb250cm9sc291cmNlOiBEb24ndCBwYXNzIE5VTEwgcG9pbnRlcnMgdG8gR1NlcXVlbmNlIEFQSQoJICBUaGlzIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZXMuIEZpeGVzIGJ1ZyAjNjEwNDQ0LgoKMjAxMC0wMi0xOSAxMzoyMDozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSAgaW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2U6IEFkZCBjb25zdCBxdWFsaWZpZXJzIHRvIHZhbHVlcyBpbiB0aGUgX3NldCBmdW5jdGlvbnMKCSAgVGhlIHZhbHVlcyBhcmUgbm90IG1vZGlmaWVkIGFuZCBhcmUgY29waWVkLCBhIGNvbnN0IGJlZm9yZSB0aGUgcGFyYW1ldGVyCgkgIHNob3VsZCBtYWtlIHRoaXMgZXZlbiBtb3JlIG9idmlvdXMuCgoyMDEwLTAyLTE4IDA5OjE3OjA2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgIGNvbnRyb2xsZXI6IEFkZCBzb21lIEZJWE1FIDAuMTEgY29tbWVudHMKCjIwMTAtMDItMTcgMTA6MDQ6NTQgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBjb3JlbGVtZW50czogQ29tYmluZSByZWR1bmRhbnQgY29kZQoKMjAxMC0wMi0xNyAwMToyNzoyMiArMDEwMCAgQW5kb25pIE1vcmFsZXMgQWxhc3RydWV5IDx5bGF0dXlhQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICBGaXggY29tcGlsYXRpb24gb2YgZmRzaW5rIGFuZCBmZHNyYyB3aXRoIE1TVkMKCjIwMTAtMDItMTggMTQ6NTg6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby92aS5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjI2LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDItMTggMTM6MTI6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9wbHVnaW5zLy5naXRpZ25vcmU6CgkgIC5naXRpZ25vcmU6IGlnbm9yZSBzb21lIG1vcmUgdGVtcG9yYXJ5IGRvY3MgY3J1ZnQKCjIwMTAtMDItMTggMTM6MDk6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBmaXggaW5kZW50aW5nIGluIHdpbjMyLXVwZGF0ZSB0YXJnZXQKCSAgTm8gaWRlYSB3aHkgd2UgbmVlZCB0byBydW4gZ3N0LWluZGVudCB0d2ljZSBvbiB0aGF0IGZpbGUsIGJ1dCBpdAoJICBvbmx5IHNlZW1zIHRvIHNldHRsZSBvbiBhIGZpbmFsIGZvcm1hdCB3aXRoIG1pbmltYWwgZGlmZiB0byB0aGUKCSAgb25lIGluIGdpdCBhZnRlciB0d28gcnVucy4KCjIwMTAtMDItMTggMTM6MDg6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgZ3N0Y2hlY2s6IG1vcmUgZGVidWcgbG9nZ2luZyBmb3IgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCgpCgoyMDEwLTAyLTE4IDExOjUyOjI4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IEltcHJvdmUgZG9jcyBhYm91dCAnZGF0YScgYXR0cmlidXRlCgkgIEFkZHMgYSByZW1pbmRlciB0byAnZGF0YScgYXR0cmlidXRlIGRvYwoJICBGaXhlcyAjNjEwMzY2CgoyMDEwLTAyLTE4IDE3OjE1OjM1ICswMTAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgbWVtaW5kZXg6IGF2b2lkIGJ1c3kgbG9vcCB3aGVuIGRvaW5nIEVYQUNUIGxvb2t1cAoJICBGaXhlcyAjNjEwMzY3LgoKMjAwOS0xMi0yMiAxMTowOToxMCArMDgwMCAgSm9oYW4gQmlsaWVuIDxqb2JpQGxpdGwuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgaW50cm9zcGVjdGlvbjogYWRkIGFubm90YXRpb24gZm9yIGdzdF9lbGVtZW50X2dldF9zdGF0ZQoJICBzdGF0ZSBhbmQgcGVuZGluZyBhcmUgIm91dCIgYXJndW1lbnRzLgoJICBGaXhlcyAjNjA1MTg5LgoKMjAxMC0wMi0xNyAxMjoxNjozNyArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgZmlsZXNyYzogRG9uJ3QgdXNlIGV4cGVuc2l2ZSBjYXN0IGNoZWNrcyBpbiBfY3JlYXRlCgkgIF9jcmVhdGUoKSBpcyBhIHBhZCBmdW5jdGlvbiBzZXQgYnkgb3Vyc2VsdmVzLCB0aGVyZWZvcmUgd2UncmUgc3VyZSBiYXNlc3JjCgkgIGlzIGEgR3N0RmlsZVNyYy4KCSAgU3BlZWRzIHVwIF9jcmVhdGUoKSBieSAxNyUgYW5kIHRoZSB0b3RhbCBjYWxsIGJ5IDglIChpbnN0cnVjdGlvbiBjYWxscyBtZWFzdXJlbWVudHMKCSAgZG9uZSB3aXRoIHZhbGdyaW5kKS4KCSAgRml4ZXMgIzYxMDI0NgoKMjAxMC0wMi0xNyAxMjoxNDowOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBEb24ndCB1c2UgZXhwZW5zaXZlIGNhc3QgY2hlY2tzIGluIGdldF9yYW5nZS4KCSAgX2dldF9yYW5nZSgpIGlzIGEgcGFkIGZ1bmN0aW9uIHNldCBieSBvdXJzZWx2ZXMsIHRoZXJlZm9yZSB3ZSdyZSBjZXJ0YWluIHRoYXQKCSAgdGhlIHBhcmVudCBpcyBhIEdzdEJhc2VTcmMuCgkgIFNwZWVkcyB1cCBfZ2V0X3JhbmdlIGJ5IDM4JSwgYW5kIHRoZSB0b3RhbCBjYWxsIGJ5IDMwJS4gKHZhbGdyaW5kIGluc3RydWN0aW9uCgkgIGNhbGxzIG1lYXN1cmVtZW50cykuCgkgIEZpeGVzICM2MTAyNDYKCjIwMTAtMDItMTcgMTE6MzE6MDcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgZmRzcmM6IGNsZWFudXAgcGFyYW1ldGVyIGluaXRpYWxpc2F0aW9uIGFuZCBhZGQgY29tZW1udCtsb2dnaW5nCgkgIEluaXRpYWxpemUgbmV3X2ZkIHdpdGggREVGQVVMVF9GRCBhbmQgZmQgd2l0aCAtMS4gU2V0dGluZyB0aGUgcHJvcGVydHkgd2lsbCBzZXQKCSAgbmV3X2ZkIGFuZCBpbiBfdXBkYXRlX2ZkKCkgd2UgY2VoY2sgZmQgYWdhaW5zdCAtMS4gQWxzbyBhZGQgYSBjb21lbnQgYWJvdXQgdGhlCgkgIHdhcm5pbmcgd2UgZ2V0IGluIHRoZSBsb2cgZnJvbSBnc3RfcG9sbF9yZW1vdmVfZmQoKS4gV2UgY291bGQgZ2V0IHJpZCBvZiB0aGUKCSAgd2FybmluZyBpZiB3ZSB3YW50IGJ5IHRyYWNraW5nIGlmIGZkIGhhcyBiZWVuIGFkZGVkIHRvIGZkc2V0LgoKMjAxMC0wMi0xNyAwOTo1NTo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtbWV0YWRhdGEudHh0OgoJICBkZXNpZ246IHdyaXRlIGFib3V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRhZy1oYW5kbGluZwoJICBEb2N1bWVudCB0aGUgdGFnaGFuZGxpbmcgaW4gZ3N0cmVhbWVyLiBMaXN0IGdhcHMgYW5kIHByb3Bvc2UgbmV3IG1lY2hhbmlzbXMgdG8KCSAgZGVhbCB3aXRoIHRoZW0uCgoyMDEwLTAyLTE2IDEwOjI3OjE4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdsaXN0OiByZW1vdmUgYmxhbmsgbGluZXMgaW4gdmFyaWFibGUgZGVjbGFyYXRpb25zCgoyMDEwLTAyLTE2IDExOjMwOjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkqIHRvb2xzL3Rvb2xzLmg6CgkgIHRvb2xzOiBjYWxsIGdfc2V0X3ByZ25hbWUoKSBiZWZvcmUgZG9pbmcgdGhlIG9wdGlvbiBwYXJzaW5nCgkgIGdfc2V0cHJnbmFtZSBpcyBpbXBsaWNpdGx5IGNhbGxlZCBieSBnX29wdGlvbl9jb250ZXh0X25ldygpIHdpdGggYSBjaGVjawoJICB0byBzZWUgaWYgaXQncyBiZWVuIHNldCBhbHJlYWR5LCBzbyBzZXQgaXQgYmVmb3JlIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkKCSAgTW92ZSB2ZXJzaW9uIHByaW50aW5nIGJhY2sgdW50aWwgYWZ0ZXIgdGhlIG9wdGlvbnMgaGF2ZSBiZWVuIHBhcnNlZCwKCSAgb3RoZXJ3aXNlIGl0IHdvbid0IHdvcmssIHNpbmNlIGl0IGV2YWx1YXRlcyBhIGZsYWcgc2V0IGJ5IHRoZQoJICBvcHRpb24gcGFyc2VyLgoKMjAxMC0wMi0xNiAxMToyNDozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIFJldmVydCAidG9vbHM6IE1vdmUgZ3N0X3Rvb2xzX3ByaW50X3ZlcnNpb24gY2FsbCB0byBhdm9pZCB3YXJuaW5nIGZyb20gbmV3IEdMaWIuIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzZGQ5NWYwMmVmM2ZhNTMwZjU0Y2U4MWU4ZmZiYTk2ZjNiNjc5Y2IuCgkgIFRoaXMgY29tbWl0IG1hZGUgLS12ZXJzaW9uIG5vdCB3b3JrIGFueSBsb25nZXIuIFRoZSBnX3NldHByZ25hbWUoKQoJICB3YXJuaW5nIGlzIGZpeGVkIGluIHJlY2VudCBHTGliIHZlcnNpb25zLgoKMjAxMC0wMi0xNiAwODoyNjo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgYnVpbGQ6IG1ha2Ugc3VyZSBnc3QtcGx1Z2luLXNjYW5uZXIgZ2V0cyBpbnN0YWxsZWQgd2hlcmUgd2UgZXhwZWN0IGl0CgkgIEFkZCBjaGVjayB0byBtYWtlIHN1cmUgZ3N0LXBsdWdpbi1zY2FubmVyIHJlYWxseSBnZXRzIGluc3RhbGxlZCB3aGVyZQoJICB3ZSB3aWxsIGxvb2sgZm9yIGl0IGxhdGVyLCBpZS4gcGF0aHMgYW5kIHByZWZpeGVzIGFyZSBzZXQgYXQgY29uZmlndXJlCgkgIHRpbWUgYW5kIG5vdCBzcGVjaWZpZWQgdmlhIG1ha2UuCgkgIEZpeGVzICM2MDk5NDEuCgoyMDEwLTAyLTE1IDIzOjAyOjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBkb2NzOiBwcmVmZXIgc2hvcnQgZGVzYyBmcm9tIEdzdEVsZW1lbnREZXRhaWxzCgoyMDEwLTAyLTE1IDAxOjI0OjI1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIGRvY3M6IGZpeCBndGstZG9jIGNodW5rIGZvciBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0KCkKCjIwMTAtMDItMTUgMDA6MzE6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogdXBkYXRlIHBvIGZpbGVzIGZvciBuZXcgY29tbWVudHMKCjIwMTAtMDItMTUgMDA6Mjk6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogd3JhcCBsb25nIHN0cmluZyBjb25zdGFudHMKCSAgQW5kIGZpeCBpbmRlbnRpbmcgaXNzdWUKCjIwMTAtMDItMTUgMDA6MjE6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnczogYWRkIHNvbWUgY29tbWVudHMgZm9yIHRyYW5zbGF0b3JzIHNvIHRhZyBtbmVtb25pY3MgZ2V0IHRyYW5zbGF0ZWQgY29ycmVjdGx5CgkgIFdlIHdhbnQgJ3ByZXZpZXcgaW1hZ2UnIHRyYW5zbGF0ZWQgYXMgYSBub3VuLCBub3QgYXMgJ3ByZXZpZXcgW3RoZV0gaW1hZ2UnLgoKMjAxMC0wMi0wNCAxNzo0MzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogZG9uJ3QgcHJpbnQgV0FSTiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBub3JtYWwgdGhpbmdzIGxpa2UgRU9TCgoyMDEwLTAyLTE0IDIzOjE1OjQ1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gOTZkYzc5MyB0byA0NGVjY2U3CgoyMDEwLTAyLTEzIDE1OjE4OjA1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IFJlc2V0IHRoZSB3b3JraW5nIG1vZGUgd2hlbiBnb2luZyB0byBSRUFEWS9OVUxMCgkgIFRoaXMgYWxsb3dzIHByb3Blcmx5IHJlLXVzaW5nIHR5cGVmaW5kIChlbHNlIGl0IHdvdWxkIHRoaW5rIGl0J3MKCSAgYWxyZWFkeSBkb25lIHRoZSB0eXBlZmluZGluZyB3aGVuIGJlaW5nIHJlLXVzZWQgd2l0aCBhbm90aGVyCgkgIHN0cmVhbSkuCgoyMDEwLTAxLTIyIDExOjM4OjU5IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBBZGRzIGEgdGVzdCBmb3IgX2ZpbGwKCjIwMTAtMDEtMjIgMDk6MTk6MzEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGJ5dGV3cml0ZXI6IGFkZCBfZmlsbCBmdW5jdGlvbgoJICBBZGRzIGEgbmV3IGZ1bmN0aW9uIHRvIEdzdEJ5dGVXcml0ZXIgdGhhdCB3cml0ZXMKCSAgYSBjb25zdGFudCB2YWx1ZSB0byBhIG1lbW9yeSBhcmVhIChha2EgbWVtc2V0KS4KCSAgVXNlZnVsIGZvciBhZGRpbmcgcGFkZGluZyB0byBidWZmZXJzLgoJICBBbHNvIHVwZGF0ZXMgLmRlZiBmaWxlIGFuZCBkb2NzLgoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl9maWxsKCkKCjIwMTAtMDEtMjggMTE6NTc6MzMgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnby5zb3VzYS5zYW50b3NAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IEF2b2lkIG1lc3NpbmcgcGFkcyBhY3RpdmF0aW9uCgkgIFR5cGVmaW5kIG1pZ2h0IG1lc3MgdXAgcGFkcyBtb2RlcyAocHVsbC9wdXNoKSBpZiBhCgkgIGRvd25zdHJlYW0gZWxlbWVudCBpcyBwbHVnZ2VkIGFuZCBpdHMgcGFkcyBhY3RpdmF0ZWQKCSAgaW4gJ3N0ZXAgMicgb2YgdHlwZWZpbmQgcGFkcyBhY3RpdmF0aW9uLgoJICBUaGlzIGhhcHBlbnMgYmVjYXVzZSB0aGUgZm9sbG93aW5nIHN0ZXBzIGRvbid0IGNoZWNrCgkgIGlmIHdlIGFscmVhZHkgZW1pdHRlZCB0eXBlZm91bmQgZHVlIHRvIHVwc3RyZWFtIHNldHRpbmcKCSAgY2FwcyBvbiBidWZmZXJzIGJlaW5nIHB1bGxlZCBpbiB0aGUgdHlwZWZpbmQgaGVscGVycy4KCSAgQXZvaWQgdGhhdCBieSBjaGVja2luZyBpZiB0eXBlZm91bmQgaXMgYWxyZWFkeSBlbW1pdGVkLgoJICBGaXhlcyAjNjA4MDM2CgoyMDEwLTAyLTEyIDE0OjQ5OjUyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgYmFzZXNyYzogTWFrZSBsb2NraW5nIG9mIHRoZSBzZWdtZW50IGEgYml0IG1vcmUgc3RyaWN0IGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbgoJICBVcGRhdGluZyB0aGUgc2VnbWVudCB2YWx1ZXMgbXVzdCBvbmx5IGJlIGRvbmUgd2hpbGUgaG9sZGluZyB0aGUKCSAgU1RSRUFNX0xPQ0sgYW5kIE9CSkVDVF9MT0NLLiBUaGlzIG1lYW5zLCByZWFkaW5nIGNhbiBiZSBkb25lIGFzCgkgIGxvbmcgYXMgb25lIG9mIHRoZW0gaXMgaGVsZCwgbm90IGJvdGgsIHdoaWNoIHJlbW92ZXMgc29tZSBsb2NrLXVubG9jawoJICBibG9ja3MgZnJvbSBwZXJmb3JtYW5jZSBjcml0aWNhbCBjb2RlIHBhdGhzLgoJICBBbHNvIGRvY3VtZW50LCB0aGF0IGdzdF9iYXNlX3NyY19zZXRfZm9ybWF0KCkgKm11c3QqIGJlIGNhbGxlZCBpbgoJICBzdGF0ZXMgPD0gUkVBRFkgYW5kIGFkZCBhbiBhc3NlcnRpb24gZm9yIHRoaXMuIENoYW5naW5nIHRoZSBmb3JtYXQKCSAgbGF0ZXIgd2lsbCBjb21wbGV0ZWx5IG1lc3MgdXAgdGhlIHNlZ21lbnQgaW5mb3JtYXRpb24uCgoyMDEwLTAyLTA4IDA5OjEyOjAxICswNTMwICBBcnVuIFJhZ2hhdmFuIDxhcnVuLnJhZ2hhdmFuQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkqIGRvY3MvcHdnL2J1aWxkaW5nLWNoYWluZm4ueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgcHdnOiBzZXZlcmFsIHR5cG8gZml4ZXMKCSAgRml4ZXMgIzYwOTI4Ni4KCjIwMTAtMDItMDkgMTc6NTI6MTMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IFByb3RlY3Qgc2VnbWVudCB2YWx1ZXMgZnJvbSBjb25jdXJyZW50IGFjY2VzcyBmcm9tIGRpZmZlcmVudCB0aHJlYWRzCgkgIFRoaXMgY291bGQgaGFwcGVuIGVhc2lseSBpbiB0aGUgcXVlcnkgZnVuY3Rpb25zIG9yIHdoZW4gdGhlIHNpemUgaXMgc2V0CgkgIG9uIGFwcHNyYyBmcm9tIHNvbWUgbm9uLXN0cmVhbWluZyB0aHJlYWQuCgoyMDEwLTAyLTA0IDIxOjExOjI1ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kZWxlbWVudDogUHJvdGVjdCBpbnRlcm5hbCBmaWVsZHMgZnJvbSBjb25jdXJyZW50IGNoYW5nZXMgZnJvbSBkaWZmZXJlbnQgdGhyZWFkcwoJICBGaXhlcyBidWcgIzYwODg3Ny4KCjIwMTAtMDItMTEgMjA6MTQ6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBkb24ndCBsZWFrIHRpbWVvdXQgR1NvdXJjZQoKMjAxMC0wMi0xMSAwMDoxODozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBmbGVzaCBvdXQgcmVsZWFzZSBkb2Mgc29tZSBtb3JlCgoyMDEwLTAyLTExIDAxOjEwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIE1BSU5UQUlORVJTOgoJICBVcGRhdGUgTUFJTlRBSU5FUlMsIGFkZCBteXNlbGYKCjIwMTAtMDItMTEgMTk6NDk6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJhY2sgdG8gZGV2ZWxvcG1lbnQKCSAgU2x1c2h5IGZyZWV6ZSByZW1haW5zIGluIGVmZmVjdC4KCj09PSByZWxlYXNlIDAuMTAuMjYgPT09CgoyMDEwLTAyLTEwIDE5OjE3OjI4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBSZWxlYXNlIDAuMTAuMjYKCjIwMTAtMDItMTAgMTU6MzI6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2V1LnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDEwLTAyLTA5IDE1OjUyOjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBkZWZpbmUgR1NUX1BMVUdJTl9TQ0FOTkVSX0lOU1RBTExFRCBpbiB3aW4zMiBjb25maWcuaAoJICBFdmVuIGlmIGl0J3Mgbm90IHVzZWQsIGl0IHN0aWxsIG5lZWRzIHRvIGJlIGRlZmluZWQgZm9yIHRoaW5ncyB0bwoJICBjb21waWxlLgoKMjAxMC0wMi0wOSAxMDoxOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgZ3N0X3ByaXZhdGU6IE1TVkMgZG9lc24ndCBzZWVtIHRvIGxpa2UgI3dhcm5pbmcKCSAgVmlzdWFsIFN0dWRpbyBjb21wbGFpbnMgYWJvdXQgImludmFsaWQgcHJlcHJvY2Vzc29yIGNvbW1hbmQgJ3dhcm5pbmcnIgoJICBldmVuIGlmIHRoZSBpZmRlZiBkb2Vzbid0IHRyaWdnZXIsIHNvIGp1c3QgcmVtb3ZlIHRoaXMgYWdhaW4uCgoyMDEwLTAyLTEwIDE0OjQwOjE3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOgoJICB0ZXN0czogRml4IG11bHRpcXVldWUgdGVzdCBmb3IgbGF0ZXN0IGNvbW1pdHMuCgkgIFRoZSBwcm9ibGVtIGxpZXMgaW4gdGhlIGZhY3QgdGhhdCBtdWx0aXF1ZXVlIHdpbGwgbm93IG9wZXJhdGUgc29tZXdoYXQKCSAgc2ltaWxhcmx5IHRvIHRoZSBmbG93IGFnZ3JlZ2F0aW9uIGxvZ2ljIG9mIGRlbXV4ZXJzIGFuZCB0aGVyZWZvcmUKCSAgd2lsbCBzdG9wcCB3aGVuZXZlciBhbGwgZG93bnN0cmVhbSBwYWRzIHJldHVybiBOT1RfTElOS0VEIGFuZC9vcgoJICBVTkVYUEVDVEVEIGFuZCB0aGVyZSdzIG5vIG1vcmUgYnVmZmVycyB0byBwdXNoLgoJICBUaGUgbGF0ZXN0IGNvbW1pdHMgc2hvdWxkIG5vdCBhZmZlY3QgYW55IHJlZ3VsYXIgdXNlLWNhc2UsIGJ1dCB0aGUgYnVnCgkgIHJlcG9ydCB3aWxsIGJlIGtlcHQgb3BlbiBzbyB0aGUgcHJldmlvdXMgYmVoYXZpb3VyIGNhbiBiZSByZS1lc3RhYmxpc2hlZAoJICBpZiBuZWVkZWQuCgkgIEZpeGVzICM2MDk0ODYKCjIwMTAtMDItMDkgMTU6NTE6MTggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogRG9uJ3Qgc3RvcCB0aHJlYWRzIG9uIFVORVhQRUNURUQgYW5kIGZvcndhcmQgZmxvdyByZXR1cm5zLgoJICBXaGVuIGEgZG93bnN0cmVhbSBlbGVtZW50IHJldHVybnMgR1NUX0ZMT1dfVU5FWFBFQ1RFRCB3ZSB3YW50IHRvOgoJICAqIGxldCB0aGUgZGF0YXF1ZXVlIHRhc2sgcnVubmluZwoJICAqIGZvcndhcmQgdGhlIGZsb3cgcmV0dXJuIHVwc3RyZWFtLgoJICBUaGlzIGFsbG93cyB1cHN0cmVhbSBlbGVtZW50cyB0byBwdXNoIEVPUywgYW5kIGhhdmUgdGhhdCBFT1MgZXZlbnQgY29tZQoJICBkb3duc3RyZWFtLgoJICBGaXhlcyAjNjA5Mjc0CgoyMDEwLTAyLTA5IDEzOjM1OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgUmV2ZXJ0ICJtdWx0aXF1ZXVlOiBoYW5kbGUgVU5FWFBFQ1RFRCBmbG93cmV0dXJuIGJldHRlciIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBmYmRmNGRjZWRhZDg2OTJmMWUzZDg4Mzg1NTExODg5ODdlNDYyZTc0LgoJICBQYXJ0bHkgZml4ZXMgIzYwOTI3NAoKMjAxMC0wMS0yOCAwNzoyNzo0OSArMDEwMCAgUm9iZXJ0IFN3YWluIDxyb2JlcnQuc3dhaW5AY29sbGFib3JhLmNvLnVrPgoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJICBnaXQtdXBkYXRlLnNoOiBGaXggaXNzdWVzCgoyMDEwLTAyLTA3IDA5OjU5OjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIFJldmVydCAiZG9jczogZml4IEFTQ0lJIGFydCBzbyB0aGF0IGl0ZXJhdG9ycyBhcmUgYWxpZ25lZCBwcm9wZXJ0eSB0byB0aGUgZGlhZ3JhbSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBhZTYwZDA2ZTllNDAxZDFlZDRkZTVlZjI1YjVjMjgzZGIwNjk2YTMxIChmaXhlczogIzYwOTE2NikKCjIwMTAtMDItMDQgMTg6MzA6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIDAuMTAuMjUuMyBwcmUtcmVsZWFzZQoKMjAxMC0wMi0wNCAxNzo0NTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9iZy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vc3YucG86CgkqIHBvL3poX0NOLnBvOgoJICBwbzogdHJhbnNsYXRpb24gdXBkYXRlcwoKMjAxMC0wMi0wMSAxMjo1MDo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBkb2NzOiBmaXggQVNDSUkgYXJ0IHNvIHRoYXQgaXRlcmF0b3JzIGFyZSBhbGlnbmVkIHByb3BlcnR5IHRvIHRoZSBkaWFncmFtCgoyMDEwLTAyLTAxIDE3OjQwOjA4IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBnc3RieXRld3JpdGVyOiBGaXggZGlmZmVyZW50IGZ1bmN0aW9uIG5hbWVzIGluIC5oIGFuZCAuYwoJICBnc3RfYnl0ZV93cml0ZXJfcmVzZXRfYW5kX2dldF9idWZmZXIgd2Fzbid0IGRlY2xhcmVkCgkgIGluIC5oLCBpbnN0ZWFkIHRoZXJlIHdhcyBfcmVzZXRfYW5kX2dldF9kYXRhX2FzX2J1ZmZlci4KCSAgUmVwbGFjZSBpdCB3aXRoIHRoZSByZWFsIGZ1bmN0aW9uIG5hbWUsIHRoYXQgaXMgc21hbGxlcgoJICBhbmQgbWF0Y2hlcyBnc3RfYnl0ZV93cml0ZXJfZnJlZV9hbmRfZ2V0X2J1ZmZlcgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA4NzI2CgoyMDEwLTAxLTMxIDE3OjMwOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGRvY3M6IGFkZCBzb21lIG1vcmUgU2luY2U6IG1hcmtlcnMgdG8gYnVmZmVyIGxpc3QgZG9jcwoKMjAxMC0wMS0zMCAxODo1Nzo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogZml4IHR5cG8gaW4gd2FybmluZyBtZXNzYWdlCgkgIFNwb3R0ZWQgYnkgYnNyZWVyZW5qQGdtYWlsLmNvbS4KCSAgRml4ZXMgIzYwODQ0Mi4KCjIwMTAtMDEtMzAgMTU6MTc6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAxNWQ0N2E2IHRvIDk2ZGM3OTMKCjIwMTAtMDEtMzAgMTM6NDU6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJICBpbml0OiBkb24ndCBzcGV3IHdhcm5pbmcgYWJvdXQgbGF0ZSBnX3RocmVhZF9pbml0KClzIGlmIEdMaWIgPj0gMi4yMy4yCgkgIExhdGUgZ190aHJlYWRfaW5pdCgpIGlzIGZpbmUgd2l0aCBuZXdlciBHTGliIHZlcnNpb25zIGFuZCBkb25lIGF1dG9tYXRpY2FsbHkKCSAgZnJvbSBnX3R5cGVfaW5pdCgpIHRoZXJlLCBzbyBkb24ndCB3YXJuIGlmIHRoZSBhcHBsaWNhdGlvbiBoYXNuJ3QgY2FsbGVkCgkgIGdfdGhyZWFkX2luaXQoKSB5ZXQgd2hlbiBnc3RfaW5pdCgpIGlzIGNhbGxlZCB3aXRoIG5ldyBHTGliIHZlcnNpb25zLgoJICBGaXhlcyAjNjA4Mzk4LgoKMjAxMC0wMS0yOSAwOTo0MTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBwa2djb25maWc6IGRvbid0IHB1dCAtREdfVEhSRUFEU19NQU5EQVRPUlkgaW50byBvdXIgcGtnLWNvbmZpZyBDRkxBR1MKCSAgSWYgd2UgZm9yY2UgLURHX1RIUkVBRFNfTUFOREFUT1JZIG9udG8gYXBwcywgdGhlbiBnX3RocmVhZF9zdXBwb3J0ZWQoKQoJICB3aWxsIGFsd2F5cyBldmFsdWF0ZSB0byBUUlVFLCBzbyB0aGUgdHlwaWNhbCB0aHJlYWQgaW5pdGlhbGlzYXRpb24KCSAgYm9pbGVycGxhdGUgY29kZSBpZiAoIWdfdGhyZWFkX3N1cHBvcnRlZCgpKSBnX3RocmVhZF9pbml0KE5VTEwpOyB3aWxsCgkgIG5vIGxvbmdlciB3b3JrLCBhbmQgdGhlIHRocmVhZGluZyBzeXN0ZW0gbm90IGJlIGluaXRpYWxpc2VkIGFuZCB1cwoJICBwcmludGluZyBhIHdhcm5pbmcgaW4gZ3N0X2luaXQuIFRoaXMgbWF5IGJlIGZpbmUgaW4gbW9zdCBjYXNlcywgc2luY2UKCSAgbGF0ZSBpbml0aWFsaXNhdGlvbiBpcyBhbGxvd2VkIGFuZCBhdXRvbWF0aWNhbGx5IGRvbmUgaW4gZ190eXBlX2luaXQoKQoJICBzaW5jZSBHTGliIDIuMjMuMiwgYnV0IGxldCdzIGJlIGNhdXRpb3VzIGFuZCBvbmx5IHVzZSB0aGlzIGRlZmluZSB3aGVuCgkgIGNvbXBpbGluZyBHU3RyZWFtZXIgaXRzZWxmLgoJICBTZWUgIzYwODM5OC4KCjIwMTAtMDEtMjggMTU6NTU6MjcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IFRha2Ugc3RhcnRfdGltZSBhZnRlciBjaGFpbmluZyB1cCB0b28KCSAgUmVmYWN0b3IgdGhlIGNvZGUgdG8gdGFrZSB0aGUgY3VycmVudCBzdGFydF90aW1lIHdoZW4gZ29pbmcgdG8gUEFVU0VELgoJICBNYWtlIHN1cmUgd2UgYWxzbyBjYWxsIHRoZSBzdGFydF90aW1lIHVwZGF0ZSBjb2RlIGFmdGVyIHdlIGNoYWluZWQgdXAgdG8gdGhlCgkgIHBhcmVudCBiaW4uCgkgIEZpeGVzICM2MDc4NDIKCjIwMTAtMDEtMjYgMTg6NTk6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICAwLjEwLjI1LjIgcHJlLXJlbGVhc2UKCjIwMTAtMDEtMjcgMDA6MjM6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGNoZWNrczogZml4IHNwdXJpb3VzIGdob3N0IHBhZCBjaGVjayBmYWlsdXJlCgoyMDEwLTAxLTI2IDE5OjM1OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlIHdpbmRvd3MgaGVhZGVycyB0byBsYXRlc3QgdmVyc2lvbgoKMjAxMC0wMS0yNiAxOTozMjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBtaW5vciB1cGRhdGUgdG8gcmVsZWFzZSBub3RlcwoKMjAxMC0wMS0yNiAxODo0NTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgdHJhbnNsYXRpb24gZmlsZXMKCjIwMTAtMDEtMjYgMTg6Mzk6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJICB0ZXN0czogZml4IHdhcm5pbmcgaW4gcnRwb29sLXRlc3QKCSAgVGhlIHN0cmVhbSBzdGF0dXMgbWVzc2FnZSBvYmplY3QgbWF5IGJlIG9mIGEgbm9uLUdPYmplY3QgdHlwZSwgZS5nLgoJICBHX1RZUEVfUE9JTlRFUiAoc2VlIEdzdEF1ZGlvU3JjKSwgc28gcHJpbnQgdGhhdCBwcm9wZXJseSBpbnN0ZWFkCgkgIG9mIGFzc3VtaW5nIHRoZSB2YWx1ZSBob2xkcyBhbiBvYmplY3QuCgoyMDEwLTAxLTI2IDEyOjQzOjA5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogaGFuZGxlIFVORVhQRUNURUQgZmxvd3JldHVybiBiZXR0ZXIKCSAgV2hlbiB3ZSByZWNlaXZlIGFuIFVORVhQRUNURUQgZmxvd3JldHVybiBmcm9tIGRvd25zdHJlYW0sIHdlIG11c3Qgbm90IHNodXRkb3duCgkgIHRoZSBwdXNoaW5nIHRocmVhZCBiZWNhdXNlIHVwc3RyZWFtIHdpbGwgYXQgc29tZSBwb2ludCBwdXNoIGFuIEVPUyB0aGF0IHdlIHN0aWxsCgkgIG5lZWQgdG8gcHVzaCBmdXJ0aGVyIGRvd25zdHJlYW0uCgkgIFRvIGFjaGlldmUgdGhpcywgY29udmVydCB0aGUgVU5FWFBFQ1RFRCByZXR1cm4gdmFsdWUgdG8gT0suIEFkZCBhIGZpeG1lIHNvIHRoYXQKCSAgd2UgaW1wbGVtZW50IHRoZSByaWdodCBsb2dpYyB0byBwcm9wYWdhdGUgdGhlIGZsb3dyZXR1cm4gdXBzdHJlYW0gYXQgc29tZSBwb2ludC4KCSAgQWxzbyBjbGVhbiB1cCB0aGUgdW5pdCB0ZXN0IGEgbGl0dGxlLgoJICBGaXhlcyAjNjA4MTM2CgoyMDEwLTAxLTI2IDA4OjUyOjE2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBkb2NzOiBGaXggYmFzaWNzLWJ1cyBkb2NzCgkgIEZpeCB3cm9uZyBpbmZvcm1hdGlvbiBhYm91dCBidXMgd2F0Y2ggZnVuY3Rpb25zIGluIHRoZQoJICBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBtYW51YWwuCgkgIEZpeGVzICM2MDgxMjcKCjIwMTAtMDEtMjQgMjM6MTI6MjIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBiaW46IGFsc28gcmVtb3ZlIHByaXZhdGUgZnVuY3Rpb24gZnJvbSBkZWYgZmlsZQoKMjAxMC0wMS0yNCAyMzowNDoyNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG1ha2UgYSBpbnRlcmZhY2Ugdm1ldGhvZCBpbXBsZW1lbnRhdGlvbiBzdGF0aWMKCSAgVGhpcyBzaG91bGQgbm90IGNhdXNlIGFueSB0cm91YmxlcyAtIHRoZSBtZXRob2RzIHdhc24ndCBpbiBhbnkgaGVhZGVyLgoKMjAxMC0wMS0yNCAyMjoyMjowNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogcmVtb3ZlIDsgYWZ0ZXIgfQoKMjAxMC0wMS0yMiAxODowMDo1MyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIHNvbWUgZG9jcyB0byBtYXJrIG5ldyBwcm9wZXJ0eQoKMjAxMC0wMS0yMiAxNzo1NTozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIHF1ZXVlMjogYWRkIG9wdGlvbiB0byByZW1vdmUgdGhlIHRlbXAtZmlsZQoJICBBZGQgYW4gb3B0aW9uIHRvIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSB0ZW1wIGZpbGUgKFRSVUUgYnkgZGVmYXVsdCkuIFRoaXMKCSAgc2hvdWxkIG1ha2UgaXQgcG9zc2libGUgZm9yIHRoZSBhcHBsaWNhdGlvbiB0byBrZWVwIHRoZSB0ZW1wIGZpbGUgYnkgb3RoZXIgbWVhbnMKCSAgdGhhbiBoYXJkbGlua2luZyBvciBob2xkaW5nIGFuIGZkIG9wZW4uCgkgIEZpeGVzICM2MDc3MzkKCjIwMTAtMDEtMjIgMDI6MDI6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmQ6IGRvbid0IGxlYWsgdXJpIHN0cmluZwoKMjAxMC0wMS0yMSAxNjoxOTo0NCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmRleC5oOgoJICBnc3RpbmRleDogcmV0YWIgLmggZmlsZQoKMjAxMC0wMS0yMCAxNDoxMzoxMSArMDEwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUByZWRoYXQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdG9vbHM6IFJ1biBnX3RocmVhZF9pbml0KCkgdW5jb25kaXRpb25hbGx5CgkgIFNpbmNlIHdlIGRlZmluZSBHX1RIUkVBRFNfTUFOREFUT1JZLCBnX3RocmVhZF9zdXBwb3J0ZWQoKSBldmFsdWF0ZXMgdG8KCSAgVFJVRSB1bmNvbmRpdGlvbmFsbHksIHNvIGNhbGxpbmcgZ190aHJlYWRfaW5pdCgpIG5ldmVyIGhhcHBlbmVkLgoKMjAxMC0wMS0yMCAxMDo1ODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogZml4IGNvbXBpbGVyIHdhcm5pbmcgb24gd2luMzIKCSAgTW92ZSB2YXJpYWJsZSB0aGF0J3Mgb25seSB1c2VkIG9uIHVuaXggaW50byB0aGUgdW5peCBibG9jayBzbyB0aGF0CgkgIHRoZSBjb21waWxlciBkb2Vzbid0IGNvbXBsYWluIGFib3V0IHRoZSB1bnVzZWQgdmFyaWFibGUgb24gd2luMzIKCSAgKHNlZSAjNTk3NjYyKS4KCjIwMTAtMDEtMjAgMDk6NDU6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IHRyeSBzY2FubmVyIHNldCB2aWEgZW52IHZhciBiZWZvcmUgdXNpbmcgdGhlIGluc3RhbGxlZCBvbmUKCSAgSWYgdGhlIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQsIHdlIHNob3VsZCB0cnkKCSAgdGhlIHNjYW5uZXIgc3BlY2lmaWVkIHRoZXJlIGZpcnN0LCB0byBtYWtlIHN1cmUgdGhlIHJpZ2h0IHNjYW5uZXIgYmluYXJ5CgkgIGlzIHVzZWQgZm9yIHVuaW5zdGFsbGVkIHNldHVwcyBhbmQgYnVpbGRzIGZyb20gc291cmNlIHdoZW4gdGhlcmUncwoJICBhbHJlYWR5IGFuIGluc3RhbGxlZCB2ZXJzaW9uLgoKMjAxMC0wMS0yMCAwNjo1ODoyOCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3QuYzoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgYnVpbGQ6IERlZmluZSBHX1RIUkVBRFNfTUFOREFUT1JZIGV2ZXJ5d2hlcmUKCSAgV2UgcmVxdWlyZSB0aHJlYWRzIHRvIGJlIHN1cHBvcnRlZCBpbiBhbnkgY2FzZSBhbmQgZGVmaW5pbmcgdGhpcwoJICB3aWxsIHNpbXBsaWZ5IHRoZSBtdXRleCwgY29uZGl0aW9uIHZhcmlhYmxlLCBldGMuIG1hY3JvcyBmcm9tIGd0aHJlYWQKCSAgdG8gbm90IGFsd2F5cyBjaGVjayBpZiB0aHJlYWRzIGFyZSByZWFsbHkgc3VwcG9ydGVkLgoJICBGaXhlcyBidWcgIzYwNzQ4MS4KCjIwMTAtMDEtMDggMjA6NTY6MTggKzAxMDAgIEFuZG9uaSBNb3JhbGVzIEFsYXN0cnVleSA8eWxhdHV5YUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBwbHVnaW5sb2FkZXI6IGRpc2FibGUgZXh0ZXJuYWwgcGx1Z2luIGxvYWRlciBvbiBXaW5kb3dzIHVudGlsIGl0IGlzIHBvcnRlZCBwcm9wZXJseQoJICBTZWUgIzU5NzY2Mi4KCjIwMTAtMDEtMjAgMDE6MDk6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3QvcGFyc2UvcGFyc2UubDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL2dzdC1wbHVnaW4tc2Nhbm5lci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBnc3RfcHJpdmF0ZS5oOiBtYWtlIHN1cmUgZ3N0X3ByaXZhdGUuaCBpcyBpbmNsdWRlZCBiZWZvcmUgZ2xpYi5oCgkgIEZvciB0aGUgcmVhc29uIG91dGxpbmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZ3N0X3ByaXZhdGUuaCAoaW5saW5lCgkgIGZ1bmN0aW9ucyBpbiBnbGliIG1heSBuZWVkIHRoZSBnX2xvZ19kb21haW4gdmFyaWFibGUpLiBBbHNvIGluY2x1ZGUKCSAgZ3N0X3ByaXZhdGUuaCBiZWZvcmUgdXNpbmcgYW55IEdfT1NfKiBkZWZpbmVzLCBlc3AuIGluIHBsdWdpbiBsb2FkZXIuCgoyMDEwLTAxLTIwIDAxOjMzOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBkb2NzOiBtaW5vciBndGstZG9jIG1hcmt1cCBmaXhlcwoKMjAxMC0wMS0yMCAwMDo1MzowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDE0Y2VjODkgdG8gMTVkNDdhNgoKMjAxMC0wMS0xOSAxNjozOTozOCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDoKCSAgZG9jczogc21hbGwgZG9jcyB1cGRhdGVzCgoyMDEwLTAxLTE5IDE0OjA3OjIzICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBnc3RwYWQ6IGRpcmVjdGx5IHNldCB0aGUgY2FwcyB3aGVuIHB1c2hpbmcgYnVmZmVyIHdpdGggZGlmZmVyZW50IGNhcHMuCgkgIFRoaXMgY2hlY2sgaXMgbm90IG5lY2VzYXJyeSBhcyB3ZSBhcmUgbm90IG5lZ290aWF0aW5nIGFueW1vcmUuIEFuZCBpdCBjYW4KCSAgYmUgd3JvbmcgaWYgdXBzdHJlYW0gY2FuJ3QgcHJvZHVjZSB0aGlzIGNhcHMgYW55bW9yZSwgYnV0IGRvd25zdHJlYW0gY2FuCgkgIHByb2Nlc3MgdGhlbSBmaW5lLgoKMjAxMC0wMS0xOCAxMzo1NzoyOSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBtaW5pb2JqZWN0OiBUaGUgR1ZhbHVlIGNvbGxlY3Rpb24gZnVuY3Rpb24gY2FuIG5vdCBhc3N1bWUgdGhhdCB0aGUgZGVzdGluYXRpb24gaXMgaW5pdGlhbGl6ZWQKCSAgLi4uYW5kIGl0IHdpbGwgdXN1YWxseSBiZSBlaXRoZXIgZmlsbGVkIGJ5IHplcm9lcyBvciByYW5kb20gdmFsdWVzLgoJICBGaXhlcyBidWcgIzYwNzI4My4KCjIwMTAtMDEtMTYgMjE6NTI6MDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IE9ubHkgdXNlIHN1Z2dlc3RlZCBjYXBzIGluIGJ1ZmZlciBhbGxvY2F0aW9uIGlmIGEgc2l6ZSB3YXMgc3VnZ2VzdGVkIHRvbwoKMjAxMC0wMS0xNiAxOTo0MToyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcmVtb3ZlIHN1cGVyZmx1b3VzIGd1YXJkIGFnYWluc3QgTlVMTAoJICBBbGwgY2FsbGVycyBvZiB0aGlzIHN0YXRpYyBmdW5jdGlvbiBhbHJlYWR5IGNoZWNrIGZvciBOVUxMLW5lc3MKCSAgdGhlbXNlbHZlcywgc28gbm8gbmVlZCB0byBkbyBpdCBhZ2FpbiAoYW5kIGlmIHdlIGRvIGl0LCB3ZSBzaG91bGQKCSAgcHJvYmFibHkgZG8gc28gYmVmb3JlIGRlcmVmZXJlbmNpbmcgdGhlIHBvaW50ZXIgZm9yIHRoZSBmaXJzdCB0aW1lKS4KCjIwMDktMTItMTcgMTk6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBtaWNyby1vcHRpbWlzZSBzb21lIGdldHRlcnMKCSAgQXZvaWQgY2hlY2tpbmcgdGhlIEdUeXBlIG9mIHRoZSB2YWx1ZSB0d2ljZSAob25jZSBvbiBvdXIgc2lkZSBhbmQKCSAgb25jZSBpbiBnX3ZhbHVlX2dldF8qKCkpIGJ5IGJ5LXBhc3NpbmcgZ192YWx1ZV9nZXQoKSBhbmQgYWNjZXNzaW5nCgkgIHRoZSBHVmFsdWUgc3RydWN0dXJlIGRpcmVjdGx5LgoKMjAxMC0wMS0xNSAxODozNjowNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IHVwZGF0ZSBkb2NzIGEgbGl0dGxlCgoyMDEwLTAxLTE1IDAwOjQ2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IG1pbm9yIHJlbGVhc2UgZG9jcyB1cGRhdGUKCjIwMTAtMDEtMTQgMjA6MTk6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEhhbmRsZSBidWZmZXJzIHdpdGggTlVMTCBjYXBzIGNvcnJlY3RseQoJICBUaGlzIG1lYW5zIHRoYXQgdGhlIGNhcHMgZGlkbid0IGNoYW5nZSBzbyBkb24ndCB0cnkgdG8gaGFuZGxlCgkgIHRoZSBOVUxMIGNhcHMgYXMgdGhlIG5ldyBjYXBzLgoKMjAxMC0wMS0xNCAxMDo0NDoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3R1cmkuaDoKCSAgZG9jczogTW92ZSBmaWVsZCBzcGVjaWZpYyBTaW5jZSBtYXJrZXJzIGF0IHRoZSBzYW1lIGxpbmUKCSAgRml4ZXMgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHdhcm5pbmdzIGFib3V0IFNpbmNlIGJlaW5nIGRlZmluZWQgbXVsdGlwbGUgdGltZXMuCgoyMDEwLTAxLTEzIDEwOjE3OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2ZhcS54bWw6CgkgIGZhcTogcmVtb3ZlIHJldmlzaW9uIGhpc3RvcnkgdGhhdCBubyBvbmUgdXBkYXRlcyBvciBjYXJlcyBhYm91dCBhbnl3YXkKCjIwMTAtMDEtMTMgMDk6MzI6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZmFxL2dpdC54bWw6CgkgIGZhcTogZml4IGxpbmsgdG8gZ3N0LXVuaW5zdGFsbGVkIG9uIGNnaXQKCSAgRml4IGxpbmsgdG8gZ3N0LXVuaW5zdGFsbGVkIG5vdyB0aGF0IGl0J3MgYmVlbiBtb3ZlZCwgYW5kIGZpeCBhIHR5cG8KCSAgd2hpbGUgd2UncmUgYXQgaXQuIEFsc28gYWRkIGEgbmV3IHNlY3Rpb24gdG8gJ0J1aWxkaW5nIEdTdHJlYW1lciBmcm9tCgkgIGdpdCcgdGhhdCBwb2ludHMgdG8gdGhlICdIb3cgZG8gSSBkZXZlbG9wIGFnYWluc3QgYW4gdW5pbnN0YWxsZWQgY29weQoJICBvZiBHU3RyZWFtZXInIHNlY3Rpb24uCgoyMDEwLTAxLTEzIDEwOjMyOjQ2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBSRUFETUU6CgkgIGRvY3M6IHdlJ3JlIGluIGdpdCBzaW5jZSBhIHdoaWxlCgoyMDEwLTAxLTEzIDEwOjMxOjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBNYWtlZmlsZS5hbToKCSogUkVBRE1FOgoJKiBkb2NzL2ZhcS9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZmFxL2ZhcS54bWw6CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogc2NyaXB0cy9nc3QtdW5pbnN0YWxsZWQ6CgkgIHNjcmlwdHM6IG1vdmUgZ3N0LXVuaW5zdGFsbGVkIGZyb20gZG9jcy9mYXEgdG8gc2NyaXB0cwoJICBEb24ndCBpbmNsdWRlIHRoZSBsb25nIGdzdC11bmluc3RhbGxlZCBzY3JpcHQgaW4gdmVyYmF0aW0gaW4gdGhlIGZhcSBhbnltb3JlCgkgICh0aGVyZSBpcyBhIGxpbmsgdG8gY2dpdCkuIERpc3QgdGhlIHNjcmlwdCB1bmRlciBpdHMgbmV3IGxvY2F0aW9uLgoKMjAxMC0wMS0xMiAyMTozNDowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnk6IGF2b2lkIHNvbWUgbW9yZSB1bm5lY2Vzc2FyeSBtYWxsb2MvZnJlZXMKCjIwMTAtMDEtMTIgMjA6MjE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBzb21lIHVubmVjZXNzYXJ5IHN0cmR1cC9mcmVlIHdoZW4gcmVhZGluZyB0aGUgYmluYXJ5IHJlZ2lzdHJ5CgkgIFN0cmluZ3MgaW4gdGhlIGJpbmFyeSByZWdpc3RyeSBhcmUgTlVMLXRlcm1pbmF0ZWQsIHNvIHdlIGNhbiBqdXN0IHVzZSB0aGVtCgkgIGRpcmVjdGx5IGlmIHdlIG9ubHkgbmVlZCB0aGVtIHRlbXBvcmFyaWx5LCBhbmQgYXZvaWQgdW5uZWNlc3NhcnkgbWFsbG9jcwoJICBhbmQgZnJlZXMuCgoyMDEwLTAxLTEyIDE3OjM4OjMyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiB1c2UgbmV3IHR5cGVmaW5kIGZ1bmN0aW9uCgkgIFJlZmFjdG9yIGEgbGl0dGxlLgoJICBVc2UgdGhlIG5ldyB0eXBlZmluZCBoZWxwZXIgZnVuY3Rpb24gdGhhdCB1c2VzIHRoZSBleHRlbnNpb24gdG8gc3BlZWQgdXAKCSAgdHlwZWZpbmRpbmcuCgoyMDEwLTAxLTEyIDE3OjM0OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgdHlwZWZpbmQ6IGFkZCBhIG5ldyBtZXRob2QgdGhhdCBhbHNvIHVzZXMgdGhlIGZpbGUgZXh0ZW5zaW9uCgkgIEFkZCBhIG1ldGhvZCB0byBwZXJmb3JtIGdldF9yYW5nZSB0eXBlZmluZGluZyB0aGF0IGFsc28gdXNlcyB0aGUKCSAgdXJpL2xvY2F0aW9uIGV4dGVuc2lvbiBhcyBhbiBleHRyYSBoaW50LiBJdCB3aWxsIGZpcnN0IHRyeSB0byBjYWxsIHRoZQoJICB0eXBlZmluZCBmdW5jdGlvbnMgb2YgdGhlIGZhY3RvcmllcyB0aGF0IGhhbmRsZSB0aGUgZ2l2ZW4gZXh0ZW5zaW9uLiBUaGUgcmVzdWx0CgkgIGlzIHRoYXQgaW4gdGhlIGNvbW1vbiBjYXNlLCB3ZSBvbmx5IGNhbGwgb25lIHR5cGVmaW5kIGZ1bmN0aW9uLCB3aGljaCBzcGVlZHMgdXAKCSAgdGhlIHR5cGVmaW5kaW5nIGEgbG90LgoKMjAxMC0wMS0xMSAxNDo1ODoxMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgZG9jczogdXBkYXRlIFFvUyBkb2N1bWVlbnQKCSAgQWRkIHNvbWUgaWRlYXMgYWJvdXQgYSBuZXcgUW9TIG1lc3NhZ2UuCgkgIFNlZSBhbHNvICMzMjI5NDcKCjIwMTAtMDEtMTEgMTE6Mzg6MzIgKzAxMDAgIEjDpXZhcmQgR3JhZmYgPGhhdmFyZC5ncmFmZkB0YW5kYmVyZy5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IG1ha2UgcmVsZWFzZV9wYWQgdGhyZWFkc2FmZQoJICBQcm90ZWN0IHRoZSAtPnJlbW92ZWQgZmllbGQgd2l0aCB0aGUgb2JqZWN0IGxvY2sgYXMgd2VsbC4gVGFrZSB0aGUgRFlOIGxvY2sKCSAgZWFybGllciBzbyB0aGF0IHdlIGNhbiBtYXJrIHRoZSBwYWQgcmVtb3ZlZCBhbmQgYXZvaWQgYSByYWNlIGluIHBhZF9hbGxvYy4KCSAgRml4ZXMgIzYwNjQzNQoKMjAwOS0xMi0xMSAxNzo0Njo0MiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGJ1cy5oOgoJICBidXM6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMTAtMDEtMTAgMjE6NDk6MjUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZGVmZXIgZ2V0dGluZyB0aGUgY2xhc3NlcyB1bnRpbCB3ZSBhY3R1YWx5IG5lZWQgdGhlbQoJICBUaGlzIGZ1bmN0aW9uIGhhcyBhIGxvdCBvZiBlYXJseSByZXR1cm5zLiBHaXZlIHRoZW0gc29lbSBtb3JlIGJlbmVmaXQuCgoyMDEwLTAxLTEwIDIxOjQwOjI0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGF2b2lkIGV4dHJhIGhvcCBpbiBnc3RfZWxlbWVudF9saW5rCgkgIE5vIG5lZWQgdG8gY2FsbCBnc3RfZWxlbWVudF9saW5rX3BhZHNfZmlsdGVyZWQgd2l0aCBmaWx0ZXI9TlVMTCwgd2hpY2ggd291bGQKCSAgY2FsbCBnc3RfZWxlbWVudF9saW5rX3BhZHMoKSBpbiB0aGF0IHdheS4gQ2FsbCBpdCBkaXJlY3RseSB0byBzYXZlIGEgY2FsbCBhbmQKCSAgZXhwZW5zaXZlIGdvYmplY3QgdHlwZSBjaGVja3MuCgoyMDEwLTAxLTEwIDE3OjM5OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiByZW1vdmUgc29tZSBjcnVmdCBmcm9tIGhlYWRlciBmaWxlCgkgIFJlbW92ZSBzb21lIGNydWZ0IGZyb20gdGhlIGdzdGNoZWNrIGhlYWRlciBmaWxlIHRoYXQncyBub3QgbmVlZGVkCgkgIGFueSBsb25nZXIgbm93IHRoYXQgd2Ugc2hpcCB3aXRoIG91ciBvd24gY29weSBvZiBsaWJjaGVjay4KCjIwMTAtMDEtMDcgMTc6NDE6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW1pZGkueG1sOgoJKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBwd2c6IHJlbW92ZSBlbXB0eSBtaWRpIHNlY3Rpb24KCjIwMTAtMDEtMDcgMTM6NDg6MjQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8Y2hyaXN0aWFuLnNjaGFsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIE1lcmdlIGJyYW5jaCAnbWFzdGVyJyBvZiBzc2g6Ly9naXQuZnJlZWRlc2t0b3Aub3JnL2dpdC9nc3RyZWFtZXIvZ3N0cmVhbWVyCgoyMDEwLTAxLTA3IDEzOjQ3OjUwICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPGNocmlzdGlhbi5zY2hhbGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgVXBkYXRlIHNwZWMgZmlsZQoKMjAxMC0wMS0wNiAyMDowODo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgZm9yIG5ldyB0cmFuc2xhdGVkIHN0cmluZ3MKCjIwMTAtMDEtMDYgMjA6MDY6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgZG9jczogbWlub3IgZG9jdW1lbnRhdGlvbiBmaXhlcyBmb3IgcmVjZW50bHktYWRkZWQgdGFncwoJICBNZW50aW9uIHRoZSB0eXBlIG9mIHRoZSB0YWcgaW4gdGhlIGd0ay1kb2MgYmx1cmIsIHNvIHBlb3BsZSBrbm93CgkgIHdoaWNoIGFjY2Vzc29yIEFQSSB0byB1c2UsIGFuZCBmaXggdXAgdGhlIGRvYyBibHVyYnMgdG8gbWF0Y2ggdGhlCgkgIGFjdHVhbCB0YWcgZGVmaW5lLgoKMjAxMC0wMS0wNiAyMDowNDoxNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICB0YWdzOiBmaXggdXAgdHJhbnNsYXRlZCBzdHJpbmdzIGZvciBzb21lIG5ldyB0YWdzCgkgIEZpeCB1cCB0cmFuc2xhdGVkIHN0cmluZ3MgZm9yIHNvbWUgcmVjZW50bHktYWRkZWQgdGFncyB0byBtYXRjaCB0aGUKCSAgZXhpc3Rpbmcgc3RyaW5nczogd2Ugd2FudCBzaG9ydCBtbmVtb25pYy1saWtlIHN0cmluZ3MgaGVyZSB0aGF0IHN0YXJ0CgkgIHdpdGggYSBsb3dlciBjYXNlIGxldHRlci4KCjIwMTAtMDEtMDYgMTk6MTk6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogZGVwcmVjYXRlIHVzZWxlc3MgZ3N0X3JlZ2lzdHJ5X3htbF97cmVhZHx3cml0ZX1fY2FjaGUoKQoJICBUaGUgb25seSByZWFzb24gdGhlc2UgdHdvIGZ1bmN0aW9ucyBhcmUgc3RpbGwgYXJvdW5kIGlzIHRoYXQgYXQgc29tZQoJICBwb2ludCBpbiB0aGUgcGFzdCB0aGV5IHdlcmUgaW4gYSBwdWJsaWMgaGVhZGVyLCBzbyB3ZSBjYW4ndCByZWFsbHkKCSAgcmVtb3ZlIHRoZW0gbm93IGV2ZW4gdGhvdWdoIHRoZXkgc2hvdWxkIGhhdmUgYmVlbiBwcml2YXRlIGFsbCBhbG9uZwoJICAoYW5kIGFyZW4ndCByZWFsbHkgcGFydGljdWxhcmx5IHVzZWZ1bCkuIFNpbmNlIHRoZXNlIGFyZSBqdXN0IGVtcHR5CgkgIHN0dWJzIG5vdyB0aGF0IGRvIG5vdGhpbmcgYnV0IHJldHVybiBGQUxTRSBhbmQgd2lsbCBiZSByZW1vdmVkIGluCgkgIDAuMTEgYW55d2F5LCB3ZSBtYXkganVzdCBhcyB3ZWxsIGRlcHJlY2F0ZSB0aGVtIGZvcm1hbGx5LgoKMjAxMC0wMS0wNiAxOToxODo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIGRvY3M6IGFkZCBTaW5jZSBtYXJrZXJzIHRvIHRhc2sgcG9vbCBkb2NzIGFuZCBkb2N1bWVudCB0YXNrIGZ1bmN0aW9uCgoyMDEwLTAxLTA2IDE4OjUwOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiBtb3ZlIFNIQVZFX0lOSVQgYmVoaW5kIGFsbCBjaGVja3MKCSAgTW92ZSBTSEFWRV9JTklUIGJlaGluZCBhbGwgb3RoZXIgY2hlY2tzLCBpbiBwYXJ0aWN1bGFyIEFHX0dTVF9DSEVDS19DSEVDS1MuCgkgIFRoaXMgc2hvdWxkIGZpeCBwcm9ibGVtcyB3aXRoIGhlYWRlciBjaGVja2luZyBhbmQgY2hlY2tpbmcgZm9yIGxvY2FsdGltZV9yLAoJICB3aGljaCBjYXVzZXMgY29tcGlsYXRpb24gZXJyb3JzIHdpdGggY2xlYW4gY2hlY2tvdXRzIHdoZXJlIGNvbW1vbi9zaGF2ZSBoYXMKCSAgbm90IGJlZW4gY3JlYXRlZCB5ZXQgd2hlbiB0aG9zZSBjaGVja3MgYXJlIHJ1bi4gSXQgc2VlbXMgbGlrZSBTSEFWRV9JTklUCgkgIGNoYW5nZXMgdGhlIGVudmlyb25tZW50IHNvIHRoYXQgY2hlY2tzIGRlcGVuZGluZyBvbiBhIGNvbXBpbGVyIG5lZWQgc2hhdmUKCSAgdG8gZXhpc3QgYXQgdGhhdCBwb2ludCwgd2hpY2ggd2lsbCBmYWlsIGlmIEFDX09VVFBVVCBoYXNuJ3QgY3JlYXRlZCBpdCB5ZXQuCgkgIEZpeGVzICM2MDU5MzAuCgoyMDEwLTAxLTA1IDAxOjM1OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkgIGNoZWNrOiBwYXRjaCBpbnRlcm5hbCBjaGVjayBjb3B5IHNvbWUgbW9yZSBzbyB0aGF0IGZhaWx1cmVzIGFjdHVhbGx5IGZhaWwKCSAgSW5jbHVkZSB1bmlzdGQuaCBzbyB0aGF0IF9QT1NJWF9WRVJTSU9OIGlzIGFjdHVhbGx5IGRlZmluZWQgd2hlbgoJICBpdCBzaG91bGQgYmUgZGVmaW5lZC4gV2l0aG91dCB0aGF0LCBzdHVmZiBsaWtlIGZhaWxfaWYoMSkgZG9lc24ndAoJICBhY3R1YWxseSBmYWlsLCBwcmVzdW1hYmx5IGJlY2F1c2Ugb3RoZXIgcGFydHMgb2YgdGhlIGNvZGUgZG8gaW5jbHVkZQoJICB1bmlzdGQuaCBhbmQgdGhlbiBoYXZlIF9QT1NJWF9WRVJTSU9OIGRlZmluZWQuCgkgIEZpeGVzICM2MDQ1NjUgZXZlbiBtb3JlLgoKMjAxMC0wMS0wNSAwMDowOToxMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGRvY3M6IGFkZCBtaXNzaW5nIHJldHVybnM6IHRhZwoKMjAwOS0xMi0zMCAyMjo1Njo1NyArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogc2V0IGl0ZXJhdGVfaW50ZXJhbF9saW5rcyBmdW5jdGlvbiBvbiBzb3VyY2UgcGFkCgoyMDA5LTEyLTI3IDE5OjMzOjI1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IHJlbW92ZSB1bm5lZWRlZCBjYXN0cwoKMjAwOS0xMi0wMiAxOTo0Nzo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBidWZmZXI6IHJlbW92ZSBzdWJidWZmZXIgc3ViY2xhc3MKCSAgTW92ZSB0aGUgcGFyZW50IGJ1ZmZlciBwb2ludGVyIGludG8gdGhlIEdzdEJ1ZmZlciBzdHJ1Y3Qgc28gdGhhdCB3ZSBjYW4KCSAgcmVtb3ZlIHRoZSBzdWJidWZmZXIgY2xhc3MgYW5kIHR5cGUuIFRoaXMgaXMgaW50ZXJlc3RpbmcgYmVjYXVzZSBpdCBhbGxvd3MgdXMgdG8KCSAgbW9yZSBuYXR1cmFsbHkgaW1wbGVtZW50IG1ldGhvZHMgdG8gZ2V0IHRoZSByZWFsIHR5cGUgYW5kIHBhcmVudAoJICBvZiBhIHN1YmJ1ZmZlciAoU2VlICM1NDU1MDEpLgoJICBJdCBzaG91bGQgYWxzbyBiZSBzbGlnaHRseSBmYXN0ZXIgYmVjYXVzZSB0aGVyZSBpcyBubyBleHRyYSBvYmplY3QgaGllcmFyY2h5IHRvCgkgIGluaXRpYWxpemUgYW5kIGZyZWUuCgoyMDA5LTEyLTI0IDE5OjI1OjUyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogZG9uJ3Qga2VlcCBidWZmZXJzIHJlZmZlZCBsb25nZXIgdGhhbiBuZWVkZWQKCSAgTWFrZSBzdXJlIHdlIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBidWZmZXIgZWFybHkgd2l0aG91dCBpbmNyZWFzaW5nIGl0cyByZWZjb3VudAoJICB3aGVuIHdlIGdvIGluIHRoZSBjb2xsZWN0IGZ1bmN0aW9uLiBUaGlzIHJlZHVjZXMgdGhlIGFtb3VudCBvZiBjb3BpZXMgbmVlZGVkIGluCgkgIG9yZGVyIHRvIG1ha2UgdGhlIGJ1ZmZlciB3cml0YWJsZSBpbiBtb3N0IGNhc2VzLgoKMjAwOS0xMi0yNCAxNzoyMjo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIG1pbmlvYmplY3Q6IGF2b2lkIHVubmVlZGVkIGNhc3RzCgoyMDA5LTEyLTI0IDE2OjUzOjE1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogYXZvaWQgZG9pbmcgc3ViYnVmZmVycyB3aGVuIHdlIGNhbgoJICBJbiBzb21lIGNhc2VzIHdlIGNhbiBhdm9pZCBhbGxvY2F0aW5nIGEgc3ViYnVmZmVyIGFuZCBpbnN0ZWFkIHNpbXBseSByZWYKCSAgdGhlIGJ1ZmZlci4gQ2FsbGVycyBzaG91bGQgcGVyZm9ybSBfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIGluIGFsbAoJICBjYXNlcyBub3cuCgoyMDA5LTEyLTI0IDE1OjI1OjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgY29sbGVjdHBhZHM6IGFkZCBhYmlsaXR5IHRvIGluc3RhbGwgY2xpcHBpbmcgZnVuY3Rpb25zCgkgIEFkZCBhIG1ldGhvZCB0byBpbnN0YWxsIGEgY2xpcHBpbmcgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiBhIGJ1ZmZlciBpcwoJICByZWNlaXZlZC4gVXNlcnMgb2YgY29sbGVjdHBhZHMgY2FuIHRoZW4gcGVyZm9ybSBjbGlwcGluZyBvbiB0aGUgaW5jb21taW5nCgkgIGJ1ZmZlcnMuCgkgIEFsc28gcmV0YWIgdGhlIGhlYWRlciBmaWxlIGEgbGl0dGxlLgoJICBTZWUgIzU5MDI2NQoKMjAwOS0xMi0yNCAxNToxMzo0OSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWJ1ZmZlcjIudHh0OgoJICBkb2NzOiBhZGQgc29tZSBtb3JlIGJ1ZmZlcjIgaWRlYXMKCjIwMDktMTItMjQgMTQ6NDA6NTQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBhdm9pZCBzb21lIG1vcmUgdHlwZSBjaGVja3MKCjIwMDktMTItMjQgMTQ6MjI6NTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgcGlwZWxpbmU6IGF2b2lkIHNvbWUgdHlwZSBjaGVja3MKCSAgQXZvaWQgdHlwZSBjaGVja3Mgd2hlbiB3ZSBjYW4KCSAgRG9uJ3QgbmVlZCB0byBwZWVrIHRoZSBwYXJlbnRfY2xhc3MsIHRoZSBib2lsZXJwbGF0ZSBkb2VzIHRoYXQgZm9yIHVzLgoKMjAwOS0xMi0yMyAyMTozOToyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgbGF1bmNoOiBhbHNvIHByaW50IGxlYWtlZCBvYmplY3RzCgkgIE1ha2UgdGhlIC1UIG9wdGlvbiBhbHNvIHByaW50IHRoZSBsZWFrZWQgb2JqZWN0cwoKMjAwOS0xMi0yMyAyMTozNzo1MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0cmFjZS5jOgoJICB0cmFjZTogaW5jbHVkZSB0eXBlIG5hbWUgaW4gbGVha2VkIG9iamVjdHMKCSAgV2hlbiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgR09iamVjdCwgcHJpbnQgdGhlIHR5cGUgbmFtZSBhbG9uZyB3aXRoCgkgIHRoZSBwb2ludGVyIGZvciBlYXNpZXIgZGVidWdnaW5nLgoKMjAwOS0xMi0yMyAyMToyMDoxNCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IEZpeCBwcm9ibGVtIHdpdGggZGVzdHJveSBjYWxsYmFjayBub3QgYmVpbmcgY2FsbGVkCgkgIFdoZW4gd2UgdW5ibG9jayBhIHBhZCB3aXRoIHRoZSBzYW1lIHVzZXJfZGF0YSwgdGhlIGRlc3Ryb3kgY2FsbGJhY2sgaXMgbm90CgkgIGNhbGxlZC4gVGhpcyBsZWFkcyB0byByZWZjb3VudGluZyBsZWFrcyB0aGF0IGNhbm5vdCBiZSBhdm9pZGVkLiBJbnN0ZWFkIGFsd2F5cwoJICBjYWxsIHRoZSBkZXN0cm95IG5vdGlmeSB3aGVuZXZlciB3ZSBpbnN0YWxsIGEgbmV3IHBhZCBibG9jay4KCSAgSW4gcGFydGljdWxhciwgdGhpcyBmaXhlcyBhIG5hc3R5IHBhZCBsZWFrIGluIGRlY29kZWJpbjIuCgkgIEFsc28gdXBkYXRlIHRoZSB1bml0IHRlc3QgdG8gaGF2ZSBtb3JlIGFjY3VyYXRlIGNvbW1lbnRzIGFuZCB0ZXN0IHRoZSByZXF1aXJlZAoJICBiZWhhdmlvdXIuCgoyMDA5LTEyLTIyIDIyOjUyOjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiBzbWFsbCBjbGVhbnVwcywgdXNlIHNvbWUgR19MSUtFTFkKCjIwMDktMTItMjIgMTU6Mjk6MjYgLTA1MDAgIE9saXZpZXIgQ3LDqnRlIDxvbGl2aWVyLmNyZXRlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogRG9uJ3QgY3Jhc2ggaWYgdGhlcmUgaXMgbm8gc291cmNlIHBhZAoKMjAwOS0xMi0yMSAxOToxMTo0NSArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDQ3Y2IyM2EgdG8gMTRjZWM4OQoKMjAwOS0xMi0yMSAxMTo1ODoxMiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBnc3R0YWdsaXN0OiBBZGRzIG5ldyB0YWdzCgkgIEFkZHMgdGhlIGZvbGxvd2luZyBuZXcgdGFnczoKCSAgR1NUX1RBR19TSE9XX05BTUUKCSAgR1NUX1RBR19TSE9XX1NPUlROQU1FCgkgIEdTVF9UQUdfU0hPV19FUElTT0RFX05VTUJFUgoJICBHU1RfVEFHX1NIT1dfU0VBU09OX05VTUJFUgoJICBHU1RfVEFHX0xZUklDUwoJICBHU1RfVEFHX0NPTVBPU0VSX1NPUlROQU1FCgkgIEdTVF9UQUdfR1JPVVBJTkcKCSAgRml4ZXMgIzU5OTc1OQoKMjAwOS0xMi0xOSAxNDoyNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYWx3YXlzIGNhbGwgb3VyIGNoZWNrIGNoZWNrcyBmb3IgdGhlIFNVQlVOSVQgY29uZGl0aW9uYWwKCSAgVGhlIFNVQlVOSVQgY29uZGl0aW9uYWwgbmVlZHMgdG8gYmUgc2V0IGV2ZW4gaWYgY2hlY2sgaXMgZGlzYWJsZWQuIEFsc28KCSAgcmVtb3ZlIGEgRklYTUUgdGhhdCBpcyBub3QgbmVlZGVkIGFueSBsb25nZXIgLyBhZnRlciBhbGwuCgoyMDA5LTEyLTE4IDIxOjI4OjM1ICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSAgY2hlY2s6IHBhdGNoIGludGVybmFsIGNoZWNrIGNvcHkgc28gaXQgd29ya3Mgd2l0aCBvdXIgYnVpbGQgc3lzdGVtCgkgIEZpeGVzICM2MDQ1NjUuCgoyMDA5LTEyLTE4IDIxOjI2OjAxICswMDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IHVwZGF0ZSBhdXRvdG9vbHMgYW5kIGRvY3Mgc3R1ZmYgZm9yIG5ldyBjaGVjayB2ZXJzaW9uCgoyMDA5LTEyLTE3IDIwOjA5OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNoZWNrLWNoZWNrcy5tNDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2suaC5pbjoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfZXJyb3IuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfaW1wbC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19saXN0LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xvZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbXNnLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3BhY2suYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcHJpbnQuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcnVuLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3N0ci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuaDoKCSAgY2hlY2s6IHVwZGF0ZSBpbnRlcm5hbCBsaWJjaGVjayB0byAwLjkuOAoKMjAwOS0xMi0xNSAxODo1NTozOCArMDEwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogcHJpbnRmIGZvcm1hdCBmaXhlcwoKMjAwOS0xMi0xNCAxNjoyMjoxNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBkb2NzOiBsaW5rIGJ1cyBhbmQgdGFza3MKCSAgQWRkIGEgbGluayBmcm9tIGJ1cyBzZWN0aW9uIGRvY3MgdG8gdGhlIHRhc2sgZG9jcy4gQWRkIGEgcGFyYWdyYXBoIHRvIHRhc2sgZG9jcwoJICB0byB0ZWxsIGFib3V0IG1lc3NhZ2VzIGFuZCB0aGUgYnVzLgoKMjAwOS0xMi0xNCAxNToxMTo0MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZG9jczogYWRkIG1vcmUgZG9jcyBhcm91bmQgR3N0U3RhdGUgYW5kIEdzdFN0YXRlQ2hhbmdlCgkgIFRha2UgcmV2aWV3ZWQgZG9jcyBmcm9tIGRvY3MvZGVzaWduL3BhcnQtc3RhdGUgdG8gaGF2ZSB0aGF0IG1vcmUgcHJvbWluZW50CgkgIGluc2lkZSB0aGUgYXBpIGRvY3MuIEFkZCBhIGZldyBzZW50ZW5jZXMgdG8gbGluayB0aGluZ3MgYmV0dGVyIHRvZ2V0aGVyLgoKMjAwOS0xMi0xNCAxNToxMToxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICBkb2NzOiByZXZpZXcgYW5kIGZpeCBzcGVsbGluZwoKMjAwOS0xMi0xNCAxMTowNTo0MSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGdzdGVsZW1lbnRmYWN0b3J5OiBzZXQgb2JqZWN0IG5hbWUgZWFybGllciBpZiBhcHBsaWNhYmxlCgkgIFNldHRpbmcgYW4gb2JqZWN0IG5hbWUgaXMgbmljZSBmb3IgcHJvcGVyIGRlYnVnIGxvZ2dpbmcuIElkZWFsbHkgdGhpcyB3b3VsZAoJICBzdGlsbCBoYXBwZW5zIGVhcmxpZXIgKC5lLmcgd2hlbiBwYWRzIGFyZSBhZGRlZCB0byBhbiBlbGVtZW50LCBpdHMgbm90IHlldCBzZXQpLgoKMjAwOS0xMi0xNCAxMTowNzoyNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGFkZCBmaXhtZS0wLjExIGNvbW1lbnQKCjIwMDktMTItMDggMTE6MzA6MzkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29tbWVudDogc21hbGwgY29tbWVudCBjb3JyZWN0aW9uCgoyMDA5LTEyLTExIDE2OjI2OjAwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IG5ldmVyIHNraXAgYSBzdGF0ZSBjaGFuZ2UgdG8gUExBWUlORwoJICBOZXZlciBza2lwIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gcGxheWluZywgZXZlbiBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5IGluIHRoZQoJICByaWdodCBzdGF0ZS4gV2UgbmVlZCB0aGlzIGJlY2F1c2Ugd2UgYWxzbyBkaXN0cmlidXRlIHRoZSBiYXNlX3RpbWUgd2hpbGUgZG9pbmcKCSAgdGhlIHN0YXRlIGNoYW5nZSBhbmQgc2tpcHBpbmcgdGhpcyBzdGVwIHdvdWxkIGxlYXZlIHNvbWUgZWxlbWVudHMgd2l0aG91dCBhIG5ldwoJICBiYXNlX3RpbWUuCgkgIEZpeGVzICM2MDAzMTMKCjIwMDktMTItMTEgMTY6MTk6MTggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBhZGQgc29tZSBtb3JlIGRlYnVnZ2luZwoKMjAwOS0xMi0wOCAxNzoyMTo0NyArMDEwMCAgSGF2YXJkIEdyYWZmIDxoYXZhcmQuZ3JhZmZAdGFuZGJlcmcuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgdGVlOiByZWxlYXNlIHBhZHMgaW4gZGlzcG9zZQoJICBNYWtlIHN1cmUgdG8gcmVsZWFzZSBhbGwgcmVxdWVzdC1wYWRzIGluIHRoZSBkaXNwb3NlLW1ldGhvZCwgaW4gY2FzZSBvZiBhCgkgIHNodXRkb3duLXJhY2UsIHdoZXJlIGEgcGFkLWFsbG9jIGlzIGFib3V0IHRvIGhhcHBlbi4KCSAgRml4ZXMgIzYwNDA5MQoKMjAwOS0xMi0wOSAxMzoyNzoyMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IHVzZSBOVUxMIGluc3RlYWQgb2YgMCBmb3IgcG9pbnRlcnMKCjIwMDktMTItMDkgMDc6MjU6MzEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBNb3ZlIGdzdF90b29sc19wcmludF92ZXJzaW9uKCkgZm9yIHRoZSByZW1haW5pbmcgdG9vbHMKCjIwMDktMTItMDMgMTI6MzE6MTkgKzAxMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBNb3ZlIGdzdF90b29sc19wcmludF92ZXJzaW9uIGNhbGwgdG8gYXZvaWQgd2FybmluZyBmcm9tIG5ldyBHTGliLgoJICBnX3NldHByZ25hbWUgaXMgaW1wbGljaXRseSBjYWxsZWQgYnkgZ19vcHRpb25fY29udGV4dF9uZXcoKSB3aXRoIGEgY2hlY2sKCSAgdG8gc2VlIGlmIGl0J3MgYmVlbiBzZXQgYWxyZWFkeS4KCSAgRml4ZXMgYnVnICM2MDQwOTMuCgoyMDA5LTEyLTA4IDE2OjQwOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IHByb3h5X3NldGNhcHMgdG8gb25seSBpdGVyYXRlIHBhZHMgb2Ygb3RoZXIgZGlyZWN0aW9uCgoyMDA5LTEyLTA4IDE2OjIxOjQxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBmaXggcHJveHlfZ2V0Y2FwcwoJICBNYWtlIGl0IHJldHVybiB0aGUgcGFkdGVtcGxhdGUgY2FwcyBvbiBlcnJvcnMgYW5kIG5vIHBhcmVudC4KCSAgT25seSBpbnRlcnNlY3QgcGFkcyBvZiB0aGUgb3Bvc2l0ZSBkaXJlY3Rpb24gb2YgdGhlIHNvdXJjZSBwYWQuCgoyMDA5LTEyLTA4IDE2OjE0OjI4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogUmVuYW1lIHByb3h5IGl0ZXJhdG9yIGZvbGQgZnVuY3Rpb25zIHRvIGhhdmUgYSBtb3JlIG1lYW5pbmdmdWwgbmFtZQoKMjAwOS0xMi0wOCAxNjowOTowMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IElmIG9uZSBpbnRlcnNlY3Rpb24gZ2F2ZSBlbXB0eSBjYXBzIGRvbid0IGNvbnRpbnVlIGl0ZXJhdGluZyBvdmVyIHRoZSBvdGhlciBwYWRzCgoyMDA5LTEyLTA4IDE1OjI0OjQzICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEFsbG93IHVwZGF0ZSBORVdTRUdNRU5UIGV2ZW50cyBhZnRlciBFT1MKCSAgVGhpcyBhbGxvd3MgZGVtdXhlcnMgdG8gdXBkYXRlIHRoZSBzZWdtZW50IHN0b3Agb2YgYW4gYWxyZWFkeQoJICBmaW5pc2hlZCBzdHJlYW0uIFRoaXMgbWlnaHQgYmUgbmVlZGVkIGlmIHNvbWUgc3RyZWFtIGdvZXMgdG8KCSAgRU9TIGJlZm9yZSB0aGUgZHVyYXRpb24gb2YgdGhlIGxvbmdlc3Qgc3RyZWFtIGlzIGtub3duIHRvIHByb3Blcmx5CgkgIHNldCB0aGUgc2VnbWVudCBzdG9wIG9mIGFsbCBzdHJlYW1zIHRvIHRoZSBzYW1lIHZhbHVlIGluIHRoZSBlbmQuCgoyMDA5LTEyLTA3IDIwOjUyOjIyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBVc2UgcGxhaW4gY2FzdGluZyBpbnN0ZWFkIG9mIHR5cGVjaGVja2luZwoKMjAwOS0xMi0wNyAwOTo0NTowMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3R2YWx1ZTogVXNlIGZhc3QgZ3N0X3ZhbHVlX2xpc3Rfe3NpemV8Z2V0X3ZhbHVlfSBtYWNybyBhY2Nlc3NvcnMKCSAgZ3N0X3ZhbHVlX2xpc3Rfc2l6ZSBhbmQgZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlIHdpbGwgZG8gYSBzZXJpZXMgb2YKCSAgZXh0cmEgY2hlY2tzIGR1ZSB0byBiZWluZyBwdWJsaWMgbWV0aG9kcy4KCSAgV2hlbiB3ZSB1c2UgdGhlbSBmcm9tIHdpdGhpbiBnc3R2YWx1ZS5jIHdlIGNhbiBkaXJlY3RseSB1c2UgdGhlbSB3aXRob3V0CgkgIHRoZSBleHRyYSBjaGVja3MuCgoyMDA5LTEyLTA3IDA5OjQ0OjA2ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHVyaS5jOgoJICBnc3R1cmk6IERvbid0IHVzZSBnX3NpZ25hbF9lbWl0X2J5X25hbWUsIHVzZSB0aGUgc2lnbmFsIElEIGRpcmVjdGx5CgoyMDA5LTExLTE4IDA5OjAxOjM1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiBhdm9pZCBleHBlbnNpdmUgdHlwZWNoZWNrcywgYW5kIGF2b2lkIGdldHRpbmcgcmVmIHRvIHBhcmVudC4KCSAgU3BlZWRzIHVwIHRlZSBwcm9jZXNzaW5nIDIgdG8gNSB0aW1lcy4KCjIwMDktMTEtMTIgMDk6MDc6MDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGdzdG9iamVjdDogQXZvaWQgZG91YmxlIHN0cmR1cCB3aGVuIHNldHRpbmcgTlVMTCBuYW1lcy4KCSAgSW5zdGVhZCBvZiBjaGFpbmluZyB1cCB0byBnc3Rfb2JqZWN0X3NldF9uYW1lICh3aGljaCBkb2VzIHR5cGVjaGVja2luZwoJICBhbmQgc3RyZHVwJ3MgdGhlIG5hbWUgYWdhaW4pLCBqdXN0IHVzZSB0aGUgYWxyZWFkeSBhbGxvY2F0ZWQgbmV3CgkgIG5hbWUuCgoyMDA5LTEyLTA0IDEyOjE2OjMyIC0wODAwICBQZXRlciB2YW4gSGFyZGVuYmVyZyA8cHZoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiBkb2NzL3B3Zy9idWlsZGluZy1wcm9wcy54bWw6CgkgIHB3ZzogbWFrZSB0aGUgZW51bSBleGFtcGxlIChiYXNlZCBvbiB2aWRlb3Rlc3RzcmMpIGFjdHVhbGx5IG1hdGNoIHZpZGVvdGVzdHNyYwoKMjAwOS0xMi0wNCAxNjoyODoyNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogSWdub3JlIHN0YXRlIGNoYW5nZSBmYWlsdXJlcyBmcm9tIGNoaWxkcmVuIHRoYXQgd2VyZSByZW1vdmVkIGZyb20gdGhlIGJpbiBhbHJlYWR5CgkgIEZpeGVzIGJ1ZyAjNTg0NDQxLgoKMjAwOS0xMi0wNCAxNTowMDo0NCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IFVzZSBHTWFwcGVkRmlsZSBmb3IgcmVhZGluZyB0aGUgcmVnaXN0cnkKCSAgRml4ZXMgYnVnICM2MDM3ODcuCgoyMDA5LTEyLTAzIDE5OjQ4OjExICswMTAwICBKYXZpZXIgSmFyZMOzbiA8amphcmRvbkBnbm9tZS5vcmc+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnk6IFN1YnN0aXR1dGUgZGVwcmVjYXRlZCBHTGliIHN5bWJvbDogZ19tYXBwZWRfZmlsZV9mcmVlCgkgIFVzZSBnX21hcHBlZF9maWxlX3VucmVmIGlmIEdsaWIgPj0gMi4yMiBpcyBhdmFpbGFibGUKCSAgRml4ZXMgYnVnICM1NjA0NDIuCgoyMDA5LTExLTI3IDIwOjE2OjE1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2h1dCBkb3duIHRoZSBwYWQgdGFzayB3aGVuIHRoZSBpbml0aWFsIHNlZWsgZmFpbHMuCgkgIFNldCB0aGUgcGFkIGZsdXNoaW5nIGFuZCBzdG9wIHRoZSBwYWQgdGFzayB3aGVuIHRoZSBpbml0aWFsIHNlZWsgZmFpbHMKCSAgZHVyaW5nIGFjdGl2YXRpb24uIEF2b2lkcyByYWN5IGNhbGxzIGludG8gdGhlIF9jcmVhdGUoKSBmdW5jdGlvbiB3aGVuCgkgIEJhc2VTcmM6OnN0b3AoKSBoYXMgYWxyZWFkeSBydW4uCgkgIEZpeGVzOiAjNjAzMDU5CgkgIEFsc28sIGZpeCBzb21lIG1pc3NwZWxsZWQgY29tbWVudHMuCgoyMDA5LTEyLTAzIDIwOjU1OjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgYWZ0ZXIgc3RyaW5nIGNoYW5nZXMKCSAgKFRoZSBxdWV1ZTIgc3RyaW5ncyBjb3VsZCB1c2Ugc29tZSB0aWR5aW5nIHVwKQoKMjAwOS0xMi0wMyAyMDo1MzoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBmaWxlc2luaywgZmlsZXNyYzogcHJpbnRmIGZvcm1hdCBmaXhlcwoJICBnc3RmaWxlc2luay5jOjM5OTogZXJyb3I6IGZvcm1hdCDigJglZOKAmSBleHBlY3RzIHR5cGUg4oCYaW504oCZLCBidXQgYXJndW1lbnQgOCBoYXMgdHlwZSDigJhzaXplX3TigJkKCSAgZ3N0ZmlsZXNpbmsuYzozOTk6IGVycm9yOiBmb3JtYXQg4oCYJWTigJkgZXhwZWN0cyB0eXBlIOKAmGludOKAmSwgYnV0IGFyZ3VtZW50IDkgaGFzIHR5cGUg4oCYZ3NpemXigJkKCSAgZ3N0ZmlsZXNyYy5jOjU4ODogZXJyb3I6IGZvcm1hdCDigJglMDhsbHjigJkgZXhwZWN0cyB0eXBlIOKAmGxvbmcgbG9uZyB1bnNpZ25lZCBpbnTigJksIGJ1dCBhcmd1bWVudCA4IGhhcyB0eXBlIOKAmG9mZl904oCZCgoyMDA5LTEyLTAzIDE2OjQ0OjI4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IGFkZCBzcGVjaWFsIGNhc2UgZm9yIG9ubHkgb25lIHBhZCBjb25lY3RlZAoJICBJdCBpcyBub3QgZWFzeSB0byBzZXR1cCBhIHRlZSBvbiB0aGUgZmx5LCB0aHVzIGFwcHMgbmVlZCB0byBhZGQgdGhlbSBhbHdheXMgaWYKCSAgdGhleSBtaWdodCBuZWVkIHRoZW0uIFRoaXMgY2hhbmdlcyB0aGUgY29kZSBzbywgdGhhdCBpZiBvbmx5IG9uZSBzcmMtcGFkIGlzCgkgIGFjdGl2ZSwgd2UgcHVzaCBidWZmZXJzIGRpcmVjdGx5LiBJbiB0aGUgbm9ybWFsIGNvZGUgcGF0aCBhbGwgYnVmZmVycyBhcmUgcHVzaGVkCgkgIHdpdGggYW4gZXh0cmEgcmVmLCB0aGF0IGZvcmNlcyBmb2xsb3d1cCBpbnBsYWNlIGVsZW1lbnRzIHRvIGNvcHkgdGhlIGRhdGEuCgoyMDA5LTEyLTAzIDE2OjExOjU5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICB0ZWU6IG9ubHkgbWVzc2FnZSBvbmNlIHBlciByZWNlaXZlZCBidWZmZXIKCSAgQXZvaWRzIGNoZWNraW5nIGZvciBlYWNoIHNvdXJjZSBwYWQuIFRoZSBtZXNzYWdlcyB3b3VsZCBiZSBhbG1vc3QgaWRlbnRpY2FsCgkgIGFueXdheS4KCjIwMDktMTItMDMgMTU6Mjc6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtcmVnaXN0cnktY2hhbmdlLWhvb2tzLnR4dDoKCSAgZHJhZnRzOiBwbGFubmluZwoKMjAwOS0xMi0wMyAxNjowNTowMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgdGVlOiByZW1vdmUgdW51c2VkIG9mZnNldCBtZW1iZXIKCjIwMDktMTItMDMgMTY6MDI6MzUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogb25seSBub3RpZnkgYWxsb2MtcGFkIHByb3BlcnR5IGlmIGNoYW5nZWQuCgoyMDA5LTEyLTAyIDEzOjI5OjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIGV2ZW50OiBmaXggZG9jcyBmb3IgX2NvcHkoKQoKMjAwOS0xMi0wMSAyMjozNzo1MSAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHRvb2xzOiBGaXggY2hlY2sgZm9yIFdpbmRvd3MKCjIwMDktMTItMDEgMTg6MDk6MDQgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogZ3N0L2dzdHRyYWNlLmM6CgkgIE1ha2UgZ2NjIGlubGluZSBhc3NlbWJseSBjb25kaXRpb25hbCBvbiBnY2MKCjIwMDktMTItMDEgMTk6Mjk6MjUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBSZWdpc3RlciBkZWJ1ZyBmdW5jcHRyIG9ubHkgb25jZS4KCSAgTWFrZXMgY3JlYXRpbmcgcXVldWUgZWxlbWVudHMgMy00IHRpbWVzIGZhc3RlciBhbmQgYXZvaWRzIGNvbnRlbnRpb24gb24gdGhlCgkgIGdsb2JhbCBmdW5jcHRyIGxvY2suCgoyMDA5LTEyLTAxIDE5OjI3OjQ3ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYy9iYXNlc2luazogUmVnaXN0ZXIgZGVidWcgZnVuY3B0ciBvbmx5IG9uY2UuCgkgIE1ha2VzIGJhc2VzcmMvYmFzZXNpbmsgaW5pdGlhbGl6YXRpb24gMy00IHRpbWVzIGZhc3RlciBhbmQgYXZvaWRzCgkgIGNvbnRlbnRpb24gb24gdGhlIGdsb2JhbCBmdW5jcHRyIGxvY2sKCjIwMDktMTItMDEgMTc6NTQ6NTYgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ3N0Z2hvc3RwYWQ6IFJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25seSBvbmNlLgoJICBUaGlzIG1ha2VzIGdob3N0cGFkL3Byb3h5cGFkIGNyZWF0aW9uIDUgdGltZXMgZmFzdGVyIGFuZCBhdm9pZHMgY29udGVudGlvbgoJICBvdmVyIHRoZSBnbG9iYWwgZnVuY3B0ciBsb2NrLgoJICBJIGFsc28gbW92ZWQgdGhlIHR3byBjbGFzcyBpbml0IGRvd24gaW4gdGhlIGNvZGUgdG8gYXZvaWQgaGF2aW5nIHRvIGZvcndhcmQKCSAgZGVjbGFyZSBhbGwgdGhlIHZhcmlvdXMgZnVuY3Rpb25zLgoKMjAwOS0xMi0wMSAxNzo1NDoxNCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZ3N0cGFkOiBPbmx5IHJlZ2lzdGVyIGRlYnVnIGZ1bmNwdHIgb25jZS4KCSAgVGhpcyBtYWtlcyBwYWQgaW5pdGlhbGl6YXRpb24gMiB0aW1lcyBmYXN0ZXIgYW5kIHdpdGhvdXQgYW55IGNvbnRlbnRpb24KCSAgb3ZlciB0aGUgZGVidWcgZnVuY3B0ciBnbG9iYWwgbG9jay4KCjIwMDktMTItMDEgMTc6NTM6MDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBBUEk6IEFkZCBHU1RfREVCVUdfUkVHSVNURVJfRlVOQ1BUUiBtZXRob2QuCgkgIFRoaXMgaXMgYSB2YXJpYW50IG9mIEdTVF9ERUJVR19GVU5DUFRSIHdoaWNoIGRvZXMgbm90IHJldHVybiBhbnl0aGluZy4KCjIwMDktMTItMDEgMTU6MDU6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4N2JmNDI4IHRvIDQ3Y2IyM2EKCjIwMDktMTItMDEgMTQ6MDg6MjkgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFVzZSBuZXcgQUdfR1NUX1BMQVRGT1JNIG1hY3JvCgoyMDA5LTEyLTAxIDE0OjEwOjU5ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZGE0Yzc1YyB0byA4N2JmNDI4CgoyMDA5LTExLTI4IDIyOjI5OjI5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogY2xpcCBzdGVwcGluZyBib3VuZGFyaWVzCgkgIFJvdW5kaW5nIGVycm9ycyB3aXRoIHRoZSBmbG9hdGluZyBwb2ludCByYXRlIGNvdWxkIG1ha2UgaXQgc28gdGhhdCB3ZQoJICBkb24ndCBlbmQgdXAgZXhhY3RseSBhdCB0aGUgcmVxdWlyZWQgc3RlcHBpbmcgZHVyYXRpb24uCgkgIFVzZSB0aGUgc2VnbWVudCBjbGlwcGluZyBib3VuZGFyaWVzLCB3aGljaCBhcmUgbm90IHN1YmplY3QgdG8gcmF0ZQoJICBhZGp1c3RlbWVudHMsIGluc3RlYWQgdG8gZGV0ZWN0IHdoZW4gd2UgcmVhY2hlZCB0aGUgc3RlcHBpbmcgZHVyYXRpb24uCgkgIEFkZCBzb21lIGRlYnVnIGluZm8gcmVsYXRlZCB0byBnb2luZyB0byB0aGUgUEFVU0VEIHN0YXRlLgoKMjAwOS0xMS0yOCAxNzowMjoxNyArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBkb2NzOiBmaXggYW5vdGhlciB0eXBvCgoyMDA5LTExLTI4IDE1OjQwOjMwICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgZG9jczogZml4IHR5cG8KCjIwMDktMTEtMjcgMTg6NTQ6MzMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDUzYTI0ODUgdG8gZGE0Yzc1YwoKMjAwOS0xMS0yNyAxMzo0MjozNiAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgZ3N0ZXZlbnQ6IGZpeCBkb2NzCgkgIEZpeCBmbHVzaCBzdG9wcyBkb2NzLCB0aG9zZSBhcmUgc2VyaWFsaXplZCwgbm90IG91dCBvZiBib3VuZHMuCgkgIFByb2JhYmx5IGEgY29weSBhbmQgcGFzdGUgbWlzdGFrZS4KCjIwMDktMTEtMjcgMTY6Mzk6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGRvY3M6IGZpeCBicm9rZW4geHJlZnMKCjIwMDktMTEtMjcgMTY6Mzk6MzcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICBkb2NzOiBmaXggYnJva2VuIHhyZWZzCgoyMDA5LTExLTI3IDE2OjM5OjAxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBkb2NzOiBhZGQgbWlzc2luZyBzZWN0aW9uIHRvIGxpYnMtZG9jcwoKMjAwOS0xMS0yNyAxNDoxODowMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHhtbC5jOgoJICBkb2NzOiBtYWtlIGxpbmtzIHdvcmsgKG5lZWRzIHJlY2VudCBndGstZG9jKQoKMjAwOS0xMS0yNyAxNDoxNzozNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBkb2NzOiBhZGQgbWlzc2luZyBwYXJhbWV0ZXIgZG9jcwoKMjAwOS0xMS0yNyAxNDoxNjo1NCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBkb2NzOiBlbmFibGUgZG9jcyBmb3IgR3N0T2JqZWN0Q2xhc3MgdG8gZml4IGxpbmtzCgoyMDA5LTExLTI3IDE0OjE1OjA4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGdzdG9iamVjdDogYWRkIEZJWE1FLTAuMTEgY29tbWVudHMKCjIwMDktMTEtMjUgMTg6MjU6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R4bWwuYzoKCSAgZG9jczogYmV0dGVyIHdheSB0byBsaW5rIGNsYXNzIG1ldGhvZHMKCjIwMDktMTEtMjUgMTg6MjQ6MTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBkb2NzOiB1c2UgJyonIGluc3RlYWQgb2YgeHh4IHRvIGF2b2lkIGNyZWF0aW5nIGEgYnJvZWtuIHhyZWYKCjIwMDktMTEtMjUgMTc6Mzc6MzMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmg6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IGZpeCBtb3JlIGJvZ3VzIHhyZWZzCgoyMDA5LTExLTI1IDE3OjI3OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGRvY3M6IGFkZCBkb2NzIGZvciBHc3RQbHVnaW5GbGFncwoJICBUaGlzIGFsc28gbWFrZXMgbGlua3MgdG8gdGhlbSB3b3JrLgoKMjAwOS0xMS0yNSAxNTozOTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgZG9jczogaW1wcm92ZSBHc3RNaXhlciBhbmQgR3N0VHVuZXIgZG9jcwoJICBNZW50aW9uIHRoYXQgZWxlbWVudHMgaW1wbGVtZW50aW5nIEdzdE1peGVyIGFuZCBHc3RUdW5lciBuZWVkIHRvIGJlCgkgIGluIHRoZSByaWdodCBzdGF0ZSBiZWZvcmUgdGhleSBjYW4gYmUgdXNlZC4gQWxzbyBtZW50aW9uIEdMaWIKCSAgZnVuY3Rpb25zIGZvciBjb252ZXJ0aW5nIGZpbGVuYW1lcyB0byBhbmQgZnJvbSBVUklzLgoJICBGaXhlcyAjNjAyODc3LgoKMjAwOS0xMS0yNSAxNjo0NDowNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0YnVzLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6CgkqIGdzdC9nc3RmaWx0ZXIuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGdzdC9nc3R1cmkuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jczogZml4IHhyZWZzIGluIGRvY3MKCSAgRml4IHR5cG9zIGluIHhyZWZzLCBsaW5rcyB0byBub24gZXhpc3RpbmcgZnVuY3Rpb25zIGFuZCByZXdvcmsgcGx1cmFsIGZvcm1zLgoKMjAwOS0xMS0yNSAxNDo0MToyNiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdG1hY3Jvcy5oOgoJICBkb2NzOiByZW1vdmUgZ3RrZG9jIGhlYWRlciBhcyB0aGVzZSB0aGluZ3MgZG9uJ3QgY29tZSB1cCBvbiBvdXIgZG9jcyBldmVuCgoyMDA5LTExLTI1IDE0OjIzOjUzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZG9jczogYWRkIG1pc3NpbmcgcGFyYW1ldGVyIGRvYyBzdHJpbmcKCjIwMDktMTEtMjUgMTQ6MjE6NTAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBkb2NzOiBkb2N1bWVudCBuZXcgZXZlbnQgaW4gZW51bQoKMjAwOS0xMS0yNSAxNDoxODoxNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IGZpeCBndGstZG9jIHN5bnRheCBmb3IgZG9jLWJsb2Igc3RhcnQKCjIwMDktMTEtMjMgMTE6MzQ6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSAgcXVlcnk6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMTEtMjMgMTE6MzM6NDggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1idWZmZXIyLnR4dDoKCSAgZG9jczogZml4IGdyYW1tYXIKCjIwMDktMTEtMjEgMTY6Mzc6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBiYXNlc3JjOiBBZGQgZ3N0X2Jhc2Vfc3JjX25ld19zZWFtbGVzc19zZWdtZW50KCkKCSAgTWVyZ2UgbmV3IGZ1bmN0aW9uIGZyb20gcmVzaW5kdmQgaW50byB0aGUgcHJpbWFyeSBHc3RCYXNlU3JjIGZvcgoJICBzdGFydGluZyBhIG5ldyBzZWFtbGVzcyBzZWdtZW50LgoJICBBUEk6IGdzdF9iYXNlX3NyY19uZXdfc2VhbWxlc3Nfc2VnbWVudCgpCgoyMDA5LTExLTIwIDE2OjAwOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5jOgoJICBieXRld3JpdGVyOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBTb21lIGdjYyB2ZXJzaW9ucyB3YXJuIGFib3V0IGJ5dGV3cml0ZXIgd3JpdGluZyB0byBtZW1vcnkgYWNjZXNzZWQKCSAgdmlhIGEgY29uc3QgZ3VpbnQ4IHBvaW50ZXIsIGRlc3BpdGUgb3VyIGV4cGxpY2l0IGNhc3QgdG8gZ3VpbnQ4ICouCgkgIFdvcmsgYXJvdW5kIHRoYXQgYnkgdXNpbmcgYW4gaW50ZXJtZWRpYXJ5IHZhcmlhYmxlLgoJICBGaXhlcyAjNTk4NTI2LgoKMjAwOS0xMS0yMCAwOTozMzo0OCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNoZWNrOiBPbmx5IGNoZWNrIGZvciBnbXAvZ3NsIGlmIGJ1aWxkaW5nIG9mIHRlc3RzIGlzIG5vdCBkaXNhYmxlZAoKMjAwOS0xMS0xOSAxOTowMDowNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogQ2xhbXAgdGhlIGJhc2UgdGltZSBjb3JyZWN0bHkgaW4gcG9zaXRpb24gcmVwb3J0aW5nCgkgIFdoZW4gY2xhbXBpbmcgdGhlIGJhc2UgdGltZSwgY29ycmVjdGx5IHVzZSAnbm93JywgaW5zdGVhZCBvZgoJICAnLW5vdycgLSB0aGUgaW50ZW50IGlzIHRvIHByZXZlbnQgJ25vdy1iYXNlJyBldmVyIGJlaW5nCgkgIG5lZ2F0aXZlLCB3aGljaCB3b3VsZCBjYXVzZSBhIHBvc2l0aW9uIHJlcG9ydCBvdXRzaWRlIHRoZSBzZWdtZW50LgoJICBGaXhlczogIzYwMjQxOQoKMjAwOS0xMS0wOSAxMDo1Mjo0MiAtMDgwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIGdzdHBsdWdpbjogQWRkIEMrKyBlc2NhcGUgZm9yIGdzdF9wbHVnaW5fZGVzYyBkZWZpbmUKCSAgSW4gb3JkZXIgdG8gcHJvcGVybHkgZXhwb3J0IHRoZSBnc3RfcGx1Z2luX2Rlc2Mgc3ltYm9sCgkgIGZyb20gRExMcyBpbiBNU1ZDLCBpdCBuZWVkcyB0byBiZSBleHRlcm4gIkMiLgoKMjAwOS0xMS0xOSAxMjo1OToyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZS9ncmFtbWFyLnk6IHJlbW92ZSB1bnVzZWQgRVJST1IgZGVmaW5lCgoyMDA5LTExLTE5IDEwOjI5OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMTg2MTI1MiB0byA1M2EyNDg1CgoyMDA5LTExLTE2IDE1OjQ3OjU3ICswMjAwICBQcmlpdCBMYWVzIDxwbGFlc0BwbGFlcy5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGZpeCBzeW1ib2wgZXhwb3J0aW5nIHdoZW4gYnVpbGRpbmcgdW5kZXIgZXRfRUUgbG9jYWxlCgkgIFtBLVpdIHJlZ2V4cCBmYWlscyB1bmRlciBldF9FRSBsb2NhbGUgYmVjYXVzZSBaIGluIEVzdG9uaWFuIGFscGhhYmV0IGlzCgkgIGxvY2F0ZWQgYWZ0ZXIgUyBhbmQgdGhlcmVmb3JlIGNoYXJhY3RlcnMgc3RhcnRpbmcgd2l0aCAnVFVWLi4uJyBhcmUgbm90CgkgIGluIHRoZSByYW5nZSBhbnltb3JlLgoJICBGaXhlcyBidWcgIzYwMjA5My4KCjIwMDktMTEtMTggMDc6NTk6MzYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogSGFuZGxlIHRoZSBuZXcgc2luay1tZXNzYWdlIGV2ZW50CgoyMDA5LTExLTE4IDA3OjUyOjI0ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV2ZW50OiBBUEk6IEFkZCBzaW5rLW1lc3NhZ2UgZXZlbnQKCSAgZ3N0X2V2ZW50X25ld19zaW5rX21lc3NhZ2UoKQoJICBnc3RfZXZlbnRfcGFyc2Vfc2lua19tZXNzYWdlKCkKCSAgVGhpcyBldmVudCBpcyB1c2VkIGZvciBzZW5kaW5nIGEgR3N0TWVzc2FnZSBkb3duc3RyZWFtIGFuZCBzeW5jaHJvbml6ZWQKCSAgd2l0aCB0aGUgc3RyZWFtLCB0byBiZSBwb3N0ZWQgYnkgdGhlIHNpbmsgb25jZSBpdCByZWFjaGVzIHRoZSBzaW5rLgoJICBGaXhlcyBidWcgIzYwMjI3NS4KCjIwMDktMTEtMTYgMDA6MTI6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2hlbHBlcnMvZ3N0LXBsdWdpbi1zY2FubmVyLmM6CgkqIGxpYnMvZ3N0L2hlbHBlcnMvcGx1Z2luLXNjYW5uZXIuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgcGx1Z2luLXNjYW5uZXI6IHJlbmFtZSBwbHVnaW4tc2Nhbm5lciBoZWxwZXIgYmluYXJ5IHRvIGdzdC1wbHVnaW4tc2Nhbm5lcgoJICBhbmQgaW5zdGFsbCBpbnRvIGEgZGlmZmVyZW50IGRpcmVjdG9yeSAkKGxpYmV4ZWNkaXIvZ3N0cmVhbWVyLTAuMTApIHNvIHRoYXQKCSAgZXZlcnl0aGluZyBpcyB2ZXJzaW9uZWQgcHJvcGVybHkuCgkgIE5PVEU6IHJ1biAnbWFrZSBjbGVhbicgYWZ0ZXIgdXBkYXRpbmc7IGlmIHlvdSBhcmUgcnVubmluZyBhbiB1bmluc3RhbGxlZCBzZXR1cCwKCSAgeW91IHdpbGwgbmVlZCB0byB1cGRhdGUgeW91ciBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0ICh1bmxlc3MgaXQncyBzeW1saW5rZWQKCSAgdG8gZ3N0cmVhbWVyIGNvcmUgbWFzdGVyKSBhbmQgZXhpdC9lbnRlciB5b3VyIHVuaW5zdGFsbGVkIGVudmlyb25tZW50IHRvIGdldAoJICB0aGUgdXBkYXRlZCBlbnZpcm9ubWVudC4gSWYgeW91IGFyZSBydW5uaW5nIGFuIGluc3RhbGxlZCBzZXR1cCwgeW91IHNob3VsZAoJICBydW4gJ21ha2UgdW5pbnN0YWxsJyBiZWZvcmUgbWVyZ2luZyB0aGlzIGNoYW5nZSBvciByZW1vdmUgdGhlIG9sZAoJICBwbHVnaW4tc2Nhbm5lciBiaW5hcnkgbWFudWFsbHkuCgkgIEZpeGVzICM2MDE2OTguCgoyMDA5LTExLTE4IDA5OjEwOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgUmV2ZXJ0ICJzdHJ1Y3R1cmU6IGRvbid0IGNoZWNrIHR5cGUgdHdpY2UiCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjg2NDE4N2JmNWZkZmFmNzFmMmUwMzg5NDllNDAzYTQyZTZkYWYwZS4KCSAgUmV2ZXJ0aW5nIHRoaXMgYXMgaXQgY2hhbmdlcyBiZWhhdmlvdXIgYW5kIHRoZSBkb2N1bWVudGF0aW9uIGlzCgkgIGFtYmlndW91cyBhYm91dCB3aGV0aGVyIHRoZSBjYWxsZXIgbXVzdCBjaGVjayB0aGUgdHlwZSBmaXJzdCBvcgoJICBub3QgKGNhbGwgbXVzdCBjaGVjayB0eXBlIHZzLiByZXR1cm5zIE5VTEwgaWYgbm90IGEgc3RyaW5nKS4gSWYKCSAgR0xpYiBoYXMgYmVlbiBjb21waWxlZCB3aXRoIEdfRElTQUJMRV9DSEVDS1MgdGhlbiBnX3ZhbHVlX2dldF9zdHJpbmcoKQoJICBtYXkgcmV0dXJuIGNvbXBsZXRlIGdhcmJhZ2UgZXZlbiBpZiB0aGUgdmFsdWUgZG9lcyBub3QgY29udGFpbgoJICBhIHN0cmluZy4gQmV0dGVyIHBsYXkgaXQgc2FmZSwgZXNwLiBzaW5jZSB0aGUgZXh0cmEgY2hlY2sgaXMganVzdAoJICBhbiBpbnRlZ2VyIGNvbXBhcmlzb24uIEZvciBmdW5kYW1lbnRhbCB0eXBlcyB3ZSBjb3VsZCByZXR1cm4gdmFsdWVzCgkgIGZyb20gdGhlIEdWYWx1ZSBzdHJ1Y3R1cmUgZGlyZWN0bHkgaWYgd2UgcmVhbGx5IHdhbnRlZCB0byBieXBhc3MKCSAgdGhlIGV4dHJhIGNoZWNrLgoKMjAwOS0xMS0xNyAxNzowNjowOCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGRvbid0IGNoZWNrIHR5cGUgdHdpY2UKCjIwMDktMTEtMTcgMTg6MzU6NTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBBZGQgc3RlcCBldmVudCBxdWFyawoKMjAwOS0xMS0xNyAxMDowMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogYWRkIHBhdGhzIGZvciBnc3QtcWEtc3lzdGVtCgoyMDA5LTExLTE3IDA5OjA2OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbW1vbjoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZG9jczogc2V0IEdTVF9QTFVHSU5fU0NBTk5FUiB3aGVuIGNhbGxpbmcgZ3RrZG9jLXNjYW5nb2JqCgkgIE90aGVyd2lzZSB0aGUgZG9jcyBidWlsZCB3b24ndCB3b3JrIHByb3Blcmx5CgoyMDA5LTExLTE2IDEzOjU4OjEwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogcmVtb3ZlIHNvbWUgYmxhbmsgbGluZXMgKHByZXZpb3VzIGdzdC1pbmRlbnQgZmFpbHVyZSkKCjIwMDktMTEtMTYgMTM6NTM6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiB1c2UgbG9jYWwgdmFyaWFibGUgZWFybGllcgoKMjAwOS0xMS0xNiAxMzo0OTozMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBzdHJ1Y3R1cmU6IGRvbid0IGNoZWNrIGVudW0gdHlwZXMgdHdpY2UuCgkgIEdfVkFMVUVfSE9MRFNfRU5VTSh2YWx1ZSkgaXMgZGVmaW5lZCBhcyBHX1RZUEVfQ0hFQ0tfVkFMVUVfVFlQRSAodmFsdWUsCgkgIEdfVFlQRV9FTlVNKS4gSnVzdCBjaGVjayBmb3IgdGhlIHJpZ2h0IGVudW0tdHlwZSByaWdodCBhd2F5LgoKMjAwOS0xMS0xNCAyMjozNTowNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNoZWNrOiBBZGQgYSBkZWJ1ZyBzdGF0dXMgdG8gdGhlIHN5c3RlbWNsb2NrIHRlc3QKCSAgTmV4dCB0aW1lIGl0IGZhaWxzIG9uIGEgYnVpbGRib3Qgd2UgY2FuIHNlZSB3aGljaCBjbG9jayBpZAoJICByZXR1cm4gaXQgaXMgZ2V0dGluZy4KCjIwMDktMTEtMTYgMTg6MjU6NDUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBUT0RPOiByZW1vdmUgc3RlcHBpbmcgZnJvbSBUT0RPCgkgIFJlbW92ZSB0aGUgZnJhbWUgc3RlcHBpbmcgQVBJIGZyb20gdGhlIFRPRE8gbGlzdC4KCjIwMDktMTEtMTYgMTQ6MDI6MDcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggcG9zaXRpb24gcmVwb3J0aW5nCgkgIE9ubHkgdXBkYXRlIHRoZSBjdXJyZW50IHN0cmVhbSB0aW1lIGFmdGVyIHdlIGNoZWNrZWQgaWYgd2UgZ290IGEgbmV3IHN0ZXAKCSAgZXZlbnQuIFRoaXMgaW1wcm92ZXMgdGhlIHBvc2l0aW9uIHJlcG9ydGluZyBieSB0aGUgc2luay4KCSAgU2VlICM1OTU5NTgKCjIwMDktMTEtMTYgMDk6NDk6NDYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHV0aWxzOiBBUEk6IEFkZCBtdWx0aXBsaWNhdGlvbiBhbmQgYWRkaXRpb24gZnVuY3Rpb25zIGZvciBmcmFjdGlvbnMKCSAgZ3N0X3V0aWxfZnJhY3Rpb25fYWRkKCkKCSAgZ3N0X3V0aWxfZnJhY3Rpb25fbXVsdGlwbHkoKQoJICBUaGVzZSB3b3JrIG9uIHBsYWluIGludGVnZXJzIGluc3RlYWQgb2YgR1ZhbHVlcyB0bwoJICBrZWVwIHRoZSBvdmVyaGVhZCBhcyBsb3cgYXMgcG9zc2libGUuCgoyMDA5LTExLTE2IDA5OjI5OjEwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBnc3R1dGlsczogQVBJOiBBZGQgZnJhY3Rpb24gaGVscGVyIGZ1bmN0aW9ucwoJICBnc3RfdXRpbF9ncmVhdGVzdF9jb21tb25fZGl2aXNvcigpCgkgIGdzdF91dGlsX2RvdWJsZV90b19mcmFjdGlvbigpCgkgIGdzdF91dGlsX2ZyYWN0aW9uX3RvX2RvdWJsZSgpCgkgIFVzaW5nIHRoZXNlIGluc3RlYWQgb2YgZ29pbmcgb3ZlciBHVmFsdWUgaGFzIG11Y2ggbG93ZXIgb3ZlcmhlYWQuCgkgIEFsc28gYWRkIGZsb2F0PC0+ZnJhY3Rpb24gdHJhbnNmb3JtIGZ1bmN0aW9ucyBmb3IgR1ZhbHVlLgoKMjAwOS0xMS0xMyAxNTo0NTo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkZWJ1ZzogYWRkIG1vcmUgZGVidWcgbG9nZ2luZyB0byBoZWxwIHRyYWNraW5nIHBhcnNpbmcgZXJyb3JzCgoyMDA5LTExLTEzIDExOjQyOjAyICswMTAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgbWluaW9iamVjdDogYXZvaWQgcmFjZSB3aGVuIHJlY3ljbGluZyBidWZmZXJzCgkgIEF2b2lkIGEgcmFjZSB3aGVyZSBhIG1pbmlvYmplY3QgaXMgcmVjeWNsZWQgYW5kIHF1aWNrbHkgZnJlZWQsIHdoaWNoIGNhdXNlcyB0aGUKCSAgZ190eXBlX2ZyZWVfaW5zdGFuY2UoKSB0byBiZSBjYWxsZWQgb24gdGhlIHNhbWUgb2JqZWN0IHR3aWNlLgoJICBSZWYgdGhlIG9iamVjdCBiZWZvcmUgY2FsbGluZyB0aGUgZmluYWxpemUgbWV0aG9kIGFuZCBjaGVjayBpZiB3ZSBzdGlsbCBuZWVkIHRvCgkgIGZyZWUgaXQgYWZ0ZXJ3YXJkLgoJICBBbHNvIGFkZCBhIHVuaXQgdGVzdCBmb3IgdGhpcyBjYXNlLgoJICBGaXhlcyAjNjAxNTg3CgoyMDA5LTExLTEyIDE3OjAyOjQwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgd2hpdGVzcGFjZTogcmVtb3ZlIGJsYW5rcyBpbiBkb2MtY29tbWVudAoKMjAwOS0xMS0wNiAxNTo0Mjo1NyArMDMwMCAg0KDRg9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiA8bHJuMTk4NkBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IEltcG9ydCBfcHJpdl9nc3RfZGxsX2hhbmRsZSBpbnRvIGdzdHJlZ2lzdHJ5LmMKCSAgRml4ZXMgYnVnICM2MDE2NjguCgoyMDA5LTExLTEyIDE0OjEwOjA2ICswMzAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgdGVzdHM6IERvIG5vdCBsaXN0IGxpYmdzdGNoZWNrIGFzIGEgcmVxdWlyZW1lbnQgZm9yIHRlc3RzL2V4YW1wbGVzL21hbnVhbAoJICBGaXhlcyBidWcgIzYwMTY2OS4KCjIwMDktMTEtMTEgMTc6MTI6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IEZpeCB0cmVhdGluZyBiYXNlX3RpbWUgYXMgdW5zaWduZWQgaW4gcG9zaXRpb24gY2FsY3VsYXRpb24KCSAgRWxlbWVudCBiYXNlX3RpbWUgaXMgYSBzaWduZWQgcXVhbnRpdHksIHdoaWNoIGxlYWRzIHRvIGJhc2VzaW5rIHJldHVybmluZwoJICBhIHBvc2l0aW9uIG9mIDAgd2hlbiBkZWFsaW5nIHdpdGggYSBuZWdhdGl2ZSBiYXNlIHRpbWUgLSB3aGljaCBhcmUgcXVpdGUKCSAgbGVnYWwgd2hlbiBjbG9ja3MgKHN1Y2ggYXMgdGhlIGF1ZGlvIGNsb2NrKSBhcmUgY2xvc2UgdG8gMC4KCSAgVGhpcyBkb2Vzbid0IG1hbmlmZXN0IGluIG5vcm1hbCBwaXBlbGluZXMsIG9mIGNvdXJzZSAtIGJ1dCBjYW4gaGFwcGVuCgkgIChhdCBsZWFzdCkgd2hlbiBtYW51YWxseSBzZXR0aW5nIHRoZSBiYXNlIHRpbWUgb24gYSBwaXBlbGluZS4KCjIwMDktMTEtMTAgMTg6MDM6NDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IEFQSTogQWRkIGdzdF97ZGVmYXVsdCx9X3JlZ2lzdHJ5X2dldF9mZWF0dXJlX2xpc3RfY29va2llKCkKCSAgVGhpcyByZXR1cm5zIHRoZSBpbnRlcm5hbCBmZWF0dXJlIGxpc3QgY29va2llLCB3aGljaCBjaGFuZ2VzIGV2ZXJ5CgkgIHRpbWUgYSBmZWF0dXJlIGlzIGFkZGVkIG9yIHJlbW92ZWQuIFRoaXMgY2FuIGJlIHVzZWQgYnkgZWxlbWVudHMKCSAgdG8gY2hlY2sgaWYgdGhleSBzaG91bGQgdXBkYXRlIHRoZWlyIGNhY2hlZCBmZWF0dXJlIGxpc3RzLgoKMjAwOS0xMS0xMCAxMTo1NTozNCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZpeCBwcmludGYgZm9ybWF0CgkgIENhc3QgdGhlIHZhcmlhYmxlIHRvIGdpbnQgdG8gY29uZm9ybSB0byB0aGUgcHJpbnRmIGZvcm1hdCB1c2VkLgoJICBJdCBpcyBjYXN0ZWQgcmF0aGVyIHRoYW4gY2hhbmdpbmcgdGhlIGZvcm1hdCBiZWNhdXNlIHRoZQoJICBtZXNzYWdlIGlzIGNyZWF0ZWQgd2l0aCBhIGNhc3QgdG8gZ2ludCB0b28uCgoyMDA5LTExLTEwIDEwOjEwOjU2IC0wMzAwICBUaGlhZ28gU2FudG9zIDx0aGlhZ28uc291c2Euc2FudG9zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYXZvaWQgY3Jhc2hpbmcgZHVlIHRvIG5lZ2F0aXZlIHBlcmNlbnQKCSAgcXVldWUyIHdvdWxkIGNyYXNoIHdoZW4gdXNpbmcgc21hbGwgYnVmZmVyIHNpemVzIGJlY2F1c2UKCSAgaXQgd291bGQgb3ZlcmZsb3cgd2hlbiBjYWxjdWxhdGluZyB0aGUgcGVyY2VudGFnZSwgcmVzdWx0aW5nCgkgIGluIHRoZSBidWZmZXJpbmcgR3N0TWVzc2FnZSBub3QgYmVpbmcgY3JlYXRlZCBhbmQgdHJ5aW5nIHRvIGJlCgkgIHVzZWQuIFRoaXMgcGF0Y2ggdXNlcyBhIGdpbnQ2NCBpbnN0ZWFkIG9mIGEgZ2ludCB0byBkbyB0aGUKCSAgcGVyY2VudGFnZSBtYXRoLCBtYWtpbmcgaXQgaGFyZGVyIHRvIG92ZXJmbG93LgoKMjAwOS0xMS0xMCAwOTo1MjozMCAtMDMwMCAgVGhpYWdvIFNhbnRvcyA8dGhpYWdvLnNvdXNhLnNhbnRvc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IEZpeCBzbWFsbCBkb2MgdHlwbwoKMjAwOS0xMS0xMCAwMDo1NzowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IGZpeCBjb21waWxhdGlvbiB3aXRoIGRlYnVnZ2luZyBkaXNhYmxlZAoJICBBZGQgdWdseSBpZmRlZiB0byBmaXggdW51c2VkIHZhcmlhYmxlIHdhcm5pbmcgd2hlbiBjb21waWxpbmcgd2l0aAoJICBkZWJ1ZyBsb2dnaW5nIGRpc2FibGVkLgoKMjAwOS0xMS0wOSAxNjoyMDo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHJhZnQtcmVnaXN0cnktY2hhbmdlLWhvb2tzLnR4dDoKCSAgcGxhbm5pbmc6IGFkZCB0aG91Z2h0cyBhYm91dCBmb3JlaWduIHJlZ2lzdHJ5IGNhY2hlIHVwZGF0ZXMKCjIwMDktMTEtMDkgMTQ6NTU6NTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIGluc3BlY3Q6IGFsbG93IHRvIGdldCBwbHVnaW4taW5zdGFsbC1pbmZvIGZvciBhbGwgaW5zdGFsbGVkIHBsdWdpbnMKCSAgSWYgbm8gcGx1Z2luIGlzIGdpdmVuLCBwcmludCB0aGUgaW5mbyBmb3IgYWxsIHBsdWdpbnMuIFRoaXMgY2FuIGJlIHVzZWQgYXMgYQoJICBzdGFydGluZyBwb2ludCB0byBnZW5lcmF0ZSBhIHByb2ZpbGUgYWJvdXQgd2hhdCB0aGUgZ3N0cmVhbWVyIGluc3RhbGxhdGlvbiBjYW4KCSAgcG90ZW50aWFseSBoYW5kbGUgKGUuZy4gZm9yIE1UUCBvciBETE5BKS4KCjIwMDktMTEtMDkgMTI6NDI6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIGRvY3M6IGRvbid0IGZvcmdldCB0byB1bnJlZiB0aGUgcGFkCgoyMDA5LTExLTA3IDIwOjIyOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogd2FrZSB1cCBsZXNzIG9mdGVuIHRvIGNoZWNrIGlmIHdlJ3ZlIGJlZW4gaW50ZXJydXB0ZWQKCSAgQ2hlY2sgaWYgd2UndmUgYmVlbiBpbnRlcnJ1cHRlZCBvbmx5IGZvdXIgdGltZXMgcGVyIHNlY29uZCBpbnN0ZWFkCgkgIG9mIHR3ZW50eSB0aW1lcyBwZXIgc2Vjb25kLCB0byB3YWtlIHVwIHRoZSBjcHUgbGVzcyBvZnRlbiBhbmQKCSAgc2F2ZSBwb3dlciAoc2VlIGJ1ZyAjNjAwOTIyKS4KCjIwMDktMTEtMDUgMjE6MTg6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBnc3Rjb25maWcuaDogYWRkIGRlZmluZSB0byBmb3JjZSBwcmludGYgZm9ybWF0IGNoZWNraW5nIGZvciBkZWJ1ZyBtZXNzYWdlcwoJICBGb3JjZSBwcmludGYgZm9ybWF0IGNoZWNraW5nIGZvciBkZWJ1ZyBtZXNzYWdlcyBpZiBHU1RfRElTQUJMRV9QUklOVEZfRVhURU5TSU9OCgkgIGlzIGRlZmluZWQuIFRoaXMgaXMgdXNlZnVsIHRvIHF1aWNrbHkgY2hlY2sgY29kZSBmb3IgcHJpbnRmIGZvcm1hdCBtaXNtYXRjaGVzCgkgIGluIGRlYnVnZ2luZyBtZXNzYWdlcyB0aGF0IHdvdWxkIHVzdWFsbHkgbm90IGJlIGNhdWdodCAod2l0aCBnbGliYytnY2MgYW5kCgkgIHByaW50ZiBleHRlbnNpb25zIGJlaW5nIHVzZWQpLgoJICBUbyB1c2U6IG1ha2UgY2xlYW47IG1ha2UgQ0ZMQUdTPSctZyAtTzIgLURHU1RfRElTQUJMRV9QUklOVEZfRVhURU5TSU9OJwoKMjAwOS0xMS0wNSAyMTowOToyOCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBNYWtlIHN1cmUgd2UgdXNlIHRoZSBsb2NhbCBsaWJnc3RiYXNlIGFuZCBub3QgYSBzdHJheSBvdXRzaWRlIG9uZS4KCSAgVGhlb3JldGljYWxseSB3ZSBzaG91bGQgYWxzbyBkbyB0aGlzIGZvciBhbGwgbG9jYWwgbGlicmFyaWVzIHRvIG1ha2Ugc3VyZQoJICB3ZSBkb24ndCB0ZXN0IHdpdGggYSAnc3RyYXknIG91dHNpZGUgbGlicmFyeS4KCjIwMDktMTEtMDUgMTg6MzY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvY3M6IGZpeCB0eXBvCgoyMDA5LTExLTA1IDE1OjU5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3Q6IGF2b2lkIGxvb2tpbmcgdXAgR3N0VGFnSW5mbyB0d2ljZSBpbiBhIHJvdwoJICBQYXNzIHRoZSBpbmZvIHN0cnVjdHVyZSB0byBvdXIgaW50ZXJuYWwgZnVuY3Rpb24gaWYgYWxyZWFkeSBhdmFpbGFibGUuCgkgIEFsc28gY2xlYW4gdXAgd2FybmluZ3MgZm9yIHVua25vd24gdGFncy4KCjIwMDktMTEtMDUgMTg6NTU6MzAgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgZ3N0cmVnaXN0cnljaHVua3M6IFdlJ3JlIGNlcnRhaW4gcGx1Z2luX25hbWUgaXMgYW4gaW50ZXJuIHN0cmluZy4KCSAgVGhlIG9ubHkgcGxhY2UgdGhpcyBtZXRob2QgaXMgY2FsbGVkIGZyb20gY3JlYXRlcyB0aGUgcGx1Z2luX25hbWUgYXJndW1lbnQKCSAgd2l0aCBnX2ludGVybl9zdHJpbmcoKS4KCSAgU2hhdmVzIG9mZiAxJSBmcm9tIHJlZ2lzdHJ5IGxvYWRpbmcuCgoyMDA5LTExLTA0IDE5OjMzOjU4ICswMDAwICBCYXN0aWVuIE5vY2VyYSA8aGFkZXNzQGhhZGVzcy5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJICBpbXBsZW1lbnQgYnVmZmVyaW5nLWxlZnQgYXJndW1lbnQgdG8gYnVmZmVyIG1lc3NhZ2VzCgkgIFVzaW5nIHRoZSBjdXJyZW50IGZpbGwgbGV2ZWwgb2YgdGhlIHF1ZXVlLCBhbmQgdGhlIGF2ZXJhZ2UgaW5wdXQKCSAgcmF0ZSwgd2UgY2FuIGRldGVybWluZSBob3cgbG9uZyBpdCB3aWxsIHRha2UgdG8gZmluaXNoIGRvd25sb2FkaW5nCgkgIHRoZSB3aG9sZSBzdHJlYW0gdG8gdGhlIHRlbXBvcmFyeSBmaWxlLgoJICBGaXhlcyAjNjAwNzI2CgoyMDA5LTExLTA1IDE1OjEzOjA0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIHF1ZXJ5OiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTExLTA1IDE0OjAyOjI4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBmaXggbG9ja2luZwoKMjAwOS0xMS0wNSAxNDoyOTo1MCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBkb24ndCByZWxlYXNlIG11dGV4IHR3aWNlCgoyMDA5LTExLTA1IDE0OjI5OjEyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHNraXAgdHlwZSBjaGVjayBpbiBpbnRlcm5hbCBhcGkKCjIwMDktMTEtMDUgMTI6MzY6MTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHBhZDogaW5kZW50YXRpb24gZml4CgoyMDA5LTExLTA1IDEyOjU0OjMyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IHJlbmFtZSBuZXcgYXBpIGZyb20gX3JlZmVkIHRvIF9yZWZmZWQuCgkgIER1ZSB0byBwb3B1bGFyIGRlbWFuZCByZW5hbWUgdGhlIG5ldyBhcGkgYXMgd2Ugc3RpbGwgY2FuLgoJICBBUEk6IGdzdF9wYWRfZ2V0X2NhcHNfcmVmZmVkKCksIGdzdF9wYWRfcGVlcl9nZXRfY2Fwc19yZWZmZWQoKQoKMjAwOS0xMS0wNCAyMjo0Mjo1MiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogYWNjZXNzIHBhZHRlbXBsYXRlIGxpc3QgZGlyZWN0bHkgdG8gYXZvaWQgY2FsbCBhbmQgdHlwZSBjaGVjay4KCjIwMDktMTEtMDQgMTg6NTg6MjYgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGV2ZW50LmM6CgkgIGV2ZW50OiBBZGQgYSBGSVhNRSAwLjExIGZvciBoYXZpbmcgZmx1c2ggZXZlbnRzIHRoYXQgZG9uJ3QgcmVzZXQgcnVubmluZyB0aW1lCgoyMDA5LTExLTA0IDE3OjUyOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBhIHByaW50ZiBjb21waWxlIHdhcm5pbmcgb24gNjQtYml0IHBsYXRmb3JtcwoKMjAwOS0xMS0wNCAxNzoxNTo1OSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IE1ha2Ugc3VyZSB0aGF0IG5vYm9keSBzZXRzIHRoZSBwcm94eXBhZCBvciBnaG9zdHBhZCBpdHNlbGYgYXMgdGFyZ2V0CgkgIERvaW5nIHRoaXMgd2lsbCBsZWFkIHRvIHZlcnkgaW50ZXJlc3RpbmcgY3Jhc2hlcywgbGlrZSBzdGFjayBvdmVyZmxvd3MuCgoyMDA5LTExLTA0IDExOjM1OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICBwbHVnaW4gbG9hZGVyOiBEb24ndCBmYWlsIGFmdGVyIGEgc2hvcnQgcmVhZC93cml0ZQoJICBUaGUgbG9naWMgdG8gaGFuZGxlIHNob3J0IHJlYWRzL3dyaXRlcyB3YXMgaW5jb3JyZWN0LCBjYXVzaW5nIHRoZQoJICBwYWNrZXQgaGFuZGxlciB0byBhdHRlbXB0IHRvIGhhbmRsZSBpbmNvbXBsZXRlIHBhY2tldHMuCgkgIEdyb3cgdGhlIHBhY2tldCB0cmFuc21pdCBidWZmZXIgaW4gcHJvcG9ydGlvbiB0byBvYnNlcnZlZCB1c2FnZSwKCSAgY2F1c2luZyBmZXdlciByZWFsbG9jcy4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbiB0aGUgcmVnaXN0cnkgY2h1bmtzIGNvZGUuCgoyMDA5LTExLTA0IDAxOjUxOjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbiBsb2FkZXI6IERvbid0IGNyYXNoIG9uIGJvZ3VzIHBsdWdpbiBkZXRhaWxzCgkgIFdoZW4gaW52YWxpZCByZWdpc3RyeSBjaHVua3MgYXJlIHJlY2VpdmVkIGZyb20gdGhlIGNoaWxkLCBhbmQgcGFyc2luZwoJICBmYWlscywgZG9uJ3QgYWNjZXNzIGFuIGludmFsaWQgcGx1Z2luIHBvaW50ZXIuIEluc3RlYWQgYXR0ZW1wdCB0bwoJICBmaWd1cmUgb3V0IHdoaWNoIHBsdWdpbiBjYXVzZWQgdGhlIHByb2JsZW0gYW5kIGJsYWNrbGlzdCBpdC4KCjIwMDktMTEtMDQgMDE6NTQ6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRvb2xzL2dzdC1pbmRlbnQ6CgkgIGdzdC1pbmRlbnQ6IFVzZSB0aGUgc2FtZSBsb2dpYyB0byBmaW5kIGdudWluZGVudCBhcyB0aGUgZ2l0IGhvb2sKCjIwMDktMTEtMDMgMTc6MzA6MTQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmg6CgkgIGJ1aWxkOiBpbmNsdWRlIHN0ZGlvLmggZm9yIEZJTEUKCjIwMDktMTEtMDMgMDE6MTg6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBhZGQgYW5vdGhlciBleGFtcGxlIHRvIHRoZSBnc3QtbGF1bmNoIG1hbiBwYWdlCgkgIEFkZCBhbiBleGFtcGxlIHRoYXQgc2hvd3MgaG93IHRvIHJlZmVyIHRvIHNwZWNpZmljIHBhZHMgYnkgbmFtZQoJICB3aGVuIGNvbnN0cnVjdGluZyBhIHBpcGVsaW5lIHN0cmluZy4gRml4ZXMgIzYwMDM4Mi4KCjIwMDktMTEtMDIgMDg6NDg6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgIGdzdHR5cGVmaW5kOiBhdm9pZCBvbmUgbW9yZSBydW4tdGltZSB0eXBlIGNoZWNrCgoyMDA5LTExLTAyIDA5OjIyOjM3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc3RydWN0dXJlOiBBUEk6IEFkZCBnc3Rfc3RydWN0dXJlX2lkX2hhc19maWVsZHssX3R5cGVkfQoKMjAwOS0xMS0wMiAwODoyODoyMCArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBnc3R0eXBlZmluZDogVXNlIF9DQVNUIHZhcmlhbnRzIHdoZW4gdGhlIHR5cGUgaGFzIGFscmVkeSBiZWVuIGNoZWNrZWQuCgkgIFRoaXMgYXZvaWRzIGNoZWNraW5nIHRoZSB0eXBlIG5fdHlwZWZpbmRlcnMgKiA0IHRpbWVzIHdoZW4gbG9hZGluZyB0aGUKCSAgcmVnaXN0cnkuCgoyMDA5LTExLTAxIDExOjI0OjQwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogSW1wbGVtZW50IGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MKCSAgVGhlIGludGVybmFsbHkgbGlua2VkIHBhZCBvZiB0aGUgZ2hvc3QgcGFkIGlzIGl0cwoJICBwcm94eSBwYWQsIHdoaWNoIGlzIHRoZSBwYWQgdGhhdCBpcyBsaW5rZWQgdG8gdGhlIGdob3N0CgkgIHBhZHMgdGFyZ2V0LgoKMjAwOS0xMC0zMSAxNjo1NjoxNyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZXI6IE1ha2Ugc3VyZSB0aGF0IHNpZ25hbCB1c2VyIGRhdGEgaXMgZnJlZWQgYnkgc2V0dGluZyBhIEdDbG9zdXJlTm90aWZ5CgkgIC4uLmluc3RlYWQgb2YgdXNpbmcgYSBzZWNvbmQgbWVjaGFuaXNtIGFuZCBzdG9yaW5nIHRoZSB1c2VyIGRhdGEKCSAgaW5zaWRlIHRoZSBHT2JqZWN0cyBxZGF0YS4KCjIwMDktMTAtMzEgMTY6NDk6MDMgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgcGFyc2VyOiBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW5nIHRoZSBzdHJ1Y3RzCgoyMDA5LTEwLTMxIDE2OjQzOjI2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlcjogQWx3YXlzIGdldCBEZWxheWVkTGluayBpbmZvcm1hdGlvbiBmcm9tIHRoZSBvYmplY3RzIHFkYXRhCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IGl0IGlzIGFsd2F5cyB2YWxpZC4KCjIwMDktMTAtMzEgMDk6NDg6MTkgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcG86IHF1ZXVlMiBoYXMgbW92ZWQgdG8gY29yZQoKMjAwOS0xMC0yOSAxMTo0MTozMyArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkgIHF1ZXVlMjogQWRkIHRvIHRoZSBkb2NzCgoyMDA5LTEwLTI5IDExOjM4OjIxICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlICJRdWV1ZSAyIiBhcyBsb25nIG5hbWUKCjIwMDktMTAtMjkgMTE6MzU6MDggKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBVc2UgR1NUX0JPSUxFUlBMQVRFX0ZVTEwoKSBhbmQgYWRkIHBhZCB0ZW1wbGF0ZXMvc2V0IGRldGFpbHMgaW4gYmFzZV9pbml0CgoyMDA5LTEwLTI5IDExOjMwOjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogVXNlIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSgpCgoyMDA5LTEwLTI5IDExOjMwOjExICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZTIuaDoKCSAgcXVldWUyOiBJbnRlZ3JhdGUgaW50byBjb3JlcGx1Z2lucwoKMjAwOS0xMC0yOSAxMToyMTozNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlMi5oOgoJICBxdWV1ZTI6IE1vdmUgc3RydWN0IGRlY2xhcmF0aW9ucyB0byBhIHNlcGFyYXRlIGhlYWRlcgoKMjAwOS0xMC0yOSAxMToxODoyMCArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogTW92ZSBxdWV1ZTIgdG8gZ3N0cmVhbWVyIGNvcmVwbHVnaW5zCgkgIEZpeGVzIGJ1ZyAjNTk5OTk2LgoKMjAwOS0xMC0yOCAwMDo1OTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIFJlbW92ZSBHU1RfREVCVUdfRlVOQ1BUUiB3aGVyZSB0aGV5J3JlIHBvaW50bGVzcwoJICBUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIHVzaW5nIEdTVF9ERUJVR19GVU5DUFRSIHdpdGggR09iamVjdAoJICB2aXJ0dWFsIGZ1bmN0aW9ucyBzdWNoIGFzIGdldF9wcm9wZXJ0eSwgc2V0X3Byb3BlcnksIGZpbmFsaXplIGFuZAoJICBkaXNwb3NlLCBzaW5jZSB0aGV5J2xsIG5ldmVyIGJlIHVzZWQgYnkgYW55b25lIGFueXdheS4gU2F2ZXMgYQoJICBmZXcgYnl0ZXMgYW5kIHBvc3NpYmx5IGEgc2l4dGVlbnRoIG9mIGEgcG9sYXIgYmVhci4KCjIwMDktMTAtMjcgMTU6MjM6MDAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIHF1ZXVlMjogYWRkIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uCgoyMDA5LTA4LTA2IDEyOjE4OjM2ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBwb3N0IGVycm9yIG1lc3NhZ2Ugd2hlbiBwYXVzaW5nIHRhc2sgaWYgc28gYXBwcm9wcmlhdGUKCSAgSWYgYSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJucyBhbiBlcnJvciB3aGlsZSB1cHN0cmVhbSBoYXMgYWxyZWFkeQoJICBwdXQgYWxsIGRhdGEgaW50byBxdWV1ZTIgKGluY2x1ZGluZyBFT1MpLCB1cHN0cmVhbSB3aWxsIG5vIGxvbmdlcgoJICBjaGFpbiBpbnRvIHF1ZXVlMiwgc28gaXQgaXMgdXAgdG8gcXVldWUyIHRvIHBlcmZvcm0gc29tZQoJICBFT1MgaGFuZGxpbmcgLyBtZXNzYWdlIHBvc3RpbmcgaW4gc3VjaCBjYXNlcy4gIFNlZSAjNTg5OTkxLgoKMjAwOS0wNy0xNCAxNzowMzozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBmaXggbGVhayBhbmQgaW1wcm92ZSBidWZmZXJpbmcKCSAgS2VlcCB0cmFjayBvZiB0aGUgbWF4IHJlcXVlc3RlZCBwb3NpdGlvbiBhbmQgY29tcGFyZSB0aGlzIHRvIHRoZSB3cml0ZSBwb3NpdGlvbgoJICBpbiB0aGUgdGVtcCBmaWxlIHRvIGdldCB0aGUgY3VycmVudCBhbW91bnQgb2YgYnVmZmVyZWQgZGF0YS4KCSAgRml4IG1lbWxlYWsgb2YgYWxsIGluY29tbWluZyBidWZmZXJzLgoJICBGaXhlcyAjNTg4NTUxCgoyMDA5LTA3LTEwIDIxOjAxOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICBxdWV1ZTI6IGZsdXNoIGRpZmZlcmVudGx5LCBhdm9pZGluZyBkZWFkbG9ja3MKCSAgRG9uJ3QgZmx1c2ggdGhlIGZpbGUgYnkgY2xvc2luZyBhbmQgb3BlbmluZyBpdCBidXQgaW5zdGVhZCB1c2UgZ19mcmVvcGVuLiBUaGlzCgkgIGF2b2lkcyBhIGRlYWRsb2NrIGluIHNodXRkb3duIGJlY2F1c2Ugd2UgZW1pdCB0aGUgdGVtcC1sb2NhdGlvbiBwcm9wZXJ0eSBjaGFuZ2UKCSAgd2l0aCB0aGUgd3JvbmcgbG9jayBoZWxkLgoKMjAwOS0wNy0xMCAxOTo0OTo0NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgcXVldWUyOiBhZGQgdGVtcC10ZW1wbGF0ZSBwcm9wZXJ0eQoJICBBZGQgYSBuZXcgdGVtcC10ZW1wbGF0ZSBwcm9wZXJ0eSBzbyB0aGF0IHF1ZXVlMiBjYW4gc2VjdXJlbHkgYWxsb2NhdGUgYQoJICB0ZW1wb3JhcnkgZmlsZW5hbWUuIERlcHJlY2F0ZSB0aGUgdGVtcC1sb2NhdGlvbiBwcm9wZXJ0eSBmb3Igc2V0dGluZyB0aGUKCSAgbG9jYXRpb24gYnV0IHN0aWxsIHVzZSBpdCB0byBub3RpZnkgdGhlIGFsbG9jYXRlZCB0ZW1wIGZpbGUuCgoyMDA5LTAzLTIwIDE0OjE3OjE5ICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgd2luMzI6IGZpeCBzZWVraW5nIGluIGxhcmdlIGZpbGVzCgkgIEZpeCBTZWVraW5nIGluIGxhcmdlIGZpbGVzIGJ5IHVzaW5nIHRoZSA2NC1iaXQgc2VlayBmdW5jdGlvbnMuCgkgIEZpeGVzICM1NzYwMTkKCjIwMDgtMDgtMDcgMTU6NTg6NTggKzAwMDAgIEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgoJICBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4MjIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXBsdWdpbi5jOiAocGx1Z2luX2luaXQpOgoJICAqIGV4dC9jZHBhcmFub2lhL2dzdGNkcGFyYW5vaWFzcmMuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnMuYzogKHBsdWdpbl9pbml0KToKCSAgKiBleHQvb2dnL2dzdG9nZ2RlbXV4LmM6IChnc3Rfb2dnX2RlbXV4X3BsdWdpbl9pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvYXVkaW8vZ3N0YmFzZWF1ZGlvc3JjLmM6IChfZG9faW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3BidXRpbHMvcGJ1dGlscy5jOiAoZ3N0X3BiX3V0aWxzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC90YWcvdGFncy5jOiAoZ3N0X3RhZ19yZWdpc3Rlcl90YWdzX2ludGVybmFsKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZGVjb2RlYmluLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzogKGdzdF9kZWNvZGVfYmluX3BsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhY2suYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChwbHVnaW5faW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHVyaWRlY29kZWJpbi5jOiAoZ3N0X3VyaV9kZWNvZGVfYmluX3BsdWdpbl9pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bC5jOiAocGx1Z2luX2luaXQpOgoJICBNYWtlIHN1cmUgZ2V0dGV4dCByZXR1cm5zIHRyYW5zbGF0aW9ucyBpbiBVVEYtOCBlbmNvZGluZyByYXRoZXIKCSAgdGhhbiBpbiB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcgKCM1NDY4MjIpLgoKMjAwOC0wNy0xMCAyMTowNjowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2xlYW51cCBQbHVnaW4gZG9jcy4gTGluayB0byBzaWduYWxzIGFuZCBwcm9wZXJ0aWVzLiBGaXggc3ViLXNlY3Rpb24gdGl0bGVzLiBEcm9wIG1lbnRpbmluZyB0aGF0IGFsbCBvdXIgZXhhbXBsZSBwaXBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMtb3ZlcnJpZGVzLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLmFyZ3M6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5oaWVyYXJjaHk6CgkgICogZG9jcy9wbHVnaW5zL2dzdC1wbHVnaW5zLWJhc2UtcGx1Z2lucy5pbnRlcmZhY2VzOgoJICAqIGRvY3MvcGx1Z2lucy9nc3QtcGx1Z2lucy1iYXNlLXBsdWdpbnMucHJlcmVxdWlzaXRlczoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0LXBsdWdpbnMtYmFzZS1wbHVnaW5zLnNpZ25hbHM6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWFkZGVyLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tYWxzYS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvY29udmVydC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcmF0ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWF1ZGlvcmVzYW1wbGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1hdWRpb3Rlc3RzcmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jZHBhcmFub2lhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZGVjb2RlYmluLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tZmZtcGVnY29sb3JzcGFjZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdkcC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWdub21ldmZzLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tbGlidmlzdWFsLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tb2dnLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tcGFuZ28ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1wbGF5YmFjay54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXF1ZXVlMi54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXN1YnBhcnNlLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGNwLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdGhlb3JhLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tdHlwZWZpbmRmdW5jdGlvbnMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi11cmlkZWNvZGViaW4ueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlbzRsaW51eC54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvcmF0ZS54bWw6CgkgICogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLXZpZGVvc2NhbGUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12aWRlb3Rlc3RzcmMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12b2x1bWUueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi12b3JiaXMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi14aW1hZ2VzaW5rLnhtbDoKCSAgKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4teHZpbWFnZXNpbmsueG1sOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FtaXhlci5jOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzaW5rLmM6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNyYy5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc2luay5jOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3JjLmM6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zaW5rLmM6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zcmMuYzoKCSAgKiBleHQvZ25vbWV2ZnMvZ3N0Z25vbWV2ZnNzaW5rLmM6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc3JjLmM6CgkgICogZXh0L29nZy9nc3RvZ2dkZW11eC5jOgoJICAqIGV4dC9vZ2cvZ3N0b2dnbXV4LmM6CgkgICogZXh0L3BhbmdvL2dzdGNsb2Nrb3ZlcmxheS5jOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0cmVuZGVyLmM6CgkgICogZXh0L3BhbmdvL2dzdHRpbWVvdmVybGF5LmM6CgkgICogZXh0L3RoZW9yYS90aGVvcmFkZWMuYzoKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWVuYy5jOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhcGFyc2UuYzoKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2RlYy5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzZW5jLmM6CgkgICogZXh0L3ZvcmJpcy92b3JiaXNwYXJzZS5jOgoJICAqIGV4dC92b3JiaXMvdm9yYmlzdGFnLmM6CgkgICogZ3N0L2FkZGVyL2dzdGFkZGVyLmM6CgkgICogZ3N0L2F1ZGlvY29udmVydC9nc3RhdWRpb2NvbnZlcnQuYzoKCSAgKiBnc3QvYXVkaW9yZXNhbXBsZS9nc3RhdWRpb3Jlc2FtcGxlLmM6CgkgICogZ3N0L2F1ZGlvdGVzdHNyYy9nc3RhdWRpb3Rlc3RzcmMuYzoKCSAgKiBnc3QvZmZtcGVnY29sb3JzcGFjZS9nc3RmZm1wZWdjb2xvcnNwYWNlLmM6CgkgICogZ3N0L2dkcC9nc3RnZHBkZXBheS5jOgoJICAqIGdzdC9nZHAvZ3N0Z2RwcGF5LmM6CgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbjIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6CgkgICogZ3N0L3RjcC9nc3RtdWx0aWZkc2luay5jOgoJICAqIGdzdC90Y3AvZ3N0dGNwc2VydmVyc2luay5jOgoJICAqIGdzdC92aWRlb3JhdGUvZ3N0dmlkZW9yYXRlLmM6CgkgICogZ3N0L3ZpZGVvc2NhbGUvZ3N0dmlkZW9zY2FsZS5jOgoJICAqIGdzdC92aWRlb3Rlc3RzcmMvZ3N0dmlkZW90ZXN0c3JjLmM6CgkgICogZ3N0L3ZvbHVtZS9nc3R2b2x1bWUuYzoKCSAgKiBzeXMveGltYWdlL3hpbWFnZXNpbmsuYzoKCSAgKiBzeXMveHZpbWFnZS94dmltYWdlc2luay5jOgoJICBDbGVhbnVwIFBsdWdpbiBkb2NzLiBMaW5rIHRvIHNpZ25hbHMgYW5kIHByb3BlcnRpZXMuIEZpeCBzdWItc2VjdGlvbgoJICB0aXRsZXMuIERyb3AgbWVudGluaW5nIHRoYXQgYWxsIG91ciBleGFtcGxlIHBpcGVsaW5lcyBhcmUgInNpbXBsZSIKCSAgcGlwZWxpbmVzLgoKMjAwOC0wNi0yNCAxNjoyMjo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBEbyBub3QgZG91YmxlIG5vdGlmeS4gUmVtb3ZlIHRoZSB1bnN1ZWQgcmV0dXJuIHZhbHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIERvIG5vdCBkb3VibGUgbm90aWZ5LiBSZW1vdmUgdGhlIHVuc3VlZCByZXR1cm4gdmFsdWUuCgoyMDA4LTA0LTExIDAxOjI1OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2V5ZnJhbWUtZm9yY2UudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2V5ZnJhbWUtZm9yY2UudHh0OgoJICBGaXggdHlwby4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgU2V0IGJ1ZmZlcmluZyBtb2RlIGluIHRoZSBtZXNzYWdlcy4KCSAgU2V0IGJ1ZmZlcmluZyBwZXJjZW50IGluIHRoZSBxdWVyeS4KCSAgKiB0ZXN0cy9leGFtcGxlcy9zZWVrL3NlZWsuYzogKHVwZGF0ZV9maWxsKSwgKG1zZ19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGRvX3N0cmVhbV9idWZmZXJpbmcpLCAoZG9fZG93bmxvYWRfYnVmZmVyaW5nKSwgKG1zZ19idWZmZXJpbmcpOgoJICBEbyBzb21lIG1vcmUgZmFuY3kgdGhpbmdzIGJhc2VkIG9uIHRoZSBidWZmZXJpbmcgbWV0aG9kIGluIHVzZS4KCjIwMDgtMDQtMDkgMjE6NDA6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEluY2x1ZGUgZXh0cmEgYnVmZmVyaW5nIHN0YXRzIGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChnc3RfcXVldWVfY2xvc2VfdGVtcF9sb2NhdGlvbl9maWxlKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9zcmNfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbik6CgkgIEluY2x1ZGUgZXh0cmEgYnVmZmVyaW5nIHN0YXRzIGluIHRoZSBidWZmZXJpbmcgbWVzc2FnZS4KCSAgSW1wbGVtZW50IEJVRkZFUklORyBxdWVyeS4KCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChkb19hc3luY19zdGFydCksCgkgIChkb19hc3luY19kb25lKSwgKHR5cGVfZm91bmQpLCAoc2V0dXBfc3RyZWFtaW5nKSwgKHNldHVwX3NvdXJjZSksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fY2hhbmdlX3N0YXRlKToKCSAgT25seSBhZGQgZGVjb2RlYmluMiB3aGVuIHRoZSB0eXBlIGlzIGZvdW5kIGluIHN0cmVhbWluZyBtb2RlLgoJICBNYWtlIHVyaWRlY29kZWJpbiBhc3luYyB0byBQQVVTRUQgZXZlbiB3aGVuIHdlIGRvbid0IGhhdmUgZGVjb2RlYmluMgoJICBhZGRlZCB5ZXQuCgoyMDA4LTA0LTAyIDExOjA4OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBVcGRhdGUgdGhlIGVzdGltYXRlZCBpbnB1dCBkYXRhIHdoZW4gd2UgcHVzaCBvdXQgYSBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9vdXRfcmF0ZXMpLAoJICAoZ3N0X3F1ZXVlX29wZW5fdGVtcF9sb2NhdGlvbl9maWxlKSwKCSAgKGdzdF9xdWV1ZV9jbG9zZV90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIFVwZGF0ZSB0aGUgZXN0aW1hdGVkIGlucHV0IGRhdGEgd2hlbiB3ZSBwdXNoIG91dCBhIGJ1ZmZlci4KCSAgQWRkIHNvbWUgZGVidWcgaW5mbyBhYm91dCB0aGUgdGVtcCBmaWxlLgoJICBPbmx5IGZvcndhcmQgc3JjIGV2ZW50cyB3aGVuIHdlIGFyZSBub3QgdXNpbmcgYSB0ZW1wIGZpbGUuCgkgIERvbid0IGJsb2NrIHRoZSBkdXJhdGlvbiBxdWVyeSwgd2UgbmVlZCB0byBmaW5kIHNvbWV0aGluZyBiZXR0ZXIuCgkgIERvbid0IGxlYWsgdGhlIHRlbXAgZmlsZW5hbWUuCgoyMDA4LTAzLTI0IDE0OjA4OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBUaGUgcXVldWUgaXMgbmV2ZXIgZmlsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlIGF0IGFsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCk6CgkgIFRoZSBxdWV1ZSBpcyBuZXZlciBmaWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gYnVmZmVycyBpbiB0aGUgcXVldWUgYXQgYWxsLgoJICBGaXhlcyAjNTIzOTkzLgoKMjAwOC0wMy0yMiAxNTowMDo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgVXNlIEdfUEFSQU1fU1RBVElDX1NUUklOR1MgZXZlcnl3aGVyZSBmb3IgR1BhcmFtU3BlY3MgdGhhdCB1c2Ugc3RhdGljIHN0cmluZ3MgKGkuZS4gYWxsKS4gVGhpcyBnaXZlcyB1cyBsZXNzIG1lbW9yeSB1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleHQvYWxzYS9nc3RhbHNhbWl4ZXJlbGVtZW50LmM6CgkgIChnc3RfYWxzYV9taXhlcl9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIGV4dC9hbHNhL2dzdGFsc2FzaW5rLmM6IChnc3RfYWxzYXNpbmtfY2xhc3NfaW5pdCk6CgkgICogZXh0L2Fsc2EvZ3N0YWxzYXNyYy5jOiAoZ3N0X2Fsc2FzcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2NkcGFyYW5vaWEvZ3N0Y2RwYXJhbm9pYXNyYy5jOgoJICAoZ3N0X2NkX3BhcmFub2lhX3NyY19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3NpbmsuYzogKGdzdF9naW9fc2lua19jbGFzc19pbml0KToKCSAgKiBleHQvZ2lvL2dzdGdpb3NyYy5jOiAoZ3N0X2dpb19zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dpby9nc3RnaW9zdHJlYW1zaW5rLmM6IChnc3RfZ2lvX3N0cmVhbV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9naW8vZ3N0Z2lvc3RyZWFtc3JjLmM6IChnc3RfZ2lvX3N0cmVhbV9zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L2dub21ldmZzL2dzdGdub21ldmZzc2luay5jOiAoZ3N0X2dub21lX3Zmc19zaW5rX2NsYXNzX2luaXQpOgoJICAqIGV4dC9nbm9tZXZmcy9nc3Rnbm9tZXZmc3NyYy5jOiAoZ3N0X2dub21lX3Zmc19zcmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L29nZy9nc3RvZ2dtdXguYzogKGdzdF9vZ2dfbXV4X2NsYXNzX2luaXQpOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9jbGFzc19pbml0KToKCSAgKiBleHQvcGFuZ28vZ3N0dGV4dHJlbmRlci5jOiAoZ3N0X3RleHRfcmVuZGVyX2NsYXNzX2luaXQpOgoJICAqIGV4dC90aGVvcmEvdGhlb3JhZGVjLmM6IChnc3RfdGhlb3JhX2RlY19jbGFzc19pbml0KToKCSAgKiBleHQvdGhlb3JhL3RoZW9yYWVuYy5jOiAoZ3N0X3RoZW9yYV9lbmNfY2xhc3NfaW5pdCk6CgkgICogZXh0L3RoZW9yYS90aGVvcmFwYXJzZS5jOiAoZ3N0X3RoZW9yYV9wYXJzZV9jbGFzc19pbml0KToKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2VuYy5jOiAoZ3N0X3ZvcmJpc19lbmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGF1ZGlvZmlsdGVydGVtcGxhdGUuYzoKCSAgKGdzdF9hdWRpb19maWx0ZXJfdGVtcGxhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NpbmsuYzoKCSAgKGdzdF9iYXNlX2F1ZGlvX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NyYy5jOgoJICAoZ3N0X2Jhc2VfYXVkaW9fc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9jZGRhL2dzdGNkZGFiYXNlc3JjLmM6CgkgIChnc3RfY2RkYV9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QtbGlicy9nc3QvaW50ZXJmYWNlcy9taXhlcnRyYWNrLmM6CgkgIChnc3RfbWl4ZXJfdHJhY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0LWxpYnMvZ3N0L3J0cC9nc3RiYXNlcnRwZGVwYXlsb2FkLmM6CgkgIChnc3RfYmFzZV9ydHBfZGVwYXlsb2FkX2NsYXNzX2luaXQpOgoJICAqIGdzdC1saWJzL2dzdC9ydHAvZ3N0YmFzZXJ0cHBheWxvYWQuYzoKCSAgKGdzdF9iYXNlcnRwcGF5bG9hZF9jbGFzc19pbml0KToKCSAgKiBnc3QvYXVkaW9jb252ZXJ0L2dzdGF1ZGlvY29udmVydC5jOgoJICAoZ3N0X2F1ZGlvX2NvbnZlcnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2F1ZGlvcmF0ZS9nc3RhdWRpb3JhdGUuYzogKGdzdF9hdWRpb19yYXRlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb3Jlc2FtcGxlL2dzdGF1ZGlvcmVzYW1wbGUuYzoKCSAgKGdzdF9hdWRpb3Jlc2FtcGxlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9hdWRpb3Rlc3RzcmMvZ3N0YXVkaW90ZXN0c3JjLmM6CgkgIChnc3RfYXVkaW9fdGVzdF9zcmNfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dkcC9nc3RnZHBwYXkuYzogKGdzdF9nZHBfcGF5X2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6IChnc3RfZGVjb2RlX2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzogKGdzdF9wbGF5X2Jhc2VfYmluX2NsYXNzX2luaXQpLAoJICAocHJlcm9sbF91bmxpbmtlZCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4uYzogKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbjIuYzogKGdzdF9wbGF5X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheXNpbmsuYzogKGdzdF9wbGF5X3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RzdHJlYW1pbmZvLmM6IChnc3Rfc3RyZWFtX2luZm9fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHN0cmVhbXNlbGVjdG9yLmM6IChnc3Rfc2VsZWN0b3JfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3N0cmVhbV9zZWxlY3Rvcl9jbGFzc19pbml0KToKCSAgKiBnc3QvcGxheWJhY2svZ3N0dXJpZGVjb2RlYmluLmM6IChnc3RfdXJpX2RlY29kZV9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L3N1YnBhcnNlL2dzdHN1YnBhcnNlLmM6IChnc3Rfc3ViX3BhcnNlX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0bXVsdGlmZHNpbmsuYzogKGdzdF9tdWx0aV9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwY2xpZW50c2luay5jOiAoZ3N0X3RjcF9jbGllbnRfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcGNsaWVudHNyYy5jOiAoZ3N0X3RjcF9jbGllbnRfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC90Y3AvZ3N0dGNwc2VydmVyc2luay5jOiAoZ3N0X3RjcF9zZXJ2ZXJfc2lua19jbGFzc19pbml0KToKCSAgKiBnc3QvdGNwL2dzdHRjcHNlcnZlcnNyYy5jOiAoZ3N0X3RjcF9zZXJ2ZXJfc3JjX2NsYXNzX2luaXQpOgoJICAqIGdzdC92aWRlb3JhdGUvZ3N0dmlkZW9yYXRlLmM6IChnc3RfdmlkZW9fcmF0ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvdmlkZW9zY2FsZS9nc3R2aWRlb3NjYWxlLmM6IChnc3RfdmlkZW9fc2NhbGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L3ZpZGVvdGVzdHNyYy9nc3R2aWRlb3Rlc3RzcmMuYzoKCSAgKGdzdF92aWRlb190ZXN0X3NyY19jbGFzc19pbml0KToKCSAgKiBnc3Qvdm9sdW1lL2dzdHZvbHVtZS5jOiAoZ3N0X3ZvbHVtZV9jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bGVsZW1lbnQuYzogKGdzdF92NGxlbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsbWpwZWdzaW5rLmM6IChnc3RfdjRsbWpwZWdzaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy92NGwvZ3N0djRsbWpwZWdzcmMuYzogKGdzdF92NGxtanBlZ3NyY19jbGFzc19pbml0KToKCSAgKiBzeXMvdjRsL2dzdHY0bHNyYy5jOiAoZ3N0X3Y0bHNyY19jbGFzc19pbml0KToKCSAgKiBzeXMveGltYWdlL3hpbWFnZXNpbmsuYzogKGdzdF94aW1hZ2VzaW5rX2NsYXNzX2luaXQpOgoJICAqIHN5cy94dmltYWdlL3h2aW1hZ2VzaW5rLmM6IChnc3RfeHZpbWFnZXNpbmtfY2xhc3NfaW5pdCk6CgkgIFVzZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGV2ZXJ5d2hlcmUgZm9yIEdQYXJhbVNwZWNzIHRoYXQgdXNlCgkgIHN0YXRpYyBzdHJpbmdzIChpLmUuIGFsbCkuIFRoaXMgZ2l2ZXMgdXMgbGVzcyBtZW1vcnkgdXNhZ2UsCgkgIGZld2VyIGFsbG9jYXRpb25zIGFuZCB0aHVzIGxlc3MgbWVtb3J5IGRlZnJhZ21lbnRhdGlvbi4gRGVwZW5kCgkgIG9uIGNvcmUgQ1ZTIGZvciB0aGlzLiBGaXhlcyBidWcgIzUyMzgwNi4KCjIwMDctMTItMTQgMTg6NDY6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFVzZSBzZXBhcmF0ZSB0aW1lcnMgZm9yIGlucHV0IGFuZCBvdXRwdXQgcmF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksCgkgIChyZXNldF9yYXRlX3RpbWVyKSwgKHVwZGF0ZV9pbl9yYXRlcyksICh1cGRhdGVfb3V0X3JhdGVzKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgVXNlIHNlcGFyYXRlIHRpbWVycyBmb3IgaW5wdXQgYW5kIG91dHB1dCByYXRlcy4KCSAgUGF1c2UgbWVhc3VyaW5nIHRoZSBvdXRwdXQgcmF0ZSB3aGVuIHdlIGJsb2NrIGZvciBtb3JlIGRhdGEuCgkgIFNlZSAjNTAzMjYyLgoKMjAwNy0xMi0xNCAwOToyNDo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogUGF1c2UgdGhlIHRpbWVyIHRvIG1lYXN1cmUgdGhlIGlucHV0IHJhdGUgd2hlbiB3ZSBibG9jayBiZWNhdXNlIHRoZSBxdWV1ZSBpcyBmaWxsZWQuIFNlZSAjNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY2hhaW4pOgoJICBQYXVzZSB0aGUgdGltZXIgdG8gbWVhc3VyZSB0aGUgaW5wdXQgcmF0ZSB3aGVuIHdlIGJsb2NrIGJlY2F1c2UgdGhlCgkgIHF1ZXVlIGlzIGZpbGxlZC4gU2VlICM1MDMyNjIuCgoyMDA3LTExLTMwIDE3OjQ3OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrLzogUmVmYWN0b3Igc29tZSBjb21tb24gY29kZSB0byBmaWx0ZXIgZmFjdG9yaWVzIGFuZCBjaGVjayBjYXBzIGNvbXBhdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3RmYWN0b3J5bGlzdHMuYzogKGNvbXBhcmVfcmFua3MpLCAocHJpbnRfZmVhdHVyZSksCgkgIChnZXRfZmVhdHVyZV9hcnJheSksIChkZWNvZGVyc19maWx0ZXIpLCAoc2lua3NfZmlsdGVyKSwKCSAgKGdzdF9mYWN0b3J5X2xpc3RfZ2V0X2RlY29kZXJzKSwgKGdzdF9mYWN0b3J5X2xpc3RfZ2V0X3NpbmtzKSwKCSAgKGdzdF9mYWN0b3J5X2xpc3RfZmlsdGVyKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0ZmFjdG9yeWxpc3RzLmg6CgkgIFJlZmFjdG9yIHNvbWUgY29tbW9uIGNvZGUgdG8gZmlsdGVyIGZhY3RvcmllcyBhbmQgY2hlY2sgY2FwcyBjb21wYXQuCgkgICogZ3N0L3BsYXliYWNrL2dzdGRlY29kZWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RkZWNvZGViaW4yLmM6IChnc3RfZGVjb2RlX2Jpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9kZWNvZGVfYmluX2luaXQpLCAoZ3N0X2RlY29kZV9iaW5fZGlzcG9zZSksCgkgIChnc3RfZGVjb2RlX2Jpbl9hdXRvcGx1Z19jb250aW51ZSksCgkgIChnc3RfZGVjb2RlX2Jpbl9hdXRvcGx1Z19mYWN0b3JpZXMpLAoJICAoZ3N0X2RlY29kZV9iaW5fYXV0b3BsdWdfc2VsZWN0KSwgKGFuYWx5emVfbmV3X3BhZCksCgkgIChmaW5kX2NvbXBhdGlibGVzKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluMi5jOiAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BsYXlfYmluX2luaXQpLCAoZ3N0X3BsYXlfYmluX2ZpbmFsaXplKSwKCSAgKGF1dG9wbHVnX2ZhY3Rvcmllc19jYiksIChhY3RpdmF0ZV9ncm91cCk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKHByb3h5X3Vua25vd25fdHlwZV9zaWduYWwpLAoJICAocHJveHlfYXV0b3BsdWdfY29udGludWVfc2lnbmFsKSwKCSAgKHByb3h5X2F1dG9wbHVnX2ZhY3Rvcmllc19zaWduYWwpLCAocHJveHlfYXV0b3BsdWdfc2VsZWN0X3NpZ25hbCksCgkgIChwcm94eV9kcmFpbmVkX3NpZ25hbCk6CgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mbyBhbmQgdXNlIGZhY3RvciBmaWx0ZXJpbmcgY29kZS4KCjIwMDctMTEtMTYgMTU6NDQ6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svOiBBZGQgcGxheWJpbjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGxheWJhY2svZ3N0cGxheWJhY2suYzogKHBsdWdpbl9pbml0KToKCSAgKiBnc3QvcGxheWJhY2svdGVzdDcuYzogKHVwZGF0ZV9zY2FsZSksICh3YXJuaW5nX2NiKSwgKGVycm9yX2NiKSwKCSAgKGVvc19jYiksIChhYm91dF90b19maW5pc2hfY2IpLCAobWFpbik6CgkgIEFkZCBwbGF5YmluMi4KCSAgQWRkZWQgZ2FwbGVzcyBwbGF5YmFjayBleGFtcGxlLgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5oOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmluLmM6IChnc3RfcGxheV9iaW5fcGx1Z2luX2luaXQpOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzoKCSAgKiBnc3QvcGxheWJhY2svdGVzdC5jOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9jbGFzc19pbml0KSwKCSAgKHBhZF9yZW1vdmVkX2NiKToKCSAgKiBnc3QvcGxheWJhY2svZ3N0c3RyZWFtaW5mby5oOgoJICBDaGFuZ2UgZW1haWwuCgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXliaW4yLmM6IChnc3RfcGxheV9iaW5fZ2V0X3R5cGUpLAoJICAoZ3N0X3BsYXlfYmluX2NsYXNzX2luaXQpLCAoaW5pdF9ncm91cCksIChnc3RfcGxheV9iaW5faW5pdCksCgkgIChnc3RfcGxheV9iaW5fZGlzcG9zZSksIChnc3RfcGxheV9iaW5fc2V0X3VyaSksCgkgIChnc3RfcGxheV9iaW5fc2V0X3N1YnVyaSksIChnc3RfcGxheV9iaW5fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9wbGF5X2Jpbl9nZXRfcHJvcGVydHkpLCAoZ3N0X3BsYXlfYmluX2hhbmRsZV9tZXNzYWdlKSwKCSAgKHBhZF9hZGRlZF9jYiksIChwYWRfcmVtb3ZlZF9jYiksIChub19tb3JlX3BhZHNfY2IpLCAocGVyZm9ybV9lb3MpLAoJICAoZHJhaW5lZF9jYiksICh1bmxpbmtfZ3JvdXApLCAoYWN0aXZhdGVfZ3JvdXApLAoJICAoc2V0dXBfbmV4dF9zb3VyY2UpLCAoZ3N0X3BsYXlfYmluX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGxheV9iaW4yX3BsdWdpbl9pbml0KToKCSAgQWRkZWQgcmF3IGZpcnN0IHZlcnNpb24gb2YgcGxheWJpbjIuIERvZXMgY2hhaW5lZCBvZ2dzIGFuZCBnYXBsZXNzCgkgIHBsYXliYWNrIGZpbmUuIE5vIHN1cHBvcnQgZm9yIHJhdyBzaW5rcyB5ZXQuIE5vIHZpc3VhbGlzYXRpb25zIG9yCgkgIHN1YnRpdGxlcyB5ZXQuCgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXlzaW5rLmM6IChnc3RfcGxheV9zaW5rX2dldF90eXBlKSwKCSAgKGdzdF9wbGF5X3NpbmtfY2xhc3NfaW5pdCksIChnc3RfcGxheV9zaW5rX2luaXQpLAoJICAoZ3N0X3BsYXlfc2lua19kaXNwb3NlKSwgKGdzdF9wbGF5X3NpbmtfdmlzX3VuYmxvY2tlZCksCgkgIChnc3RfcGxheV9zaW5rX3Zpc19ibG9ja2VkKSwgKGdzdF9wbGF5X3Npbmtfc2V0X3ZpZGVvX3NpbmspLAoJICAoZ3N0X3BsYXlfc2lua19zZXRfYXVkaW9fc2luayksIChnc3RfcGxheV9zaW5rX3NldF92aXNfcGx1Z2luKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9wbGF5X3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKHBvc3RfbWlzc2luZ19lbGVtZW50X21lc3NhZ2UpLCAoZnJlZV9jaGFpbiksIChhZGRfY2hhaW4pLAoJICAoYWN0aXZhdGVfY2hhaW4pLCAoZ2VuX3ZpZGVvX2NoYWluKSwgKGdlbl90ZXh0X2VsZW1lbnQpLAoJICAoZ2VuX2F1ZGlvX2NoYWluKSwgKGdlbl92aXNfZWxlbWVudCksIChnc3RfcGxheV9zaW5rX2dldF9tb2RlKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2V0X21vZGUpLCAoZ3N0X3BsYXlfc2lua19yZXF1ZXN0X3BhZCksCgkgIChnc3RfcGxheV9zaW5rX3JlbGVhc2VfcGFkKSwgKGdzdF9wbGF5X3Npbmtfc2VuZF9ldmVudF90b19zaW5rKSwKCSAgKGdzdF9wbGF5X3Npbmtfc2VuZF9ldmVudCksIChnc3RfcGxheV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHBsYXlzaW5rLmg6CgkgIEFkZGVkIEVsZW1lbnQgdGhhdCBhYnN0cmFjdHMgdGhlIHNpbmtzIGFuZCB0aGVpciBwaXBlbGluZXMgZm9yIHBsYXliaW4yLgoKMjAwNy0xMC0xNSAxMTozODozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBTZWUgIzQ4Njc1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBTZWUgIzQ4Njc1OC4KCjIwMDctMDktMjEgMTQ6Mzc6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IEZpeCBjb21waWxhdGlvbiB3cnQgcHJpbnRmIGFyZ3VtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IGNvbXBpbGF0aW9uIHdydCBwcmludGYgYXJndW1lbnRzLgoKMjAwNy0wOS0xNyAxNzoyNDo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBGaXggYSBidW5jaCBvZiBjb21waWxlIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGV4dC9wYW5nby9nc3R0ZXh0b3ZlcmxheS5jOiAoZ3N0X3RleHRfb3ZlcmxheV9pbml0KSwKCSAgKGdzdF90ZXh0X292ZXJsYXlfc2V0X3Byb3BlcnR5KToKCSAgKiBleHQvdm9yYmlzL3ZvcmJpc2RlYy5jOiAodm9yYmlzX2hhbmRsZV9kYXRhX3BhY2tldCk6CgkgICogZ3N0LWxpYnMvZ3N0L2F1ZGlvL2dzdGJhc2VhdWRpb3NpbmsuYzoKCSAgKGdzdF9iYXNlX2F1ZGlvX3NpbmtfcmVuZGVyKToKCSAgKiBnc3QtbGlicy9nc3QvcnRwL2dzdHJ0Y3BidWZmZXIuYzogKGdzdF9ydGNwX250cF90b191bml4KSwKCSAgKGdzdF9ydGNwX3VuaXhfdG9fbnRwKToKCSAgKiBnc3QtbGlicy9nc3QvcnRzcC9nc3RydHNwbWVzc2FnZS5jOiAoZ3N0X3J0c3BfbWVzc2FnZV9nZXRfdHlwZSk6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIHRlc3RzL2V4YW1wbGVzL3NlZWsvc2Vlay5jOiAoc2V0X3NjYWxlKToKCSAgRml4IGEgYnVuY2ggb2YgY29tcGlsZSB3YXJuaW5ncyBzaG93biB3aXRoIEZvcnRlLgoJICAqIGdzdC9hdWRpb3JhdGUvZ3N0YXVkaW9yYXRlLmM6CgkgIEFsd2F5cyBwdWxsIGluIGNvbmZpZy5oIGJlZm9yZSBpbmNsdWRpbmcgYW55IHN5c3RlbSBoZWFkZXJzLgoKMjAwNy0wOS0xNyAxNjoyMjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogQWxzbyBmaXggIzQ3NjUxNCBmb3IgcXVldWUyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6ICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIEFsc28gZml4ICM0NzY1MTQgZm9yIHF1ZXVlMi4KCjIwMDctMDgtMTAgMTA6MDg6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBQcmludGYgZm9ybWF0IGZpeGVzICgjNDY1MDI4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOgoJICAqIGdzdC92aWRlb3JhdGUvZ3N0dmlkZW9yYXRlLmM6CgkgIFByaW50ZiBmb3JtYXQgZml4ZXMgKCM0NjUwMjgpLgoKMjAwNy0wNi0yOCAxMTowNjo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogVXNlIG90aGVyIG1ldHJpY3MgYXMgd2VsbCB3aGVuIGVzdGltYXRpbmcgdGhlIGJ1ZmZlciBsZXZlbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoYXBwbHlfc2VnbWVudCksICh1cGRhdGVfYnVmZmVyaW5nKToKCSAgVXNlIG90aGVyIG1ldHJpY3MgYXMgd2VsbCB3aGVuIGVzdGltYXRpbmcgdGhlIGJ1ZmZlciBsZXZlbC4KCjIwMDctMDYtMjggMTA6MjE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cGxheWJhc2ViaW4uYzogU21hbGwgZGVidWcgaW1wcm92ZW1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RwbGF5YmFzZWJpbi5jOiAobWFrZV9kZWNvZGVyKSwgKHNldHVwX3NvdXJjZSk6CgkgIFNtYWxsIGRlYnVnIGltcHJvdmVtZW50LgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGFwcGx5X3NlZ21lbnQpLCAodXBkYXRlX2J1ZmZlcmluZyksCgkgIChwbHVnaW5faW5pdCk6CgkgIFR3ZWFrIHRoZSByYXRlIGVzdGltYXRpb24gcGVyaW9kLgoJICBXaGVuIGNhbGN1bGF0aW5nIHRoZSBidWZmZXIgZmlsbGVkbmVzcyBpbiByYXRlIGVzdGltYXRpb24gbW9kZSwgZG9uJ3QKCSAgbWl4IGl0IHdpdGggb3RoZXIgbWV0cmljcy4KCjIwMDctMDYtMTYgMDM6NDI6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggY29tcGlsZSBlcnJvciBmcm9tIGlnbm9yZWQgcmV0dXJuIHZhbHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6CgkgIEZpeCBjb21waWxlIGVycm9yIGZyb20gaWdub3JlZCByZXR1cm4gdmFsdWUuCgoyMDA3LTA2LTEzIDE4OjIwOjU3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggYnVpbGQgb24gTWFjT1NYLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfY3JlYXRlX3JlYWQpOgoJICBGaXggYnVpbGQgb24gTWFjT1NYLgoKMjAwNy0wNi0xMiAwODozODowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogRml4IGEgZGl2aXNpb24gYnkgemVybyB3aGVuIHRoZSBtYXggcGVyY2VudCBpcyA8PSAwLiBGaXhlcyAjNDQ2NTcyLiBhbHNvIHVwZGF0ZSB0aGUgYnVmZmVyaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2hlcyBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKHVwZGF0ZV9idWZmZXJpbmcpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKToKCSAgRml4IGEgZGl2aXNpb24gYnkgemVybyB3aGVuIHRoZSBtYXggcGVyY2VudCBpcyA8PSAwLiBGaXhlcyAjNDQ2NTcyLgoJICBhbHNvIHVwZGF0ZSB0aGUgYnVmZmVyaW5nIHN0YXR1cyB3aGVuIHJlY2VpdmluZyBldmVudHMuIEZpeGVzICM0NDY1NTEuCgoyMDA3LTA2LTExIDExOjMyOjI2ICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogV2FpdCBmb3IgcHJlcm9sbCBiZWZvcmUgYXR0ZW1wdGluZyB0byBmb3J3YXJkIGEgZHVyYXRpb24gcXVlcnkgdXBzdHJlYW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9wZWVyX3F1ZXJ5KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgV2FpdCBmb3IgcHJlcm9sbCBiZWZvcmUgYXR0ZW1wdGluZyB0byBmb3J3YXJkIGEgZHVyYXRpb24gcXVlcnkgdXBzdHJlYW0uCgkgIEZpeGVzICM0NDU1MDUuCgoyMDA3LTA2LTA3IDA5OjExOjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBGaXggY29tcGlsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9nZXRfcmFuZ2UpOgoJICBGaXggY29tcGlsYXRpb24uCgoyMDA3LTA2LTA2IDEzOjM2OjI2ICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogQWRkIHB1bGwgYmFzZWQgc2NoZWR1bGluZyBhbmQgZml4IHNvbWUgZGVhZGxvY2tzLiBGaXhlcyAjNDQ0NTIzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRoaWFnbyBTb3VzYSBTYW50b3MgPHRoaWFnb3NzYW50b3MgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9nZXRfcmFuZ2UpLCAoZ3N0X3F1ZXVlX3NyY19jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVsbCk6CgkgIEFkZCBwdWxsIGJhc2VkIHNjaGVkdWxpbmcgYW5kIGZpeCBzb21lIGRlYWRsb2Nrcy4gRml4ZXMgIzQ0NDUyMy4KCSAgRG9lcyBub3QgeWV0IGNvbXBsZXRlbHkgd29yayBiZWNhdXNlIGR1cmF0aW9uIHF1ZXJpZXMgdXBzdHJlYW0gd29uJ3QKCSAgYmxvY2sgeWV0LgoKMjAwNy0wNi0wNiAwOTowODo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgbW9yZSBmc2Vla28gY2hlY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKToKCSAgU29tZSBtb3JlIGZzZWVrbyBjaGVja3MuCgoyMDA3LTA2LTA1IDE3OjAyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiBJbmNsdWRlIHN0ZGlvIHRvIGRlZmluZSBmc2Vla28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9oYXZlX2RhdGEpLAoJICAoZ3N0X3F1ZXVlX2NyZWF0ZV9yZWFkKSwgKGdzdF9xdWV1ZV9yZWFkX2l0ZW1fZnJvbV9maWxlKSwKCSAgKGdzdF9xdWV1ZV9vcGVuX3RlbXBfbG9jYXRpb25fZmlsZSksIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpOgoJICBJbmNsdWRlIHN0ZGlvIHRvIGRlZmluZSBmc2Vla28uCgoyMDA3LTA2LTA1IDE2OjE0OjIzICswMDAwICBUaGlhZ28gU291c2EgU2FudG9zIDx0aGlhZ29zc2FudG9zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogQWRkIHN1cHBvcnQgZm9yIGZpbGViYXNlZCBidWZmZXJpbmcuIEZpeGVzICM0NDEyNjQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogVGhpYWdvIFNvdXNhIFNhbnRvcyA8dGhpYWdvc3NhbnRvcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wbGF5YmFjay9nc3RxdWV1ZTIuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3RfcXVldWVfd3JpdGVfYnVmZmVyX3RvX2ZpbGUpLCAoZ3N0X3F1ZXVlX2hhdmVfZGF0YSksCgkgIChnc3RfcXVldWVfY3JlYXRlX3JlYWQpLCAoZ3N0X3F1ZXVlX3JlYWRfaXRlbV9mcm9tX2ZpbGUpLAoJICAoZ3N0X3F1ZXVlX29wZW5fdGVtcF9sb2NhdGlvbl9maWxlKSwKCSAgKGdzdF9xdWV1ZV9jbG9zZV90ZW1wX2xvY2F0aW9uX2ZpbGUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9pc19lbXB0eSksIChnc3RfcXVldWVfaXNfZmlsbGVkKSwKCSAgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3F1ZXVlX3NldF90ZW1wX2xvY2F0aW9uKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBBZGQgc3VwcG9ydCBmb3IgZmlsZWJhc2VkIGJ1ZmZlcmluZy4gRml4ZXMgIzQ0MTI2NC4KCjIwMDctMDUtMTcgMTU6MjI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IFR3ZWFrIHRoZSBidWZmZXJpbmcgdGhyZXNob2xkcyBhIGxpdHRsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAodXBkYXRlX3JhdGVzKToKCSAgVHdlYWsgdGhlIGJ1ZmZlcmluZyB0aHJlc2hvbGRzIGEgbGl0dGxlLgoJICBVcGRhdGUgdGhlIGJ1ZmZlciBzaXplIHdpdGggdGhlIHByZXZpb3VzbHkgY2FsY3VsYXRlIHJhdGUgaW5zdGVhZCBvZgoJICBvbmx5IHdoZW4gd2UgY2FsY3VsYXRlIGEgbmV3IHJhdGUgc28gdGhhdCB3ZSBnZXQgc21vb3RoZXIgYnVmZmVyaW5nCgkgIHVwZGF0ZXMuCgkgICogZ3N0L3BsYXliYWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wbGF5YmFjay9nc3R1cmlkZWNvZGViaW4uYzogKGdzdF91cmlfZGVjb2RlX2Jpbl9iYXNlX2luaXQpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2NsYXNzX2luaXQpLCAoZ3N0X3VyaV9kZWNvZGVfYmluX2luaXQpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2ZpbmFsaXplKSwgKGdzdF91cmlfZGVjb2RlX2Jpbl9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3VyaV9kZWNvZGVfYmluX2dldF9wcm9wZXJ0eSksICh1bmtub3duX3R5cGUpLAoJICAoYWRkX2VsZW1lbnRfc3RyZWFtKSwgKG5vX21vcmVfcGFkc19mdWxsKSwgKG5vX21vcmVfcGFkcyksCgkgIChzb3VyY2Vfbm9fbW9yZV9wYWRzKSwgKG5ld19kZWNvZGVkX3BhZCksIChhcnJheV9oYXNfdmFsdWUpLAoJICAoZ2VuX3NvdXJjZV9lbGVtZW50KSwgKGhhc19hbGxfcmF3X2NhcHMpLCAoYW5hbHlzZV9zb3VyY2UpLAoJICAocmVtb3ZlX2RlY29kZXJzKSwgKG1ha2VfZGVjb2RlciksIChyZW1vdmVfc291cmNlKSwKCSAgKHNvdXJjZV9uZXdfcGFkKSwgKHNldHVwX3NvdXJjZSksIChkZWNvZGVyX3F1ZXJ5X2luaXQpLAoJICAoZGVjb2Rlcl9xdWVyeV9kdXJhdGlvbl9mb2xkKSwgKGRlY29kZXJfcXVlcnlfZHVyYXRpb25fZG9uZSksCgkgIChkZWNvZGVyX3F1ZXJ5X3Bvc2l0aW9uX2ZvbGQpLCAoZGVjb2Rlcl9xdWVyeV9wb3NpdGlvbl9kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfbGF0ZW5jeV9mb2xkKSwgKGRlY29kZXJfcXVlcnlfbGF0ZW5jeV9kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfc2Vla2luZ19mb2xkKSwgKGRlY29kZXJfcXVlcnlfc2Vla2luZ19kb25lKSwKCSAgKGRlY29kZXJfcXVlcnlfZ2VuZXJpY19mb2xkKSwgKGdzdF91cmlfZGVjb2RlX2Jpbl9xdWVyeSksCgkgIChnc3RfdXJpX2RlY29kZV9iaW5fY2hhbmdlX3N0YXRlKSwgKHBsdWdpbl9pbml0KToKCSAgTmV3IGVsZW1lbnQgdGhhdCBpbnRlcmdyYXRlcyBhIHNvdXJjZSwgb3B0aW9uYWwgYnVmZmVyaW5nIGVsZW1lbnQgYW5kCgkgIGRlY29kZWJpbi4KCjIwMDctMDUtMTcgMTM6MzY6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGxheWJhY2svZ3N0cXVldWUyLmM6IGZpeCBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksICh1cGRhdGVfdGltZV9sZXZlbCksCgkgIChhcHBseV9zZWdtZW50KSwgKGFwcGx5X2J1ZmZlciksICh1cGRhdGVfYnVmZmVyaW5nKSwKCSAgKHJlc2V0X3JhdGVfdGltZXIpLCAodXBkYXRlX3JhdGVzKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9lbnF1ZXVlKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2lzX2ZpbGxlZCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgZml4IGJ1aWxkLgoKMjAwNy0wNS0xNyAxMTo1Nzo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9wbGF5YmFjay86IE9uIG91ciB3YXkgdG8gcGxheWJpbjIgdGhpcyBpcyB0aGUgbmV3IG5ldHdvcmsgcXVldWUgdGhhdCBkb2VzIGJ1ZmZlcmluZyBhbGwgYnkgaXRzZWxmIHVzaW5nIGhpZ2ggYW5kIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGxheWJhY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L3BsYXliYWNrL2dzdHF1ZXVlMi5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKSwKCSAgKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3RfcXVldWVfZ2V0Y2FwcyksIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3F1ZXVlX2FjY2VwdGNhcHMpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksCgkgIChhcHBseV9idWZmZXIpLCAodXBkYXRlX2J1ZmZlcmluZyksIChyZXNldF9yYXRlX3RpbWVyKSwKCSAgKHVwZGF0ZV9yYXRlcyksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9pc19lbXB0eSksCgkgIChnc3RfcXVldWVfaXNfZmlsbGVkKSwgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfcHVzaF9vbmUpLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpLCAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpLCAocGx1Z2luX2luaXQpOgoJICBPbiBvdXIgd2F5IHRvIHBsYXliaW4yIHRoaXMgaXMgdGhlIG5ldyBuZXR3b3JrIHF1ZXVlIHRoYXQgZG9lcyBidWZmZXJpbmcKCSAgYWxsIGJ5IGl0c2VsZiB1c2luZyBoaWdoIGFuZCBsb3cgd2F0ZXJtYXJrcy4gSXQgY2FuIGFsc28gbWVhc3VyZSB1cCBhbmQKCSAgZG93bnN0cmVhbSBiYW5kd2lkdGggdG8gb3B0aW1hbGx5IHNpemUgdGhlIHF1ZXVlLgoKMjAwOS0xMC0yOCAyMjowMzo0NCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBwYXJzZTogRml4IG1lbWxlYWsgb2YgdW51c2VkIGRlbGF5ZWQgbGlua3MKCSAgQXR0YWNoIHRoZSBEZWxheWVkTGluayBzdHJ1Y3R1cmUgdG8gdGhlIGVsZW1lbnQsIHNvIHRoYXQgd2hlbgoJICB0aGUgZWxlbWVudCBpcyBkaXNwb3NlZCwgdGhlIERlbGF5ZWRMaW5rIGlzIGZyZWVkLgoKMjAwOS0wOS0wOSAxNTozNzoxMSAtMDUwMCAgUm9iIENsYXJrIDxyb2JAdGkuY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IG1ha2UgX2ZpeGF0ZV9jYXBzKCkgYWxzbyB0cnVuY2F0ZSB3aGVuIG5lZWRlZAoJICBUaGUgZGVmYXVsdCBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkgcHJldmlvdXNseSB3b3VsZCBvbmx5IGZpeGF0ZSBlYWNoIGluZGl2aWR1YWwKCSAgc3RydWN0LiBJbiBjYXNlIHRoZXJlIGFyZSBtdWx0aXBsZSBzdHJ1Y3RzLCB0aGUgcmVzdWx0aW5nIGNhcHMgd291bGQgc3RpbGwgbm90CgkgIGJlIGZpeGVkLiBJbiB0aGUgc3Bpcml0IG9mIGhvdyBpbmRpdmlkdWFsIHN0cnVjdHMgYXJlIGZpeGF0ZWQsIHRoaXMgcGF0Y2gKCSAgY2hhbmdlcyBnc3RfcGFkX2ZpeGF0ZV9jYXBzKCkgdG8gcmVtb3ZlIGFsbCBidXQgdGhlIGZpcnN0IHN0cnVjdC4KCSAgRml4ZXMgIzU5NTg4NgoKMjAwOS0wOS0yMSAxMTo0NDoxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGluZm86IGZpeCBkb2NzCgoyMDA5LTEwLTI4IDA5OjI2OjMyICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIG9wdGltaXNhdGlvbiA6IFVzZSBnX29iamVjdF9uZXd2IHdoZXJlIHBvc3NpYmxlLgoJICBUaGlzIGF2b2lkczoKCSAgKiB0cmlwbGUtY2hlY2tpbmcgZm9yIHRoZSBHVHlwZSB3aGVuIHR5cGUtY2hlY2tpbmcgaXMgZW5hYmxlZCAoc2VlICM1OTcyNjApCgkgICogQXZvaWRzIGdvaW5nIHRocm91Z2ggYW4gZXhwZW5zaXZlIG5vLWFyZ3VtZW50IGNoZWNraW5nIHdoaWNoIGxhbmRlZCBpbgoJICBnbGliLTIuMjIKCSAgKiBBdm9pZHMgZ29pbmcgdGhyb3VnaCAyIGV4dHJhYyBmdW5jdGlvbnMgKGdfb2JqZWN0X25ldyAtPiBnX29iamVjdF9uZXdfdmFsaXN0KQoKMjAwOS0xMC0yOCAxMDoxNToxMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgZG9jczogaW5jbHVkZSBhbm5vdGF0aW9uIGdsb3NzYXJ5IHRvIGhhdmUgd29ya2luZyBsaW5rcy4KCjIwMDktMTAtMjggMTA6MTQ6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgYW5ub3RhdGlvbnM6IGFkZCBhbm5vdGF0aW9ucyB0byBnc3RfaW5pdF9jaGVjayB0b28KCjIwMDktMTAtMjggMDk6NTg6NTIgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZG9jczogdGVsbCBtb3JlIGFib3V0IHdoYXQgaGFwcGVucyBpbiBnc3RfaW5pdC4KCSAgQWRkIGxpbmtzIHRvIGdzdF91cGRhdGVfcmVnaXN0cnkgYW5kIHRoZSBlbnYtdmFycy4KCjIwMDktMTAtMjggMDk6MjE6MDEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSAgZG9jczogcmVtb3ZlIHJlZmVyZW5jZSB0byBPR0kgYW5kIHJlcGhyYXNlIHNlY3Rpb25zIGRvY3MKCSAgVGhlIE9HSSBsaW5rcyBhcmUgZGVhZCwgc28gcmVtb3ZlIHRoZW0uIEFsc28gcmVtb3ZlIHRoZSBwYXJhZ3JhcGggdGhhdCBwb2ludGVkCgkgIHRvIE9HSSBhbmQgRFMuIE9ubHkgbWVudGlvbmluZyBEUyB0aGVyZSBtYWRlIGl0IGEgYnV0IHBvaW50bGVzcy4gQWRkIGEgZ2VuZXJpYwoJICBwYXJhZ3JhcGggaW5zdGVhZCB0aGF0IHRlbGxzIGEgYml0IGFib3V0IHRoZSB1c2VjYXNlcyBnc3RyZWFtZXIgY292ZXJzLgoKMjAwOS0xMC0yOCAwMDoyOTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidXMuYzoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZGV4LmM6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIFJlbW92ZSBHU1RfREVCVUdfRlVOQ1BUUiB3aGVyZSB0aGV5J3JlIHBvaW50bGVzcwoJICBUaGVyZSdzIG5vdCBtdWNoIHBvaW50IGluIHVzaW5nIEdTVF9ERUJVR19GVU5DUFRSIHdpdGggR09iamVjdAoJICB2aXJ0dWFsIGZ1bmN0aW9ucyBzdWNoIGFzIGdldF9wcm9wZXJ0eSwgc2V0X3Byb3BlcnksIGZpbmFsaXplIGFuZAoJICBkaXNwb3NlLCBzaW5jZSB0aGV5J2xsIG5ldmVyIGJlIHVzZWQgYnkgYW55b25lIGFueXdheS4gU2F2ZXMgYQoJICBmZXcgYnl0ZXMgYW5kIHBvc3NpYmx5IGEgdGVudGggb2YgYSBwb2xhciBiZWFyLgoKMjAwOS0xMC0yOCAwMDowNzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogc3ByaW5rbGUgc29tZSBHU1RfREVCVUdfRlVOQ1BUUgoKMjAwOS0xMC0yNyAxNTo0NzozOSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRlc2lnbjogYWRkIHNvbWUgaWRlYXMgZm9yIFNLSVAgbW9kZSB0cmlja21vZGVzCgoyMDA5LTEwLTIzIDEwOjIwOjAyIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGJ1ZmZlcmluZyBpcyBpbXBsZW1lbnRlZCBub3cKCjIwMDktMTAtMjIgMjE6MjQ6MjQgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IG1ha2Ugc3VyZSBwZXJjZW50IGluY3JlYXNlcwoJICBLZWVwIHRyYWNrIG9mIHRoZSBsYXN0IHBvc3RlZCBwZXJjZW50IG1lc3NhZ2UgYW5kIG1ha2Ugc3VyZSB0aGUgbmV4dCBwZXJjZW50CgkgIG1lc3NhZ2VzIGFyZSBzdHJpY3RseSBpbmNyZWFzaW5nLgoKMjAwOS0xMC0yMiAxNjozODoxMiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiByZWZhY3RvciBidWZmZXJpbmcgY29kZQoJICBNb3ZlIHRoZSBidWZmZXJpbmcgdXBkYXRlIGNvZGUgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBzbyB0aGF0IHdlIGNhbiBjYWxsIGl0CgkgIHdoZW4gdGhlIGJ1ZmZlcmluZyBzdGF0ZSBjaGFuZ2VzIGR1ZSB0byBFT1MuCgkgIEF2b2lkIGRpdmlkaW5nIGJ5IDAuCgoyMDA5LTEwLTIyIDE0OjA5OjAxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBtdWx0aXF1ZXVlOiBhZGQgYnVmZmVyaW5nIHN1cHBvcnQKCSAgQWRkIHN1cHBvcnQgZm9yIGJ1ZmZlcmluZyBtb2RlIHdoZXJlIHdlIHBvc3QgQlVGRkVSSU5HIG1lc3NhZ2VzIGJhc2VkIG9uIHRoZQoJICBsZXZlbCBvZiB0aGUgcXVldWVzLiBJdCBjdXJyZW50bHkgb3BlcmF0ZXMgb24gdGhlIGZpcnN0IHF1ZXVlIHRoYXQgZ29lcyBvdmVyIG9yCgkgIHVuZGVyIHRoZSBoaWdoL2xvdyB0aHJlc2hvbGRzLgoKMjAwOS0xMC0yMiAxNDowNzozMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBkb24ndCBjaGVjayB2aXNpYmxlIGl0ZW1zIGluIGJ1ZmZlcmluZwoJICBJbiBidWZmZXJpbmcgbW9kZSB3ZSB3YW50IHRvIGlnbm9yZSB0aGUgbWF4IHZpc2libGUgaXRlbXMgdG8gZGVjaWRlIHdoZW4gdGhlCgkgIHF1ZXVlIGlzIGZpbGxlZC4gSW5zdGVhZCwgd2Ugb25seSBsb29rIGF0IHRoZSBudW1iZXIgb2YgYnl0ZXMgYW5kL29yIHRpbWUgaW4gdGhlCgkgIHF1ZXVlLgoKMjAwOS0xMC0yMSAxMTozMDo0MCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogaG9vayB1cCBsb3cvaGlnaCBwZXJjZW50CgkgIEhvb2sgdXAgdGhlIGxvdy9oaWdoIHBlcmNlbnQgcHJvcGVydGllcyBmb3IgdGhlIGJ1ZmZlcmluZyBtb2RlLgoKMjAwOS0xMC0yMSAxMToyNDo0NyAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogaG9vayB1cCBwcm9wZXJ0eSBmb3IgYnVmZmVyaW5nCgoyMDA5LTEwLTIyIDE1OjIxOjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHNtYWxsIGNsZWFudXBzCgkgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgdG8gYXZvaWQgY29uZnVzaW9uCgkgIEZpeCBzb21lIHR5cG8KCjIwMDktMTAtMjIgMDk6NDE6NTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogYWRkIEZJWE1FIGZvciB3cm9uZyBjb2RlCgkgIE5lZWRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbgoKMjAwOS0xMC0yMSAxNDoyMDoyOSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBmaXggZGVidWcgb3V0cHV0CgoyMDA5LTEwLTIxIDE0OjE1OjA1IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGF2b2lkIHNoYWRvd2luZyBmdW5jdGlvbiBhcmd1bWVudAoJICBEb24ndCBzaGFkb3cgdGhlIHNxIGFyZ3VtZW50IGluIHRoZSB1bmRlcnJ1bl9jYiBmdW5jdGlvbiBidXQgdXNlCgkgIGEgZGlmZmVyZW50IHZhcmlhYmxlIG5hbWUgdG8gaXRlcmF0ZSB0aGUgb3RoZXIgcXVldWVzLgoJICBVc2UgdGhlIHNhbWUgdmFyaWFibGUgbmFtZSBpbiB0aGUgb3ZlcnJ1bl9jYiBmdW5jdGlvbi4KCjIwMDktMTAtMjEgMTQ6MTI6MTIgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogbWFrZSBxdWV1ZSBhcmcgZXhwbGljaXQKCSAgTWFrZSB0aGUgcXVldWUgYXJndW1lbnQgdG8gSVNfRklMTEVEIGV4cGxpY2l0CgoyMDA5LTEwLTIxIDExOjE3OjA4IC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IGZpeCBwcm9wZXJ0aWVzCgkgIEZpeCBwcm9wZXJ0aWVzLCBtYWtlIHRoZSBleHRyYS1zaXplIHByb3BlcnRpZXMgYXMgbm90IGltcGxlbWVudGVkLgoKMjAwOS0xMC0yNSAyMTozNTowOSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgZGVidWd1dGlsczogYWxsb3cgdG8gaGlkZS9zaG93IHBhZCBzdGF0dXMgd2l0aCBncmFwaGRldGFpbHMgZmxhZwoKMjAwOS0xMC0yNCAxMzoxNDoyNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIHR5cGVmaW5kaGVscGVyOiBSZW1vdmUgb2Jzb2xldGUgRklYTUUKCSAgSXQncyBub3QgbmVjZXNzYXJ5IChhbmQgbm90IGEgZ29vZCBpZGVhKSB0byBjYWNoZSB0aGUgdHlwZWZpbmQgZmFjdG9yeQoJICBsaXN0IGFueW1vcmUuCgoyMDA5LTEwLTI0IDExOjU4OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgcmVnaXN0cnk6IHByaXZhdGUgaXMgYSBDKysga2V5d29yZCwgZG9uJ3QgdXNlIGl0CgkgIC4uLm90aGVyd2lzZSBDKysgY29tcGlsZXJzIHdpbGwgY29tcGxhaW4gd2hlbiBpbmNsdWRpbmcgZ3N0cmVnaXN0cnkuaAoKMjAwOS0xMC0yNCAxMDoyMTozMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICBkb2NzOiBhZGQgU2luY2UgdGFnIHRvIGRvY3MgZm9yIG5ldyBBUEkKCSAgQW5kIHRlbGwgZ3RrLWRvYyB0aGF0IEdzdFJlZ2lzdHJ5UHJpdmF0ZSBpcyBwcml2YXRlLgoKMjAwOS0xMC0yMSAwOTo0ODo0MSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgdHlwZWZpbmQ6IEtlZXAgdHlwZWZpbmQgZmFjdG9yaWVzIHNvcnRlZCBpbiB0aGUgcmVnaXN0cnkuIEZpeGVzICM1OTkxNDcKCSAgVGhpcyBhdm9pZHMgaGF2aW5nIHRvIGRvIHRoZSBzb3J0aW5nIGV2ZXJ5dGltZSB3ZSB1c2UgdHlwZWZpbmQKCSAgVGhlIGJlaGF2aW91ciBvZiBnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2xpc3QgaGFzIHN1YnRsZWx5IGNoYW5nZWQKCSAgaW4gdGhlIHNlbnNlIHRoYXQgdGhlIG9yZGVyIHdhcyBwcmV2aW91c2x5IHVuZGVmaW5lZCwgd2hlcmVhcyBub3cKCSAgaXQgcmV0dXJucyB0aGVtIHNvcnRlZCBieSByYW5rIGFuZCB0aGVuIGJ5IG5hbWUuCgoyMDA5LTEwLTIxIDA5OjQ1OjQ3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBDYWNoZSBlbGVtZW50IGFuZCB0eXBlZmluZCBmYWN0b3JpZXMuIEZpeGVzIDU5ODg5NgoJICBUaGlzIGF2b2lkcyB1bm5lZWRlZCBsaXN0L2ZpbHRlcmluZyBpZiB0aGUgcmVnaXN0cnkgaGFzbid0IGNoYW5nZWQKCjIwMDktMTAtMjEgMDk6NDA6NDkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0cGx1Z2luZmVhdHVyZTogQVBJIDogbmV3IGdzdF9wbHVnaW5fZmVhdHVyZV9saXN0X2NvcHkoKSBtZXRob2QKCSAgVGhpcyBhbGxvd3MgY29weWluZyBBTkQgaW5jcmVtZW50aW5nIHRoZSByZWZjb3VudCBhdCB0aGUgc2FtZSB0aW1lLAoJICBhdm9pZGluZyBhIGRvdWJsZSBpdGVyYXRpbyBvZiB0aGUgR0xpc3QKCjIwMDktMTAtMjQgMTA6MDU6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIGdzdHJlZ2lzdHJ5OiBBZGQgYSBjb29raWUgZm9yIGRldGVjdGluZyBmZWF0dXJlIGxpc3QgY2hhbmdlcwoJICBXZSBhbHNvIGNyZWF0ZSBhIHByaXZhdGUgc3RydWN0dXJlLCBzaW5jZSB3ZSB3aWxsIG5lZWQgdG8gYWRkIG1vcmUKCSAgZGF0YSB0aGVyZSBpbiBmb2xsb3dpbmcgcGF0Y2hlcy4KCjIwMDktMTAtMjMgMTM6MTk6MDQgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBtZXNzYWdlOiBkb24ndCB1c2UgdHlwZWNoZWNraW5nIGNhc3QgbWFjcm9zCgkgIFNpbXBseSB1c2UgY2FzdGluZyBtYWNyb3MgZm9yIGFjY2Vzc2luZyB0aGUgbWVzc2FnZSBmaWVsZHMgbGlrZSB3ZSBkbyBmb3IKCSAgYnVmZmVycyBhbmQgZXZlbnRzLiBBdm9pZHMgc29tZSBjb3N0bHkgdHlwZWNoZWNraW5nIHRoYXQgZG9lcyBub3QgcmVhbGx5IGJ1eSB1cwoJICBtdWNoLgoKMjAwOS0xMC0yMyAxMzoxMzo1MiAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIFJldmVydCAiZ3N0bWVzc2FnZTogQXZvaWQgZXhwZW5zaXZlIHNyYy90eXBlL3RpbWVzdGFtcCBmZXRjaC4iCgkgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNjFjZjkzYTMzNGI3OWEyZDg0OTNlNTMxY2M0NGJhNDVhNDIwOTgwNS4KCjIwMDktMTAtMjMgMTc6NTE6MjcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBnc3RtZXNzYWdlOiBBdm9pZCBleHBlbnNpdmUgc3JjL3R5cGUvdGltZXN0YW1wIGZldGNoLgoJICBJZiB3ZSd2ZSBhbHJlYWR5IGNoZWNrZWQgdGhhdCB3ZSBoYXZlIGEgdmFsaWQgbWVzc2FnZSwgdXNlIHRoZSBlbnRyaWVzCgkgIGRpcmVjdGx5LgoKMjAwOS0xMC0yMyAxNzo0Nzo0MyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGdzdGNhcHM6IFVzZSBpbmxpbmVkIHZlcnNpb24gb2YgX2lzX2FueSgpL19pc19lbXB0eSgpCgkgIENBUFNfSVNfQU5ZIGFuZCBDQVBTX0lTX0VNUFRZIGFyZSB0aGUgZXF1aXZhbGVudCBvZiB0aGVpciBnc3RfY2Fwc18qCgkgIGNvdW50ZXJwYXJ0IGV4Y2VwdCB0aGF0IHRoZXkgYXZvaWQgdGhlIHR5cGVjaGVja2luZyBhbmQgYXJlIGlubGluZWQuCgkgIENBUFNfSVNfRU1QVFlfU0lNUExFIG9ubHkgY2hlY2tzIGZvciBlbXB0eSBjYXBzICh3aXRob3V0IGNoZWNraW5nIGlmCgkgIHRoZSBjYXBzIGlzIEFOWSkuCgoyMDA5LTEwLTIyIDE2OjQyOjEzIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVE9ETzogYWRkIGl0ZW0gdG8gVE9ETyBsaXN0CgkgIFdlIGN1cnJlbnRseSBkbyBhIGxpdHRsZSB0b28gbXVjaCB3b3JrIHdoZW4gd2UgcHVzaCB0aGUgZmlyc3QgYnVmZmVyIGFyb3VuZAoJICByZXN1bHRpbmcgaW4gZXhjZXNzaXZlIGNhcHMgY2hlY2tpbmcuIFdlIGNhbiBwcm9iYWJseSBtYWtlIHRoaXMgYSBsaXR0bGUgbGVzcwoJICBleHBlbnNpdmUuCgoyMDA5LTEwLTIyIDEyOjUyOjQ2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0cGlwZWxpbmU6IFNpbXBsaWZ5IGJhc2UgdGltZSBjaGVja2luZyBzbGlnaHRseQoJICBTaW1wbGlmeSBjaGVja2luZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBiYXNlIHRpbWUgLSBkb24ndCByZS1jaGVjawoJICB0aGUgdmFsdWUgb2YgYSBsb2NhbCB2YXJpYWJsZSB0aGF0IHdhcyBzZXQgMyBsaW5lcyBlYXJsaWVyLgoKMjAwOS0xMC0yMiAxMzoxNToxNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBPcHRpbWlzYXRpb246IEF2b2lkIHR5cGUtY2hlY2tpbmcgaW4gc29ydGluZyBtZXRob2QuCgkgIFdlIGFscmVhZHkga25vdyB0aGUgbGlzdCBvbmx5IGNvbnRhaW5zIHBsdWdpbiBmZWF0dXJlcwoKMjAwOS0xMC0yMiAxMzoxMzo1NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgZ3N0dXJpOiBPcHRpbWlzYXRpb24gOiBDYXN0IHdoZW4gd2UncmUgc3VyZSBvZiB0aGUgdHlwZS4KCSAgQWxzbyBkaXJlY3RseSBhY2Nlc3MgR3N0RWxlbWVudEZhY3RvcnktPnVyaV90eXBlIGluc3RlYWQgb2YgZ29pbmcKCSAgdGhyb3VnaCBhIGZ1bmN0aW9uIHRoYXQgd2lsbCAob25jZSBhZ2FpbikgY2hlY2sgd2hldGhlciBpdCdzIGEKCSAgR3N0RWxlbWVudEZhY3RvcnkKCjIwMDktMTAtMjIgMTI6MzM6MzcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICB0ZXN0cy9mYWtlc2luazogQWRkIHNvbWUgZGVidWdnaW5nCgoyMDA5LTEwLTIyIDEyOjMzOjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgdGVzdHMvZmFla3Npbms6IExvd2VyIHRoZSBudW1iZXIgb2YgdGhyZWFkcyB0byBhdm9pZCB0aW1lb3V0cwoJICBXZSBqdXN0IGVuZCB1cCB3aXRoIHdheSB0b28gbXVjaCBjb250ZW50aW9uIGluIGdsaWIgb3RoZXJ3aXNlLgoKMjAwOS0xMC0xOSAwOTowNjoxNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBnc3RyZWdpc3RyeTogVXNlIGhhc2ggdGFibGUgd2hlbiBmaW5kaW5nIGEgZmVhdHVyZS4gRml4ZXMgIzU5ODg5NQoKMjAwOS0xMC0yMSAxNjoyNjowMSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogaW1wbGVtZW50IGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uCgkgIEltcGxlbWVudCBhIGN1c3RvbSBhY2NlcHRjYXBzIGZ1bmN0aW9uIG9uIHRoZSBzaW5rcGFkLiBXZSBjYW4gYWNjZXB0IGFueSBjYXBzIGFzCgkgIGxvbmcgYXMgaXQgaXMgYWNjZXB0ZWQgYnkgYWxsIGRvd25zdHJlYW0gcGVlciBlbGVtZW50cy4KCjIwMDktMTAtMjEgMTM6Mzg6NTcgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIG11bHRpcXVldWU6IGF2b2lkIGxvY2sgZm9yIHRha2luZyB0aGUgY291bnRlcgoJICBUaGUgY291bnRlciBmb3IgaW5jb21taW5nIGRhdGEgaXMgYWxyZWFkeSBwcm90ZWN0ZWQgd2l0aCB0aGUgU1RSRUFNX0xPQ0sgc28gd2UKCSAgZG9uJ3QgbmVlZCB0byBhZGQgYW5vdGhlciBsb2NrIGFyb3VuZCBpdC4KCjIwMDktMTAtMjAgMjM6Mjg6NTQgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIHJlZ2lzdHJ5OiBoYXNoIHRoZSBwbHVnaW4gYmFzZW5hbWUKCSAgTWFpbnRhaW4gYSBoYXNodGFibGUgb2YgdGhlIHBsdWdpbiBiYXNlbmFtZS4gV2UgY2FuIHRoZW4gdXNlIHRoaXMKCSAgaGFzaHRhYmxlIHRvIHNwZWVkdXAgdGhlIHNlYXJjaCBmb3IgYW4gZXhpc3RpbmcgcGx1Z2luIGFuZCBhdm9pZAoJICBhIHdob2xlIGxvdCBvZiBzdHJjbXAgY2FsbHMuCgoyMDA5LTEwLTIwIDIzOjI3OjQxIC0wNDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5OiBzcGVlZCB1cCBfc3RybGVuCgkgIE1ha2UgdGhlIF9zdHJsZW4gZnVuY3Rpb24gYSBsaXR0bGUgdGlnaHRlcgoKMjAwOS0xMC0yMCAyMTo0Mzo1OCAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogbmFtZSBpcyBuZXZlciBOVUxMCgkgIFdoZW4gbG9va2luZyB1cCBhIGZlYXR1cmUgYnkgbmFtZSwgd2UgbmV2ZXIgY2FsbCB0aGlzIGludGVybmFsCgkgIGZ1bmN0aW9uIHdpdGggTlVMTCBzbyB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGZvciBpdC4KCjIwMDktMTAtMjAgMjE6Mzk6MTEgLTA0MDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IHJlZmFjdG9yIHBsdWdpbiBsb29rdXAKCSAgV2Uga2VlcCBsb29rdXAgcGx1Z2lucyBieSB0aGVpciBiYXNlbmFtZS4gQXZvaWQgY3JlYXRpbmcgYSBiYXNlbmFtZQoJICBmcm9tIGEgZmlsZW5hbWUgaWYgd2UgY2FuLgoKMjAwOS0xMC0yMCAyMTowMTo1NSAtMDQwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogZG8gcXVpY2sgY2hlY2sgZm9yIC4gZmlsZXMKCSAgRG8gYSBxdWljayBjaGVjayBmb3IgLiBmaWxlcyBiZWZvcmUgY2FsbGluZyB0aGUgc3RyY21wIGZ1bmN0aW9ucwoKMjAwOS0xMC0yMCAxMjoyMTowOSAtMDcwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHNvbmdiaXJkbmVzdC5jb20+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0eG1sLmM6CgkgIFJlbW92ZSBleGVjdXRhYmxlIGJpdHMgb24geG1sIHVuaXQgdGVzdC4KCjIwMDktMTAtMTkgMTY6NDc6MTAgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogRml4IGRvY3MgZm9yIGdzdF9jYXBzX3NldF9zaW1wbGUoKQoKMjAwOS0xMC0xOSAxMzowMjozMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogTW9kaWZ5IGRvY3Mgc3RyaW5nIHNsaWdodGx5LgoJICBBcHBhcmVudGx5IHN0YXJ0aW5nIHRoZSBsYXN0IGxpbmUgb2YgYSBkb2NzIHN0cmluZyB3aXRoICdyZXR1cm5zJyBib3RoCgkgIGNvbmZ1c2VzIGFuZCBlbnJhZ2VzIGd0ay1kb2MuIFVzZSBhIHNsaWdodGx5IGRpZmZlcmVudCB3b3JkaW5nIGluc3RlYWQuCgoyMDA5LTEwLTE5IDEyOjI5OjM1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHBsdWdpbmxvYWRlcjogV2hlbiBhIHBsdWdpbiBpcyBibGFja2xpc3RlZCwgb3V0cHV0IGEgR1NUX0VSUk9SIGxpbmUuCgoyMDA5LTEwLTE5IDEzOjMwOjEwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHMvZ3N0LWluc3BlY3Q6IENoZWNrIHdlJ3JlIG5vdCBoYW5kbGluZyBOVUxMIHBvaW50ZXJzLgoKMjAwOS0xMC0xOSAxMzoyOTo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIHRvb2xzL2dzdC1pbnNwZWN0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50CgoyMDA5LTEwLTE0IDEwOjU0OjMyICswMjAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkqIGdzdC9nc3R0cmFjZS5oOgoJICB0cmFjZTogRG8gbm90IHBvaXNvbiBnc3RfdHJhY2VfYWRkX2VudHJ5KCkKCSAgU2luY2UgZ3N0X3RyYWNlX2FkZF9lbnRyeSgpIGlzIGEgbWFjcm8sIGdjYyB3aWxsIGJhcmYgd2hlbiBpdCBpcwoJICBkZWZpbmVkIGluIGNhc2UgaXQgaGFzIGJlZW4gcG9pc29uZWQgZHVlIHRvIHRyYWNlIHN1cHBvcnQgYmVpbmcKCSAgZGlzYWJsZWQuCgoyMDA5LTEwLTE4IDIzOjE4OjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGp1c3QgY2FzdCBpbiBpbnRlcm5hbCBBUEkgd2hlcmUgd2UgaGF2ZSBjaGVja2VkIHBhcmFtZXRlcnMgYWxyZWFkeQoKMjAwOS0xMC0xOCAyMzoxNTowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IHVzZSBnX3NsaWNlIGZvciBjb250cm9sbGVkIHByb3BlcnR5IHN0cnVjdHVyZXMKCSAgVXNlIGdfc2xpZGUgaW5zdGVhZCBvZiBub21hbCBnX25ldywgQWxzbyBkb24ndCBpbml0IHN0cnVjdCB3aXRoIDAgYXMgd2UgbmVlZCB0bwoJICBpbml0IGl0IGFueXdheSB3aXRoIHRoZSByZWFsIHZhbHVlcy4KCSAgQWxzbyBqb2luIHRoZSAzIGZsYWdzIGNoZWNrcyBpbnRvIG9uZS4KCjIwMDktMTAtMTggMTc6MTc6MTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkgIGxpYnMvYmFzZS90eXBlZmluZGhlbHBlcjogUmVtb3ZlIHVzZWxlc3MgdHlwZWNoZWNraW5nIGluIHRpZ2h0IGxvb3AKCSAgVGhlIGxpc3QgYWdhaW5zdCB3aGljaCB3ZSBydW4gdGhlIGNvbXBhcmVmdW5jIHdpbGwgb25seSBjb250YWluCgkgIEdzdFBsdWdpbkZlYXR1cmUsIHRoZXJlZm9yZSByZW1vdmUgdGhlIDYgZXhwZW5zaXZlIHR5cGUgY2hlY2tzIHdlIGRvCgkgIGZvciBldmVyeSBzaW5nbGUgY29tcGFyaXNpb24uCgoyMDA5LTEwLTE2IDEyOjM5OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogZml4IHR5cG8gaW4gZG9jcwoKMjAwOS0xMC0xNiAwOTo0MzowOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB3aW4zMjogQWRkIG5ldyBBUEkgc3ltYm9sCgoyMDA5LTEwLTE2IDEwOjEzOjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDg1ZDE1MzAgdG8gMDcwMmZlMQoKMjAwOS0xMC0wNyAxNTozMjoxOCArMDIwMCAgQmVuamFtaW4gT3R0ZSA8b3R0ZUBnbm9tZS5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBJbXByb3ZlIGNhcHMgc2V0dGVycyBBUEkKCSAgVGhpcyBwYXRjaCBhZGRzIGdzdF9jYXBzX3NldF92YWx1ZSgpIGFuZCBhbGxvd3MgZ3N0X2NhcHNfc2V0X3NpbXBsZSgpIHRvCgkgIHdvcmsgb24gbm9uLXNpbXBsZSBjYXBzLiBTZWUgdGhlIEFQSSBkb2N1bWVudGF0aW9uIGZvciB0aGUgZnVuY3Rpb25zCgkgIGFib3V0IHdoYXQgdGhleSBkby4KCSAgVGhlIGludGVudGlvbiBvZiB0aGVzZSBjaGFuZ2VzIGlzIHRvIGVhc2Ugd29ya2luZyB3aXRoIGNhcHMgaW4gY2FwcwoJICB0cmFuc2Zvcm0gZnVuY3Rpb25zLiBBbiBleGFtcGxlIGZvciB0aGlzIHdvdWxkIGJlIGZmbXBlZ2NvbG9yc3BhY2UsCgkgIHdoZXJlIHRoZSBjYXBzIHRyYW5zZm9ybSBmdW5jdGlvbiBjb3VsZCBiZSBjaGFuZ2VkIHRvIGxvb2sgcm91Z2hseSBsaWtlCgkgIHRoaXMgKHBzZXVkb2NvZGUgYWhlYWQpOgoJICByZXN1bHQgPSBnc3RfY2Fwc19jb3B5ICh0ZW1wbGF0ZV9jYXBzKTsKCSAgdmFsdWUgPSBnc3Rfc3RydWN0dXJlX2dldF92YWx1ZSAoZ3N0X2NhcHNfZ2V0X3N0cnVjdHVyZSAoY2FwcywgMCksCgkgICJ3aWRoIik7CgkgIGdzdF9jYXBzX3NldF92YWx1ZSAocmVzdWx0LCB2YWx1ZSk7CgkgIC8qIHNhbWUgZm9yIGhlaWdodCwgZnJhbWVyYXRlIGFuZCBwYXIgKi8KCSAgcmV0dXJuIGNhcHM7CgkgIHdoaWNoIGlzIG11Y2ggY2xlYW5lciBhbmQgZWFzaWVyIHRvIHVuZGVyc3RhbmQgdGhhbiB0aGUgY3VycmVudCBjb2RlLgoJICBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3NjkwCgoyMDA5LTEwLTAyIDEwOjE1OjU1ICswMjAwICBCZW5qYW1pbiBPdHRlIDxvdHRlQGdub21lLm9yZz4KCgkqIHRlc3RzL2V4YW1wbGVzL3htbC9NYWtlZmlsZS5hbToKCSAgQWRkIFhNTF9MSUJTIHdoZW4gYnVpbGRpbmcgdGVzdHMgdGhhdCB1c2UgeG1sLXNwZWNpZmljIGZ1bmN0aW9ucwoKMjAwOS0xMC0xNSAxNjozNTo1OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vTWFrZXZhcnM6CgkgIHBvOiBEb24ndCBjcmVhdGUgYmFja3VwIC5wbyBmaWxlcwoJICBBcyB3ZWxsIGFzIHByZXZlbnRpbmcgY3JlYXRpb24gb2YgdXNlbGVzcyBiYWNrdXAgZmlsZXMsIGl0IHdvcmtzCgkgIGFyb3VuZCBhIGJ1ZyBpbiBnZXR0ZXh0IDAuMTcgb24gT1MvWAoKMjAwOS0xMC0xNSAxNjozMDozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBmaXggcmFjZSBpbiBQTEFZSU5HLT5QQVVTRUQtPlBMQVlJTkcKCSAgV2hlbiB3ZSBxdWlja2x5IHN3aXRjaCBmcm9tIFBMQVlJTkcgdG8gUEFVU0VEIGFuZCBiYWNrIHRvIFBMQVlJTkcgaXQncyBwb3NzaWJsZQoJICBpbiBzb21lIGNhc2VzIHRoYXQgdGhlIHRhc2sgcmVmdXNlcyB0byBzdGFydCwgVGhpcyBpcyBiZWNhdXNlIHdoZW4gd2UgZ28gdG8KCSAgUEFVU0VELCB3ZSB1bnNjaGVkdWxlIHRoZSBjbG9jayB0aW1lb3V0LCB3aGljaCBjb3VsZCByZXR1cm4gVU5TQ0hFRFVMRUQgd2hlbgoJICB3ZSdyZSBiYWNrIHRvIFBMQVlJTkcsIGNhdXNpbmcgdGhlIHRhc2sgdG8gUEFVU0UgYWdhaW4gd2l0aCBhIHdyb25nLXN0YXRlLgoJICBUaGlzIHBhdGNoIGNoZWNrcyBpZiB3ZSBhcmUgcnVubmluZyB3aGVuIHdlIHJldHVybiB3aXRoIGFuIFVOU0NIRURVTEVEIHJldHVybgoJICB2YWx1ZSBhbmQgaWYgd2UgYXJlLCB0cnkgdG8gY3JlYXRlIGEgbmV3IGJ1ZmZlci4KCSAgRml4ZXMgIzU5NzU1MAoKMjAwOS0xMC0xNSAxMjoxNjowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHByZXNldC5jOgoJICBkb2NzOiBjbGFyaWZ5IHByZXNldCBhcGkgZG9jcwoKMjAwOS0xMC0xNCAxNzo1Nzo0MCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGRvY3M6IGZpeCBjb250cm9sbGVyIHNlY3Rpb25zIGRvY3MKCjIwMDktMTAtMTQgMTA6NDA6NTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDYzODBkNGIgdG8gODVkMTUzMAoKMjAwOS0xMC0xNCAxMDoxNjozMSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IEZpeCBhIGRvY3VtZW50YXRpb24gdHlwbwoKMjAwOS0xMC0xNCAwODo1Nzo1MiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IC4uLmFuZCBhZGQgbWlzc2luZyBlbmRpZgoKMjAwOS0xMC0xNCAwODo1NzowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgYnVpbGQ6IEFsc28gZG9uJ3QgcnVuIG1ha2UgY2hlY2stZXhwb3J0cyBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCjIwMDktMTAtMTQgMDg6NTA6MzEgKzAyMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogTWFrZWZpbGUuYW06CgkgIGJ1aWxkOiBPbmx5IHJ1biBtYWtlIGNoZWNrLWV4cG9ydHMgaWYgbm8gcHVibGljIEFQSSB3YXMgZGlzYWJsZWQKCSAgRml4ZXMgYnVnICM1OTgyOTcuCgoyMDA5LTEwLTE0IDA4OjMwOjA3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBSZXBsYWNlIHJlY3Vyc2l2ZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpIHdpdGggYW4gaXRlcmF0aXZlIHZlcnNpb24KCSAgVGhpcyBpcyBzbGlnaHRseSBtb3JlIGVmZmljaWVudCBiZWNhdXNlIHRoZSBjb21waWxlciBjYW4ndCBkbyB0YWlsCgkgIHJlY3Vyc2lvbiBoZXJlIGFuZCBoYXMgdG8ga2VlcCBhbGwgc3RhY2sgZnJhbWVzLgoJICBOb3QgdGhhdCBlZmZpY2llbmN5IGlzIHRoYXQgaW1wb3J0YW50IGhlcmUgYnV0IEkgYWxyZWFkeSBoYWQKCSAgdGhlIGl0ZXJhdGl2ZSB2ZXJzaW9uIHNvbWV3aGVyZSBlbHNlIGFuZCBib3RoIGFyZSBlYXN5IHRvIHJlYWQuCgoyMDA5LTEwLTE0IDA4OjI5OjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBBZGQgc2ltcGxlIHVuaXQgdGVzdCBmb3IgZ3N0X29iamVjdF9oYXNfYW5jZXN0b3IoKQoKMjAwOS0xMC0xMyAxOToxMjo1MCArMDMwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLjEubXlvaGFuZW5Abm9raWEuY29tPgoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIG5ldGNsaWVudGNsb2NrOiBmaXggdGltZXN0YW1wIGNvbXBhcmlzc2lvbiwgRml4ZXMgIzU5NzQwNwoKMjAwOS0xMC0xMiAyMTo1MTo1NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICBjaGVjazogRGlzYWJsZSB0aGUgdGVzdF9mYWlsX2Fic3RyYWN0X25ldygpIHRlc3QgZW50aXJlbHkgb24gT1MvWAoJICBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcgZnJvbSB0aGUgZnVuY3Rpb24gYmVpbmcgY29tcGlsZWQgYnV0IG5vdAoJICB1c2VkLgoKMjAwOS0xMC0xMiAxNDo1NzozNSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIGRlYnVnOiBNYXJrIHRoZSBHU1RfUE9MTCBzeW1ib2wgYXMgZXh0ZXJuIHRvIGF2b2lkIG11bHRpcGx5LWRlZmluZWQgZXJyb3IKCjIwMDktMTAtMTIgMTQ6NDc6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbiB0byA2MzgwZDRiMzcwZjA3OGYwY2NhNzI0MDQyOGVhOWY2NjM5NTcxZmY1CgoyMDA5LTEwLTEyIDE0OjI0OjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0cG9sbDogTWFrZSB0aGUgbmV3IEdTVF9QT0xMIGRlYnVnIGNvbXBsZXRlbHkgcHJpdmF0ZQoJICBNYWtlIHRoZSBHU1RfUE9MTCBkZWJ1ZyBjYXRlZ29yeSBzeW1ib2wgcHJpdmF0ZSB0byBsaWJnc3RyZWFtZXIsIGFzCgkgIHRoZXJlIHNob3VsZCBiZSBubyBleHRlcm5hbCB1c2VycyBvZiBpdC4KCjIwMDktMTAtMTIgMTQ6MjI6MzQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2tzOiBEaXNhYmxlIGEgZmFpcmx5IHNpbGx5IGdzdG9iamVjdCB0ZXN0IG9uIE9TL1gKCSAgVGhpcyB0ZXN0IHVzZWQgdG8gU0lHQlVTIG9uIE9TL1ggYnV0IG5vdyBTSUdTRUdWJ3MgaW5zdGVhZCBvbgoJICBTbm93IExlb3BhcmQuIEl0J3Mgbm90IHdvcnRoIHRoZSBlZmZvcnQgdG8gZmlndXJlIG91dCB3aGljaCBwbGF0Zm9ybQoJICBzaG91bGQgcHJvZHVjZSB3aGljaCBlcnJvciBmb3Igd2hhdCBpcyBmdW5kYW1lbnRhbGx5IGEgcHJldHR5IHNpbGx5CgkgIHRlc3QsIHNvIGp1c3QgZGlzYWJsZSBpdCBvbiBPUy9YCgoyMDA5LTEwLTEyIDEzOjUwOjUxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJICBsaWJzL2dzdC9jaGVjazogTWFrZSB3cml0aW5nIHRocmVhZHNhZmUuIEJhY2twb3J0ZWQgZnJvbSBsaWJjaGVjayB0cnVuawoKMjAwOS0xMC0xMiAxMzo0OTozNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2Vycm9yLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSAgbGlicy9nc3QvY2hlY2s6IFJ1biBnc3QtaW5kZW50IG9uIGxpYmNoZWNrLgoKMjAwOS0xMC0xMiAxMjowMjozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgZ3N0cGx1Z2lubG9hZGVyOiBEb24ndCB3YWl0IGZvcmV2ZXIgb24gZ3N0X3BvbGxfd2FpdC4KCSAgVGhpcyBhbGxvd3MgdGhlIG1hY29zeCB2ZXJzaW9ucyB0byBwcm9wZXJseSBlcnJvciBvdXQgd2hlbiBmZHMgYXJlIGNsb3NlZC4KCSAgVGhpcyBpcyBvbmx5IGEgdGVtcG9yYXJ5IGZpeCB1bnRpbCB0aGUgcGx1Z2lubG9hZGVyIGlzIHN3aXRjaGVkIHRvIG5vdAoJICB1c2UgR3N0UG9sbCBidXQgR0lPQ2hhbm5lbHMuCgoyMDA5LTEwLTEyIDEyOjAxOjU5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogT25seSB0YWtlIGludG8gYWNjb3VudCBhY3RpdmUgZmRzCgkgIFRoaXMgaXMgbmVlZGVkIHNvIHRoYXQgc2VsZWN0IHByb3Blcmx5IGVycm9ycyBvdXQgb24gbWFjb3N4IChzaWdoKQoKMjAwOS0xMC0xMiAxMDowNzowMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IEFkZCBzb21lIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDA5LTEwLTEyIDEwOjAxOjAxICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogVXNlIHRoZSBlcnJvciBmZHNldCB3aGVuIHVzaW5nIHNlbGVjdC9wc2VsZWN0LgoJICBUaGlzIGlzIG5lZWRlZCB0byBwcm9wZXJseSBkZXRlY3QgZmRzIHRoYXQgYXJlIGNsb3NlZCBvciB0aGF0IGdvdAoJICBhbiBlcnJvcgoKMjAwOS0xMC0xMiAwOTo1MDo0NiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIGdzdHBvbGw6IERvbid0IHVzZSBwb2xsIG9uIHN5c3RlbXMgd2l0aCBicm9rZW4gcG9sbAoKMjAwOS0xMC0xMiAwOTo1MDowMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0cG9sbC5jOgoJICBnc3Q6IEFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkgR1NUX1BPTEwgZm9yIGdzdHBvbGwKCjIwMDktMTAtMTIgMDk6NDc6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZS5hYzogRGV0ZWN0IGJyb2tlbiBwb2xsKCkKCjIwMDktMTAtMDkgMTc6NDQ6MjggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGxldHMga2VlcCAtMSBmb3Igc2VnbWVuc3QgYXMgdGhleSBhcmUgZ3VpbnQ2NCBhbmQgbm90IEdzdENsb2NrVGltZQoKMjAwOS0xMC0wOSAxNzoxMToyNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogdXNlIEdTVF9DTE9DS19USU1FX05PTkUgYW5kIEdTVF9DTE9DS19USU1FX0lTX1ZBTElEIG1vcmUKCjIwMDktMTAtMDggMjM6MTA6NDAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBGaXggdmFsZ3JpbmQgd2FybmluZ3MgYnkgemVyb2luZyBwYWRkaW5nIGJ5dGVzLgoKMjAwOS0xMC0wOCAxNzoxOTozOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIGNoZWNrOiBIb3BlZnVsbHkgZml4IGFuICdtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkJyB3YXJuaW5nIG9uIE9TL1gKCjIwMDktMTAtMDggMTY6MjE6NDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5jOgoJICByZWdpc3RyeWNodW5rczogRml4IGEgZGVidWcgZm9ybWF0IHN0cmluZyBoYXJkZXIgdG8gc2F0aXNmeSBPUy9YJ3MgZ2NjLgoKMjAwOS0xMC0wOCAxNjowNTowOCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkgIHJlZ2lzdHJ5Y2h1bmtzOiBGaXggZm9ybWF0IHN0cmluZyBmb3IgZGVidWcgZXJyb3IgbWVzc2FnZS4KCjIwMDktMTAtMDggMTU6MjE6NDggKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSAgcGx1Z2lubG9hZGVyOiBNb3ZlIHN0ZGluIGFuZCBzdGRvdXQgb3V0IG9mIGhhcm0ncyB3YXkKCSAgSW4gdGhlIHBsdWdpbiBsb2FkZXIgc3VicHJvY2VzcywgbW92ZSBzdGRpbiBhbmQgc3Rkb3V0IHRvIG5ldyBmZCdzCgkgIHNvIHRoYXQgcGx1Z2lucyBwcmludGluZyB0aGluZ3MgZHVyaW5nIHBsdWdpbiBpbml0IG9yICgqZ2FzcCopCgkgIHBvc3NpYmx5IHJlYWRpbmcgZnJvbSBzdGRpbiBkb24ndCBpbnRlcmZlcmUgd2l0aCB0aGUgZGF0YSBzZW50IHRvCgkgIGFuZCBmcm9tIHRoZSBwYXJlbnQuCgoyMDA5LTEwLTA4IDExOjE3OjE0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIHBsdWdpbiBkb2NzOiBBZGQgR1NUX1BMVUdJTl9TQ0FOTkVSIGVudiB2YXIgdG8gdGhlIGluc3BlY3QgZW52aXJvbm1lbnQKCjIwMDktMTAtMDggMTA6NTk6MTUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gMzdmODk4YiB0byBhM2UzY2U0CgoyMDA5LTEwLTA4IDEwOjM5OjI4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGdpdGlnbm9yZXM6IElnbm9yZSB0aGUgYnl0ZXdyaXRlciBjaGVjayBiaW5hcnkKCjIwMDktMTAtMDggMTA6MzY6NTYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogRml4IGVycm9yIGhhbmRsaW5nIGluIHRoZSByZWdpc3RyeSBsb2FkZXIKCSAgV2hlbiB0aGUgcGx1Z2luLXNjYW5uZXIgbG9hZCBmYWlscyAoYmVjYXVzZSB0aGUgaGVscGVyIGNhbid0IGJlCgkgIHNwYXduZWQpLCBtYWtlIHN1cmUgdG8gbG9hZCB0aGUgcGx1Z2luIHRoYXQgZmFpbGVkIGluLXByb2Nlc3MsIHNvCgkgIHRoYXQgYWxsIHBsdWdpbnMgZG8gZ2V0IGxvYWRlZC4KCjIwMDktMTAtMDggMTA6MjY6MjcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IEZpeCB0ZXN0IHJ1biBpbiB0ZXN0cy9leGFtcGxlcy9tYW51YWwKCSAgQWRkIHRoZSBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciB0byB0aGUgY2hlY2sgZW52aXJvbm1lbnQgaGVyZSB0b28KCSAgc28gdGhhdCBpdCBkb2Vzbid0IGZhaWwgd2hlbiBubyBpbnN0YWxsZWQgc2Nhbm5lciBpcyBhdmFpbGFibGUuCgoyMDA5LTEwLTA4IDA5OjM0OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGdzdGluZm86IGFkZCBiYWNrIGZpeCB0aGF0IHNob3VsZG4ndCBoYXZlIGJlZW4gcmV2ZXJ0ZWQKCjIwMDktMTAtMDggMTA6NDc6NDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IG1vcmUgcXVldWUgb3B0aW1pemF0aW9ucwoJICBTcGxpdCBnc3RfcXVldWVfbG9ja2VkX2VucXVldWUoKSBpbnRvIHZhcmlhbnQgZm9yIGJ1ZmZlciBhbmQgZXZlbnQgdG8gZ2V0IHJpZCBvZgoJICB0aGUgaWYoKSBhbmQgbWFrZSB0aGUgY29kZSBtb3JlIHJlYWRhYmxlIChjb25zdGFudCBib29sZWFuIHBhcmFtZXRlcnMgYXJlIG5ldmVyCgkgIG5pY2UpLiBSZW1vdmVzIHRoZSBpZiAoaXRlbSkgY2hlY2tzIGFzIHdlIGRlcmVmZXJlbmNlIHRoZSBwb2ludGVyIGJlZm9yZSBhbnl3YXkuCgkgIEFsc28gYXBwbHkgdGhlIHNhbWUgaWRlYSBvZiByZXVzaW5nIHRoZSBwcmV2aW91cyBrbm93bGVkZ2UgaW4KCSAgZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlIHRvIHJlbW92ZSBtb3JlIHR5cGUgY2hlY2tzLgoKMjAwOS0xMC0wOCAxMDo1MTo0OSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IHNwbGl0IGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldwoJICBTcGxpdCBnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcgaW50byBidWZmZXIgYW5kIGV2ZW50IHZhcmlhbnQgdG8gbWFrZSBzYXZlIGFuIGlmCgkgIGFuZCBtYWtlIGNvZGUgbW9yZSByZWFkYWJsZS4KCjIwMDktMTAtMDggMDg6NTU6NTkgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgcGx1Z2lucy9nc3RmaWxlc3JjOiBNYWtlIGEgZmFzdC1wYXRoIGZvciBsZW5ndGggPT0gMCBidWZmZXIgY3JlYXRpb24uCgkgIElmIHRoZSByZXF1ZXN0ZWQgbGVuZ3RoIGlzIDAsIHdlIGRvbid0IG5lZWQgdG8gcmVhZCBhbnl0aGluZyBmcm9tIHRoZSBmaWxlLgoKMjAwOS0xMC0wOCAwODo1NToyMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5jOgoJICBnc3QvY2hlY2svY29uc2lzdGVuY3ljaGVja2VyOiBDaGVjayB0eXBlIG9mIG1pbmlvYmplY3QgaW4gcHJvYmUKCjIwMDktMTAtMDggMDg6NTM6NTQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGdzdC9iYXNlL2Jhc2VzaW5rOiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBUaGUgY29kZSB3YXMgcHJldmlvdXNseToKCSAgKiBjaGVja2luZyBpZiByZXQgd2FzICE9IE9LCgkgICogLi4gYnV0IGlmIGl0IHdhcyBGTE9XX1NURVAsIHN3aXRoIGl0IHRvIE9LCgkgICogLi4gYW5kIHRoZW4gbm90IHVzaW5nIHJldAoJICBJbnN0ZWFkIHdlIGp1c3QgbWFrZSBpdCBtb3JlIGNvbXBhY3QgYnkgY2hlY2tpbmcgaWYgaXQncyBPSyBvciBTVEVQLgoKMjAwOS0xMC0wOCAwODo1MzoyNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgZ3N0b2JqZWN0OiBSZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBvYmplY3QgaXMgbm8gbG9uZ2VyIHVzZWQgYWZ0ZXIgdGhhdCBsaW5lCgoyMDA5LTEwLTA4IDA4OjUyOjE4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGluZGV4LmM6CgkgIGdzdGluZGV4OiBNYWtlIHN1cmUgd3JpdGVyIGlzIG5vbi1OVUxMLgoJICBGaXhlcyB0aGUgTlVMTCBkZXJlZmVyZW5jZSBhIGZldyBsaW5lcyBsb3dlciAod2hlcmUgaXQgZ2V0cyB0aGUgb2JqZWN0IHR5cGUpLgoKMjAwOS0wOS0yOSAwODoxMzo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2JlbmNobWFya3MvZ3N0YnVmZmVyc3RyZXNzLmM6CgkgIGJlbmNobWFya3M6IENsZWFuIHVwIGdzdGJ1ZmZlcnN0cmVzcy4KCjIwMDktMTAtMDggMDI6NDI6MTYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSAgYmVuY2htYXJrczogRml4IHRoZSBjb21wbGV4aXR5IGFuZCBtYXNzLWVsZW1lbnRzIGJlbmNobWFya3MKCjIwMDktMTAtMDggMDI6MjA6NTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjaGlsZHByb3h5LmM6CgkgIGNoZWNrczogRml4IHN0cmluZyBsZWFrcyBpbiB0aGUgbmV3IGNoaWxkcHJveHkgdGVzdAoKMjAwOS0xMC0wOCAwMjowMzowOCArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogSWdub3JlIGFuIGVtcHR5IGRlcGVuZGVuY3kgbGlzdC4KCSAgSWYgYSBwbHVnaW4gcmVnaXN0ZXJzIGFuIGVtcHR5IGRlcGVuZGVuY3kgc2V0LCBqdXN0IGlnbm9yZSBpdCByYXRoZXIKCSAgdGhhbiBzZXJpYWxpc2luZyBhbmQgY2hlY2tpbmcgYW4gZW1wdHkgc2V0LgoKMjAwOS0xMC0wOCAwMjowMTo1NCArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSAgcmVnaXN0cnljaHVua3M6IEZpeCBvZmYtYnktb25lIGVycm9yLiBJbXByb3ZlIGRlYnVnLgoJICBGaXggYW4gb2ZmLWJ5LW9uZSBlcnJvciBpbiB0aGUgc2l6ZSBndWFyZCBmb3IgdW5wYWNrX2VsZW1lbnQsIGFuZAoJICBpbXByb3ZlIHZhcmlvdXMgZGVidWcgc3RhdGVtZW50cyBpbiB0aGUgZmFpbHVyZSBwYXRocy4KCSAgQWxzbywgc3dhcCBzb21lIGdfbmV3MCB0byBnX21hbGxvYzAgZm9yIHRoZSBmdW4gb2YgaXQuCgoyMDA5LTEwLTA3IDE2OjAyOjU4IC0wNzAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAc29uZ2JpcmRuZXN0LmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IFVzZSBfd2ZvcGVuIG9uIHdpbjMyIHRvIG9wZW4gZmlsZXMgd2l0aCBub24tYXNjaWkgZmlsZW5hbWVzIGNvcnJlY3RseS4KCjIwMDktMTAtMDcgMjM6MzE6MjAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgZG9jczogZml4IFNpbmNlOiB0YWdzIGluIGRvY3MgZm9yIG5ld2x5LWFkZGVkIEFQSQoKMjAwOS0xMC0wOCAwMDowODo0NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogcmV2ZXJ0IHR3byBvZiB0aGUgY2hhbmdlcwoJICBJdCBvbmx5IG5lZWRlZCBmb3IgdGhlIG5vbiBjb25zdGFudCBzdHJpbmcuCgoyMDA5LTEwLTA3IDIzOjM2OjQ1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiB1c2UgYSAiJXMiIGZvcm1hdCBzdHJpbmcgd2hlbiBwcmludGluZyB0aGUgbWVtb3J5IGR1bXAgbGluZQoJICBXZSBrbm93IHRoYXQgdGhlIGNvbnRlbnQgaXMgc2F2ZSwgYnV0IHRoZSBjb21waWxlciBkb2VzIG5vdC4KCjIwMDktMTAtMDcgMjM6MjM6MDggKzAzMDAgIFJvYiBDbGFyayA8cm9iQHRpLmNvbT4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlOiBkb24ndCBmb3JtYXQgdGhlIHN0cmluZyB0d2ljZQoJICBXZSB3ZXJlIGZvcm1hdHRpbmcgdGhlIHN0cmluZyBvbmNlIGFuZCB0aGVuIHBhc3NpbmcgdGhlIHN0cmluZyBhcyBhIGZvcm1hdAoJICBzdHJpbmcgdG8gdGhlIGxvZyBmdW5jdGlvbnMuCgoyMDA5LTEwLTA3IDExOjQzOjU0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBwYWQ6IGFkZCB2YXJpYW50cyBvZiBnc3RfcGFkX2dldF9jYXBzKCkgdGhhdCBkb24ndCBjb3B5IGNhcHMuIEZpeGVzICM1OTA5NDEKCSAgSW4gbW9zdCBwbGFjZXMgaW4gY29yZSBhbmQgYmFzZWNsYXNzZXMgd2UganVzdCBuZWVkIHRoZSBjYXBzIHRvIGRvIGNhcHMtCgkgIGludGVyc2VjdGlvbnMuIEluIHRoYXQgY2FzZSByZWYnZWQgY2FwcyBhcmUgZW5vdWdoIChubyBuZWVkIHRvIGNvcHkpLgoJICBUaGlzIHBhdGNoIGFsc28gc3dpdGNoZXMgdGhlIGNvZGUgdG8gdXNlIHRoZSBuZXcgZnVuY3Rpb25zLgoJICBBUEk6IGdzdF9wYWRfZ2V0X2NhcHNfcmVmZWQoKSwgZ3N0X3BhZF9wZWVyX2dldF9jYXBzX3JlZmVkKCkKCjIwMDktMDktMjYgMjM6NDM6MzcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogYWRkIGdob3N0cGFkIHRlc3QgZm9yIHNldHRpbmcgdGFyZ2V0IGFnYWluIGFmdGVyIHBhZCBpcyBsaW5rZWQKCjIwMDktMDktMjYgMjM6NDI6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICB0ZXN0czogcmVtb3ZlIGVtcHR5IGxpbmVzIGZyb20gd3JvbmcgaW5kZW50IHJ1bgoKMjAwOS0xMC0wNyAyMDozODo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkgIGNoZWNrOiBGaXggY29tcGlsYXRpb24gb2YgdGhlIGJ5dGV3cml0ZXIgdGVzdAoKMjAwOS0xMC0wNyAxODowNzoyNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IGJ5dGUgd3JpdGVyIGFuZCByZWFkZXIgQVBJIHRvIC5kZWYgZmlsZQoJICBBUEk6IGdzdF9ieXRlX3dyaXRlcl8qKCkKCjIwMDktMDgtMjAgMTQ6MjQ6MTkgLTA3MDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEBzb25nYmlyZG5lc3QuY29tPgoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgIGVsZW1lbnRmYWN0b3J5OiBmaXggc3BlbGxpbmcgaW4gY29tbWVudAoKMjAwOS0xMC0wNyAxODo0MDo0NiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogZmx1c2ggcXVldWUgdXBvbiBmYXRhbCBmbG93cmV0dXJuIGFuZCByZWxlYXNlIHVwc3RyZWFtIHRocmVhZAoKMjAwOS0wOS0yMiAxNTo0NDozMSArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBkYXRhcXVldWU6IGZpeCBBUEkgZG9jdW1lbnRhdGlvbiB0eXBvCgoyMDA5LTEwLTA3IDE4OjM3OjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGJ5dGV3cml0ZXI6IEFkZCB0byB0aGUgZG9jcwoKMjAwOS0xMC0wNSAxMToyNDozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svbGlicy9ieXRld3JpdGVyLmM6CgkgIGJ5dGV3cml0ZXI6IEFkZCB1bml0IHRlc3QKCjIwMDktMTAtMDMgMTM6MzA6NTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYmFzZS9nc3RieXRld3JpdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXdyaXRlci5oOgoJICBieXRld3JpdGVyOiBBZGQgYSBnZW5lcmljIGJ5dGUgd3JpdGVyCgkgIEZpeGVzIGJ1ZyAjNTkwNjY5LgoKMjAwOS0xMC0wMyAxNTo1NzowNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkgIGJpdHJlYWRlci9ieXRlcmVhZGVyOiBBUEk6IEFkZCBnc3RfKGJpdHxieXRlKV9yZWFkZXJfZ2V0X3NpemUoKQoJICAuLi4gYW5kIEdTVF8oQllURXxCSVQpX1JFQURFUigpIGNhc3RzLgoKMjAwOS0xMC0wMyAxMjozNDo1NCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJpdHJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcixiaXRyZWFkZXI6IFJlbW92ZSBGSVhNRSAwLjExIHRvIHJlbW92ZSBub24taW5saW5lZCBmdW5jdGlvbnMKCSAgVGhlIG5vcm1hbCBmdW5jdGlvbnMgYXJlIGFsd2F5cyB1c2VmdWwgdG8gaGF2ZSBmb3IgYmluZGluZ3MsIGVzcGVjaWFsbHkKCSAgcnVudGltZS1jcmVhdGVkIGJpbmRpbmdzIGxpa2UgU2VlZCBvciBuZXcgR09iamVjdC1JbnRyb3NwZWN0aW9uIGJhc2VkCgkgIFB5dGhvbiBiaW5kaW5ncy4KCjIwMDktMTAtMDcgMTY6MzY6MzEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICBjaGVjazogQXR0ZW1wdCB0byBmaXggdHlwZS1wdW5uaW5nIHdhcm5pbmcgaW4gdGhlIGdzdGl0ZXJhdG9yIHRlc3QKCjIwMDktMTAtMDcgMTY6MDA6MTIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6CgkgIGNoZWNrOiBNYWtlIHN1cmUgdG8gaW5pdCB0aGUgZGF0YXByb3RvY29sIGxpYi4KCSAgQ2FsbCB0aGUgZ3N0X2RwX2luaXQoKSBmdW5jdGlvbiB0byBlbnN1cmUgdGhhdCB0aGUgZGVidWcKCSAgY2F0ZWdvcnkgaXMgaW5pdGlhbGlzZWQsIHRvIGF2b2lkIGdfY3JpdGljYWxzIHdoZW4gcnVubmluZyB3aXRoCgkgIEdTVF9ERUJVRz01CgoyMDA5LTEwLTA3IDE1OjQ3OjQ1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJICBjaGVjazogVXNlIEdTVF9ERUJVRyBpbnN0ZWFkIG9mIGdfbWVzc2FnZSBpbiB0aGUgZ2RwIHRlc3QKCjIwMDktMTAtMDcgMTU6MTQ6NDYgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogQWRkIEdTVF9QTFVHSU5fU0NBTk5FUiBlbnYgdmFyIHRvIHRoZSBjaGVjayBlbnZpcm9ubWVudAoKMjAwOS0xMC0wNyAxNDozNDoxNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGltcHJvdmUgcGx1Z2luIGxvYWRlciBmYWlsdXJlIG1lc3NhZ2UgZm9yIHVuaW5zdGFsbGVkIHNldHVwcwoJICBFdmVyeW9uZSBydW5uaW5nIGFuIHVuaW5zdGFsbGVkIGdpdCBzZXR1cCBpcyBnb2luZyB0byB3b25kZXIgYWJvdXQKCSAgdGhpcyBmYWlsdXJlIG5leHQgdGltZSB0aGV5IHVwZGF0ZSwgc28gbGV0J3MgbWVudGlvbiB0aGUgc29sdXRpb24KCSAgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCgoyMDA5LTEwLTA3IDEzOjU5OjQ3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogQmVlZiB1cCB0aGUgdGVzdCBmb3IgX191aW50MTI4X3Qgb24gR0NDCgkgIEdDQyAzLjQuMyBvbiB0aGUgU1BBUkMgYnVpbGRib3QgY3Jhc2hlcyB3aGVuIGFjdHVhbGx5CgkgIHVzaW5nIF9fdWludDEyOF90LiBCZWVmIHVwIHRoZSBjb25maWd1cmUgdGVzdCB0byBkZXRlY3QgdGhhdCB0aGUKCSAgdHlwZSBpcyBhY3R1YWxseSB1c2FibGUuCgoyMDA5LTEwLTA3IDA5OjU2OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgd2luMzI6IGFkZCBuZXcgQVBJIHRvIC5kZWYgZmlsZQoJICBBbmQgYWRkIEFQSTogbWFya2VyIGluIGNvbW1pdCBtZXNzYWdlIHRoYXQgd2FzIG9taXR0ZWQgaW4gdGhlIG9yaWdpbmFsCgkgIGNvbW1pdDoKCSAgQVBJOiBnc3RfZGF0YV9xdWV1ZV9uZXdfZnVsbCgpCgoyMDA5LTEwLTA3IDA5OjU1OjE1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSAgYmVuY2htYXJrczogYWRkIGJ1ZmZlcnN0cmVzcyBiaW5hcnkgdG8gLmdpdGlnbm9yZQoKMjAwOS0xMC0wNyAwOTo0Mjo1NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkgIGNvbmZpZ3VyZTogYnVtcCBHTGliIHJlcXVpcmVtZW50IHRvIDIuMTgKCSAgQnVtcCBHTGliIHJlcXVpcmVtZW50IGFzIHBlciB0aGUgcmVsZWFzZSBwbGFubmluZyBkb2NzLgoKMjAwOS0xMC0wNyAxMDozNzozOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIG1lc3NhZ2U6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMTAtMDcgMTE6MTI6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGZsaXAgdGhlIEdfVU5MSUtFTFkKCSAgSXRzIGxpa2VseSB0aGF0IHdlIGhhdmUgY2FwcyBhbmQgdW5saWtlbHkgKGVycm9yKSBvdGhlcndpc2UuCgoyMDA5LTEwLTA3IDExOjA0OjU2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBkb2NzOiBhZGQgbmV3IHF1ZXVlIGFwaSB0byB0aGUgZG9jcyB0byBmaXggdGhlIGJ1aWxkCgoyMDA5LTA5LTI4IDE1OjI1OjIyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIHBsdWdpbnMvbXVsdGlxdWV1ZTogQXZvaWQgaW5zdGFuY2UgY2hlY2sKCSAgV2Uga25vdyBlYXJsaWVyIG9uIGluIHRoZSBjb2RlIHdoZXRoZXIgd2UncmUgaGFuZGxpbmcgYW4gZXZlbnQgb3IgYSBidWZmZXIsCgkgIGp1c3QgcGFzcyB0aGF0IGluZm9ybWF0aW9uIHRocm91Z2guCgkgIFRoaXMgY29tbWl0IGFuZCB0aGUgcHJldmlvdXMgY29tbWl0IHJlZHVjZSBpbnN0cnVjdGlvbiBmZXRjaDoKCSAgKiB3aGVuIHB1c2hpbmcgYnVmZmVyIChfY2hhaW4pIGJ5IDEwJQoJICAqIHdoZW4gcG9wcGluZyBidWZmZXIgKF9sb29wKSBieSAzJQoKMjAwOS0wOS0yOCAxNToyNDowMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBwbHVnaW5zL211bHRpcXVldWU6IENhY2hlIGlucHV0L291dHB1dCB0aW1lLCBhdm9pZCBleHBlbnNpdmUgY2FsbHMuCgkgICogQ2FjaGUgdGhlIGlucHV0L291dHB1dCB0aW1lCgkgICogT25seSByZWNhbGN1bGF0ZSBpdCB3aGVuIG5lZWRlZC4KCSAgQXZvaWRzIDUwJSBjYWxscyB0byBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUKCjIwMDktMTAtMDcgMTA6MDA6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1pbml0LnhtbDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RjbG9ja3N0cmVzcy5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdHBvbGxzdHJlc3MuYzoKCSogdGVzdHMvZXhhbXBsZXMvbGF1bmNoL21wM3BhcnNlbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgYnVpbGQ6IHNwcmludGYsIHNzY2FuZiBuZWVkIHN0ZGlvLmgKCjIwMDktMTAtMDUgMTE6NDY6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgY2hpbGRwcm94eTogaW5pdGlhbGl6ZSBndmFsdWUgaW4gX3ZhbGlzdCBmdW5jdGlvbi4gRml4ZXMgIzU5NTYwMgoJICBSZWZsb3cgdGhlIGNvZGUgdG8gbW92ZSBlcnJvciBoYW5kbGluZyB0byB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbnMuIEluaXRpYWxpemUKCSAgZ3ZhbHVlIGxpa2Ugd2UgZG8gaW4gdGhlIHNldHRlci4gQWRkIGEgdW5pdC10ZXN0IG1vZHVsZSB3aXRoIHR3byBzaW1wbGUgdGVzdHMKCSAgdGhlIGNhdGNoZSB0aGlzIGJ1Zy4KCjIwMDktMTAtMDEgMTc6Mzk6NDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBwYWQ6IGRvbid0IGludGVyc2VjdCB3aXRoIGFueSBpbiBwcm94eV9wYWRfZ2V0X2NhcHMKCSAgV2UgaW5pdGlhbGl6ZSB0aGUgY2FwcyB3aXRoIGFueSBhbmQgaWYgYSBwYWQgaGFzIE5VTEwgY2FwcywganVzdCBza2lwIGl0IGluc3RlYWQKCSAgb2YgaW50ZXJzZWN0aW5nIHdpdGggYW55LiBBbHNvIGFkZCBicmFuY2ggcHJlZGljdGlvbiBoZXJlLgoKMjAwOS0wOS0zMCAxNjo0MTowNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IHJlbmFtZSBhZ2dyZWdhdG9yIHRvIGFkZGVyIGluIHRoZSBkb2NzLgoKMjAwOS0wOS0zMCAwOTo0NzoyMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBtYW46IGZpeCBjb3B5IGFuZCBwYXN0IG1pc3Rha2UgZm9yIC1xIG9wdGlvbgoKMjAwOS0xMC0wNyAwOTo1NDo0MSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogRXh0ZW5kIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBhbGxvdyB1c2luZyBhbiB1bmluc3RhbGxlZCBnc3RyZWFtZXItc2hhcnAKCjIwMDktMDktMjggMTU6MTk6NDQgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBVc2UgbmV3IEdzdERhdGFRdWV1ZSBjb25zdHJ1Y3RvcgoKMjAwOS0wOS0yOCAxNToxODozNyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGdzdGRhdGFxdWV1ZTogbmV3IGNvbnN0cnVjdG9yIHdoaWNoIHRha2VzIGNhbGxiYWNrcy4KCSAgVGhpcyBhbGxvd3MgdXMgdG8gYXZvaWQgZ29pbmcgdGhyb3VnaCBnbGliJ3Mgc2lnbmFsbGluZyBzeXN0ZW0KCjIwMDktMDktMjggMTM6MTk6MTAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgcGx1Z2lucy9tdWx0aXF1ZXVlOiBVc2UgY2FjaGVkIHZhbHVlIGluc3RlYWQgb2YgZXhwZW5zaXZlIG9iamVjdCBnZXQuCgkgIFRoZSB0YXNrIHdpbGwgYWx3YXlzIGV4aXN0IGFzIGxvbmcgYXMgaXRzIG93bmVyIChpLmUuIHRoZSBwYWQpIGFuZCB0aGF0CgkgIG93bmVyJ3Mgb3duZXIgKGkuZS4gbXVsdGlxdWV1ZSkgZXhpc3QuCgkgIFJlZHVjZXMgdGhlIG51bWJlciBvZiBpbnN0cnVjdGlvbiBmZXRjaGVzIGJ5IDM2JS4KCjIwMDktMDktMjggMTU6NDE6NTIgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHBsdWdpbnMvcXVldWU6IFVzZSBwcmV2aW91cyBrbm93bGVkZ2Ugb2YgZGF0YSB0eXBlIHRvIGF2b2lkIHR5cGVjaGVjay4KCSAgV2Uga25vdyB3aGV0aGVyIHdlIGhhdmUgYSBidWZmZXIgb3IgYW4gZXZlbnQsIHVzZSB0aGF0IGluc3RlYWQgb2YgZ29pbmcKCSAgdHJvdWdoIHRoZSBleHBlbnNpdmUgR0xpYiB0eXBlY2hlY2suCgkgIFRoZSBvdmVyYWxsIGluc3RydWN0aW9uIGZldGNoIHJlZHVjdGlvbiBpbnRyb2R1Y2VkIGJ5IHRoaXMgY29tbWl0IGFuZCB0aGUKCSAgMiBwcmV2aW91cyBjb21taXRzOgoJICAqIHJlY2VpdmluZyBhIGJ1ZmZlciAoX2NoYWluKSBieSAyMCUKCSAgKiBwb3BwaW5nIGEgYnVmZmVyIChfbG9vcCkgYnkgMTQlCgkgIE51bWJlcnMgYWNxdWlyZWQgdGhyb3VnaCBjYWxsZ3JpbmQgcGFzc2luZyAxMDAwMDAgYnVmZmVycyB0aHJvdWdoIHF1ZXVlLgoKMjAwOS0wOS0yOCAxNToyMDowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBwbHVnaW5zL3F1ZXVlOiBBdm9pZCB1c2VsZXNzIHNlZ21lbnRfdG9fcnVubmluZ190aW1lKCkgY2FsY3VsYXRpb25zLgoJICAqIENhY2hlIHNyYyBhbmQgc2luayB0aW1lCgkgICogVXNlIGEgYm9vbGVhbiB0byBrbm93IHdoZXRoZXIgc3JjL3NpbmsgdGltZSBuZWVkIHRvIGJlIHJlY2FsY3VsYXRlZAoJICBBdm9pZHMgNTAlIGNhbGxzIHRvIGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSgpCgoyMDA5LTA5LTI4IDEzOjIxOjA3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBwbHVnaW5zL3F1ZXVlOiBKdXN0IGNhc3QgdG8gdGhlIG9iamVjdCBwYXJlbnQgaW5zdGVhZCBvZiB0eXBlY2hlY2tpbmcuCgoyMDA5LTA5LTIzIDE2OjE5OjMyICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9nc3RidWZmZXJzdHJlc3MuYzoKCSAgYmVuY2htYXJrOiBOZXcgYmVuY2htYXJrIGZvciB0ZXN0aW5nIGNvbnRlbnRpb24gd2hlbiBjcmVhdGluZyBidWZmZXJzCgoyMDA5LTA5LTIzIDE2OjE3OjA5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBEb24ndCBhY3RpdmF0ZSB0cmFjaW5nIGlmIG5vdCByZXF1ZXN0ZWQuCgoyMDA5LTEwLTA3IDA4OjM3OjA1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6CgkgIHRlc3RzOiBpbml0IG1vcmUgdmFyaWFibGVzIHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgb24gb3N4CgkgIEluaXQgdmFyaWFibGUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBhbmQgbWFrZSB0aGUgYnVpbGQgYm90IGhhcHB5CgkgICh0aGUgY29tcGlsZXIgbW9zdCBsaWtlbHkgY29tcGxhaW5zIGFib3V0IHRoaXMgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cKCSAgaGVyZSB0aGF0IGZhaWxfdW5sZXNzIHdpbGwgYWJvcnQvZXhpdCBpbiB0aGUgcGF0aCB3aGVyZSBpdCBmYWlscykuCgoyMDA5LTA5LTI2IDExOjQzOjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBJbXByb3ZlIGl0ZXJhdGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24KCSAgUGFkcyBoYXZlIHRoZWlyIEdzdFNpbmdsZVF1ZXVlIHN0b3JlZCBhcyBlbGVtZW50IHByaXZhdGUgZGF0YQoJICBzbyB0aGVyZSdzIG5vIG5lZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIHNpbmdsZSBxdWV1ZXMKCSAgZXZlcnkgdGltZS4gQWxzbyBldmVyeSBwYWQgb25seSBoYXMgYSBzaW5nbGUgaW50ZXJuYWwgbGluayBzbwoJICB1c2UgYSBzaW5nbGUgaXRlcmF0b3IgaW5zdGVhZCBvZiBhIGNvbXBsZXggY3VzdG9tIGl0ZXJhdG9yLgoJICBTZXQgdGhlIGVsZW1lbnQgcHJpdmF0ZSBkYXRhIG9mIHRoZSBwYWQgdG8gTlVMTCB3aGVuIGZyZWVpbmcgdGhlCgkgIHNpbmdsZSBxdWV1ZS4KCjIwMDktMDktMTcgMTY6MzA6NDMgLTA0MDAgIEpvaGFuIEJpbGllbiA8am9iaUBsaXRsLmNvbT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBpbnRyb3NwZWN0aW9uOiBBZGQgYW5ub3RhdGlvbnMgZm9yIGdzdF9lbGVtZW50X3F1ZXJ5X3tkdXJhdGlvbixwb3NpdGlvbn0KCSAgRml4ZXMgYnVnICM1OTU1MTEuCgoyMDA5LTEwLTA1IDAwOjExOjIwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZSB2ZXJzaW9uIG9mIGdzdF9ieXRlX3JlYWRlcl9za2lwCgoyMDA5LTEwLTA3IDAwOjQ3OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSB0cmFuc2xhdGlvbiBmaWxlcyBmb3IgbmV3IGFuZCBjaGFuZ2VkIHN0cmluZ3MKCjIwMDktMDktMjggMjI6NDM6NTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHRha2UgbG9ja3MgYXJvdW5kIHNtYWxsZXIgc2VjdGlvbgoJICBXZSBkb24ndCBuZWVkIHRoZSBob2xkIHRoZSBwcm94eSBtdXRleCBsb2NrZWQgZm9yIGdldHRpbmcgdGhlIGludGVybmFsIHBhZCBhbmQKCSAgZm9yIGxpbmtpbmcgdGhlIG5ldyB0YXJnZXQgcGFkIHdoZW4gd2UgcmV0YXJnZXQuIFNvIHRha2UgdGhlIGxvY2sgYSBsaXR0bGUgbGF0ZXIKCSAgYW5kIHJlbGVhc2UgaXQgZWFybGllci4KCSAgRml4ZXMgIzU5NjM2NgoKMjAwOS0xMC0wNCAxOTo1MTo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgdGVzdHM6IGluaXQgdmFyaWFibGUgdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZyBvbiBvc3gKCSAgSW5pdCB2YXJpYWJsZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5nIGFuZCBtYWtlIHRoZSBidWlsZCBib3QgaGFwcHkKCSAgKHRoZSBjb21waWxlciBtb3N0IGxpa2VseSBjb21wbGFpbnMgYWJvdXQgdGhpcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdwoJICBoZXJlIHRoYXQgZmFpbF91bmxlc3Mgd2lsbCBhYm9ydC9leGl0IGluIHRoZSBwYXRoIHdoZXJlIGl0IGZhaWxzKS4KCjIwMDktMTAtMDMgMjE6MDg6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHhtbC5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBnc3Q6IHJlbW92ZSBtb3JlIHVubmVjZXNzYXJ5IGNhc3Qgd2hlbiB1c2luZyBnX3NpZ25hbF8qKCkKCjIwMDktMTAtMDMgMjA6NDk6NTQgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBkYXRhcXVldWUsIGVsZW1lbnRzOiBhdm9pZCB1bm5lY2Vzc2FyeSBydW50aW1lIHR5cGUgY2hlY2tzCgoyMDA5LTEwLTA1IDE2OjQxOjUwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBVcGRhdGUgdGhlIHJlbGVhc2Ugc2NyaXB0CgkgIFJlbW92ZSBvbGQgY3J1ZnQgZnJvbSB0aGUgcmVsZWFzZSBzY3JpcHQsIGFuZCBjaGFuZ2Ugc29tZSBDVlMKCSAgcmVmZXJlbmNlcyB0byBlcXVpdmFsZW50IGdpdCBjb21tYW5kcwoKMjAwOS0xMC0wNCAxNDozMDozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJICBwbHVnaW5sb2FkZXI6IEFkZCBhIG1hZ2ljIG51bWJlciBhbmQgbWF4aW11bSBzaXplIGxpbWl0LgoJICBHdWFyZCBhZ2FpbnN0IGEgaG9zdGlsZSBjaGlsZCBwcm9jZXNzIHRoYXQgc2VuZHMgYm9ndXMgZGF0YQoJICBkdWUgdG8gbWVtb3J5IGNvcnJ1cHRpb24gYnkgYWRkaW5nIGEgbWFnaWMgbnVtYmVyIHRvIGVhY2ggcGFja2V0LAoJICBhbmQgbGltaXQgdGhlIG1heGltdW0gc2l6ZSBvZiBhbnkgbWVzc2FnZSB0byAzMk1CCgoyMDA5LTAyLTA5IDEzOjMzOjA3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2lubG9hZGVyLmM6CgkgIHJlZ2lzdHJ5OiBBbHNvIGNoZWNrIHRoZSBiaW5hcnkgcmVnaXN0cnkgY2h1bmsgdmVyc2lvbiBvZiB0aGUgY2hpbGQuCgkgIFdoZW4gdHJ5aW5nIHRvIGZpbmQgYSBmdW5jdGlvbiBwbHVnaW4tc2Nhbm5lciwgaW5jbHVkZSBhIGNoZWNrIG9uIHRoZQoJICB2ZXJzaW9uIG9mIHRoZSBiaW5hcnkgcmVnaXN0cnkgY2h1bmtzIGl0IHNlbmRzLCB0byBtYWtlIHN1cmUgaXQncwoJICB3aGF0IHdlIHVuZGVyc3RhbmQuCgoyMDA5LTAyLTA2IDA5OjQ5OjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJICByZWdpc3RyeTogU3VwcG9ydCBpbnN0YWxsZWQvdW5pbnN0YWxsZWQgcGx1Z2luLXNjYW5uZXIgaGVscGVyCgkgIEFkZCBhIHNpbXBsZSB2ZXJzaW9uIGNoZWNrIHdoZW4gc3RhcnRpbmcgdGhlIHBsdWdpbi1zY2FubmVyIHNvIHdlIGNhbgoJICB2ZXJpZnkgd2UncmUgdGFsa2luZyB0byBvbmUgdGhhdCB0YWxrcyB0aGUgc2FtZSBsYW5ndWFnZS4KCSAgRmlyc3QgdHJ5IGEgcGx1Z2luLXNjYW5uZXIgaW4gdGhlIGluc3RhbGxlZCBwYXRoLCB0aGVuIHRyeSBvbmUgdmlhIHRoZQoJICBHU1RfUExVR0lOX1NDQU5ORVIgZW52IHZhciBpZiB0aGF0IGRvZXNuJ3Qgd29yay4KCSAgVXBkYXRlIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQuCgkgIEluc3RhbGwgdGhlIHBsdWdpbi1zY2FubmVyIHRvIHRoZSBsaWJleGVjIGRpcgoKMjAwOS0wMS0zMCAxNDoxODoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUmVtb3ZlIGNoZWNraW5nIGZvciBhbmQgbWVudGlvbnMgb2YgZm9yayB3aGVyZSBwb3NzaWJsZS4KCSAgV2Ugbm8gbG9uZ2VyIHVzZSBmb3JrKCkgZGlyZWN0bHksIGluc3RlYWQgdXNpbmcgZ2xpYidzIHNwYXduCgkgIGZ1bmN0aW9uYWxpdHksIHNvIGRvbid0IGNoZWNrIGZvciBpdCwgYW5kIGRvbid0IHVzZSBpdCBpbiB0aGUKCSAgZG9jdW1lbnRhdGlvbiBub3Rlcy4KCjIwMDktMDEtMzAgMTM6MDY6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICBSZS1lbmFibGUgYW5kIGZpeCBkaXNhYmxlZCBiaXQgb2YgdGhlIHJlZ2lzdHJ5IHRlc3QKCjIwMDktMDEtMzAgMTM6MDQ6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBPbmx5IGxvYWQgdGhlIHJlZ2lzdHJ5IGNhY2hlIG9uY2UgcGVyIHByb2Nlc3MuCgkgIFdoZW4gdXBkYXRpbmcgdGhlIHJlZ2lzdHJ5LCB3ZSBkb24ndCBuZWVkIHRvIHJlLXJlYWQgdGhlIHJlZ2lzdHJ5IGNhY2hlCgkgIGFuZCB3YXN0ZSB0aW1lIHJlcGxhY2luZyBhbGwgb3VyIGV4aXN0aW5nLCBob3BlZnVsbHkgaWRlbnRpY2FsLCBwbHVnaW5zCgkgIGFuZCBmZWF0dXJlcyB0aGF0IHdlJ3JlIGFib3V0IHRvIHJlLXNjYW4gYW55d2F5LgoKMjAwOS0wMS0yOSAxMzoyMjoxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyB0aGUgcmVnaXN0cnkuCgkgIEFkZCB0aGUgZnVsbCBzZXQgb2YgZGVidWcgYWJvdXQgd2h5IGl0J3MgZGVjaWRlZCB0aGF0IGEgZ2l2ZW4gcGx1Z2luIGlzCgkgIHN0YWxlIG9yIG5vdCwgYW5kIGluY2x1ZGUgdGhlIHBsdWdpbiBuYW1lIHdoZW4gZmluYWxpemluZyBpdC4KCjIwMDktMDEtMjMgMjE6MTU6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5jOgoJKiBnc3QvZ3N0cmVnaXN0cnljaHVua3MuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgQWRkIHJlc3RhcnRpbmcgb2YgdGhlIHBsdWdpbiBsb2FkZXIgYW5kIGJsYWNrbGlzdGluZyBvZiBicm9rZW4gZmlsZXMKCjIwMDktMDEtMjMgMTU6NDc6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgUGx1Z2luIGxvYWRlciBwaGFzZSAyCgkgIHBoYXNlIDIgLSBtYWtlIHRoZSBwbHVnaW4gbG9hZGVyIHJlY2VpdmUgdGhlIGxpc3Qgb2YgcGx1Z2lucyB0byBsb2FkIGFuZAoJICBzZW5kIGJhY2sgdGhlIHJlc3VsdHMgYXN5bmNocm9ub3VzbHksIHNvIHdlIGRvbid0IGNvbnRleHQgc3dpdGNoIGJhY2sKCSAgYW5kIGZvcnRoIHNvIG11Y2guCgoyMDA5LTAzLTE0IDIzOjA3OjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RwbHVnaW5sb2FkZXIuYzoKCSogZ3N0L2dzdHBsdWdpbmxvYWRlci5oOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Y2h1bmtzLmM6CgkqIGdzdC9nc3RyZWdpc3RyeWNodW5rcy5oOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvaGVscGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9oZWxwZXJzL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9oZWxwZXJzL3BsdWdpbi1zY2FubmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IEFkZCByZWdpc3RyeSBoZWxwZXIgcGhhc2UgMQoJICBQaGFzZSAxIG9mIGFkZGluZyB0aGUgcmVnaXN0cnkgc2NhbiBoZWxwZXIKCjIwMDktMDktMTQgMjM6MzE6MTAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBSZWFycmFuZ2Ugc29tZSB0aGluZ3MuCgkgIFByZXBhcmUgdG8gbGFuZCB0aGUgZXh0ZXJuYWwgcGx1Z2luIGhlbHBlciBwcm9jZXNzCgoyMDA5LTEwLTA2IDE5OjQxOjM4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yNS4xCgo9PT0gcmVsZWFzZSAwLjEwLjI1ID09PQoKMjAwOS0xMC0wNSAxMjo1NzowMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJICBSZWxlYXNlIDAuMTAuMjUKCjIwMDktMTAtMDUgMTI6NDE6NDIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwOS0xMC0wMSAxNjoyNDo1MiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC40IHByZS1yZWxlYXNlCgoyMDA5LTA5LTMwIDE1OjUyOjMzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgbGliZ3N0Y2hlY2s6IERvbid0IHVzZSBjaGFyYWN0ZXIgY2xhc3NlcyBpbiBzZWQgZXhwcmVzc2lvbnMKCSAgQXBwYXJlbnRseSB0aGUgc2VkIHRoYXQgc2hpcHMgb24gU29sYXJpcyAxMCBkb2Vzbid0IHN1cHBvcnQgY2hhcmFjdGVyCgkgIGNsYXNzZXMgbGlrZSBbOmFsbnVtOl0sIHNvIGRvbid0IHVzZSB0aGVtLiBXZSBkb24ndCBuZWVkIHRoZW0gZm9yIHRoZQoJICBzeW1ib2wgbmFtZXMgdGhhdCBhcmUgYmVpbmcgZXh0cmFjdGVkIGFueXdheS4KCSAgQWxzbywgdXNlICQoU0VEKSBpbnN0ZWFkIG9mICdzZWQnCgkgIEZpeGVzOiAjNTk2ODc3CgoyMDA5LTA5LTE3IDAxOjIwOjAzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9ldS5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgMC4xMC4yNC4zIHByZS1yZWxlYXNlCgoyMDA5LTA5LTE1IDA5OjQxOjI4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICB1dGlsczogRml4IEdNUCBzY2FsaW5nIHVuaXQgdGVzdAoJICBHTVAgb25seSB1c2VzICJ1bnNpZ25lZCBsb25nIGludCIsIHdoaWNoIGlzIDMyIGJpdAoJICBvbiAzMiBiaXQgYXJjaGl0ZWN0dXJlcyBhbmQgY2FuJ3QgaG9sZCBhIGd1aW50NjQuCgkgIFRoaXMgcmVzdWx0ZWQgaW4gZmFsc2UgdW5pdCB0ZXN0IGZhaWx1cmVzIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzLgoJICBGaXhlcyBidWcgIzU5NTEzMy4KCjIwMDktMDktMTQgMTI6NDc6MjYgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgRml4IG91dC1vZi10cmVlIGJ1aWxkCgoyMDA5LTA5LTE0IDE0OjA3OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb2NzOiBHU1RfTUVTU0FHRV9TVFJFQU1fU1RBVFVTIGlzIGltcGxlbWVudGVkIG5vd2FkYXlzLgoJICBEb2NzIHdlcmUgc3RpbGwgbWVudGlvbiBpdCBhcyAibm90IHlldCBpbXBsZW1lbnRlZCIuCgoyMDA5LTA5LTEyIDEzOjUyOjAwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIE1ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEJ1aWxkIHBrZ2NvbmZpZyBiZWZvcmUgYWxsIGxpYnJhcmllcyBhbmQgc2V0IFBLR19DT05GSUdfUEFUSAoJICBUaGlzIHdheSBnLWlyLXNjYW5uZXIgY2FuIGZpbmQgdGhlIGdzdHJlYW1lci0wLjEwIHBrZy1jb25maWcgZmlsZS4KCjIwMDktMDktMTIgMTM6NTE6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBpbnRyb3NwZWN0aW9uOiBEb24ndCB0eXBlZGVmIEdzdFRhZ0xpc3QgdG8gR3N0U3RydWN0dXJlIGZvciBnb2JqZWN0LWludHJvc3BlY3Rpb24KCjIwMDktMDktMTEgMjM6MjE6MzAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9MSU5HVUFTOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZXUucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuMiBwcmUtcmVsZWFzZQoKMjAwOS0wOS0xMSAyMjo0Mjo1MSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRG9uJ3QgdXNlIEMrKyBzdHlsZSBjb21tZW50cwoKMjAwOS0wOS0xMSAyMjoyMjozNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgbWVzc2FnZTogRGlzYWJsZSByZXN0cmljdGlvbiB0aGF0IHN0cnVjdHVyZSBjaGFuZ2VzIGFyZSBzaW5rIHBhZHMKCSAgVGhlIHN0cnVjdHVyZV9jaGFuZ2UgbWVzc2FnZSB3YXMgb3JpZ2luYWxseSBlbWl0dGVkIG9uIHNvdXJjZSBwYWRzIGFuZAoJICB0aGVuIHJlY2VudGx5IGNoYW5nZWQgdG8gYmUgc2luayBwYWRzLiBUaGlzIGNhdXNlcyBhIGZhaWx1cmUgaW4gdGhlCgkgIGdzdC1weXRob24gdGVzdHN1aXRlLiBEaXNhYmxlIHRoZSByZXN0cmljdGlvbiBzbyB0aGF0IHRoZSBwdWJsaXNoZWQKCSAgYmVoYXZpb3VyIGlzIHN0aWxsIGFsbG93ZWQuCgoyMDA5LTA5LTExIDE4OjI0OjE4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgIGNoZWNrOiBGaXggdmVyc2lvbiBjaGVjayB0ZXN0cwoJICBBY2NvbW9kYXRlIHRoZSBzbGlnaHRseSBjaGFuZ2VkIHNlbWFudGljcyBpbiB0aGUgcGx1Z2luIHZlcnNpb24gY2hlY2sKCSAgd2hlcmUgYSBDVlMgdmVyc2lvbiBqdXN0IGJlZm9yZSBhIHJlbGVhc2UgaXMgYWNjZXB0YWJsZS4KCjIwMDktMDktMTEgMjE6MjA6NTcgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogZG9uJ3QgY3Jhc2ggaW4gY2xlYW5pbmcgdXAgb24gZXJyb3IuCgkgIERvbid0IGRlcmVmZXJlbmNlIE5VTEwgcG9pbnRlcnMuCgoyMDA5LTA3LTIwIDEyOjU0OjAwIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGRlYnVnOiB1c2UgZHVtbXkgY29kZSB0byBhdm9pZCBzcHVyaW91cyBzZW1pY29sb25zCgkgIEZpeGVzIGJ1ZyAjNTg5MTczLgoKMjAwOS0wOS0xMCAxMTo1MzowOSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0xMCAxMTo0MTo1NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHBsdWdpbmZlYXR1cmU6IGltcHJvdmUgdmVyc2lvbiBjaGVjawoJICBBbHNvIHBhcnNlIHRoZSBuYW5vIG9mIHRoZSB2ZXJzaW9uIGFuZCBhc3N1bWUgdGhhdCBYLlkuWi0xLjEgPj0gWC5ZLloKCSAgV2l0aCB0aGlzIGNoYW5nZSB3ZSBjYW4gYWxzbyBjaGVjayBkZXZlbG9wbWVudCB2ZXJzaW9ucyBhZ2FpbnN0IHRoZSB2ZXJzaW9uIG9mCgkgIHRoZSB1cGNvbW1pbmcgcmVsZWFzZS4KCjIwMDktMDktMTAgMTA6MDU6MzggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogQWRkIEZJWE1FIGZvciAwLjExIHRvIG5vdCB0eXBlZGVmIEdzdFRhZ0xpc3QgdG8gYmUgYSBHc3RTdHJ1Y3R1cmUKCSAgU2VlIGJ1ZyAjNTE4OTM0LgoKMjAwOS0wOS0wOSAxNjoyOToxMCAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggdHlwbyBpbiBpbmxpbmUgZG9jdW1lbnRhdGlvbgoKMjAwOS0wOS0wOSAxNzo1Nzo1NCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDktMDkgMTg6Mzg6MjkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBBZGQgYSBjb21tZW50IHRvIHRoZSBzY2FsaW5nIGZ1bmN0aW9ucyB0byBleHBsYWluIHdoeSB0aGUgcm91bmRpbmcgaXMgY29ycmVjdAoKMjAwOS0wOS0wOSAxNjo0NToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogZG9uJ3QgdW5yZWYgTlVMTCBjYXBzCgkgIENhcHMgY2FuIGJlIE5VTEwgc28gZG9uJ3QgY2FsbCB1bnJlZiBvbiBpdCB1bmNvbmRpdGlvbmFsbHksIGluc3RlYWQgdXNlIGFuCgkgIGV4aXN0aW5nIGV4aXQgcGFkIGZvciB0aGUgZnVuY3Rpb24uCgoyMDA5LTA5LTA5IDE0OjUzOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBVc2UgZ2NjJ3MgX191aW50MTI4X3QgZm9yIDY0Yml0IHVuc2lnbmVkIGludGVnZXIgc2NhbGluZwoJICBUaGlzIGlzIGF2YWlsYWJsZSBpbiBuZXdlciBnY2MgcmVsZWFzZXMgYW5kIGl0IHNob3VsZCBvbmx5IGV4aXN0CgkgIG9uIHBsYXRmb3JtcyB0aGF0IHByb3ZpZGUgc29tZSBuYXRpdmUgMTI4Yml0IGludGVnZXIgYXJpdGhtZXRpYwoJICBpbnN0cnVjdGlvbnMuCgkgIFRoZSB4ODYtNjQgYXNzZW1ibHkgZm9yIHRoaXMgaXMgc3RpbGwga2VwdCBmb3Igbm9uLWdjYyBjb21waWxlcnMKCSAgdGhhdCBkb24ndCBwcm92aWRlIF9fdWludDEyOF90IG1hZ2ljLgoKMjAwOS0wOS0wOSAwOTozODo1NCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9yYW5kb20vZW5zb25pYy9kcmFmdC1idWZmZXJwb29scy50eHQ6CgkgIGRlc2lnbjogYWRkIGlkZWFzIGZvciBidWZmZXIgbWFuYWdlbWVudAoJICBSaWdodCBub3cgd2UncmUgb3BlcmF0aW5nIHN1Ym9wdGltYWwgd2hlbiB0YWxraW5nIHRvIGtlcm5lbCBpbnRlcmZhY2VzLiBXcml0ZQoJICBkb2VzbiBzb21lIGlkZWFzLgoKMjAwOS0wOS0wNyAxODoyNzowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZml4IHdoaXRlc3BhY2UKCjIwMDktMDktMDMgMTk6MDY6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgYWRhcHRlcjogZml4IHdoaXRlc3BhY2UKCjIwMDktMDktMDcgMTY6MTQ6NTcgKzAyMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGRvY3M6IEZpeCB0eXBvIGluIGdzdF92YWx1ZV91bmlvbigpCgoyMDA5LTA5LTA2IDE5OjQzOjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBiaXRyZWFkZXIsIGJ5dGVyZWFkZXI6IGFkZCBzb21lIEZJWE1FIDAuMTEgY29tbWVudHMgYW5kIGZpeCBpbmRlbnRpbmcKCjIwMDktMDktMDQgMTc6MTU6MzUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLWRvY3MuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICBieXRlcmVhZGVyOiBhZGQgdW5jaGVja2VkIGFuZCBpbmxpbmUgdmVyc2lvbnMgb2YgdGhlIGZsb2F0IGdldHRlcnMvcGVla2VycwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfZmxvYXQqX3VuY2hlY2tlZCgpCgoyMDA5LTA5LTA0IDE2OjUyOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgYnl0ZXJlYWRlcjogYWRkIGlubGluZSB2ZXJzaW9ucyBvZiB0aGUgbW9zdCBjb21tb24gZ2V0dGVycyBhbmQgc2V0dGVycwoKMjAwOS0wOS0wMiAxMToyMDowNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXItZG9jcy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYnl0ZXJlYWRlci5jOgoJICBieXRlcmVhZGVyOiBhZGQgaW5saW5lZCBfdW5jaGVja2VkKCkgdmFyaWFudHMgZm9yIHNvbWUgZnVuY3Rpb25zCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfdW5jaGVja2VkKCkKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla18qX3VuY2hlY2tlZCgpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF8qX3VuY2hlY2tlZCgpCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3twZWVrLGdldCxkdXB9X2RhdGFfdW5jaGVja2VkKCkKCjIwMDktMDktMDUgMTI6MzA6MDcgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBpbnRyb3NwZWN0aW9uOiBTdHJpcCBHc3QgcHJlZml4IGZyb20gYWxsIHR5cGVzL2Z1bmN0aW9ucwoKMjAwOS0wOS0wNSAxMjoyMjozNyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGludHJvc3BlY3Rpb246IEZpeCBmb3Igb3V0LW9mLXRyZWUgYnVpbGRzCgoyMDA5LTA5LTA1IDEyOjA0OjU5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRml4IG91dC1vZi10cmVlIGJ1aWxkCgoyMDA5LTA5LTA1IDExOjUxOjU1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgaW50cm9zcGVjdGlvbjogRml4IGJ1aWxkIGlmIGdpci1yZXBvc2l0b3J5IGlzIG5vdCBpbnN0YWxsZWQKCjIwMDktMDktMDUgMDk6MzY6MjEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBuZXQ6IEFkZCBnb2JqZWN0LWludHJvc3BlY3Rpb24gc3VwcG9ydAoKMjAwOS0wOS0wNSAwOTozNDozMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgIGRhdGFwcm90b2NvbDogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgkgIEJlY2F1c2Ugb2YgYSBidWcgaW4gZ29iamVjdC1pbnRyb3NwZWN0aW9uIHRoaXMgaXMgZGlzYWJsZWQgZm9yIG5vdy4KCjIwMDktMDktMDUgMDk6Mjg6NDggKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgY29udHJvbGxlcjogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA1IDA5OjI3OjA0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICBjaGVjazogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgoyMDA5LTA5LTA1IDA5OjIzOjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkqIGdzdC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICBnc3RiYXNlOiBBZGQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIHN1cHBvcnQKCjIwMDktMDktMDQgMjA6NTY6NDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvLmdpdGlnbm9yZToKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkgIGdzdDogQWRkIGdvYmplY3QtaW50cm9zcGVjdGlvbiBzdXBwb3J0CgkgIFBhcnRpYWxseSBmaXhlcyBidWcgIzU1MDYxNi4KCjIwMDktMDktMDUgMTA6MTk6MjMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA5NGY5NWUzIHRvIDE5ZmE0ZjMKCjIwMDktMDktMDQgMTk6Mzc6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGRvY3M6IGZpeCBkb2NzIGZvciBnc3RfYnl0ZV9yZWFkZXJfe2dldHxwZWVrfV9mbG9hdCooKQoKMjAwOS0wOS0wNCAxMTozNTo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5oOgoJICBldmVudDogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0wNCAwOTo1MToyNiArMDIwMCAgQXVyZWxpZW4gR3JpbWF1ZCA8Z3N0ZWx6ekB5YWhvby5mcj4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBPbmx5IHVucmVmIEVPUyBtZXNzYWdlIGFmdGVyIGl0IGlzIG5vdCB1c2VkIGFueW1vcmUKCSAgRml4ZXMgYnVnICM1OTQxMDcuCgoyMDA5LTA5LTAyIDE4OjU0OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHN0YXRlczogcG9zdCBzdHJ1Y3R1cmUgY2hhbmdlIG9uIHNpbmtwYWRzCgkgIFBvc3QgdGhlIHN0cnVjdHVyZSBjaGFuZ2UgbWVzc2FnZXMgb24gdGhlIHNpbmtwYWRzIG9mIHRoZSBlbGVtZW50cy4gVGhpcyBhbGxvd3MKCSAgdXMgdG8gY2F0Y2ggdW5saW5rZWQgcGFkcyBlYXJsaWVyIHdpdGhvdXQgZW5kaW5nIHVwIHdpdGggaW5jb25zaXN0ZW50IGVsZW1lbnQKCSAgZGVncmVlcy4KCjIwMDktMDktMDIgMTg6MTM6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYXZvaWQgZmFsc2UgJ2xvb3AgZGV0ZWN0ZWQnIHdhcm5pbmdzCgkgIFdoZW4gd2UgZGV0ZWN0IGEgcGFkIHVubGluayBpbiBwcm9ncmVzcywgd2Ugd2lsbCBub3QgYmUgdXBkYXRpbmcgdGhlIGRlZ3JlZSBvZgoJICB0aGUgcGFyZW50IGVsZW1lbnQuIFRoaXMgY2FuIGNhdXNlIGZhbHNlIGxvb3AgZGV0ZWN0ZWQgd2FybmluZ3MgYmVjYXVzZSB0aGUKCSAgZGVncmVlIGNvdW50ZXIgaXMgaW52YWxpZC4gSGFuZGxlIHRoaXMgY2FzZSBieSBtYXJraW5nIHRoZSBpdGVyYXRvciBhcyAnZGlydHknCgkgIHdoZW4gd2UgZGV0ZWN0IGEgcGFkIHVubGluayBhbmQgYXZvaWQgZW1pdGluZyB0aGUgd2FybmluZyBpbiB0aGlzIGNhc2UuIFdlIGhhdmUKCSAgdG8gY29udGludWUgb3VyIHN0YXRlIGNoYW5nZSBhcyBnb29kIGFzIHdlIGNhbiwgd2Ugd2lsbCBldmVudHVhbGx5IHJlc3luYyB3aGVuCgkgIHRoZSBwYWQgdW5saW5rIGNvbXBsZXRlZC4KCjIwMDktMDktMDEgMTY6NDk6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIGJhc2VzcmM6IHdoaXRlc3BhY2UgZml4ZXMKCjIwMDktMDktMDEgMTY6NDk6MjIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIGJ1ZmZlcjogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOS0wMSAxMjowNzozMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGRpc3Q6IERvbid0IGxpc3QgdGhlIHN0cmVhbXMgc3ViZGlyIHR3aWNlIGluIGV4YW1wbGVzIE1ha2VmaWxlCgkgIExpc3RpbmcgdGhlICdzdHJlYW1zJyBzdWJkaXIgdHdpY2UgaW4gRElTVF9TVUJESVJTIGJyZWFrcyBkaXN0Y2hlY2suCgoyMDA5LTA5LTAxIDEyOjA1OjUxICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGdzdGJpbjogRG9uJ3QgcHJvcGFnYXRlIGEgTlVMTCBjYWNoZWQgaW5kZXggdG8gYWRkZWQgZWxlbWVudHMKCSAgV2hlbiBhbiBlbGVtZW50IGlzIGFkZGVkIHRvIHRoZSBiaW4sIG9ubHkgc2V0IHRoZSBpbmRleCBpZiB3ZSBoYXZlIGEKCSAgY2FjaGVkIGluZGV4LCByYXRoZXIgdGhhbiBzZXR0aW5nIGEgTlVMTCBpbmRleCBvbiBlbGVtZW50cyB0aGF0IG1pZ2h0CgkgIGhhdmUgYSBkZWZhdWx0IGluZGV4IG9iamVjdCBvZiB0aGVpciBvd24uCgoyMDA5LTA3LTE5IDIxOjIzOjE4ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBkb2NzOiBBZGQgYSBub3RlIGFib3V0IHJlZ2VuZXJhdGluZyB0aGUgY2hhbmdlbG9nIGluIHRoZSByZWxlYXNlIHNjcmlwdAoKMjAwOS0wOS0wMSAxMDowMzozNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBkb24ndCB0YWtlIG9iamVjdCBsb2NrIGZvciBnX2NyaXRpY2FsKCkgYW5kIGZsZXNoIG91dCB3YXJuaW5nIG1lc3NhZ2Ugc29tZSBtb3JlCgoyMDA5LTA5LTAxIDEwOjIxOjMxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIHNpbmdsZSBpdGVyYXRvcgoKMjAwOS0wOS0wMSAxMDoyMDo1OSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgaXRlcmF0b3I6IE9ubHkgdmlzaXQgdGhlIGVsZW1lbnQgYSBzaW5nbGUgdGltZSBpbiB0aGUgc2luZ2xlIGl0ZXJhdG9yCgoyMDA5LTA5LTAxIDA3OjI3OjI1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogRml4IHNpbmdsZSBpdGVyYXRvciBmb3IgTlVMTCBvYmplY3RzIGFuZCBub24tR1R5cGVJbnN0YW5jZSBvYmplY3RzCgkgIEZpeGVzIGJ1ZyAjNTkzNzE5LgoKMjAwOS0wOS0wMSAwMDowMDo1NyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZGVidWc6IG1vcmUgZGV0YWlsIGluIHdyb25nLXN0YXRlLW9uLWRpc3Bvc2UgZXJyb3IuCgkgIEFsc28gdGVsbCBpbiB3aGljaCBzdGF0ZSB0aGUgZWxlbWVudCBhY3R1YWx5IGlzIGFuZCBpZiBpdCBpcyBldmVudHVhbHkKCSAgc3RhdGUtbG9ja2VkLgoKMjAwOS0wOC0zMSAyMDozODowNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogZml4IGRvY3MgZm9yIF9uZXdfc2luZ2xlKCkuCgoyMDA5LTA4LTMxIDE2OjU2OjIyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIGRvY3M6IGl0J3MgaXRzCgkgIFRoZSBwYW5kYSBzYXlzIG5vIQoKMjAwOS0wOC0yOSAyMDo0NDozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgcmVnaXN0cnk6IGZpbGwgaW4gZWxlbWVudGZhY3Rvcnkgd2hlbiByZWdpc3RlcmluZyBlbGVtZW50CgkgIGVsZW1lbnRmYWN0b3J5IGZpZWxkIGlzIGZpbGxlZCBpbiBieSBnc3RfZWxlbWVudF9iYXNlX2NsYXNzX2luaXQsCgkgIGJ1dCBpdCBuZWVkcyBzb21lIGluZm8gc2V0IG9uIHRoZSBlbGVtZW50J3MgdHlwZSwgc28gaGF2ZSBpdAoJICBhdmFpbGFibGUgcHJpb3IgdG8gY2xhc3Mgc3RydWN0dXJlIGNyZWF0aW9uIHNwaW5uaW5nIHVwLgoJICBUaGlzIGFmZmVjdHMgZWxlbWVudHMgdGhhdCBoYXZlIGEgd2VsbC1rbm93bi9wdWJsaWMgdHlwZSAoZS5nLiBwaXBlbGluZSkKCSAgYW5kIGNhbiBiZSBjcmVhdGVkIGJ5IG90aGVyIG1lYW5zIHRoYW4gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlCgkgICh3aGljaCB3aWxsIGFsc28gZmlsbCBpbiB0aGUgZWxlbWVudCdzIGZhY3RvcnkpLgoKMjAwOS0wOC0zMSAxMTo0NToxNyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogdXNlIDEyOGJpdHMgZGl2aXNpb24gb24geDg2XzY0CgoyMDA5LTA4LTI5IDA0OjQ0OjUxICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogZml4IGNvbXBpbGF0aW9uIG9mIHdpbjMyIGNvZGUKCSAgRml4ZXMgIzU5MzQ2MC4KCjIwMDktMDgtMjggMTg6Mzc6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogY2FjaGUgaW5kZXgKCSAgQ2FjaGUgdGhlIGxhc3QgaW5kZXggdGhhdCB3YXMgc2V0IHdpdGggX3NldF9pbmRleCgpIGFuZCByZXR1cm4gdGhpcyBpbiB0aGUKCSAgX2dldF9pbmRleCgpIGNhbGwuCgkgIFNldCB0aGUgY2FjaGVkIGluZGV4IG9uIG5ld2x5IGFkZGVkIGVsZW1lbnRzLgoJICBGaXhlcyAjNTY2ODgxCgoyMDA5LTA4LTI4IDE4OjM1OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogYmV0dGVyIHR5cGUgY2hlY2tzCgkgIEFkZCBHU1RfQ0xPQ0sgdHlwZWNoZWNrIGZvciBfc2V0X2Nsb2NrKCkuCgkgIEFsbG93IHNldHRpbmcgTlVMTCBpbmRleGVzIG9uIGVsZW1lbnQgKGNsZWFyIHRoZSBjdXJyZW50IGluZGV4KQoJICBTb21lIHdoaXRlc3BhY2UgZml4ZXMuCgoyMDA5LTA4LTI4IDE4OjE0OjIzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgZWxlbWVudDsgd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxODowNjo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgZ3N0X2l0ZXJhdG9yX25ld19zaW5nbGUgdG8gZGVmcwoKMjAwOS0wOC0yOCAxODowMzo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI4IDE3OjU5OjE1ICswMjAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIENoZWNrIHN1Z2dlc3RlZCBjYXBzIGZvciBwcm94eSBhbGxvYwoJICBCZWNhdXNlIHdlIGFyZSB0cnlpbmcgdG8gcmVzb2x2ZSBhIHN1Z2dlc3Rpb24gaGVyZSB3ZSBkb24ndCBuZWVkCgkgIHRvIGNoZWNrIG9uIGNhcHMgZm9yIHByb3h5X2FsbG9jIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIG9uIHRoZQoJICBzdWdnZXN0ZWQgY2FwcyBpbnN0ZWFkLgoKMjAwOS0wOC0yOCAxNzo0OToxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBxdWV1ZTogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxNzowMjozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogdXNlIHByZWZvcm1hbmNlIGNvdW50ZXJzIG9uIHdpbmRvd3MKCSAgQmFzZWQgb24gY2xvY2sgaW1wbGVtZW50YXRpb24gYnkgSMOldmFyZCBHcmFmZiA8aGF2YXJkLmdyYWZmQHRhbmRiZXJnLmNvbT4KCSAgVHJ5IHRvIGdldCB0aGUgdGltZSBvbiB3aW5kb3dzIHVzaW5nIHRoZSBwZXJmb3JtYW5jZSBjb3VudGVycy4gVGhlc2UgaGF2ZSBhIG11Y2gKCSAgaGlnaGVyIHJlc29sdXRpb24gYW5kIGFjY3VyYWN5IHRoYW4gdGhlIHJlZ3VsYXIgZ2V0Y3VycmVudHRpbWUoKS4gQmUgY2FyZWZ1bCB0bwoJICBmYWxsIGJhY2sgdG8gcmVndWxhciBnZXRjdXJyZW50dGltZSgpIG9yIHBvc2l4IGNsb2NrcyB3aGVuIHBlcmZvcm1hbmNlIGNvdW50ZXJzCgkgIGFyZSBub3QgYXZhaWxhYmxlLgoKMjAwOS0wOC0yOCAxNjowNzoxNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBzeXN0ZW1jbG9jazogZml4IGluZGVudGF0aW9uCgoyMDA5LTA4LTI4IDE1OjMyOjI2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiB1c2Ugc2hpZnQgaW5zdGVhZCBvZiBkaXZpc2lvbgoJICBXZSBjYW4gdXNlIGEgc2hpZnQgZm9yIHNjYWxpbmcgdGhlIGRlbm9taW5hdG9yIGluc3RlYWQgb2YgYSBkaXZpZGUgc2luY2UgdGhlCgkgIGRlbm9tIGlzIGFsd2F5cyBwb3NpdGl2ZS4gVGhpcyBhdm9pZHMgaGF2aW5nIHRoZSBjb21waWxlciBnZW5lcmF0ZSBjb2RlIGZvciB0aGUKCSAgZGlmZmVyZW50IHJvdW5kaW5nIHJ1bGVzIHdoZW4gc2NhbGluZyBuZWdhdGl2ZSB2YWx1ZXMuCgoyMDA5LTA4LTI4IDEzOjQ1OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBtYWtlIGlubGluaW5nIGV4cGxpY2l0CgoyMDA5LTA4LTI4IDEyOjQzOjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBvcHRpbWl6ZSBmb3IgeDg2XzY0IHdpdGggc29tZSBpbmxpbmUgYXNtCgkgIDY0Yml0IHg4NiBoYXMgbmF0aXZlIDY0eDY0LT4xMjggYml0IG11bHRpcGx5IHRoYXQgd2UgY2FuIHVzZSB3aXRoIHNvbWUgaW5saW5lCgkgIGFzc2VtYmxlciB0byBzcGVlZCB1cCBsYXJnZSBtdWx0aXBsaWNhdGlvbnMuCgkgIFVzZSBic3IgdG8gZmluZCB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MgbW9yZSBlZmZpY2llbnRseS4KCjIwMDktMDgtMjggMTI6MzM6MzcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IGZhY3RvciBvdXQgdGhlIGxlYWRpbmcgemVybyBjb3VudCBjb2RlCgoyMDA5LTA4LTI4IDEyOjMwOjQxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIHV0aWxzOiBwYXNzIGNvcnJlY3Rpb24gZmFjdG9yIGFyb3VuZAoJICBQYXNzIHRoZSBjb3JyZWN0aW9uIGZhY3RvciBhcm91bmQgdG8gZ2V0IHJpZCBvZiB0aGUgZW51bSwgc29tZSBjb2RlCgkgIGFuZCBzb21lIGJyYW5jaGVzLgoKMjAwOS0wOC0yOCAxMjoyMToyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogd2hpdGVzcGFjZSBmaXhlcwoKMjAwOS0wOC0yOCAxMjoxOTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogbW92ZSBjb21tb24gY29ycmVjdGlvbiBjb2RlIGluIGEgbWFjcm8KCjIwMDktMDgtMjQgMTg6MDE6MDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTI2IDE2OjUxOjMyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBpdGVyYXRvcjogQWxsb3cgdG8gdXNlIE5VTEwgYXMgb2JqZWN0IGZvciB0aGUgc2luZ2xlIGl0ZXJhdG9yCgoyMDA5LTA4LTI2IDE2OjM5OjE5ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgaXRlcmF0b3I6IEFQSTogQWRkIGdzdF9pdGVyYXRvcl9uZXdfc2luZ2xlKCkKCSAgVGhpcyBhbGxvd3MgIml0ZXJhdGlvbiIgb3ZlciBhIHNpbmdsZSBvYmplY3Qgb2Ygc29tZSB0eXBlLAoJICB3aGljaCBoYXBwZW5zIG9mdGVuIGZvciB0aGUgR3N0UGFkSXRlckludExpbmtzRnVuY3Rpb24gZm9yIGV4YW1wbGUuCgoyMDA5LTA4LTI0IDE3OjU3OjE2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IHJldHVybiByZXN1bHQgb2YgX3NldF9jYXBzKCkKCjIwMDktMDgtMjQgMTc6NTY6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA5LTA4LTIyIDE0OjIyOjMxIC0wNzAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIGdzdC9nc3R4bWwuaDoKCSAgSXQncyBfX0dOVUNfXywgbm90IF9HTlVDXwoJICBUaGlzIGFwcGVhcnMgdG8gYmUgYW4gOCB5ZWFyIG9sZCBidWcuCgoyMDA5LTA4LTIxIDA5OjU5OjU4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIGRvY3M6IGFkZCBsaW5rIHRvIGNnaXQgdGFyYmFsbCBkb3dubG9hZCBvZiBnc3QtdGVtcGxhdGUgaW4gUFdHCgkgIFNvIHBlb3BsZSB3aG8gY2FuJ3QgdXNlIGdpdCBmb3Igc29tZSByZWFzb24gc3RpbGwgY2FuIGdldCBob2xkCgkgIG9mIHRoZSBjb2RlLiBTZWUgIzU5MTA2OS4KCjIwMDktMDgtMjAgMTE6NTQ6NDAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgcGx1Z2luZmVhdHVyZTogYWRkIGd1YXJkIHRvIGdzdF9wbHVnaW5fZmVhdHVyZV90eXBlX25hbWVfZmlsdGVyCgkgIFNvIHdlIGRvbid0IGp1c3QgY3Jhc2ggaWYgdGhlcmUncyBhIHJlZmNvdW50aW5nIGJ1ZyBzb21ld2hlcmUgZWxzZS4KCjIwMDktMDgtMTkgMTY6MjQ6MzkgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtaW50ZWdyYXRpb24ueG1sOgoJICBkb2NzOiBEb24ndCB0YWxrIGFib3V0IHRoZSBkZXByZWNhdGVkIGxpYmdub21lIGFuZCBHTk9NRS1WRlMKCSAgSW5zdGVhZCB0YWxrIGFib3V0IEdJTyBhbmQgY2hhbmdlIHRoZSBvcHRpb24gcGFyc2luZyBleGFtcGxlIHRvCgkgIG5vdCBpbml0aWFsaXplIGxpYmdub21lIGJ1dCBvbmx5IEdUSy4KCSAgRml4ZXMgYnVnICM1OTIyMzMuCgoyMDA5LTA4LTE5IDE1OjI1OjQxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL01ha2VmaWxlLmFtOgoJICBleGFtcGxlczogTGluayBydHBvb2wtdGVzdCB0byBsaWJwdGhyZWFkIGZvciB1c2luZyB0aGUgUE9TSVggdGhyZWFkcwoJICBBbHNvIHRoZSBvdGhlciBzdHJlYW1zIGV4YW1wbGUgY2FuIHJ1biB3aXRob3V0IHB0aHJlYWRzIHRoZXJlZm9yZQoJICBlbmFibGUgaXQgZXZlbiBpZiBwdGhyZWFkcyBhcmUgbm90IGF2YWlsYWJsZS4KCSAgRml4ZXMgYnVnICM1OTIzMTQuCgoyMDA5LTA4LTE4IDE0OjQ1OjIzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIHRvb2xzOiBVc2UgaXRlcmF0ZV9pbnRlcm5hbF9saW5rcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgZ2V0X2ludGVybmFsX2xpbmtzCgoyMDA5LTA4LTE4IDE0OjQ1OjAyICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgbXVsdGlxdWV1ZTogVXNlIGl0ZXJhdGVfaW50ZXJuYWxfbGlua3MgaW5zdGVhZCBvZiBkZXByZWNhdGVkIGdldF9pbnRlcm5hbF9saW5rcwoKMjAwOS0wOC0xOCAxNDowNTo0MCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSAgZ3N0cGFkOiBBZGQgc29tZSBESVNBQkxFX0RFUFJFQ0FURUQgbWFya2VycyBpbiB0aGUgaGVhZGVyIHRvbwoJICBUaGUgaW50ZXJuYWwgbGlua3MgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBzaW5jZSBzb21lIHRpbWUgYW5kCgkgIHRoZXJlIGFscmVhZHkgd2VyZSBHU1RfUkVNT1ZFX0RFUFJFQ0FURUQgbWFya2VycyBpbiB0aGUgc291cmNlIGZpbGUsCgkgIG5vdyBhZGQgdGhlbSB0byB0aGUgaGVhZGVyIHRvby4KCSAgRml4ZXMgYnVnICM1OTIyMDkuCgoyMDA5LTA4LTE4IDExOjM4OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgZG9jczogVXBkYXRlIHRoZSBkZXNpZ24gZG9jcyBmb3IgYmluIHN0YXRlIGNoYW5nZXMgYWNjb3JkaW5nIHRvIGxhc3QgY29tbWl0CgoyMDA5LTA4LTE4IDExOjM2OjM2ICswMjAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IERvbid0IHRyeSB0byBjaGFuZ2UgY2hpbGRyZW4ncyBzdGF0ZSBpZiB0aGV5J3JlIGFscmVhZHkgaW4gdGhlIHN0YXRlIHdlIHdhbnQKCSAgRml4ZXMgYnVnICMzNjg1MzYuCgoyMDA5LTA4LTE4IDExOjMzOjE3ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBnaG9zdHBhZDogQWx3YXlzIGdldCB0aGUgcHJveHlwYWQncyBnaG9zdHBhZCB2aWEgdGhlIGdob3N0cGFkIGluIHRoZSBzcmMgY2FwcyBjaGFuZ2Ugbm90aWZ5IGhhbmRsZXIKCSAgQmVmb3JlIHRoZSBzaWduYWwgaGFuZGxlciB3b3VsZCBnZXQgdGhlIGdob3N0cGFkIHBhc3NlZCBhcyBzZWNvbmQKCSAgYXJndW1lbnQgYnV0IGl0IGNvdWxkJ3ZlIGFscmVhZHkgYmVlbiB1bnJlZmZlZCBhbmQgZGVzdHJveWVkLgoJICBUaGlzIHdvdWxkIHRoZW4gbGVhZCB0byBjcmFzaGVzIGFuZCBhbGwgdGhhdC4KCSAgTm93IHdlIGdldCB0aGUgZ2hvc3RwYWQgZnJvbSB0aGUgcHJveHkgcGFkLCB3aGljaCB3ZSBnZXQgZnJvbSB0aGUKCSAgdGFyZ2V0IHBhZCBhcyBpdCdzIHBlZXIuCgkgIEZpeGVzIGJ1ZyAjNTkxMzE4LgoKMjAwOS0wOC0xOCAwODo0NTowOCArMDIwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIGZpbGVzaW5rOiBBZGQgcHJvcGVydHkgdG8gYWxsb3cgdG8gYXBwZW5kIHRvIGFuIGFscmVhZHkgZXhpc3RpbmcgZmlsZQoJICBGaXhlcyBidWcgIzU5MTQ0MS4KCjIwMDktMDgtMTQgMTE6NTM6MTQgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IFJlbW92ZSBkdXBsaWNhdGVkIGNoZWNrIGZvciBjbG9ja19nZXR0aW1lCgoyMDA5LTA4LTE0IDExOjEyOjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogQWRkIHNwZWNpYWwgcmFuZG9tIHVuaXQgdGVzdCBmb3IgNjQgc2NhbGluZyBmdW5jdGlvbnMKCSAgVGhpcyB0ZXN0cyAxMDAwMDAgcmFuZG9tIG11bHRpcGxpY2F0aW9ucy9kaXZpc2lvbnMgb2YgYWxsIHNjYWxpbmcKCSAgZnVuY3Rpb24gdmFyaWFudHMgYW5kIGNvbXBhcmVzIHRoZSByZXN1bHQgd2l0aCB0aGUgcmVzdWx0IHRoYXQgaXMKCSAgZ2VuZXJhdGVkIGJ5IEdNUCBvbiB0aGUgc2FtZSBpbnB1dC4KCSAgRm9yIHRoaXMgY2hlY2sgZm9yIEdTTCBhbmQgR01QIGR1cmluZyBjb25maWd1cmUgYnV0IG9ubHkgdXNlCgkgIGl0IGZvciB0aGlzIHNpbmdsZSB1bml0IHRlc3QuCgkgIFRlc3RpbmcgZnVuY3Rpb25zIHdlcmUgcHJvdmlkZWQgYnkgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCjIwMDktMDgtMTMgMTY6MzE6MDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGdzdHV0aWxzOiBBZGQgbmV3IHNjYWxpbmcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzCgoyMDA5LTA4LTEzIDE2OjIwOjQ2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogQWRkICh2ZXJ5KSBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgdGhlIG5ldyByb3VuZGluZyBzY2FsaW5nIGZ1bmN0aW9ucwoKMjAwOS0wOC0xMyAxNjoxMDozMSArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0dXRpbHM6IEFQSTogQWRkIHJvdW5kaW5nIHRvIG5lYXJlc3QgYW5kIG5leHQgaW50ZWdlciB2ZXJzaW9ucyBvZiB0aGUgNjQgYml0IGludGVnZXIgc2NhbGluZyBmdW5jdGlvbnMKCSAgVGhlIG5ldyBmdW5jdGlvbnMgYXJlCgkgIGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnRfcm91bmQoKQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50X2NlaWwoKQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfcm91bmQoKQoJICBnc3RfdXRpbF91aW50NjRfc2NhbGVfY2VpbCgpCgkgIEZpeGVzIGJ1ZyAjNTkwOTE5LgoKMjAwOS0wOC0xMiAxMToxMDowNSArMDIwMCAgS2lwcCBDYW5ub24gPGtjYW5ub25AbGlnby5jYWx0ZWNoLmVkdT4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogUmV2ZXJ0IHBhcnRzIG9mIGxhc3QgY2hhbmdlIHRvIG9wdGltaXplIHRoZSBzY2FsaW5nIGZ1bmN0aW9ucyBhZ2FpbgoJICBQYXJ0aWFsbHkgZml4ZXMgYnVnICM1OTA5MTkuCgoyMDA5LTA4LTExIDA5OjE2OjM4ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogRml4IHZpb2xhdGlvbnMgb2Ygc3RyaWN0LWFsaWFzaW5nIHJ1bGVzIGluIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSgpCgoyMDA5LTA4LTExIDA5OjEwOjQ3ICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGdzdHV0aWxzOiBSZWZhY3RvciBnc3RfdXRpbF91aW50NjRfc2NhbGUoKQoJICBUaGlzIHdpbGwgbGF0ZXIgbWFrZSBpdCBwb3NzaWJsZSB0byBwcm92aWRlIHJvdW5kaW5nIHZlcnNpb25zCgkgIG9mIGl0IHdpdGhvdXQgbXVjaCBjb2RlIGR1cGxpY2F0aW9uLgoJICBQYXJ0aWFsbHkgZml4ZXMgYnVnICM1OTA5MTkuCgoyMDA5LTA4LTExIDE1OjIwOjE4ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiB1cGRhdGUgZG9jIHN0cmluZwoKMjAwOS0wOC0xMSAxMzoyMTozNSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBBY3R1YWxseSBzdGFydD09c3RvcD09c2VnbWVudF9zdGFydCBpcyBpbnNpZGUgdGhlIHNlZ21lbnQKCSAgU3RpbGwgdGhlIG9sZCBjb2RlIHdhcyB3cm9uZyBhcyBpdCBjbGFpbWVkIHRoYXQgc3RhcnQ9PXN0b3A8c2VnbWVudF9zdGFydAoJICB3b3VsZCBiZSBpbnNpZGUgdGhlIHNlZ21lbnQgYW5kIHJldHVybmVkIGluc2FuZSBjbGlwcGluZyBkaWZmZXJlbmNlcy4KCjIwMDktMDgtMTEgMTM6MDM6MDMgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgZ3N0c2VnbWVudDogRml4IHVuaXQgdGVzdCBhbmQgYWRkIGFuIGFkZGl0aW9uYWwgdGVzdAoJICBUaGUgcHJldmlvdXMgdGVzdCBhc3N1bWVkIHRoYXQgc3RhcnQ9c3RvcD1zZWdtZW50X3N0YXJ0IHdpbGwKCSAgYmUgaW5zaWRlIHRoZSBzZWdtZW50IGJ1dCB0aGlzIGlzIHdyb25nLgoKMjAwOS0wOC0xMSAxMjo1OToxMyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBnc3RzZWdtZW50OiBDbGlwcGluZyBzaG91bGQgZGV0ZWN0IHN0YXJ0PXN0b3A8c2VnbWVudF9zdGFydCBhcyBvdXRzaWRlIHRoZSBzZWdtZW50CgkgIEJlZm9yZSBpdCByZXR1cm5lZCB0aGF0IFtzdGFydCxzdG9wXSBpcyBpbnNpZGUgdGhlIHNlZ21lbnQgYW5kIHRoYXQgdGhlCgkgIGRpZmZlcmVuY2UgYmV0d2VlbiBzZWdtZW50X3N0YXJ0IGFuZCBzdGFydCBuZWVkcyB0byBiZSBjbGlwcGVkLiBJZiB0aGUKCSAgY2xpcHBpbmcgaXMgZG9uZSBvbiBhIGJ1ZmZlciAobGlrZSBpbiBiYXNlYXVkaW9zaW5rKSB0aGlzIHdpbGwgcmVzdWx0CgkgIGluIHRoZSBkYXRhIHBvaW50ZXIgYmVpbmcgYXQgYSBpbnZhbGlkIG1lbW9yeSBwb3NpdGlvbi4KCSAgRml4ZXMgYnVnICM1ODk4NDkuCgoyMDA5LTA4LTExIDA1OjQ3OjIxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgZ3N0YnVzOiBVbnJlZiBwaXBlbGluZSBhZnRlciB1c2FnZSBpbiB0ZXN0X2N1c3RvbV9tYWluX2NvbnRleHQgdW5pdCB0ZXN0CgkgIFRoaXMgbWFrZXMgdGhlIGNvcmUgdW5pdCB0ZXN0cyB2YWxncmluZCBjbGVhbiBhZ2Fpbi4KCjIwMDktMDgtMTEgMDI6NTQ6NTUgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jczogYWRkIEVkd2FyZCdzIGdpdCBwbHVnaW4gbW92aW5nIGhvd3RvIHRvIG1vdmluZy1wbHVnaW5zIGRvY3VtZW50CgoyMDA5LTA4LTEwIDE0OjMwOjM0ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2tzOiBkb24ndCBmb3JnZXQgdG8gaW5jbHVkZSBjb25maWcuaCBpbiB0aGUgR3N0T2JqZWN0IHVuaXQgdGVzdAoKMjAwOS0wOC0xMCAxMzowNTo1NyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgY2hlY2tzOiB0cnkgdG8gZml4IEdzdE9iamVjdCB1bml0IHRlc3Qgb24gT1NYCgkgIFNlZW1zIGxpa2Ugd2UgZ2V0IFNJR0JVUyBpbnN0ZWFkIG9mIFNJR1NFR1YgaGVyZSB3aGVuIEdMaWIgY3Jhc2hlcwoJICB3aGVyZSBpdCBzaG91bGRuJ3QgY3Jhc2ggKGFuZCB3ZSBldmVuIGhhdmUgYSB1bml0IHRlc3QgZm9yIHRoYXQhKS4KCjIwMDktMDgtMTAgMTI6MDE6NDggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBjaGVja3M6IHNldCBwaXBlbGluZXMgdG8gTlVMTCBzdGF0ZSBpbiBwYXJzZS1sYXVuY2ggdW5pdCB0ZXN0CgkgIEZpeGVzIHRpbWVvdXRzIGluIGdzdF90YXNrX2NsZWFudXBfYWxsKCkuCgoyMDA5LTA4LTEwIDExOjQyOjI1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgY2hlY2tzOiBzZXQgcGlwZWxpbmUgYmFjayB0byBOVUxMIHN0YXRlIGluIEdzdEJ1cyB1bml0IHRlc3QKCSAgRml4ZXMgdGltZW91dCBpbiBnc3RfdGFza19jbGVhbnVwX2FsbCgpLgoKMjAwOS0wOC0xMCAxMTo0Mzo1MiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBjaGVjazogYWRkIHNvbWUgbG9nZ2luZyBiZWZvcmUgY2FsbGluZyBnc3RfdGFza19jbGVhbnVwX2FsbCgpCgoyMDA5LTA4LTA4IDIyOjI3OjA2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGNoZWNrOiBDYWxsIGdzdF90YXNrX2NsZWFudXBfYWxsKCkgaW4gR1NUX0VORF9URVNUCgkgIFRoaXMgZml4ZXMgbWFueSB1bml0IHRlc3RzIHVuZGVyIHZhbGdyaW5kIHRoYXQgc2hvd3MKCSAgbGVha2luZyBHc3RUYXNrcyB0aGF0IGFyZSBub3QgcmVhbGx5IGxlYWtlZCBidXQganVzdAoJICBub3QgdW5yZWZmZWQgYnkgdGhlIHRhc2sgdGhyZWFkIGJlZm9yZSB0aGUgdW5pdCB0ZXN0CgkgIHN0b3BwZWQuCgkgIEZpeGVzIGJ1ZyAjNTkxMDQ1LgoKMjAwOS0wOC0wOCAxNDo0Nzo1NyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDA5LTA4LTA4IDE0OjQ3OjQwICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0dGFzay5jOgoJICBnc3Q6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnRzCgoyMDA5LTA4LTA3IDAyOjM2OjI5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJICBnaXRpZ25vcmU6IGlnbm9yZSBuZXcgcXVldWUtZXJyb3IgdGVzdAoKMjAwOS0wOC0wNiAyMDo0MDowNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgY2hlY2s6IGFkZCBpbnRlcm5hbC1jaGVjay5oIHRvIEJVSUxUX1NPVVJDRVMgaW4gYXR0ZW1wdCB0byBmaXggdGhlIGJ1aWxkCgkgIEZvciBzb21lIHBlb3BsZSB0aGUgYnVpbGQgb2YgbGliZ3N0Y2hlY2sgd2FzIGJyb2tlbiBiZWNhdXNlIHRoZSBtYWtlCgkgIHRhcmdldCB0aGF0IGNyZWF0ZXMgdGhlIGludGVybmFsLWNoZWNrLmggZmlsZSB3YXNuJ3QgZXhlY3V0ZWQgZm9yCgkgIHNvbWUgcmVhc29uLiBUaGlzIHNob3VsZCBob3BlZnVsbHkgZml4IHRoaXMuCgoyMDA5LTA4LTA2IDE4OjM4OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IG9sZGVyIGFjbG9jYWxzIGRvbid0IGxpa2UgLUkuIHNvIHVzZSAtSSAuIGluc3RlYWQKCjIwMDktMDgtMDYgMTg6NDc6MzIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGdzdGJ1ZmZlcjogYWRkIGFkZGl0aW9uYWwgY2hlY2tpbmcgZm9yIHdyaXRhYmlsaXR5CgkgIENoZWNrIGZvciBtZXRhZGF0YSB3cml0YWJpbGl0eSB3aGVuIHNldHRpbmcgY2FwcyBvbiBidWZmZXIgb3Igd2hlbiBjb3B5aW5nCgkgIG1ldGFkYXRhIGZsYWdzLiBPbmx5IGVuYWJsZSB0aGVzZSBleHRyYSBhc3NlcnRpb25zIGluIGdpdCB2ZXJzaW9ucy4KCSAgVGhpcyBzaG91bGQgaGVscCB1cyBmaW5kIGJhZCBlbGVtZW50cy4KCjIwMDktMDgtMDQgMTA6MjI6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjaGVjazogZGlzYWJsZSB1bml0IHRlc3Qgc3VwcG9ydCBvbiB3aW4zMiBmb3Igbm93CgkgIFVudGlsIHdlIG1ha2UgdGhlIGludGVybmFsIGxpYmNoZWNrIHdvcmsgb24gd2luZG93cy4KCjIwMDktMDctMTkgMTc6MDQ6NTggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNoZWNrOiBmaXggc3ltYm9sIGV4cG9ydGluZwoKMjAwOS0wNy0xNyAwMDo0NjozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogY2hlY2stY2hlY2tzLm00OgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmM6CgkgIGNoZWNrOiBmaXggaXNzdWVzIHdpdGggJ21ha2UgZGlzdGNoZWNrJwoJICBTZWVtcyB0byB3b3JrIG5vdywgYXQgbGVhc3Qgb24gKm5peC4gT25lIG9mIHRoZSBjb25maWd1cmUgY2hlY2tzCgkgIGNhdXNlZCB0aGVzZSB3ZWlyZCBpc3N1ZXMgLSBidXQgd2hpY2ggb25lPwoKMjAwOS0wOC0wNiAxNzoyNzoxMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogYXV0b2dlbi5zaDoKCSogY2hlY2stY2hlY2tzLm00OgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgY2hlY2s6IHVzZSBwcml2YXRlIGNvcHkgb2YgY2hlY2sgZm9yIGxpYmdzdGNoZWNrCgkgIFNlZSAjNTc3Mjc1LiBTZWVtcyB0byB3b3JrIGZpbmUsIGJ1dCBkb2Vzbid0IGRpc3RjaGVjayB5ZXQuCgoyMDA5LTA3LTE2IDE4OjM5OjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVjay5oLmluOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19lcnJvci5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19pbXBsLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX2xpc3QuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbGlzdC5oOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19sb2cuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfbG9nLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX21zZy5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19tc2cuaDoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfcGFjay5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19wYWNrLmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3ByaW50Lmg6CgkqIGxpYnMvZ3N0L2NoZWNrL2xpYmNoZWNrL2NoZWNrX3J1bi5jOgoJKiBsaWJzL2dzdC9jaGVjay9saWJjaGVjay9jaGVja19zdHIuYzoKCSogbGlicy9nc3QvY2hlY2svbGliY2hlY2svY2hlY2tfc3RyLmg6CgkgIGNoZWNrOiBhZGQgaW50ZXJuYWwgY29weSBvZiBjaGVjay0wLjkuNgoJICBOb3QgaG9va2VkIHVwIHlldC4gU2VlICM1NzcyNzUuCgoyMDA5LTA4LTA2IDE0OjExOjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGRvY3M6IGZpeCBTaW5jZTogdGFnIGZvciBuZXcgZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpIGZ1bmN0aW9uCgoyMDA5LTA3LTIyIDExOjI0OjU5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgdXRpbHM6IHVzZSBuZXcgX2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDExOjI0OjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIG5ldyBfY2Fwc19jYW5faW50ZXJzZWN0KCkKCjIwMDktMDctMjIgMDk6NTQ6NTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiB1c2UgbmV3IF9jYXBzX2Nhbl9pbnRlcnNlY3QoKQoKMjAwOS0wNy0yMiAwOTozODoxMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGNhcHM6IGFkZCBnc3RfY2Fwc19jYW5faW50ZXJzZWN0KCkKCSAgT2Z0ZW4gd2UgZG9uJ3QgbmVlZCB0aGUgcmVzdWx0IG9mIHRoZSBpbnRlcnNlY3Rpb24uIEFkZCBhIHZhcmlhbnQgdGhhdCBvbmx5CgkgIHRyaWVzIHRvIGludGVyc2VjdC4gSXQgY2FuIGJyZWFrIG91dCBlYXJsaWVyIGFuZCBkb2VzIGxlc3MgR1ZhbHVlIGNvcHlpbmcuCgkgIEFQSTogZ3N0X2NhcHNfY2FuX2ludGVyc2VjdCgpCgoyMDA5LTA3LTIyIDA5OjI0OjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogb25seSBjaGVjayBjYXBzX2lzX2ZpeGVkKCkgaWYgdGhleSBjaGFuZ2VkCgkgIFRoZSBwcmV2aW91cyBjb2RlIGNvdWxkIGNhbGwgZ3N0X2NhcHNfaXNfZml4ZWQoKSBmb3IgdGhlIHNhbWUgY2FwcyBtYW55IHRpbWVzLgoKMjAwOS0wNy0yMSAxMzozMToxMyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2Fwczogc3BsaXQgY2FsbGJhY2sgZm9yIHN0cnVjdHVyZSBpbnRlcnNlY3QgaW50byB0d28gZnVuY3Rpb25zCgkgIFdlIGNhbGwgdGhpcyBzZXBhcmF0ZWx5LiB0aGVyZSBpcyBubyBtdWNoIGJlbmVmaXQgaW4gcmV1c2luZyB0aGUgY2FsbGJhY2suCgkgIFNwbGl0dGluZyBpcyBsZXQgdXMgcmVtb3ZlIGEgYnJhbmNoIGFsc28uCgoyMDA5LTA3LTIxIDEzOjI3OjA5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJICBsb2dnaW5nOiBsb2cgaWYgd2UgY29weSBjYXBzIHRvIGJlIGFibGUgdG8gdHJhY2sgaXQKCjIwMDktMDctMjEgMTE6MzI6MDEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGNhcHM6IGFkZCBjb21tZW50cyBhYm91dCBnX3B0cl9hcnJheSBzaXplIGJlaGF2aW91cgoJICBKdXN0IGV4cGxhaW4gdGhlIGJlaGF2aW91ciB0byBhdm9pZCB0aGF0IHNvbWVvbmUgZWxzZSBpcyB3YXN0aW5nIHRpbWUgdHJ5aW5nIHRvCgkgIGltcHJvdmUgdGhpcyB0b28uCgoyMDA5LTA3LTIxIDExOjE0OjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgZXhhbXBsZTogdW5yZWYgdGhlIGNsb2NrIGlkCgoyMDA5LTA3LTIxIDEwOjU2OjUzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogdXNlIGNvcnJlY3QgdmFyaWFibGUgaW4gdGVzdAoKMjAwOS0wNy0yOCAxNjoxMzozNyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBhZGQgZmlsZW5hbWUgdG8gZGVidWcgbWVzc2FnZSwgbGlrZSBlbHNld2hlcmUKCjIwMDktMDctMjEgMTA6Mzg6MTUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBmaXggY29tcGlsZXIgd2FybmluZyBhYm91dCB1bnVzZWQgdmFyIHdoZW4gZGlzYWJsaW5nIGRlYnVnIGxvZ2dpbmcKCjIwMDktMDgtMDYgMTM6Mjk6MjkgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBxdWV1ZTogcG9zdCBlcnJvciBtZXNzYWdlIHdoZW4gcGF1c2luZyB0YXNrCgkgIElmIGRvd25zdHJlYW0gcmV0dXJucyBlcnJvciBhbmQgdXBzdHJlYW0gaGFzIGFscmVhZHkgZGVsaXZlcmVkCgkgIGV2ZXJ5dGhpbmcgKGluY2x1ZGluZyBFT1MpIGFuZCB3aWxsIG5vIGxvbmdlciBiZSBhcm91bmQgdG8gZmluZAoJICBvdXQgdGhhdCB3ZSBwYXVzZWQgKGFuZCB3aHkpLCBwb3N0IGVycm9yIG1lc3NhZ2UuICBGaXhlcyAjNTg5OTkxLgoKMjAwOS0wNy0yOCAxMjowMzozNiArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3F1ZXVlLWVycm9yLmM6CgkgIHF1ZXVlOiBhZGQgdW5pdCB0ZXN0CgkgIE1ha2UgYSBkb3duc3RyZWFtIGVsZW1lbnQgcmV0dXJuIGFuIGVycm9yIGFmdGVyIHVwc3RyZWFtIGhhcyBhbHJlYWR5CgkgIHB1dCBhbGwgZGF0YSBpbnRvIHF1ZXVlIChpbmNsdWRpbmcgRU9TKS4gIEFzIHN1Y2gsIHVwc3RyZWFtCgkgIHdpbGwgbm90IGJlIGFyb3VuZCB0byBwaWNrIHVwIHRoZSBlcnJvciwgc28gaXQgaXMgdXAgdG8gcXVldWUgdG8KCSAgYWN0IGFwcHJvcHJpYXRlbHkuICBTZWUgIzU4OTk5MS4KCSAgTm90ZSB0aGVyZSBtYXkgYmUgZG93bnN0cmVhbSBmYXRhbCBlcnJvcnMgKGUuZy4gbmVnb3RpYXRpb24pIHRoYXQgZG8KCSAgbm90IHdhcnJhbnQgYW4gZXJyb3IgbWVzc2FnZSBhbHJlYWR5IGhhdmluZyBiZWVuIHBvc3RlZC4KCjIwMDktMDgtMDUgMTg6MDI6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogY2xhcmlmeSBfY2Fwc19pc19lcXVhbCgpCgoyMDA5LTA4LTA1IDE3OjU4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IHJlZmFjdG9yIG1ldGFkYXRhIG1vZGlmaWNhdGlvbnMKCSAgQ2hlY2sgd2hlbiB3ZSBuZWVkIHRvIHRvdWNoIHRoZSBtZXRhZGF0YSBvZiB0aGUgb3V0cHV0IGJ1ZmZlciBhZnRlciBzZWxlY3RpbmcKCSAgdGhlIG91dHB1dCBidWZmZXIgc28gdGhhdCB3ZSBoYXZlIGV2ZXJ5dGhpbmcgaW4gb25lIHBsYWNlLgoJICBBbHNvIHRha2UgZmxhZ3MgYW5kIHRpbWVzdGFtcCBtb2RpZmljYXRpb25zIGludG8gYWNjb3VudC4KCjIwMDktMDgtMDUgMTc6NTU6MTQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgY2Fwc2ZpbHRlcjogb25seSBzZXQgY2FwcyB3aGVuIGRpZmZlcmVudAoJICBXaGVuIHdlIGhhdmUgYW4gaW5wdXQgYnVmZmVyIHdpdGggY2FwcyBhbmQgd2hlbiB0aG9zZSBjYXBzIGFyZSBkaWZmZXJlbnQgZnJvbQoJICB0aGUgY2FwcyB3ZSB3YW50LCBvbmx5IHRoZW4gbWFrZSBhIHdyaXRhYmxlIGNvcHkgb2YgdGhlIGlucHV0IGJ1ZmZlciBhcyB0aGUKCSAgb3V0cHV0IGJ1ZmZlciBhbmQgc2V0IHRoZSBjYXBzIG9uIHRoYXQgb3V0cHV0IGJ1ZmZlci4gVGhpcyBhdm9pZHMgc29tZSBjYXNlcwoJICB3aGVyZSB3ZSB0b29rIGEgc3ViYnVmZmVyIGZvciBzZXR0aW5nIGNhcHMgdGhhdCB3ZXJlIHRoZSBzYW1lLgoKMjAwOS0wOC0wNSAxNToyODo1OSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBlbmFibGUgb3B0aW1pc2F0aW9uCgkgIFdoZW4gd2UgaGF2ZSB0aGUgc2FtZSBpbnB1dCBhcyBvdXRwdXQgY2FwcywgcmV1c2UgdGhlIGlucHV0IGNhcHMgb2JqZWN0LiBBZnRlcgoJICB0aGUgY2FwcyByZWZjb3VudGluZyBoYXMgYmVlbiBzb3J0ZWQgb3V0IG5vdywgd2UgY2FuIGZpbmFsbHkgZW5hYmxlIHRoaXMKCSAgb3B0aW1pc2F0aW9uLgoKMjAwOS0wOC0wNSAxMzo0ODo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdGVzdHM6IGRvbid0IHNldCBjYXBzIG9uIHVud3JpdGFibGUgYnVmZmVycwoJICBUYWtlIHRoZSByZWYgYWZ0ZXIgc2V0dGluZyB0aGUgY2FwcyBvbiBhIGJ1ZmZlciBiZWNhdXNlIGVsc2UgdGhlIGJ1ZmZlciBpcwoJICB0ZWNoaW5pY2FsbHkgbm90IHdyaXRhYmxlLgoKMjAwOS0wOC0wNSAxMzo0NzozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgcXVldWU6IGdldCBjYXBzIGFmdGVyIG1ha2luZyB3cml0YWJsZQoJICBHZXQgdGhlIGNhcHMgb2YgdGhlIGJ1ZmZlciBhZnRlciB3ZSBtYWRlIHRoZSBidWZmZXIgd3JpdGFibGUuIFRoaXMgZGlkIG5vdAoJICBjYXVzZSBhbnkgcHJvYmxlbXMgYnV0IGl0J3MgbmljZXIgdGhpcyB3YXkuCgoyMDA5LTA4LTA1IDEzOjQ2OjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IGZpeCByZWZjb3VudGluZyBwcm9ibGVtCgkgIE1ha2Ugc3VyZSB0aGUgbWV0YWRhdGEgaXMgd3JpdGFibGUgYmVmb3JlIHNldHRpbmcgdGhlIGNhcHMgb24gYSBidWZmZXIuCgoyMDA5LTA4LTA1IDEzOjQ0OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IGZpeCByZWZjb3VudGluZyBwcm9ibGVtCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgTWFrZSBzdXJlIHRoYXQgdGhlIG91dHB1dCBidWZmZXIgaGFzIHdyaXRhYmxlIG1ldGFkYXRhIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIHNldAoJICBjYXBzIG9uIGl0LgoJICBmaXhlcyAjNTgzOTk5CgoyMDA5LTA4LTA1IDEzOjQ0OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW4gX3JlcGxhY2UKCjIwMDktMDgtMDUgMTM6NDM6MTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHBhZDogQWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcKCjIwMDktMDgtMDUgMTM6NDE6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHNtYWxsIGltcHJvdmVtZW50cwoJICBVbnJlZiB0aGUgdGFyZ2V0IHBhZCBhZnRlciB3ZSB1c2VkIGl0IGZvciBkZWJ1Z2dpbmcuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcuCgkgIE9ubHkgcmVwbGFjZSBjYXBzIHdoZW4gdGhleSBjaGFuZ2VkLgoKMjAwOS0wNy0yOSAxMzo0NjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNsZWFudXBzIGluIHBvc2l0aW9uIHF1ZXJpZXMKCSAgVXNlIGV4aXN0aW5nIGJvb2xlYW4gZmxhZyB0byBwYXNzIHBvc2l0aW9uIHF1ZXJpZXMgdXBzdHJlYW0uIEFsc28gYWRkIHVwc3RyZWFtCgkgIHF1ZXJpZXMgZm9yIHRoZSBsYXN0IHBvc2l0aW9uIHF1ZXJpZXMuCgoyMDA5LTA4LTA1IDEzOjI1OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlLmFjOiBmaXggbGlieG1sMiBjaGVjaywgd2hpY2ggaXMgb25seSBuZWVkZWQgZm9yIHhtbCBsb2FkL3NhdmUgbm93CgkgIFNpbmNlIHRoZSByZWdpc3RyeSBkb2Vzbid0IHVzZSBsaWJ4bWwyIGFueSBsb25nZXIsIGl0J3Mgbm8gbG9uZ2VyIG5lY2Vzc2FyeQoJICB0byBkaXNhYmxlIGJvdGggeG1sIGxvYWQvc2F2ZSAqYW5kKiB0aGUgcmVnaXN0cnkgdG8gZ2V0IHJpZCBvZiB0aGUgbGlieG1sMgoJICBkZXBlbmRlbmN5LCBkaXNhYmxpbmcganVzdCB4bWwgbG9hZGluZy9zYXZpbmcgaXMgZW5vdWdoLiBGaXhlcyAjNTkwODQxLgoKMjAwOS0wOC0wMiAxNDozMzo1OSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVuYW1lIHVuaW5zdGFsbGVkIHJlZ2lzdHJ5IGZpbGUgdG8gcmVnaXN0cnkuZGF0CgkgIFdlJ3JlIG5vdCB1c2luZyB0aGUgeG1sIHJlZ2lzdHJ5IGFueSBsb25nZXIgYWZ0ZXIgYWxsLgoKMjAwOS0wOC0wMiAxNDoyODozOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGdzdC11bmluc3RhbGxlZDogcmVmaW5lIHNlYXJjaCBwYXRocyBmb3IgdW5pbnN0YWxsZWQgcGx1Z2luIG1vZHVsZXMKCSAgVXNlIG1vcmUgcmVmaW5lZCBzZWFyY2ggcGF0aHMgZm9yIG91ciBwbHVnaW4gbW9kdWxlcy4gTm90IG9ubHkgZG9lcwoJICB0aGlzIG1ha2UgdGhpbmdzIG11Y2ggZmFzdGVyIGluIGFuIHVuaW5zdGFsbGVkIHNldHVwLCBpdCBhbHNvIG1ha2VzCgkgIHN1cmUgd2UncmUgbm90IGFjY2lkZW50YWxseSB1c2luZyBvdXQtb2YtZGF0ZSBwbHVnaW5zIGJ1aWx0IGFnZXMKCSAgYWdvIGFzIHBhcnQgb2YgYSAoZmFpbGVkKSAnbWFrZSBkaXN0Y2hlY2snIHdoZW4gd2UgZm9yZ2V0IHRvIGNsZWFuCgkgIHVwIHRoZSBkaXN0Y2hlY2sgYnVpbGQgZGlyZWN0b3J5LgoKMjAwOS0wNy0yOSAyMzo0MjozOSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jczogZGlzdCBHU3RyZWFtZXItMS4wIGJ1ZmZlciBkZXNpZ24gZHJhZnQKCjIwMDktMDgtMDYgMDY6NTA6NDEgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdGFnbGlzdDogQWRkIG5ldyBBTEJVTV9BUlRJU1QgdGFnIHRvIHRoZSBkb2NzCgoyMDA5LTA4LTA0IDE0OjEzOjM0ICswMjAwICBKb2huIE1pbGxpa2luIDxqbWlsbGlraW5AZ21haWwuY29tPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogQWRkIHN1cHBvcnQgZm9yIEFMQlVNX0FSVElTVCB0YWcKCSAgVGhlICJhbGJ1bSBhcnRpc3QiIHRhZyBpcyB1c2VkIHdoZW4gdGhlIGFydGlzdCBvZiBhbiBlbnRpcmUKCSAgYWxidW0gZGlmZmVycyBmcm9tIHRoZSBhcnRpc3Qgb2YgYW4gaW5kaXZpZHVhbCB0cmFjazsgZm9yIGV4YW1wbGUsCgkgIHdoZW4gYSAiZ3Vlc3QgYXJ0aXN0IiBhcHBlYXJzIG9uIGFuIGFsYnVtLCBvciBvbiBjb21waWxhdGlvbnMuCgkgIEZpeGVzIGJ1ZyAjNTkwNDMwLgoKMjAwOS0wNy0yOSAxMzozMzoxMSArMDIwMCAgU3RpYW4gU2VsbmVzIDxzdGlhbi5zZWxuZXNAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogUXVlcnkgdXBzdHJlYW0gZm9yIHRoZSBwb3NpdGlvbiBpZiBjb252ZXJzaW9uIGluIFBBVVNFRCBmYWlsZWQKCSAgRml4ZXMgYnVnICM1OTAwNDUuCgoyMDA5LTA3LTI4IDIwOjQyOjIwICswMjAwICBLaXBwIENhbm5vbiA8a2Nhbm5vbkBsaWdvLmNhbHRlY2guZWR1PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIGJhc2V0cmFuc2Zvcm06IEltcHJvdmUgZGVidWcgb3V0cHV0IGluIGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKCkKCSAgRml4ZXMgYnVnICM1ODk1MjQuCgoyMDA5LTA3LTIyIDA5OjAxOjU2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBEb24ndCB1bnNldCBHQVAgZmxhZyBpZiB3b3JraW5nIGluIHBhc3N0aHJvdWdoIG1vZGUKCSAgRml4ZXMgYnVnICM1ODkzMTQuCgoyMDA5LTA4LTA2IDAxOjQzOjU3ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yNC4xCgo9PT0gcmVsZWFzZSAwLjEwLjI0ID09PQoKMjAwOS0wOC0wNSAwMDo1MToxNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkgIFJlbGVhc2UgMC4xMC4yNAoKMjAwOS0wOC0wNCAyMzowNToyNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMDgtMDMgMTU6MzE6MjIgKzAyMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hcmsubmF1d2VsYWVydHNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkgIGJ5dGVyZWFkZXI6IGF2b2lkIHdyYXAtYXJvdW5kIGluIGJ1ZmZlciBzaXplIGNoZWNrcy4gIEZpeGVzICM1OTA2MjIuCgoyMDA5LTA3LTMwIDE0OjQxOjMwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjQuNSBwcmUtcmVsZWFzZQoKMjAwOS0wNy0yOCAyMToxNTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IEdldCB0aGUgZmx1c2hpbmcgc3RhdGUgd2l0aCB0aGUgb2JqZWN0IGxvY2sgdGFrZW4uCgkgIEZpeGVzICM1OTAwNTYKCjIwMDktMDctMjggMjE6MTQ6MTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBNYWtlIHN1cmUgdGhlIENvbGxlY3REYXRhIGxpc3QgaXMgdXAtdG8tZGF0ZSB3aGVuIHJlYWRpbmcvc2V0dGluZyBpdAoJICBXaXRob3V0IHRoaXMsIHdlIHJpc2tlZDoKCSAgKiBDaGVja2luZyB0aGUgZmx1c2hpbmcgc3RhdGUgb24gYW4gdW5leGlzdGluZyBsaXN0CgkgICogTm90IHNldHRpbmcgdGhlIGZsdXNoaW5nIHN0YXRlIG9uIHBhZHMgdGhhdCBoYWQganVzdCBiZWVuIGFkZGVkCgkgIFBhcnRpYWxseSBmaXhlcyAjNTkwMDU2CgoyMDA5LTA3LTI4IDIxOjEyOjI1ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogU3BsaXQgb3V0IF9jaGVja19wYWRzIGludG8gYSB2ZXJzaW9uIHdpdGhvdXQgbG9jayB0YWtpbmcuCgkgIFRoaXMgaXMgc28gd2UgY2FuIHVzZSBfY2hlY2tfcGFkcyBpbiBwbGFjZXMgd2hlcmUgd2UndmUgYWxyZWFkeSB0YWtlbgoJICB0aGUgbG9jayBpbiBxdWVzdGlvbi4KCSAgUGFydGlhbGx5IGZpeGVzICM1OTAwNTYKCjIwMDktMDctMjggMTU6MjM6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNvbnNpc3RlbmN5Y2hlY2tlci5oOgoJICBjaGVjazogbWFrZSBuZXcgR3N0U3RyZWFtQ29uc2lzdGVuY3kgc3RydWN0dXJlIHByaXZhdGUKCSAgVGhlcmUncyBubyBuZWVkIHRvIGhhdmUgR3N0U3RyZWFtQ29uc2lzdGVuY3kgaW4gYSBwdWJsaWMgaGVhZGVyIGZvcgoJICB0aGUgdGltZSBiZWluZywgc28gbWFrZSBpdCBwcml2YXRlLiBXaGlsZSB3ZSdyZSBhdCBpdCwgYWRkIGEgZ3RrLWRvYwoJICBibHVyYiBmb3IgaXQgdGhvdWdoLiBSZS1maXhlcyAjNTg4NzQ0LgoKMjAwOS0wNy0yNCAxMzo1MDoxOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICAwLjEwLjIzLjQgcHJlLXJlbGVhc2UKCjIwMDktMDctMjQgMDk6NTA6MTkgKzAxMDAgIFJvYmluIFN0b2NrZXIgPHJvYmluQG5pYm9yLm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBkb24ndCBoYW5kbGUgU0VFS0lORyBxdWVyaWVzIGZvciBmb3JtYXRzIHRoYXQgZG9uJ3QgbWF0Y2ggdGhlIG9uZSB0aGUgc291cmNlIG9wZXJhdGVzIGluCgkgIFJldHVybiBGQUxTRSBpbiBiYXNlc3JjJ3MgZGVmYXVsdCBxdWVyeSBoYW5kbGVyIHdoZW4gd2UgZ2V0IGEgU0VFS0lORyBxdWVyeSBmb3IKCSAgYSBmb3JtYXQgdGhhdCdzIG5vdCB0aGUgb25lIHRoZSBzb3VyY2Ugb3BlcmF0ZXMgaW4uIFByZXZpb3VzbHkgKGllLiBiZWZvcmUsIGluCgkgIHRoZSBnaXQgdmVyc2lvbikgd2Ugd291bGQgcmV0dXJuIFRSVUUgaW4gdGhhdCBjYXNlIGFuZCBzZWVrYWJsZT1GQUxTRSwgd2hpY2gKCSAgaXMgbW9yZSBjb3JyZWN0LCBidXQgY2F1c2VzIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHByb2JsZW1zLiAoQmVmb3JlIHRoYXQKCSAgd2Ugd291bGQgY2hhbmdlIHRoZSBmb3JtYXQgb2YgdGhlIHF1ZXJ5IHdoZW4gYW5zd2VyaW5nLCB3aGljaCB3YXMgY29tcGxldGVseQoJICBicm9rZW4gc2luY2UgY2FsbGVycyBkb24ndCBleHBlY3QgdGhhdCBvciBjaGVjayBmb3IgaXQpLiBTaW5jZSB0aGUgU0VFS0lORwoJICBxdWVyeSBpcyBhIGZhaXJseSByZWNlbnQgYWRkaXRpb24sIG5vdCBhbGwgZGVtdXhlcnMsIHBhcnNlcnMgYW5kIGRlY29kZXJzCgkgIGltcGxlbWVudCBpdCB5ZXQsIGluIHdoaWNoIGNhc2UgYW55IFNFRUtJTkcgcXVlcnkgYnkgYW4gYXBwbGljYXRpb24gd2lsbAoJICBqdXN0IGJlIHBhc3NlZCB1cHN0cmVhbSB3aGVyZSBpdCB3aWxsIHRoZW4gYmUgaGFuZGxlZCBieSBiYXNlc3JjLiBOb3csIGlmCgkgIGUuZy4gdG90ZW0gZG9lcyBhIFNFRUtJTkcgcXVlcnkgZm9yIFRJTUUgZm9ybWF0IGFuZCB3ZSBoYXZlIGEgZGVtdXhlciB0aGF0CgkgIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBxdWVyeSwgYmFzZXNyYyB3b3VsZCBhbnN3ZXIgaXQgd2l0aCBzZWVrYWJsZT1GQUxTRSBpbgoJICBtb3N0IGNhc2VzLCBhbmQgdG90ZW0gY2FuIG9ubHkgdGFrZSB0aGF0IGFzIGF1dGhvcml0YXRpdmUgYW5zd2VyLCBub3Qga25vd2luZwoJICB0aGF0IHRoZSBkZW11eGVyIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBTRUVLSU5HIHF1ZXJ5LiBUbyBhdm9pZCB0aGlzLCB3ZSBtYWtlCgkgIGJhc2VzcmMgcmV0dXJuIEZBTFNFIHRvIFNFRUtJTkcgcXVlcmllcyBpbiB1bmhhbmRsZWQgZm9ybWF0cy4gVGhhdCB3YXkKCSAgYXBwbGljYXRpb25zIGxpa2UgdG90ZW0gY2FuIGZhbGwgYmFjayBvbiBhc3N1bWluZyBzZWVrYWJpbGl0eSBkZXBlbmRpbmcgb24KCSAgd2hldGhlciBhIGR1cmF0aW9uIGlzIGF2YWlsYWJsZSwgb3Igc29tZXN1Y2guIERvd25zdHJlYW0gZWxlbWVudHMgZG9pbmcKCSAgc3VjaCBxdWVyaWVzIGFyZSBsaWtlbHkgdG8gZXF1YXRlIGFuIHVuaGFuZGxlZCBxdWVyeSB3aXRoIGEgbm9uLXNlZWthYmxlCgkgIHJlc3BvbnNlIGFzIHdlbGwsIHNvIHRoaXMgc2hvdWxkIGJlIGFuIGFjY2VwdGFibGUgZml4IGZvciB0aGUgdGltZSBiZWluZy4KCSAgU2VlICM1ODQ4MzgsICM1ODg5NDQsICM1ODk0MjMgYW5kICM1ODk0MjQuCgoyMDA5LTA3LTI0IDAwOjQxOjU1ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGZlZGFhZWUgdG8gOTRmOTVlMwoKMjAwOS0wNy0yMCAxNjoxMTowMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGdzdHJlZ2lzdHJ5YmluYXJ5OiBhZGQgKzEgYWZ0ZXIgZXJyb3IgY2hlY2tpbmcKCSAgVGhlIGN1cnJlbnQgY29kZSBtYWRlIHRoZSBlcnJvciBjaGVja2luZyBwb2ludGxlc3MgYnkgY2hhbmdpbmcgLTEgdG8gMCBpbiBlcnJvcgoJICBjYXNlcy4gQWxzbyBkb24ndCBsZWFrIGEgcGFkIHRlbXBsYXRlIG9uIGVycm9yLgoKMjAwOS0wNy0yMCAxNTo1MToyMCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yMy4zIHByZS1yZWxlYXNlCgoyMDA5LTA3LTIwIDE4OjAzOjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgdGVzdHM6IG1ha2Ugc3VyZSB0aGUgdGFza3MgYXJlIGpvaW5lZAoJICBDYWxsIF9jbGVhbl9hbGwoKSBvbiB0aGUgdGFzayB0byBtYWtlIHN1cmUgZXZlcnl0aGluZyBpcyBqb2luZWQgYW5kIHN0b3BwZWQuCgkgIFNlZSAjNTg5MTI3CgoyMDA5LTA3LTIwIDE1OjQ0OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZml4IHRhc2twb29sIGxlYWsKCSAgR3N0VGFrcyBkb2VzIG5vdCBhbHdheXMgdW5yZWYgdGhlIHRhc2twb29sIGl0IHdhcyBjcmVhdGVkIGZyb20gYmVjYXVzZSBpdAoJICBkZXBlbmRzIG9uIHdoZW4gdGhlIHBvb2wgcHJvdmlkZWQgYW4gSUQgZm9yIGpvaW5pbmcgdGhlIHRhc2suCgkgIFJld29yayBzb21lIGNvZGUgc28gdGhhdCB3ZSBhbHdheXMgdW5yZWYgdGhlIHBvb2wgYW5kIG9wdGlvbmFsbHkgam9pbiB3aGVuIHRoZQoJICBwb29sIHByb3ZpZGVkIGFuIGlkLgoJICBGaXhlcyAjNTg5MTI3CgoyMDA5LTA3LTIwIDEzOjI2OjUxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGJhc2VzcmM6IG1ha2UgdGFnIHF1ZXVpbmcgdGhyZWFkc2FmZQoJICBTZWUgIzU4ODc0NQoKMjAwOS0wNy0xMyAwOToyMjowNiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9jaGVjay9nc3Rjb25zaXN0ZW5jeWNoZWNrZXIuYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y29uc2lzdGVuY3ljaGVja2VyLmg6CgkgIGdzdGNoZWNrOiBBZGQgYSBzdHJlYW0gY29uc2lzdGVuY3kgY2hlY2tpbmcgaGVscGVyIHJvdXRpbmUuIEZpeGVzICM1ODg3NDQKCjIwMDktMDctMjAgMTE6MDQ6MDUgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogZG9uJ3QgdW5yZWYgTlVMTCBpZiB3ZSBoYXZlIGFuIGVhcmx5IHJlYWQgZXJyb3IKCjIwMDktMDctMTIgMTA6MDQ6MDEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogU2VyaWFsaXplIHRhZ3MgaW50byB0aGUgZGF0YWZsb3cuIEZpeGVzICM1ODg3NDUKCjIwMDktMDctMTYgMTQ6MTc6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOgoJICBkb2NzOiBmaXggQVBJIGRvY3MgZm9yIGdzdF97YWRhcHRlcnxieXRlX3JlYWRlcn1fbWFza2VkX3NjYW5fdWludDMyCgkgIENsYXJpZnkgYnl0ZSByZWFkZXIgZG9jcyBhIGJpdDogb2Zmc2V0IGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50CgkgIHBvc2l0aW9uIG9mIHRoZSByZWFkZXIsIG5vdCB0byB0aGUgc3RhcnQgb2YgdGhlIGRhdGEuIEFsc28sIHRoZQoJICBleGFtcGxlcyBpbiBib3RoIHRoZSBhZGFwdGVyIGRvY3MgYW5kIHRoZSBieXRlIHJlYWRlciBkb2NzIGhhdmUKCSAgdGhlIG1hc2sgYW5kIHBhdHRlcm4gYXJndW1lbnRzIHN3YXBwZWQgKHNlZSAjNTg3NTYxKS4gU3BvdHRlZAoJICBieSBDYXJsLUFudG9uIEluZ21hcnNzb24uCgoyMDA5LTA3LTE2IDEzOjU5OjA3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0YWdzOiBvbmx5IGVtaXQgYSBnX3dhcm5pbmcoKSBmb3IgZW1wdHkgdGFnIHN0cmluZ3MgZm9yIGdpdCB2ZXJzaW9ucwoJICBGb3Igbm93LCBkb24ndCBzaG93IGEgZ193YXJuaW5nKCkgZm9yIGVtcHR5IHRhZyBzdHJpbmdzIGFuZCBOVUxMCgkgIHRhZ3Mgd2l0aCBub24tZ2l0IHZlcnNpb25zOyB3ZSBzaG91bGQgd2FpdCBmb3IgdGhlIGZpeGVzIGluIG91cgoJICBwbHVnaW4gbW9kdWxlcyB0byBtYWtlIGl0IGludG8gYSByZWxlYXNlIGJlZm9yZSB3ZSBlbmFibGUgdGhpcwoJICB1bmNvbmRpdGlvbmFsbHkuCgoyMDA5LTA3LTE0IDE4OjU5OjEzICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIDAuMTAuMjMuMiBwcmUtcmVsZWFzZQoKMjAwOS0wNy0xNCAxMjoxNTowNSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIHZhbHVlOiBhZGQgZXhwbGFuYXRpb24gZm9yIHNob3J0Y3V0CgoyMDA5LTA3LTEwIDIwOjA0OjQ4ICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogdGFrZSBzaXplIG9uY2UKCjIwMDktMDctMTAgMTk6MTc6MDQgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB2YWx1ZTogZml4IGNhbl9pbnRlcnNlY3QgdG8gYmVoYXZlIGxpa2UgaW50ZXJzZWN0CgkgIEFkZCBhIHF1aWNrIHJldHVybiBpZiB0d28gdHlwZXMgYXJlIHRoZSBzYW1lLiBDaGFuZ2UgdGhlIGNoZWNrIGZvciB0aGUKCSAgaW50ZXJzZWN0aW9uIGZ1bmN0aW9uIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBvbmUgdXNlZCBpbiBpbnRlcnNlY3QoKS4gVGhlCgkgIGxhdGVyIHRyaWVzIGJvdGggZGlyZWN0aW9ucy4KCjIwMDktMDctMTQgMDA6MDQ6MjIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgZ3N0aW5mbzogbWFpbnRhaW4gQUJJIGNvbXBhdGliaWxpdHkgZXZlbiBpZiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQKCjIwMDktMDctMDIgMTI6NDA6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkgIHN0cnVjdHVyZTogQ2hhbmdlIE5VTEwgYW5kIGVtcHR5IHN0cmluZyBoYW5kbGluZwoJICBEb24ndCBmb3JiaWQgdGhlIGVtcHR5IHN0cmluZyAiIiBpbiBnZW5lcmljIHN0cnVjdHVyZXMsIG9ubHkgaW4gdGFnbGlzdHMuCgkgIFByb3Blcmx5IGFsbG93IHRoZSBOVUxMIHN0cmluZyBieSBhZGRpbmcgc3BlY2lhbCBjYXNlcyBmb3Igc2VyaWFsaXNpbmcKCSAgYW5kIGRlc2VyaWFsaXNpbmcgaXQuIHByb3AxPShzdHJpbmcpTlVMTCBpcyB0aGUgTlVMTCBzdHJpbmcsCgkgIHByb3AxPShzdHJpbmcpIk5VTEwiIGlzIHRoZSBhY3R1YWwgc3RyaW5nIHdpdGggdGhlIHZhbHVlICJOVUxMIgoKMjAwOS0wNy0xMyAxMjoyMzowMiAtMDQwMCAgT2xpdmllciBDcsOqdGUgPG9saXZpZXIuY3JldGVAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ODQ1YjYzIHRvIGZlZGFhZWUKCjIwMDktMDctMTMgMTI6MDA6NDcgKzAyMDAgIEFuZG9uaSBNb3JhbGVzIDx5bGF0dXlhIGF0IGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSAgZmlsZXNpbms6IEZpeCBzZWdmYXVsdCB3aXRoIE1TVkMKCSAgRG9uJ3QgdXNlIGRlcHJlY2F0ZWQgZmlsZW5vIG9uIE1TVkMgYnV0IHJlcGxhY2Ugd2l0aCBfZmlsZW5vCgkgIEZpeGVzICM1ODcwNTIKCjIwMDktMDctMTMgMDk6MzI6NTcgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgZG9jcy9kZXNpZ246IFVwZGF0ZSBNYWtlZmlsZS5hbSBmb3IgY2hhbmdlZCBmcmFtZXN0ZXAgZG9jdW1lbnQgbmFtZS4KCjIwMDktMDctMTAgMTk6Mjc6MjEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgdG9vbHM6IHRoZSBwbHVnaW4gZmVhdHVyZXMgbGlzdGVkIGJ5IGdzdC1pbnNwZWN0IGFyZSB0eXBlZmluZGVycywgbm90IHR5cGVzCgoyMDA5LTA3LTEwIDE4OjQ2OjM5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtYnVmZmVyMi50eHQ6CgkgIGRvY3M6IGFkZCBkcmFmdCBmb3IgYXJiaXRyYXJ5IGJ1ZmZlciBtZXRhZGF0YSBpZGVhCgoyMDA5LTA3LTEwIDE4OjM1OjIxICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1mcmFtZXN0ZXAudHh0OgoJICBkb2NzOiBtb3JlIGZyYW1lc3RlcCBkb2NzIG91dCBvZiBkcmFmdAoKMjAwOS0wNy0xMCAxODozMzo1OCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkgIGRvY3M6IHVwZGF0ZSBmcmFtZXN0ZXAgZG9jdW1lbnQKCSAgUmVtb3ZlIGV4cGVyaW1lbnRhbCBzdGF0dXMgZnJvbSB0aGUgZnJhbWVzdGVwIGRyYWZ0LgoKMjAwOS0wNy0wOCAxNToxNTowNCArMDIwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBqQG9wZXJhLmNvbT4KCgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IEZpeCBjb21waWxhdGlvbiBpZiBvcHRpb24gcGFyc2luZyBpcyBkaXNhYmxlZAoJICBGaXhlcyBidWcgIzU4Nzk3Ni4KCjIwMDktMDctMDggMTU6MTA6MjYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBVc2UgZ19idWlsZF9maWxlbmFtZSgpIGluc3RlYWQgb2YgZ19zdHJqb2luKCkgd2l0aCAvCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHRoZSBnZW5lcmF0ZWQgZmlsZW5hbWVzIHVzZSB0aGUgcGxhdGZvcm0KCSAgc3BlY2lmaWMgZGlyZWN0b3J5IHNlcGFyYXRvciBpbnN0ZWFkIG9mIC8uCgkgIEZpeGVzIGJ1ZyAjNTg3OTczLgoKMjAwOS0wNy0wNyAyMDoxMzo0OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBkb2NzOiBhZGQgJ1NpbmNlJyB0YWcgZm9yIG5ldyBHU1RfREVCVUdfQ0FURUdPUllfR0VUIG1hY3JvCgoyMDA5LTA3LTA3IDAwOjIzOjQxICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiBtYWtlIGl0IHRoZSBiZXN0IG9mIHdpbXMgYW5kIGVkd2FyZHMgcGF0Y2guCgkgIENoZWNrIHRoZSByaWdodCBmbHVzaGluZyBmbGFnLCBidXQgc3RpbGwgYWRkIGl0IHRvIHRoZSBwYWQtbGlzdC4KCjIwMDktMDYtMzAgMTE6MjY6MzQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBpbmZvOiBhbGxvdyBnZXR0aW5nIG90aGVyIGxvZyBjYXRlZ29yaWVzLiBGaXhlcyAjNTg3NDE3CgkgIEFkZCBhIG5ldyBtYWNybyBHU1RfREVCVUdfQ0FURUdPUllfR0VUIHRvIGdldCBhIGxvZyBjYXRlZ29yeSBieSBuYW1lLiBUaGlzCgkgIGFsbG93cyBwbHVnaW5zIHRvIHVzZSBlLmcuIGNvcmUgY2F0ZWdvcmllcyBsaWtlIFBFUkZPUk1BTkNFIG9yIENMT0NLLgoJICBBUEk6IEdTVF9ERUJVR19DQVRFR09SWV9HRVQKCjIwMDktMDctMDYgMTk6NTE6NTcgKzAxMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBiYXNldHJhbnNmb3JtOiBtYWtlIGNvbW1lbnQgYSBGSVhNRSBjb21tZW50CgoyMDA5LTA3LTA2IDE5OjUwOjUyICswMTAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBsb2dnaW5nOiBsb2cgb2JqZWN0IHR5cGUgaW4gbWVzc2FnZQoKMjAwOS0wNy0wNiAxOTo0ODo1OCArMDEwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBsb2dnaW5nOiB1c2UgcGVyZiBjYXRlZ29yeSBmb3IgZHJvcHBlZCBidWZmZXJzCgoyMDA5LTA2LTI5IDExOjI2OjU3ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogRG9uJ3QgZm9yd2FyZCBGTFVTSF9TVE9QIGlmIHNvbWUgaW5wdXQgc3RyZWFtcyBhcmUgc3RpbGwgZmx1c2hpbmcuCgkgIFRoaXMgZ3VhcmFudGVlcyB0aGF0IG9ubHkgb25lIEZMVVNIX1NUT1AgZXZlbnQgKHRoZSBsYXN0IG9uZSkgd2lsbCBiZSBzZW50CgkgIGRvd25zdHJlYW0gd2hlbiBhIGZsdXNoaW5nIHNlZWsgaXMgYmVpbmcgZG9uZSB0aHJvdWdoIGNvbGxlY3RwYWRzLgoKMjAwOS0wNi0yNCAxMToxMTozNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IFVwZGF0ZSB0aGUgY29va2llIHdoZW4gc2V0dGluZyBvdXJzZWx2ZXMgYXMgZmx1c2hpbmcuCgkgIFRoaXMgZm9yY2VzIHRoZSBwYWQgc3RhdHVzIHRvIGJlIHJlLWV2YWx1YXRlZCBvbiB0aGUgbmV4dCBfY2hlY2tfcGFkcygpLgoKMjAwOS0wNi0wOSAxNDo1NDoyNyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIGRvY3M6IGZpeCBndGstZG9jIC8qPCBwcml2YXRlID4qLyBtYXJrZXIKCjIwMDktMDYtMDkgMTQ6NDg6NTYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgdHlwZWZpbmRlbGVtZW50OiBsb2cgcHJvYmFiaWxpdHkgaW4gZGVidWcgbWVzc2FnZQoKMjAwOS0wNi0zMCAxODoyMjoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBwYXJzaW5nIG9mIHRoZSBzdGVwIGRvbmUgbWVzc2FnZQoJICBQYXJzZSB0aGUgZHVyYXRpb24gZmllbGQgdG9vLgoKMjAwOS0wNi0yOSAxMToyNDoyNSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBiaW5hcnlyZWdpc3RyeTogVXNlIGxvY2FsIHZhbHVlcyBpbiB3aGlsZS9mb3IgbG9vcHMsIHVzZSBicmFuY2ggcHJlZGljdGlvbiBtYWNyb3MKCjIwMDktMDYtMjkgMTE6MjM6MzEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBTcHJlYWQgYnJhbmNoIHByZWRpY3Rpb24gbWFjcm9zLgoJICBUaGVzZSBhcmUgYmFzZWQgb24gcHJvZmlsaW5nIHNldmVyYWwgcGxheWJhY2sgc2NlbmFyaW9zIHVzaW5nIHBsYXliaW4yLgoKMjAwOS0wNi0yOSAxMToyMDoxMiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBVc2UgbG9jYWwgdmFyaWFibGVzIGluIGZvci93aGlsZSBsb29wcy4KCSAgVGhpcyBtYWtlcyB0aGUgZ2VuZXJhdGVkIGNvZGUgZmFzdGVyIHNpbmNlOgoJICAqIEl0IHdvbid0IGhhdmUgdG8gcmVhZCBhbiB1bmRpcmVjdCB2YWx1ZSAod2hpY2ggd2lsbCBtb3N0IGxpa2VseSBiZQoJICBvdXRzaWRlIG9mIHRoZSBMMS9MMiBjYWNoZSkKCSAgKiBXZSBrbm93IHRoYXQgdmFsdWUgbmV2ZXIgY2hhbmdlcyAodGhlIGNvbXBpbGVyIGhhcyBubyBjbHVlIHRoYXQgaXQgZG9lc24ndCkuCgoyMDA5LTA2LTA5IDE5OjA4OjI2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICBsaWJzL2NvbnRyb2xsZXI6IFNldCBkZWZhdWx0IGdzdCBkZWJ1Z2dpbmcgY2F0ZWdvcnkuCgoyMDA5LTA2LTI5IDExOjU3OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLnNjbToKCSAgdGVzdHM6IGZpeCBleGFtcGxlCgoyMDA5LTA2LTI5IDExOjU2OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJ1ZmZlcmxpc3Q6IHVzZSBmYXN0ZXIgZ3N0X2J1ZmZlcl9saXN0X2dldCgpCgkgIFVzZSB0aGUgZmFzdGVyIGdzdF9idWZmZXJfbGlzdF9nZXQoKSB0byBnZXQgdGhlIGZpcnN0IGJ1ZmZlciBvZiBhIGxpc3QuCgoyMDA5LTA2LTI5IDExOjU1OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSAgYnVmZmVybGlzdDogZml4IGV4YW1wbGUKCSAgVGhlIF9kbyBmdW5jdGlvbiBub3cgdGFrZXMgdXNlcl9kYXRhIGluIGFsbCBjYXNlcy4KCjIwMDktMDYtMjkgMTE6NDY6MDAgKzAyMDAgIE9nbnlhbiBUb25jaGV2IDxvZ255YW5AYXhpcy5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiB0YWtlIHRpbWVzdGFtcCBsYXRlcgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgYWNjaWRlbnRhbGx5IGNhc3QgYSBidWZmZXJsaXN0IG9mIGEgYnVmZmVyIGFuZCB0cnkgdG8gdGFrZQoJICB0aGUgdGltZXN0YW1wIG9mIGl0LgoJICBSZWZpeGVzICM1ODU5NjAKCjIwMDktMDYtMjkgMTE6MDc6MDAgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkgIGRvY3M6IGZpeCBzb21lIHR5cG9zCgoyMDA5LTA2LTI5IDExOjI0OjA0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBsb2dnaW5nOiBhZGQgYSBwZXJmb3JtYWNlIGxvZyBjYXRlZ29yeQoJICBUaGlzIGNhdGVnb3J5IGNhbiBiZSB1c2VkIHRvIGxvZyBzbG93IGNvZGUgcGF0aCBhbmQgaGVscCBhdWRpdGluZyB0aGUKCSAgcGVyZm9ybWFuY2UuIEFkZCBGSVhNRS0wLjExIHRvIHNvbWUgcXVlc3Rpb25hYmxlIGNhdGVnb3JpZXMuCgoyMDA5LTA2LTI3IDE2OjM0OjM2ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IGludC0+Z2ludCB0byBiZSBpbiBzeW5jIHdpdGggdGhlICouaCAgYW5kIHVzYWdlCgoyMDA5LTA2LTI2IDEzOjMzOjUwICswMTAwICBKYW4gU2NobWlkdCA8amFuLnNjaG1pZHRAc3VuLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2g6IFVzZSBwcmludGYgaW5zdGVhZCBvZiAnZWNobyAtbicuIENoZWNrIGZvciBhdXRvbWFrZS0xLjFbMDFdCgkgIENoZWNrIGZvciBtb3JlIGF1dG9tYWtlIGNvbW1hbmQgdmFyaWFudHMuIFVzZSBwcmludGYgaW5zdGVhZCBvZiAnZWNobyAtbicKCSAgZm9yIHBvcnRhYmlsaXR5CgoyMDA5LTA2LTI2IDEzOjQxOjExICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGY4MTAwMzAgdG8gNTg0NWI2MwoKMjAwOS0wNi0yNiAxMjo1MDo1MyArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgcmVxdWVzdC1wYWQ6IHRlbGwgYWJvdXQgcmVmIGNvdW50cyBpbiByZWxlYXNlX3JlcXVlc3RfcGFkIGRvY3MuCgkgIEl0IGlzIG5vdCB0b28gb2J2aW91cyB0aGF0IGdldHRpbmcgYW5kIHJlbGVhc2luZyByZXF1ZXN0IHBhZHMgaXMgbm90IGVudGllcmx5CgkgIHN5bWV0cmljYWwgcmVnYXJkaW5nIHRvIHRoZSBwYWQgcmVmY291bnQuIEFkZCBhIG5vdGUgYWJvdXQgdGhhdCB0byB0aGUgZG9jcy4KCSAgVGhpcyBtaWdodCBkZXNlcnZlIGEgRklYTUUtMC4xMSB0b28uCgoyMDA5LTA2LTI1IDExOjI1OjQ2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvbid0IGRvIHRoaW5ncyB3aXRoIHNpZGUgZWZmZWN0cyB3aXRoaW4gYSBnX2Fzc2VydCgpCgkgIE1ha2UgdGhlIGJ1ZmZlcmxpc3Qgc3R1ZmYgd29yayBwcm9wZXJseSB3aGVuIHRoaW5ncyBhcmUgY29tcGlsZWQKCSAgd2l0aCAtREdfRElTQUJMRV9BU1NFUlQuCgoyMDA5LTA2LTI0IDE4OjMxOjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgY2FwczogYXZvaWQgZG9pbmcgbG9naWMgaW4gZ19hc3NlcnQKCSAgTWFrZSBzdXJlIHdlIHN0aWxsIGRvIHRoZSByaWdodCB0aGluZyB3aGVuIGdsaWIgaXMgY29tcGlsZWQgd2l0aG91dAoJICBhc3NlcnRpb25zLgoKMjAwOS0wNi0yMiAwNTowMDo1NCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIG11bHRpcXVldWU6IEZpcmUgdGhlIG92ZXJydW4gc2lnbmFsIG9uIEVPUwoJICBGaXhlcyBzdGFydHVwIG9mIHNvbWUgc2hvcnQgTVBFRyBmaWxlcyB3aXRoIGRlY29kZWJpbjIvcGxheWJpbjIKCSAgd2hlcmUgYWxsIHRoZSBkYXRhIGZpdHMgaW4gdGhlIG11bHRpcXVldWUgYW5kIEVPUyBhcnJpdmVzIGJlZm9yZQoJICB0aGUgZ3JvdXAgaXMgZXhwb3NlZC4KCjIwMDktMDYtMjQgMTU6MTM6MzcgKzAxMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmM2JiNTFiIHRvIGY4MTAwMzAKCjIwMDktMDMtMjggMTM6NTk6MDggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEdzdFN0cnVjdHVyZTogVXNlIGRpcmVjdCB2YWx1ZXMgZm9yIHJlcGV0aXRpdmUgY29uZGl0aW9uYWxzIChmb3Ivd2hpbGUpLgoKMjAwOS0wNi0yNCAxMDo0NTo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGdzdC9nc3RxdWVyeS5jOgoJICBtaW5pb2JqZWN0czogRG9uJ3QgY2hhaW4gdXAgdG8gZW1wdHkgZmluYWxpemUgbWV0aG9kLgoJICBJZiBldmVyIHdlIGRvIGFueXRoaW5nIGluIG1pbmlfb2JqZWN0X2ZpbmFsaXplLCB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoZSA0CgkgIGNvcmUgbWluaW9iamVjdCBmaW5hbGl6ZSBtZXRob2RzIGNoYWluIGJhY2sgdXAgYWdhaW4uCgoyMDA5LTAzLTI3IDIwOjE3OjE1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZ3N0Y2FwczogVXNlIGRpcmVjdCB2YWx1ZXMgZm9yIHJlcGV0aXRpdmUgY29uZGl0aW9uYWxzIChmb3Ivd2hpbGUpLgoKMjAwOS0wNi0yNCAwOToyODowMSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJICBtYWtlIGNoZWNrOiBhZGQgY2hlY2sgZm9yIGVudW0gdHlwZSBjbGFzcyB1bnJlZnMgaW4gZ3N0X2RlaW5pdCgpIHRvbwoJICBKdXN0IGJlY2F1c2Ugd2UgY2FuIHJlYWxseS4KCjIwMDktMDYtMjMgMTM6NDQ6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dHJhY2UuYzoKCSogZ3N0L2dzdHRyYWNlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICB0cmFjZTogdXNlIHByb3BlciBsb2NraW5nIGluIEdzdFRyYWNlCgkgIFByb3RlY3QgdGhlIGFsbG9jYXRlZCBsaXN0IG9mIG9iamVjdHMgd2l0aCBhIGxvY2sgc28gdGhhdCB0cmFjZSBhY3R1YWxseSB3b3JrcwoJICByZWxpYWJseS4KCSAgU2hvcnRjdXQgdGhlIGFsbG9jIHRyYWNlIHNvb25lciB3aGVuIGRpc2FibGVkLgoKMjAwOS0wNi0yMyAxMzozNDozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgb2JqZWN0OiBhbHNvIGFkZCBwb2ludGVycyB0byBkZWJ1ZwoJICBBZGQgdGhlIG9iamVjdCBwb2ludGVycyBpbiB0aGUgZGVidWcgaW5mbyBmb3IgX3JlcGxhY2UuCgoyMDA5LTA2LTIzIDEyOjU2OjU5ICswMjAwICBDaGFkIEhhbm5hIDxjaGFubmFAbGlnby5jYWx0ZWNoLmVkdT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBjYXBzZmlsdGVyOiBBZGQgR0FQIGZsYWcgc3VwcG9ydAoJICBjYXBzZmlsdGVyIGRvZXNuJ3QgYWN0dWFsbHkgdG91Y2ggdGhlIGRhdGEgc28gd2UgZG9uJ3Qgd2FudCB0aGUgR0FQIGZsYWcgdG8KCSAgYmUgdW5zZXQgYnkgYmFzZXRyYW5zZm9ybS4KCSAgRml4ZXMgYnVnICM1ODY1NjYuCgoyMDA5LTA2LTIzIDEwOjA1OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IGJ5dGUgcmVhZGVyIG1ldGhvZHMKCjIwMDktMDUtMjIgMTQ6NDc6MzMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSAgYnl0ZXJlYWRlcjogYWRkIGEgYnVuY2ggb2YgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHN0cmluZ3MgYW5kIGEgZGF0YSBkdXAgZnVuY3Rpb24KCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX2RhdGEKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZwoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjgKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfZHVwX3N0cmluZ191dGYxNgoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9kdXBfc3RyaW5nX3V0ZjMyCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX3NraXBfc3RyaW5nX3V0ZjgKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmMTYKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfc2tpcF9zdHJpbmdfdXRmMzIKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdHJpbmcKCSAgQVBJOiBnc3RfYnl0ZV9yZWFkZXJfcGVla19zdHJpbmdfdXRmOAoJICBBUEk6IGdzdF9ieXRlX3JlYWRlcl9nZXRfc3RyaW5nCgkgIEFQSTogZ3N0X2J5dGVfcmVhZGVyX2dldF9zdHJpbmdfdXRmOAoJICBBbmQgc29tZSBiYXNpYyB1bml0IHRlc3RzLiBGaXhlcyAjNTg2NTY4LgoKMjAwOS0wNi0yMiAxODoxNzoyOCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdDogZml4IHR5cG8gaW4gdGFnIGRlc2NyaXB0aW9uCgoyMDA5LTA2LTIxIDAwOjI2OjMzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXJsaXN0LmM6CgkgIHRlc3RzOiBmaXggY3Jhc2ggYW5kIGxlYWsgaW4gYnVmZmVybGlzdHMgdW5pdCB0ZXN0CgkgIERvbid0IGFjY2VzcyBhbHJlYWR5LWZyZWVkIGl0ZXJhdG9yLCBtYWtlcyBjaGVjay12YWxncmluZCB3b3JrIGFuZCBmaXhlcwoJICBjcmFzaCBvbiBQUEM7IHVucmVmIGJ1ZmZlciB3ZSdyZSBnb2luZyB0byBzdGVhbCB0byBtYWtlIHZhbGdyaW5kIGhhcHB5LgoKMjAwOS0wNi0yMSAwMDowOTo1MyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdC5jOgoJICBpbml0OiBGaXggaW5kZW50LCBhbmQgcmVmIHRoZSBnc3RfYnVmZmVyX2xpc3RfaXRlbV9nZXRfdHlwZSgpIGNsYXNzCgkgIEZpeCB0aGUgY2hlY2sgdGVzdHMgYnkgcmVmZmluZyB0aGUgR3N0QnVmZmVyTGlzdCBjbGFzcy4gUnVuIGdzdC1pbmRlbnQKCSAgdG8gbWFrZSBnaXQgaGFwcHkgYWJvdXQgc29tZSBleGlzdGluZyBzdHVmZgoKMjAwOS0wNi0xOSAyMTowMzo0NiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBnc3QtaW5zcGVjdDogZml4IGJyb2tlbiBmbGFncyB0byBmbGFnIHN0cmluZyBzZXJpYWxpc2F0aW9uCgkgIGUuZy4gY2RwYXJub2lhc3JjIHdvdWxkIHNob3cgZnJhZ21lbnR8ZnVsbCBmb3IgYSBmbGFncyB2YWx1ZSBvZiAyLgoKMjAwOS0wNi0xOSAxOTozNTowNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogYWRkIGJ1ZmZlci1saXN0IHN1cHBvcnQKCjIwMDktMDYtMTkgMTk6MjQ6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5oOgoJICBidWZmZXJsaXN0OiByZW1vdmUgb2xkIGVudW0gZnJvbSBkb2NzCgoyMDA5LTA2LTE5IDE0OjQ1OjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGluZm86IGRlZmluZSBfX2dzdF9kZWJ1Z19taW4gdG8gTE9HX0xFVkVMX05PTkUgaWYgZGVidWdnaW5nIGlzIGRpc2FibGVkCgkgIEp1c3QgaW4gY2FzZSBzb21lb25lIHdobyBjbGVhcmx5IGNhbid0IGJlIGRldGVycmVkIGJ5IGFueSBudW1iZXIgb2YgbGVhZGluZwoJICB1bmRlcnNjb3JlcyB1c2VzIHRoaXMgdmVyeSBwcml2YXRlIGJ1dCBzdGlsbCBzb21ld2hhdCBkb2N1bWVudGVkIHN5bWJvbAoJICBkaXJlY3RseSBpbiB0aGVpciBjb2RlICgqY291Z2gqIHF0ZGVtdXggKmNvdWdoKikuCgoyMDA5LTA2LTE5IDE1OjI5OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogZ3N0L2dzdGJ1ZmZlcmxpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlcmxpc3QuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGJ1ZmZlcmxpc3Q6IFZhcmlvdXMgY2xlYW51cHMKCSAgQWRkIG5ldyBtZXRob2QgdG8gaXRlcmF0ZSBhIGJ1ZmZlcmxpc3Qgd2l0aG91dCBoYXZpbmcgdG8gYWxsb2NhdGUgYW4gaXRlcmF0b3IuCgkgIEFkZCBjb252ZW5pZW5jZSBtZXRob2QgZm9yIGdldHRpbmcgYW4gaXRlbSBmcm9tIHRoZSBsaXN0IGJhc2VkIG9uIHRoZSBncm91cCBhbmQKCSAgaW5kZXguCgkgIFJlbW92ZSByZWR1bmRhbnQgX2RvX2RhdGEgY2FsbGJhY2sgYW5kIG1ldGhvZC4KCSAgVXBkYXRlIHVuaXQtdGVzdHMgYW5kIGFkZCBzb21lIG1vcmUgZm9yIHRoZSBuZXcgbWV0aG9kcy4KCjIwMDktMDYtMTkgMTQ6MTA6MzAgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBkb2NzOiBtYWtlIGd0ay1kb2MgaGFwcHkKCjIwMDktMDYtMTkgMTM6NTE6NTkgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiB1cGRhdGUgLnBvIGZpbGVzIGFmdGVyIHN0cmluZyBjaGFuZ2VzCgoyMDA5LTA2LTE5IDEzOjQ4OjQ4ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogY2xlYW4gdXAgc29tZSBtb3JlIGVycm9yIGFuZCBkZWJ1ZyBtZXNzYWdlcwoKMjAwOS0wNi0xOSAxMzo0Mjo0NSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSAgdGFza3Bvb2w6IGZpeCB1bnVzZWQgdmFyaWFibGUgd2FybmluZyBpbiBjYXNlIGRlYnVnZ2luZyBpcyBkaXNhYmxlZAoKMjAwOS0wNi0xOSAxMzo0MDoxMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBnc3RpbmZvOiBmaXggZXhwb3J0IG9mIEdTVF9DQVRfQlVGRkVSX0xJU1Qgd2hlbiAtLWdzdC1kaXNhYmxlLWRlYnVnIGlzIHVzZWQKCSAgTW92ZSBhbGwgdGhlIGNhdGVnb3JpZXMgdG8gZXhwb3J0IHRvIG9uZSBzaW5nbGUgcGxhY2UsIHNvIHdlIGRvbid0CgkgIGFjY2lkZW50YWxseSB1cGRhdGUgb3IgYWRkIHZhcnMgaW4gb25lIHBsYWNlIGJ1dCBub3QgdGhlIG90aGVyLgoKMjAwOS0wNi0xOCAxNjo1MDo0MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IHVzZSB0aGUgcmlnaHQgZmx1c2hpbmcgZmxhZy4KCSAgV2UgbmVlZCB0byB1c2UgdGhlIHBhZCBwcml2YXRlIGZsYWcgYmVjYXVzZSB0aGUgb3RoZXIgcGFkIGZsYWcgaXMgcHJvdGVjdGVkIHdpdGgKCSAgdGhlIHBhZCBsb2NrIGluc3RlYWQuCgoyMDA5LTA2LTE4IDE2OjQxOjQ2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogUHJvcGVybHkgaGFuZGxlIGZsdXNoaW5nIHBhZHMuCgkgIElmIGEgcGFkIGlzIGZsdXNoaW5nLCBpdCBzaG91bGQgbm90IGJlIGNvbnNpZGVyZWQgYXMgZWl0aGVyIGVvcyBvcgoJICBjb250YWluaW5nIGRhdGEuCgoyMDA5LTA2LTE4IDExOjI3OjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogZml4IGVycm9yIG1lc3NhZ2UKCSAgVXNlcnMgc2hvdWxkIG5ldmVyIHNlZSB0aGUgdGVybSAnZmlsZSBkZXNjcmlwdG9yJywgbXVjaCBsZXNzIGEgZmlsZQoJICBkZXNjcmlwdG9yIG51bWJlciwgaW4gYW4gZXJyb3IgbWVzc2FnZS4gUHV0IHRoYXQgaW50byB0aGUgZGVidWcKCSAgc3RyaW5nIGluc3RlYWQgYW5kIHVzZSB0aGUgZGVmYXVsdCBlcnJvciBtZXNzYWdlLgoKMjAwOS0wNi0xOCAxMTo0OTozMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkgIGZkc2luazogYWRkIHRoZSBuZXcgZmllbGQgaW4gdGhlIGhlYWRlcgoKMjAwOS0wNi0xOCAxMDo1NTozOSArMDIwMCAgQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluIGF0IGdhaWduYXJkLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgIGZkc2luazogbWFrZSBmZHNpbmsgc2Vla2FibGUKCSAgSW1wbGVtZW50IHRoZSBzYW1lIGxvZ2ljIGFzIGZpbGVzaW5rIHRvIGltcGxlbWVudCBzZWVraW5nLgoJICBGaXhlcyAjNTc4OTA4CgoyMDA5LTA2LTE3IDE2OjQ1OjE3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBnc3RlbGVtZW50OiBtb3ZlZCB0aGUgY2xvY2sgdW5yZWYgdG8gdGhlIHJpZ2h0IHBsYWNlCgoyMDA5LTA2LTE3IDE2OjE3OjI3ICswMjAwICBKb3NlcCBUb3JyYSA8bjc3MGdhbGF4eUBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBnc3RlbGVtZW50OiB1bnJlZiB0aGUgY2xvY2sgd2hlbiB0aGUgZWxlbWVudCBjaGFuZ2VzIHRvIG51bGwgc3RhdGUKCjIwMDktMDYtMTcgMDA6Mjk6NDAgKzA0MDAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgPGxybjE5ODZAZ21haWwuY29tPgoKCSogZ3N0L2dzdC5jOgoJICBSZXBsYWNlZCBkZXByZWNhdGVkIHdpbjMyLWNvbXBhdGliaWxpdHkgZnVuY3Rpb24gd2l0aCB1bmRlcHJlY2F0ZWQgb25lLgoJICBGaXhlcyAjNTYwNDQyLgoKMjAwOS0wNi0xNiAxODozMjoxMiArMDIwMCAgSm9zZXAgVG9ycmEgPG43NzBnYWxheHlAZ21haWwuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IHN3YXAgdGhlIGxpbmVzIG9mIG15IHByZXZpb3VzIGNvbW1pdAoJICBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIG15IHByZXZpb3VzIGNvbW1pdCB0aGF0IHJlbGVhc2VkIHRoZQoJICBjbG9jayBwcm92aWRlciBhbmQgYWZ0ZXIgdXNlZCBpdCB0byBjcmVhdGUgdGhlIGNsb2NrIGxvc3QgbWVzc2FnZS4KCjIwMDktMDYtMTYgMTc6NTE6MTIgKzAyMDAgIEpvc2VwIFRvcnJhIDxuNzcwZ2FsYXh5QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgZ3N0YmluOiByZW1vdmUgY2xvY2sgcmVmZXJlbmNlcyB3aGVuIGNsb2NrIGxvc3QgaGFwcGVucwoJICBSZW1vdmUgcmVmZXJlbmNlIHRvIGNsb2NrIGFuZCBjbG9jayBwcm92aWRlciBzdG9yZWQgaW4gdGhlIGJpbgoJICB3aGVuIHRoZSBjbG9ja3Byb3ZpZGVyIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBiaW4uCgoyMDA5LTA2LTE2IDEzOjM0OjM4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBiYXNlc2luazogYWRkIFNpbmNlIHRhZyBmb3IgbmV3IG1ldGhvZAoKMjAwOS0wNi0xNiAxMzozMjozNyArMDIwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rby5zdWJhc2ljIGF0IGF4aXMuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGJhc2VzaW5rOiBhZGQgc3VwcG9ydCBmb3IgYnVmZmVyIGxpc3QKCSAgRml4ZXMgIzU4NTk2MAoKMjAwOS0wNi0xNiAxMTozNDo1NCArMDIwMCAgQnJhbmtvIFN1YmFzaWMgPGJyYW5rby5zdWJhc2ljIGF0IGF4aXMuY29tPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBBZGQgc3VwcG9ydCBmb3IgR3N0QnVmZmVyTGlzdHMKCSAgRml4ZXMgIzU4NTgzNAoKMjAwOS0wNi0xNiAxMToyMTo0MiArMDIwMCAgQ2hyaXN0b3BoZXIgSGFsc2UgUm9nZXJzIDxjaGFsc2Vyb2dlcnMgYXQgZ21haWwuY29tPgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGl0ZXJhdG9yOiBFeHBsaWNpdGx5IG1lbnRpb24gcmVmY291bnRpbmcgaW4gZG9jcwoJICBGaXhlcyAjNTg1OTM4CgoyMDA5LTA2LTE2IDA4OjQzOjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R4bWw6IGZpeCAoZGUpc2VyaWFsaXNhdGlvbiBvZiBwcm9wZXJ0aWVzIG9mIHR5cGUgR3N0U3RydWN0dXJlCgkgIHNvdXBodHRwc3JjIGhhcyBhIHByb3BlcnR5IG9mIHR5cGUgR3N0U3RydWN0dXJlLCB3aGljaCBjYXVzZXMgYW4KCSAgYXNzZXJ0aW9uIHdoZW4gc2VyaWFsaXNpbmcgaXQgdG8geG1sLiBGaXhlcyAjNTg1MTM3LgoKMjAwOS0wNi0xNSAyMDoxMTowNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiBmaXggY29tcGlsZXIgd2FybmluZwoJICBUaGUgY29tcGlsZXIgc3VnZ2VzdHMgdG8gYWRkIHNvbWUgKCkgdG8gaW5kaWNhdGUgaWYgdGhlICYmIG9yIHRoZSB8fCB0YWtlcwoJICBwcmlvcml0eSwgc28gcmVmbG93IGNvZGUgYSBiaXQgc28gd2UgZG9uJ3QgaGF2ZSB0byBhZGQgeWV0IGFub3RoZXIgbGF5ZXIKCSAgb2YgKCkuIEhvcGVmdWxseSB0aGlzIHdhcyB0aGUgaW50ZW5kZWQgbWVhbmluZyBvZiB0aGUgY29kZS4KCjIwMDktMDYtMTEgMTU6MDA6NTIgKzAyMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXRAbWluZC5iZT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgZG9uJ3QgbG9jayB3aGVuIG1pbi10aHJlc2hvbGQgYW5kIG1heC1zaXplIGNvbmZsaWN0LgoJICBXaGVuIG1pbi10aHJlc2hvbGQgaXMgc2V0IG9uIGEgcXVldWUsIGl0IGlzIHBvc3NpYmxlIHRoYXQgb25lIG9mCgkgIHRoZSBtaW5pbWEgcmVtYWlucyB1bnNhdGlzZmllZCB3aGlsZSBvbmUgb2YgdGhlIG1heGltYSBpcyBhbHJlYWR5CgkgIHJlYWNoZWQuIFRoZXJlZm9yZSwgYWx3YXlzIGNvbnNpZGVyIHRoZSBxdWV1ZSBub24tZW1wdHkgaWYgaXQgaXMgZnVsbC4KCSAgRml4ZXMgIzU4NTQzMy4KCjIwMDktMDYtMTUgMTg6NDQ6NDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbWFrZSBzdXJlIHdlIHNldCB0aGUgbmV4dCBzdGF0ZSBjb3JyZWN0bHkKCSAgV2hlbiB0aGUgY29udGludWUgZnVuY3Rpb24gaXMgc2NoZWR1bGVkLCBtYWtlIHN1cmUgd2Ugc2V0IHRoZSBuZXh0IHN0YXRlIGluc3RlYWQKCSAgb2YgdGhlIHBlbmRpbmcgc3RhdGUuCgkgIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgZml4ZXMgIzU4NTU2OQoKMjAwOS0wNi0xNSAxODo0NDoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgY29sbGVjdHBhZHM6IGZpeCAuaCBpbmRlbnRhdGlvbgoKMjAwOS0wNi0xNSAxODo0Mzo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiBhZGQgc29tZSBtb3JlIGRlYnVnCgoyMDA5LTA2LTE1IDE4OjQyOjU5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHBhZC5jOgoJICBkZWJ1ZzogYWRkIHNvbWUgbW9yZSBkZWJ1ZyB0byBlbGVtZW50IGFuZCBwYWRzCgoyMDA5LTA2LTE0IDE2OjU2OjMyICswNDAwICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyIDxscm4xOTg2QGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RzZWdtZW50LmM6CgkgIHNlZ21lbnQ6IGZpeCBpbmNsdWRlIG9yZGVyIHRvIGdldCBjb25maWcuaCBiZWZvcmUgX21pbmd3LmgKCSAgY29uZmlnLmggbXVzdCBhbHdheXMgYmUgaW5jbHVkZWQgYmVmb3JlIGFueSBvdGhlciBpbmNsdWRlcywgZWl0aGVyCgkgIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdmlhIGdzdF9wcml2YXRlLmguIEZpeGVzICM1ODU3MzMuCgoyMDA5LTA2LTE0IDE2OjE3OjUwICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHRhZ2xpc3Q6IGFkZCBmdW5jdGlvbnMgdG8gY3JlYXRlIGEgbmV3IHRhZ2xpc3Qgd2l0aCB0YWdzIGluIG9uZSBnbwoJICBBZGQgZnVuY3Rpb25zIHRvIGNyZWF0ZSBhIG5ldyB0YWcgbGlzdCBhbmQgc2V0IHRhZ3MgaW4gb25lIGdvLCB3aGljaAoJICBpcyBuaWNlIGZvciB1c2UgaW4gY29tYmluYXRpb24gd2l0aCBmdW5jdGlvbnMgdGhhdCB0YWtlIG93bmVyc2hpcCBvZgoJICB0aGUgdGFnbGlzdCwgc3VjaCBhcyBnc3RfZXZlbnRfbmV3X3RhZygpIG9yIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MoKS4KCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X25ld19mdWxsKCkKCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X25ld19mdWxsX3ZhbGlzdCgpCgoyMDA5LTA2LTEzIDE0OjU1OjQzICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXMgKGF0KSBhcGVzdGFhcnQgKGRvdCkgb3JnPgoKCSogc2NyaXB0cy9naXQtdmVyc2lvbi5zaDoKCSAgZ2l0LXZlcnNpb24uc2g6IG1ha2UgZXhlY3V0YWJsZQoKMjAwOS0wNi0xMyAxNDo1MzoyNCArMDIwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzIChhdCkgYXBlc3RhYXJ0IChkb3QpIG9yZz4KCgkqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSogc2NyaXB0cy9naXQtdXBkYXRlLnNoOgoJKiBzY3JpcHRzL2dpdC12ZXJzaW9uLnNoOgoJICBVcGRhdGUgc2NyaXB0cy9jdnMtdXBkYXRlLnNoIHRvIGdpdC11cGRhdGUuc2g7IGFkZCBnaXQtdmVyc2lvbi5zaAoJICBhZGQgc2NyaXB0IHRvIGdldCBnaXQgdmVyc2lvbnMKCSAgZmlyc3QgdXBkYXRlIGFsbCwgdGhlbiBidWlsZAoJICBhZGQgZ25vbmxpbiB0b28KCSAgc3BlY2lmeSB3aGVyZSB0byBwdWxsIGZyb20KCSAgYWxzbyB1cGRhdGUgc3VibW9kdWxlCgkgIHJlbmFtZSBhbmQgY2hhbmdlIGN2cy11cGRhdGUgc2NyaXB0IHRvIGdpdC11cGRhdGUKCjIwMDktMDYtMTIgMTg6MzY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2J5dGVyZWFkZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBieXRlcmVhZGVyOiBhZGQgZ3N0X2J5dGVfcmVhZGVyX21hc2tlZF9zY2FuX3VpbnQzMigpCgkgIEFkZCBhIHBhdHRlcm4gc2NhbiBmdW5jdGlvbiBzaW1pbGFyIHRvIHRoZSBvbmUgcmVjZW50bHkgYWRkZWQgdG8KCSAgR3N0QWRhcHRlciwgYW5kIGEgdW5pdCB0ZXN0IChiYXNlZCBvbiB0aGUgYWRhcHRlciBvbmUpLgoJICBGaXhlcyAjNTg1NTkyLgoJICBBUEk6IGFkZCBnc3RfYnl0ZV9yZWFkZXJfbWFza2VkX3NjYW5fdWludDMyKCkKCjIwMDktMDQtMTcgMTc6NTk6MzggKzAzMDAgIFJlbsOpIFN0YWRsZXIgPHJlbmUuc3RhZGxlckBub2tpYS5jb20+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSAgRml4IHJlbWFpbmluZyAtLWRpc2FibGUtZ3N0LWRlYnVnIEFCSSBicmVha2FnZS4KCSAgRml4ZXMgIzU3OTE3Ny4KCjIwMDktMDYtMTIgMTc6NTE6MjIgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmMvc2luazogdHVybiB0aGUgYnVzIG1lc3NhZ2VzIGludG8gZ193YXJuaW5nCgkgIEl0cyBhIHByb2dyYW1taW5nIGVycm9yLgoKMjAwOS0wNi0xMiAxNTo0ODozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGZpeCBkb2NzCgoyMDA5LTA2LTEyIDEzOjE4OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgc3RlcHBpbmc6IG1vcmUgc3RlcHBpbmcgaW1wcm92ZW1lbnRzCgkgIFVwZGF0ZSBkZXNpZ24gZG9jIHdpdGggc3RlcC1zdGFydCBkb2NzLgoJICBBZGQgZW9zIGZpZWxkIHRvIHN0ZXAgZG9uZSBtZXNzYWdlCgkgIHdoZW4gc3RlcHBpbmcgaW4gcmV2ZXJzZSwgdXBkYXRlIHRoZSBzZWdtZW50IHRpbWUgZmllbGQuCgkgIEZsdXNoIG91dCB0aGUgY3VycmVudCBzdGVwIHdoZW4gd2UgYXJlIGZsdXNoaW5nLgoKMjAwOS0wNi0xMCAxNTo1MTo0MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBvc3Qgc3RlcC1zdGFydAoJICB3aGVuIHdlIGNsaXAsIGFsc28gc3RvcCB0aGUgc3RlcHBpbmcuCgkgIERvbid0IGRvIFFvUyB3aGVuIHN0ZXBwaW5nCgkgIFBvc3Qgc3RlcC1zdGFydCB3aGVuIHF1ZXVlaW5nIGFuZCBhY3RpdmF0aW5nIHRoZSBzdGVwLgoKMjAwOS0wNi0xMCAxNTo0ODozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3RxdWFyay5jOgoJKiBnc3QvZ3N0cXVhcmsuaDoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIG1lc3NhZ2U6IGFkZCBzdGVwLXN0YXJ0IG1lc3NhZ2UKCjIwMDktMDYtMTEgMTQ6MTg6MDMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBtb3JlIGVmZmljaWVudCB2YWx1ZSB0YWJsZSBsb29rdXAgZm9yIGZ1bmRhbWVudGFsIHR5cGVzCgkgIFNtYWxsIG1pY3JvLW9wdGltaXNhdGlvbjogbG9vayB1cCB2YWx1ZSB0YWJsZSBmb3IgZnVuZGFtZW50YWwgdHlwZXMKCSAgdmlhIGFuIGFycmF5IGRlZGljYXRlZCB0byBmdW5kYW1lbnRhbCB0eXBlcyBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2gKCSAgYSBoYXNoIHRhYmxlIGxvb2t1cC4gU2luY2UgdGhlcmUgY2FuIGJlIG9ubHkgMjU1IGZ1bmRhbWVudGFsIHR5cGVzLAoJICB0aGUgdGFibGUgc2l6ZS9lZmZpY2llbmN5IHRyYWRlLW9mZiBzaG91bGQgYmUgYWNjZXB0YWJsZSwgZXNwLiBzaW5jZQoJICB0aGUgbW9zdCBjb21tb25seS11c2VkIHR5cGVzIGFyZSBhbGwgZnVuZGFtZW50YWwgdHlwZXMuIFRoZSBzaXplIG9mCgkgIHRoZSB0YWJsZSBjb3VsZCBwcm9iYWJseSBiZSBtaW5pbWlzZWQgZnVydGhlciBpZiBuZWVkZWQgYnkgYWxsb2NhdGluZwoJICB0aGUgdGFibGUgZHluYW1pY2FsbHkgYW5kIG9ubHkgZXhwYW5kaW5nIGl0IG9uIGRlbWFuZC4KCjIwMDktMDYtMTEgMTM6MTY6MTUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkgIGdzdHZhbHVlOiBkb24ndCBwdXQgR1R5cGVzIGludG8gaW50IHZhcmlhYmxlcwoJICBHVHlwZXMgYXJlIG5vdCBpbnRzIGFuZCBhcyBzdWNoIGFyZSBub3QgZ3VhcmFudGVlZCB0byBmaXQgaW50byBhbiBpbnQKCSAgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBmdW5kYW1lbnRhbCB0eXBlcyksIHNvIHdlIHJlYWxseSBzaG91bGRuJ3QgcHV0CgkgIHRoZW0gaW50byBpbnQgdmFyaWFibGVzLiBFdmVuIGlmIGEgcmF0aGVyIHVubGlrZWx5IG9ic2N1cmUgY29ybmVyIGNhc2UsCgkgIHRoaXMgaGFzIGFjdHVhbGx5IGJlZW4gYSBwcm9ibGVtIGF0IHNvbWUgcG9pbnQgaW4gdGhlIHBhc3QsIHNlZSBjb21taXQKCSAgOTlmMTY2NTVmNGNmYmM4ZTA2YjU5NzI0MTdiYTExMjc5MDgzYTY0ZS4KCjIwMDktMDYtMTEgMTc6MDM6MDQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIGZpbGVzcmMvc2luazogaW1wcm92ZSB3YXJuaW5nIG1lc3NhZ2UgYSBiaXQgKHdyb25nIHN0YXRlKQoJICBVbmlmeSBhbmQgdHVybiB0aG9zZSBpbnRvIGVsZW1lbnQgd2FybmluZ3MuCgoyMDA5LTA2LTExIDE0OjAwOjA5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgZWxlbWVudGZhY3Rvcnk6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCSAgVXNlIChncG9pbnRlcikgaW5zdGVhZCBvZiAoZ3BvaW50ZXIgKikgdG8gZml4IGEgc3RyaWN0LWFsaWFzaW5nIGJ1aWxkIHdhcm5pbmcuCgoyMDA5LTA2LTExIDEzOjE2OjI5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkqIGRvY3MvZmFxL01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSAgZG9jczogQnVtcCBjb21tb24sIGZpeCB0aGUgdXBsb2FkIGxvZ2ljIGluY2x1c2lvbgoJICBVcGRhdGUgdGhlIGNvbW1vbiBzdWJtb2R1bGUsIGFuZCBmaXggdGhlIGRvY3MgdXBsb2FkIHJ1bGVzIHRvIGluY2x1ZGUKCSAgdGhlIHJpZ2h0IG1ha2VmaWxlIHNuaXBwZXQgZnJvbSBjb21tb24uCgoyMDA5LTA2LTA5IDExOjEzOjA0ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgbXVsdGlxdWV1ZTogVXNlIHRoZSBzbGljZSBhbGxvY2F0b3IgZm9yIE11bHRpUXVldWVJdGVtcwoKMjAwOS0wNi0xMCAyMDoyOTo0MSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIE1ha2Ugc3VyZSBjb25maWcuaCBpcyBvbmx5IGluY2x1ZGVkIG9uY2UKCSAgRml4ZXMgYnVpbGQgcHJvYmxlbSBvbiB3aW4zMiAoIzU4NTA3NSkuCgoyMDA5LTA2LTEwIDE4OjA1OjQ3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogYWRkIHNpbmNlOiB0YWdzIGZvciB0aGUgYXBpIGRvY3MuCgkgIFRoZSBwcmV2aW91cyByZWxhdGVkIGNvbW1pdCBhZGRlZCBuZXcgQVBJLgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX2dldF9jYWNoZV9kYXRhLCBnc3RfcGx1Z2luX3NldF9jYWNoZV9kYXRhCgoyMDA5LTA2LTEwIDEyOjAyOjIzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIHBsdWdpbjogZml4IGxlYWtzIGludHJvZHVjZWQgYnkgZml4IGZvciAjNTg0Mzg5CgoyMDA5LTA2LTA4IDIzOjQzOjE2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBnc3Rfc3RydWN0dXJlXypfZ2V0KigpIHZhcmFyZyBmdW5jdGlvbnMKCSAgQWRkIGEgYnVuY2ggb2YgdmFyYXJnIGdldHRlciBjb252ZW5pZW5jZSBmdW5jdGlvbnMgdG8gY29tcGxlbWVudAoJICB0aGUgdmFyYXJnIHNldHRlciBmdW5jdGlvbnMsIGFuZCBhIGJhc2ljIHVuaXQgdGVzdC4gRml4ZXMgIzUzNDIwOC4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9nZXQoKQoJICBBUEk6IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbGlzdCgpCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9nZXRfdmFsaXN0KCkKCjIwMDktMDYtMDkgMDA6MTY6MDUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZG9jczogYSBmZXcgc21hbGwgQVBJIGRvYyBmaXhlcyBhbmQgYWRkaXRpb25zCgoyMDA5LTA2LTA4IDE5OjMzOjU1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGxvZ2dpbmc6IHdoZW4gbG9nZ2luZyB0YWdsaXN0cywgc2hvcnRlbiBsb25nIGJ1ZmZlciBkdW1wcwoJICBEb24ndCBkdW1wIGh1bmRyZWRzIG9mIGtCIG9mIGhleGRhdGEgaW50byBkZWJ1ZyBsb2dzIHdoZW4gY29udmVydGluZwoJICB0YWdsaXN0cyBjb250YWluaW5nIGh1Z2UgaW1hZ2VzIGludG8gYSBzdHJpbmcuIEluc3RlYWQsIHNob3J0ZW4gdGhlCgkgIGJ1ZmZlciBkYXRhIHNvIHRoYXQgdGhlIHN0cmluZyBpcyBzdGlsbCByZWFkYWJsZSBhbmQgZGVidWcgbG9ncwoJICBzdGF5IG1hbmFnYWJsZS4gQ2FuIGJlIHR1cm5lZCBvZmYgd2l0aCBHU1RfREVCVUdfT1BUSU9OUz1mdWxsLXRhZ3MuCgkgIFNlZSAjNTg0OTg4LgoKMjAwOS0wNi0wOSAxMzowNzozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBtdWx0aXF1ZXVlOiBjaGVjayBieXRlIHJhbmdlIGV2ZW4gd2hlbiB3ZSBoYXZlIHRpbWVzdGFtcHMKCSAgQXMgZm91bmQgYnkgdGhheXRhbiBvbiBJUkMuCgkgIEFsc28gY2hlY2sgdGhlIGJ5dGUgbGltaXQsIGV2ZW4gaWYgd2UgaGF2ZSB0aW1lc3RhbXBzIGJlY2F1c2UgdGhlcmUgbWlnaHQganVzdAoJICBub3QgYmUgYSB0aW1lIGxpbWl0LgoKMjAwOS0wNi0wOSAxMjowNjozNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVwZGF0ZSBzZWdtZW50IHN0YXJ0L3N0b3AgZm9yIGNsaXBwaW5nCgkgIFdoZW4gd2Ugc3RhcnQgc3RlcHBpbmcsIHN0b3JlIHRoZSBzdGFydC9zdG9wIHZhbHVlcyBvZiB0aGUgc2VnbWVudCBiZWZvcmUgd2UKCSAgaW5zdGFsbCBuZXcgc3RhcnQvc3RvcCB2YWx1ZXMgZm9yIGNsaXBwaW5nIGluIG5vbi1mbHVzaGluZyBzdGVwcy4KCSAgZm9yIG5vbi1mbHVzaGluZyBzdGVwcywgdXBkYXRlIHRoZSBlbGVtZW50IHN0YXJ0IHRpbWUuIEZvciBmbHVzaGluZyBzdGVwcywgaXQKCSAgZG9lcyBub3QgY2hhbmdlIGJlY2F1c2UgcnVubmluZ190aW1lIGRvZXMgbm90IGFkdmFuY2UKCSAgTWFrZSBzdXJlIHdlIGFsd2F5cyBwZXJmb3JtIHRoZSBzdG9wX3N0ZXBwaW5nIG9wZXJhdGlvbnMgZXZlbiB3aGVuIHdlIGRyb3AKCSAgZnJhbWVzLgoKMjAwOS0wNi0wOSAxMDoyNTozNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGRvIHByb3BlciBjbGlwcGluZyBpbiBzdGVwcGluZwoJICBVcGRhdGUgdGhlIHN0b3AgcG9zaXRpb24gb2YgdGhlIHNlZ21lbnQgc28gdGhhdCB3ZSBjbGlwIGNvcnJlY3RseS4KCSAgQWZ0ZXIgY2xpcHBpbmcgaW4gbm9uLWZsdXNoaW5nIG1vZGUsIHJlcmVuZGVyIHRoZSByZW1haW5kZXIgb2YgdGhlIGJ1ZmZlci4KCjIwMDktMDYtMDkgMTA6MjM6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBzZWdtZW50OiBtYWtlIGNvbnZlcnNpb24gbW9yZSBwcmVjaXNlCgkgIE1ha2Ugc3VyZSB0aGUgY29udmVyc2lvbiBmcm9tIGFuZCB0aGUgY29udmVyc2lvbiB0byBnaXZlIHRoZSBzYW1lIHJlc3VsdHMuCgoyMDA5LTA2LTA4IDE1OjM5OjU5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICB1dGlsczogZ3N0X3V0aWxfdWludDY0X3NjYWxlKigpIG1pY3JvLW9wdGltaXNhdGlvbnMKCSAgU3ByaW5rbGUgR19MSUtFTFkvR19VTkxJS0VMWTsgYWRkIGlubGluZWQgX3NjYWxlX2ludF91bmNoZWNrZWQoKQoJICBzbyB3ZSBkb24ndCBkbyBzb21lIGNoZWNrcyB0d2ljZSB3aGVuIGNhbGxpbmcgaXQgZnJvbSBfc2NhbGUoKS4KCjIwMDktMDYtMDcgMjI6NDk6MDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHVyaS5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOgoJICBSZW1vdmUgZG91YmxlIHNlbWljb2xvbnMgYXQgZW5kIG9mIGxpbmUKCjIwMDktMDYtMDggMTc6Mzk6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIHN0ZXBwaW5nOiBkbyBmbHVzaGluZyBzdGVwcyBjb3JyZWN0bHkKCSAgTm90ZSBpbiB0aGUgZG9jcyB0aGF0IGEgZmx1c2hpbmcgc3RlcCBpbiBQTEFZSU5HIGJyaW5ncyB0aGUgcGlwZWxpbmUgdG8gdGhlIGxvc3QKCSAgc3RhdGUgYW5kIHNraXBzIHRoZSBkYXRhIGJlZm9yZSBwcmVyb2xsaW5nIGFnYWluLgoJICBJbXBsZW1lbnQgdGhlIGZsdXNoaW5nIHN0ZXAgY29ycmVjdGx5IGJ5IGludmFsaWRhdGluZyB0aGUgY3VycmVudCBzdGVwCgkgIG9wZXJhdGlvbiwgd2hpY2ggd291bGQgYWN0aXZhdGUgdGhlIG5ldyBzdGVwIG9wZXJhdGlvbi4KCjIwMDktMDYtMDggMTY6MTY6MjcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IENoYW5nZSBhd2t3YXJkIHdvcmRpbmcgaW4gYSB0cmFuc2xhdGVhYmxlIG1lc3NhZ2UuCgoyMDA5LTA2LTA4IDE2OjI3OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIG5vbi1mbHVzaGluZyBzdGVwcwoJICBBZGQgc3VwcG9ydCBmb3Igbm9uLWZsdXNoaW5nIHN0ZXBzIGFuZCB3aXRoIGRpZmZlcmVudCByYXRlcy4KCSAgQ2xlYXIgc3RlcCBpbmZvIHdoZW4gZmx1c2hpbmcKCjIwMDktMDYtMDcgMjM6NDY6NTQgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IGFsbG93IHBsdWdpbnMgdG8gY2FjaGUgZXh0cmEgZGF0YSBpbiByZWdpc3RyeS4gRml4ZXMgIzU3MDIzMwoJICBBZGQgYSBHc3RTdHJ1Y3R1cmUgdG8gR3N0UGx1Z2luLiBQbHVnaW5zIGNhbiByZXRpZXZlIGl0IGluIHBsdWdpbl9pbml0IGFuZAoJICBhY2Nlc3MgdGhlIGNhY2hlZCBpbmZvIG9yIGJ1aWxkIHRoZSBjYWNoZSBhbmQgc3RvcmUgaXQgdGhlcmUuCgoyMDA5LTA2LTA3IDIyOjA5OjE0ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgcmVnaXN0cnk6IGRvbid0IHJlY3JlYXRlIGZlYXR1cmVzIG9uIGZpcnN0IHVzZS4gRml4ZXMgIzU4NDM4OQoJICBUaGUgZmlyc3QgdGltZSBvbmUgY2FsbHMgZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCksIGdzdCByZWNyZWF0ZXMgdGhlIHBsdWdpbgoJICBmZWF0dXJlIGFuZCB0aGUgZWxlbWVudCBmYWN0b3J5LiBBcyBhIHNpZGUgZWZmZWN0IHdlIHJlZiB0aGUgY2xhc3MgdG8gZmlsbAoJICBpbiBkZXRhaWwgd2UgYWxyZWFkeSBoYXZlIGZpbGxlZCBmcm9tIHRoZSByZWdpc3RyeSBjYWNoZS4gVGhpcyBwYXRjaCBjaGFuZ2VzCgkgIHRoZSBiZWhhdmlvdXIgdG8ganVzdCB1cGRhdGUgdGhlIGV4aXN0aW5nIGVudHJpZXMuIFRoZSBmYWN0b3J5IGlzIG5vdyBhdHRhY2hlZAoJICB0byB0aGUgdHlwZSBhbmQgc2V0IGluIGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCgpLgoKMjAwOS0wNi0wNyAyMjoyMDo1NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIHRlc3RzOiBjb25kaXRpb25hbGx5IGNvbXBpbGUgdGhlIHN0cmVhbXMgZXhhbXBsZQoJICBEZXRlY3QgcHRocmVhZHMuaCBpbiBjb25maWd1cmUuYWMKCSAgT25seSBjb21waWxlIHRoZSBzdHJlYW1zIGV4YW1wbGUgd2hlbiBwdGhyZWFkcy5oIGlzIHByZXNlbnQuCgkgIEZpeGVzICM1ODUwMzkKCjIwMDktMDYtMDcgMTc6MzI6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHJlbW92ZSB0eXBlIGNoZWNrcyBhbmQgcmVkdW5kYW50IGNvZGUKCjIwMDktMDYtMDcgMTU6NDM6NTcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgdmFsdWU6IGZpeCBmcmFjdGlvbiByYW5nZSBsY29weSBmdW5jdGlvbgoJICBUaGlzIGZ1bmN0aW9uIHNlZW1zIHRvIGJlIGJyb2tlbiBmb3IgMy41IHllYXJzLiBMdWNraWx5IG5vYm9keSBldmVyIHRyaWVkIHRvCgkgIG1ha2UgYSBmcmFjdGlvbiByYW5nZSBvYmplY3QgcHJvcGVydHkuLi4KCjIwMDktMDYtMDcgMTU6MzU6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgZ3N0dmFsdWU6IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50cwoJICBBZGQgYSBHVHlwZS0+R3N0VmFsdWVUYWJsZSBoYXNodGFibGUgbWFwcGluZy4KCSAgQXZvaWQgX2dldF90eXBlKCkgbXVsdGlwbGUgdGltZXMgd2hlbiB3ZSBjYW4uCgkgIFVzZSBHU2xpY2UgZm9yIGZyYWN0aW9uIHJhbmdlIGR5bmFtaWMgbWVtb3J5CgkgIEFkZCBHX0xJS0VMWSB3aGVuIHdlIGNhbgoJICBJbXByb3ZlIGxvb2t1cCBvZiB0aGUgdmFsdWUgdGFibGUgdXNpbmcgdGhlIGhhc2h0YWJsZQoKMjAwOS0wNi0wNyAxNDozMDoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgc3RydWN0dXJlOiBubyBuZWVkIHRvIGNsZWFyIG9uIGluaXQKCSAgV2UgZG9uJ3QgbmVlZCB0byBjbGVhciB0aGUgZmllbGQgb24gaW5pdCBiZWNhdXNlIHdlIHdpbGwgZG8gdGhhdCBhZ2FpbiBiZWZvcmUgd2UKCSAgYXJlIGdvaW5nIHRvIHVzZSB0aGUgZmllbGQgbGF0ZXIuCgoyMDA5LTA2LTA1IDIwOjU3OjA1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IEZpeCBzb21lIG1lbW9yeSBsZWFrcy4gU3ByaW5rbGUgR19MSUtFTFkvVU5MSUtFTFkKCSAgRml4IHNvbWUgbWVtb3J5IGxlYWtzIHNob3duIGJ5IHRoZSBuZXcgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24gdW5pdAoJICB0ZXN0LiBTcGxpdCB0aGUgZ3N0X3N0cmluZ193cmFwIGZ1bmN0aW9uIGluIGdzdHZhbHVlLmMgaW50byBjb21wb25lbnRzIGFuZAoJICB1c2UgdGhlbSB0byBtYWtlIGdzdF9zdHJpbmdfdGFrZV9hbmRfd3JhcCwgd2hpY2ggdGFrZXMgb3duZXJzaGlwIG9mIHRoZQoJICBzdHJpbmcsIGF2b2lkaW5nIGEgc3RyZHVwLgoJICBBZGQgc29tZSBHX0xJS0VMWS9VTkxJS0VMWSwgYW5kIGNsZWFuIHVwIHNvbWUgbGVha3MgaW4gZXJyb3IgcGF0aHMuCgoyMDA5LTA2LTA1IDExOjM3OjI0ICswMjAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYXJrLm5hdXdlbGFlcnRzQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZXBseSB0byBRVUVSWV9TRUVLSU5HIHdpdGggb3JpZ2luYWwgZm9ybWF0LiAgRml4ZXMgIzU4NDgzOC4KCjIwMDktMDYtMDQgMTk6NDQ6MzggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBjb25maWd1cmU6IHJlbW92ZSBBQ19DX0lOTElORSBhbmQgdXBkYXRlIHdpbjMyIGZpbGVzIHRvIGdpdAoJICBSZW1vdmUgQUNfQ19JTkxJTkUgY2hlY2ssIHNvIHdlIGRvbid0IGVuZCB1cCB3aXRoIGFuICN1bmRlZiBpbmxpbmUgaW4KCSAgY29uZmlnLmgsIHdoaWNoIGNhdXNlcyBwcm9ibGVtcyB3aXRoIHNvbWUgdmVyc2lvbnMgb2YgTVNDViBhcHBhcmVudGx5LgoJICBHTGliIGRlZmluZXMgaW5saW5lIGZvciB1cyBpbiBhIHN1aXRhYmxlIHdheSBhbHJlYWR5IGFueXdheS4KCSAgRml4ZXMgIzU4NDgzNS4KCSAgV2hpbGUgd2UncmUgYXQgaXQsIGFsc28gdXBkYXRlIHRoZSBvdGhlciB3aW4zMiBmaWxlcyB0byBnaXQgKGJ1bXAKCSAgdmVyc2lvbiwgYWRkIG5ldyBkZWZpbmVzIGFuZCBlbnVtcykuCgoyMDA5LTA2LTA0IDE4OjI2OjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGdob3N0cGFkOiBhdm9pZCBleGNlc3NpdmUgbm90aWZ5IGZvciBjYXBzCgkgIEF2b2lkIGFuIG9iamVjdCBwcm9wZXJ0eSBub3RpZnkgaWYgdGhlIGNhcHMgb24gdGhlIG90aGVyIHBhZCB3ZXJlIGFscmVhZHkKCSAgc2V0IChhbmQgdGh1cyBub3RpZmllZCkuCgoyMDA5LTA2LTA0IDE3OjI3OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IGNsaXBwZWQgc3RhcnQvc3RvcCBhZnRlciBzdGVwCgkgIFVzZSB0aGUgc2VnbWVudCBoZWxwZXJzIHRvIGdldCBhIG1vcmUgYWNjdXJhdGUgY2xpcHBlZCBzdGFydC9zdG9wIHBvc2l0aW9uIGFmdGVyCgkgIGEgc3RlcHBpbmcgb3BlcmF0aW9uIGVuZGVkLgoKMjAwOS0wNi0wNCAxMjozNDo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBtb3JlIGNvcnJlY3Qgc2VnbWVudCBtZXRob2RzCgkgIFVzZSB0aGUgbW9yZSBjb3JyZWN0IG5ldyBzZWdtZW50IG1ldGhvZHMgZm9yIHVwZGF0aW5nIHRoZSBzZWdtZW50IGJlZm9yZSBhbmQKCSAgYWZ0ZXIgYSBzdGVwLgoKMjAwOS0wNi0wNCAxMjo0ODo1MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RzZWdtZW50LmM6CgkqIGdzdC9nc3RzZWdtZW50Lmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzZWdtZW50OiBhZGQgZ3N0X3NlZ21lbnRfc2V0X3J1bm5pbmdfdGltZQoJICBBZGRlZCBuZXcgbWV0aG9kIGZvciBjbG9zaW5nIHRoZSBzZWdtZW50IHRvIGEgc3BlY2lmaWMgcnVubmluZyB0aW1lLgoJICBBUEk6IEdzdFNlZ21lbnQ6OmdzdF9zZWdtZW50X3NldF9ydW5uaW5nX3RpbWUoKQoKMjAwOS0wNi0wNCAwMDozNzoyOCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgZm9yIHN0cmluZyBjaGFuZ2VzCgkgIFRoaXMgbWFrZXMgc3VyZSB0aGF0IHBlb3BsZSB3aG8gZ2V0IHRoZW1zZWx2ZXMgYSBmcmVzaCBjaGVja291dAoJICBkb24ndCBpbW1lZGlhdGVseSBoYXZlIGNoYW5nZWQgKnBvIGZpbGVzIGFmdGVyIHJ1bm5pbmcgbWFrZSwgd2hpY2gKCSAgd291bGQgY2F1c2UgYSBiaXQgb2YgaGFzc2xlIG5leHQgdGltZSB0aGUgZmlsZXMgYXJlIHVwZGF0ZWQuIEJldHRlcgoJICB0byBrZWVwIHRoZW0gdXAtdG8tZGF0ZSB3aGVuIHN0cmluZ3MgY2hhbmdlLgoKMjAwOS0wNi0wNCAwMDo1NDoyNCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgZXJyb3JzOiByZXdvcmQgc3RhdGUgY2hhbmdlIGZhaWxlZCBlcnJvciBtZXNzYWdlIGFuZCByZW1vdmUgYnVnemlsbGEgbGluawoJICBSZXdvcmQgdGhpcyBtZXNzYWdlIGEgYml0IHRvIG1ha2UgaXQgY2xlYXJlciB3aGF0IGl0IG1lYW5zLCBuYW1lbHkgdGhhdAoJICB0aGUgc3RhdGUgY2hhbmdlIG1heSBoYXZlIGZhaWxlZCBmb3IgZ29vZCByZWFzb25zLCBidXQgdGhhdCB0aGUgZWxlbWVudAoJICBqdXN0IGZhaWxlZCB0byBwb3N0IGEgcHJvcGVyIGVycm9yIG9uIHRoZSBidXMuIFRoaXMgaXMgbm90IGFuIGludGVybmFsCgkgIEdTdHJlYW1lciBidWcsIGFuZCB3ZSByZWFsbHkgZG9uJ3QgbmVlZCBwZW9wbGUgdG8gZmxvb2QgYnVnemlsbGEgd2l0aAoJICBidWcgcmVwb3J0cyBpZiBvbmUgc3VjaCBwbHVnaW4gYnVnIGV2ZXIgbWFrZXMgaXQgaW50byB0aGUgd2lsZC4KCjIwMDktMDYtMDQgMDA6Mjk6MzEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiByZWZlciB0byBlbGVtZW50LCBwYWQsIG9yIG9iamVjdCBpbiBzb21lIG1lc3NhZ2Ugc3RyaW5ncwoJICBSZXZpc2l0IHRoZXNlIHN0cmluZ3Mgbm93IHRoYXQgdGhlIGNoYW5nZSByZWdhcmRpbmcgdGhlIG1lc3NhZ2Ugc291cmNlCgkgIG9iamVjdCBpbiBnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQoKSBnb3QgcmV2ZXJ0ZWQuIFRyeSB0byByZWZlcgoJICBleHBsaWNpdGx5IHRvIHdoYXQga2luZCBvZiBlbGVtZW50IGl0IGlzIChlbGVtZW50LCBwYWQsIGV0Yy4pIGluIHNvbWUKCSAgY2FzZXMsIHdoaWNoIGlzIG5pY2VyIHRoYW4gaGF2aW5nIHRvIGRlZHVjZSB0aGlzIGluZm8gKGFuZCB3ZSBjYW4KCSAgcmUtdXNlIHRoZSBhbHJlYWR5IGV4aXN0aW5nIHRyYW5zbGF0ZWQgc3RyaW5ncyBmb3IgdGhlIG1vc3QgY29tbW9uCgkgIGNhc2UpLiBJdCBhbHNvIG1ha2VzIGZvciBiZXR0ZXIgZXhhbXBsZSBjb2RlLCBzaW5jZSBpdCdzIGNsZWFyIG5vdwoJICB0aGF0IHRoZSBtZXNzYWdlIHNvdXJjZSBvYmplY3QgZG9lc24ndCBoYXZlIHRvIGJlIGFuIGVsZW1lbnQuCgoyMDA5LTA2LTAzIDIxOjEwOjM5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFQSTogYWRkIEdTVF9NRVNTQUdFX1NSQ19OQU1FIG1hY3JvCgkgIEFkZCBHU1RfTUVTU0FHRV9TUkNfTkFNRSBtYWNybyB0aGF0IGFsd2F5cyByZXR1cm5zIGEgbm9uLU5VTEwgc3RyaW5nLgoJICBVc2VmdWwgZm9yIGRlYnVnZ2luZyBhbmQgbG9nZ2luZyBwdXJwb3Nlcy4KCjIwMDktMDYtMDMgMTk6MDY6MzAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJKiBnc3QvZ3N0c2VnbWVudC5oOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgc2VnbWVudDogYWRkIG1ldGhvZCBmb3IgY29udmVydGluZyB0byBwb3NpdGlvbgoJICBBZGQgZ3N0X3NlZ21lbnRfdG9fcG9zaXRpb24oKSB0aGF0IGNvbnZlcnRzIGEgcnVubmluZ190aW1lIHRvIGEgcG9zaXRpb24gaW4gdGhlCgkgIHNlZ21lbnQuIEEgZmF1bHR5IHZhcmlhbnQgb2YgdGhpcyBmdW5jdGlvbiBpcyBjdXJyZW50bHkgdXNlZCBpbiBpbnB1dHNlbGVjdG9yCgkgIGJ1dCB3ZSdsbCBuZWVkIGl0IGZvciBmcmFtZSBzdGVwcGluZyB0b28uCgkgIEFQSTogR3N0U2VnbWVudDo6Z3N0X3NlZ21lbnRfdG9fcG9zaXRpb24oKQoKMjAwOS0wNi0wMyAxNTozOToxMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms7IGhhbmRsZSBFT1MgY29ycmVjdGx5LgoJICBIYW5kbGUgRU9TIGFuZCBidWZmZXJzIHdpdGhvdXQgYSB0aW1lc3RhbXAgZ3JhY2VmdWxseS4KCSAgUmVtb3ZlIGEgd2FybmluZyB0aGF0IGlzIG5vdCBzbyBtdWNoIGEgd2FybmluZyBub3cgYW55bW9yZS4KCjIwMDktMDYtMDMgMDk6NDU6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCAiZ28gYmFjayB0byBhbGxvd2luZyBnZXR0ZXh0IDAuMTEuNSwgYnV0IGRvbid0IG1peCB3aXRoIGxpYnRvb2wgMi4yIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDMxYzA5ZDczOGNlN2Y0N2JmZjlkMjkyOTk2ZTk0ODljMjc1ZTU1YTEuCgkgIFJldmVydGluZyB0aGlzLCBzaW5jZSBpdCBicmVha3MgYXV0b2dlbi5zaCBmb3IgbWUgb24gZGViaWFuIHNpZC4KCSAgRmFpbHVyZSBpczogImxpYnRvb2wgMi4yIHJlcXVpcmVzIGF1dG9wb2ludCAwLjE3IG9yIGhpZ2hlciIgZXZlbiB0aG91Z2gKCSAgMC4xNyB3YXMgZm91bmQuCgoyMDA5LTA2LTAzIDA5OjQxOjIxICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGF1dG9nZW4uc2g6CgkgIFJldmVydCAib25seSB1cGRhdGUgc3VibW9kdWxlIHdoZW4gaXQgaXMgbm90IG9uIGEgc3BlY2lmaWMgYnJhbmNoIgoJICBUaGlzIHJldmVydHMgY29tbWl0IDkzYjgzMzMzYWFkNTE5YzU1NTUxNTY1NzZmMGJhYTNiZTdiMjYzZjMuCgkgIFJldmVydGluZyBzaW5jZSB0aGlzIGZhaWxzIG9uIGEgZnJlc2ggY2hlY2tvdXQuIEFsc28sIHdlIHNob3VsZG4ndAoJICBkZXBlbmQgb24gcG9zc2libHkgdHJhbnNsYXRlZCBzdHJpbmdzLgoKMjAwOS0wNi0wMyAwMTo1NjoxMCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIGRvY3M6IGZpeCB1cCByZWZlcmVuY2UgdG8gZ3N0LWxhdW5jaC0wLjgKCSAgQWxzbyBtZW50aW9uIGRlY29kZWJpbjIsIHVyaWRlY29kZWJpbiwgYW5kIHBsYXliaW4yCgoyMDA5LTA2LTAzIDEwOjM5OjUzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZm9yZ2V0IHByZXZpb3VzIHRpbWVzIHdoZW4gc3RlcHBpbmcKCSAgV2hlbiB3ZSBzdGFydCBhIGZsdXNoaW5nIHN0ZXAgb3BlcmF0aW9uLCBmb3JnZXQgYWJvdXQgdGhlIHByZXZpb3VzIHN0cmVhbSB0aW1lCgkgIHNvIHRoYXQgdGhlIHBvc2l0aW9uIHJlcG9ydGluZyB3b3JrcyBjb3JyZWN0bHkuCgoyMDA5LTA2LTAzIDAxOjI1OjI2ICswMjAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJICBnbyBiYWNrIHRvIGFsbG93aW5nIGdldHRleHQgMC4xMS41LCBidXQgZG9uJ3QgbWl4IHdpdGggbGlidG9vbCAyLjIKCjIwMDktMDYtMDMgMDE6MDE6NTcgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBvbmx5IHVwZGF0ZSBzdWJtb2R1bGUgd2hlbiBpdCBpcyBub3Qgb24gYSBzcGVjaWZpYyBicmFuY2gKCjIwMDktMDYtMDIgMTM6NDU6NTIgLTA3MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogU2V0IHBpcGVsaW5lIHRvIFBBVVNFRCBiZWZvcmUgd2FpdGluZyBmb3IgbWFpbiBsb29wIGlkbGUKCSAgV2hlbiBpdCBpcyBzaHV0dGluZyBkb3duIGEgcGlwZWxpbmUgYWZ0ZXIgY3RybC1jLCBzZXQgcGlwZWxpbmUgdG8KCSAgcGF1c2VkIGJlZm9yZSB3YWl0aW5nIGZvciB0aGUgbWFpbiBsb29wIHRvIGNvbXBsZXRlIGFsbCBwZW5kaW5nCgkgIHRyYW5zYWN0aW9ucy4gIEZpeGVzICM1ODQ2NTcuCgkgIElmIHNvbWUgcGFydCBvZiB0aGUgcGlwZWxpbmUgaXMgZ2VuZXJhdGluZyBzaWduYWxzIG9yIGlkbGUgZnVuY3Rpb25zCgkgIGF0IGEgZmFzdCByYXRlLCB3YWl0aW5nIGZvciBhIG1haW4gbG9vcCBpdGVyYXRpb24gbWF5IG5ldmVyIHJldHVybi4KCjIwMDktMDYtMDIgMTg6MzY6MTAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZTogZml4IHNlcmlhbGlzYXRpb24gb2YgbmVzdGVkIHN0cnVjdHVyZXMuCgkgIFVzZSBzdHJpbmdfd2FycC91bndyYXAgdG8gZXNjYXBlIGRlbGltaXRlcnMsIG90aGVyd2lzZSBkZXNlcmlhbGlzYXRpb24gZmFpbHMuCgkgIEFsc28gbW92ZSBHU1RfQVNDSUlfSVNfU1RSSU5HIHRvIHByaXZhdGUgaGVhZGVyIHRvIGF2b2lkIGtlZXBpbmcgaXQgaW4gc3luYy4KCSAgQWxzbyB1c2UgJ1wwJyB3aGVuIHRlcm1pbmF0aW5nIGEgc3RyaW5nIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHkuCgoyMDA5LTA2LTAyIDE1OjM3OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZml4IHJlZ3Jlc3Npb24gaW4gdW5pdCB0ZXN0cwoJICBTdG9yZSB0aGUgdGltZXN0YW1wIG9mIHRoZSBidWZmZXIgYWZ0ZXIgcHJlcm9sbGluZy4gV2hpbGUgd2UgYXJlIHByZXJvbGxlZCB3ZQoJICB3YW50IHRvIHJlcG9ydCB0aGUgcG9zaXRpb24gb2YgdGhlIHNlZ21lbnQgc3RhcnQgdmFsdWUuCgoyMDA5LTA2LTAxIDIwOjI2OjUzICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHdpZGVuIGxvZyBsZXZlbCBzdHJpbmdzIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBuZXcgTUVNRFVNUAoKMjAwOS0wNi0wMSAxOTozNzoxNCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHBvc3QgYSB3YXJuaW5nIG9uIGV4Y2Vzc2l2ZSBmcmFtZWRyb3BzCgkgIFdoZW4gd2UgZ28gaW50byBlbWVyZ2VuY3kgcmVuZGVyaW5nLCBwb3N0IGEgd2FybmluZyBpbmZvcm1pbmcgdGhlIHVzZXIgYWJvdXQKCSAgdGhpcyBmYWN0LgoKMjAwOS0wNS0zMSAxOToxMDowMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgc3RlcHBpbmcgaW4gcmV2ZXJzZQoJICBGaXggc3RlcHBpbmcgYW5kIHBvc2l0aW9uIHJlcG9ydGluZyBpbiByZXZlcnNlIHBsYXliYWNrLgoKMjAwOS0wNS0yOSAxNjowNjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHVzZSBzdGFydF90aW1lIGFzIHRoZSBzdGVwIHN0YXJ0CgkgIFVzZSB0aGUgc3RhcnRfdGltZSBvZiB0aGUgZWxlbWVudCBhcyB0aGUgcG9pbnQgZnJvbSB3aGVyZSB0aGUgc3RlcCBvcGVyYXRpb24KCSAgc3RhcnRzLiBUaGlzIGZpeGVzIHN0ZXBwaW5nIGluIGFsbCBwYXVzZWQgc3RhdGVzLgoKMjAwOS0wNS0xOSAxOTo0NTowNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IGNhdGNoIHN0ZXAgY2FzZXMgaW4gX3dhaXRfcHJlcm9sbCgpCgkgIFdoZW4gYSBzdWJjbGFzcyBpcyBibG9ja2luZyBpbiBfd2FpdF9wcmVyb2xsKCkgaW4gdGhlIF9yZW5kZXIgbWV0aG9kLCBtYWtlIHN1cmUKCSAgd2UgY2FuIHVubG9jayB0aGUgc3ViY2xhc3MgYW5kIGRldGVjdCB0aGlzIHJldHVybiB2YWx1ZSBmcm9tIHRoZSByZW5kZXIgbWV0aG9kLgoKMjAwOS0wNS0xOSAxMDo1MDo1NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IG1vcmUgc3RlcHBpbmcgaW4gcmV2ZXJzZSBmaXhlcwoKMjAwOS0wNS0xOCAxODo0MTo0NSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgYmFzZXNpbms6IHNtYWxsIGNsZWFudXBzCgoyMDA5LTA1LTE4IDE1OjQ4OjIwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtZnJhbWVzdGVwLnR4dDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdGVwcGluZy9mcmFtZXN0ZXAxLmM6CgkgIGZyYW1lc3RlcDogaW1wbGVtZW50IGJhY2t3YXJkcyBmcmFtZXN0ZXAKCSAgVXBkYXRlIGZyYW1lc3RlcCBkb2N1bWVudCwgd2Ugd2FudCB0byBwYXNzIHRoZSBmbHVzaCBmbGFnIGluIHRoZSBzdGVwLWRvbmUKCSAgbWVzc2FnZS4KCSAgQWRkIGZsdXNoIGZsYWcgdG8gdGhlIGdzdG1lc3NhZ2UuCgkgIFVwZGF0ZSBleGFtcGxlcyB0byB1c2UgdGhlIG5ldyBzdGVwLWRvbmUgbWVzc2FnZSBhcGkuCgkgIEltcGxlbWVudCBmcmFtZXN0ZXAgd2l0aCBwbGF5YmFjayByYXRlcyA8IDAuMCB0b28uCgoyMDA5LTA1LTE1IDE1OjI1OjA2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogYWRkIGZyYW1lc3RlcHBpbmcgaW4gdGltZQoKMjAwOS0wNS0xNSAxNToyNDozMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgZXhhbXBsZXM6IHN0ZXAgaW4gdGltZSBhcyB3ZWxsCgoyMDA5LTA1LTE1IDEyOjAyOjAyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvZnJhbWVzdGVwMS5jOgoJICBleGFtcGxlOiBwcmludCBzdGVwX2RvbmUgbWVzc2FnZSBhbmQgc3luYwoJICBEdW1wIHRoZSBzdGVwX2RvbmUgbWVzc2FnZSBjb250ZW50cy4KCSAgU3luYyBhZ2FpbnN0IHRoZSBjbG9jayB3aGVuIGdvaW5nIHRvIFBMQVlJTkcuCgoyMDA5LTA1LTE1IDEyOjA1OjQ0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazoga2VlcCB0cmFjayBvZiBzdGVwcGVkIHRpbWUKCSAgUGFzcyBydW5uaW5nX3RpbWUgYXJvdW5kIHNvIHRoYXQgdGhlIHN0ZXBwaW5nIGNvZGUgY2FuIGNhbGN1bGF0ZSB0aGUgZWxhcHNlZAoJICB0aW1lIGNvcnJlY3RseS4KCjIwMDktMDUtMTQgMTk6Mjk6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3ZlIHN0dWZmIGFyb3VuZCwgbW9yZSBzdGVwcGluZwoJICBNYWtlIHN0YXJ0IGFuZCBzdG9wX3N0ZXBwaW5nIG1ldGhvZHMgYW5kIG1vdmUgdGhlaXIgaW52b2NhdGlvbiBpbiB0aGUgcmlnaHQKCSAgcGxhY2VzLgoJICBQZXJmb3JtIHRoZSBhdHVhbCBzdGVwcGluZyBvcGVyYXRpb24gd2hlcmUgd2UgaGF2ZSBmdWxsIGNvbnRleHQgYWJvdXQgdGhlCgkgIHRpbWVzdGFtcHMuCgoyMDA5LTA1LTExIDE4OjU2OjAzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvc3RlcHBpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0ZXBwaW5nL2ZyYW1lc3RlcDEuYzoKCSAgQWRkIGZyYW1lIHN0ZXBwaW5nIGluIFBBVVNFRCBleGFtcGxlCgoyMDA5LTA1LTExIDE4OjU2OjU2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBiYXNlc2luazogZmlyc3Qgc3RhYiBhdCBmcmFtZSBzdGVwcGluZyBpbiBQQVVTRUQKCSAgVW5sb2NrIHRoZSBwcmVyb2xsZWQgZnJhbWUgYW5kIHJlY2hlY2sgaWYgd2UgbmVlZCB0byBzdGVwLgoJICBLZWVwIGEgc2ltcGxlIGNvdW50ZXIgZm9yIHRoZSBmcmFtZXMgd2UncmUgYWJvdXQgdG8gc2tpcCB3aGlsZSBzdGVwcGluZyBhbmQKCSAgcHJlcm9sbC9wb3N0IHN0ZXBfZG9uZSB3aGVuIHN0ZXBwaW5nIGZpbmlzaGVkLgoKMjAwOS0wNi0wMSAxMjoxOTo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG5ldyBBUEkgZm9yIGZyYW1lc3RlcHBpbmcKCSAgQWRkIG5ldyBTVEVQIGV2ZW50IGFuZCBtZXRob2RzIGZvciBjcmVhdGluZy9wYXJzaW5nIHRoZSBldmVudAoJICBVcGRhdGUgZGVzaWduIGRvY3MuCgkgIEFkZCBuZXcgU1RFUF9ET05FIG1lc3NhZ2UgYW5kIG1ldGhvZCB0byBjcmVhdGUvcGFyc2UuCgkgIEFQSTogR3N0RXZlbnQ6OmdzdF9ldmVudF9uZXdfc3RlcCgpCgkgIEFQSTogR3N0RXZlbnQ6OmdzdF9ldmVudF9wYXJzZV9zdGVwKCkKCSAgQVBJOiBHc3RNZXNzYWdlOjpnc3RfbWVzc2FnZV9uZXdfc3RlcF9kb25lKCkKCSAgQVBJOiBHc3RNZXNzYWdlOjpnc3RfbWVzc2FnZV9wYXJzZV9zdGVwX2RvbmUoKQoKMjAwOS0wNi0wMSAxMDowNTozMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHN0cnVjdHVyZXM6IGRvbid0IGxlYWsgaW52YWxpZCBvciBlbXB0eSBzdHJpbmdzIHdoZW4gd2Ugd2FybgoJICBGaXhlcyBtaW5vciBtZW1vcnkgbGVhayBpbiB1bml0IHRlc3RzIGNhdXNlZCBieSB0aGUgcmVjZW50IGNoYW5nZXMuCgkgIFNpbmNlIHdlJ3JlIGV4cGVjdGVkIHRvIHRha2Ugb3duZXJzaGlwIG9mIHRoZSBHVmFsdWUgaW4gdGhlIHN0cnVjdHVyZQoJICBmaWVsZCBzdHJ1Y3QgaGVyZSwgd2UgbmVlZCB0byB1bnNldCBpdCBpZiB3ZSBkb24ndCB1c2UgaXQuCgoyMDA5LTA2LTAxIDExOjA4OjMxICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogYWRkIHRlc3QgZm9yIGN1YmljIGludC4gYW5kIHRvbyBmZXcgY29udHJvbCBwb2ludHMKCSAgQWRkZWQgYW5vdGhlciB0ZXN0cyB0byBjaGVjayBzb21lIHdvcnJpZXMgaW4gQnVnICM1ODI1NjQuCgoyMDA5LTA1LTI4IDEyOjMxOjA4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgZmFrZXNyYzogYWRkIGEgRklYTUUgY29tbWVudCBmb3IgYmxvY2tzaXplIHZzLiBzaXplLW1heCBwcm9wZXJ0eSBpc3N1ZQoKMjAwOS0wNS0zMSAyMToyNzo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSAgaWRlbnRpdHk6IGhhY2sgYXJvdW5kIGdfb2JqZWN0X25vdGlmeSgpIGJ1ZyBieSBwcm90ZWN0aW5nIGl0IHdpdGggYSBsb2NrCgkgIE91dC1vZi1iYW5kIGV2ZW50cyBtaWdodCBsZWFkIHRvIHVzIGNhbGxpbmcgZ19vYmplY3Rfbm90aWZ5KCkgZnJvbSBhCgkgIG5vbi1zdHJlYW1pbmcgdGhyZWFkLCB3aGljaCBjYW4gY2F1c2UgY3Jhc2hlcyBpZiBnX29iamVjdF9ub3RpZnkoKSBpcwoJICBiZWluZyBjYWxsZWQgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZCBhdCB0aGUgc2FtZSB0aW1lLiBTZWUgIzU1NDQ2MC4KCjIwMDktMDUtMzEgMjI6Mzc6NTkgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiB1c2UgcmVhbCB3b3JsZCBudW1iZXIgaW4gYmVuY2htYXJrCgoyMDA5LTA1LTMxIDIyOjM3OjAzICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgcmVnaXN0cnk6IGZpeCBjb21tZW50IGZvcm1hdHRpbmcKCjIwMDktMDUtMzAgMjA6MzY6MjUgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICBmYWtlc2luazogaGFjayBhcm91bmQgY3Jhc2hlciBidWcgaW4gZ19vYmplY3Rfbm90aWZ5KCkgZm9yIG91dC1vZi1iYW5kIGV2ZW50cwoJICBHT2JqZWN0IG1heSBjcmFzaCBpZiB0d28gdGhyZWFkcyBkbyBjb25jdXJyZW50IGdfb2JqZWN0X25vdGlmeSgpIG9uIHRoZSBzYW1lCgkgIG9iamVjdC4gVGhpcyBtYXkgaGFwcGVuIGlmIGZha2VzaW5rIHJlY2VpdmVzIGFuIG91dC1vZi1iYW5kIGV2ZW50IHN1Y2ggYXMKCSAgRkxVU0hfU1RBUlQgd2hpbGUgcHJvY2Vzc2luZyBhIGJ1ZmZlciBvciBzZXJpYWxpc2VkIGV2ZW50IGluIHRoZSBzdHJlYW1pbmcKCSAgdGhyZWFkLiBTaW5jZSB0aGlzIG1heSBoYXBwZW4gd2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5ncyBkdXJpbmcgYSBjb21tb24KCSAgb3BlcmF0aW9uIGxpa2UgYSBzZWVrLCBhbmQgdGhlcmUgc2VlbXMgdG8gYmUgbGl0dGxlIGNoYW5jZSBvZiBhIHRpbWVseSBmaXgKCSAgaW4gR09iamVjdCAoc2VlICMxNjYwMjApLCB3ZSBzaG91bGQgaGFjayBhcm91bmQgdGhpcyBpc3N1ZSBieSBwcm90ZWN0aW5nIGFsbAoJICBvZiBmYWtlc2luaydzIGRpcmVjdCBnX29iamVjdF9ub3RpZnkoKSBjYWxscyB3aXRoIGEgbG9jay4KCSAgQWxzbyBhZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgkgIEZpeGVzICM1NTQ0NjAuCgoyMDA5LTA1LTMxIDE2OjE3OjQ1ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIHRhZ2xpc3RzOiBtYWtlIF9nZXRfe3N0cmluZ3xwb2ludGVyfSByZXR1cm4gRkFMU0UgZm9yIE5VTEwgdmFsdWVzCgkgIE1ha2UgZ3N0X3RhZ19saXN0X2dldF9zdHJpbmcoKSByZXR1cm4gRkFMU0UgZm9yIE5VTEwgc3RyaW5ncyBhbmQKCSAgZW1wdHkgc3RyaW5ncywgYW5kIGdzdF90YWdfbGlzdF9nZXRfcG9pbnRlcigpIHJldHVybiBGQUxTRSBmb3IKCSAgTlVMTCBwb2ludGVycywgbGlrZSB3ZSBkbyB3aXRoIGRhdGVzIGFuZCBidWZmZXJzLgoJICBGaXhlcyAjNTYwMzQ1LgoKMjAwOS0wNS0zMCAyMDo1MDo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICB0YWdsaXN0czogd2FybiBpZiBzb21lb25lIHRyaWVzIHRvIGFkZCBlbXB0eSBvciBOVUxMIHN0cmluZyB0YWdzIHRvIGEgdGFnbGlzdAoJICBBbHNvIHdhcm4gaWYgYW4gZWxlbWVudCBvciBhcHBsaWNhdGlvbiB0cmllcyB0byBhZGQgYSBmaWVsZCB3aXRoIGFuCgkgIGVtcHR5IHN0cmluZyB0byBhIHN0cnVjdHVyZSAoTlVMTCBzdHJpbmdzIGFyZSBzdGlsbCBuZWVkZWQgYW5kCgkgIGFsbG93ZWQgdGhvdWdoKSBhbmQgZG8gYWxsIHRob3NlIGNoZWNrcyBpbiB0aGUgcmlnaHQgZnVuY3Rpb24uCgkgIEZpeGVzICM1NTk2NDMuCgoyMDA5LTA1LTI5IDE4OjIyOjQyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBzdHJ1Y3R1cmU6IGFkZCBnc3Rfc3RydWN0dXJlX2lkX25ldygpIGNvbnZlbmllbmNlIGZ1bmN0aW9uCgkgIEFkZCBjb252ZW5pZW5jZSB3cmFwcGVyIGZvciBnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ldygpIHBsdXMKCSAgZ3N0X3N0cnVjdHVyZV9pZF9zZXQoKSBhbmQgdXNlIGl0IGluIGEgZmV3IHBsYWNlcy4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX25ldygpCgoyMDA5LTA1LTI5IDE4OjAwOjA2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0cXVhcmsuYzoKCSogZ3N0L2dzdHF1YXJrLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBtaWNyby1vcHRpbWlzYXRpb246IHVzZSBHU1RfUVVBUksgaW4gbW9yZSBwbGFjZXMKCSAgVXNlIGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3KCkgaW4gY29tYmluYXRpb24gd2l0aCBHU1RfUVVBUksKCSAgcmF0aGVyIHRoYW4gZ3N0X3N0cnVjdHVyZV9pZF9uZXcoKSB3aGVuIGNyZWF0aW5nIG1lc3NhZ2UsIGV2ZW50LAoJICBxdWVyeSBhbmQgdGFnbGlzdCBzdHJ1Y3R1cmVzLiBNb3N0bHkganVzdCBiZWNhdXNlIHdlIGNhbi4KCjIwMDktMDUtMjkgMTY6MDQ6MjggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiByZXNldCBzdGFydF90aW1lIGluIGxvc3Qgc3RhdGUKCjIwMDktMDUtMjkgMTM6MDM6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZG9jczogdXBkYXRlIGVsZW1lbnQgYW4gcGlwZWxpbmUgZG9jcwoKMjAwOS0wNS0yOSAxMjo0ODoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIGRvY3M6IHJlbW92ZSBhIFRPRE8gaXRlbSB0aGF0IGlzIGZpeGVkIG5vdwoKMjAwOS0wNS0yOSAxMjoyMTozNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIHBpcGVsaW5lOiBkZXByZWNhdGUgb2xkIG1ldGhvZHMsIGZpeCB0ZXN0CgkgIERlcHJlY2F0ZSB0aGUgb2xkIF9zZXRfc3RyZWFtX3RpbWUgYW5kIF9nZXRfbGFzdF9zdHJlYW1fdGltZSBtZXRob2RzIGJlY2F1c2UKCSAgdGhleSBhcmUgbm93IGVxdWl2YWxlbnQgdG8gdGhlIGJldHRlciBuYW1lZCBfc2V0L19nZXRfc3RhcnRfdGltZS4KCjIwMDktMDUtMjggMTY6MzA6NTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIHBpcGVsaW5lOiB1c2UgU1RBUlRfVElNRSB0byBrZWVwIHRyYWNrIG9mIHRpbWUKCSAgVXNlIHRoZSBlbGVtZW50IFNUQVJUX1RJTUUgdG8ga2VlcCB0cmFjayBvZiB0aGUgcnVubmluZyB0aW1lIHdoZW4gdGhlIHBpcGVsaW5lCgkgIHBhdXNlZCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIHRvIHJlc3RvcmUgdGhlIGJhc2VfdGltZS4KCSAgVGFrZSB0aGUgc3RhcnRfdGltZSBiZWZvcmUgc2V0dGluZyB0aGUgY2hpbGRyZW4gdG8gUEFVU0VEIHNvIHRoYXQgd2UgY2FuCgkgIGRpc3RyaWJ1dGUgdGhlIHN0YXJ0X3RpbWUgdG8gdGhlIGNoaWxkcmVuLgoKMjAwOS0wNS0yOCAxNTo0MDowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSAgYmluOiBzZXQgdGhlIGJhc2VfdGltZSBhbmQgc3RhcnRfdGltZSBiZXR0ZXIKCSAgU2ltcGx5IHNldCB0aGUgc3RhcnRfdGltZSBhbmQgYmFzZV90aW1lIG9uIHRoZSBlbGVtZW50IGluc3RlYWQgb2YgY2FsbGluZyB0aGUKCSAgc2V0dGVycy4KCjIwMDktMDUtMjcgMTE6MzU6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogbWFrZSB0aGUgYmluIHNldCB0aGUgc3RhcnRfdGltZSBvbiBlbGVtZW50cwoJICBTZXQgdGhlIHN0YXJ0X3RpbWUgb2YgdGhlIGJpbiBvbiB0aGUgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhZGRlZCB0byB0aGUKCSAgcGlwZWxpbmUgYW5kIHdoZW4gYSBzdGF0ZSBjaGFuZ2UgaGFwcGVucy4KCjIwMDktMDUtMjYgMTE6NTM6MDUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZWxlbWVudDogYWRkIHN0YXJ0X3RpbWUgZmllbGQgYW4gbWV0aG9kcwoJICBBZGQgYSBzdGFydF90aW1lIGZpZWxkIGFuZCBzb21lIG1ldGhvZHMuIFRoZSBzdGFydF90aW1lIHdpbGwgY29udGFpbiB0aGUKCSAgcnVubmluZ190aW1lIG9mIHdoZW4gdGhlIGVsZW1lbnQgbGFzdCB3ZW50IHRvIHBhdXNlZC4gVGhpcyB0aW1lIGNhbiBiZSB1c2VyIHRvCgkgIHJlcG9ydCB0aGUgcG9zaXRpb24gaW4gUEFVU0VEIGJ1dCBhbHNvIHRvIGRvIG1vcmUgY29ycmVjdCBjbGlwcGluZyBhbmQKCSAgc3RlcHBpbmcgbGF0ZXIuCgoyMDA5LTA1LTI4IDIyOjAyOjIxICswMjAwICBBcm5vdXQgVmFuZGVjYXBwZWxsZSA8YXJub3V0QG1pbmQuYmU+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGZpeCBfbWFza2VkX3NjYW5fdWludDMyKCkgYXQgYm91bmRhcmllcwoJICBnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIgY291bGQgcmV0dXJuIHZhbHVlcyBzbWFsbGVyIHRoYW4gb2Zmc2V0CgkgIGlmIHRoZSBmaXJzdCBieXRlKHMpIG9mIHRoZSBtYXNrIGFyZSAwIGFuZCB0aGUgcGF0dGVybiBtYXRjaGVzIHRoZQoJICBiZWdpbm5pbmcgb2YgdGhlIGFkYXB0ZXIuCgkgIEFkZGVkIGV4YW1wbGVzIHRvIGRvY3VtZW50YXRpb24gb2YgZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyKCkuCgkgIEFsc28gYWRkZWQgc29tZSBtb3JlIG1hc2tlZCBib3VuZGFyeSB0ZXN0cy4KCSAgRml4ZXMgIzU4NDExOAoKMjAwOS0wNS0yOCAxNjozNjozMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJICBwYWQ6IGFkZCBwYWQgcHJpdmF0ZSBzdHJ1Y3R1cmUKCSAgQWRkIHBhZCBwcml2YXRlIHN0cnVjdHVyZSBhbmQgbW92ZSB0aGUgbmV3IGNoYWlubGlzdGZ1bmMgaW50byB0aGUgcHJpdmF0ZQoJICBzdHJ1Y3QuIFRoaXMgYXZvaWRzIEFCSSBicmVha2FnZSBhbmQgYWxsb3dzIHVzIHRvIGV4cGFuZCBpbiB0aGUgZnV0dXJlLgoKMjAwOS0wNS0yNyAxNjozNDoxOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBtaXNzaW5nIHN5bWJvbCB0byB0aGUgd2luMzIgZXhwb3J0cwoJICBUaGlzIHdhcyBhY2NpZGVudGlhbGx5IHJlbW92ZWQgYnkgbXkgbGFzdCBjb21taXQuCgoyMDA5LTA1LTI3IDE2OjE3OjMxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBidWZmZXI6IGF2b2lkIG1lbW9yeSBsZWFrcwoJICBBdm9pZCBsZWFraW5nIHRoZSBjYXBzIG9mIHRoZSBkZXN0IGJ1ZmZlciBhbmQgYXZvaWQgZG9pbmcgbmVlZGxlc3MgY2FwcwoJICByZWZzLgoJICBXaGVuIHRoZSBzb3VyY2UgYW5kIHRhcmdldCBidWZmZXJzIGFyZSB0aGUgc2FtZSwgcmV0dXJuIGltbWVkaWF0bHkuCgoyMDA5LTA1LTI3IDE0OjMyOjUxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IEFkZCBnc3RfbWVzc2FnZV97bmV3LHBhcnNlfV90YWdfZnVsbCgpIHRvIGdldC9zZXQgdGhlIHNvdXJjZSBwYWQKCSAgRml4ZXMgYnVnICM1ODI1ODguCgoyMDA5LTA1LTI3IDE0OjA2OjEzICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBSZXZlcnQgImVsZW1lbnQ6IFNldCB0aGUgb3JpZ2luYXRpbmcgcGFkIGFzIG1lc3NhZ2Ugc291cmNlIGluIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCAoKSIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCBiZWJmZGU3NTAyN2U5NzViN2U3Yzc0YzYzNThjNWJlODNlYTRhYzlmLgoJICBUaGlzIGNoYW5nZSBzaG91bGRuJ3QgYmUgZG9uZSBpbiBhIHN0YWJsZSByZWxlYXNlIHNlcmllcyBhcwoJICBhcHBsaWNhdGlvbnMgYXJlIGFjdHVhbGx5IGV4cGVjdGluZyB0aGUgc2VuZGVyIHRvIGJlIGFuCgkgIEdzdEVsZW1lbnQuIE9uZSBleGFtcGxlIGlzIHRvdGVtLgoKMjAwOS0wNS0yNiAxMTozNTo0OSArMDEwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24KCjIwMDktMDUtMjYgMTA6NDE6MjggKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogTWFrZWZpbGUuYW06CgkgIEZpeCAnbWFrZSBkaXN0Y2hlY2snCgkgIFRoZSBjaGVjay1lbnVtLWdldHR5cGVzIHJ1bGUgZGlkbid0IHdvcmsgZm9yICdtYWtlIGRpc3RjaGVjaycgc2luY2UKCSAgaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIGxvY2F0aW9uIG9mIHRoZSBzb3VyY2UgZmlsZXMgZnJvbSB0aGUKCSAgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGljaCBpc24ndCB0cnVlIGR1cmluZyBkaXN0Y2hlY2tpbmcuCgoyMDA5LTA1LTI2IDEwOjM4OjU2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbWFudWFscy5tYWs6CgkgIG1hbnVhbHMubWFrOiBhdHRlbXB0IHRvIG1ha2UgJ21ha2UgZGlzdGNoZWNrJyB3b3JrIHdpdGggLWpOCgkgIEF0dGVtcHQgdG8gZml4IHRoZSAnY2Fubm90IGNyZWF0ZSByZWd1bGFyIGZpbGUgYnVpbGQvaW1hZ2UuZW50aXRpdGVzOgoJICBmaWxlIGV4aXN0cycgZXJyb3IgSSBnb3QuCgoyMDA5LTA1LTI1IDIzOjU4OjM3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgZG9jczogZml4IGNkcGFyYW5vaWEgZXhhbXBsZSBwaXBlbGluZSBpbiBnc3QtbGF1bmNoIG1hbiBwYWdlCgoyMDA5LTA1LTI1IDE4OjQ0OjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZWxlbWVudDogZml4IHR5cG8gaW4gY29tbWVudHMKCjIwMDktMDUtMjUgMTc6NDM6MzIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGRpc3Q6IEZpeCB0aGUgbmFtZSBvZiB0aGUgaGVhZGVyIHRvIGRpc3Q6IHRlc3RydHBvb2wuaCwgbm90IHJ0cG9vbC10ZXN0LmgKCjIwMDktMDUtMjUgMTc6MDM6MDUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgVXBkYXRlIGNvbW1vbgoKMjAwOS0wNS0yNSAxNjo1NDoyNSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIGFzc2VydGlvbgoJICBSZW1vdmUgYW4gYXNzZXJ0aW9uLCB0aGlzIGlzIG5vdCByZWFsbHkgYW4gZXJyb3IgaW4gYWxsIGNhc2VzLgoJICBGaXhlcyAjNTgyMDEwCgoyMDA5LTA1LTI1IDE2OjIxOjU1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBlbmFibGUgbW9ub3RvbmljIGNsb2NrIHdoZW4gd2UgY2FuCgkgIEVuYWJsZSB0aGUgbW9ub3RvbmljIGNsb2NrIGJ5IGRlZmF1bHQgd2hlbiB3ZSBjYW4uCgkgIEZpeGVzICM1ODM1NTQKCjIwMDktMDUtMjUgMTQ6NTI6MTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIGRvY3M6IGFkZCBJbWFnZSB0byBkcmFmdCBrbGFzcyBkb2N1bWVudGF0aW9uCgoyMDA5LTA1LTI1IDEzOjAzOjQyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBwYWQ6IGtlZXAgdGFzayByZWYgYmVmb3JlIHJlbGVhc2luZyB0aGUgbG9jawoJICBLZWVwIGEgcmVmIHRvIHRoZSB0YXNrIG9uIHRoZSBwYWQgc28gdGhhdCBhIGNvbmN1cnJlbnQgc3RvcCBjYW4gc3RvcCBhbmQgam9pbgoJICB0aGUgdGFzay4KCjIwMDktMDUtMjUgMTE6NTY6NDcgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBnc3R0YXNrOiBhdm9pZCBqb2luIHRvIHJldHVybiBlYXJseQoJICBVbnNldCB0aGUgcnVubmluZyBmbGFnIGFmdGVyIHdlIHJlbGVhc2VkIHRoZSBsb2NrIGZvciBwb3N0aW5nIHRoZSBzdHJlYW0tc3RhdHVzCgkgIG1lc3NhZ2UuIElmIHdlIHNldCB0aGUgcnVubmluZyBmbGFnIHRvIEZBTFNFIHRvbyBlYXJseSwgdGhlIGpvaW4gbWV0aG9kIHdpbGwKCSAganVzdCBjb250aW51ZSB3aXRob3V0IHdhaXRpbmcgZm9yIHRoZSBtZXNzYWdlIHRvIGJlIHBvc3RlZCwgbGVhZGluZyB0byBwb3RlbnRpYWwKCSAgY3Jhc2hlcy4KCjIwMDktMDUtMjQgMjM6MTQ6MjYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RwcmVzZXQuYzoKCSAgcHJlc2V0OiBmaXggdXBkYXRlIHJ1bGUKCSAgT25seSB1cGRhdGUgdGhlIHByZXNldCBmcm9tIHN5c3RlbSwgaWYgd2UgaGFkIGEgcHJlc2V0IGJlZm9yZSBhbmQgc3lzdGVtCgkgIHZlcnNpb24gaXMgbmV3ZXIuCgoyMDA5LTA1LTIyIDIzOjQ3OjMwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2JlbmNobWFya3MvY29udHJvbGxlci5jOgoJICBjb250cm9sbGVyOiBhZGQgYSBiZW5jaG1hcmsgdG8gdmVyaWZ5IHRoZSBzd2l0Y2ggdG8gZ3NlcXVlbmNlCgoyMDA5LTA1LTIyIDIzOjUwOjU4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSAgY29udHJvbGxlcjogYWRkIG1vcmUgZXJyb3IgaGFuZGxpbmcgdG8gZXhhbXBsZQoKMjAwOS0wNS0yMiAyMzoxNDo0MSArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCBmcmVlIG5vZGUtZGF0ZSBhbmQgZGVyZWYgYWdhaW4uIEZpeGVzICM1ODA1NzkKCSAgV2hlbiB3cml0aW5nIGEgY2FjaGUgY2h1bmsgZmFpbHMsIHdlIHdlcmUgZnJlZWluZyB0aGUgbm9kZSBhbmQganVtcCB0byBhIGZpbmFsCgkgIGNsZWFudXAgd2hpY2ggZGVyZWZlcmVuY2VkIGEgbnVsbCBwb2ludGVyLiBMZXZlIGZyZWVpbmcgdGhlIG5vZGUgdG8gdGhlIGNsZWFudXAKCSAgY29kZSBpbiBmYWlsX2ZyZWVfbGlzdC4gKHNvcnJ5IGZvciBjb21taXR0aW5nIHdyb25nIGZpeCBiZWZvcmUpLgoKMjAwOS0wNS0yMiAyMzoxMDowMCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIHJlZ2lzdHJ5OiBkb24ndCBmcmVlIG5vZGUtZGF0ZSBhbmQgZGVyZWYgYWdhaW4uIEZpeGVzICM1ODA1NzkKCSAgV2hlbiB3cml0aW5nIGEgY2FjaGUgY2h1bmsgZmFpbHMsIHdlIHdlcmUgZnJlZWluZyB0aGUgbm9kZSBhbmQganVtcCB0byBhIGZpbmFsCgkgIGNsZWFudXAgd2hpY2ggZGVyZWZlcmVuY2VkIGEgbnVsbCBwb2ludGVyLiBMZXZlIGZyZWVpbmcgdGhlIG5vZGUgdG8gdGhlIGNsZWFudXAKCSAgY29kZSBpbiBmYWlsX2ZyZWVfbGlzdC4KCjIwMDktMDUtMjIgMTQ6MTc6NTYgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGFkZCBHX0xJS0VMWSBhbmQgam9pbiB0d28gaWYgZm9yIHNhbWUgY29uZGl0aW9uCgkgIEEgR19MSUtFTFkgZm9yIHRoZSBzZXF1ZW5jZSE9TlVMTCBjaGVja3MuIEpvaW4gdHdvIGlmcyB0byBhbiBpZi1lbHNlLiBBZGQKCSAgaW5kZW50IGd1aWRlcyB0byBrZWVwIGluZGVudCBmb3JtIGJyZWFraW5nIHRoZSBmdW5jdGlvbiBkZWNsYXJhdGlvbgoKMjAwOS0wNS0yMiAxMjo1NzoxMCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgZ3N0dHlwZWZpbmRoZWxwZXI6IEZpeCBpbmRlbnRhdGlvbgoKMjAwOS0wNS0yMiAxMjoyNDoyMiArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkgIGRvY3M6IGZpeCBndGstZG9jIHdhcm5pbmdzCgkgIE1vdmUgTVQgc2FmZXR5IHRvIG1haW4gZGVzY3JpcHRpb24gKGl0IGRvZXMgbm90IGJlbG9uZyB0byBSZXR1cm46IG9yIFNpbmNlOgoJICBzdGF0ZW1lbnQpLiBBZGQgYSBmZXcgbWlzc2luZyByZXR1cm4gZG9jcy4gRG93bmdyYWRlIGEgbm9ybWFsIGNvbW1lbnQgZnJvbWEgZG9jCgkgIGNvbW1lbnQuIEZpeCBhIGRvYyBoZWFkZXIgdG8gb25seSBjb250YWluIHN5bWJvbCBuYW1lLgoKMjAwOS0wNS0yMiAxMDoxOTozNiArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBkM2E4ZmFiIHRvIDg4OGUwYTIKCjIwMDktMDUtMjIgMDk6NTE6NDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkgIGRpc3Q6IEFkZCBydHBvb2wtdGVzdC5oIHRvIHRoZSBzb3VyY2VzIGxpc3Qgc28gaXQgZ2V0cyBkaXN0ZWQuCgkgIEZpeGVzIHRoZSBkaXN0Y2hlY2sKCjIwMDktMDUtMjIgMDk6NDQ6MjUgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSAgZ2l0aWdub3JlczogSWdub3JlIHRoZSBjbG9ja3N0cmVzcyBiZW5jaG1hcmsgYmluYXJ5CgoyMDA5LTA1LTIyIDA5OjQxOjM2ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgY29udHJvbGxlcjogU2lsZW5jZSBhIHdhcm5pbmcgZnJvbSB0aGUgR1NlcXVlbmNlIGJlaW5nIE5VTEwuCgkgIEZpeCBhIHdhcm5pbmcgdGhhdCBvY2N1cnMgd2hlbiB0aGUgc2VsZi0+cHJpdi0+dmFsdWVzIGlzIE5VTEwgYW5kCgkgIHRoZSBjb2RlIHRyaWVzIHRvIHJldHJpZXZlIGFuIGl0ZXJhdG9yIGZyb20gaXQuIFRoZSB3YXJuaW5nIHdhcyBzaG93aW5nCgkgIHVwIGluIHRoZSBjaGVja3MgZm9yIHRoZSB2b2x1bWUgZWxlbWVudC4KCjIwMDktMDUtMjIgMDk6MzM6MDIgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGRvY3M6IEZpeCB1cCBzb21lIGRvY3VtZW50YXRpb24gd2FybmluZ3MuCgkgIFNpbmNlOiB0YWdzIHNob3VsZCBhbHdheXMgYmUgdGhlIGxhc3QgdGhpbmcgaW4gYSBkb2MgYmxvY2ssIGFwcGFyZW50bHkuCgkgIEFkZCBzb21lIFJldHVybnM6IGRlc2NyaXB0aW9ucyB0byBzb21lIHJlY2VudCBmdW5jdGlvbnMuCgoyMDA5LTA1LTIxIDE3OjMyOjAwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZG9jczogdXBkYXRlIGRvY3MgZm9yIHN0cmVhbV90aW1lLT5ydW5uaW5nX3RpbWUKCSAgQ2hhbmdlIHNvbWUgaW5zdGFuY2VzIHdoZXJlIHdlIHdyb25nbHkgcmVmZXIgdG8gc3RyZWFtIHRpbWUgd2hlcmUgaXQgc2hvdWxkIGhhdmUKCSAgYmVlbiBydW5uaW5nIHRpbWUuCgoyMDA5LTA1LTIxIDEwOjU3OjQ3ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogZG9uJ3QgdXNlIEdfR1VJTlQzMl9GT1JNQVQgaW4gdHJhbnNsYXRhYmxlIHN0cmluZwoJICB4Z2V0dGV4dCBkb2Vzbid0IGhhbmRsZSB0aGlzIHZlcnkgd2VsbC4gRml4ZXMgIzU4MzQxOS4KCjIwMDktMDUtMjAgMTc6MDc6MzcgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2dlbi5zaDogY2FuIHJlbW92ZSB0aGUgLVduby1wb3J0YWJpbGl0eSBmcm9tIGhlcmUgbm93CgkgIHNpbmNlIHdlIGFkZGVkIGl0IHRvIGNvbmZpZ3VyZS5hYy4KCjIwMDktMDUtMjAgMjI6MTg6MTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogaW1wcm92ZSB0aGUgZmx1c2ggZnVuY3Rpb24KCSAgUmVtb3ZlIGEgY29tcGFyZSBhbmQgYnJhbmNoIGZyb20gZmx1c2guCgoyMDA5LTA1LTIwIDE3OjI0OjE5ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIGNvbnRyb2xsZXI6IGZpeCBhc3NlcnRpb24gd2hlbiBmcmVlaW5nIHRoZSBjb250cm9sIHNvdXJjZQoKMjAwOS0wNS0yMCAxMjo0ODo0MSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBwb3RlbnRpYWxseSBzYXZlIGEgbWVtY3B5IGluIF90YWtlCgkgIERpcmVjdGx5IHVzZSB0aGUgYXNzZW1ibGVkX2RhdGEgaW4gX3Rha2UoKSBmdW5jdGlvbnMgd2hlbiB3ZSBjYW4gaW5zdGVhZCBvZgoJICBjb3B5aW5nIGl0IG91dC4KCjIwMDktMDUtMjAgMTE6MzY6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogbWljcm8gb3B0aW1pc2F0aW9ucwoKMjAwOS0wNS0yMCAxMToxMjo0MyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiBhdm9pZCBjb21wYXJpc2lvbnMgaW4gZmFzdCBwYXRoCgkgIFNtYWxsIHR3ZWFrcyB0byByZWR1Y2UgdGhlIG51bWJlciBvZiB1c2VsZXNzIGNvbXBhcmVzIGluIGxvb3BzLgoKMjAwOS0wNS0yMCAxMDoyODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICB0ZXN0czogb25lIG1vcmUgYWRhcHRlciB0ZXN0CgoyMDA5LTA1LTIwIDEwOjI3OjQzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IGF2b2lkIGJyYW5jaCBpbiBjb3B5IGNvZGUKCjIwMDktMDUtMjAgMTA6NTY6MTEgKzAzMDAgIEhhbm5lcyBCaXN0cnkgPGJpc3RyeUBpbmZvcm1hdGlrLnVuaS1oYW1idXJnLmRlPgoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGxvYWRzYXZlOiBmaXggcmVxdWVzdHBhZCBoYW5kbGluZyBhbmQgc2VyaWFsaXNhdGlvbiBvcmRlci4KCSAgU3VwcG9ydCByZXF1ZXN0IHBhZHMgd2hlbiBsb2FkaW5nLiBSZXZlcnNlIHBhZCBzZXJpYWxpc2F0aW9uIG9yZGVyIHRvCgkgIHByZXNlcnZlIGl0IHdoZW4gcmVjcmVhdGluZyB0aGUgcGlwZWxpbmUuCgoyMDA5LTA1LTIwIDAwOjQ1OjI3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbAoKMjAwOS0wNS0yMCAwMDo0NDoxMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IGFkZCBuZXcgc3ltYm9sIHRvIGRvY3MKCjIwMDktMDUtMjAgMDA6Mzc6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICBhZGFwdGVyOiBhZGQgX21hc2tlZF9zY2FuX3VpbnQzMgoJICBBZGQgYSByZWFzb25hYmx5IG9wdGltaXplZCBuZXcgZ3N0X2FkYXB0ZXJfbWFza2VkX3NjYW5fdWludDMyKCkgZnVuY3Rpb24KCSAgdG8gc2NhbiB0aGUgYWRhcHRlciBmb3IgYSBwYXR0ZXJuIGFmdGVyIGFwcGx5aW5nIGEgbWFzay4KCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cy4KCSAgQVBJOiBHc3RBZGFwdGVyOjpnc3RfYWRhcHRlcl9tYXNrZWRfc2Nhbl91aW50MzIoKQoJICBGaXhlcyAjNTgzMTg3CgoyMDA5LTA1LTE5IDIyOjEzOjA0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGFkYXB0ZXI6IG1vcmUgb3B0aW1pc2F0aW9ucwoJICBSZW1vdmUgZHVwbGljYXRlIGNvcHkgY29kZSAoX3BlZWtfaW50byBhbmQgX2NvcHkpIGFuZCBtYWtlIGEgdW5pZmllZAoJICBvcHRpbWl6ZWQgY29weSBmdW5jdGlvbi4KCjIwMDktMDUtMTkgMTc6MTI6NDEgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IHBhc3MgLVduby1wb3J0YWJpbGl0eSB0byBhdXRvbWFrZSB0byBzdXBwcmVzcyB3YXJuaW5ncwoJICBHTlUgbWFrZSBpcyByZXF1aXJlZCwgbm8gcG9pbnQgcHJldGVuZGluZyBvdGhlcndpc2UuCgoyMDA5LTA1LTE4IDAxOjAwOjM2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgZG9jczogbWVudGlvbiB0aGF0IEdTVF9GT1JNQVRfe1BFUkNFTlR8QlVGRkVSU30gYXJlIG5vdCBpbXBsZW1lbnRlZAoKMjAwOS0wNS0xNyAxMDo0NjozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGdzdGNsb2NrOiBGaXggQUJJIGJyZWFrYWdlIG9uIDMyIGJpdCBhcmNoaXRlY3R1cmVzCgkgIFRoZSBwYWRkaW5nIG9mIEdzdENsb2NrIGlzIGEgR3N0Q2xvY2tUaW1lIGFuZCBub3QgYQoJICBncG9pbnRlciwgc28gYWRkaW5nIGEgcG9pbnRlciByZXF1aXJlcyB0aGUgcGFkZGluZwoJICBzaXplIHRvIGJlIGNoYW5nZWQgZGVwZW5kaW5nIG9uIHRoZSBwb2ludGVyIHNpemUuCgkgIFVzZSBhbiB1bmlvbiBpbnN0ZWFkLgoJICBGaXhlcyBidWcgIzU4Mjg3OC4KCjIwMDktMDUtMTUgMTU6MjQ6NDAgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIFtnc3R2YWx1ZV0gYWRkcyBzYWZldHkgcGFyZW50aGVzaXMgdG8gbWFjcm9zIG1pc3NpbmcgdGhlbS4KCjIwMDktMDUtMTUgMTQ6NDI6NDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIFtnc3R1dGlsc10gQWRkcyBtb3JlIHNhZmV0eSB0byBHU1RfV1JJVEVfKiBhbmQgR1NUX1JFQURfIG1hY3Jvcy4KCSAgQWRkcyBzYWZldHkgKCApIHRvIHBhcmFtZXRlcnMgaW4gX0dTVF9QVVQgYW5kIF9HU1RfR0VUIG1hY3Jvcy4KCSAgRml4ZXMgIzU4MjcwOC4KCjIwMDktMDMtMTkgMTE6Mzc6MTIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNsb2NrLmg6CgkgIGNsb2NrOiB1c2Ugc2VxbG9ja3MgdG8gcGFyYWxsZWxsaXplIHJlYWRlcnMKCjIwMDktMDQtMTYgMTU6NTM6MjkgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9iZW5jaG1hcmtzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL2dzdGNsb2Nrc3RyZXNzLmM6CgkgIHN0cmVzczogYWRkIGEgY2xvY2sgc3RyZXNzdGVzdAoJICBBZGQgYSBzdHJlc3N0ZXN0IGZvciBnc3RfY2xvY2tfZ2V0X3RpbWUoKS4KCjIwMDktMDUtMTUgMTE6MDA6NTMgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBNYWtlZmlsZS5hbTogdXBkYXRlIGZvciBhZGRlZC9tb3ZlZC9yZW1vdmVkIGZpbGVzIHRoYXQgd2VyZW4ndCBkaXN0LWVkLgoKMjAwOS0wNS0xMiAxMToyOToyMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogUmVsZWFzZSBzY3JpcHQgbW9kaWZpY2F0aW9ucwoKMjAwOS0wNS0xNCAyMjoxMTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICBjb250cm9sbGVyOiBVc2Ugb3JkZXJlZCBHU2VxdWVuY2UgaW5zdGVhZCBvZiBHTGlzdAoJICBUaGlzIG1ha2VzIGxvb2t1cHMgYW5kIGluc2VydGlvbnMgTyhsb2cgbikgaW5zdGVhZCBvZgoJICBhbHdheXMgTyhuKSBmb3IgaW5zZXJ0aW9ucyBhbmQgTyhuKSBpbiB3b3JzdCBjYXNlIGZvcgoJICBsb29rdXBzLgoJICBGaXhlcyBidWcgIzU4MjU2NC4KCjIwMDktMDUtMTQgMTI6MzA6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1naG9zdHBhZHMudHh0OgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9kZXNpZ24vZHJhZnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbGF0ZW5jeS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZG9jczogcmVuYW1lIGFuZCBkZWxldGUgc29tZSBkZXNpZ24gZG9jcwoKMjAwOS0wNS0xNCAxMjozMDowNCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGdzdC1sYXVuY2g6IFByaW50IHRoZSBwYXRoIHN0cmluZyBmb3IgbWVzc2FnZSBzb3VyY2VzCgkgIFRoaXMgcmVkdWNlcyBjb25mdXNpb24gaWYgdGhlIG1lc3NhZ2Ugc291cmNlIGlzIGEgcGFkCgkgIGFuZCBvbmx5ICJzcmMiIGlzIHByaW50ZWQgYXMgc291cmNlLgoKMjAwOS0wNS0xNCAxMjoyNToyMCArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgZWxlbWVudDogU2V0IHRoZSBvcmlnaW5hdGluZyBwYWQgYXMgbWVzc2FnZSBzb3VyY2UgaW4gZ3N0X2VsZW1lbnRfZm91bmRfdGFnc19mb3JfcGFkICgpCgkgIEZpeGVzIGJ1ZyAjNTgyNTg4LgoKMjAwOS0wNS0xNCAxMTozNjoyOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBlbGVtZW50OiBhZGQgZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkKCSAgQWRkIGEgZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkgd2l0aCBhbiBleHRyYSBhcmd1bWVudCB0byBjb250cm9sCgkgIGRpc3RyaWJ1dGlvbiBvZiBhIG5ldyBiYXNlX3RpbWUuIFdlIHdpbGwgbmVlZCB0aGlzIGZvciBmbHVzaGluZyBzdGVwCgkgIG9wZXJhdGlvbnMuCgkgIEFQSTogR3N0RWxlbWVudDo6Z3N0X2VsZW1lbnRfbG9zdF9zdGF0ZV9mdWxsKCkKCjIwMDktMDUtMTMgMjM6NTI6MDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogZG9uJ3QgdXNlIHJlYWxsb2MsIGl0IGRvZXMgYSBtZW1jcHkKCSAgRG9uJ3QgdXNlIHJlYWxsb2MgdG8gZ3JvdyB0aGUgc2NyYXRjaCBhcmVhIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0aGUgbWVtY3B5IHRoZQoJICBvbGQgdXNlbGVzcyBkYXRhIGludG8gdGhlIG5ldyBhcmVhIGJlZm9yZSB3ZSB3cml0ZSBvdXIgbmV3IHN0dWZmIGluIGl0LgoKMjAwOS0wNS0xMyAyMzozODowOCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIGRvY3M6IHVwZGF0ZSB0cmlja21vZGUgZG9jdW1lbnQKCjIwMDktMDUtMTMgMjI6NTE6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgYWRhcHRlcjogdXNlIGdfcmVhbGxvYyBmb3IgcmVzaXppbmcgdGhlIGJ1ZmZlcgoJICBVc2UgZ19yZWFsbG9jIGZvciByZXNpemluZyB0aGUgaW50ZXJuYWwgYnVmZmVyIGluc3RlYWQgb2YgYQoJICBsZXNzIGZhbmN5IF9mcmVlL19tYWxsb2MgcGFpci4KCjIwMDktMDUtMTMgMjE6MzU6MjMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IG1vdmUgbmV3IG1lbWJlciB0byBwcml2YXRlIHN0cnVjdAoJICBNb3ZlIHRoZSBuZXcgbWVtYmVycyB0byBhIHByaXZhdGUgc3RydWN0IGJlY2F1c2Ugd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggcGFkZGluZwoJICBhbnltb3JlIG9uIDMyLWJpdHMgcGxhdGZvcm1zLgoKMjAwOS0wNS0xMyAxODo1MDoyMyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiB1cGRhdGUgc29tZSBkb2NzCgoyMDA5LTA1LTEzIDE3OjA5OjMyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6CgkgIHRlc3RzOiBhZGQgYW5vdGhlciB0ZXN0IGZvciBhZGFwdGVyIHRpbWVzdGFtcHMKCjIwMDktMDUtMTMgMTY6NDg6MzggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgdGVzdHM6IGFkZCBuZXcgdGltZXN0YW1wIHVuaXQgdGVzdAoKMjAwOS0wNS0xMyAxNjoyNjowMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZGVmczogYWRkIG5ldyBzeW1ib2wKCjIwMDktMDUtMTMgMTY6MDk6MjAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IGFkZCBtZXRob2QgdG8ga2VlcCB0cmFjayBvZiB0aW1lc3RhbXBzCgkgIEtlZXAgdHJhY2sgb2YgdGhlIHRpbWVzdGFtcCBhbmQgb2Zmc2V0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBoZWFkIG9mIHRoZQoJICBhZGFwdGVyLgoJICBBUEk6IEdzdEFkYXB0ZXI6OmdzdF9hZGFwdGVyX3ByZXZfdGltZXN0YW1wKCkKCjIwMDktMDUtMTMgMTY6MjA6MjYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIGFkYXB0ZXI6IHNtYWxsIGNsZWFudXBzCgoyMDA5LTA1LTEzIDExOjAzOjI3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBzaG93IG1vcmUgcGFkLWRldGFpbHMKCSAgU2hvdyBwYWQgYWN0aXZhdGlvbiBtb2RlIGFuZCBwYWQtZmxhZ3MgaW5zaWRlIHRoZSBwYWQuIFdyaXRlIGRvd24gc29tZSBpZGVhcwoJICBhYm91dCBob3cgd2UgY291bGQgaW1wcm92ZSB0aGUgY2FwcyBsYXlvdXQuCgoyMDA5LTA1LTEzIDAwOjI5OjU3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBkZWJ1Z3V0aWxzOiBsYXlvdXQgaW1wcm92ZW1lbnQKCSAgZG90IGRvZXMgbm90IHRha2UgdGhlIGhlYWQvdGFpbCBsYWJlbHMgaW50byBhY2NvdW50LiBGb3IgdW5maXhlZCBjYXBzIHRoZXkgZ2V0CgkgIHF1aXRlIGxhcmdlLiBEb3VibGUgdGhlIHBhZGRpbmcgdG8gbWFrZSBpdCBzb3J0IG9mIHJlYWRhYmxlIGluIG1vcmUgY2FzZXMuIEFsc28KCSAgbWFrZSBub3JtYWwgZm9udCBiaWdnZXIgYW5kIGNhcHMtbGFiZWwgZm9udCBzbWFsbGVyIHRvIGluY3JlYXNlIG91ciBsdWNrLgoKMjAwOS0wNS0xMiAyMTowMDoxNSArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBNYWtlZmlsZS5hbToKCSAgY2hlY2tzOiBjaGVjayBmb3IgZW51bSB0eXBlcyBub3QgY2xhc3NfcmVmJ2VkIGluIGdzdF9pbml0KCkgaW4gJ21ha2UgY2hlY2snCgoyMDA5LTA1LTEyIDIwOjU4OjMyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3QuYzoKCSAgSW5pdGlhbGlzZSBzb21lIG1vcmUgdHlwZXMgaW4gZ3N0X2luaXQoKSwgZXNwLiB0aGUgbmV3IGVudW0gdHlwZXMKCSAgUG9zc2libHkgZml4ZXMgR09iamVjdCBjbGFzcyBjcmVhdGlvbi91bnJlZiByYWNlIGNvbmRpdGlvbnMgd2hlbgoJICBjcmVhdGluZyB0aGUgbGFzdC1tZXNzYWdlIHN0cmluZyBpbiBmYWtlc2luayBmb3IgZXZlbnRzIHdpdGgKCSAgc3RydWN0dXJlcyB0aGF0IGhhdmUgZmllbGRzIHdpdGggdGhlc2UgZW51bSB0eXBlcy4KCjIwMDktMDUtMTIgMjA6NTY6MDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIHN5c3RlbWNsb2NrOiByZW1vdmUgZHVwbGljYXRlIF9nZXRfdHlwZSgpIGZ1bmN0aW9uIGZvciBHc3RDbG9ja1R5cGUKCSAgUmVtb3ZlIHRoZSBzdGF0aWMgZ3N0X2Nsb2NrX3R5cGVfZ2V0X3R5cGUoKSBmdW5jdGlvbiBpbiB0aGUKCSAgc3lzdGVtY2xvY2sgY29kZSBpbiBmYXZvdXIgb2YgdGhlIHB1YmxpYyBvbmUgaW4gZ3N0ZW51bXR5cGVzLmMuCgoyMDA5LTA0LTIyIDEwOjUzOjM3ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgZ2hvc3RwYWQ6IHJlbW92ZSBkZXByZWNhdGVkIEFQSQoJICBfaW50ZXJuYWxfbGlua19mdW5jdGlvbigpIGlzIGRlcHJlY2F0ZWQgYW5kIF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2Z1bmN0aW9uKCkKCSAgaXMgYWxyZWFkeSBwcm92aWRlZC4KCjIwMDktMDQtMjEgMTE6MzM6NDMgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIHBhcnNlLWxhdW5jaDogYWxsb3cgc3BlY2lmeWluZyBHc3RFbGVtZW50IHByb3BlcnRpZXMgdmlhIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbgoJICBJZiBkZXNlcmlhbGl6aW5nIGEgcHJvcGVydHkgZmFpbHMsIGNoZWNrIGlmIHRoZSB2YWx1ZSB0eXBlIGlzIGEgc3RyaW5nIGFuZCBpZiBzbwoJICBhdHRlbXB0IHRvIGNyZWF0ZSBhIGJpbiBmcm9tIHRoZSBzdHJpbmcgdmFsdWUuIFRoaXMgYWxsb3dzIHRvIGUuZy4gc3BlY2lmeQoJICBhdWRpby1zaW5rL3ZpZGVvLXNpbmsgZm9yIHBsYXliaW4gb24gZ3N0LWxhdW5jaCBjb21tYW5kbGluZS4KCjIwMDktMDUtMTIgMTc6Mjk6MTUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmxpc3QudHh0OgoJICBkb2NzOiBhZGQgc29tZSBkb2NzIGFib3V0IGJ1ZmZlciBsaXN0cwoKMjAwOS0wNS0xMiAxNjoxODo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IG1ha2Ugb2JqZWN0cyBvcGFxdWUKCjIwMDktMDUtMTIgMTU6MzM6MjUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVybGlzdC5jOgoJICBidWZmZXJsaXN0OiBmaXggYSBjb21tZW50CgoyMDA5LTA1LTEyIDEzOjEwOjU1ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogaG9vayB1cCB0aGUgcGFkIGZ1bmN0aW9ucwoJICBSZXVzZSBidWZmZXIgY29kZSBmb3IgYnVmZmVybGlzdHMuIE5vdCBzdXJlIGlmIHRoaXMgbWVhc3VyYWJseSBpbXBhY3RzIHBlcmZvcm1hbmNlCgkgIGZvciB0aGUgc2ltcGxlIGJ1ZmZlciBjYXNlLCBpZiBpdCBkb2VzIGFmdGVyIGRvaW5nIHNvbWUgYmVuY2htYXJrcywgd2UgY2FuCgkgIGRlY291cGxlIGl0IGxhdGVyLgoJICBGaXhlcyAjNTcyMjg1CgoyMDA5LTA1LTEyIDEyOjA4OjU2ICswMjAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmcgYXQgYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdGluZm8uYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVybGlzdC5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYnVmZmVybGlzdDogYWRkIGRvY3MvYnVpbGQvZGVidWcvdW5pdHRlc3QKCSAgU2VlICM1NzIyODUKCjIwMDktMDUtMTIgMTE6NTE6MzcgKzAyMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZyBhdCBheGlzLmNvbT4KCgkqIGdzdC9nc3RidWZmZXJsaXN0LmM6CgkqIGdzdC9nc3RidWZmZXJsaXN0Lmg6CgkgIGJ1ZmZlcmxpc3Q6IGFkZCBidWZmZXJsaXN0IGNvZGUKCSAgQnVmZmVyIGxpc3RzIGFyZSBhIG1lYW5zIHRvIG1hbmFnZSBkaXNqb2ludCBidWZmZXJzIGFzIG9uZSBidWZmZXIuIEl0J3MgYWxzbwoJICBwb3NzaWJsZSB0byBwdXQgbWFueSBvZiB0aG9zZSBidWZmZXJzIGludG8gYSBsaXN0LgoJICBUaGUgaWRlYSBpcyB0aGF0IHdoZW4gc3VwcG9ydCBpcyBhZGRlZCB0byB2YXJpb3VzIGVsZW1lbnRzLCB3ZSB3aWxsIGJlIGFibGUgdG8KCSAgbW9yZSBlZmZpY2llbnRseSBzbGljZSBhbmQgZGljZSBidWZmZXJzLCByZWR1Y2UgdGhlIGFtb3VudCBvZiBtZW1jcHkgYW5kIGFsc28KCSAgcmVkdWNlIGRhdGEgcGFzc2luZyBvdmVyaGVhZC4KCSAgVGhlIGltcGxlbWVudGF0aW9uIGlzIGtlcHQgc2ltcGxlIG9uIHB1cnBvc2UsIHJldXNpbmcgYWxsIG9mIHRoZSBtZW1vcnkKCSAgbWFuYWdlbWVudCBmZWF0dXJlcyB3ZSBoYXZlIGZvciBtaW5pb2JqZWN0cyBhbmQgYnVmZmVycy4KCSAgQWNjZXNzIHRvIHRoZSBidWZmZXJsaXN0IG9iamVjdCBpcyBkb25lIHdpdGggYW4gaXRlcmF0b3IsIHdoaWNoIGFsbG93cyBmb3IKCSAgZWZmaWNpZW50IGl0ZXJhdGlvbiBhbmQgbW9kaWZpY2F0aW9uIG9mIHRoZSBsaXN0LgoJICBTZWUgIzU3MjI4NQoKMjAwOS0wNS0xMSAwNzo0OTozNCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RidWZmZXIuYzoKCSAgZ3N0YnVmZmVyOiBjb3B5IG5ldyBidWZmZXIgZmxhZ3Mgd2hlbiBjb3B5aW5nIG1ldGFkYXRhLgoKMjAwOS0wNC0yNyAxMDoxMzowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzoKCSAgYWRhcHRlcjogb3B0aW1pemUgdGFraW5nIHRoZSBoZWFkYnVmZmVyCgkgIFdoZW4gYSBhcmUgcmVxdWVzdGVkIHRvIHRha2UgYSBidWZmZXIgZnJvbSB0aGUgYWRhcHRlciB0aGF0IGlzIGV4YWN0bHkgdGhlCgkgIGhlYWRidWZmZXIsIGRvbid0IG1ha2UgYSBzdWJidWZmZXIgb2YgaXQgYnV0IHJldHVybiB0aGF0IGhlYWQgYnVmZmVyLgoJICBBZGQgYSB1bml0LXRlc3QgZm9yIHRoaXMgbmV3IG9wdGltaXNhdGlvbi4KCjIwMDktMDUtMDUgMTc6NDE6MjQgKzAyMDAgIEFybm91dCBWYW5kZWNhcHBlbGxlIDxhcm5vdXRAbWluZC5iZT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIHR5cGVmaW5kOiBkb24ndCBsZWFrIHRoZSBmb3JjZS1jYXBzIHByb3BlcnR5CgkgIEZpeGVzICM1ODEzMjEKCjIwMDktMDQtMjggMTk6MjA6MzEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBlbGVtZW50OiBmaXggcG9zdGluZyBvZiBhc3luYy1zdGFydCBtZXNzYWdlcwoJICBXaGVuIGFuIGVsZW1lbnQgbG9zdCBpdHMgc3RhdGUgYnV0IHdhcyBidXN5IGRvaW5nIGEgc3RhdGUgY2hhbmdlLCBzdGlsbCBwb3N0IHRoZQoJICBhc3luYy1zdGFydCBtZXNzYWdlIHdpdGggdGhlIGJhc2VfdGltZSByZXNldCBmbGFnIG9yIGVsc2Ugd2UgbWlnaHQgZW5kIHVwIHdpdGgKCSAgYW4gb2xkIGJhc2VfdGltZS4KCSAgdGhpcyBjYW4gaGFwcGVuIHdoZW4gYSBzaW5rIGlzIGdvaW4gYXN5bmMgdG8gcGF1c2VkIGFuZCB0aGVuIGEgZmx1c2hpbmcgc2VlayBpcwoJICBwZXJmb3JtZWQuIFRoaXMgd291bGQgY2F1c2UgdGhlIGJhc2VfdGltZSB0byByZW1haW4gdW5tb2RpZmllZCBiZWNhdXNlIHRoZQoJICBhc3luYy1zdGFydCBtZXNzYWdlIHdhcyBub3Qgc2VudC4KCjIwMDktMDUtMTAgMTc6Mjg6MzYgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZnVuY3Rpb25zIHRvIHRoZSB3aW4zMiBleHBvcnRzCgoyMDA5LTA1LTEwIDExOjE3OjI3ICswMjAwICBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJICBSdW4gbGlidG9vbGl6ZSBiZWZvcmUgYWNsb2NhbAoJICBUaGlzIHVuYnJlYWtzIHRoZSBidWlsZCBpbiBzb21lIGNhc2VzLiBGaXhlcyBidWcgIzU4MjAyMQoKMjAwOS0wNS0wNyAxNjozNzozNyArMDIwMCAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXVAc3ZuLmdub21lLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBBUEk6IEFkZCBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpY19mdWxsKCkKCSAgVGhpcyBpcyBtYWlubHkgdXNlZnVsIGZvciBiaW5kaW5ncyB0aGF0IG5lZWQgdG8gcHJvdmlkZQoJICBzb21lIGFkZGl0aW9uYWwgdXNlciBkYXRhIHRvIHRoZSByZWdpc3RyYXRpb24gZnVuY3Rpb24uCgkgIEZpeGVzIGJ1ZyAjNTQ1Nzg3LgoKMjAwOS0wNS0wNyAxNjowMTo1NyArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZmlsZXNyYzogSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQgb24gaW52YWxpZCBVUklzCgoyMDA5LTA1LTA3IDEwOjM2OjUwICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGRvY3M6IEFkZCBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzCgoyMDA5LTA1LTA3IDA5OjMxOjAxICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdsaXN0Lmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICB0YWdzOiBBUEk6IEFkZCBmdW5jdGlvbnMgdG8gYWRkIHNpbmdsZSB0YWdzIHRvIEdzdFRhZ0xpc3Qgb3IgR3N0VGFnU2V0dGVyCgkgIFRoZSBuZXcgZnVuY3Rpb25zIGFyZSBnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbHVlKCkKCSAgYW5kIGdzdF90YWdfbGlzdF9hZGRfdmFsdWUoKSkuIFRoaXMgZml4ZXMgYnVnICM1ODExOTguCgoyMDA5LTA1LTA3IDA5OjI4OjE1ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1cmkuYzoKCSAgR3N0VVJJSGFuZGxlcjogVXNlIGdldF90eXBlX2Z1bGwoKSB2bWV0aG9kIGlmIHNwZWNpZmllZCBpbnN0ZWFkIG9mIGdldF90eXBlKCkKCSAgVGhpcyBmaXhlcyBidWcgIzU4MTI4MSBhbmQgbWFrZXMgaXQgZWFzaWVyIGZvciBiaW5kaW5ncyB0bwoJICBpbXBsZW1lbnQgR3N0VVJJSGFuZGxlcnMuIGdldF9wcm90b2NvbHNfZnVsbCgpIHdhcyBhbHJlYWR5IHVzZWQKCSAgbGlrZSB0aGlzLgoKMjAwOS0wNS0xMiAwMTo0ODozNiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAucG8gZmlsZXMgZm9yIG5ldyBzdHJpbmdzIGZyb20gY29udGFpbmVyLWZvcm1hdCB0YWcKCjIwMDktMDUtMTIgMDE6MzA6MTMgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgZG9jczogc21hbGwgdXBkYXRlIHRvIHJlbGVhc2UgZG9jcwoKMjAwOS0wNS0xMiAwMToxMzowMiArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgY29uZmlndXJlOiByZW5hbWUgQ1ZTIC0+IGdpdCBpbiBhIGNvdXBsZSBvZiBwbGFjZXMKCjIwMDktMDUtMTIgMDA6NDc6NDYgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmU6IGJ1bXAgdGhlIEdMaWIgcmVxdWlyZW1lbnQgdG8gR0xpYiA+PSAyLjE2CgkgIGFzIHBlciB0aGUgTmV3IFJlZ2ltZSAoc2VlIHdpa2kpLgoKMjAwOS0wNS0xMiAwMDowOTo1OCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIHhtbHJlZ2lzdHJ5OiByZW1vdmUgdGhlIG9sZCB4bWwgcmVnaXN0cnkKCSAgTm8gcG9pbnQgaW4ga2VlcGluZyBpdCBhcm91bmQgcmVhbGx5LiBGaXhlcyAjNTc3OTI2LgoKMjAwOS0wNS0wNyAxNjowODo0MyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICB0YWdzOiBhZGQgYSB0YWcgZm9yIHRoZSBjb250YWluZXIgZm9ybWF0CgkgIEFQSTogYWRkIEdTVF9UQUdfQ09OVEFJTkVSX0ZPUk1BVAoKMjAwOS0wNS0wOCAxNjoyODowMyArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogZml4IGRlYnVnIG1lc3NhZ2UKCSAgTWFrZSB0aGUgZGVidWcgbWVzc2FnZSBzaG93IHdoYXQncyBhY3R1YWxseSBoYXBwZW5pbmcgKHRoZSBtZXNzYWdlCgkgIHJlcGxhY2VkIGhlcmUgaXMgbm90IG5lY2Vzc2FyaWx5IG9mIHRoZSBzYW1lIHR5cGUgYXMgdGhlIG9uZSB0aGF0CgkgIHJlcGxhY2VzIGl0KS4KCjIwMDktMDUtMTIgMDA6MzQ6NDQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5jOgoJICBHc3RUYXNrOiBmaXggY29tcGlsYXRpb24KCjIwMDktMDQtMjQgMTk6MzI6MzMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3J0cG9vbC10ZXN0LmM6CgkgIHRlc3RzOiBzZXQgdGhlIGxhdGVuY3ktdGltZSB0byBzb21ldGhpbmcgbG93CgoyMDA5LTA0LTI0IDEzOjU1OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9ydHBvb2wtdGVzdC5jOgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3Rlc3RydHBvb2wuYzoKCSAgdGVzdHM6IGltcHJvdmUgdGhlIGV4YW1wbGUKCjIwMDktMDQtMjQgMTI6MzU6MDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBUYXNrUG9vbDogcmVtb3ZlIF9zZXRfZnVuYygpCgkgIFJlbW92ZSB0aGUgc3RhdGljIGZ1bmN0aW9uIHNldCBvbiB0aGUgVGFza1Bvb2wgYmVmb3JlIF9wcmVwYXJlKCkgaXMgY2FsbGVkIGFuZAoJICBhbGxvdyBmb3IgYXNzaWduaW5nIGEgZnVuY3Rpb24gdG8gYSBUYXNrIHdoZW4gd2UgX3B1c2goKS4KCSAgVXBkYXRlIHRoZSBleGFtcGxlcwoKMjAwOS0wNC0yMyAxOTo0Mjo0NyArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvcnRwb29sLXRlc3QuYzoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy90ZXN0cnRwb29sLmM6CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvdGVzdHJ0cG9vbC5oOgoJICB0ZXN0czogYWRkIGV4YW1wbGUgb2YgY3VzdG9tIHRhc2twb29scwoJICBBZGQgYW4gZXhhbXBsZSB0byBkZW1vbnN0cmF0ZSB0aGUgdXNlIG9mIGEgY3VzdG9tIHRhc2twb29sIGFuZCBob3cgdG8gY29uZmlndXJlCgkgIGl0IG9uIHRoZSB0YXNrLiBDdXJyZW50bHkgdGhlIHRhc2twb29sIGRvZXMgbm90IGRvIG11Y2ggeWV0IGJ1dCBpdCdsbCBjcmVhdGUKCSAgc29tZSBjdXN0b20gdGhyZWFkcyBsYXRlciBvbi4KCjIwMDktMDQtMjMgMTk6NDE6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSAgdGFza3Bvb2w6IGZpeCBhIGNvbW1lbnQKCjIwMDktMDQtMjMgMTk6NDE6MDEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9leGFtcGxlcy9zdHJlYW1zL3N0cmVhbS1zdGF0dXMuYzoKCSAgdGVzdHM6IGNsZWFudXAgc29tZSBjb2RlCgoyMDA5LTA0LTIzIDE3OjQ4OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkgIFBhZDogcG9zdCBTVFJFQU1fU1RBVFVTX1RZUEVfQ1JFQVRFCgkgIFBvc3QgYSBzdHJlYW0tc3RhdHVzIG1lc3NhZ2UgaW5kaWNhdGluZyB0aGF0IGEgbmV3IHRhc2sgd2FzIGNyZWF0ZWQgc28gdGhhdCB0aGUKCSAgYXBwbGljYXRpb24gaGFzIGEgY2hhbmNlIHRvIGNoYW5nZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgdGFzay4KCSAgRml4IHVuaXQgdGVzdCB0byB0YWtlIGludG8gYWNjb3VudCB0aGUgbmV3IHJlZiBvZiB0aGUgbWVzc2FnZS4KCjIwMDktMDQtMjMgMTc6MjQ6NTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogYWRkIG5ldyB0YXNrIG1ldGhvZHMKCjIwMDktMDQtMjMgMTc6MTk6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBHc3RUYXNrOiBhZGQgbWV0aG9kcyBmb3IgY29uZmlndXJpbmcgdGhlIHBvb2wKCSAgQWRkIGdldHRlciBhbmQgc2V0dGVyIGZvciBjb25maWd1cmluZyB0aGUgR3N0VGFza1Bvb2wgdG8gdXNlIGZvciBhIEdzdFRhc2suCgoyMDA5LTA0LTIzIDE3OjA1OjIxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgVGFzazogcmVtZW1iZXIgcG9vbAoJICBSZW1lbWJlciB0aGUgcG9vbCB3ZSBjdXJyZW50bHkgaGF2ZSBvdXIgdGFzayBydW5uaW5nIHNvIHRoYXQgd2UgY2FuIHVzZSBpdCB0bwoJICBqb2luIHRoZSB0YXNrIGxhdGVyIG9uLgoJICBGaXggYSBsZWFrIG9mIHRoZSB0YXNrcG9vbC4KCjIwMDktMDQtMjMgMTY6NTM6MzQgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZGVmczogdXBkYXRlIC5kZWZzIGZpbGUgd2l0aCB0YXNrcG9vbCBtZXRob2RzCgoyMDA5LTA0LTIzIDE2OjUzOjE0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgdGFzazogZml4IGRlYWRsb2NrIGR1ZSB0byB0eXBvCgoyMDA5LTA1LTEyIDAwOjI1OjExICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSAgR3N0VGFzazogdXNlIEdzdFRhc2tQb29sIGZvciBtYW5hZ2luZyB0aHJlYWRzCgkgIFVzZSB0aGUgbmV3IEdzdFRhc2tQb29sIHRvIGhhbmRsZSBzdHJlYW1pbmcgdGhyZWFkcy4KCjIwMDktMDQtMjMgMTY6MDA6NTYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFza3Bvb2wuYzoKCSogZ3N0L2dzdHRhc2twb29sLmg6CgkgIHRhc2twb29sOiBmaXggZG9jcywgbWFrZSBwdXNoL2pvaW4gZ2VuZXJpYwoJICBGaXggc29tZSBtb3JlIGRvY3MuCgkgIE1ha2UgX3B1c2goKSByZXR1cm4gYSBnZW5lcmljIGlkICh0aGlzIGNhbiBiZSBzb21ldGhpbmcgZWxzZSB0aGFuIGEgR1RocmVhZCBpbgoJICBzb21lIGNhc2VzKSBhbmQgbWFrZSBfam9pbigpIHVzZSB0aGF0IGdlbmVyaWMgaWQuCgoyMDA5LTA0LTIzIDE1OjQ0OjEzICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3R0YXNrcG9vbC5jOgoJKiBnc3QvZ3N0dGFza3Bvb2wuaDoKCSAgdGFza3Bvb2w6IGFkZCBuZXcgb2JqZWN0IHRvIG1hbmFnZSB0aHJlYWRzCgkgIEFkZCBhIG5ldyBvYmplY3QgR3N0VGFza1Bvb2wgdG8gbWFuYWdlIHRoZSBzdHJlYW1pbmcgdGhyZWFkcy4KCSAgVGhpcyB3aWxsIGFsbG93IHVzIHRvIGNyZWF0ZSBhbmQgdXNlIGN1c3RvbSBjb25maWd1cmVkIHRocmVhZHMuCgoyMDA5LTA0LTIyIDEyOjA0OjM2ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIGV4YW1wbGVzOiBzZXQgYnVzIGhhbmRsZXIgYmVmb3JlIHN0YXRlIGNoYW5nZQoJICBXZSBuZWVkIHRvIHNldCB0aGUgYnVzIGhhbmRsZXIgYmVmb3JlIHN0YXJ0aW5nIHRoZSBwaXBlbGluZSBvciB3ZSBtaWdodCBqdXN0CgkgIG1pc3MgdGhlIG1lc3NhZ2Ugd2UgYXJlIGxvb2tpbmcgZm9yLgoKMjAwOS0wNC0yMiAxMDoxNjoyNiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2V4YW1wbGVzL3N0cmVhbXMvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvZXhhbXBsZXMvc3RyZWFtcy9zdHJlYW0tc3RhdHVzLmM6CgkgIHRlc3RzOiBhZGQgZXhhbXBsZSBhcHAgZm9yIHN0cmVhbS1zdGF0dXMKCSAgQWRkIGFuIGV4YW1wbGUgYXBwbGljYXRpb24gdGhhdCBhZGp1c3RzIHRoZSB0aHJlYWQgcHJpb3JpdHkgb2YgYSB0YXNrIHVzaW5nIHRoZQoJICBzdHJlYW0tc3RhdHVzIG1lc3NhZ2VzLgoKMjAwOS0wNC0yMSAxOToxNTo0OCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBUYXNrOiBhZGQgbWV0aG9kIHRvIHNldCB0aGUgcHJpb3JpdHkKCSAgQWRkIGEgbWV0aG9kIHRvIGNvbmZpZ3VyZSBhIHByaW9yaXR5IGZvciB0aGUgdGhyZWFkcyB1c2VkIGJ5IEdzdFRhc2suCgoyMDA5LTA0LTIxIDE2OjMwOjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgdGVzdHM6IGFkZCBhIHVuaXQtdGVzdCBmb3IgdGhlIHN0cmVhbS1zdGF0dXMKCSAgQWRkIGEgdW5pdCB0ZXN0IGZvciB0aGUgU1RSRUFNX1NUQVRVUyBtZXNzYWdlcy4KCjIwMDktMDUtMTIgMDA6MDU6MTIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGdzdC9nc3R0YXNrLmg6CgkgIEdzdFRhc2s6IGltcHJvdmUgZG9jdW1lbnRhdGlvbgoJICBJbXByb3ZlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgY2FsbGJhY2tzLgoKMjAwOS0wNC0yMSAxNToyNToxMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHM6IGZpeCB1bml0LXRlc3RzIGZvciBuZXcgc3RyZWFtLXN0YXR1cwoJICBGaXggdGhlIHVuaXQtdGVzdHMgc28gdGhhdCB0aGV5IGRvbid0IGZhaWwgb24gdGhlIG5ldyBzdHJlYW0tc3RhdHVzIG1lc3NhZ2VzCgkgIHRoYXQgYXJlIGVtaXRlZCBub3cuCgoyMDA5LTA0LTIxIDE0OjQ2OjI5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBHc3RQYWQ6IGluc3RhbGwgdGhyZWFkIGNhbGxiYWNrcyBvZiB0aGUgdGFzawoJICBJbnN0YWxsIHRocmVhZCBzdGF0dXMgY2FsbGJhY2tzIG9uIHRoZSB0YXNrIG9iamVjdCBvZiBhIHBhZCBhbmQgcG9zdAoJICBTVFJFQU1fU1RBVFVTIG1lc3NhZ2VzLgoKMjAwOS0wNC0yMiAxMDoxNDo0NiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIG1lc3NhZ2U6IGNsYXJpZnkgc29tZSBkb2NzCgoyMDA5LTA0LTIxIDE0OjQyOjA1ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgVGFzazogY2FsbCBsZWF2ZV90aHJlYWQgYmVmb3JlIHNpZ25hbGluZwoJICBDYWxsIHRoZSBsZWF2ZV90aHJlYWQgY2FsbGJhY2sgYmVmb3JlIHdlIHNpZ25hbCB0aGUgdGhyZWFkIHBlcmZvcm1pbmcgdGhlIF9qb2luCgkgIHNvIHRoYXQgd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgbGlzdGVuZXIgc3RpbGwgaGFzIHZhbGlkIGluZm8gaW4gdGhlIGNhbGxiYWNrLgoKMjAwOS0wNC0yMSAxMzo0MjowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBHc3RNZXNzYWdlOiBBZGQgU1RSRUFNX1NUQVRVUyBtZXNzYWdlIG1ldGhvZHMKCSAgQWRkIG1ldGhvZHMgdG8gaGFuZGxlIHRoZSBzdHJlYW1fc3RhdHVzIG1lc3NhZ2UgdHlwZXMuCgoyMDA5LTA0LTIxIDEzOjA1OjE3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHF1YXJrLmM6CgkqIGdzdC9nc3RxdWFyay5oOgoJICBxdWFyazogYWRkICJvYmplY3QiIHF1YXJrCgkgIEFkZCB0aGUgb2JqZWN0IHF1YXJrIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgU1RSRUFNX1NUQVRVUyBtZXNzYWdlcy4KCjIwMDktMDUtMTEgMjM6NDQ6NDIgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0dGFzay5oOgoJICBUYXNrOiByZW1vdmUgY3JlYXRlL2pvaW4gbWV0aG9kcwoJICBQcmVwYXJlIGZvciB1c2luZyB0aGUgR3N0VGFza1Bvb2wgb2JqZWN0LiBXZSBkb24ndCBuZWVkIHRoZSBjcmVhdGUgYW5kIGpvaW4KCSAgY2FsbGJhY2tzIGFueW1vcmUsIHRoZXkgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBwb29sLgoKMjAwOS0wNC0yMCAxNzowNzo1MCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIEdzdFRhc2s6IGFkZCBwcml2YXRlIGRhdGEsIGZpeCBwYXJlbnRfY2xhc3MKCSAgVXNlIHRoZSBwYXJlbnQgY2xhc3MgdGhhdCB0aGUgZ2xpYiBtYWNybyBnYXZlIHVzCgkgIEFjdHVhbGx5IGFkZCB0aGUgcHJpdmF0ZSBkYXRhIHRvIHRoZSB0YXNrLgoKMjAwOS0wNC0yMCAxNzoxOToyMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R0YXNrLmM6CgkgIEdzdFRhc2s6IGhvb2sgdXAgZW50ZXIvbGVhdmUvbm90aWZ5IGNhbGxiYWNrcwoJICBIb29wIHVwIHRoZSBub3RpZnkvZW50ZXIvbGVhdmUgY2FsbGJhY2tzLgoKMjAwOS0wNS0xMSAyMzoyMzoyMCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBkZWZzOiBhZGQgbmV3IHN5bWJvbCB0byBkZWZzIGZpbGUKCjIwMDktMDUtMTEgMjM6MTk6NTMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJICBHc3RUYXNrOiBhbGxvdyBzZXR0aW5nIGNhbGxiYWNrcwoJICBBbGxvdyBzZXR0aW5nIHRocmVhZCBjYWxsYmFja3MgdGhhdCB3aWxsIGFsbG93IHVzIHRvIGNvbnRyb2wgdGhlIHRocmVhZHMgdXNlZCBieQoJICB0aGUgdGFzay4KCjIwMDktMDQtMjMgMTk6NDA6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgYmFzZXNyYzogZG9uJ3QgaWdub3JlIHBhZF9zdGFydCByZXR1cm4gdmFsdWUKCjIwMDktMDQtMjEgMTM6MzQ6MTggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1zdHJlYW0tc3RhdHVzLnR4dDoKCSAgZGVzaWduOiBtb3JlIFNUUkVBTV9TVEFUVVMgdXBkYXRlcwoJICBQYXNzIHRoZSB0aHJlYWQgb2JqZWN0IGluIGEgR1ZhbHVlLCB3aGljaCB3b3VsZCBhbGxvdyB0aGUgYXBwbGljYXRpb24gdG8gZmlndXJlCgkgIG91dCB0aGUgdHlwZSBvZiB0aGUgb2JqZWN0IGluc3RlYWQgb2YgdXMgaGF2aW5nIHRvIGV4cGxpY2l0bHkgY29kZSBpdCBpbiBhCgkgIG1lc3NhZ2UgZmllbGQuCgoyMDA5LTA0LTIxIDA5OjQ1OjA4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRlc2lnbjogdXBkYXRlIHN0cmVhbS1zdGF0dXMgZG9jdW1lbnQgc29tZSBtb3JlCgoyMDA5LTA0LTIwIDE1OjU1OjA5ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vZHJhZnQtc3RyZWFtLXN0YXR1cy50eHQ6CgkgIGRlc2lnbjogYWRkIGZpcnN0IHZlcnNpb24gb2Ygc3RyZWFtLXN0YXR1cwoJICBBZGQgdGhlIGZpcnN0IHZlcnNpb24gb2YgdGhlIFNUUkVBTV9TVEFUVVMgbWVzc2FnZSBkZXNpZ24gZG9jcy4KCSAgVGhpcyBtZXNzYWdlIHdpbGwgYmUgdXNlZCB0byBnaXZlIGFwcGxpY2F0aW9ucyBtb3JlIGNvbnRyb2wgb3ZlciB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZHMuCgoyMDA5LTA0LTIxIDE3OjUzOjA3ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgR3N0VGFzazogYWRkIHNvbWUgbW9yZSBkb2NzCgoyMDA5LTA0LTIxIDE3OjE0OjM0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBHc3RQYWQ6IHVzZSBuZXcgdGFzayBmdW5jdGlvbgoJICBVc2UgdGhlIG5ldyB0YXNrX3NldF9zdGF0ZSBmdW5jdGlvbiBhbmQgYWN0dWFsbHkgcmV0dXJuIGl0cyByZXN1bHQgdG8KCSAgdGhlIGNhbGxlci4KCjIwMDktMDUtMTEgMjI6NTk6MzUgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0dGFzay5jOgoJKiBnc3QvZ3N0dGFzay5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgR3N0VGFzazogdW5pZnkgdGFzayBzdGF0ZSBmdW5jdGlvbnMKCSAgQWRkIG5ldyBnc3RfdGFza19zZXRfc3RhdGUoKSB0byBjaGFuZ2UgdGhlIHN0YXRlIG9mIHRoZSB0YXNrIGluc3RlYWQgb2YKCSAgZHVwbGljYXRpbmcgdGhlIGNvZGUgaW4gZWFjaCBmdW5jdGlvbi4KCSAgQVBJOiBHc3RUYXNrOjpnc3RfdGFza19zZXRfc3RhdGUoKQoKMjAwOS0wNC0yMSAxMzozNzoyMiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIE1lc3NhZ2U6IHNtYWxsIGluZGVudGF0aW9uIGNoYW5nZS4KCjIwMDktMDUtMDIgMTQ6NDM6MTEgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tzCgoyMDA5LTA1LTAyIDE0OjM5OjQ4ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIHJlZ2lzdHJ5OiBhdm9pZCBjYWxsaW5nIF9nZXRfbmFtZSgpIHRvbyBtdWNoCgkgIEF2b2lkIGNhbGxpbmcgZ3N0X3BsdWdpbl9nZXRfbmFtZSgpIHRvbyBtYW55IHRpbWVzIGJ1dCBpbnN0ZWFkIGNhY2hlCgkgIHRoZSB2YWx1ZS4KCjIwMDktMDUtMDIgMTQ6MzY6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBVc2UgbmV3IF9yZWZfc2luayB3aGVuIHdlIGNhbgoKMjAwOS0wNS0wMiAxNDozMzowMSArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZ3N0b2JqZWN0OiBhZGQgZ3N0X29iamVjdF9yZWZfc2luawoJICBBZGQgdGhlIGdzdF9vYmplY3RfcmVmX3NpbmsoKSBtZXRob2QgdG8gbWF0Y2ggdGhlIGdsaWIgb25lLgoJICBBUEk6IEdzdE9iamVjdDo6Z3N0X29iamVjdF9yZWZfc2luaygpCgoyMDA5LTA1LTAyIDEzOjA2OjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdG9iamVjdC5jOgoJICBnc3RvYmplY3Q6IGF2b2lkIHR5cGUgY2hlY2tzCgoyMDA5LTA1LTAyIDEzOjAyOjEwICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJICBnc3RidWZmZXI6IGF2b2lkIHR5cGVjaGVja3MgaW4gZmluYWxpemUKCSAgQXZvaWQgdXNlbGVzcyB0eXBlY2hlY2tpbmcgaW4gdGhlIGZpbmFsaXplIG9mIGJ1ZmZlcnMgYW5kIHN1YmJ1ZmZlcnMuCgoyMDA5LTA1LTAyIDEyOjU5OjU0ICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBmYWtlc2luazogYXZvaWQgdHlwZWNoZWNrCgoyMDA5LTA0LTIwIDE0OjAxOjAxICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICAtbGF1bmNoOiBjb25uZWN0IHRvIGRlZXAtbm90aWZ5IHdpdGggcmlnaHQgbmFtZQoJICBDb25uZWN0IHRvIHRoZSByaWdodCBzaWduYWwgbmFtZSB3aXRoIC0gaW5zdGVhZCBvZiBfLgoKMjAwOS0wNC0yNCAyMjowNjoxOSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBTdXBwb3J0IG5ldyBwcmludGYgZXh0ZW5zaW9ucyBpbiBnbGliYyAyLjEwCgkgIFRoZSBwcmludGYgZXh0ZW5zaW9uIG1lY2hhbmlzbSBjaGFuZ2VkIGluIGdsaWJjIDIuMTAsIGFuZCB0aGUgb2xkZXIKCSAgcmVnaXN0ZXJfcHJpbnRmX2Z1bmN0aW9uIGlzIGRlcHJlY2F0ZWQuIERldGVjdCBhbmQgdXNlIHRoZSBuZXcKCSAgbWVjaGFuaXNtIHdoZXJlIGF2YWlsYWJsZS4KCjIwMDktMDQtMjAgMTI6MjU6NTcgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IEZpeCBhIHR5cG8gaW4gdGhlIHJlbGVhc2Ugc2NyaXB0CgoyMDA5LTA1LTExIDIxOjExOjQ5ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yMy4xCgo9PT0gcmVsZWFzZSAwLjEwLjIzID09PQoKMjAwOS0wNS0xMCAyMjo0MTowNCArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIFJlbGVhc2UgMC4xMC4yMwoKMjAwOS0wNS0xMCAyMjozODo0NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDktMDUtMDYgMTY6MTA6MTEgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgMC4xMC4yMi40IHByZS1yZWxlYXNlCgoyMDA5LTA0LTI0IDE5OjM2OjIyICswMjAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBHc3RCaW46IHNldCBQRU5ESU5HX1NUQVRFIGNvcnJlY3RseQoJICBTZXQgdGhlIHBlbmRpbmcgc3RhdGUgY29ycmVjdGx5IHdoZW4gd2UgYXJlIGdvaW5nIHRvIHBlcmZvcm0gYW4gYXN5bmMKCSAgc3RhdGVfY29udGludWUgb24gdGhlIGJpbi4KCSAgRml4ZXMgIzU4MDEyMQoKMjAwOS0wNC0yMSAyMDo1MDo1NSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICAwLjEwLjIyLjMgcHJlLXJlbGVhc2UKCjIwMDktMDQtMjEgMjI6MTI6MDQgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gYjM5NDFlYSB0byA2YWIxMWQxCgoyMDA5LTA0LTE3IDE1OjQ2OjUyICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgd2luMzI6IGRlZmluZSBfX01TVkNSVF9WRVJTSU9OX18gd2hlbiBjb21waWxpbmcgd2l0aCBNaW5nVywgZm9yIF9fc3RhdDY0CgkgIE5lZWQgdG8gZGVmaW5lIHRoaXMgd2hlbiB1c2luZyBNaW5nVywgc28gdGhhdCB0aGUgaW5jbHVkZXMgcHJvdmlkZQoJICBfX3N0YXQ2NCBhbmQgZnJpZW5kcy4gV2UgbmVlZCBhdCBsZWFzdCBXaW5kb3dzIFhQIFNQMiBmb3IgdGhpcy4KCSAgRml4ZXMgIzU2ODYzMi4KCjIwMDktMDQtMTYgMjI6MjY6MDAgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkgIGdzdGRlYnVnOiBjb21wZXRlIHN0dWJzLiBGaXhlcyAjNTc5MTc3LgoJICBBdm9pZCBkZWZpbmVzIHdoZW4gaW5jbHVkaW5nIGdzdGluZm8uaCBvdXJzZWxmIGFuZCBjb21wbGV0ZSBzdHVicy4gU3luYyBzdHViCgkgIHJldHVybnMgd2l0aCB0aGUgZGVmaW5lcy4KCjIwMDktMDQtMTcgMTE6NDQ6MTEgKzAxMDAgIFlhYWtvdiBTZWxrb3dpdHogPHlzZWxrb3dpdHpAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY29uZmlndXJlLmFjOgoJICBjb25maWd1cmUuYWM6IGZvcmsoKSBkdXJpbmcgcmVnaXN0cnkgc2Nhbm5pbmcgaXMgdW5zYWZlIG9uIEN5Z3dpbgoJICBGaXhlcyAjNTU1OTc4LgoKMjAwOS0wNC0xNyAxMTozOTo1OSArMDEwMCAgWWFha292IFNlbGtvd2l0eiA8eXNlbGtvd2l0ekB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBnc3QvZ3N0LmM6CgkgIGdzdF9pbml0OiByZWxvY2F0YWJpbGl0eSBpcyB1bm5lY2Vzc2FyeSBvbiBDeWd3aW4KCSAgU2VlICM1NTU5NzguCgoyMDA5LTA0LTE3IDEwOjExOjIxICswMTAwICBCcmlhbiBDYW1lcm9uIDxicmlhbi5jYW1lcm9uQHN1bi5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBnc3RpbmZvOiBkb24ndCBhc3N1bWUgR19IQVZFX0lTT19WQVJBUkdTIGltcGxpZXMgSVNPIEM5OQoJICBNYWtlcyBoZWFkZXJzIEMrKyBjbGVhbiwgZXNwLiB3aXRoIHRoZSBTdW4gY29tcGlsZXJzLgoJICBGaXhlcyAjNTY3NjkyLgoKMjAwOS0wNC0xNyAwOToxNzo0MCArMDEwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkgIEdzdFBsdWdpbjogZml4IGNvbXBpbGF0aW9uIGlmIGJvdGggSEFWRV9XSU4zMiBhbmQgSEFWRV9TSUdBQ1RJT04gYXJlIGRlZmluZWQKCSAgTW92ZSBfZ3N0X3BsdWdpbl9mYXVsdF9oYW5kbGVyX2lzX3NldHVwIGludG8gdGhlIGlmZGVmIGJsb2NrIHdoZXJlIGl0J3MKCSAgdXNlZC4gRml4ZXMgIzU3ODIwMS4KCjIwMDktMDQtMTYgMTI6MDE6NTAgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIC1sYXVuY2g6IGRpc2FibGUgQ0xPQ0tfTE9TVCBtZXNzYWdlIGhhbmRsaW5nCgkgIERpc2FibGUgdGhlIGhhbmRsaW5nIG9mIHRoZSBDTE9DS19MT1NUIG1lc3NhZ2VzIHVudGlsIHdlIGZpeGVkIGFuZCByZWxlYXNlZCB0aGUKCSAgZWxlbWVudHMgKHJ0c3BzcmMpIHRoYXQgYnJlYWsgd2hlbiB3ZSBxdWlja2x5IFBBVVNFL1BMQVkgdGhlIHBpcGVsaW5lLgoJICBGaXhlcyAjNTc5MTI3CgoyMDA5LTA0LTE1IDIyOjI0OjQ1ICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2U6IEJ1bXAgdmVyc2lvbiB0byAwLjEwLjIyLjIgZm9yIHByZS1yZWxlYXNlCgoyMDA5LTA0LTE2IDAwOjA4OjIwICswMTAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgd2luMzI6IFVwZGF0ZSB3aW4zMiBidWlsZCBmaWxlcwoKMjAwOS0wNC0xNSAyMzoyNzozMSArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2lkLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vamEucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIHBvOiBVcGRhdGUgdHJhbnNsYXRpb25zIGZyb20gVFAKCjIwMDktMDQtMTUgMjI6MTc6MTAgKzAxMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nOiByZWdlbmVyYXRlIGNoYW5nZWxvZyB3aXRoIHRoZSBnZW4tY2hhbmdlbG9nIHNjcmlwdAoKMjAwOS0wNC0xNSAyMzoyNjoxMyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGRvY3M6IHJlbW92ZSBlcnJhbnQgZ3RrLWRvYyBjb21tZW50IG1hcmtlciB0cmlnZ2VyaW5nIGEgd2FybmluZwoKMjAwOS0wNC0xNiAwMDowMjowNyArMDEwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuYzoKCSogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIHBhcmFtc3BlY3M6IHJldmVydCBnc3RfcGFyYW1fc3BlY19pc19tdXRhYmxlKCkgZm9yIHJlbGVhc2UKCSAgUmV2ZXJ0IHRoZSBnc3RfcGFyYW1fc3BlY19pc19tdXRhYmxlIEFQSSBmb3IgdGhpcyByZWxlYXNlIHNvIHdlIGNhbgoJICBkaXNjdXNzIGl0IGEgYml0IGZ1cnRoZXIgZmlyc3QuCgoyMDA5LTA0LTE1IDIzOjMzOjIwICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgbG9nZ2luZzogZml4IHVudXNlZCB2YXJpYWJsZSB3YXJuaW5nIHdoZW4gZGlzYWJsaW5nIGRlYnVnIGxvZ3MuCgkgIFRoZSB2YXIgd2FzIE5VTEwgYW55d2F5LCBiYWNhdXNlIG9mIHRoZSBpZmRlZnMgdGhlcmUsIHRoZSBtZXNzYWdlIG1ha2VzIG5vCgkgIHNlbnNlIGluY2x1ZGluZyBpdC4KCjIwMDktMDQtMTUgMjM6MTI6MTEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgZ3N0ZGVidWc6IHNob3cgZW5hYmxlZC9kaXNhYmxlZCBpbiBjb25maWd1cmUgYW5kIGZpeCBidWlsZCBmb3IgZGlzYWJsZWQKCSAgV2hlbiBpdHMgZGlzYWJsZWQsIHdlIHBvaXNvbiBzb21lIHN5bWJvbHMgdG8gZm9yY2UgYSBidWlsZCBlcnJvciBpZiB0aGV5IGFyZQoJICB1c2VkLiBEdW5ubyBob3cgdXNlZnVsIHRoaXMgYWN1YWxseSBpcywgYnV0IHdlIG5lZWQgdG8gZGlzYWJsZSB0aGUgcG9pc29uaW5nCgkgIHdoZW4gd2UgaW5jbHVkZSB0aGlzIG91cnNlbGYuIEFsc28gZG9uJ3QgZGVmaW5lIHNvbWUgb2YgdGhlIGR1bW1pZXMsIGFzIHRoZXkKCSAgYXJlIGdldHRpbmcgcmVwbGFjZWQgd2l0aCBkZWZpbmVzIGFuZCB0aGF0IGNyZWF0ZXMgY29kZSB0aGF0IGRvZXMgbm90IGNvbXBpbGUuCgoyMDA5LTA0LTE1IDE5OjU4OjM0ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgVXNlIGdfb25jZV9pbml0XyooKSBpbnN0ZWFkIG9mIEdPbmNlIGZvciB0aGUgZW51bSB0eXBlcwoKMjAwOS0wNC0xNSAxMzowNToxNiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgc3RhdGljcGFkdGVtcGxhdGU6IFVwZGF0ZSBkb2NzIG9mIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzICgpCgkgIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzICgpIGFjdHVhbGx5IHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlCgkgIGNhcHMgYW5kIGl0J3MgY2xlYW5lciB0byB1bnJlZiB0aGVtIGFmdGVyIHVzYWdlLiBUaGUgY29yZSB3aWxsLCBob3dldmVyLAoJICBhbHdheXMgaG9sZCBhIHJlZmVyZW5jZSB0byB0aGUgY2FwcyBzbyB0aGlzIGRpZG4ndCByZXN1bHQgaW4gYSBtZW1vcnkKCSAgbGVhay4KCjIwMDktMDQtMTQgMjI6MzI6MjEgKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBkb2NzOiB1c2UgcmVhbCA8bm90ZT4gdGFncyBhcyB0aGV5IGxvb2sgbmljZSBpbiBuZXcgZ3RrLWRvYwoKMjAwOS0wNC0xNCAxMjoyMDozNyAtMDcwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOgoJICBGaXggbG9ja2luZyBpbiBnc3RfcGFyYW1fc3BlY19pc19tdXRhYmxlCgoyMDA5LTA0LTE0IDIyOjA3OjM4ICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIGNvbnRyb2xsZXI6IGZhY3RvciBvdXQgZHVwbGljYXRlZCBjb2RlIGFuZCBhZGQgYSBkZXNjcmlwdGlvbiBmb3IgaXQuCgkgIEFsc28gZml4IHR5cG8gaW4gdGhlIHRlc3RzIHdoaWxlIHJldmlld2luZyB0aGVtLgoKMjAwOS0wNC0xNCAxOToxMjo1MiArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBkb2NzOiBhZGQgc2ltcGxlIGRvYyBibHVyYgoKMjAwOS0wNC0xNCAxOToxMTo0NCArMDIwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgIHBhcmFtc3BlY3M6IGFkZCBub3RlIGFib3V0IHJhY3luZXNzCgkgIEFkZCBhIG5vdGUgYWJvdXQgcG90ZW50aWFsIHJhY3luZXNzIGluIF9pc19tdXRhYmxlKCkuCgoyMDA5LTA0LTE0IDEwOjMyOjA3ICswMjAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwuY29tPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogdXNlIG11dGV4IHRvIGRvIGNvbnNvbGUgY29sb3JzIG9uIHdpbmRvd3MKCSAgVXNlIGEgc3RhdGljIG11dGV4IHRvIGtlZXAgdGhlIGNvbnNvbGUgY29sb3JzIGFuZCBjb250ZXh0IHRvZ2V0aGVyIHdoZW4KCSAgZGVidWdnaW5nIHdpdGggY29sb3JzIG9uIFdpbmRvd3MuCgkgIEZpeGVzICM1MTcyMzEuCgoyMDA5LTA0LTEzIDE0OjI3OjQ5ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkgIGRvY3M6IGFkZCBTaW5jZTogdGFncyB0byBndGstZG9jIGNodW5rcyBmb3IgbmV3IHBhcmFtIHNwZWMgQVBJCgkgIEFuZCwgZm9yIG91ciByZWxlYXNlIG1hbmFnZXIsIHRoZSBpbi1jb21taXQtbWVzc2FnZSBrZXl3b3JkcwoJICBmb3IgdGhlIHByZXZpb3VzIGNvbW1pdDoKCSAgQVBJOiBHU1RfUEFSQU1fTVVUQUJMRV9SRUFEWQoJICBBUEk6IEdTVF9QQVJBTV9NVVRBQkxFX1BBVVNFRAoJICBBUEk6IEdTVF9QQVJBTV9NVVRBQkxFX1BMQVlJTkcKCSAgQVBJOiBnc3RfcGFyYW1fc3BlY19pc19tdXRhYmxlCgoyMDA5LTAyLTIwIDExOjA5OjE5IC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBBZGQgcGFyYW0gc3BlYyBmbGFncyBmb3Igd2hlbiBhIHByb3BlcnR5IGNhbiBiZSBjaGFuZ2VkCgkgIEFkZHMgR1NUX1BBUkFNX01VVEFCTEUqIGZsYWdzIHRvIGluZGljYXRlIGluIHdoaWNoIHN0YXRlcyBhCgkgIHByb3BlcnR5IGNhbiBiZSBjaGFuZ2VkIGFuZCB0YWtlIGVmZmVjdC4gIEZpeGVzICM1NzE1NTkKCjIwMDktMDQtMTAgMTQ6MTU6MzYgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIC1sYXVuY2g6IGhhbmRsZSBjbG9jay1sb3N0IG1lc3NhZ2VzCgkgIFdoZW4gd2UgcmVjZWl2ZSBhIGNsb2NrLWxvc3QgbWVzc2FnZSwgd2UgbmVlZCB0byBzZWxlY3QgYSBuZXcgY2xvY2sgaW4gdGhlCgkgIHBpcGVsaW5lIGJ5IHNldHRpbmcgdGhlIHBpcGVsaW5lIHRvIFBBVVNFRCBhbmQgYmFjayB0byBQTEFZSU5HLgoKMjAwOS0wNC0wOSAxODoyNzoyMSArMDIwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3Rlci5jYT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIHRlZTogYWRkIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIGFsbG9jIHBhZAoJICBBZGQgYSBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBwYWQgdXNlZCBmb3IgcHJveHlpbmcgdGhlIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBvbgoJICB0aGUgc2lua3BhZC4KCSAgRml4ZXMgIzU3Nzg5MS4KCjIwMDktMDQtMDkgMTE6NTE6NDMgKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIGJpbjogYWx3YXlzIG1hcmsgcGVuZGluZ19hc3luY19kb25lCgkgIFdoZW4gd2UgZ2V0IGFuIEFTWU5DX0RPTkUgbWVzc2FnZSB3aGVuIGEgc3RhdGUgY2hhbmdlIHdhcyBidXN5LCBzZXQgdGhlCgkgIHBlbmRpbmdfYXN5bmNfZG9uZSBmbGFnIHNvIHRoYXQgYWZ0ZXIgdGhlIHN0YXRlIGNoYW5nZSBjb21wbGV0ZXMsIHRoZSBiaW4gY2FuCgkgIGNoZWNrIGlmIGFsbCBhc3luYyBlbGVtZW50cyBhcmUgZmluaXNoZWQuIERvbid0IG9ubHkgZG8gdGhpcyBmb3IgdGhlIGJpbiBpdHNlbGYKCSAgYnV0IGZvciBhbGwgZWxlbWVudHMuCgkgIFRoaXMgZml4ZXMgc29tZSBiaW5zIGluIGJpbnMgdGhhdCBzaW11bGF0ZSBhc3luYyBzdGF0ZSBjaGFuZ2VzIGJ5IHBvc3RpbmcgQVNZTkMKCSAgbWVzc2FnZXMgKHN1Y2ggYXMgc2RwcGFyc2UgaW4gdXJpZGVjb2RlYmluL3BsYXliaW4yKS4KCjIwMDktMDQtMDkgMTE6NDI6NDggKzAyMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0aW5mby5jOgoJICBpbmZvOiBmaXggY29tcGlsYXRpb24sICUwOHggbmVlZHMgYW4gdW5zaWduZWQgaW50CgkgICUwOHggbmVlZHMgYW4gdW5zaWduZWQgaW50LCBzbyBnaXZlIGl0IHRoYXQuCgoyMDA5LTA0LTA2IDAxOjI3OjI2ICswMTAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbmZvLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IGFkZCBGSVhNRSBhbmQgRFVNUE1FTSBsb2cgbGV2ZWxzIGFuZCBjb252ZW5pZW5jZSBtYWNyb3MKCSAgVHdvIG5ldyBsb2cgbGV2ZWxzIHRvIGR1bXAgRklYTUVzIGludG8gdGhlIGxvZyBhbmQgdG8gbG9nIGRhdGEKCSAgaW4gZm9ybSBvZiBhIGhleCBkdW1wICgjNTc4MTE0KS4KCSAgQVBJOiBHU1RfQ0FUX0ZJWE1FX09CSkVDVAoJICBBUEk6IEdTVF9DQVRfTUVNRFVNUF9PQkpFQ1QKCSAgQVBJOiBHU1RfQ0FUX0ZJWE1FCgkgIEFQSTogR1NUX0NBVF9NRU1EVU1QCgkgIEFQSTogR1NUX0ZJWE1FX09CSkVDVAoJICBBUEk6IEdTVF9NRU1EVU1QX09CSkVDVAoJICBBUEk6IEdTVF9GSVhNRQoJICBBUEk6IEdTVF9NRU1EVU1QCgoyMDA5LTA0LTA4IDE4OjEzOjQyICswMzAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJICBkb2NzOiB4cmVmIG1vcmUKCjIwMDktMDQtMDggMTc6NDk6MTggKzAzMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJICB0ZXN0czogcmVtb3ZlIHRoZSBoYWNrcyB0byB3b3JrYXJvdW5kIHRoZSBwYWQtbGVhawoKMjAwOS0wNC0wOCAxNToyNDo1OCArMDMwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgIHBhZHRlbXBsYXRlOiBlbmFibGUgY29kZSB0byBmaXggdGhlIGxlYWssIG5vdyB0aGF0IHRoZSBkZXBzIGhhdmUgYmVlbiByZWxlYXNlZAoJICBHb29kIGFuZCBmZm1wZWcgYXJlIGFjdHVhbGx5IG11bHRpcGxlIHJlbGVhc2VzIGJleW9uZCwgc28gdGhhdCB0aGlzIGlzIG5vdyBzYWZlCgkgIHRvIGRvLgoKMjAwOS0wNC0wNCAyMToxODoyMyArMDMwMCAgRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlLmNvbnRyZXJhc0BnbWFpbC5jb20+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIGQwZWE4OWUgdG8gYjM5NDFlYQoKMjAwOS0wNC0wNCAxNDo1MzoyMSArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGNvbW1vbjoKCSAgQXV0b21hdGljIHVwZGF0ZSBvZiBjb21tb24gc3VibW9kdWxlCgkgIEZyb20gZjhiM2Q5MSB0byBkMGVhODllCgoyMDA5LTA0LTA0IDE0OjQyOjA0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgZ3N0LWluc3BlY3Q6IHJlbW92ZSBkZWFkIGFzc2lnbm1lbnQKCSAgZmlyc3RfZmxhZyB3aWxsIGJlIGVpdGhlcjoKCSAgKiByZXdyaXR0ZW4gd2l0aG91dCBiZWluZyByZWFkIGlmIHdlIGxvb3AgYWdhaW4gKGxpbmUgMjg0KQoJICAqIG5vdCByZWFkIGFnYWluIGlmIHdlIGRvbid0IGxvb3AKCjIwMDktMDQtMDQgMTQ6Mzk6NTEgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBiYXNlc2luazogUmVtb3ZlIGRlYWQgYXNzaWdubWVudHMuCgkgIHNzdGFydC9zc3RvcC9yc3RhcnQvcnN0b3AgYXJlIGFsbCBlaXRoZXI6CgkgICogYXNzaWduZWQgdmFsdWVzIGxhdGVyIG9uIGJlZm9yZSBiZWluZyB1c2VkIGluICdkb190aW1lczonIChFT1MgYW5kIGJ1ZmZlcnMpCgkgICogbm90IHVzZWQgKG5vbi1FT1MgZXZlbnRzKQoKMjAwOS0wNC0wNCAxNDozODo1MiArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBiYXNlc3JjOiByZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBUaGUgdmFyaWFibGUgd2lsbCBub3QgYmUgcmVhZCBiZWZvcmUgaXQncyBhc3NpZ25lZCBhIHZhbHVlIGxpbmUgOTQyLzk0NQoKMjAwOS0wNC0wNCAxNDozNzoxMyArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGdzdHRhZ2xpc3Q6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkgIFdlIGRvbid0IG5lZWQgdG8gYWxsb2NhdGUgYSB2YXJpYWJsZSBpZiBpdCdzIHRoZSByZXR1cm4gb2YgYSBmdW5jdGlvbiBjYWxsCgkgIGFuZCB3ZSBvbmx5IGNoZWNrIGl0IG9uY2UuCgoyMDA5LTA0LTA0IDE0OjM1OjM0ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IE9ubHkgdXNlIG1ldGhvZHMgdXNlZCBpbiBnXyogY2hlY2tzIGlmIGdsaWIgY2hlY2tzIGFyZSBkaXNhYmxlZAoKMjAwOS0wNC0wNCAxMDo1OTozOSArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIGdzdDogVXNlIGdfb25jZV9pbml0KiBvciBHX0RFRklORV9UWVBFCgoyMDA5LTA0LTA0IDEwOjIwOjM2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHByZXNldC5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R4bWwuYzoKCSAgZ3N0OiBVc2UgR19ERUZJTkVfVFlQRSBhbmQgZnJpZW5kcyBvciBhdCBsZWFzdCBnX29uY2VfaW5pdF8qIGluIHRoZSBfZ2V0X3R5cGUoKSBmdW5jdGlvbnMKCjIwMDktMDQtMDQgMTA6MTg6NDIgKzAyMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSAgZ3N0OiBVc2UgR19ERUZJTkVfVFlQRSBhbmQgZG9uJ3QgY2FsbCBnX3RocmVhZF9pbml0KCkgZnJvbSBjbGFzc19pbml0CgkgIGNsYXNzX2luaXQgaXMgdG9vIGxhdGUgZm9yIGNhbGxpbmcgZ190aHJlYWRfaW5pdCgpIGFzIGdfdGhyZWFkX2luaXQoKQoJICBuZWVkcyB0byBiZSBjYWxsZWQgYmVmb3JlIGFueSBHT2JqZWN0IGZ1bmN0aW9uLgoKMjAwOS0wNC0wMyAxMzo0NjoxOCArMDIwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFyay5uYXV3ZWxhZXJ0c0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBVc2UgZ19zbGljZV9jb3B5IGluc3RlYWQgb2YgZ19zbGljZV9kdXAuCgkgIEEgKGJ1Z2d5KSBnbGliIGdfc2xpY2VfZHVwIG1hY3JvIG1heSBjYXVzZSBjb21waWxlciB3YXJuaW5ncyBvbiBlLmcuIHg4Nl82NC4KCjIwMDktMDQtMDMgMTI6MjE6NTUgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgY29udHJvbGxlcjogcmVtb3ZlIGRlYWQgYXNzaWdubWVudC4KCSAgVGhlIHZhbHVlIG9mIHByb3AgaXMgYmVpbmcgb3ZlcndyaXR0ZW4ganVzdCBhZnRlciB3aXRob3V0IGJlaW5nIHJlYWQuCgoyMDA5LTA0LTAzIDEyOjIwOjM2ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBnc3RzdHJ1Y3R1cmU6IFJlbW92ZSBkZWFkIGFzc2lnbm1lbnQuCgkgICd0eXBlJyBpcyBuZXZlciB1c2VkIHVudGlsIGxpbmUgMTg0NyB3aGVyZSBpdCdzIG92ZXJ3cml0dGVuLgoKMjAwOS0wNC0wMyAxMjoxOTo0MCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBhZGFwdGVyOiByZW1vdmUgZGVhZCBhc3NpZ25tZW50LgoJICBUaGUgdmFsdWUgc2V0IHRvIHRvX2NvcHkgYXQgdGhhdCBsaW5lIGlzIG5ldmVyIHVzZWQsIGFuZCBpcyBvdmVyd3JpdHRlbgoJICBmdXJ0aGVyIGRvd24gYmVmb3JlIGJlaW5nIHJlYWQuCgoyMDA5LTA0LTAzIDEyOjE3OjMzICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBnc3RiaW46IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCgkgIFRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlIGlzbid0IHVzZWQgYWZ0ZXIgdGhhdCBjYWxsLgoKMjAwOS0wNC0wMyAxMjoxNTozOCArMDIwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBwaXBlbGluZTogcmVtb3ZlIHJlZHVuZGFudCBhc3NpZ25tZW50LgoJICBJZiB0aGF0IGJsb2NrIGlzIGVudGVyZWQsIHRoZW4gc3RhcnRfdGltZSBiZWNvbWVzIEdTVF9DTE9DS19USU1FX05PTkUuCgkgIFNpbmNlIHN0YXJ0X3RpbWUgaXMgaW52YWxpZCwgdGhlIGNvZGUgd2lsbCBlbnRlciB0aGUgYmxvY2sgYXQgbGluZSA0MzQgYW5kCgkgIG5ld19iYXNlX3RpbWUgd2lsbCBiZSBzZXQgdGhlcmUuCgoyMDA5LTA0LTAzIDEyOjEzOjM4ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGdzdHJlZ2lzdHJ5YmluYXJ5OiByZW1vdmUgdmFyaWFibGUgb25seSB1c2VkIGZvciBhIGNoZWNrLgoJICB0aGF0IHZhcmlhYmxlIGlzbid0IHVzZWQgYW55d2hlcmUgZWxzZSB3aXRoaW4gdGhhdCBibG9jay4KCjIwMDktMDQtMDMgMTI6MTM6MDAgKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rIDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCSAgc3luYyBpcyBuZXZlciB1c2VkIGFueXdoZXJlIGluIHRoYXQgY29kZS4KCjIwMDktMDQtMDMgMTI6MTI6MDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgYmFzZXRyYW5zZm9ybTogbW92ZSB1bnVzZWQgdmFyaWFibGUgaW4gdGhlICNpZiAwIGJsb2NrLgoJICBUaGF0IHZhcmlhYmxlIGlzIG9ubHkgdXNlZCBieSB0aGUgY29kZSB3aGljaCBoYXMgYmVlbiBpZiAwJ2QKCjIwMDktMDQtMDMgMTE6NTY6NDggKzAyMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBSZW1vdmUgdW51c2VkIGluY3JlbWVudHMgYXMgZGV0ZWN0IGJ5IExMVk0ncyBDTGFuZyBzdGF0aWMgYW5hbHl6ZXIuCgoyMDA5LTA0LTAzIDExOjUyOjQ5ICswMjAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YXNrLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgZGV0ZWN0ZWQgYnkgTExWTSdzIENsYW5nIHN0YXRpYyBhbmFseXplci4KCjIwMDktMDQtMDMgMTE6MTk6NDIgKzAxMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGNhcHMuYzoKCSAgZG9jczogaW1wcm92ZSBBUEkgcmVmZXJlbmNlIGZvciBnc3RfY2Fwc19nZXRfc3RydWN0dXJlKCkKCjIwMDktMDQtMDIgMTM6MzI6NTggKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hcyAoYXQpIGFwZXN0YWFydCAoZG90KSBvcmc+CgoJKiBnc3QvZ3N0YmluLmg6CgkgIGRvY3M6IGV4cGxhaW4gcmVmIG93bmVyc2hpcCBmb3IgaGFuZGxlX21lc3NhZ2UgaW1wbGVtZW50YXRpb25zCgoyMDA5LTA0LTAyIDEwOjQzOjE2ICswMjAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGdzdGNoZWNrOiBDYWxsIGdzdF9jaGVja19pbml0KCkgYmVmb3JlIGNyZWF0aW5nIHRoZSBzdWl0ZQoJICBUaGlzIGFsbG93cyB1c2luZyB0aGUgR1N0cmVhbWVyIG9yIEdPYmplY3QgQVBJIGluIHRoZSBzdWl0ZQoJICBjcmVhdGlvbiBmdW5jdGlvbi4KCjIwMDktMDMtMzEgMTg6MTQ6MDggLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBnc3QtbGF1bmNoOiBGaXhlcyBlcnJvciB3aGVuIERJU0FCTEVfRkFVTFRfSEFORExFUiBpcyBkZWZpbmVkCgkgIFdoZW4gZGVmaW5lZCwgdGhpcyBtYWNybyBwcmV2ZW50ZWQgdGhlIGRlY2xhcmF0aW9uIG9mICd3YWl0aW5nX2VvcycsIGNhdXNpbmcgYW4gZXJyb3IuCgoyMDA5LTAzLTI2IDE3OjI1OjA4ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXIuIEFsd2F5cyBjYWxscyBfc3VnZ2VzdCwgZXZlbiB3aXRoIE5VTEwgY2Fwcy4gRml4ZXMgIzU3NDgwNQoKMjAwOS0wMy0zMCAxNTo0NTowMiArMDIwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOgoJICB0ZXN0czogRG9uJ3QgZGVmaW5lIGdsb2JhbCBidWZmZXJzIHZhcmlhYmxlLCBpdCdzIGFscmVhZHkgZGVmaW5lZCBieSBsaWJnc3RjaGVjawoKMjAwOS0wMy0zMCAxMDozMzo1MSArMDIwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBkb2NzL2dzdC9idWlsZGluZy54bWw6CgkgIGRvY3M6IFNvbWUgZ3JhbW1hciBhbmQgdHlwbyBjb3JyZWN0aW9ucy4KCjIwMDktMDMtMjkgMTM6NDE6MjIgKzAyMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhbmEuYW1hbnRlcz4KCgkqIGRvY3MvZ3N0L2J1aWxkaW5nLnhtbDoKCSAgRml4IHR5cG8uCgoyMDA5LTAzLTI3IDE3OjMwOjIzICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IGluaXQgdmFyaWFibGUsIHRoYXQgaXMgcmVmZXJlbmNlZCBpbiBlcnJvciBjYXNlIGJlbG93IHRoZSBmYWlsOiBsYWJlbAoKMjAwOS0wMy0yNyAxNjoxNTo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogd2FrZXVwIHRoZSBhc3luYyB0aHJlYWQgYSBiaXQgbW9yZQoJICBBbHNvIHdha2UgdXAgdGhlIGFzeW5jIHRocmVhZCB3aGVuIGl0IGlzIGRvaW5nIGFuIGFzeW5jIHdhaXQgZm9yIGFuIGVudHJ5LgoKMjAwOS0wMy0yNyAxNjoxNToxMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnQ6IEZpeCBhIGxpdHRsZSBkZWJ1ZyBtZXNzYWdlCgoyMDA5LTAzLTI2IDEzOjA3OjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5cmVnaXN0cnk6IGNoZWNrIGZvciBub3QgcmVhZGluZyBiZXlvbmQgdGhlIGRhdGEgYXJlYS4gRml4ZXMgIzU3Njg0MgoJICBDaGVjayBhbGwgcmVhZHMgYWdhaW5zdCB0aGUgZW5kIG9mIHRoZSBkYXRhIHJlZ2lvbi4gUm9sbCBiYWNrIHJlZ2lzdHJhdGlvbiBvZgoJICBwYXJ0aWFsIHJlYWRzLgoKMjAwOS0wMy0yNSAxMTowMzoyMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L2J1aWxkaW5nLnhtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgZG9jczogYWRkIGEgcGFnZSBhYm91dCBidWlsZGluZyBnc3RyZWFtZXIgYW5kIGFwcHMKCjIwMDktMDMtMjYgMTM6MDg6MDEgLTAzMDAgIFRoaWFnbyBTYW50b3MgPHRoaWFnb3NzQGVtYmVkZGVkLnVmY2cuZWR1LmJyPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBBZGRzIGZsYWcgZm9yIGVvcyBvbiBzaHV0ZG93biBpbiBnc3QtbGF1bmNoLiBGaXhlcyAjNTc1ODE0LgoKMjAwOS0wMy0yNiAyMjowNTozMSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IG1ha2UgVU5TQ0hFRFVMRUQgY2hlY2tzIHRocmVhZHNhZmUKCSAgTW92ZSB0aGUgY2hlY2tzIGZvciB1c2luZyBhbiB1bnNjaGVkdWxlZCBlbnRyeSBmcm9tIHRoZSB1bnNhZmUgR3N0Q2xvY2sgdG8gdGhlCgkgIFN5c3RlbUNsb2NrIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBwZXJmb3JtIHRoZSBjb3JyZWN0IGxvY2tpbmcuCgkgIGZpeCBhIGxlYWsgYW5kIHBvdGVudGlhbCBkZWFkbG9jayB0aGVuIHRoZSBhc3luYyB0aHJlYWQgZmFpbHMgdG8gc3RhcnQuCgkgIFNwcmlua2xlIHNvbWUgR19MSUtFTFkgYXJvdW5kIGJlY2F1c2Ugd2UgY2FuLgoKMjAwOS0wMy0yNiAyMTo0MDoyMCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogcmVtb3ZlIHBlbmRpbmcgYXN5bmMgd2FrZXVwIHNvb25lcgoJICBSZW1vdmUgYSBwZW5kaW5nIGFzeW5jIHdha2V1cCBiZWZvcmUgd2UgY2hlY2sgaWYgdGhlIG5leHQgZW50cnkgaXMgVU5TQ0hFRFVMRUQKCSAgYmVjYXVzZSB3ZSBtaWdodCBsZWF2ZSB0aGUgY29udHJvbCBzb2NrZXQgYnVzeS4KCjIwMDktMDMtMjYgMTk6MzM6NDEgKzAxMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogQ29ycmVjdGVkIGEgZG9jdW1lbnRhdGlvbiB0eXBvLgoKMjAwOS0wMy0yNiAxOToxMzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBjbG9jazogYWRkIHNvbWUgbW9yZSBjb21tZW50cy4KCjIwMDktMDMtMjYgMTg6NDY6MzUgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgY2xvY2s6IHJld29yayB0aGUgd2FrZXVwIG9mIGVudHJpZXMuCgkgIEtlZXAgYSBjb3VudGVyIGZvciB0aGUgYW1vdW50IG9mIG91dHN0YW5kaW5nIHdha2V1cHMgdGhhdCB3ZSBwcm9kdWNlIGFuZCBvbmx5CgkgIHBlcmZvcm0gYSB3cml0ZS9yZWFkIHRvIHRoZSBjb250cm9sIHNvY2tldCB3aGVuIDEgb3IgMCByZXNwZWN0aXZlbHkuCgkgIGRvbid0IHBvbGwgd2hlbiB3YWl0aW5nIGZvciB0aGUgZW50cmllcyB0byBiZSB1bmJsb2NrZWQgYW5kIGNsZWFyIHRoZWlyIHdha2V1cAoJICBjb3VudHMsIGp1c3QgYWN0IG9uIHRoZSBzaWduYWwgd2hlbiB0aGUgd2FrZXVwIGNvdW50IGlzIDAuCgkgIHVuc2NoZWR1bGVkIGVudHJpZXMgd2lsbCBjbGVhciB0aGVpciB3YWtldXAgY291bnQgdGhlbXNlbHZlcy4KCSAgS2VlcCB0cmFjayBvZiB3aGVuIHdlIHdha2V1cCB0aGUgYXN5bmMgdGhyZWFkIGJlY2F1c2UgdGhlIGxpc3Qgb2YgZW50cmllcyBoYXMKCSAgY2hhbmdlZC4KCSAgZG9uJ3QgdHJ5IHRvIHNlZSBpZiB0aGUgbGlzdCBjaGFuZ2VkIGJlY2F1c2Ugd2UgY2FuJ3QgcmVhbGx5IGtub3cgd2hlbiBvbmUgZW50cnkKCSAgaXMgYWRkZWQgbXVsdGlwbGUgdGltZXMuCgkgIE9ubHkgd2FrZSB1cCB0aGUgYXN5bmMgdGhyZWFkIHdoZW4gd2UgYWRkIGFuIGFzeW5jIGVudHJ5IHRvIHRoZSBoZWFkIG9mIHRoZSBsaXN0CgkgIGFuZCB0aGUgb2xkIGVudHJ5IHdhcyBCVVNZLgoKMjAwOS0wMy0yNSAxNzozMToxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogZ3N0L2dzdHBvbGwuYzoKCSAgZ3N0cG9sbDogRml4IHVwIGRvY3VtZW50YXRpb24gc3RyaW5ncy4KCSAgTm90ZSB0aGUgY2hhbmdlZCBiZWhhdmlvdXIgb2YgZ3N0X3BvbGxfd2FpdCBmb3IgdGltZXIgR3N0UG9sbCdzLCBhbmQKCSAgZml4IGEgY291cGxlIG9mIHNwZWxsaW5nIGVycm9ycy4KCjIwMDktMDMtMjYgMTU6NTU6MDIgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIGNsb2NrOiBmaXggMiB3YWtldXAgcmFjZXMuCgkgIHdoZW4gYW4gZW50cnkgYmVpbmcgd2FpdGVkIG9uIGluIHRoZSBhc3luYyB0aHJlYWQgaXMgdW5zY2hlZHVsZWQsIGNsZWFyIHRoZQoJICB3YWtldXAgcXVldWUgc28gd2UgY2FuIGNvbnRpbnVlIHdhaXRpbmcgb24gb3RoZXIgZW50cmllcy4KCSAgV2hlbiBhbiBlbnRyeSBiZWluZyB3YWl0ZWQgb24gaW4gdGhlIGFzeW5jIHRocmVhZCBpcyB1bmxvY2tlZCBiZWNhdXNlIGFuIGVhcmxpZXIKCSAgZW50cnkgd2FzIGFkZGVkIHRvIHRoZSBsaXN0LCBzZXQgdGhlIGVudHJ5IHRvIE9LIGFnYWluLiBUaGlzIG1ha2VzIHN1cmUgdGhhdAoJICBvbmx5IHRoZSBlbnRyaWVzIGJlaW5nIHdhaXRlZCBvbiBoYXZlIHRoZSBCVVNZIGZsYWcgc2V0IGFuZCB3YWtlIHVwIHRoZSB0aW1lcgoJICBwb2xsIHdoZW4gdGhleSBhcmUgdW5zY2hlZHVsZWQuCgoyMDA5LTAzLTI2IDE0OjQ0OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICByZWdpc3RyeTogaWdub3JlIC5naXQgZGlyZWN0b3J5IHdoZW4gcmVjdXJzaXZlbHkgc2Nhbm5pbmcgcGx1Z2luIHBhdGhzIGZvciBwbHVnaW5zCgkgIFNhdmVzIHNvbWUgY3ljbGVzL3BhbmRhcyBmb3IgdGhvc2Ugb2YgdXMgd2hvIHJ1biB1bmluc3RhbGxlZCBzZXR1cHMuCgoyMDA5LTAzLTI2IDE0OjE2OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgcmVnaXN0cnk6IGRvIGZzeW5jKCkgYmVmb3JlIGNsb3NlKCkgYW5kIHJlbmFtZSgpCgkgIFRoaXMgaGVscHMgcHJldmVudCBmaWxlc3lzdGVtL2RhdGEgaW5jb25zaXN0ZW5jaWVzIGluIGNlcnRhaW4KCSAgY2lyY3Vtc3RhbmNlcyBvbiBjZXJ0YWluIGZpbGVzeXN0ZW1zIChsaWtlIGV4dDQsIHhmcywgdWJpZnMpLgoJICBBbHNvIHNlZSBidWcgIzU2Mjk3Ni4KCjIwMDktMDMtMjYgMDE6MDk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X2dldF9idWZmZXJ7X2luZGV4fQoJICBDb252ZW5pZW5jZSBBUEksIG1vc3RseSBmb3IgaW1hZ2UgdGFncywgc28gcGVvcGxlIGRvbid0IGhhdmUgdG8KCSAgZmlndXJlIG91dCB0aGUgd2hvbGUgR1ZhbHVlL0dzdFZhbHVlIHRoaW5nIGp1c3QgZm9yIHRoaXMuCgoyMDA5LTAzLTI1IDIzOjAzOjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgc3lzdGVtY2xvY2s6IENsZWFuIHVwIHRoZSB0ZXN0cyBhIGJpdC4KCSAgQWRkIHNvbWUgY2xlYW51cHMgdG8gdGhlIHN5c3RlbSBjbG9jayB0ZXN0cywgdG8gZnJlZSBhbGwgdGhlIG1lbW9yeSBhbmQKCSAgdW5zY2hlZHVsZS91bnJlZiBhbGwgY2xvY2sgSURzIHdlIGFsbG9jYXRlLgoJICBVc2UgYSBtdXRleCBpbiBvbmUgdGVzdCB0byBhdm9pZCBwb3RlbnRpYWwgdGhyZWFkaW5nIHByb2JsZW1zIG9uIG11bHRpY29yZQoJICBtYWNoaW5lcy4KCjIwMDktMDMtMjUgMjE6Mzc6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogQWRkIGEgdGVzdCBmb3Igc3luYy9hc3luYyBjbG9ja2lkIGludGVyYWN0aW9ucwoJICBUaGlzIHRlc3QgcmFuZG9tbHkgaGFuZ3MgaWYgdGhlcmUgYXJlIHByb2JsZW1zIHdpdGggdGhlIHJlbGlhYmlsaXR5IG9mCgkgIHVuc2NoZWR1bGluZyBzeW5jIGFuZCBhc3luYyBjbG9ja0lEJ3Mgb24gdGhlIHN5c3RlbSBjbG9jay4KCjIwMDktMDMtMjYgMTE6MTc6MDEgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgc2VnbWVudDogVXNlIGdfc2xpY2VfZHVwKCkgbm93CgoyMDA5LTAzLTI2IDExOjA4OjI3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nbGliLWNvbXBhdC5oOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgUmVtb3ZlIHNvbWUgY29tcGF0aWJpbGl0eSBzdHVmZiBmb3IgR0xpYiA8IDIuMTQKCjIwMDktMDMtMjUgMDA6NTA6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19TVUJUSVRMRV9DT0RFQwoJICBZZXMsICdjb2RlYycgaXNuJ3QgZXhhY3RseSB0aGUgYmVzdCB3b3JkLCBidXQgbGV0J3MgYmUgY29uc2lzdGVudCB3aXRoIEFVRElPX0NPREVDCgkgIGFuZCBWSURFT19DT0RFQyAod2hpY2ggbWF5IGJlICdyYXcnIGZvcm1hdHMgYXMgd2VsbCBhZnRlciBhbGwpLiBQcmVyZXF1aXNpdGUgZm9yCgkgIGJ1ZyAgIzU3NjU1Mi4KCjIwMDktMDMtMjQgMjE6Mzk6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBkb2NzOiBnc3QtbGF1bmNoIG1hbiBwYWdlIGZpeAoJICBUaGUgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyAtLWdzdC1kZWJ1Zy1kaXNhYmxlLCBub3QgLS1nc3QtZGlzYWJsZS1kZWJ1Zy4KCSAgRml4ZXMgIzU3NjU1Ni4gU3BvdHRlZCBieSBCb2dkYW4gSGFyam9jLgoKMjAwOS0wMy0yNCAxOTozMzo1NiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5jOgoJICBnc3R1dGlsczogaW1wcm92ZSBwcm9wZXJ0eSBzZXQgYW5kIGNvbnZlcnQgY29kZQoJICBVc2Ugc3RyaW5nIGRlc2VyaWFsaXNhdGlvbiBpbnN0ZWFkIG9mIGN1c3RvbSBwYXJzaW5nIGNvZGUgdG8gYWxsb3cgZm9yIGFsbAoJICBzdXBwb3J0ZWQgd2F5cyBvZiBzcGVjaWZ5aW5nIHByb3BlcnR5IHZhbHVlcy4KCSAgZml4ZXMgIzU3NjU4Mi4KCjIwMDktMDMtMjMgMTU6MTg6MjEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGJ1aWxkOiBkZWZpbmUgc3R1YnMgd2hlbiBkaXNhYmxpbmcgZ3N0LWRlYnVnIHN1YnN5c3RlbS4gRml4ZXMgIzU3NTkyMgoJICBSdW5uaW5nIGNvbmZpZ3VyZSB3aXRoIGUuZy4gLS1kaXNhYmxlLWRzdC1kZWJ1ZyB3YXMgY29tcGlsaW5nIG91dCB0aGUgZGVidWcKCSAgc3lzdGVtIChBQkkgYnJlYWspLiBOb3cgc3R1YnMgYXJlIGFkZGVkIGFuZCBvbmx5IGlmIG9uZSBkb2VzIGUuZy4KCSAgbWFrZSBDRkxBR1M9Ii1ER1NUX1JFTU9WRV9ESVNBQkxFRCIgdGhlIHN5bWJvbHMgYXJlIG9tbWl0dGVkLgoKMjAwOS0wMy0yMyAxMjozNDozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBmaXggb25jZS1wZXItc2Vjb25kICdlbWVyZ2VuY3kgcmVuZGVyaW5nJyBmb3IgY2FzZSB3aGVyZSBhbGwgYnVmZmVycyBidXQgdGhlIHZlcnkgZmlyc3QgYXJlIGxhdGUKCSAgRHVlIHRvIGEgdHlwbyBiYXNlc2luayBkaWRuJ3QgZG8gYW55IGVtZXJnZW5jeSByZW5kZXJpbmcgb2YgbGF0ZSBidWZmZXJzCgkgIGlmIHRoZSBvbmx5IGJ1ZmZlciBldmVyIHJlbmRlcmVkIHdhcyB0aGUgZmlyc3Qgb25lIHdpdGggdGltZXN0YW1wIDAuIFRoaXMKCSAgbWVhbnMgdGhhdCBpbiBjYXNlcyB3aGVyZSB0aGUgZGVjb2RlciBpcyB2ZXJ5IHZlcnkgc2xvdywgd2UnZCBuZXZlciBzZWUKCSAgYW55IGJ1ZmZlcnMgYnV0IHRoZSB2ZXJ5IGZpcnN0IG9uZSByZW5kZXJlZC4gRml4ZXMgIzU3NjM4MS4KCjIwMDktMDMtMjEgMDI6MzQ6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIGRvY3M6IHR3ZWFrIHRoZSByZWxlYXNlIHByb2NlZHVyZSBzY3JpcHQKCjIwMDktMDMtMjAgMTQ6MTI6NTUgKzAxMDAgIExSTiA8bHJuMTk4NiBhdCBnbWFpbCBkb3QgY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIHdpbjMyOiBmaXggc2Vla2luZyBpbiBmaWxlcyA+NEdCCgkgIFVzZSA2NC1iaXQgZnVuY3Rpb25zIG9uIHdpbmRvd3MgdG8gaW1wbGVtZW50IHNlZWtpbmcgaW4gZmlsZXMgYmlnZ2VyCgkgIHRoYW4gNEdCLgoJICBGaXhlcyAjNTc1OTg4CgoyMDA5LTAzLTIwIDExOjI2OjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgY29udHJvbGxlcjogRml4IGdlbmVyYXRpb24gb2YgY29udHJvbC1jaGFuZ2UgYXJyYXlzLgoJICBXaGVuIGdlbmVyYXRpbmcgYXJyYXlzIG9mIGNvbnRyb2wgY2hhbmdlcyB0aW1lc3RhbXAgdmFyaWFibGUgd2FzIHVzZWQgaW5zdGVhZAoJICB0aGUgbG9jYWwgdHMgdmFyaWFibGUgdGhhdCB3ZSBpbmNyZW1lbnQgd2hlbiBzdGVwcGluZyB0aHJvdWdoIHRoZSBhcnJheS4KCSAgUG9pbnRlZCBvdXQgYnkgTWFydGluIFBva29ybnkuCgoyMDA5LTAzLTIwIDAwOjQyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbmZvLmM6CgkgIGRlYnVnZ2luZzogbWFrZSBHU1RfUFRSX0ZPUk1BVCB3b3JrIGZvciBxdWVyaWVzIGFzIHdlbGwKCjIwMDktMDMtMjAgMDA6Mzk6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFQSTogYWRkIEdTVF9RVUVSWV9DQVNUCgkgIGJlY2F1c2Ugd2UgY2FuLCBhbmQgZm9yIGNvbnNpc3RlbmN5LgoKMjAwOS0wMy0xOSAyMToyNzo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBnc3RjaGVjazogZml4IGZvciBjaGVjayB2ZXJzaW9ucyA+IDAuOS42CgkgIEEgbmV3IGFyZ3VtZW50IGFsbG93ZWRfZXhpdF92YWx1ZSB3YXMgYWRkZWQgaW4gU1ZOIHJlY2VudGx5ICgjNTc0MjEzKS4KCjIwMDktMDMtMTkgMTc6MTk6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGdzdHBhZDogZml4IGdzdF9wYWRfY2FuX2xpbmsKCSAgV2Ugd2VyZSBjb252ZXJ0aW5nIHRoZSBHc3RQYWRMaW5rUmV0dXJuIHRvIGEgZ2Jvb2xlYW4sIHdoaWNoIGlzIG5vdCB3aGF0IHdlIHdhbnQKCSAgdG8gZG8uCgoyMDA5LTAzLTE5IDEwOjQ0OjEzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgZ3N0LXJ0c3Atc2VydmVyIGJpdHMgYW5kIGJyZWFrIHVwIG92ZXJseSBsb25nIGxpbmVzCgkgIEFkZCBzb21lIG9mIHRoZSBiaXRzIG5lZWRlZCBmb3IgYW4gdW5pbnN0YWxsZWQgZ3N0LXJ0c3Atc2VydmVyIChzbyBnZGIgd29ya3MKCSAgb24gdGhlIGV4YW1wbGVzIGV0Yy4pLiBQeXRob24gYml0cyBhcmUgc3RpbGwgbWlzc2luZywgYW5kIHdlIG1pZ2h0IG5lZWQgYW4KCSAgLXVuaW5zdGFsbGVkLnBjIGZpbGUgYXMgd2VsbCBpbiB0aGUgZnV0dXJlLiBCcmVhayB1cCB2ZXJ5IGxvbmcgbGluZXMgdG8gbWFrZQoJICB0aGVtIGVhc2llciB0byByZWFkIGFuZCBtYWludGFpbi4gQWxzbyByZW1vdmUgZ3N0LXBsdWdpbnMgcGF0aHMgZnJvbSB0aGUKCSAgb2xkIGRheXMuCgoyMDA5LTAzLTE5IDExOjQ2OjExICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9yYW5kb20vd3RheS9yd2xvY2tzOgoJICBkb2NzOiBpbnRlcmVzdGluZyBpZGVhIGZvciBmYXN0IHJ3IGxvY2tzCgkgIC0tCgoyMDA5LTAzLTE5IDExOjExOjQzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGRlZnM6IGFkZCBuZXcgc3ltYm9sIHRvIHdpbmRvd3MgLmRlZiBmaWxlCgkgIEFkZCB0aGUgbmV3IHdpbmRvd3MgY21kLmV4ZSBjb2xvcmluZyBtZXRob2QgdG8gdGhlIC5kZWYgZmlsZS4KCjIwMDktMDMtMTggMTY6Mzg6NTEgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGRvY3M6IG1vcmUgaW5mbyBhYm91dCB3aGVuIHN0YXRlIGNoYW5nZXMgY2FuIGJlIGFzeW5jIGFuZCB3aGVuIG5vdC4KCjIwMDktMDMtMTggMTk6MDc6MDAgKzAxMDAgIERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdSBhdCBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0aW5mby5oOgoJICBpbmZvOiBtb3JlIGluZGVudGF0aW9uIGZpeGVzCgkgIEZpeGVzICM1MTcyMzEuCgoyMDA5LTAzLTE4IDE5OjA2OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uaDoKCSAgaW5mbzogaW5kZW50YXRpb24gZml4CgoyMDA5LTAzLTE4IDE4OjU3OjE2ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdGluZm8uYzoKCSAgaW5mbzogc2ltcGx5IHNvbWUgbW9yZQoKMjAwOS0wMy0xOCAxODo0NTo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RpbmZvLmM6CgkgIGluZm86IHJlZmFjdG9yIGRlYnVnIGNvbG9ycyBmb3Igd2luMzIgYW5kIG90aGVyCgkgIFJlZmFjdG9yIHRoZSBkZWJ1ZyBsaW5lIGNvZGUgdG8gdXNlIGFzIG11Y2ggY29kZSBhcyBwb3NzaWJsZSBmb3IgdGhlIHdpbjMyIGFuZAoJICBvdGhlciBjb2xvciBjb2RpbmdzLgoJICBVcGRhdGUgZG9jcyB3aXRoIG5ldyBzeW1ib2wuCgoyMDA5LTAzLTE4IDE3OjMwOjEyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJICB3aW5kb3dzOiBpbml0aWFsIGNvbW1pdCBmb3IgdGVybWluYWwgY29sb3JzCgoyMDA5LTAzLTE4IDE3OjAxOjE2ICswMTAwICBaZWVzaGFuIEFsaSAoS2hhdHRhaykgPHplZXNoYW5hayBhdCBnbm9tZSBkb3Qgb3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgZ3N0cGFkOiBmaXggZ3N0X3BhZF9jYW5fbGluaygpCgkgIE1vdmUgdGhlIGdzdF9wYWRfY2FuX2xpbmsoKSBpbXBsZW1lbnRhdGlvbiBmcm9tIGdzdHV0aWxzIHRvIGdzdHBhZCBhbmQgdXNlCgkgIGdzdF9wYWRfbGlua19wcmVwYXJlKCkgdG8gbWFrZSBpdCB3b3JrIGNvcnJlY3RseSBhbmQgYWxzbyBjaGVjayB0aGUgY2Fwcy4KCSAgTWFrZSB0aGUgYnJva2VuIGltcGxlbWVudGF0aW9uIGluIGdzdHV0aWxzIHN0YXRpYy4KCSAgU21hbGwgY2xlYW51cHMgaW4gdGhlIF9nZXRfZml4ZWRfY2FwcygpIGZ1bmN0aW9uLgoJICBGaXhlcyAjNTc1NjgyLgoKMjAwOS0wMy0xNyAyMDo0MTo0NCArMDAwMCAgRGF2aWQgQWRhbSA8emFuY2hleUB1Y2MuZ3UudXdhLmVkdS5hdT4KCgkqIGdzdC9nc3QuYzoKCSAgY29uZmlnLmggbmVlZHMgdG8gYmUgaW5jbHVkZWQgZmlyc3QsIGVpdGhlciBkaXJlY3RseSBvciB2aWEgZ3N0X3ByaXZhdGUuaAoJICBGaXhlcyBidWlsZCB3aXRoIC1XZXJyb3IgY2F1c2VkIGJ5ICdfRklMRV9PRkZTRVRfQklUUyByZWRlZmluZWQnIHdhcm5pbmcgb24KCSAgT3BlblNvbGFyaXMgd2hlcmUgX0ZJTEVfT0ZGU0VUX0JJVFMgbWF5IGJlIGRlZmluZWQgYm90aCBpbiBvdXIgY29uZmlnLmgKCSAgYW5kIHZpYSBzdGRpby5oICgjNTc1Njk1KS4KCjIwMDktMDMtMTcgMTk6MDI6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIGZhcTogcmVtb3ZlIG91dGRhdGVkIGJpdHMgZnJvbSBpbmRlbnRpbmcgc2VjdGlvbgoKMjAwOS0wMy0xNyAxMjowNTozMyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGJpbi5jOgoJICBiaW46IGZvcndhcmQgc2VnbWVudC1zdGFydCBsaWtlIHNlZ21lbnQtZG9uZSBpZiBwYXJlbnQgaXMgYWxzbyBhIGJpbiwgZml4ZXMgIzU3NTU5OC4KCSAgQmluIGNvbGxlY3RzIHNlZ21lbnQtc3RhcnQgbWVzc2FnZXMgYW5kIHNlZ2VudC1kb25lIG1lc3NhZ2VzLiBpdCBwb3N0cyBhCgkgIHNlZ21lbnQtZG9uZSBtZXNzYWdlIHRvIGl0cyBwYXJlbnQsIG9uY2UgaXQgaGFzIHJlY2VpdmVkIGEgc2VnbWVudC1kb25lIGZvcgoJICBlYWNoIHNlZ21lbnQtc3RhcnQuIEltaG8gaXQgc2hvdWxkIGFsc28gc2VuZCBhIHNlZ21lbnQtc3RhcnQgaWYgaXQgcmVjZWl2ZXMgdGhlCgkgIGZpcnN0IHNlZ21lbnQgc3RhcnQgYW5kIGlmIHBhcmVudCBpcyAhPU5VTEwuIFRoaXMgaXMgbmVlZGVkIGZvciBiaW5zIGluIGJpbnMsCgkgIHNvIHRoYXQgYWxzbyBoaWdoZXIgb3JkZXIgYmlucyBjYW4gZ3JvdXAgc2VnbWVudC1zdGFydHMgYW5kIHNlZ21lbnQtZG9uZXMuCgkgIFJpZ2h0IG5vdyBoaWdoZXIgb3JkZXIgYmlucyB3aWxsIHBvc3QgYSBzZWdtZW50LWRvbmUgZm9yIGVhY2ggc2VnbWVudC1kb25lCgkgIHJlY2VpdmVkLgoKMjAwOS0wMy0xNiAyMDoxMjo0NSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGRvY3MvZmFxL2dpdC54bWw6CgkgIGZhcTogZml4IHR5cG8gaW4gZ2l0IGNvbW1hbmQKCjIwMDktMDMtMTUgMjM6NDA6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBzeXN0ZW1jbG9jazogdGhlc2Ugd2FybmluZ3MgYXJlIHNlcmlvdXMsIGdpdmUgbW9yZSBkZXRhaWwgaW4gdGhlIG1lc3NhZ2UKCjIwMDktMDMtMTUgMjM6Mzc6MjkgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgY29sbGVjdHBhZHM6IGFkZCBkZWJ1ZyBsb2dnaW5nIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHRyYWNlIGl0CgoyMDA5LTAzLTEzIDEwOjU2OjU0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIEZpeCBpbmRlbnRhdGlvbiBvZiAuaCBmaWxlcwoJICAtLQoKMjAwOS0wMy0xMiAxMjoyMDoyNSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgdGFnbGlzdHM6IGFwcGx5IGZpeCBmb3IgcmVwbGFjZSBhbGwgYWxzbyB0byBnc3RfdGFnX2xpc3RfYWRkX3ZhbGlzdF92YWx1ZXMuIEZpeGVzICM1NzQyNDEKCjIwMDktMDMtMTIgMTA6NDg6MjEgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBkb2NzOiBJbXByb3ZlIHNvbWUgZG9jcwoJICBSZW5hbWUgc29tZSBmdW5jdGlvbiB2YXJpYWJsZXMgYW5kIGFkZCBzb21lIFJldHVybjogdG8gbWFrZSB0aGUgZG9jcyBtb3JlIGhhcHB5LgoKMjAwOS0wMy0xMiAwMDo0MToyNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgIGRvY3M6IGZpeCBsaW5raW5nIHRvIGNvbnN0YW50IGFuZCBmdW5jdGlvbnMKCjIwMDktMDMtMTEgMTU6MjA6MzYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGR1bXAyZG90OiBlbGxpcHNpemUgY2FwcyBmaWVsZHMsIGJldHRlciBwbGFjZW1lbnQgb2YgdW5uZWdvdGlhdGVkIGNhcHMKCSAgTG9uZyBjYXBzIGZpZWxkcyBsaWtlIGVudW1zIGFyZSBlbGxpcHNpc2VkLiBJZiBjYXBzIGFyZSBub3QgbmVnb3RpYXRlZCwgdXNlCgkgIGhlYWQtIGFuZCB0YWlsbGFiZWwgdG8gcGxhY2UgdGhlbSBjbG9zZXIgdG8gdGhlIHBhZHMuIFVzZSBzbWFydGVyIHdheSB0byBpbmRlbnQuCgoyMDA5LTAzLTExIDEwOjI3OjE2ICswMjAwICBMYXN6bG8gUGFuZHkgPGxhc3psb2syQGdtYWlsLmNvbT4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGR1bXAyZG90OiBtYWtlIGNhcHMgaW4gRE9UIGRlYnVnIGdyYXBocyBtb3JlIHJlYWRhYmxlLiBGaXhlcyA1NzQ0ODQKCSAgVXNlIGEgbW9ub3NwYWNlIGZvbnQgZm9yIGVkZ2UgbGFiZWxzIGFuZCBpbmRlbnQuCgoyMDA5LTAzLTExIDE0OjExOjMwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICBwYWR0ZW1wbGF0ZTogQWxsb3cgJXUgYXMgY29udmVyc2lvbiBtb2RpZmllciBhZGRpdGlvbmFsIHRvICVkIGFuZCAlcwoKMjAwOS0wMy0xMSAxMToyMzowNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBnc3RiYXNlc3JjOiB1bnNpZ25lZCBsb25nIGlzICIlbHUiLCBub3QgIiV1bCIuIEZpeGVzIGJ1aWxkIG9uIG1hY29zeAoKMjAwOS0wMy0xMCAyMTowODozNCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgbG9nZ2luZzogc29tZSBhZGRpdGlvbmFsIGxvZ2dpbmcgZm9yIHRyYWNpbmcgY2FwcyBuZWdvdGlhdGlvbi4KCSAgRGVtb3RlIG9uZSBsb2cgdGhhdCBjYW4gY29tZSBxdWl0ZSBvZnRlbi4gUmVtb3ZlIG9uZSBmaXhtZSB0aGF0IGlzIGRvbmUuIEFwcGx5CgkgIGdzdC1pbmRlbnQgY2hhbmdlcy4KCjIwMDktMDMtMTAgMjE6MDM6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RvYmplY3QuYzoKCSAgY29tbWVudDogYWRkIGEgZml4bWUtMC4xMQoKMjAwOS0wMy0xMCAyMTowMToyMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIGZvcm1hdHRpbmc6IHRhYnMgdG8gc3BhY2VzCgoyMDA5LTAzLTA5IDIzOjExOjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDcwMzIxNjMgdG8gZjhiM2Q5MQoKMjAwOS0wMy0wOSAyMDowNzoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZ3N0cmVhbWVyLnNwZWM6IGZpeCBzdHJheSBAR0xJQjJfUkVRQCB0aGF0IGRpZG4ndCBnZXQgZXhwYW5kZWQgcHJvcGVybHkKCjIwMDktMDMtMDkgMTY6MDk6MzggKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgZG9jczogcmV3b3JkIHN0dWZmIGFib3V0IGN1c3RvbSBtYWlubG9vcHMKCSAgRml4ZXMgIzU3NDIyOS4KCjIwMDktMDMtMDkgMTY6MDE6MjAgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGR1bXAyZG90OiBkb24ndCB1c2UgR1NUX1RJTUVfRk9STUFUIHdoZW4gYnVpbGRpbmcgZmlsZW5hbWVzLiBmaXhlcyAjNTc0NjIzCgoyMDA5LTAzLTA5IDExOjM5OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgcGFkOiBjYWxsIG5ldyBjYWxsYmFja3Mgc2V0IGluIHRoZSBibG9jayBjYWxsYmFjawoJICBLZWVwIHRyYWNrIG9mIHdoZW4gYSBuZXcgY2FsbGJhY2sgaXMgaW5zdGFsbGVkIGluIHRoZSBjYWxsYmFjayBhbmQgY2FsbCB0aGUgbmV3CgkgIGNhbGxiYWNrIGluIHRoYXQgY2FzZS4KCSAgQWRkIHVuaXQgdGVzdCBmb3IgY2hlY2tpbmcgcGFkIGJsb2NraW5nLgoJICBGaXhlcyAjNTczODIzLgoKMjAwOS0wMy0wOCAxNzoyMjo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB3aW4zMjogdXBkYXRlIGVudW10eXBlcyBhbmQgY29uZmlnLmgKCjIwMDktMDMtMDggMTc6MTU6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgZG9jczogaW1wcm92ZSBkb2NzIGZvciBnc3RfdGFnX2xpc3RfZ2V0X2RhdGUqKCkKCSAgTWVudGlvbiB0aGF0IHRoZSBkYXRlIHZhbHVlIG5lZWRzIHRvIGJlIGZyZWVkIGFuZCBob3cgdG8gZnJlZSBpdC4KCjIwMDktMDMtMDggMTI6MDI6MTUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSBmZmE3MzhkIHRvIDcwMzIxNjMKCjIwMDktMDMtMDggMTE6MTc6NTAgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSAzZjEzZTRlIHRvIGZmYTczOGQKCjIwMDktMDMtMDggMDA6Mjc6MjYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIGR1bXAyZG90OiBpbXByb3ZlIGNhcHMgbG9nZ2luZwoJICBGYWN0b3Igb3V0IGNvZGUgdG8gZGVzY3JpYmUgY2Fwcy4gSW1wcm92ZSBmb3JtYXRpbmcgKG5vIFxuIGluIGNhcHMgZmllbGRzKS4KCSAgQ2hlY2sgcGVlciBjYXBzIHRvbyBhbmQgc2hvdyBib3RoIGlmIHRoZXkgZGlmZmVyLgoKMjAwOS0wMy0wNyAxMTo0MzozMSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDNjNzQ1NmIgdG8gM2YxM2U0ZQoKMjAwOS0wMy0wNyAxMDo0MzozMiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDU3YzgzZjIgdG8gM2M3NDU2YgoKMjAwOS0wMy0wNiAyMjoxMDoxMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICBjb2xsZWN0cGFkczogcmV2ZXJ0IGFjY2lkZW50aWFsIGNvbW1pdCBmcm9tIHRoZSBxdWV1ZSAobWUgc2hvdWxkIHN0YXJ0IHVzaW5nIGJyYW5jaGVzKQoKMjAwOS0wMy0wNiAyMTo1OToyMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBhcGlkb2NzOiBtYXJrdXAgZXhhbXBsZSBhcyBoaWdobGlnaHRhYmxlIGV4YW1wbGUgYW5kIGNvcHkgc2FtZSBmb3Igc3RydWN0dXJlCgkgIHN0cnVjdHVyZXMgY2FuIGJlIHByaW50ZWQgbGlrZSB3ZSBjYW4gZG8gZm9yIGNhcHMuIE1hcmsgdGhlIGV4YW1wbGUgc28gdGhhdAoJICBndGstZG9jIGNhbiBwcmV0dHkgcHJpbnQgYW5kIHhyZWYgaXQuCgoyMDA5LTAzLTA0IDIxOjIxOjU2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIGNvbGxlY3RwYWRzOiByZWxpYWJseSBnbyB0byBlb3MuIEZpeGVzICM1NzQxNjAKCSAgVXBkYXRlIGNvbGxlY3RwYWRzIHN0YXR1cyB3aGVuIHJlbW92aW5nIHBhZHMuCgoyMDA5LTAzLTA2IDEyOjA4OjQyICswMTAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kZWNpbmFAY29sbGFib3JhLmNvLnVrPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBpZGVudGl0eTogaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgb2YgZ3N0X3BhZF9ldmVudF9kZWZhdWx0IHdoZW4gc2VuZGluZyBvdXQgdGhlIG5ld3NlZ21lbnQgZXZlbnQgaW4gc2luZ2xlLXNlZ21lbnQgbW9kZS4KCSAgVGhpcyBtYWtlcyBpZGVudGl0eSBzaW5nbGUtc2VnbWVudD10cnVlICEgb2dnbXV4IHdvcmsgYWdhaW4gYWZ0ZXIgYSBjaGFuZ2UgaW4KCSAgb2dnbXV4IChjb21taXQgYjBlM2Q0NDkgaW4gLWJhc2UpLgoKMjAwOS0wMy0wNSAxNzo0MjoyMiArMDEwMCAgQW5keSBXaW5nbyA8d2luZ29Ab2Jsb25nLm5ldD4KCgkgIGJhc2VzaW5rOiBwcm9wYWdhdGUgVVBTVFJFQU0gZXZlbnRzIGluIHB1bGwgbW9kZSB0b28KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCk6IFByb3BhZ2F0ZQoJICB1cHN0cmVhbSBldmVudHMgaW4gcHVsbCBtb2RlIHRvby4KCjIwMDktMDMtMDUgMTE6Mjk6NDggKzAxMDAgIEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIEdzdFBhZDogcmVsYXggZmFpbHVyZSB0byBkZWFjdGl2YXRlIHVubGlua2VkIHBhZHMKCSAgV2hlbiBkZS9hY3RpdmF0aW5nIGEgcGFkIGluIHB1bGwgbW9kZSB0aGUgcGFkIG5lZWRzIHRvIGRlL2FjdGl2YXRlIHRoZQoJICBwZWVyIHBhZCBpdCBpcyBjb25uZWN0ZWQgdG8sIGZhaWx1cmUgdG8gYmUgYWJsZSB0byBkbyB0aGlzIGluIGFjdGl2YXRpb24gbW9kZQoJICBpcyBhbiBlcnJvci4KCSAgSG93ZXZlciBpZiB0aGVyZSBpcyBubyBwZWVycGFkLCB3ZSBjYW4gc3RpbGwgZGVhY3RpdmF0ZSB0aGUgcGFkIGNvcnJlY3RseSBhbmQKCSAgYXNzdW1lIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGRlYWN0aXZhdGUgdGhlIHVubGlua2VkIHBlZXIgcGFkIGV2ZW50dWFsbHkuCgkgIEZpeGVzICM1NzQxNjMuCgoyMDA5LTAzLTA1IDExOjAyOjU5ICswMTAwICBMUk4gPGxybjE5ODYgYXQgZ21haWwgZG90IGNvbT4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIEdzdFBvbGw6IHNldCB0aGUgcmV0dXJuIHZhbHVlIG9uIHdpbmRvd3MKCSAgTWFrZSBzdXJlIHRoYXQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZnVuY3Rpb25zIF9yZWFkL193cml0ZV9jb250cm9sKCkKCSAgcmV0dXJuIHRoZSBhY3R1YWwgcmVzdWx0IGluc3RlYWQgb2YgYWx3YXlzIEZBTFNFIG9uIHdpbmRvd3MuCgkgIEZpeGVzICM1NzQyMTEuCgoyMDA5LTAzLTA0IDEwOjQ2OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLW5lZ290aWF0aW9uLnhtbDoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgcHdnOiB1cGRhdGUgZm9yIENWUy10by1naXQgbWlncmF0aW9uCgkgIEZpeGVzICM1NzM5NDYuCgoyMDA5LTAzLTA0IDA5OjIwOjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIEdzdEFkYXB0ZXI6IERpc2NhcmQgZW1wdHkgYnVmZmVycyBpbiBfcHVzaCgpLiBGaXhlcyAjNTc0MDI0CgoyMDA5LTAzLTAzIDIwOjAxOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIC5naXRpZ25vcmU6CgkgIFVwZGF0ZSAuZ2l0aWdub3JlCgoyMDA5LTAzLTAzIDE5OjU4OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgZ3N0LXVuaW5zdGFsbGVkOiBhZGQgYml0cyBmb3IgdW5pbnN0YWxsZWQgY2hlY2tvdXRzIG9mIGdzdC1vcGVubWF4IGFuZCB0b3RlbQoKMjAwOS0wMy0wMiAxNjoxNzo0NSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IEFkZCBnc3RfdXRpbF9hcnJheV9iaW5hcnlfc2VhcmNoKCkgZm9yIGJpbmFyeSBzZWFyY2hzIG9uIGEgc29ydGVkIGFycmF5CgkgIFRoaXMgd2lsbCBiZSBtb3N0bHkgdXNlZnVsIGluIGFsbCBlbGVtZW50cyB0aGF0IGhhdmUgc29tZSBraW5kIG9mIGludGVybmFsCgkgIHNlZWsvaW5kZXggdGFibGUuIEN1cnJlbnRseSBhbG1vc3QgYWxsIG9mIHRoZW0gKG9yIGV2ZW4gYWxsIG9mIHRoZW0pCgkgIGFyZSB1c2luZyBhIGxpbmVhciBzZWFyY2ggYWx0aG91Z2ggdGhlIHVzZWQgYXJyYXkgaXMgYWxyZWFkeSBzb3J0ZWQsCgkgIHdhc3Rpbmcgc29tZSBDUFUgdGltZSB3aXRob3V0IGdvb2QgcmVhc29uLgoJICBGaXhlcyBidWcgIzU3MzYyMy4KCjIwMDktMDItMjggMTE6MTU6MjkgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQnVtcCBnbGliIHJlcXVpcmVtZW50IHRvIDIuMTQKCSAgQWxzbyByZW1vdmUgY29kZSBjb25kaXRpb25hbCBvbiA8IDIuMTQuCgoyMDA5LTAyLTI4IDEzOjM0OjA4IC0wNTAwICBPbGl2aWVyIENyw6p0ZSA8b2xpdmllci5jcmV0ZUBjb2xsYWJvcmEuY28udWs+CgoJKiB3aW4zMi9NQU5JRkVTVDoKCSAgUmVtb3ZlIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbiBmcm9tIE1BTklGRVNULCBpdCBubyBsb25nZXIgZXhpc3RzCgoyMDA5LTAyLTI3IDEzOjM1OjM1ICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgIGNhcHNmaWx0ZXI6IFByb3Blcmx5IHJlc2V0IHRoZSBjYXBzZmlsdGVyIHdoZW4gc2V0dGluZyBjYXBzIEFOWS4KCjIwMDktMDItMjcgMTI6MzQ6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJICBkZXNpZ246IHVwZGF0ZSB0aGUgZnJhbWVzdGVwIGRyYWZ0CgkgIFVwZGF0ZSB0aGUgZG9jcyBhIGxpdHRsZS4KCSAgQWRkIHByb3BlcnR5IHRvIGFsbG93IGluY3JlbWVudGFsIHN0ZXBwaW5nIHNvIHRoYXQgd2UgY2FuIHJlZHVjZSBleGNlc3NpdmUKCSAgcXVldWVpbmcuCgoyMDA5LTAyLTI2IDE1OjQwOjI2ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGJhc2VzaW5rOiBtb3ZlIGxlZnQgb3ZlciBoYW5kbGluZyBvZiB0aGUgZXJyb3IgY2FzZSB0byB0aGUgYWN0aXZhdGVfZmFpbGVkIGxhYmVsLgoJICBJZiB3YXMgbGVmdCBhcyBkZWFkIGNvZGUuCgoyMDA5LTAyLTI1IDE5OjU5OjU3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgYnVpbGQ6IFVwZGF0ZSBzaGF2ZSBpbml0IHN0YXRlbWVudCBmb3IgY2hhbmdlcyBpbiBjb21tb24uIEJ1bXAgY29tbW9uLgoKMjAwOS0wMi0yNSAxMDo1MTo1NyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIGJpbmFyeSByZWdpc3RyeTogRG9uJ3QgYXR0ZW1wdCB0byBwYXJzZSBlbXB0eSBjYXBzCgoyMDA5LTAyLTI1IDE0OjE5OjA4ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICByZWdpc3RyeTogU2V0IHR5cGVmaW5kIGZhY3RvcnkgY2FwcyB0byBOVUxMIGluc3RlYWQgb2YgZW1wdHkgY2FwcyBpZiB0aGV5IG9yaWdpbmFsbHkgd2VyZSBOVUxMCgoyMDA5LTAyLTI1IDExOjMxOjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb21tb246CgkgIEF1dG9tYXRpYyB1cGRhdGUgb2YgY29tbW9uIHN1Ym1vZHVsZQoJICBGcm9tIDljZjhjOWIgdG8gYTZjZTVjNgoKMjAwOS0wMi0yNCAxNToxMDoxNSArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgcmVnaXN0cnliaW5hcnk6IENoZWNrIGlmIHR5cGVmaW5kIGZhY3RvcnkgY2FwcyBhcmUgTlVMTCBiZWZvcmUgY29weWluZyB0aGVtCgoyMDA5LTAyLTI0IDExOjQwOjE0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmVtb3ZlIHVuZGVjbGFyZWQgc3ltYm9scyBmcm9tIGRvY3MKCSAgUmVtb3ZlIHNvbWUgdW5kZWNsYXJlZCBzeW1ib2xzIGZyb20gdGhlIGRvY3MuCgoyMDA5LTAyLTIzIDEzOjAxOjExIC0wODAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgQ2hhbmdlIGhvdyB3aW4zMi9jb21tb24vY29uZmlnLmggaXMgdXBkYXRlZAoJICBHZW5lcmF0ZSB3aW4zMi9jb21tb24vY29uZmlnLmgtbmV3IGRpcmVjdGx5IGZyb20gY29uZmlnLmguaW4sCgkgIHVzaW5nIHNoZWxsIHZhcmlhYmxlcyBpbiBjb25maWd1cmUgYW5kIHNvbWUgaGFyZC1jb2RlZCBpbmZvcm1hdGlvbi4KCSAgQ2hhbmdlIHRvcC1sZXZlbCBtYWtlZmlsZSBzbyB0aGF0ICdtYWtlIHdpbjMyLXVwZGF0ZScgY29waWVzIHRoZQoJICBnZW5lcmF0ZWQgZmlsZSB0byB3aW4zMi9jb21tb24vY29uZmlnLmgsIHdoaWNoIHdlIGtlZXAgaW4gc291cmNlCgkgIGNvbnRyb2wuICBJdCdzIGtlcHQgaW4gc291cmNlIGNvbnRyb2wgc28gdGhhdCB0aGUgZ2l0IHRyZWUgaXMKCSAgYnVpbGRhYmxlIGZyb20gVlMuCgoyMDA5LTAyLTIzIDEwOjUyOjE0IC0wODAwICBEYXZpZCBGbHlubiA8ZGF2aWRmQHJkLmJiYy5jby51az4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sbGVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkgIEFkZCBzcmNkaXIgdG8gaW5jbHVkZXMgZm9yIG91dC1vZi1zb3VyY2UgYnVpbGRzCgkgIFdoZW4geW91IHVzZSBnc3RyZWFtZXIgdW5pbnN0YWxsZWQgYW5kIGJ1aWxkIG91dHNpZGUKCSAgdGhlIHNvdXJjZSB0cmVlLCB0aGUgaW5jbHVkZXMgbmVlZCB0byBiZSBzcGVjaWZpZWQgZm9yCgkgIGJvdGggdGhlIHNvdXJjZSB0cmVlIGFuZCB0aGUgYnVpbGQgdHJlZS4KCSAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoyMDA5LTAyLTIzIDE3OjM2OjIzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIEVycm9yIG91dCBtb3JlIHNwZWNpZmljYWxseSBvbiBlbXB0eSBjYXBzCgkgIFdoZW4gd2UgZ2V0IGVtcHR5IGNhcHMgZnJvbSB0aGUgZ2V0Y2FwcyBmdW5jdGlvbiBpbiB0aGUgZGVmYXVsdCBuZWdvdGlhdGUKCSAgZnVuY3Rpb24sIHBvc3QgYSBtb3JlIGRlc2NyaXB0aXZlIGVycm9yLgoKMjAwOS0wMi0yMyAxNToyNDowMCArMDEwMCAgQW5keSBXaW5nbyA8d2luZ29Ab2Jsb25nLm5ldD4KCgkgIGZpeCB1cmkgaGFuZGxlciBpdGVyYXRpb24gaW4gZ3N0LWluc3BlY3QKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9hbGxfdXJpX2hhbmRsZXJzKTogV2hvb3BzLCBmaXggaXRlcmF0aW9uLgoJICBJJ20gc3R1cGlkLgoKMjAwOS0wMi0yMyAxMjozMzoxMyArMDEwMCAgTFJOIDxscm4xOTg2IGF0IGdtYWlsIGRvdCBjb20+CgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIEZpeCBzaWduZWQgd2hlbiBjb21waWxpbmcgd2l0aCBNU3lzL01pbkdXCgkgIGZpeCBzaWduZWQgaXNzdWVzIHdoZW4gY29tcGlsaW5nIHdpdGggTVN5cy9NaW5HVy4KCSAgRml4ZXMgIzU3MjU5MS4KCjIwMDktMDItMjMgMTA6NTM6MTcgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIERvbid0IGZvcndhcmQgTEFURU5DWSBldmVudCB3aGVuIG5vdCByZWFkeQoJICBXaGVuIHdlIGFyZSBub3QgcmVhZHkgdG8gaGFuZGxlIGEgbGF0ZW5jeSBxdWVyeSAod2UgYXJlIG5vdCB5ZXQgcHJlcm9sbGVkKSB3ZQoJICBhbHNvIGRvbid0IHRyeSB0byBmb3J3YXJkIHRoZSBsYXRlbmN5IGV2ZW50IGJlY2F1c2UgdGhhdCBtaWdodCBjYXVzZSB1bmV4cGVjdGVkCgkgIGVycm9ycyB3aGVuIHVwc3RyZWFtIGlzIG5vdCB5ZXQgbGlua2VkLgoKMjAwOS0wMi0yMiAyMjowOTozOSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIHRlc3RzL2NoZWNrL2NvcmU6CgkgIFJlbW92ZSBjb3JlIGZpbGUgZnJvbSBwcmV2aW91cyBjb21taXQKCjIwMDktMDItMjIgMjA6MDE6MDUgKzAxMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIHRlc3RzL2NoZWNrL2NvcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEdzdFBhZDogQWRkIGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmNfZnVsbAoJICBUaGlzIGFsbG93cyBjb25uZWN0aW5nIGEgR0Rlc3Ryb3lOb3RpZnkgZm9yIHdoZW4gdGhlIGNhbGxiYWNrIGlzIHJlbW92ZWQvcmVwbGFjZWQuCgkgIFBhcnRpYWxseSBmaXhlcyAjNTE0NzE3CgoyMDA5LTAyLTIyIDE5OjA1OjIwICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3R1dGlscy5oOgoJICBJbmNsdWRlIGZsb2F0aW5nIHBvaW50IHdyaXRlL3JlYWQgZnVuY3Rpb25zIGluIHRoZSBkb2NzIGJ5IHdvcmtpbmcgYXJvdW5kIGEgZ3RrLWRvYyBidWcKCjIwMDktMDItMjIgMTg6NTM6MTAgKzAxMDAgIEFsaSBTYWJpbCA8YWxpLnNhYmlsQGdtYWlsLmNvbT4KCgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgVXNlIHRoZSBjb3JyZWN0IHVucmVmIGZ1bmN0aW9uCgoyMDA5LTAyLTIyIDE4OjUxOjA4ICswMTAwICBBbGkgU2FiaWwgPGFsaS5zYWJpbEBnbWFpbC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSAgQ29udmVydCB1bnJlZi9jb3B5IGZ1bmN0aW9ucyBvZiBHc3RNaW5pT2JqZWN0IHN1YmNsYXNzZXMgdG8gc3RhdGljIGlubGluZSBmdW5jdGlvbnMKCSAgdW5yZWYgYW5kIGNvcHkgZnVuY3Rpb25zIGFyZSBzb21ldGltZXMgdXNlZCBhcyBmdW5jdGlvbgoJICBwb2ludGVycyBmb3IgZXhhbXBsZSBpbiB0aGUgY2FzZSBvZiBnX2hhc2hfdGFibGVfbmV3X2Z1bGwKCSAgYXMgYSBHRGVzdHJveU5vdGlmeSBmdW5jdGlvbi4KCSAgQ3VycmVudGx5IEdzdEJ1ZmZlciwgR3N0RXZlbnQsIEdzdE1lc3NhZ2UgYW5kIEdzdFF1ZXJ5CgkgIGRlZmluZSB0aGVpciByZXNwZWN0aXZlIHVucmVmIGFuZCBjb3B5IGZ1bmN0aW9ucyBhcwoJICBtYWNyb3MsIG1ha2luZyB1c2Ugb2YgZ3N0X21pbmlfb2JqZWN0X3VucmVmL2NvcHkuCgkgIFRoaXMgYXBwcm9hY2ggd29ya3MgdmVyeSB3ZWxsIGZvciBtb3N0IGNhc2VzLCBleGNlcHQKCSAgZm9yIHNvbWUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYmluZGluZ3MgKGN1cnJlbnRseSBWYWxhKSwKCSAgd2hlcmUgdGhlIG1lbW9yeSBtYW5hZ2VtZW50IHNlbWFudGljcyBhcmUgZGVmaW5lZAoJICBkZWNsYXJhdGl2ZWx5LgoJICBUaGUgcG9zc2libGUgc29sdXRpb25zIHdvdWxkIGJlIHRvIGVpdGhlciBjb252ZXJ0IGFsbAoJICB0aGUgbWFjcm9zIGludG8gc3RhdGljIGlubGluZSBmdW5jdGlvbiwgb3IgY2hhbmdlIHRoZQoJICBzaWduYXR1cmUgb2YgZ3N0X21pbmlfb2JqZWN0X3VucmVmIHRvIHRha2UgYSB2b2lkKgoJICBpbnN0ZWFkIG9mIGEgR3N0TWluaU9iamVjdCouCgkgIEZpeGVzIGJ1ZyAjNTcyNDgwLgoKMjAwOS0wMi0yMiAxNToyMjoxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvTWFrZWZpbGUuYW06CgkgIFVzZSBzaGF2ZSAoaHR0cDovL2dpdC5sZXNwaWF1Lm5hbWUvY2dpdC9zaGF2ZS8pIHRvIHNpbXBsaWZ5IGJ1aWxkIG91dHB1dAoKMjAwOS0wMi0yMiAxNTo0NDozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA1ZDdjOWNjIHRvIDljZjhjOWIKCjIwMDktMDItMjEgMTE6MTM6MzAgLTA4MDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSogY29tbW9uOgoJICBBdXRvbWF0aWMgdXBkYXRlIG9mIGNvbW1vbiBzdWJtb2R1bGUKCSAgRnJvbSA4MGM2MjdkIHRvIDVkN2M5Y2MKCjIwMDktMDItMTkgMTg6MDU6MDcgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEdzdEJ1ZmZlckZsYWdzOiBBZGQgIlNpbmNlOiAwLjEwLjIzIiBmb3IgdGhlIG5ld2x5IGFkZGVkIGZsYWdzCgoyMDA5LTAyLTE5IDE2OjA0OjQzICswMTAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJICBHc3RCdWZmZXJGbGFnczogQWRkIDMgbmV3IG1lZGlhLXNwZWNpZmljIGJ1ZmZlciBmbGFncy4KCSAgUGFydGlhbGx5IGZpeGVzICMxNjM1NzcKCjIwMDktMDItMTkgMTI6NTc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICB0b29sczogcHJpbnQgbm9ybWFsIG91dHB1dCB0byBzdGRvdXQsIGFuZCBvbmx5IGVycm9ycyBhbmQgd2FybmluZ3MgdG8gc3RkZXJyIGluIGdzdC1sYXVuY2gKCSAgTGV0J3Mgbm90IHByaW50IGV2ZXJ5dGhpbmcgdG8gc3RkZXJyLiBTdXBwcmVzcyBzb21lIG1vcmUgJ25vcm1hbCcgbWVzc2FnZXMgd2hlbiAtLXF1aWV0IHdhcyBwYXNzZWQuCgoyMDA5LTAyLTE5IDEyOjQ1OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgdG9vbHM6IHVzZSBnX3ByaW50KigpIGluc3RlYWQgb2YgKnByaW50ZigpIGluIGdzdC1sYXVuY2gKCSAgV2Ugc2hvdWxkIHVzZSBHTGliJ3MgZ19wcmludCooKSBmdW5jdGlvbnMgZm9yIHByaW50aW5nIHN0dWZmIGluIGdzdC1sYXVuY2gsIG5vdCBwcmludGYgYW5kIGZyaWVuZHMsIHNpbmNlIHdlJ3JlIHByaW50aW5nCgkgIHRyYW5zbGF0ZWQgc3RyaW5ncywgd2hpY2ggd2UgZ2V0IGluIFVURi04IGVuY29kaW5nLCBhbmQgR0xpYidzIHByaW50IGZ1bmN0aW9ucyBleHBlY3QgVVRGLTggZW5jb2RlZCBzdHJpbmdzIHdoZXJlYXMgcHJpbnRmCgkgIGV0IGFsLiBleHBlY3Qgc3RyaW5ncyBpbiB0aGUgbG9jYWxlIGVuY29kaW5nLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSBVVEYtOC4KCSAgQWxzbyBhZGQgYSBQUklOVCBjb252ZW5pZW5jZSBtYWNybyBzbyB3ZSBkb24ndCBoYXZlIHRvIGxpdHRlciB0aGUgY29kZSB3aXRoIGlmICghcXVpZXQpIHN0YXRlbWVudHMuCgoyMDA5LTAyLTE5IDExOjE4OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSogZG9jcy9yYW5kb20vbWltZXR5cGVzOgoJICBkb2NzOiBmaXggY29uc3RhbnRzIGZvciBHX0xJVFRMRV9FTkRJQU4gYW5kIEdfQklHX0VORElBTgoJICBXZSBnb3QgdGhlIGNvbnN0YW50cyBmb3IgR19MSVRUTEVfRU5ESUFOIGFuZCBHX0JJR19FTkRJQU4gdGhlIHdyb25nIHdheSBhcm91bmQgaW4gc29tZSBkb2NzIChmaXhlczogIzU3MjM5MikuIEFsc28gbWVudGlvbgoJICBHX0JZVEVfT1JERVIgaW4gdGhlIGF1ZGlvIHR5cGVzIHNlY3Rpb24uCgoyMDA5LTAyLTE5IDEwOjI1OjM0ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyB0byBkZWYgZmlsZXMKCSAgQWRkIHRoZSBuZXcgcmVxdWVzdF9tZXNzYWdlIHN5bWJvbHMgdG8gdGhlIHdpbmRvd3MgZGVmIGZpbGUuCgoyMDA5LTAyLTE4IDE1OjMxOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RtZXNzYWdlLmM6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWRkIG1lc3NhZ2UgdG8gcmVxdWVzdCBhIHN0YXRlIGNoYW5nZQoJICBBZGQgYSBHU1RfTUVTU0FHRV9SRVFVRVNUX1NUQVRFIHRoYXQgY2FuIGJlIHBvc3RlZCBieSBlbGVtZW50IHdoZW4gdGhleSB3b3VsZAoJICBsaWtlIHRvIGhhdmUgdGhlIGFwcGxpY2F0aW9uIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIHBpcGVsaW5lLiB0aGUgcHJpbWFyeSB1c2UKCSAgY2FzZSBpcyB0byBwYXVzZSB0aGUgcGlwZWxpbmUgd2hlbiBhbiBhdWRpbyBtaXhlciBpcyBtaXhpbmcgYSBoaWdoZXIgcHJpb3JpdHkKCSAgc3RyZWFtIGJ1dCBpdCBjYW4gYWxzbyBiZSB1c2VkIGZvciBvdGhlciBwdXJwb3Nlcy4KCSAgQWRkIHNvbWUgZG9jcyBhbmQgYSB1bml0IHRlc3QuCgkgIEltcGxlbWVudCB0aGUgUkVRVUVTVF9TVEFURSBtZXNzYWdlIGluIGdzdC1sYXVuY2guCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X3JlcXVlc3Rfc3RhdGUoKQoJICBBUEk6IGdzdF9tZXNzYWdlX3BhcnNlX3JlcXVlc3Rfc3RhdGUoKQoJICBBUEk6IEdTVF9NRVNTQUdFX1JFUVVFU1RfU1RBVEUKCjIwMDktMDItMTYgMTI6NTg6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIENsZWFyIHRhcmdldCB3aGVuIHRoZSB0YXJnZXQgcGFkIGRpc2FwcGVhcnMKCSAgV2hlbiB0aGUgdGFyZ2V0IHBhZCBkaXNhcHBlYXJzIChiZWNhdXNlIGl0IHdhcyBleHBsaWNpdGx5IHVubGlua2VkIG9yIHRoZQoJICBlbGVtZW50IHdhcyByZW1vdmVkL3VucmVmZmVkKSBtYWtlIHN1cmUgd2UgcmVjZWl2ZSBhIG5vdGlmeSB3aXRoIHRoZSB1bmxpbmsKCSAgZnVuY3Rpb24gb24gdGhlIHByb3h5IHBhZCBhbmQgY2xlYXIgdGhlIHRhcmdldC4gV2UgdXNlIGEgc2ltcGxlIGZsYWcgdG8gbm90IGRvCgkgIHRoaXMgYW5kIGNhdXNlIGRlYWRsb2NrcyB3aGVuIHRoZSB0YXJnZXQgd2FzIGNoYW5nZWQgZXhwbGljaXRseSB1c2luZyB0aGUKCSAgZ2hvc3RwYWQgZnVuY3Rpb25zLgoJICBVcGRhdGUgdGhlIHVuaXQgdGVzdCBiZWNhdXNlIHdlIG5vdyB1bnJlZiB0aGUgdGFyZ2V0IHNvb25lciAoYW5kIGNvcnJlY3RseSkuCgoyMDA5LTAyLTE1IDE2OjM3OjE3ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZG9jczogZm9ybWF0IGFuZCBpbmRlbnQgZXhhbXBsZXMuCgoyMDA5LTAyLTA5IDIyOjQ5OjA1ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgZ3N0LWxhdW5jaDogYWRkIC1xLy0tcXVpZXQgb3B0aW9uIHRvIHN1cHJlc3MgYW55IG5vbiBlcnJvciBvdXRwdXQuCgkgIEhhdmluZyBubyBvdXRwdXQgaXMgbmljZSBmb3Igc2NyaXB0aW5nLiBBbHNvIHVwZGF0ZSB0aGUgbWFucGFnZS4KCjIwMDktMDItMTQgMTM6MzU6NDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9mYXEvY3ZzLnhtbDoKCSogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkqIGRvY3MvZmFxL2ZhcS54bWw6CgkqIGRvY3MvZmFxL2dldHRpbmcueG1sOgoJKiBkb2NzL2ZhcS9naXQueG1sOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGRvY3MvZmFxL3N0YXJ0LnhtbDoKCSogZG9jcy9mYXEvdHJvdWJsZXNob290aW5nLnhtbDoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBGQVE6IHVwZGF0ZSBmb3IgZ2l0IGFuZCBtaXNjZWxsYW5lb3VzIHNtYWxsIGZpeGVzIGFuZCBhZGRpdGlvbnMKCSAgUmVwbGFjZSBhbGwgbWVudGlvbnMgb2YgQ1ZTIHdpdGggZ2l0LiBBZGQgbGluayB0byBnc3QtdW5pbnN0YWxsZWQgc2NyaXB0IGluIGNnaXQgYW5kIHRvIFN1Ym1pdHRpbmdQYXRjaGVzIHBhZ2UgaW4gd2lraS4gRml4IHNvbWUgdHlwb3MuIFVwZGF0ZSBpbmRlbnRpbmcgcnVsZXMgdG8gd2hhdCB3ZSBhY3R1YWxseSB1c2UgKCM1NzE2NDYpLgoKMjAwOS0wMi0xMyAxNjoxNzowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JlLnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kYS5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9lcy5wbzoKCSogcG8vZmkucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9odS5wbzoKCSogcG8vaWQucG86CgkqIHBvL2l0LnBvOgoJKiBwby9qYS5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcHRfQlIucG86CgkqIHBvL3J1LnBvOgoJKiBwby9ydy5wbzoKCSogcG8vc2sucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgcG86IHVwZGF0ZSAqLnBvIGZpbGVzIGZvciBuZXdseS1hZGRlZCB0cmFuc2xhdGFibGUgc3RyaW5ncwoJICBUaGUgb25seSBwZW9wbGUgd2hvIHNob3VsZCBnZXQgY29uZmxpY3RzIG5vdyBhcmUgcGVvcGxlIHdobyBoYXZlIGNsb25lZCBhbmQgYnVpbHQgZ3N0cmVhbWVyIGJldHdlZW4gdGhlIHRpbWUgdGhvc2Ugc3RyaW5ncwoJICB3ZXJlIGFkZGVkIGFuZCB0aGlzIGNvbW1pdC4KCjIwMDktMDItMTIgMTA6Mzg6MDUgKzAxMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNlYmFzdGlhbi5kcm9lZ2VAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHRhZ2xpc3QuYzoKCSogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgdGFnbGlzdDogQVBJOiBBZGQgSE9NRVBBR0UgdGFnCgkgIFRoaXMgdGFnIHdpbGwgbGlzdCBhIGhvbWVwYWdlIGZvciB0aGUgbWVkaWEsCgkgIGkuZS4gdGhlIGFydGlzdCdzIG9yIG1vdmllJ3MgaG9tZXBhZ2UuCgkgIFRoaXMgaXMgZGlmZmVyZW50IHRvIEdTVF9UQUdfTE9DQVRJT04gYXMgdGhlIGxhdHRlcgoJICBsaXN0cyB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlIG1lZGlhLgoJICBGaXhlcyBidWcgIzU3MTIyNy4KCjIwMDktMDItMDkgMTI6MDA6NDMgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBjb21tb246CgkgIEJ1bXAgcmV2aXNpb24gdG8gdXNlIGZvciBjb21tb24gc3VibW9kdWxlLgoKMjAwOS0wMi0wOCAxMDoyODoxNiArMDEwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2ViYXN0aWFuLmRyb2VnZUBjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3R2ZXJzaW9uLmguaW46CgkgIFJlcGxhY2Ugc29tZSBtZW50aW9ucyBvZiBDVlMgYnkgR0lUCgoyMDA5LTAyLTA2IDEwOjUxOjI4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5IHJlZ2lzdHJ5OiBSZXdyaXRlIHNhbml0eSBjaGVjayB0byBhY3R1YWx5IGNhdGNoIHNvbWV0aGluZy4KCSAgVGhlIHByZXZpb3VzIGNvbW1pdCB3YXMgYm9ndXMsIGFzIHdhcyB0aGUgY2hlY2sgYmVmb3JlLiBXZSBqdXN0IHBvaW50IG0gdG8gdGhlIGZpbGUgZGF0YSwKCSAgc28gbmVpdGhlciBpdCBub3IgaXRzIG1lbWJlcnMgd2lsbCBiZSBOVUxMLiBCZXR0ZXIgY2hlY2sgaWYgd2UgaGF2ZSBlbm91Z2ggZGF0YS4KCjIwMDktMDItMDUgMjM6MTE6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogcG8vTWFrZXZhcnM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBwbzogYXZvaWQgY29uZmxpY3RzIG9mIGxvY2FsICoucG8gZmlsZXMgd2l0aCBmaWxlcyBpbiBnaXQKCSAgTWFrZSBpdCBzbyB0aGF0IGZpbGVuYW1lcyBhbmQgbGluZSBudW1iZXJzIGFyZSBvbmx5IHN0b3JlZCBpbiB0aGUgKi5wb3QgZmlsZSAod2hpY2ggaXMgbm90IGluIGdpdCksIGJ1dCBub3QgaW4gdGhlCgkgIGluZGl2aWR1YWwgKi5wbyBmaWxlcy4gVGhpcyBpbmZvcm1hdGlvbiBpcyBoYXJkbHkgdXNlZnVsIGZvciB0cmFuc2xhdG9ycyBpbiBvdXIgY2FzZSwgYW5kIGl0IHNob3VsZCBhdm9pZCB0aGUgY29uc3RhbnQKCSAgY29uZmxpY3RzIG9mIGxvY2FsICoucG8gZmlsZXMgd2l0aCB0aGUgb25lcyBpbiBnaXQgd2hpY2ggYXJlIGNhdXNlZCBieSB0aGUgc291cmNlIGZpbGVzIGNoYW5naW5nIGFuZCB0aGUgbGluZSBudW1iZXJzCgkgIGJlaW5nIHVwZGF0ZWQuCgkgIFRoaXMgY29tbWl0IGlzIGxpa2VseSB0byBjYXVzZSBvbmUgbGFzdCBtZXJnZSBjb25mbGljdCBmb3IgeW91LCB3aGljaCB5b3UgY2FuIHdvcmsgYXJvdW5kIHdpdGggImdpdCBjaGVja291dCBwby8qLnBvIgoJICBiZWZvcmUgbWVyZ2luZyBvciBwdWxsaW5nLiBBZnRlciB0aGF0IHRoZXJlIHNob3VsZCAoaG9wZWZ1bGx5KSBub3QgYmUgYW55IG1vcmUgbG9jYWwgbW9kaWZpY2F0aW9ucyBvZiB0aGVzZSBmaWxlcy4KCjIwMDktMDItMDUgMTU6MjI6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHdpbjMyOiBhZGQgbmV3IEdzdFBvbGwgQVBJIHRvIGxpYmdzdHJlYW1lci5kZWYKCjIwMDktMDItMDUgMTc6MjM6NDQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RjbG9jay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBjbGVhbnVwOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBpbiBfY2xhc3NfaW5pdCgpIGFuZCByZWluZGVudC4KCjIwMDktMDItMDUgMTc6MDU6NTYgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RidXMuYzoKCSAgYnVzOiByZW1vdmUgdW51c2VkIHNldC9nZXQgcHJvcGVydHkgZnVuY3Rpb25zCgoyMDA5LTAyLTA1IDE1OjU2OjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgYmluYXJ5IHJlZ2lzdHJ5OiBjb21wYXJpbmcgYXJyYXlzIGFnYWluc3QgTlVMTCBpcyB1c2VsZXNzCgoyMDA5LTAyLTA1IDEzOjU5OjQ4ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHF1ZXVlOiByZW1vdmUgdW51c2VkIGNvZGUKCSAgU2tpcCBsb29waW5nIHRocnUgYSBkdW1teSBpbXBsZW1lbnRhdGlvbi4KCjIwMDktMDItMDUgMTM6NTc6MDUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICB0ZXN0czogR3N0Q2xvY2tUaW1lIGlzIGFsd2F5cyA+PSAwCgoyMDA5LTAyLTA1IDEzOjQyOjMwICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBjb250cm9sbGVyOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDA5LTAyLTA0IDE3OjIwOjIxICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgY2xlYW51cDogRWl0aGVyIGNoZWNrIGFsd2F5cyBmb3IgaW50ZXJuYWwgYmVpbmcgTlVMTCBvciBkb24ndC4KCSAgSU1ITyB0aGUgZ2hvc3RwYWQgaXMgYm9ya2VkIGlmIGludGVybmFsIGlzIE5VTEwuIFNvIHRoZSBjaGVjayBjYW4gZ28gYW5kIGl0IGlzCgkgIHVzZWQgbGF0ZXIgdW5jaGVja2VkIGFueXdheS4KCjIwMDktMDItMDQgMTY6MjY6MjMgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIGNyYXNoOiBEb24ndCBjcmFzaCBvbiBub24gZXhpc3RlbnQgdGFncy4KCjIwMDktMDItMDQgMTY6MTc6MzQgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBsZWFrOiBEb24ndCBsZWFrIHR5cGUgbmFtZSBpbiBmYWlsdXJlIGNhc2VzLgoKMjAwOS0wMi0wNCAxNjowNzozMCArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgY2hlY2s6IERvbid0IGFzc3VtZSBnc3RfcGFkX2dldF9wZWVyIHJldHVybnMgbm9uIE5VTEwgdmFsdWUuCgoyMDA5LTAyLTA0IDE1OjQxOjI0ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgbGVhazogZG9uJ3QgcmV0dXJuIHdpdGhvdXQgY2FsbGluZyB2YV9lbmQKCjIwMDktMDItMDMgMTg6MDQ6NDYgKzAxMDAgIEpvbmFzIEhvbG1iZXJnIDxqb25hcy5ob2xtYmVyZ0BheGlzLmNvbT4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIEltcGxlbWVudCB0aGUgc3lzdGVtY2xvY2sgd2l0aCBnc3Rwb2xsCgkgIEFkZCBhIHByb3BlcnR5IHRvIHNlbGVjdCB0aGUgY2xvY2sgdHlwZSwgY3VycmVudGx5IFJFQUxUSU1FIGFuZCBNT05PVE9OSUMgd2hlbgoJICBwb3NpeCB0aW1lcnMgYXJlIGF2YWlsYWJsZS4KCSAgSW1wbGVtZW50IHRoZSBzeXN0ZW1jbG9jayB3aXRoIEdzdFBvbGwgaW5zdGVhZCBvZiBHQ29uZC4gVGhpcyBhbGxvd3MgdXMgdG8KCSAgc2NoZWR1bGUgdGltZW91dHMgd2l0aCBuYW5vc2Vjb25kIHByZWNpc3Npb24gb24gbmV3ZXIga2VybmVscyBhbmQgd2l0aCBwcG9sbAoJICBzdXBwb3J0LiBJdCdzIGFsc28gcmVzaWxpZW50IHRvIGNoYW5nZXMgdG8gdGhlIHN5c3RlbWNsb2NrIGJlY2F1c2Ugb2YgTlRQIG9yCgkgIHNpbWlsYXIuCgoyMDA5LTAyLTAzIDE3OjQ5OjAyICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHBvbGwuYzoKCSogZ3N0L2dzdHBvbGwuaDoKCSAgR3N0UG9sbDogYWRkIG1ldGhvZHMgdG8gdXNlIGdzdHBvbGwgZm9yIHRpbWVvdXRzCgkgIEFkZCBhIHNwZWNpYWwgdGltZXIgbW9kZSBpbiBHc3RQb2xsIHRoYXQgbWFrZXMgaXQgb25seSB1c2UgdGhlIGNvbnRyb2wgc29ja2V0CgkgIHdpdGggYSB0aW1lb3V0IHRvIHNjaGVkdWxlIHRpbWVvdXRzLiBBbHNvIGFkZCBhIHBhaXIgb2YgbWV0aG9kcyB0byB3YWtldXAgdGhlCgkgIHRpbWVvdXQgdGhyZWFkLgoJICBBUEk6IEdzdFBvbGw6OmdzdF9wb2xsX25ld190aW1lcigpCgkgIEFQSTogR3N0UG9sbDo6Z3N0X3BvbGxfd3JpdGVfY29udHJvbCgpCgkgIEFQSTogR3N0UG9sbDo6Z3N0X3BvbGxfcmVhZF9jb250cm9sKCkKCjIwMDktMDItMDMgMTU6Mjc6MzQgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIEdzdEJhc2VTaW5rOiB1c2UgbmV3IHZhcmlhYmxlIHRvIHNjaGVkdWxlIHByZXJvbGwKCSAgVXNlIGEgc2VwYXJhdGUgdmFyaWFibGUgdG8ga2VlcCB0cmFjayBpZiB3ZSBuZWVkIHRvIGNhbGwgdGhlIHByZXJvbGwgbWV0aG9kCgkgIGluc3RlYWQgb2YgYWJ1c2luZyB0aGUgY29tbWl0ZWQgdmFyaWFibGUuCgoyMDA5LTAyLTAzIDEyOjUyOjQ5ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOgoJICBHc3RCYXNlU2luazogYXZvaWQgY2FsbGluZyBwcmVyb2xsIG11bHRpcGxlIHRpbWVzCgkgIEZpeCBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSBmaXggZm9yICM1Njc3MjUgaW4gY29tbWl0CgkgIDFjN2FiNGVkNGYxOWI2M2JhMDQ2YTZmMmZlN2QwOWE2YzE3MzU3YzUuIFdlIHNob3VsZCBvbmx5IGNhbGwgdGhlIHByZXJvbGwKCSAgZnVuY3Rpb24gb25jZSBuYW1lbHkgd2hlbiB3ZSBkaWQgbm90IHlldCBjb21taXQgdGhlIHN0YXRlIGNoYW5nZS4KCSAgQWRkIGEgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoYXQgd2UgY2FsbCB0aGUgcHJlcm9sbCBmdW5jdGlvbiB3aGVuIGludGVycnVwdGluZyB0aGUKCSAgY2xvY2tfd2FpdCAoc2VlICM1Njc3MjUpLgoJICBBZGQgYSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCB3ZSBvbmx5IGNhbGwgdGhlIHByZXJvbGwgZnVuY3Rpb24gb25jZS4KCjIwMDktMDEtMjkgMTM6MzA6NDUgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRm9yY2UgcmVjb25maWd1cmUgb2YgYmFzZXRyYW5zZm9ybSB0byByZWNoZWNrIGFsbG9jIHJlcXVlc3QKCSAgV2hpbGUgcmVjb25maWd1cmluZyBhIGJhc2V0cmFuc2Zvcm0gZWxlbWVudCB3ZSBuZWVkIGFsc28gdG8gcmVjaGVjawoJICB0aGUgYWxsb2MgcmVxdWVzdC4gQmVjYXVzZSBpdCdzIHBvc3NpYmxlIHRoYXQgZHVlIHRvIGNhcHMgY2hhbmdlcwoJICB0aGUgcHJveHlfYWxsb2Mgc3RhdGUgaXMgbm90IGNvcnJlY3QgYW55bW9yZS4KCSAgKFJlLWNvbW1pdCBhZnRlciBkaXNjdXNpb24gd2l0aCBXaW0gb24gSVJDKQoKMjAwOS0wMi0wMiAxNDoxOTo1NyArMDEwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgZ3N0cmVnaXN0cnliaW5hcnk6IE1ha2UgaXQgY29tcGlsZSB3aXRoIEdTVF9ESVNBQkxFX0dTVF9ERUJVRy4KCjIwMDktMDEtMzEgMjE6MzQ6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGRvY3MvLmdpdGlnbm9yZToKCSogZG9jcy9saWJzL3RtcGwvLmdpdGlnbm9yZToKCSogZG9jcy9wbHVnaW5zL3RtcGwvLmdpdGlnbm9yZToKCSAgcmVwbzogUmVhcnJhbmdlIGdpdGlnbm9yZXMgaW4gZG9jcyBzdWJkaXIKCSAgdG1wbCBkaXJlY3RvcmllcyBhcmUgcmVtb3ZlZCBieSBtYWtlIGNsZWFuLCB3aGljaCBkZWxldGVzIHRoZQoJICAuZ2l0aWdub3JlLiBVc2UgYSAuZ2l0aWdub3JlIGhpZ2hlciB1cCB0byBpZ25vcmUgdGhlIHRtcGwgZGlycyBpbnN0ZWFkLgoKMjAwOS0wMS0zMSAyMTozMjozNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJICBjaGVjazogRml4IGNvbW1lbnQgYWJvdXQgdGhlIHRpbWVvdXQgZm9yIGdlbmVyaWMgc3RyZXNzIHRlc3QuCgkgIFNldHRpbmcgdGhlIHRpbWVvdXQgdG8gMCBtYWtlcyBpdCBpbmZpbml0ZSwgc28gZml4IHRoZSBjb21tZW50CgkgIGFib3ZlIGFjY29yZGluZ2x5LgoKMjAwOS0wMS0zMSAyMTozMTo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6CgkgIGNoZWNrOiBJbmNyZWFzZSB0aW1lb3V0IGZvciB0aGUgdGVlIHRlc3QKCSAgVGhlIHRlZSBzdHJlc3MgdGVzdCBrZWVwcyB0aW1pbmcgb3V0IGZvciBtZSBvbiBvbmUgb2YgdGhlIHNsb3dlcgoJICBtYWNoaW5lcywgc28gaW5jcmVhc2UgdGhlIHRpbWVvdXQgdG8gMyBtaW5zLgoKMjAwOS0wMS0zMCAxNDo1NjowOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBVcGRhdGUgdGhlIHdpbjMyIGNvbmZpZy5oLmluIHRlbXBsYXRlIGZyb20gdGhlIG1haW4gY29uZmlnLmguaW4KCjIwMDktMDEtMzAgMjI6MTg6MTcgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgIEFkZCByZWxlYXNlaW5mbyB3aXRoIG9ubGluZSB1cmwuCgoyMDA5LTAxLTMwIDE4OjE3OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RpbnRlcmZhY2UuaDoKCSogZ3N0L2dzdHVyaS5oOgoJICBSZW1vdmUgYnJva2VuIGNsYXNzIHRvIGludGVyZmFjZSBjYXN0IG1hY3JvcyBmcm9tIEdzdFVyaUhhbmRsZXIgYW5kIEdzdEltcGxlbWVudHNJbnRlcmZhY2UgaGVhZGVycwoJICBSZW1vdmUgY2xhc3MtdG8taW50ZXJmYWNlLXN0cnVjdCBjYXN0IG1hY3JvcyB3aGljaCBkb24ndCB3b3JrLAoJICBkb24ndCBtYWtlIHNlbnNlLCBhbmQgaW4gc29tZSBjYXNlcyB3b3VsZG4ndCBldmVuIGNvbXBpbGUgaWYKCSAgdXNlZC4gUmVtb3ZhbCBzaG91bGQgYmUgb2sgc2VlaW5nIHRoYXQgY29kZSB3aGljaCB1c2VzIGFueSBvZgoJICB0aGVzZSBpcyBicm9rZW4gYW5kIGJvdW5kIHRvIGNyYXNoLiBGaXhlcyAjNTY1NjA3LgoJICBBUEk6IHJlbW92ZSBHU1RfSU1QTEVNRU5UU19JTlRFUkZBQ0VfQ0xBU1MKCSAgQVBJOiByZW1vdmUgR1NUX0lTX0lNUExFTUVOVFNfSU5URVJGQUNFX0NMQVNTCgkgIEFQSTogcmVtb3ZlIEdTVF9VUklfSEFORExFUl9DTEFTUwoKMjAwOS0wMS0zMCAxNjoyODoxNCArMDAwMCAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgoJKiBkb2NzL2dzdC90bXBsLy5naXRpZ25vcmU6CgkgIFJlbW92ZSBnaXRpZ25vcmUgaW4gZG9jcy9nc3QvdG1wbC4KCSAgVGhpcyBnaXRpZ25vcmUgZmlsZSBzZWVtcyB0byBnZXQgZGVsZXRlZCBieSB0aGUgYnVpbGQsIGFuZCBkb2Vzbid0CgkgIHNlZW0gdG8gYmUgZG9pbmcgYW55dGhpbmcgdXNlZnVsIGFueXdheS4KCjIwMDktMDEtMzAgMTY6MjE6NTUgKzAwMDAgIEphbiBTY2htaWR0IDxqYW4uc2NobWlkdEBzdW4uY29tPgoKCSogY29tbW9uOgoJICBCdW1wIGNvbW1vbgoKMjAwOS0wMS0zMCAxNDo1OTowNyArMDAwMCAgSmFuIFNjaG1pZHQgLSBTdW4gTWljcm9zeXN0ZW1zIC0gRHVibGluIElyZWxhbmQgPGpzMjEyNDE5QGZsYWlsLihub25lKT4KCgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJICBGaXggY29tcGlsYXRpb24gd2FybmluZyB3aXRoIEZvcnRlLgoKMjAwOS0wMS0zMCAxMDo0Mzo1NSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXZlcnQgIkNoZWNrIHN1Z2dlc3RlZCBjYXBzIGZvciBwcm94eSBhbGxvYyIKCSAgVGhpcyByZXZlcnRzIGNvbW1pdCA1MGFmZDQ1OTU3OTE5MTc3MmY0MmQxYTQ0ZjM5NTllNTMwYzVjMjY5LgoJICBJdCBicmVha3MgdGhlIGludGVyYWN0aXZlIHRlc3Qtc2NhbGUgdW5pdCB0ZXN0LgoKMjAwOS0wMS0zMCAxMDo0Mjo1MCArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBSZXZlcnQgIkZvcmNlIHJlY29uZmlndXJlIG9mIGJhc2V0cmFuc2Zvcm0gdG8gcmVjaGVjayBhbGxvYyByZXF1ZXN0IgoJICBUaGlzIHJldmVydHMgY29tbWl0IDNhNDYwMmQ3NzE5ZGUzYzNlZjdhZWNlNjhiNWY5NDg5ZDA3ODAxNjIuCgkgIEl0IGJyZWFrcyB0aGUgaW50ZXJhY3RpdmUgdGVzdC1zY2FsZSB1bml0IHRlc3QuCgoyMDA5LTAxLTMwIDEwOjI5OjU2ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzZWJhc3RpYW4uZHJvZWdlQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBBbGxvY2F0ZSBldmVyeXRoaW5nIHRoYXQgaXMgd3JpdHRlbiB0byB0aGUgcmVnaXN0cnkgd2l0aCBnX21hbGxvYzAoKQoJICBBbGxvY2F0ZSBldmVyeSBzdHJ1Y3R1cmUgdGhhdCBpcyBkaXJlY3RseSB3cml0dGVuIHRvIHRoZSBiaW5hcnkKCSAgcmVnaXN0cnkgd2l0aCBnX21hbGxvYzAoKS4gT3RoZXJ3aXNlIHNvbWUgcGFydHMgb2YgaXQgd2lsbCBiZQoJICB1bmluaXRpYWxpemVkIChzdHJ1Y3QgcGFkZGluZyBiZWNhdXNlIG9mIGFsaWdubWVudCwgZXRjKSBhbmQKCSAgdmFsZ3JpbmQgd2lsbCBjb21wbGFpbiBhYm91dCBpdC4KCjIwMDktMDEtMzAgMDg6MzA6MjggKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIFVzZSBhIHN5bWJvbGljIGxpbmsgZm9yIHRoZSBwcmUtY29tbWl0IGNsaWVudC1zaWRlIGhvb2sKCjIwMDktMDEtMjkgMTU6NDk6MjQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBNYWtlIHN1cmUgdG8gdGFrZSBhIGNvcHkgb2YgdGhlIHN0cmluZ3Mgd2UncmUgZ29pbmcgdG8gZnJlZSBsYXRlci4KCjIwMDktMDEtMjYgMTc6MTU6MTUgKzAyMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgQWRkIGxvZ2dpbmcgaW4gZmFpbHVyZSBjYXNlLiBBZGQgbW9yZSBkZXRhaWxzIHRvIGEgdG9kbyBjb21tZW50LgoKMjAwOS0wMS0yNiAxNzoxNDowNyArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYmVuY2htYXJrcy9pbml0LmM6CgkgIEFkZCBhIHRyaXZpYWwgc291cmNlIGZvciB0cmFja2luZyBnc3RfaW5pdCB0aW1lIGFjY3Jvc3MgdmVyc2lvbnMuCgoyMDA5LTAxLTI2IDE3OjEzOjA5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQWRkIHRvZG8gY29tbWVudHMuCgoyMDA5LTAxLTI5IDEzOjM5OjI5ICswMTAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIENoZWNrIHN1Z2dlc3RlZCBjYXBzIGZvciBwcm94eSBhbGxvYwoJICBCZWNhdXNlIHdlIGFyZSB0cnlpbmcgdG8gcmVzb2x2ZSBhIHN1Z2dlc3Rpb24gaGVyZSB3ZSBkb24ndCBuZWVkCgkgIHRvIGNoZWNrIG9uIGNhcHMgZm9yIHByb3h5X2FsbG9jIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIG9uIHRoZSBzdWdnZXN0ZWQKCSAgY2FwcyBpbnN0ZWFkLgoKMjAwOS0wMS0yOSAxMzozMDo0NSArMDEwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGb3JjZSByZWNvbmZpZ3VyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlY2hlY2sgYWxsb2MgcmVxdWVzdAoJICBXaGlsZSByZWNvbmZpZ3VyaW5nIGEgYmFzZXRyYW5zZm9ybSBlbGVtZW50IHdlIG5lZWQgYWxzbyB0byByZWNoZWNrCgkgIHRoZSBhbGxvYyByZXF1ZXN0LiBCZWNhdXNlIGl0J3MgcG9zc2libGUgdGhhdCBkdWUgdG8gY2FwcyBjaGFuZ2VzCgkgIHRoZSBwcm94eV9hbGxvYyBzdGF0ZSBpcyBub3QgY29ycmVjdCBhbnltb3JlLgoKMjAwOS0wMS0yNyAyMzoxNDo0OSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIEltcHJvdmUgdGhlIGRvY3MgZm9yIGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKCkuCgkgIEl0cyBtZW50aW9uZWQgaW4gdGhlIHNlY3Rpb24gZG9jcywgYnV0IGxldHMgcmVwZWF0IGF0IHRoZSBmdW5jdGlvbiBkb2NzIHRoYXQgdGhlIGNhbGxiYWNrIGNhbiBiZSBpbnZva2VkIGZyb20gYW55IHRocmVhZC4KCjIwMDktMDEtMjcgMTc6NTM6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbS5tdWxsZXJAY29sbGFib3JhLmNvLnVrPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgZG9jczogZG9uJ3QgdXNlIEVSUk9SX0NGTEFHUyB3aGVuIGJ1aWxkaW5nICRkb2Ntb2R1bGUtc2Nhbi5jCgkgIFdlIGRvbid0IHdhbnQgdG8gdXNlIC1XYWxsIC1XZXJyb3IgYW5kIGZyaWVuZHMgd2hlbiBidWlsZGluZyB0aGUgZ3RrLWRvYy1nZW5lcmF0ZWQKCSAgJGRvY21vZHVsZS1zY2FuLmMsIHNpbmNlIHdlIGNhbid0IGVhc2lseSBmaXggc3R1ZmYgaWYgYSBjZXJ0YWluIGd0ay1kb2MvY29tcGlsZXIKCSAgY29tYmluYXRpb24gYnJlYWtzIHRoZSBidWlsZC4gRml4ZXMgYnVpbGQgb24gdWJ1bnR1IGludHJlcGlkLgoKMjAwOS0wMS0yNyAxNzo1MjoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltLm11bGxlckBjb2xsYWJvcmEuY28udWs+CgoJKiAuZ2l0aWdub3JlOgoJICBNYWtlIGdpdCBpZ25vcmUgYmFja3VwIGZpbGVzLgoKMjAwOS0wMS0yNiAyMToyOTowMiArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgRG9uJ3QgY2hlY2sgdGltZXN0YW1wIGhlcmUsIGl0cyBkb25lIGluIHRoZSBjYWxsZWQgZnVuY3Rpb24gYW55d2F5LgoKMjAwOS0wMS0yNiAxMjo1MjoxMiArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9nc3Rwb2xsLmM6CgkgIEF2b2lkIHVubmVlZGVkIHJlYWRzIGZyb20gdGhlIGNvbnRyb2wgc29ja2V0CgkgIEFkZCBhIG5ldyB2YXJpYWJsZSB0aGF0IGtlZXBzIHRyYWNrIG9mIHRoZSBzdGF0dXMgb2YgdGhlIGNvbnRyb2wgc29ja2V0LiBUaGlzCgkgIGFsbG93cyB1cyB0byBhdm9pZCBkb2luZyBhIHJlYWQoKSBvbiB0aGUgY29udHJvbCBzb2NrZXQgd2hlbiB3ZSBkaWQgbm90IHdyaXRlCgkgIGFueXRoaW5nIHRvIGl0LgoJICBGaXhlcyAjNTY4NDM4LgoKMjAwOS0wMS0yNSAyMjoxNzozMSArMDIwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBtb3JlIGRlYnVnIGxvZ2dpbmcgZm9yIGZhaWx1cmUgY2FzZXMuCgoyMDA5LTAxLTI1IDIyOjExOjMyICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIERvY3VtZW50IHRoYXQgR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm9zIHVzZSBQQUNLQUdFIGRlZmluZS4gRml4ZXMgIzU1OTcyMi4KCSAgUEFDS0FHRSBpcyBkZWZpbmVkIGJ5IGF1dG9mb28uIElmIHBlb3BsZSB1c2Ugc29tZXRoaW5nIGRpZmZlcmVudCwgdGhleSBtaWdodCB3YW50IHRvIGRlZmluZSBpdCB0aGVtc2VsZi4KCjIwMDktMDEtMjUgMTc6NTg6NTIgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgRml4IHR5cG8KCjIwMDktMDEtMjQgMjE6NTA6MDggKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBPbmx5IGZyZWUgbGlzdCBvZiBidWZmZXJzIG9uY2UKCjIwMDktMDEtMjQgMTQ6Mzc6MTQgKzAxMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJKiBkb2NzL1JFQURNRToKCSAgRml4IHR5cG8KCjIwMDktMDEtMjMgMjM6MDg6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHBvLy5naXRpZ25vcmU6CgkgIElnbm9yZSBhbm90aGVyIGZpbGUKCjIwMDktMDEtMjMgMjE6NDQ6MTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgYWRkIGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9leHRlbnNpb24gdG8gdGhlIHdpbjMyIGRlZnMgZmlsZQoKMjAwOS0wMS0yMyAxNjowOTozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5Abm9yYWlzaW4ubmV0PgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBVcGRhdGUgd2luMzIgY29uZmlnLmggZm9yIDAuMTAuMjIuMSBkZXYgY3ljbGUuLi4KCjIwMDktMDEtMjMgMTY6MDg6MDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG5vcmFpc2luLm5ldD4KCgkqIC5naXRpZ25vcmU6CgkqIGRvY3MvZ3N0Ly5naXRpZ25vcmU6CgkqIGRvY3MvbGlicy8uZ2l0aWdub3JlOgoJKiBkb2NzL2xpYnMvdG1wbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NoZWNrLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L25ldC8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgVXBkYXRlIGEgYnVuY2ggb2YgZ2l0aWdub3JlcyB0byBjbGVhbiB1cCBteSBnaXQgc3RhdHVzIG91dHB1dAoKMjAwOS0wMS0yMyAwOTo1NDo1MyArMDEwMCAgQnJpYW4gQ2FtZXJvbiA8YnJpYW4uY2FtZXJvbkBzdW4uY29tPgoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIEZpeCBsaW5raW5nIGZhaWx1cmVzIG9uIFNvbGFyaXMuIEZpeGVzIGJ1ZyAjNTY4NDgxLgoJICBMaW5rIGxpYmdzdHJlYW1lciB3aXRoICQoTElCTSkgYXMgaXQgdXNlcyBtYXRoIGZ1bmN0aW9ucy4KCSAgQWRkIGEgY29uZmlndXJlIGNoZWNrIGZvciBzb2NrZXQgYW5kIG5zbCBsaWJyYXJ5IGFuZCBhZGQKCSAgdGhlbSB0byBMSUJTIGlmIHRoZXkncmUgZm91bmQuIFRoaXMgaXMgbmVlZGVkIG9uIFNvbGFyaXMKCSAgZm9yIHNvY2tldCgpIGFuZCBnZXRob3N0YnluYW1lKCkuCgoyMDA5LTAxLTIyIDE4OjAyOjE5ICswMjAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgoJKiBjb21tb246CgkgIFVwZGF0ZSBjb21tb24gc25hcHNob3QuCgoyMDA5LTAxLTIyIDEzOjU4OjU3ICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgSW1wcm92ZSBkZWJ1ZyBvdXRwdXQgYnkgbG9nZ2luZyB0aGUgb2Zmc2V0cy4gRml4ZXMgYnVnICM1Njg2NzguCgkgIEluIGNyZWF0ZSgpIGFsc28gbG9nIHRoZSBvZmZzZXRzIGFuZCBub3Qgb25seSB0aGUKCSAgYnVmZmVyIHNpemUuCgoyMDA5LTAxLTIyIDEzOjUxOjAyICswMTAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJKiBjb21tb246CgkgIEZpeCBwcmUtY29tbWl0IGhvb2sKCjIwMDktMDEtMjIgMTI6NTI6NTAgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2Ygc3NoOi8vZ2l0LmZyZWVkZXNrdG9wLm9yZy9naXQvZ3N0cmVhbWVyL2dzdHJlYW1lcgoKMjAwOS0wMS0yMiAxMTo1NDo0MSArMDEwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGNvbGxhYm9yYS5jby51az4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBEb2MgZm9yIG5ldyB0eXBlZmluZCBtZXRob2QuCgoyMDA5LTAxLTIyIDEwOjQ1OjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBub3JhaXNpbi5uZXQ+CgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gZGV2ZWxvcG1lbnQgLT4gMC4xMC4yMi4xCgoyMDA5LTAxLTIyIDEwOjE2OjAzICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIHNzaDovL2dpdC5mcmVlZGVza3RvcC5vcmcvZ2l0L2dzdHJlYW1lci9nc3RyZWFtZXIKCjIwMDktMDEtMjIgMDU6MzU6MDIgKzAxMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIEluc3RhbGwgYW5kIHVzZSBwcmUtY29tbWl0IGluZGVudGF0aW9uIGhvb2sgZnJvbSBjb21tb24KCjIwMDktMDEtMjEgMTI6NTA6MjkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBJZiBubyB0eXBlIHdhcyBmb3VuZCB1c2luZyB0aGUgdHlwZWZpbmQgZnVuY3Rpb25zLCB0cnkgZG9pbmcgYW4gdXBzdHJlYW0gVVJJIHF1ZXJ5IHRvIGd1ZXNzIHRoZSB0eXBlIGZyb20gdGhlIGV4dGVuc2lvbi4gU2VlICM1NjY2NjEuCgoyMDA5LTAxLTIxIDEyOjQ4OjE4ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg6CgkgIEFkZCBuZXcgdHlwZWZpbmcgaGVscGVyIGZ1bmN0aW9uIHRvIGd1ZXNzIHRoZSBjYXBzIGJhc2VkIG9uIHRoZSBmaWxlIGV4dGVuc2lvbi4gU2VlICM1NjY2NjEuIEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2V4dGVuc2lvbigpCgoyMDA5LTAxLTIxIDEyOjQ1OjQ1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgQWxsb3cgYWRkaW5nIGEgdHlwZWZpbmRlciB3aXRob3V0IGEgdHlwZWZpbmQgZnVuY3Rpb24gc28gdGhhdCBpdCBjYW4gYmUgdXNlZCB0byBtYXAgdGhlIGNhcHMgdG8gdGhlIGV4dGVuc2lvbi4gU2VlICM1NjY2NjEuCgoyMDA5LTAxLTIxIDEyOjQzOjU1ICswMTAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAY29sbGFib3JhLmNvLnVrPgoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBVcGRhdGUgdGhlIGxhc3RfYnVmZmVyIGV4YWN0bHkgd2l0aCB0aGUgYnVmZmVyIHRoYXQgY2F1c2VkIHRoZSBwcmVyb2xsIGFuZCBhbHNvIGNhbGwgdGhlIHByZXJvbGwgbWV0aG9kIHdpdGggdGhhdCBwcmVyb2xsIGJ1ZmZlci4gRml4ZXMgIzU2NzcyNS4KCjIwMDktMDEtMjEgMTI6MjE6NDkgKzAxMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIGRvIG5vdCBjYWxsIHRoZSB1bmxpbmsgZnVuY3Rpb24gb24gdGhlIHRhcmdldCBwYWQgd2hlbiB0aGUgZ2hvc3RwYWQgaXMgdW5saW5rZWQuIEFkZCBzb21lIHVuaXQgdGVzdHMgZm9yIHRoaXMgYmVoYXZpb3VyLiBGaXhlcyAjNTY2OTM2LgoKMjAwOS0wMS0yMSAwNDoyOToyNSArMDEwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9nZW4uc2ggOiBVc2UgZ2l0IHN1Ym1vZHVsZQoKPT09IHJlbGVhc2UgMC4xMC4yMiA9PT0KCjIwMDktMDEtMTkgMjI6NTg6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5zaWduYWxzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9MSU5HVUFTOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4yMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjIyCgoyMDA5LTAxLTE5IDIxOjIwOjQwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL2phLnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9wdF9CUi5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA5LTAxLTE3IDIxOjA0OjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggb3JkZXIgb2YgbWVtYmVycyBpbiBHc3RCdXNTb3VyY2Ugc3RydWN0dXJlIC0gdGhlIGZpcnN0IG1lbWJlciBtdXN0IGJlIHRoZSBwYXJlbnQgc3RydWN0dXJlIGllLiBHU291Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc2V0X21haW5fY29udGV4dCksIChnc3RfYnVzX2NyZWF0ZV93YXRjaCk6CgkgIEZpeCBvcmRlciBvZiBtZW1iZXJzIGluIEdzdEJ1c1NvdXJjZSBzdHJ1Y3R1cmUgLSB0aGUgZmlyc3QgbWVtYmVyCgkgIG11c3QgYmUgdGhlIHBhcmVudCBzdHJ1Y3R1cmUgaWUuIEdTb3VyY2UuIFNob3VsZCBtYWtlIGJ1cyBzb3VyY2VzCgkgIGF0dGFjaGVkIHRvIG5vbi1kZWZhdWx0IG1haW4gY29udGV4dHMgd29yayBpbiBhbGwgY2FzZXMgbm93IChpZS4KCSAgcHJpbWFyaWx5IGluIGNhc2VzIHdoZXJlIHRoZSBjYWxsYmFjayBoYXMgYSBub24tTlVMTCB1c2VyIGRhdGEKCSAgYXJndW1lbnQpLiBGaXhlcyAjNTYyMTcwLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzogKHRlc3RfY3VzdG9tX21haW5fY29udGV4dCk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIHRoZSBhYm92ZSwgYmFzZWQgb24gY29kZSBieQoJICBKdXN0aW4gS2FybmVnZXMgPGp1c3RpbiBhdCBhZmZpbml4IGNvbT4uCgoyMDA5LTAxLTE1IDEwOjA0OjM3ICswMDAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJICBnc3QvZ3N0cGFkLmg6IEEgc21hbGwgZG9jdW1lbnRhdGlvbiBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9uYXMgSG9sbWJlcmcgPGpvbmFzIGRvdCBob2xtYmVyZyBhdCBheGlzIGRvdCBjb20+CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBIHNtYWxsIGRvY3VtZW50YXRpb24gZml4LgoKMjAwOS0wMS0xMSAwOTo0Njo1MiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEluaXRpYWxpemUgZ19vbmNlX2luaXQqIGRhdGEgd2l0aCAwLiBGaXhlcyBidWcgIzU2NzIyNS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEluaXRpYWxpemUgZ19vbmNlX2luaXQqIGRhdGEgd2l0aCAwLiBGaXhlcyBidWcgIzU2NzIyNS4KCjIwMDktMDEtMDkgMjM6Mzc6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBwcmUtcmVsZWFzZSAwLjEwLjIxLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBwcmUtcmVsZWFzZSAwLjEwLjIxLjMKCjIwMDktMDEtMDkgMTU6NDM6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLio6IEZpeCBkb2N1bWVudGF0aW9uIGZvciB0aGUgd2FpdF9jbG9jayBtZXRob2QsIHJlbmFtZSBiYXNlc2luayAtPiBzaW5rIGZvciBjb25zaXN0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEZpeCBkb2N1bWVudGF0aW9uIGZvciB0aGUgd2FpdF9jbG9jayBtZXRob2QsIHJlbmFtZSBiYXNlc2luayAtPiBzaW5rCgkgIGZvciBjb25zaXN0ZW5jeS4KCjIwMDktMDEtMDggMTM6NDE6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3QuYzogQ3JlYXRlIGEgcmVnaXN0cnkgaWYgdGhlcmUgaXMgbm9uZSBhbHNvIHdoZW4gdGhlIG9wdGlvbiBmb3IgZ3N0LWRpc2FibGUtcmVnaXN0cnktdXBkYXRlIGhhcyBiZWVuIHNlbGVjdGVkLi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIENyZWF0ZSBhIHJlZ2lzdHJ5IGlmIHRoZXJlIGlzIG5vbmUgYWxzbyB3aGVuIHRoZSBvcHRpb24gZm9yCgkgIGdzdC1kaXNhYmxlLXJlZ2lzdHJ5LXVwZGF0ZSBoYXMgYmVlbiBzZWxlY3RlZC4gRml4ZXMgIzU2NzAwMgoKMjAwOS0wMS0wNiAxODoxMDoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogUmVmIG5ldyBlbnVtIHR5cGUgaW4gZ3N0X2luaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIFJlZiBuZXcgZW51bSB0eXBlIGluIGdzdF9pbml0LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgcmVjZW50bHktYWRkZWQgQVBJLgoKMjAwOS0wMS0wNiAxNzo1ODo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBBUEkgZm9yIG1ha2luZyBhIEdTdHJlYW1lciBwbHVnaW4gJ2RlcGVuZGVudCcgb24gZXh0ZXJuYWwgZmlsZXMsIGRpcmVjdG9yaWVzIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcywgc28gdGhhdCBHUy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OjoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKEdzdFBsdWdpbkRlcCksIChfR3N0UGx1Z2luUHJpdmF0ZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9pbml0KSwgKGdzdF9wbHVnaW5fZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9jbGFzc19pbml0KSwgKGdzdF9wbHVnaW5fbGlzdF9mcmVlKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9nZXRfZW52X3ZhcnNfaGFzaCksCgkgIChfcHJpdl9wbHVnaW5fZGVwc19lbnZfdmFyc19jaGFuZ2VkKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9leHRyYWN0X2Vudl92YXJzX3BhdGhzKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9nZXRfaGFzaF9mcm9tX3N0YXRfZW50cnkpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX2RpcmVudHJ5X21hdGNoZXMpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX3NjYW5fZGlyX2FuZF9tYXRjaF9uYW1lcyksCgkgIChnc3RfcGx1Z2luX2V4dF9kZXBfc2Nhbl9wYXRoX3dpdGhfZmlsZW5hbWVzKSwKCSAgKGdzdF9wbHVnaW5fZXh0X2RlcF9nZXRfc3RhdF9oYXNoKSwKCSAgKF9wcml2X3BsdWdpbl9kZXBzX2ZpbGVzX2NoYW5nZWQpLCAoZ3N0X3BsdWdpbl9leHRfZGVwX2ZyZWUpLAoJICAoZ3N0X3BsdWdpbl9leHRfZGVwX3N0cnZfZXF1YWwpLCAoZ3N0X3BsdWdpbl9leHRfZGVwX2VxdWFscyksCgkgIChnc3RfcGx1Z2luX2FkZF9kZXBlbmRlbmN5KSwgKGdzdF9wbHVnaW5fYWRkX2RlcGVuZGVuY3lfc2ltcGxlKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IChHc3RQbHVnaW5Qcml2YXRlKSwgKEdzdFBsdWdpbkZsYWdzKSwKCSAgKEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX05PTkUpLAoJICAoR1NUX1BMVUdJTl9ERVBFTkRFTkNZX0ZMQUdfUkVDVVJTRSksCgkgIChHU1RfUExVR0lOX0RFUEVOREVOQ1lfRkxBR19QQVRIU19BUkVfREVGQVVMVF9PTkxZKSwKCSAgKEdTVF9QTFVHSU5fREVQRU5ERU5DWV9GTEFHX0ZJTEVfTkFNRV9JU19TVUZGSVgpLAoJICAoR3N0UGx1Z2luRGVwZW5kZW5jeUZsYWdzKSwgKEdzdFBsdWdpbkZpbHRlcik6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW5fZGVwKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbl9kZXBfc3RydiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luX2RlcCksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDogKEdTVF9NQUdJQ19CSU5BUllfVkVSU0lPTl9TVFIpLAoJICAoR3N0QmluYXJ5UGx1Z2luRWxlbWVudCksIChfR3N0QmluYXJ5RGVwKSwgKEdzdEJpbmFyeURlcCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfcGx1Z2luKToKCSAgQWRkIEFQSSBmb3IgbWFraW5nIGEgR1N0cmVhbWVyIHBsdWdpbiAnZGVwZW5kZW50JyBvbiBleHRlcm5hbCBmaWxlcywKCSAgZGlyZWN0b3JpZXMgb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzLCBzbyB0aGF0IEdTdHJlYW1lciBrbm93cyB3aGVuCgkgIGl0IG5lZWRzIHRvIHJlLWxvYWQgR1N0cmVhbWVyIHBsdWdpbnMgdGhhdCB3cmFwIG90aGVyIHBsdWdpbiBzeXN0ZW1zLgoJICBGaXhlcyBidWcgIzM1MDQ3Ny4KCSAgQVBJOiBhZGQgZ3N0X3BsdWdpbl9hZGRfZGVwZW5kZW5jeSgpCgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fYWRkX2RlcGVuZGVuY3lfc2ltcGxlKCkKCjIwMDktMDEtMDYgMTM6MDA6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBsaWJnc3RhcHAtMC4xMCBmcm9tIC1iYXNlIHRvIHNlYXJjaCBwYXRoIGFuZCByZW1vdmUgdGhlIG9sZCBsaWIgZnJvbSAtYmFkIGZyb20gdGhlIHNlYXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBZGQgbGliZ3N0YXBwLTAuMTAgZnJvbSAtYmFzZSB0byBzZWFyY2ggcGF0aCBhbmQgcmVtb3ZlIHRoZSBvbGQKCSAgbGliIGZyb20gLWJhZCBmcm9tIHRoZSBzZWFyY2ggcGF0aC4KCjIwMDktMDEtMDUgMTU6NDI6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSBjYWxsaW5nIHRoZSBxdWVyeSBjb252ZXJ0IHBhZCBmdW5jdGlvbnMgdG8gYXZvaWQgZGVhZGxvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGJlZm9yZSBjYWxsaW5nIHRoZSBxdWVyeSBjb252ZXJ0IHBhZCBmdW5jdGlvbnMKCSAgdG8gYXZvaWQgZGVhZGxvY2tzLgoKMjAwOS0wMS0wNSAxNTo0MTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogVGhlIGxvY2sgb3JkZXIgc2hvdWxkIGJlIG1haW5jb250ZXh0ID4gT0JKRUNUX0xPQ0sgc28gd2UgbmVlZCB0byByZWxlYXNlIHRoZSBvYmplY3QgbG9jayB3aGVuIHdha2luZyB1cC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3dha2V1cF9tYWluX2NvbnRleHQpOgoJICBUaGUgbG9jayBvcmRlciBzaG91bGQgYmUgbWFpbmNvbnRleHQgPiBPQkpFQ1RfTE9DSyBzbyB3ZSBuZWVkIHRvIHJlbGVhc2UKCSAgdGhlIG9iamVjdCBsb2NrIHdoZW4gd2FraW5nIHVwIHRoZSBtYWlubG9vcCB0byBhdm9pZCBkZWFkbG9ja3MuCgoyMDA5LTAxLTA1IDEwOjE0OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgYW4gaXRlcmF0b3IgdG8gc2V0IHRoZSBjbG9jayBhbmQgdGhlIGluZGV4IHNvIHRoYXQgd2UgY2FuIHJlbGVhc2UgdGhlIG9iamVjdCBsb2NrIGFwcHJvcHJpYXRlbHkuIEZpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2V0X2luZGV4X2Z1bmMpLCAoZ3N0X2Jpbl9zZXRfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgVXNlIGFuIGl0ZXJhdG9yIHRvIHNldCB0aGUgY2xvY2sgYW5kIHRoZSBpbmRleCBzbyB0aGF0IHdlIGNhbiByZWxlYXNlCgkgIHRoZSBvYmplY3QgbG9jayBhcHByb3ByaWF0ZWx5LiBGaXhlcyAjNTY2MzkzLgoKMjAwOS0wMS0wMyAxODozOTozOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogVXNlIHRoZSBuYW1lIG9mIHRoZSBwYWRzIGluc3RlYWQgb2YgYSBwb2ludGVyLCBoZWxwcyBpbiBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYXZhaWxhYmxlKToKCSAgVXNlIHRoZSBuYW1lIG9mIHRoZSBwYWRzIGluc3RlYWQgb2YgYSBwb2ludGVyLCBoZWxwcyBpbiBkZWJ1Z2dpbmcuCgoyMDA5LTAxLTAzIDE4OjE2OjU0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGluZGV4LmM6IEFkZCBhIGRlYnVnZ2luZyBjYXRlZ29yeSBmb3IgR3N0SW5kZXgsIGZpcnN0IGxpdHRsZSBzdGVwIGluIG1ha2luZyBpbmRleGluZyB0b3Atbm90Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2dldF90eXBlKToKCSAgQWRkIGEgZGVidWdnaW5nIGNhdGVnb3J5IGZvciBHc3RJbmRleCwgZmlyc3QgbGl0dGxlIHN0ZXAgaW4gbWFraW5nCgkgIGluZGV4aW5nIHRvcC1ub3RjaC4KCjIwMDktMDEtMDMgMTg6MTA6MDggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvOiBBc3NpZ24gZGVidWcgc3RhdGVtZW50cyB0byByZWxldmFudCBjYXRlZ29yaWVzIGluc3RlYWQgb2YgdGhlICdkZWZhdWx0JyBjYXRlZ29yeSBzbyB0aGV5IGRvbid0IGdldCBsb3N0IGluIGRlYnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksCgkgIChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3Byb3h5X2dldGNhcHMpLCAoZ3N0X3BhZF9wcm94eV9zZXRjYXBzKSwKCSAgKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmVfZnVsbCksIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZV9mdWxsKSwKCSAgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZV9mdWxsKSwgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgQXNzaWduIGRlYnVnIHN0YXRlbWVudHMgdG8gcmVsZXZhbnQgY2F0ZWdvcmllcyBpbnN0ZWFkIG9mIHRoZSAnZGVmYXVsdCcKCSAgY2F0ZWdvcnkgc28gdGhleSBkb24ndCBnZXQgbG9zdCBpbiBkZWJ1Z2dpbmcuCgoyMDA5LTAxLTAxIDIxOjI3OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBBZGQgc29tZSBpZGVhcywgaG93IHRvIG1ha2UgdGhlIGdyYXBoIHNtYWxsZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgIEFkZCBzb21lIGlkZWFzLCBob3cgdG8gbWFrZSB0aGUgZ3JhcGggc21hbGxlci4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIGEgY29tbWVudCBmcm9tIGEgZGVidWcgc2Vzc2lvbi4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgTG9nIG1vcmUgY29udGV4dC4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIEluZGV0LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBGaXggdHlwbyBpbiBkb2NzLgoKMjAwOC0xMi0yNyAxNzo0MToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogTWFrZSBHc3RCdXNTb3VyY2Ugd29yayB3aXRoIG5vbi1kZWZhdWx0IG1haW4gY29udGV4dHMgKCM1NjIxNzApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2Rpc3Bvc2UpLCAoZ3N0X2J1c19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2J1c193YWtldXBfbWFpbl9jb250ZXh0KSwgKGdzdF9idXNfc2V0X21haW5fY29udGV4dCksCgkgIChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19zb3VyY2VfcHJlcGFyZSksIChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfYnVzX2NyZWF0ZV93YXRjaCk6CgkgIE1ha2UgR3N0QnVzU291cmNlIHdvcmsgd2l0aCBub24tZGVmYXVsdCBtYWluIGNvbnRleHRzICgjNTYyMTcwKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChtZXNzYWdlX2Z1bmNfZW9zKSwgKG1lc3NhZ2VfZnVuY19hcHApLAoJICAodGVzdF93YXRjaCksICh0ZXN0X3dhdGNoX3dpdGhfY3VzdG9tX2NvbnRleHQpLCAoZ3N0X2J1c19zdWl0ZSk6CgkgIEFkZCB0ZXN0IGNhc2UgZm9yIEdzdEJ1c1NvdXJjZSB3aXRoIGEgbm9uLWRlZmF1bHQgbWFpbiBjb250ZXh0LgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA4LTEyLTI3IDE2OjIzOjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IFdyYXAgbXVsdGktbGluZSBtYWNyb3MgaW4gR19TVE1UX3tTVEFSVHxFTkR9LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKHVucGFja19lbGVtZW50KSwgKHVucGFja19jb25zdF9zdHJpbmcpLAoJICAodW5wYWNrX3N0cmluZyk6OgoJICBXcmFwIG11bHRpLWxpbmUgbWFjcm9zIGluIEdfU1RNVF97U1RBUlR8RU5EfS4KCjIwMDgtMTItMjAgMTc6MzM6NDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIFVSSSBxdWVyeSB0eXBlLiBUaGlzIGlzIHVzZWZ1bCB0byBxdWVyeSB0aGUgVVJJIG9mIGEgc2luay9zb3VyY2UgZWxlbWVudCBhbmQgY2FuIGJlIHVzZWQgYnkgZGVtdXhlcnMgdGhhdCBuZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RxdWFyay5jOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld191cmkpLCAoZ3N0X3F1ZXJ5X3NldF91cmkpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3VyaSk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFQSTogQWRkIFVSSSBxdWVyeSB0eXBlLiBUaGlzIGlzIHVzZWZ1bCB0byBxdWVyeSB0aGUgVVJJCgkgIG9mIGEgc2luay9zb3VyY2UgZWxlbWVudCBhbmQgY2FuIGJlIHVzZWQgYnkgZGVtdXhlcnMgdGhhdAoJICBuZWVkIHRvIGdldCBkYXRhIGZyb20gb3RoZXIgZmlsZXMuCgkgIFRoaXMgcXVlcnkgc2hvdWxkIGdvIHVwc3RyZWFtIGJ5IGRlZmF1bHQuCgkgIEZpeGVzIGJ1ZyAjNTYyOTQ5LgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19xdWVyeSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zcmNfcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcXVlcnkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX3F1ZXJ5KToKCSAgSW1wbGVtZW50IFVSSSBxdWVyeS4KCjIwMDgtMTItMTkgMTU6MTE6MDYgKzAwMDAgIEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvLmRAZ21haWwuY29tPgoKCSAgRG9uJ3QgZm9yd2FyZCBnc3RfcGFkX3NldF9jYXBzKCkgb24gYSBzb3VyY2UgZ2hvc3RwYWQgdG8gaXRzIHRhcmdldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIERvbid0IGZvcndhcmQgZ3N0X3BhZF9zZXRfY2FwcygpIG9uIGEgc291cmNlIGdob3N0cGFkIHRvIGl0cyB0YXJnZXQuCgkgIFRoYXQgd291bGQgY2F1c2UgdGhlIGdob3N0cGFkIHRvIGVtaXQgbm90aWZ5OjpjYXBzIHR3byB0aW1lcyAoZmlzdAoJICBmcm9tIGdzdF9wYWRfc2V0X2NhcHMoKSBhbmQgYWZ0ZXIgZnJvbSBvbl9zcmNfdGFyZ2V0X25vdGlmeSgpKS4KCjIwMDgtMTItMTkgMTE6MjQ6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogQWRkIHNvbWUgbW9yZSB1bml0LXRlc3RzIGZvciB0aGUgZ2hvc3RwYWQgbm90aWZ5IHNpZ25hbCwgb25lIG9mIHdoaWNoIGN1cnJlbnRseSBmYWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChnaG9zdF9ub3RpZnlfY2FwcyksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBzb21lIG1vcmUgdW5pdC10ZXN0cyBmb3IgdGhlIGdob3N0cGFkIG5vdGlmeSBzaWduYWwsIG9uZSBvZiB3aGljaAoJICBjdXJyZW50bHkgZmFpbHMuCgoyMDA4LTEyLTE5IDA5OjQ0OjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIGdzdF90YWdfc2V0dGVyX3Jlc2V0X3RhZ3MgdG8gdGhlIGxpc3Qgb2YgZXhwb3J0ZWQgc3ltYm9scy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfdGFnX3NldHRlcl9yZXNldF90YWdzIHRvIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMuCgoyMDA4LTEyLTE3IDE2OjE2OjQ1ICswMDAwICBBbGVzc2FuZHJvIERlY2luYSA8YWxlc3NhbmRyby5kQGdtYWlsLmNvbT4KCgkgIEluIGEgc291cmNlIGdob3N0cGFkLCB3aGVuIGNhcHMgYXJlIGNoYW5nZWQgaW4gdGhlIHRhcmdldCBwYWQsIHRoZSBjaGFuZ2UgbmVlZHMgdG8gYmUgcmVmbGVjdGVkIGluIHRoZSBnaG9zdHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgIEluIGEgc291cmNlIGdob3N0cGFkLCB3aGVuIGNhcHMgYXJlIGNoYW5nZWQgaW4gdGhlIHRhcmdldCBwYWQsIHRoZQoJICBjaGFuZ2UgbmVlZHMgdG8gYmUgcmVmbGVjdGVkIGluIHRoZSBnaG9zdHBhZC4KCSAgRml4ZXMgIzU2NDg2My4KCjIwMDgtMTItMTcgMDk6Mzc6NDcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBBZGQgRklYTUUgZm9yIDAuMTEgdG8gc2V0IHRoZSBwYWQgYXMgbWVzc2FnZSBzb3VyY2UgYW5kIG5vdCB0aGUgZWxlbWVudC4gT3RoZXJ3aXNlIGl0J3MgaW1wb3NzaWJsZSB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3NfZm9yX3BhZCk6CgkgIEFkZCBGSVhNRSBmb3IgMC4xMSB0byBzZXQgdGhlIHBhZCBhcyBtZXNzYWdlIHNvdXJjZSBhbmQgbm90CgkgIHRoZSBlbGVtZW50LiBPdGhlcndpc2UgaXQncyBpbXBvc3NpYmxlIHRvIGRldGVjdCBmb3Igd2hpY2gKCSAgcGFkIHRoZSB0YWdzIHdlcmUgZm91bmQgd2l0aG91dCBhZGRpbmcgYW4gZXZlbnQgcHJvYmUKCSAgb3Igc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIHBhZC4KCjIwMDgtMTItMTYgMjE6MzM6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2ZhcS9nZW5lcmFsLnhtbDogVXBkYXRlIHRoZSBmYXEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2dlbmVyYWwueG1sOgoJICBVcGRhdGUgdGhlIGZhcS4KCjIwMDgtMTItMTYgMTU6NTE6NTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJlbmFtZSBhcGkgYWRkZWQgaW4gcHJldmlvdXMgY29tbWl0IGFuZCBhZGQgc2luY2UgdGFnIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgUmVuYW1lIGFwaSBhZGRlZCBpbiBwcmV2aW91cyBjb21taXQgYW5kIGFkZCBzaW5jZSB0YWcgdG8gZG9jcy4KCSAgQVBJOiBnc3RfdGFnX3NldHRlcl9yZXNldF90YWdzKCkKCjIwMDgtMTItMTYgMTQ6MDU6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBmdW5jdGlvbiB0byByZXNldCB0YWdzZXR0ZXIgZm9yIGVsZW1lbnQgcmV1c2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIHJlc2V0IHRhZ3NldHRlciBmb3IgZWxlbWVudCByZXVzZS4KCSAgQVBJOiBnc3RfdGFnX3NldHRlcl9mbHVzaCgpCgoyMDA4LTEyLTE2IDA5OjM3OjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBdm9pZCBjb3B5IG9mIGVtcHR5IHRhZ2xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIEF2b2lkIGNvcHkgb2YgZW1wdHkgdGFnbGlzdC4KCjIwMDgtMTItMTYgMDk6MjM6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgY29tcGxldGUgdW5pdCB0ZXN0cy4gRml4IGhhbmRsaW5nIG9mIGVtcHR5IHRhZ2xpc3RzICh0aGV5IHdlcmUgbm90IG1lcmdlZCBiZWZvcmUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgTW9yZSBjb21wbGV0ZSB1bml0IHRlc3RzLiBGaXggaGFuZGxpbmcgb2YgZW1wdHkgdGFnbGlzdHMgKHRoZXkgd2VyZQoJICBub3QgbWVyZ2VkIGJlZm9yZSkuCgoyMDA4LTEyLTE2IDA3OjA3OjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBVcGRhdGUgR3N0VGFnU2V0dGVyIGFuZCBHc3RUYWdNZXJnZU1vZGUgZG9jdW1lbnRhdGlvbi4gTWVudGlvbiB0aGF0IHRhZ3MgY2FuIGNvbWUgZnJvbSBldmVudHMgYW5kIGZyb20gYXBwbGljYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIFVwZGF0ZSBHc3RUYWdTZXR0ZXIgYW5kIEdzdFRhZ01lcmdlTW9kZSBkb2N1bWVudGF0aW9uLiBNZW50aW9uCgkgIHRoYXQgdGFncyBjYW4gY29tZSBmcm9tIGV2ZW50cyBhbmQgZnJvbSBhcHBsaWNhdGlvbi4gRml4IGV4YW1wbGUuCgoyMDA4LTEyLTE1IDE1OjI3OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogUmVtb3ZlIHRoZSBzZXFudW0gZW50cnkgdGhhdCB3ZSBpbXBsZW1lbnRlZCBpbiAwLjEwIGFscmVhZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFJlbW92ZSB0aGUgc2VxbnVtIGVudHJ5IHRoYXQgd2UgaW1wbGVtZW50ZWQgaW4gMC4xMCBhbHJlYWR5LgoJICBBZGQgZW50cnkgYWJvdXQgcmVtb3ZpbmcgdGhlIGZvcm1hdCByZXR1cm4gdmFsdWUgZm9yIHF1ZXJpZXMuCgoyMDA4LTEyLTE1IDEyOjQ3OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBFeHBvc2UgdGhlIHJlbmRlci1kZWxheSBhcyBhIHByb3BlcnR5IHNvIHRoaW5ncyBsaWtlIGFwcHNpbmsgY2FuIHVzZSBpdCB0byB0d2VhayB0aGUgc3luLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpOgoJICBFeHBvc2UgdGhlIHJlbmRlci1kZWxheSBhcyBhIHByb3BlcnR5IHNvIHRoaW5ncyBsaWtlIGFwcHNpbmsgY2FuIHVzZSBpdAoJICB0byB0d2VhayB0aGUgc3luY2hyb25pc2F0aW9uLgoKMjAwOC0xMi0xMCAxNToxOTo0NSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBBbGxvdyBjaGVjayB0ZXN0cyB0byB1c2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogQWxsb3cgY2hlY2sgdGVzdHMgdG8gdXNlCgkgIE1BSU5fU1RBUlRfVEhSRUFEUygpL01BSU5fU1RPUF9USFJFQURTKCkgbXVsdGlwbGUgdGltZXMuIEFsc28gYWxsb3dzCgkgIENLX0ZPUks9bm8gdG8gYmUgdXNlZCB3aXRoIG11bHRpcGxlIGNoZWNrIHRlc3QgdGhhdCB1c2UgdGhyZWFkcy4KCjIwMDgtMTItMDkgMTY6MjM6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBGaXggYSBjYXBzIG1lbW9yeSBsZWFrIGludHJvZHVjZWQgYnkgdGhlIGxhc3QgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZCk6CgkgIEZpeCBhIGNhcHMgbWVtb3J5IGxlYWsgaW50cm9kdWNlZCBieSB0aGUgbGFzdCBjaGFuZ2UuCgoyMDA4LTEyLTA5IDE1OjQ1OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hlY2sgaWYgdGhlIGNhcHMgb2YgdGhlIHBhZHMgYXJlIGNvbXBhdGlibGUgYmVmb3JlIHJldHVybmluZyBhIHBhZCBhbmQgY2xhaW1pbmcgaXQgaXMgY29tcGF0aWJsZS4gVGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQpOgoJICBDaGVjayBpZiB0aGUgY2FwcyBvZiB0aGUgcGFkcyBhcmUgY29tcGF0aWJsZSBiZWZvcmUgcmV0dXJuaW5nCgkgIGEgcGFkIGFuZCBjbGFpbWluZyBpdCBpcyBjb21wYXRpYmxlLiBUaGlzLCBhbW9uZyBvdGhlciB0aGluZ3MsCgkgIGZpeGVzIGEgYnVnIHdpdGggZ3N0LWxhdW5jaCB3aGVyZSBhbiBpbmNvbXBhdGlibGUgcGFkIGlzIGNob3NlbgoJICBhbmQgbGlua2luZyBmYWlscy4gRml4ZXMgYnVnICM1NDQwMDMuCgoyMDA4LTEyLTA5IDE0OjQ2OjI0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBSZXZlcnQgYWNjaWRlbnRpYWxseSBjb21taXRlZCBwYXRjaCBmb3IgYnVnICM0MDQ2MzEgd2hpY2ggdHJpZXMgdG8gcHJpbnQgYSBiYWNrdHJhY2UgaWYgYSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19pbml0KToKCSAgUmV2ZXJ0IGFjY2lkZW50aWFsbHkgY29tbWl0ZWQgcGF0Y2ggZm9yIGJ1ZyAjNDA0NjMxIHdoaWNoCgkgIHRyaWVzIHRvIHByaW50IGEgYmFja3RyYWNlIGlmIGEgdGVzdGNhc2UgaXMgdGVybWluYXRlZCBieQoJICBhIHNpZ25hbC4gVGhpcyBjb2RlIHdhcyBuZXZlciBhY3RpdmF0ZWQgYXMgdGhlIGNvcnJlc3BvbmRpbmcKCSAgY29uZmlndXJlLmFjIGNoYW5nZSB3YXNuJ3QgY29tbWl0dGVkLgoKMjAwOC0xMi0wOSAxMDo1ODowMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IFRoaXMgdGVzdCBzaG91bGQgcmV0dXJuIFRSVUUgbm93IGFzIHN5bmNpbmcgYW4gdW5jb250cm9sbGVkIG9iamVjdCB3aWxsIHN1Y2NlZWQgbm93ICh0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBUaGlzIHRlc3Qgc2hvdWxkIHJldHVybiBUUlVFIG5vdyBhcyBzeW5jaW5nIGFuIHVuY29udHJvbGxlZAoJICBvYmplY3Qgd2lsbCBzdWNjZWVkIG5vdyAodGhlcmUncyBub3RoaW5nIHRvIHN5bmMpLgoKMjAwOC0xMi0wOSAwOTo1NjoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEFnZ3JlZ2F0ZSByZXR1cm4gdmFsdWUgZm9yIGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKCkuIE1vcmUgaW5mbyBpbiBsb2dnaW5nLiBBLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBBZ2dyZWdhdGUgcmV0dXJuIHZhbHVlIGZvciBnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcygpLiBNb3JlIGluZm8gaW4KCSAgbG9nZ2luZy4gQWx3YXlzIHNldCB2YWx1ZXMgb24gZmlyc3Qgc3luYy1jYWxsLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICBNaWNyb29wdGltaXphdGlvbnMuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgRml4IHJldHVybiBjb2RlIGFuZCBjb21tZW50LgoKMjAwOC0xMi0wOSAwOTowMDo1NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBGaXggZGVzY3JpcHRpb24gb2YgaG93IHRvIHNwZWNpZnkgYSB0eXBlIGluIGNhcHMuIEZpeGVzICM1NTM4NzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRml4IGRlc2NyaXB0aW9uIG9mIGhvdyB0byBzcGVjaWZ5IGEgdHlwZSBpbiBjYXBzLiBGaXhlcyAjNTUzODczLgoJICBBbHNvIHJhbmdlcyBhbmQgbGlzdCBjb250YWluIHZhbHVlcyBhbmQgbm90IHByb3BlcnR5LWFzc2lnbm1lbnRzLgoKMjAwOC0xMi0wOCAyMjoyODowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IENoZWNrIGZvciBjaGFuZ2VkIHBhZHMtbGlzdCBiZWZvcmUgY2hlY2tpbmcgdGhlIGxhc3QgcmV0dXJuZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIENoZWNrIGZvciBjaGFuZ2VkIHBhZHMtbGlzdCBiZWZvcmUgY2hlY2tpbmcgdGhlIGxhc3QgcmV0dXJuZWQKCSAgR3N0Rmxvd1JldHVybiBiZWNhdXNlIHRoZSBwYWQgY291bGQgaGF2ZSBiZWVuIHJlbW92ZWQgYW5kIHdlCgkgIG5lZWQgdG8gaWdub3JlIHRoZSB2YWx1ZSBpbiB0aGF0IGNhc2UuCgoyMDA4LTEyLTA4IDE4OjM1OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IEFkZCB2bWV0aG9kIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSB3ZSBzdGFydCB0aGUgdHJhbnNmb3JtIGFuZCB3aGljaCBjYW4gYmUgdXNlZCB0byBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQWRkIHZtZXRob2QgdGhhdCBpcyBjYWxsZWQgYmVmb3JlIHdlIHN0YXJ0IHRoZSB0cmFuc2Zvcm0gYW5kIHdoaWNoIGNhbgoJICBiZSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgdHJhbnNmb3JtLCBzdWNoIGFzIGR5bmFtaWMgcHJvcGVydGllcy4KCjIwMDgtMTItMDUgMjA6MzI6MDMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdC5jOiBTZWFyY2ggZm9yIHBsdWdpbnMgb24gd2luMzIgYmFzZWQgb24gdGhlIGxvY2F0aW9uIG9mIHRoZSBnc3RyZWFtZXIgRExMLiAgRml4ZXMgIzU0ODc4NgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIFNlYXJjaCBmb3IgcGx1Z2lucyBvbiB3aW4zMiBiYXNlZCBvbiB0aGUgbG9jYXRpb24gb2YgdGhlCgkgIGdzdHJlYW1lciBETEwuICBGaXhlcyAjNTQ4Nzg2CgoyMDA4LTEyLTA0IDIwOjEwOjQyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IEFwcGFyZW50bHkgQUNfQ09ORklHX01BQ1JPX0RJUiBicmVha3Mgd2hlbiB1c2luZyBtb3JlIHRoYW4gb25lIG1hY3JvIGRpcmVjdG9yeSwgcmV2ZXJ0aW5nIGxhc3QgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFwcGFyZW50bHkgQUNfQ09ORklHX01BQ1JPX0RJUiBicmVha3Mgd2hlbiB1c2luZyBtb3JlCgkgIHRoYW4gb25lIG1hY3JvIGRpcmVjdG9yeSwgcmV2ZXJ0aW5nIGxhc3QgY2hhbmdlLgoKMjAwOC0xMi0wNCAxOTo0NTowNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBTZXQgQUNfQ09ORklHX01BQ1JPX0RJUiB0byBjb21tb24vbTQgdG8gcG9pbnQgYXV0b2NvbmYgdG8gb3VyIE00IG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBTZXQgQUNfQ09ORklHX01BQ1JPX0RJUiB0byBjb21tb24vbTQgdG8gcG9pbnQgYXV0b2NvbmYgdG8KCSAgb3VyIE00IG1hY3Jvcy4KCjIwMDgtMTEtMjkgMTM6Mjk6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFJlcXVpcmUgZ2V0dGV4dCAwLjE3IGJlY2F1c2Ugb2xkZXIgdmVyc2lvbnMgZG9uJ3QgbWl4IHdpdGggbGlidG9vbCAyLjIuIEF0IGJ1aWxkIHRpbWUgYW4gb2xkZXIgZ2V0dGV4dCB2ZXJzaW9uIHdpbGwgcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEN5Z3dpbiBQb3J0cyBtYWludGFpbmVyCgkgIDx5c2Vsa293aXR6IGF0IHVzZXJzIGRvdCBzb3VyY2Vmb3JnZSBkb3QgbmV0PgoJICAqIGF1dG9nZW4uc2g6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIGdldHRleHQgMC4xNyBiZWNhdXNlIG9sZGVyIHZlcnNpb25zIGRvbid0IG1peCB3aXRoIGxpYnRvb2wKCSAgMi4yLiBBdCBidWlsZCB0aW1lIGFuIG9sZGVyIGdldHRleHQgdmVyc2lvbiB3aWxsIHN0aWxsIHdvcmsuCgkgIEZpeGVzIGJ1ZyAjNTU2MDkxLgoKMjAwOC0xMS0yNyAxMToxMjozMCArMDAwMCAg7J2066y47ZiVIDxpd2luZ3NAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBvbGwuYzogQWRkcyBzdXBwb3J0IGZvciBGRF9DT05ORUNUIGV2ZW50ICh3aW4zMikuIFNlZSAjNTYyMjU4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IOydtOusuO2YlSA8aXdpbmdzIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdHBvbGwuYzogKGdzdF9wb2xsX2ZkX2N0bF93cml0ZSksIChnc3RfcG9sbF9mZF9oYXNfZXJyb3IpOgoJICBBZGRzIHN1cHBvcnQgZm9yIEZEX0NPTk5FQ1QgZXZlbnQgKHdpbjMyKS4gU2VlICM1NjIyNTguCgoyMDA4LTExLTI0IDIwOjAyOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFR1cm4gY29tbWVudCBpbnRvIGd0ay1kb2MgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBUdXJuIGNvbW1lbnQgaW50byBndGstZG9jIGNvbW1lbnQuCgoyMDA4LTExLTI0IDE1OjI3OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFJldmVydCBxdWljayBhY2NlcGNhcHMgYXR0ZW1wdCwgaXQncyBub3QgZnVsbHkgZXF1aXZhbGVudCB0byB0aGUgb2xkIGJlaGF2aW91ciBhbmQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjY2VwdGNhcHMpOgoJICBSZXZlcnQgcXVpY2sgYWNjZXBjYXBzIGF0dGVtcHQsIGl0J3Mgbm90IGZ1bGx5IGVxdWl2YWxlbnQgdG8gdGhlIG9sZAoJICBiZWhhdmlvdXIgYW5kIHRodXMgY2F1c2VzIHJlZ3Jlc3Npb25zLgoKMjAwOC0xMS0yNCAxMTo1Njo0NCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBGaXggbWVtb3J5IGxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgRml4IG1lbW9yeSBsZWFrLgoKMjAwOC0xMS0yNCAwOTo1OTowNyArMDAwMCAgU2ltb24gSG9sbSBUaMO4Z2Vyc2VuIDxvZGllQGNzLmFhdS5kaz4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBSZWR1Y2UgdGhlIG51bWJlciBvZiBzdGF0KCkgY2FsbHMgZm9yIGV2ZXJ5IGZpbGUgZnJvbSB0aHJlZSB0aW1lcyB0byBvbmUgdGltZS4gRml4ZXMgYnVnICM1NjAzNjAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ltb24gSG9sbSBUaMO4Z2Vyc2VuIDxvZGllIGF0IGNzIGRvdCBhYXUgZG90IGRrPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIFJlZHVjZSB0aGUgbnVtYmVyIG9mIHN0YXQoKSBjYWxscyBmb3IgZXZlcnkgZmlsZSBmcm9tIHRocmVlIHRpbWVzCgkgIHRvIG9uZSB0aW1lLiBGaXhlcyBidWcgIzU2MDM2MC4KCjIwMDgtMTEtMjIgMTU6MDk6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUmVuYW1lIGEgdmFyaWFibGUgdG8gbWFrZSB0aGUgY29kZSBjbGVhcmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY2NlcHRjYXBzKToKCSAgUmVuYW1lIGEgdmFyaWFibGUgdG8gbWFrZSB0aGUgY29kZSBjbGVhcmVyLgoKMjAwOC0xMS0yMSAyMDo1NzoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBEb24ndCB3YXJuaW5nIG9uIG9mZnNldD09LTEuIFRha2VuIGZyb20gX2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICBEb24ndCB3YXJuaW5nIG9uIG9mZnNldD09LTEuIFRha2VuIGZyb20gX2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQoKS4KCjIwMDgtMTEtMjEgMTg6MjY6MTQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBDaGVjayBmb3IgbG9jYWxob3N0IGluIFVSSSB3YXMgYmFja3dhcmRzLCBmaXggaXQuIEZpeGVzIHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIENoZWNrIGZvciBsb2NhbGhvc3QgaW4gVVJJIHdhcyBiYWNrd2FyZHMsIGZpeCBpdC4gRml4ZXMgdW5pdCB0ZXN0LgoKMjAwOC0xMS0yMSAxNzoxNDo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBBZGQgYmVnaW5uaW5ncyBvZiBhIG1vcmUgb3B0aW1pemVkIGFjY2VwdGNhcHMgZnVuY3Rpb24gdGhhbiB0aGUgZGVmYXVsdCBjb3JlIG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZmluZF90cmFuc2Zvcm0pLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjY2VwdGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKToKCSAgQWRkIGJlZ2lubmluZ3Mgb2YgYSBtb3JlIG9wdGltaXplZCBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRoYW4gdGhlIGRlZmF1bHQKCSAgY29yZSBvbmUuCgoyMDA4LTExLTIxIDE2OjQ4OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBdm9pZCBnZXR0aW5nIHRoZSBhY2NlcHRjYXBzIGZ1bmN0aW9uIHRvbyBlYXJseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2Fwcyk6CgkgIEF2b2lkIGdldHRpbmcgdGhlIGFjY2VwdGNhcHMgZnVuY3Rpb24gdG9vIGVhcmx5LgoKMjAwOC0xMS0yMSAwODowOTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTWFrZSBnc3QtbGF1bmNoIGhhbmRsZSBMQVRFTkNZIG1lc3NhZ2VzIGFuZCBtYWtlIGl0IHJlY2FsY3VsYXRlIHRoZSBsYXRlbmN5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWFrZSBnc3QtbGF1bmNoIGhhbmRsZSBMQVRFTkNZIG1lc3NhZ2VzIGFuZCBtYWtlIGl0IHJlY2FsY3VsYXRlIHRoZQoJICBsYXRlbmN5LgoKMjAwOC0xMS0yMCAyMTowNToxNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFVzZSBnX2ZpbGVuYW1lX2Zyb21fdXJpKCkgZm9yIFVSSSBwYXJzaW5nIGluIGZpbGVzcmMgcmF0aGVyIHRoYW4gcm9sbGluZyBvdXQgb3duIHNsaWdoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBVc2UgZ19maWxlbmFtZV9mcm9tX3VyaSgpIGZvciBVUkkgcGFyc2luZyBpbiBmaWxlc3JjIHJhdGhlciB0aGFuIHJvbGxpbmcKCSAgb3V0IG93biBzbGlnaHRseSBpbmNvcnJlY3QgdmVyc2lvbi4gRml4ZXMgdXNlIG9mIHNvbWUgcGF0aHMgb24KCSAgd2luMzIuCgoyMDA4LTExLTIwIDIwOjQ0OjU2ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSW4gd2luMzIgY29kZXBhdGgsIGlmIHdlIGZhaWwgdG8gd3JpdGUgdGhlIHJlZ2lzdHJ5LCBjcmVhdGUgdGhlIGRpcmVjdG9yeSBmb3IgaXQgYW5kIHRyeSBhZ2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEluIHdpbjMyIGNvZGVwYXRoLCBpZiB3ZSBmYWlsIHRvIHdyaXRlIHRoZSByZWdpc3RyeSwgY3JlYXRlIHRoZQoJICBkaXJlY3RvcnkgZm9yIGl0IGFuZCB0cnkgYWdhaW4sIG1hdGNoaW5nIHRoZSBiZWhhdmlvdXIgaW4gbm9uLXdpbjMyCgkgIGNvZGVwYXRocy4KCjIwMDgtMTEtMjAgMTQ6MjM6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IENoYW5naW5nIHRoZSByZW5kZXIgZGVsYXkgY2hhbmdlcyB0aGUgbGF0ZW5jeSBhbmQgc28gd2UgbXVzdCBwb3N0IGEgbGF0ZW5jeSBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9yZW5kZXJfZGVsYXkpOgoJICBDaGFuZ2luZyB0aGUgcmVuZGVyIGRlbGF5IGNoYW5nZXMgdGhlIGxhdGVuY3kgYW5kIHNvIHdlIG11c3QgcG9zdCBhCgkgIGxhdGVuY3kgbWVzc2FnZS4KCjIwMDgtMTEtMjAgMTA6MzU6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuKjogQWRkIEdzdFF1ZXJ5VHlwZSBmb3IgY3VzdG9tIHF1ZXJpZXMgaW5zdGVhZCBvZiBoYXZpbmcgdG8gdXNlIHRoZSBub3Qtc28tdmVyeS1jb252ZW5pZW50IHJlZ2lzdHJhdGlvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCBHc3RRdWVyeVR5cGUgZm9yIGN1c3RvbSBxdWVyaWVzIGluc3RlYWQgb2YgaGF2aW5nIHRvIHVzZSB0aGUKCSAgbm90LXNvLXZlcnktY29udmVuaWVudCByZWdpc3RyYXRpb24gaW5mcmFzdHJ1Y3R1cmUgdG8gcmVnaXN0ZXIgbmV3CgkgIHR5cGVzLgoKMjAwOC0xMS0xOSAxMjoyMDowMyArMDAwMCAgQW5kcmV3IEZlcmVuIDxhY2ZlcmVuQHlhaG9vLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogVW5yZWYgdGhlIEdFbnVtQ2xhc3MgYWZ0ZXIgdXNhZ2UgYWdhaW4uIEZpeGVzIGJ1ZyAjNTYxNTAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFuZHJldyBGZXJlbiA8YWNmZXJlbiBhdCB5YWhvbyBkb3QgY29tPgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZGVmYXVsdF9kZWVwX25vdGlmeSk6CgkgIFVucmVmIHRoZSBHRW51bUNsYXNzIGFmdGVyIHVzYWdlIGFnYWluLiBGaXhlcyBidWcgIzU2MTUwMS4KCjIwMDgtMTEtMTkgMTI6MDY6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IEFkZCBkby1sYXRlbmN5IHNpZ25hbCB3aXRoIHRoZSBvbGQgZGVmYXVsdCBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbi4gVGhpcyBhbGxvd3MgZm9yIGN1c3RvbSBsYXRlbmN5IGNhbGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoX2dzdF9ib29sZWFuX2FjY3VtdWxhdG9yKSwgKGdzdF9iaW5fY2xhc3NfaW5pdCksCgkgIChnc3RfYmluX3JlY2FsY3VsYXRlX2xhdGVuY3kpLCAoZ3N0X2Jpbl9kb19sYXRlbmN5X2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBBZGQgZG8tbGF0ZW5jeSBzaWduYWwgd2l0aCB0aGUgb2xkIGRlZmF1bHQgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24uIFRoaXMKCSAgYWxsb3dzIGZvciBjdXN0b20gbGF0ZW5jeSBjYWxjdWxhdGlvbnMgZm9yIHdoZW4gdGhlIGRlZmF1bHQgaXMgbm90CgkgIHN1ZmZpY2llbnQuCgkgIEFQSTogR3N0QmluOjpkby1sYXRlbmN5IHNpZ25hbC4KCjIwMDgtMTEtMTggMTM6MzY6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBzeW1ib2xzIHRvIC5kZWYgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgc3ltYm9scyB0byAuZGVmIGZpbGUuCgoyMDA4LTExLTE4IDA5OjU4OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGhvZCB0byByZWNhbGN1bGF0ZSBhbmQgcmVkaXN0cmlidXRlIHRoZSBsYXRlbmN5IG9uIGEgYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVjYWxjdWxhdGVfbGF0ZW5jeSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIEFkZCBtZXRob2QgdG8gcmVjYWxjdWxhdGUgYW5kIHJlZGlzdHJpYnV0ZSB0aGUgbGF0ZW5jeSBvbiBhIGJpbi4KCSAgQVBJOiBnc3RfYmluX3JlY2FsY3VsYXRlX2xhdGVuY3koKS4KCjIwMDgtMTEtMTggMDk6NTI6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IERvY3VtZW50IHRoZSBmcmVlX2Z1bmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgRG9jdW1lbnQgdGhlIGZyZWVfZnVuYy4KCjIwMDgtMTEtMTcgMjE6NDM6MDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSBpbnN0ZWFkIG9mIGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZSBhcyBpdCBpcyBtYXBwZWQgdG8gYSBjYXN0IG9uIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgVXNlIGdzdF9ndWludDY0X3RvX2dkb3VibGUgaW5zdGVhZCBvZiBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUKCSAgYXMgaXQgaXMgbWFwcGVkIHRvIGEgY2FzdCBvbiBub24td2luMzIgcGxhdGZvcm1zLgoKMjAwOC0xMS0xNyAyMTo0MTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEtlZXAgbGFzdC12YWx1ZSBhbmQgb25seSBjYWxsIHNldF9wcm9wZXJ0eSBpZiB2YWx1ZSBoYXMgY2hhbmdlZC4gVGhpcyBzdXByZXNzZXMgYWxsIHRoZSBnX29iamVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgS2VlcCBsYXN0LXZhbHVlIGFuZCBvbmx5IGNhbGwgc2V0X3Byb3BlcnR5IGlmIHZhbHVlIGhhcyBjaGFuZ2VkLiBUaGlzCgkgIHN1cHJlc3NlcyBhbGwgdGhlIGdfb2JqZWN0X25vdGlmaWVzIHdlIHdvdWxkIHRyaWdnZXIgb3RoZXJ3aXNlLiBJdAoJICBhbHNvIGFsbG93cyB0aGUgdXNlciB0byBjaGFnZSB0aGUgdmFsdWUgd2hpbGUgdGhlcmUgaXMgbm8gY29udHJvbGxlcgoJICBjaGFuZ2UuCgoyMDA4LTExLTE3IDIxOjI1OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogRG9uJ3QgY3Jhc2ggaWYgZWl0aGVyIG9mIHRoZSBzdHJpbmcgR1ZhbHVlcyBpcyBlbXB0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIERvbid0IGNyYXNoIGlmIGVpdGhlciBvZiB0aGUgc3RyaW5nIEdWYWx1ZXMgaXMgZW1wdHkuCgoyMDA4LTExLTE3IDE1OjQ4OjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9hbGxfdXJpX2hhbmRsZXJzKTogTmV3IGZ1bmN0aW9uLCBwcmludHMgYSBzdW1tYXJ5IG9mIHdoYXQgVVJJIHNjaGVtZXMgYXJlIHN1cHBvcnRlZCBieSB3aGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTEtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfYWxsX3VyaV9oYW5kbGVycyk6IE5ldyBmdW5jdGlvbiwKCSAgcHJpbnRzIGEgc3VtbWFyeSBvZiB3aGF0IFVSSSBzY2hlbWVzIGFyZSBzdXBwb3J0ZWQgYnkgd2hhdAoJICBlbGVtZW50cy4KCSAgKG1haW4pOiBQbHVtYiBpbiBzdXBwb3J0IGZvciAtLXVyaS1oYW5kbGVycyBvciAtdSwgYW5kIGZpeCB0aGUKCSAgYXJnYyBjaGVjayBmb3IgLWEgYW5kIC11LgoKMjAwOC0xMS0xNyAwNDo0OTowNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHV0aWxzLmg6IEFkZCBHX0dOVUNfUFVSRSB0byBnc3RfdXRpbF91aW50NjRfc2NhbGUqIGFuZCB0aGUgZG91YmxlPC0+dWludDY0IGNvbnZlcnNpb24gZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIEdfR05VQ19QVVJFIHRvIGdzdF91dGlsX3VpbnQ2NF9zY2FsZSogYW5kIHRoZSBkb3VibGU8LT51aW50NjQKCSAgY29udmVyc2lvbiBmdW5jdGlvbnMuCgoyMDA4LTExLTEzIDE4OjA5OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBBdm9pZCBjb3N0bHkgdHlwZWNoZWNraW5nIGZvciB0cml2aWFsbHkgY29ycmVjdCBwb2ludGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6CgkgIEF2b2lkIGNvc3RseSB0eXBlY2hlY2tpbmcgZm9yIHRyaXZpYWxseSBjb3JyZWN0IHBvaW50ZXJzLgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF93YWl0KToKCSAgQWRkIHNvbWUgR19MSUtFTFkgaGVyZSBhbmQgdGhlcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9wdXNoKToKCSAgQWRkIHNvbWUgZGVidWcgaW5mby4KCjIwMDgtMTEtMTMgMTg6MDU6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDogU21hbGwgdHdlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDoKCSAgU21hbGwgdHdlYWtzLgoKMjAwOC0xMS0xMyAxODowMzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL29sZC90ZXN0c3VpdGUvOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBkZXByZWNhdGVkIEFQSSBnX21lbV9jaHVuayouCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzogKG1haW4pOgoJICAqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGx1Z2luL2xvYWRpbmcuYzogKG1haW4pOgoJICBSZW1vdmUgcmVmZXJlbmNlcyB0byBkZXByZWNhdGVkIEFQSSBnX21lbV9jaHVuayouCgkgIEZpeGVzICM1NjA0NDIuCgoyMDA4LTExLTEyIDE2OjU1OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWRkIC0tcGx1Z2luIG9wdGlvbi4gRml4ZXMgIzU2MDMwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICBBZGQgLS1wbHVnaW4gb3B0aW9uLiBGaXhlcyAjNTYwMzAxLgoKMjAwOC0xMS0xMiAxMjo0NTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvcG9sbC10aW1lb3V0OiBRdWljayBicmFpbmR1bXAgZm9yIGEgcG9zc2libGUgKG5vdCB0b3RhbGx5IHZlcmlmaWVkKSBhdG9taWMgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6CgkgIFF1aWNrIGJyYWluZHVtcCBmb3IgYSBwb3NzaWJsZSAobm90IHRvdGFsbHkgdmVyaWZpZWQpIGF0b21pYyBjYXNlLgoKMjAwOC0xMS0xMiAxMDozOToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lio6IERvbid0IHdyaXRlIGFuZCBjaGVjayBhIENSQyBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeSBmaWxlLiBJdCdzIGd1YXJhbnRlZWQgdGhhdCB0aGUgcmVnaXN0cnkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jaHVuayksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgRG9uJ3Qgd3JpdGUgYW5kIGNoZWNrIGEgQ1JDIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGZpbGUuIEl0J3MKCSAgZ3VhcmFudGVlZCB0aGF0IHRoZSByZWdpc3RyeSBpcyBjb21wbGV0ZWx5IHdyaXR0ZW4gKGl0J3MgZmlyc3Qgd3JpdHRlbgoJICB0byBhIHRlbXBvcmFyeSBmaWxlIGFuZCB0aGVuIG1vdmVkKSBhbmQgaWYgdGhlIHJlZ2lzdHJ5IHdhcyBjb3JydXB0ZWQKCSAgYnkgc29tZSBoYXJkd2FyZSBmYWlsdXJlIHdlIHdvdWxkIGhhdmUgYmlnZ2VyIHByb2JsZW1zLgoJICBCdW1wIGJpbmFyeSByZWdpc3RyeSB2ZXJzaW9uIHRvIDAuMTAuMjEuMSBmb3IgdGhpcyBhcyBpdCdzIGFuCgkgIGluY29tcGF0aWJsZSBjaGFuZ2UgYW5kIHRvIGVuc3VyZSB0aGF0IHRoZSByZWdpc3RyeSBnZXRzIHJlYnVpbGQKCSAgYWZ0ZXIgdGhlIHVwZGF0ZS4KCSAgVGhpcyBzYXZlcyBzb21lIG1pbGxpc2Vjb25kcyBmb3IgcmVhZGluZy93cml0aW5nIHRoZSByZWdpc3RyeS4KCSAgRml4ZXMgYnVnICM1NjAzOTkuCgoyMDA4LTExLTExIDE0OjUwOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9yYW5kb20vd3RheS9wb2xsLXRpbWVvdXQ6IFNvbWUgcHNldWRvIGNvZGUgZm9yIGhvdyB3ZSBjb3VsZCBpbXBsZW1lbnQgY2xvY2sgdGltZW91dHMgd2l0aCBHc3RQb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS93dGF5L3BvbGwtdGltZW91dDoKCSAgU29tZSBwc2V1ZG8gY29kZSBmb3IgaG93IHdlIGNvdWxkIGltcGxlbWVudCBjbG9jayB0aW1lb3V0cyB3aXRoIEdzdFBvbGwuCgoyMDA4LTExLTEwIDEzOjU2OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogVXBkYXRlIEF1dGhvciBzdHJpbmcgdG8gbWF0Y2ggb3RoZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgIFVwZGF0ZSBBdXRob3Igc3RyaW5nIHRvIG1hdGNoIG90aGVycy4KCjIwMDgtMTEtMDYgMTU6Mzc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogUmVvcmdhbml6ZSBzb21lIG1vcmUsIGJlIG1vcmUgY29uc2VydmF0aXZlIHdpdGggdGhlIEdTVF9UWVBFX0FSUkFZIG5vdCBiZWluZyBmaXhlZCBhbmQgaW5saW5lIHRoZSB0cmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdHlwZV9pc19maXhlZCksIChnc3RfdmFsdWVfaXNfZml4ZWQpOgoJICBSZW9yZ2FuaXplIHNvbWUgbW9yZSwgYmUgbW9yZSBjb25zZXJ2YXRpdmUgd2l0aCB0aGUgR1NUX1RZUEVfQVJSQVkgbm90CgkgIGJlaW5nIGZpeGVkIGFuZCBpbmxpbmUgdGhlIHRyaXZpYWwgY2hlY2suCgoyMDA4LTExLTA2IDE1OjA5OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQ2FsbGdyaW5kIG1pY3JvIG9wdGltaXNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19jb3B5KSwgKF9nc3RfY2Fwc19mcmVlKSwKCSAgKGdzdF9jYXBzX21lcmdlX3N0cnVjdHVyZSksIChnc3RfY2Fwc19nZXRfc3RydWN0dXJlKSwKCSAgKGdzdF9jYXBzX2NvcHlfbnRoKSwgKGdzdF9jYXBzX3NldF9zaW1wbGUpLAoJICAoZ3N0X2NhcHNfc2V0X3NpbXBsZV92YWxpc3QpLCAoZ3N0X2NhcHNfaXNfZml4ZWQpLAoJICAoZ3N0X2NhcHNfaXNfZXF1YWxfZml4ZWQpLCAoZ3N0X2NhcHNfaW50ZXJzZWN0KSwKCSAgKGdzdF9jYXBzX3N1YnRyYWN0KSwgKGdzdF9jYXBzX25vcm1hbGl6ZSksIChnc3RfY2Fwc19kb19zaW1wbGlmeSksCgkgIChnc3RfY2Fwc190b19zdHJpbmcpOgoJICBDYWxsZ3JpbmQgbWljcm8gb3B0aW1pc2F0aW9ucy4KCSAgQXZvaWQgYXJyYXkgYm91bmRzIGNoZWNrcyBhbmQgZm9yY2UgaW5saW5lIG9mIHRyaXZpYWwgZnVuY3Rpb24uCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfbmFtZV9kZWZhdWx0KToKCSAgLTEgaXMgZXF1aXZhbGVudCB0byBsZXR0aW5nIGdsaWIgdG8gdGhlIHN0cmxlbiBidXQgdGhlbiB0aGVyZSBpcyBtb3JlCgkgIHJvb20gZm9yIG9wdGltaXNhdGlvbnMgYW5kIGl0J3Mgbm90IG91ciBmYXVsdC4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ld193aXRoX3NpemUpOgoJICBubyBuZWVkIHRvIGNsZWFyIHRoZSBhcnJheSwgd2UncmUgY29vbC4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF90eXBlX2lzX2ZpeGVkKSwgKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIFRoZSBtb3N0IGNvbW1vbiBfaXNfZml4ZWQoKSBjaGVjayBpcyBkb25lIG9uIGZ1bmRhbWVudGFsIGdsaWIgYmFzZQoJICB0eXBlcyBzbyB3ZSBjaGVjayB0aGlzIGZpcnN0IGluc3RlYWQgb2YgZG9pbmcgYSBodWdlIGFtb3VudCBvZgoJICB1c2VsZXNzIEdTVF9UWVBFX0FSUkFZIGNhbGxzLgoKMjAwOC0xMS0wNiAxMjowMzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5oOiBBZGQgYSBTS0lQIHNlZWsgZmxhZyBmb3IgdXNlIHdpdGggYWR2YW5jZWQgdHJpY2ttb2Rlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBhIFNLSVAgc2VlayBmbGFnIGZvciB1c2Ugd2l0aCBhZHZhbmNlZCB0cmlja21vZGVzLgoJICBBUEk6IEdzdFNlZWtGbGFnczo6R1NUX1NFRUtfRkxBR19TS0lQCgoyMDA4LTExLTA1IDE2OjU3OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBObyBuZWVkIHRvIG1lbXNldCwgd2UgY2FuIGNsZWFyIHRoZSB2YWx1ZSBvdXJzZWx2ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfZW1wdHlfbmV3X3dpdGhfc2l6ZSk6CgkgIE5vIG5lZWQgdG8gbWVtc2V0LCB3ZSBjYW4gY2xlYXIgdGhlIHZhbHVlIG91cnNlbHZlcy4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF90eXBlX2lzX2ZpeGVkKSwKCSAgKGdzdF92YWx1ZV9nZXRfY29tcGFyZV9mdW5jKToKCSAgU29tZSBvcHRpbWlzYXRpb25zIGZyb20gYSBmZXcgY2FsbGdyaW5kIHNlc3Npb25zOgoJICBXaGVuIGNoZWNraW5nIGlmIGEgdHlwZSBpcyBmaXhlZCwgY2hlY2sgZm9yIHRyaXZpYWwgZnVuZGFtZW50YWwgdHlwZXMKCSAgZmlyc3QgYmVmb3JlIGNoZWNraW5nIHR5cGVzIGZvciB3aGljaCB3ZSBuZWVkIHRvIGdldCB0aGUgdHlwZSBmb2xsb3dlZAoJICBieSB0aGUgaGVhdnkgZHV0eSB0eXBlIGNoZWNrcywgdGhpcyByZWR1Y2VzIHRoZSBhbW91bnQgb2YKCSAgZ190eXBlX2Z1bmRhbWVudGFsKCkgY2FsbHMgYSBsb3QuCgkgIFdoZW4gZ2V0dGluZyB0aGUgY29tcGFyZSBmdW5jdGlvbiwgZmlyc3QgY2hlY2sgZm9yIG91ciByZWdpc3RlcmVkIHR5cGVzLgoJICBJZiB0aGF0IGZhaWxzLCBkbyB0aGUgaGVhdnkgZHV0eSBnX3R5cGVfaXNfYSgpIGNoZWNrcywgcmVkdWNlcyB0aGUKCSAgYW1vdW50IG9mIGdfdHlwZV9pc19hKCkgY29uc2lkZXJhYmx5LgoKMjAwOC0xMS0wNSAxMToxNzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IE11bWJsZSBzb21ldGhpbmcgYWJvdXQgcmVtb3ZpbmcgR3N0WE1MLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBNdW1ibGUgc29tZXRoaW5nIGFib3V0IHJlbW92aW5nIEdzdFhNTC4KCjIwMDgtMTEtMDQgMTg6MTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEdldCB0aGUgc2VxbnVtIGJlZm9yZSB3ZSBkaXNwb3NlIHRoZSBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBHZXQgdGhlIHNlcW51bSBiZWZvcmUgd2UgZGlzcG9zZSB0aGUgbWVzc2FnZS4KCjIwMDgtMTEtMDQgMTY6MTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBSZWZlciB0byB0aGUgZnJhbWVzdGVwcGluZyBkb2N1bWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgUmVmZXIgdG8gdGhlIGZyYW1lc3RlcHBpbmcgZG9jdW1lbnQuCgoyMDA4LTExLTA0IDE1OjU2OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQ29weSBzZXFudW1zIGZyb20gZXZlbnRzIHRvIG1lc3NhZ2VzIHNvIHRoYXQgdGhleSBjYW4gYWxsIGJlIHJlbGF0ZWQgYmFjayB0byBlYWNob3RoZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKSwgKGdzdF9iaW5fcXVlcnkpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIENvcHkgc2VxbnVtcyBmcm9tIGV2ZW50cyB0byBtZXNzYWdlcyBzbyB0aGF0IHRoZXkgY2FuIGFsbCBiZSByZWxhdGVkCgkgIGJhY2sgdG8gZWFjaG90aGVyLgoKMjAwOC0xMS0wNCAxNTo1MjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogUHJpbnQgdGhlIG1lc3NhZ2Ugc2VxbnVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFByaW50IHRoZSBtZXNzYWdlIHNlcW51bXMuCgoyMDA4LTExLTA0IDEzOjU2OjM3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfc2VxbnVtX25leHQpOiBSZWZhY3RvciBmb3IgY2xhcml0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTEtMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3NlcW51bV9uZXh0KTogUmVmYWN0b3IgZm9yIGNsYXJpdHkuCgkgIEFsc28gYWRkIEFQSTogdG8gcHJldmlvdXMgY2hhbmdlbG9nIGVudHJ5LgoKMjAwOC0xMS0wNCAxMjoyMjo1MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgQWRkIHNlcXVlbmNlIG51bWJlcnMgdG8gZXZlbnRzIGFuZCBtZXNzYWdlcy4gU2VlICM1NTkyNTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTExLTA0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBBZGQgc2VxdWVuY2UgbnVtYmVycyB0byBldmVudHMgYW5kIG1lc3NhZ2VzLiBTZWUgIzU1OTI1MC4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X3V0aWxfc2VxbnVtX25leHQsIGdzdF91dGlsX3NlcW51bV9jb21wYXJlKToKCSAgTmV3IGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoX2dzdF9ldmVudF9jb3B5LCBnc3RfZXZlbnRfbmV3KTogSW5pdGlhbGl6ZSBuZXcKCSAgZXZlbnRzIHdpdGggYSBuZXcgc2VxdWVuY2UgbnVtYmVyLCBhbmQgY29weSBpdCB3aGVuIGNvcHlpbmcuCgkgIChnc3RfZXZlbnRfZ2V0X3NlcW51bSwgZ3N0X2V2ZW50X3NldF9zZXFudW0pOiBBY2Nlc3NvcnMgZm9yIGFuCgkgIGV2ZW50J3Mgc2VxdWVuY2UgbnVtYmVyLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoX2dzdF9tZXNzYWdlX2NvcHksIGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICAoZ3N0X2V2ZW50X2dldF9zZXFudW0sIGdzdF9ldmVudF9zZXRfc2VxbnVtKTogQXMgd2l0aCBldmVudHMsIHNvCgkgIHdpdGggbWVzc2FnZXMuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MuCgoyMDA4LTExLTA0IDExOjU1OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBTb21lIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbCBmaXhlcyB0aGFua3MgdG8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tZ3N0cmVhbWVyLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDoKCSAgU29tZSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWwgZml4ZXMgdGhhbmtzIHRvCgkgIEFuZHJldyBGZXJlbi4gRml4ZXMgIzU1ODQ1OS4KCjIwMDgtMTEtMDMgMTI6Mjk6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBEb24ndCBib3RoZXIgd2l0aCB0aGUgR1RpbWVyIGlmIHdlIGRvbid0IG91dHB1dCB0aGUgcmVzdWx0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIERvbid0IGJvdGhlciB3aXRoIHRoZSBHVGltZXIgaWYgd2UgZG9uJ3Qgb3V0cHV0IHRoZSByZXN1bHRzLgoKMjAwOC0xMS0wMyAxMDo1OTo0OSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBsaWJzL2dzdC9uZXQvTWFrZWZpbGUuYW06IEFkZCBXSU4zMl9MSUJTIHRvIGxpYmdzdG5ldCBMSUJBREQuIEZpeGVzICM1NTczMDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGF2aWQgU2NobGVlZiAgPGRzQHNjaGxlZWYub3JnPgoJICAqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgQWRkIFdJTjMyX0xJQlMgdG8gbGliZ3N0bmV0IExJQkFERC4gRml4ZXMgIzU1NzMwMC4KCjIwMDgtMTAtMzEgMTU6NTQ6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBPaCBteSwgc3R1ZGlwLCBzdHVwaWQgbWUuIFJlbW92ZSBkb3VibGUgc3RhdCgpIGNhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBPaCBteSwgc3R1ZGlwLCBzdHVwaWQgbWUuIFJlbW92ZSBkb3VibGUgc3RhdCgpIGNhbGwuCgoyMDA4LTEwLTMxIDE0OjI0OjQ5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IFVzZSBnX3VubGluayBpbnN0ZWFkIG9mIHVubGluay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBVc2UgZ191bmxpbmsgaW5zdGVhZCBvZiB1bmxpbmsuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBVc2UgZ2xpYiB0eXBlLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBBZGQgYSBGSVhNRTouCgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRm9ybWF0dGluZyAmIHdoaXRlc3BhY2VzLgoKMjAwOC0xMC0zMSAwODo1MzoyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBEb2MgdHlwby4gVXNlIHJldHVybiB2YWx1ZSBvZiBwYXJlbnRfY2xhc3MtPmV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIERvYyB0eXBvLiBVc2UgcmV0dXJuIHZhbHVlIG9mIHBhcmVudF9jbGFzcy0+ZXZlbnQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgQ2hhaW4gdXAgYXQgdGhlIGVuZCBmb3IgY29uc2lzdGVuY3kuCgoyMDA4LTEwLTMwIDE1OjI5OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogQ2hhbmdlIHRvIHhpbmNsdWRlIGJhc2VkIGJ1aWxkIC0gaXRzIGZhc3RlciBhbmQgZWFzaWVyIHRvIG1haW50YWluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBDaGFuZ2UgdG8geGluY2x1ZGUgYmFzZWQgYnVpbGQgLSBpdHMgZmFzdGVyIGFuZCBlYXNpZXIgdG8gbWFpbnRhaW4uCgoyMDA4LTEwLTMwIDE0OjE1OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBVc2UgZ191bmxpbmsoKSBhcyBub25lIG9mIHRoZXNlIGFyZSBkaXJlY3Rvcmllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIFVzZSBnX3VubGluaygpIGFzIG5vbmUgb2YgdGhlc2UgYXJlIGRpcmVjdG9yaWVzLgoKMjAwOC0xMC0yOSAxNzowNDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBTb21lIG1vcmUgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyk6CgkgIFNvbWUgbW9yZSBjb21tZW50cy4KCjIwMDgtMTAtMjcgMTU6MDI6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSWYgd2UgaGF2ZSBhIGZpeGF0ZSBmdW5jdGlvbiwgY2FsbCBpdCBldmVuIGlmIHdlIGFscmVhZHkgaGF2ZSBmaXhlZCBjYXBzIGJlY2F1c2UgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZmluZF90cmFuc2Zvcm0pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKToKCSAgSWYgd2UgaGF2ZSBhIGZpeGF0ZSBmdW5jdGlvbiwgY2FsbCBpdCBldmVuIGlmIHdlIGFscmVhZHkgaGF2ZSBmaXhlZCBjYXBzCgkgIGJlY2F1c2UgdGhlIHN1YmNsYXNzIG1pZ2h0IGFkZCBzb21lIGNhcHMuIE1ha2VzIGF1ZGlvY29udmVydCBhZGQgYQoJICBkZWZhdWx0IGNoYW5uZWwgbGF5b3V0LgoKMjAwOC0xMC0yNCAwOTo0MToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDbGVhciB0aGUgb3V0cHV0IGJ1ZmZlciB2YXJpYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSk6CgkgIENsZWFyIHRoZSBvdXRwdXQgYnVmZmVyIHZhcmlhYmxlLgoJICBDbGVhbnVwcyB0byB0aGUgZXJyb3IgcGF0aCBpbiB0aGUgZ2V0cmFuZ2UgZnVuY3Rpb24uCgkgIEZpeGVzICM1NTc2NDkuCgoyMDA4LTEwLTIzIDEyOjUyOjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVXNlIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MoKSBhbmQgaGFuZGxlIGVycm9ycyBpbnN0ZWFkIG9mIHVzaW5nIGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYygpIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgVXNlIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MoKSBhbmQgaGFuZGxlIGVycm9ycyBpbnN0ZWFkIG9mCgkgIHVzaW5nIGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYygpIHdoaWNoIGFib3J0cyBpZiB0aGUgYnVmZmVyIGNvdWxkbid0CgkgIGJlIGFsbG9jYXRlZC4KCjIwMDgtMTAtMjMgMDk6NDk6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBTZXQgdGhlIGxhc3Rfc3RvcCB0byBhIG1vcmUgbWVhbmluZ2Z1bCBwb3NpdGlvbiB3aGVuIGNvbmZpZ3VyaW5nIHRoZSBzZWdtZW50LiBpZS4gdGhlIHN0YXJ0L3N0b3Agb2YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpOgoJICBTZXQgdGhlIGxhc3Rfc3RvcCB0byBhIG1vcmUgbWVhbmluZ2Z1bCBwb3NpdGlvbiB3aGVuIGNvbmZpZ3VyaW5nIHRoZQoJICBzZWdtZW50LiBpZS4gdGhlIHN0YXJ0L3N0b3Agb2YgdGhlIHNlZ21lbnQgb3IgY2xpcHBlZCBhZ2FpbnN0IHRoZQoJICB1cGRhdGVkIHNlZ21lbnQgYm91bmRhcmllcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSB1bml0IHRlc3RzIGZvciB0aGUgbGFzdF9zdG9wLgoKMjAwOC0xMC0yMyAwNzoxMTo1NCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IFVzZSBHU1RfKFJFQUR8V1JJVEUpXyhGTE9BVHxET1VCTEUpXyhMRXxCRSkgaW5zdGVhZCBvZiBvdXIgb3duIGNvcGllcyBvZiB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgVXNlIEdTVF8oUkVBRHxXUklURSlfKEZMT0FUfERPVUJMRSlfKExFfEJFKSBpbnN0ZWFkIG9mIG91ciBvd24KCSAgY29waWVzIG9mIHRoZW0uCgoyMDA4LTEwLTIzIDA3OjA5OjIxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IE1vdmUgZmxvYXQgZW5kaWFubmVzcyBjb252ZXJzaW9uIG1hY3JvcyBmcm9tIGxpYmdzdGZsb2F0Y2FzdCB0byBjb3JlIGFzIGl0J3MgdXNlZnVsIGluIGdlbmVyYWwsIGV2ZW4gaW4gY29yZS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBNb3ZlIGZsb2F0IGVuZGlhbm5lc3MgY29udmVyc2lvbiBtYWNyb3MgZnJvbSBsaWJnc3RmbG9hdGNhc3QKCSAgdG8gY29yZSBhcyBpdCdzIHVzZWZ1bCBpbiBnZW5lcmFsLCBldmVuIGluIGNvcmUuIEZpeGVzIGJ1ZyAjNTU1MTk2LgoJICBUaGlzIGFkZHMgR0RPVUJMRV9GUk9NX0JFLCBHRE9VQkxFX0ZST01fTEUsIEdET1VCTEVfVE9fQkUsCgkgIEdET1VCTEVfVE9fTEUsIEdET1VCTEVfU1dBUF9MRV9CRSwgR0ZMT0FUX0ZST01fQkUsIEdGTE9BVF9GUk9NX0xFLAoJICBHRkxPQVRfVE9fQkUsIEdGTE9BVF9UT19MRSwgR0ZMT0FUX1NXQVBfTEVfQkUuCgkgIEFsc28gYWRkIEdTVF9SRUFEXyBhbmQgR1NUX1dSSVRFXyBtYWNyb3MgZm9yIGZsb2F0cyBhbmQgZG91YmxlczoKCSAgR1NUX1JFQURfRkxPQVRfTEUsIEdTVF9SRUFEX0ZMT0FUX0JFLCBHU1RfUkVBRF9ET1VCTEVfTEUsCgkgIEdTVF9SRUFEX0RPVUJMRV9CRSwgR1NUX1dSSVRFX0ZMT0FUX0xFLCBHU1RfV1JJVEVfRkxPQVRfQkUsCgkgIEdTVF9XUklURV9ET1VCTEVfTEUsIEdTVF9XUklURV9ET1VCTEVfQkUuCgoyMDA4LTEwLTIyIDE0OjQ3OjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBnc3RfYnl0ZV9yZWFkZXJfZ2V0X2RhdGEgYW5kIGdzdF9ieXRlX3JlYWRlcl9wZWVrX2RhdGEgdG8gZ2V0IGEgcG9pbnRlciB0byB0aGUgZGF0YSBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzogKGdzdF9ieXRlX3JlYWRlcl9nZXRfZGF0YSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla19kYXRhKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFQSTogQWRkIGdzdF9ieXRlX3JlYWRlcl9nZXRfZGF0YSBhbmQgZ3N0X2J5dGVfcmVhZGVyX3BlZWtfZGF0YQoJICB0byBnZXQgYSBwb2ludGVyIHRvIHRoZSBkYXRhIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGFuZCBoYXZlCgkgIGEgZ3VhcmFudGVlZCBzaXplLgoKMjAwOC0xMC0yMiAxNDoyNToxNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEZpeCBhIGJ1ZyBpbiB0aGUgb3V0cHV0IG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IHN1bW1hcnkgd2hlbiAtLWdzdC1kaXNhYmxlLXJlZ2lzdHJ5IGlzIHN1cHBsaWVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IGEgYnVnIGluIHRoZSBvdXRwdXQgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgc3VtbWFyeQoJICB3aGVuIC0tZ3N0LWRpc2FibGUtcmVnaXN0cnkgaXMgc3VwcGxpZWQKCjIwMDgtMTAtMjIgMTM6NDc6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IEZpeCB0aGUgbmFtZXMgb2YgMiBmdW5jdGlvbnMgaW4gdGhlIGRvY3Mgc3RyaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJ5dGVyZWFkZXIuYzoKCSAgRml4IHRoZSBuYW1lcyBvZiAyIGZ1bmN0aW9ucyBpbiB0aGUgZG9jcyBzdHJpbmdzLgoKMjAwOC0xMC0yMSAxNjozMDo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBQcm90ZWN0IHNpbmtfYWxsb2MgY2FwcyB3aXRoIHRoZSBzaW5rcGFkIGxvY2sgdG8gYXZvaWQgbmFzdHkgY2FwcyByZWZjb3VudCBwcm9ibGVtcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc3VnZ2VzdCk6CgkgIFByb3RlY3Qgc2lua19hbGxvYyBjYXBzIHdpdGggdGhlIHNpbmtwYWQgbG9jayB0byBhdm9pZCBuYXN0eSBjYXBzCgkgIHJlZmNvdW50IHByb2JsZW1zIGFzIHNlZW4gaW4gYmFuc2hlZSBhbmQgbWF5YmUgYWxzbyBpbiBmYXJzaWdodDIuCgkgIFJlbW92ZSBhdG9taWMgaW50IG5vdyB0aGF0IHdlIG5lZWQgdG8gdGFrZSB0aGUgbG9jayBhbnl3YXlzLgoKMjAwOC0xMC0yMCAxNToxODoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wbGVtZW50IG1vcmUgc2Vla2luZyBpbiBwdWxsIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZGVmYXVsdF9wcmVwYXJlX3NlZWtfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgSW1wbGVtZW50IG1vcmUgc2Vla2luZyBpbiBwdWxsIG1vZGUuCgkgIFVzZSBwYWQgY29udmVydCBmdW5jdGlvbnMgdG8gY29udmVydCBwb3NpdGlvbiB0byB0aGUgcmVxdWVzdGVkIGZvcm1hdC4KCSAgRml4IHBvc2l0aW9uL2R1cmF0aW9uIHJlcG9ydGluZyBpbiBwdWxsIG1vZGUuCgkgIEltcGxlbWVudCBwb3NpdGlvbiBhbmQgZHVyYXRpb24gcmVwb3J0aW5nIGluIG90aGVyIGZvcm1hdHMgdGhhbiB0aW1lLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIG1lbWJlciB0byBrZWVwIHRyYWNrIG9mIHdoZW4gdGhlIHNlZ21lbnQgaXMgcGxheWluZy4KCjIwMDgtMTAtMjAgMTM6MzI6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFdoZW4gd2UgdXNlIGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgd2l0aG91dCB3YW50aW5nIHRvIHNldCB0aGUgY2FwcyB3ZSBhbHNvIGRvbid0IG5lZWQgdG8gY2hlY2sgaWYgdGhlIGMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKToKCSAgV2hlbiB3ZSB1c2UgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSB3aXRob3V0IHdhbnRpbmcgdG8gc2V0IHRoZSBjYXBzIHdlCgkgIGFsc28gZG9uJ3QgbmVlZCB0byBjaGVjayBpZiB0aGUgY2FwcyBhcmUgY29tcGF0aWJsZSBiZWNhdXNlIHRoZSBjYWxsZXIKCSAgcHJlc3VtYWJseSBpcyBnb2luZyB0byBwZXJmb3JtIGl0cyBvd24gY3VzdG9tIGNoZWNrcy4gRml4ZXMgc29tZSBjYXNlcwoJICB3aGVyZSBiYXNldHJhbnNmb3JtIGVsZW1lbnRzIHdvdWxkIGVycm9yIG91dCB3aGVuIGl0IHdhcyBub3QgbmVlZGVkLgoKMjAwOC0xMC0yMCAxMzoyOTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVcGRhdGUgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgVXBkYXRlIGNvbW1lbnQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcmVjb25maWd1cmUpOgoJICBBZGQgc29tZSBkZWJ1ZyBpbmZvLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBtZXRob2QuCgoyMDA4LTEwLTE5IDE5OjU3OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspOwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspOwoJICBSZW1vdmUgZHVwbGljYXRlZCBhc3NpZ25tZW50IGFuZCBsb2cgYSBtZXNzYWdlIGluIGZhaWx1cmUgY2FzZS4KCjIwMDgtMTAtMTkgMTA6MTM6MzkgKzAwMDAgIERpZyBHZSA8ZGlnLmdlLmNuQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiBGaXggY29weSduJ3Bhc3RlIGJ1ZyBpbiBoZWxsbyB3b3JsZCBleGFtcGxlICgjNTU2OTAwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEaWcgR2UgPGRpZy5nZS5jbiBhdCBnbWFpbCBjb20+CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChtYWluKToKCSAgRml4IGNvcHknbidwYXN0ZSBidWcgaW4gaGVsbG8gd29ybGQgZXhhbXBsZSAoIzU1NjkwMCkuCgoyMDA4LTEwLTE3IDEzOjI3OjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBRdWVyeSB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHdoZW4gYWN0aXZhdGluZyB0aGUgcGFkIGluIHB1bGwgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgUXVlcnkgdGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyB3aGVuIGFjdGl2YXRpbmcgdGhlIHBhZCBpbiBwdWxsIG1vZGUuCgkgIEltcGxlbWVudCBkdXJhdGlvbiBxdWVyeSBpbiBwdWxsIG1vZGUgYnkgdXNpbmcgdGhlIGluc3RhbGxlZCBwYWQgY29udmVydAoJICBmdW5jdGlvbiB0byBjb252ZXJ0IGZyb20gYnl0ZXMgdG8gdGhlIHJlcXVlc3RlZCBmb3JtYXQuCgoyMDA4LTEwLTE2IDE0OjA5OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGhvZCB0byBjb21taXQgdGhlIHN0YXRlIGluIHN1YmNsYXNzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19wcmVyb2xsKSwKCSAgKGdzdF9iYXNlX3NpbmtfZmx1c2hfc3RhcnQpLCAoZ3N0X2Jhc2Vfc2lua19mbHVzaF9zdG9wKSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc2lua19sb29wKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZCBtZXRob2QgdG8gY29tbWl0IHRoZSBzdGF0ZSBpbiBzdWJjbGFzc2VzLgoJICBSZWZhY3RvciB0aGUgZmx1c2hfc3RhcnQgYW5kIGZsdXNoX3N0b3AgY29kZSBiZWNhdXNlIHdlIG5lZWQgaXQgZm9yCgkgIGZsdXNoaW5nIHdoaWxlIHNlZWtpbmcgdG9vLgoJICBJbXBsZW1lbnQgdGhlIGJlZ2lubmluZ3Mgb2Ygc2Vla2luZyBpbiBwdWxsIG1vZGUuCgkgIFVzZSB0aGUgc2VnbWVudCBsYXN0X3N0b3AgZmllbGQgZm9yIHRoZSBwdWxsaW5nIG9mZnNldC4KCSAgRml4IHRoZSBwYXVzZSBtZXRob2QgaW4gcHVsbCBtb2RlLgoJICBDb25maWd1cmUgdGhlIHNlZ21lbnQgdG8gQllURVMgZm9yIHB1bGwgbW9kZS4KCSAgQVBJOiBHc3RCYXNlU2luazo6Z3N0X2Jhc2Vfc2lua19kb19wcmVyb2xsKCkKCjIwMDgtMTAtMTYgMTM6NTY6NTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCk6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgoyMDA4LTEwLTE0IDE3OjEwOjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHF1YXJrLmM6IEZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWFyay5jOiAoX3ByaXZfZ3N0X3F1YXJrc19pbml0aWFsaXplKToKCSAgRml4IHByaW50ZiBmb3JtYXQgd2FybmluZy4KCjIwMDgtMTAtMTQgMTI6MzQ6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IEZpeCBmbG93IGFnZ3JlZ2F0aW9uIG9mIHRlZS4gRXJyb3Igb3V0IGltbWVkaWF0ZWx5IGZvciBhbGwgZmxvdyByZXR1cm5zIGV4Y2VwdCBPSyBhbmQgTk9UXy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKToKCSAgRml4IGZsb3cgYWdncmVnYXRpb24gb2YgdGVlLiBFcnJvciBvdXQgaW1tZWRpYXRlbHkgZm9yIGFsbCBmbG93IHJldHVybnMKCSAgZXhjZXB0IE9LIGFuZCBOT1RfTElOS0VELCByZXR1cm4gTk9UX0xJTktFRCBpZiBhbGwgcGFkcyBhcmUgbm90IGxpbmtlZAoJICBhbmQgcmV0dXJuIE9LIGlmIGF0IGxlYXN0IG9uZSBwYWQgaXMgbGlua2VkLgoJICBCZWZvcmUgd2UgZXJyb3JlZCBvdXQgb24gImZhdGFsIiBmbG93IHJldHVybnMgKGkuZS4gbm90IGZvciBXUk9OR19TVEFURSkKCSAgYW5kIG90aGVyd2lzZSByZXR1cm5lZCB0aGUgZmxvdyByZXR1cm4gb2YgdGhlIGxhc3QgcGFkLCB3aGljaCBpcyB3cm9uZy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKF9mYWtlX2NoYWluKSwgKF9mYWtlX2NoYWluX2Vycm9yKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHRlZV9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3RzIGZvciB0aGUgZmxvdyBhZ2dyZWdhdGlvbi4KCjIwMDgtMTAtMTMgMTc6MTk6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBSZW1vdmUgaXRlbSBmcm9tIHRoZSB0b2RvIGxpc3QgYmVjYXVzZSBpdCB3YXMgZml4ZWQgd2l0aCB0aGUgbGF0ZW5jeSBzdGF0ZSBjaGFuZ2UgcmV3cml0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFJlbW92ZSBpdGVtIGZyb20gdGhlIHRvZG8gbGlzdCBiZWNhdXNlIGl0IHdhcyBmaXhlZCB3aXRoIHRoZSBsYXRlbmN5CgkgIHN0YXRlIGNoYW5nZSByZXdyaXRlcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudF9mdWxsKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudF9mdWxsKSwgKGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcl9zaXplKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X25ld19zZWVrKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9zZWVrKSwgKGdzdF9ldmVudF9uZXdfbGF0ZW5jeSksCgkgIChnc3RfZXZlbnRfcGFyc2VfbGF0ZW5jeSk6CgkgIFVzZSBxdWFya3MgdG8gY29uc3RydWN0IGFuZCBwYXJzZSBldmVudHMuCgkgICogZ3N0L2dzdHF1YXJrLmM6IChfcHJpdl9nc3RfcXVhcmtzX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgc29tZSBtb3JlIHF1YXJrcyB0byB0aGUgdGFibGUuCgkgIEVtaXQgYSB3YXJuaW5nIHdoZW4gdGhlIHF1YXJrIHRhYmxlcyBhcmUgbm90IGluIHN5bmMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgYW4gYXNzZXJ0LgoKMjAwOC0xMC0xMyAxNjo0Nzo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy86IERvbid0IGluc3RhbGwgc3RhdGljIGxpYnMgZm9yIHBsdWdpbnMuIEZpeGVzICM1NTA4NTEgZm9yIGNvcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgaW5zdGFsbCBzdGF0aWMgbGlicyBmb3IgcGx1Z2lucy4gRml4ZXMgIzU1MDg1MSBmb3IgY29yZS4KCjIwMDgtMTAtMTMgMTA6NTA6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBkZWFkbG9jaywgZ19zb3VyY2VfZ2V0X2lkKCkgY2Fubm90IGJlIGNhbGxlZCBpbiBmaW5hbGl6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbF91bmxvY2tlZCksIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwKCSAgKGdzdF9idXNfZW5hYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbiksCgkgIChnc3RfYnVzX2Rpc2FibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKSwKCSAgKGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsKSwgKGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCk6CgkgIEZpeCBkZWFkbG9jaywgZ19zb3VyY2VfZ2V0X2lkKCkgY2Fubm90IGJlIGNhbGxlZCBpbiBmaW5hbGl6ZS4KCSAgS2VlcCB0cmFjayBvZiB0aGUgd2F0Y2ggc291cmNlIGJ5IGtlZXBpbmcgYSBwb2ludGVyIHRvIHRoZSBzb3VyY2Ugb2JqZWN0CgkgIGluc3RlYWQuCgkgIFVzZSB0aGUgYnVzIGxvY2sgdG8gcHJvdGVjdCBhY2Nlc3MgdG8gdGhlIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQKCSAgd2F0Y2ggc291cmNlLgoKMjAwOC0xMC0xMyAwOToyMjoyMiArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RidXMuYzogT25seSBhbGxvdyBvbmUgYnVzIHdhdGNoIHRvIGJlIHNldCBhdCBhIHRpbWUuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGRpc3BhdGNoZXIgcG9wcyB0aGUgbWVzc2FnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZSBvbiBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCk6CgkgIE9ubHkgYWxsb3cgb25lIGJ1cyB3YXRjaCB0byBiZSBzZXQgYXQgYSB0aW1lLiBUaGlzIGlzIG5lY2Vzc2FyeQoJICBiZWNhdXNlIHRoZSBkaXNwYXRjaGVyIHBvcHMgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgYnVzIGFuZCB0aGUgc2Vjb25kCgkgIHdhdGNoZXIgd2lsbCB0aGVuIGdldCBOVUxMIG9yIHRoZSBuZXh0IG1lc3NhZ2UgKGFuZCB0aGUgZmlyc3Qgd29uJ3QKCSAgZ2V0IHRoaXMgbmV4dCBtZXNzYWdlIHRoZW4sIGV0YykuIElmIG1vcmUgdGhhbiBvbmUgIndhdGNoZXIiIGlzCgkgIHJlcXVpcmVkIHNpZ25hbCB3YXRjaGVzIHNob3VsZCBiZSB1c2VkLiBGaXhlcyBidWcgIzUyNjA0NC4KCjIwMDgtMTAtMTIgMjI6MTY6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBDaGFuZ2UgdGhlIHByaW50aW5nIG9mIHRoZSAnYnVmZmVyaW5nLi4uJyBvdXRwdXQgdG8gYXZvaWQgcHV0dGluZyBhIFxyIGluIGEgdHJhbnNsYXRlYWJsZSBzdHJpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQ2hhbmdlIHRoZSBwcmludGluZyBvZiB0aGUgJ2J1ZmZlcmluZy4uLicgb3V0cHV0IHRvIGF2b2lkIHB1dHRpbmcKCSAgYSBcciBpbiBhIHRyYW5zbGF0ZWFibGUgc3RyaW5nIChmbGFnZ2VkIGJ5IHRoZSBUUCkuCgoyMDA4LTEwLTEwIDE1OjM4OjA2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0eG1sLmM6IENsYXJpZnkgdGhhdCB0aGUgc2F2ZV90aHlzZWxmKCkgYW5kIHJlc3RvcmVfdGh5c2VsZigpIHZpcnR1YWwgZnVuY3Rpb25zIG9mIEdzdE9iamVjdCBuZWVkIHRvIGJlIG92ZXJyaWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBDbGFyaWZ5IHRoYXQgdGhlIHNhdmVfdGh5c2VsZigpIGFuZCByZXN0b3JlX3RoeXNlbGYoKSB2aXJ0dWFsCgkgIGZ1bmN0aW9ucyBvZiBHc3RPYmplY3QgbmVlZCB0byBiZSBvdmVycmlkZW4sIG5vdAoJICBnc3Rfb2JqZWN0XyhzYXZlfHJlc3RvcmUpX3RoeXNlbGYoKSB3aGljaCBpcyBpbXBvc3NpYmxlLgoJICBGaXhlcyBidWcgIzU1NTcwMC4KCjIwMDgtMTAtMTAgMTU6Mjc6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJldmVydCBhIHBhdGNoIGZyb20gMjEgbW9udGhzIGFnbyB0aGF0IGJyb2tlIGNhcHMgbmVnb3RpYXRpb24gaW4gcHVsbCBtb2RlLiBCYXNpY2FsbHksIGhhdmluZyBhIGJ1ZmZlciAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgUmV2ZXJ0IGEgcGF0Y2ggZnJvbSAyMSBtb250aHMgYWdvIHRoYXQgYnJva2UgY2FwcyBuZWdvdGlhdGlvbiBpbiBwdWxsCgkgIG1vZGUuIEJhc2ljYWxseSwgaGF2aW5nIGEgYnVmZmVyIHBhc3Mgb3ZlciBhIHBhZCB3aWxsIHRyaWdnZXIgdGhlCgkgIHNldGNhcHMgZnVuY3Rpb24gd2hlbiBjYXBzIGNoYW5nZSwganVzdCBsaWtlIGluIHB1c2ggbW9kZS4KCjIwMDgtMTAtMTAgMTU6MTI6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHRoZSBkb2NzIHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIFVwZGF0ZSB0aGUgZG9jcyBzb21lIG1vcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgIElmIHdlIHB1bGwgYSBidWZmZXIgd2l0aCBub24tdHJpdmlhbCBjYXBzLCBzdWdnZXN0IHRob3NlIGNhcHMgd2l0aCB0aGUKCSAgbWF4IHByb2JhYmlsaXR5LgoKMjAwOC0xMC0xMCAxNDozMTowMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IEFkZCBhbm90aGVyIGxpbWl0YXRpb24gb2YgcGFkLWJsb2NraW5nIHdpdGggc2VnbWVudCBzZWVrcyBub3QgcHVzaGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgYW5vdGhlciBsaW1pdGF0aW9uIG9mIHBhZC1ibG9ja2luZyB3aXRoIHNlZ21lbnQgc2Vla3Mgbm90IHB1c2hpbmcKCSAgRU9TIGV2ZW50cy4KCjIwMDgtMTAtMTAgMTM6MjQ6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvY29tbW9uLzogQWRkIG5ldyBzeW1ib2xzIHRvIHRoZSB3aW4zMiBkZWZzIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBzeW1ib2xzIHRvIHRoZSB3aW4zMiBkZWZzIGZpbGVzCgoyMDA4LTEwLTEwIDEwOjM4OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBUaGUgbWVzc2FnZSBzcmMgY2FuIGJlIE5VTEwsIGRvbid0IHRyeSB0byBwcmludCB0aGUgb2JqZWN0IG5hbWVzIGluIHRoYXQgY2FzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksICh1cGRhdGVfZGVncmVlKSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIFRoZSBtZXNzYWdlIHNyYyBjYW4gYmUgTlVMTCwgZG9uJ3QgdHJ5IHRvIHByaW50IHRoZSBvYmplY3QgbmFtZXMgaW4gdGhhdAoJICBjYXNlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IChydW5fcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgc29tZSBkZWJ1Zy4KCSAgRml4IHRoZSB0ZXN0LCBwdWxsIGJhc2VkIHNpbmtzIGdvIEFTWU5DIHRvIFBBVVNFRCwganVzdCBsaWtlIG90aGVyCgkgIHNjaGVkdWxpbmcgbW9kZXMuCgoyMDA4LTEwLTEwIDEwOjAxOjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFNtYWxsIGRvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBTbWFsbCBkb2MgdXBkYXRlLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2Vfc2lua19wYWRfc2V0Y2FwcyksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfYmxvY2tzaXplKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X2Jsb2Nrc2l6ZSksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19sb29wKSwgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgYmxvY2tzaXplIHByb3BlcnR5IGFuZCBtZXRob2RzIHRvIGNvbnRyb2wgdGhlIGFtb3VudCBvZiBkYXRhCgkgIHRvIHB1bGwuCgkgIE5lZ290aWF0ZSBmaXJzdCBiZWZvcmUgYWN0aXZhdGluZyB1cHN0cmVhbSBpbiBwdWxsIG1vZGUgc28gdGhhdCB0aGV5IGNhbgoJICBuZWdvdGlhdGUgdGhlbXNlbHZlcy4KCSAgV2hlbiB3ZSBvcGVyYXRlIGluIHB1bGwgbW9kZSwgd2Ugb25seSBhY2NlcHQgdGhlIGNhcHMgdGhhdCB3ZQoJICBuZWdvdGlhdGVkLgoJICBNYWtlIHRoZSBzaW5rIGdvIEFTWU5DIHRvIFBBVVNFRCwgbGlrZSBhbGwgb3RoZXIgc2lua3MuCgkgIEFQSTogR3N0QmFzZVNpbms6OmdzdF9iYXNlX3Npbmtfc2V0X2Jsb2Nrc2l6ZSgpCgkgIEFQSTogR3N0QmFzZVNpbms6OmdzdF9iYXNlX3NpbmtfZ2V0X2Jsb2Nrc2l6ZSgpCgkgIEFQSTogR3N0QmFzZVNpbms6OmJsb2Nrc2l6ZQoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2xpdmUpLCAoZ3N0X2Jhc2Vfc3JjX2lzX2xpdmUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9ibG9ja3NpemUpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9ibG9ja3NpemUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9kb190aW1lc3RhbXApLCAoZ3N0X2Jhc2Vfc3JjX2dldF9kb190aW1lc3RhbXApLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zcmNfZ2V0X3Byb3BlcnR5KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIHR5cGVjaGVja2luZyBpbiBwdWJsaWMgQVBJIGZ1bmN0aW9ucy4KCSAgQWRkIG1ldGhvZHMgdG8gY29udHJvbCB0aGUgYmxvY2tzaXplIGluIHN1YmNsYXNzZXMuCgkgIEFQSTogR3N0QmFzZVNyYzo6Z3N0X2Jhc2Vfc3JjX3NldF9ibG9ja3NpemUoKQoJICBBUEk6IEdzdEJhc2VTcmM6OmdzdF9iYXNlX3NyY19nZXRfYmxvY2tzaXplKCkKCjIwMDgtMTAtMTAgMDk6MTE6MTAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogV2Ugbm93IHNlZSAzIGV2ZW50cyBnbyB0aHJvdWdoIG91ciBwYWQsIHNpbmNlIGJhc2VzaW5rIG5vdyBzZW5kcyB1cHN0cmVhbSBsYXRlbmN5IGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChwcm9iZV9kb19ub3RoaW5nKSwgKGRhdGFfcHJvYmUpLAoJICAoYnVmZmVyX3Byb2JlKSwgKGV2ZW50X3Byb2JlKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgV2Ugbm93IHNlZSAzIGV2ZW50cyBnbyB0aHJvdWdoIG91ciBwYWQsIHNpbmNlIGJhc2VzaW5rIG5vdyBzZW5kcwoJICB1cHN0cmVhbSBsYXRlbmN5IGV2ZW50cy4KCjIwMDgtMTAtMDggMTU6MjE6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogUmVsZWFzZSB0aGUgb2JqZWN0IGxvY2sgYmVmb3JlIHRyeWluZyB0byBmbHVzaCB0aGUgYnVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBSZWxlYXNlIHRoZSBvYmplY3QgbG9jayBiZWZvcmUgdHJ5aW5nIHRvIGZsdXNoIHRoZSBidXMuCgoyMDA4LTEwLTA4IDE0OjIxOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGb3J3YXJkIExBVEVOQ1kgZXZlbnRzIHVwc3RyZWFtcyBzbyB0aGF0IGVsZW1lbnRzIGtub3cgYWJvdXQgdGhlIHRvdGFsIHBpcGVsaW5lIGxhdGVuY3kuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCk6CgkgIEZvcndhcmQgTEFURU5DWSBldmVudHMgdXBzdHJlYW1zIHNvIHRoYXQgZWxlbWVudHMga25vdyBhYm91dCB0aGUgdG90YWwKCSAgcGlwZWxpbmUgbGF0ZW5jeS4gRml4ZXMgIzU1NTMwNy4KCjIwMDgtMTAtMDggMTE6MjA6MTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBBbGxvdyB0aHJvdWdoIHF1ZXJpZXMgd2hlbiB3ZSBkb24ndCBrbm93IGhvdyBhcyBvdGhlcndpc2UgaXQncyBub3QgcG9zc2libGUgdG8gcXVlcnkgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgQWxsb3cgdGhyb3VnaCBxdWVyaWVzIHdoZW4gd2UgZG9uJ3Qga25vdyBob3cKCSAgdG8gYWRqdXN0IHRoZW0gKG5vdCBUSU1FIG9yIEJZVEVTKSwgYXMgb3RoZXJ3aXNlIGl0J3MKCSAgbm90IHBvc3NpYmxlIHRvIHF1ZXJ5IHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIG9yZGVyCgkgIHRvIHNlZWsgaW4gb3RoZXIgZm9ybWF0cyBhdCBhbGwuCgoyMDA4LTEwLTA4IDExOjEyOjE1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA4LTEwLTA4IDExOjExOjI1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBQbGFjYXRlIGRvYyBwZW5kYW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDgtMTAtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUGxhY2F0ZSBkb2MgcGVuZGFudHMuCgoyMDA4LTEwLTA4IDEwOjM5OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLio6IFVuYnJlYWsgLWdvb2QgYnVpbGQsIHByaXZhdGUgaXMgYSByZXNlcnZlZCBjKysga2V5d29yZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmg6CgkgIFVuYnJlYWsgLWdvb2QgYnVpbGQsIHByaXZhdGUgaXMgYSByZXNlcnZlZCBjKysga2V5d29yZC4KCjIwMDgtMTAtMDggMTA6MTk6MTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC4qOiBGaXggdW5pbnRlbmRlZCBBUEkgcmVtb3ZhbDogcmUtYWRkIEdTVF9HSE9TVF9QQURfQ0FTVCB0byB0aGUgaGVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaCAoR1NUX0dIT1NUX1BBRF9DQVNUKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoR1NUX0dIT1NUX1BBRF9DQVNUKTogRml4IHVuaW50ZW5kZWQgQVBJCgkgIHJlbW92YWw6IHJlLWFkZCBHU1RfR0hPU1RfUEFEX0NBU1QgdG8gdGhlIGhlYWRlci4KCjIwMDgtMTAtMDggMTA6MTI6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5oIChHc3RQcm94eVBhZCwgR3N0UHJveHlQYWRDbGFzcywgR3N0R2hvc3RQYWQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oIChHc3RQcm94eVBhZCwgR3N0UHJveHlQYWRDbGFzcywgR3N0R2hvc3RQYWQpCgkgIChHc3RHaG9zdFBhZENsYXNzKTogUHVibGljYWxseSBleHBvc2UgdGhlc2Ugc3RydWN0dXJlcyBzbyBhcyB0bwoJICBhbGxvdyBlYXN5IHN1YmNsYXNzaW5nIGZyb20gQy4gSGlkZSB0aGUgbWVtYmVyIGRhdGEgYmVoaW5kIGEKCSAgcHJpdmF0ZSBvcGFxdWUgZGF0YSBwb2ludGVyLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiBBZGFwdCB0byBzdG9yZSBpbnN0YW5jZSBkYXRhIGluIHRoZSB0eXBlCgkgIGluc3RhbmNlJ3MgcHJpdmF0ZSBkYXRhIHJlZ2lvbiwgbm90IGluIHRoZSBwdWJsaWMgc3RydWN0LgoKMjAwOC0xMC0wOCAxMDowNzoxNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IElmIHdlIGNhbid0IGdldCBhIGNhY2hlIGZpbGUgZG9uJ3QgdHJ5IHRvIHNhdmUgc29tZXRoaW5nIHRvIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpOgoJICBJZiB3ZSBjYW4ndCBnZXQgYSBjYWNoZSBmaWxlIGRvbid0IHRyeSB0byBzYXZlIHNvbWV0aGluZyB0byBpdC4KCSAgRGVyZWZlcmVuY2luZyBOVUxMIHBvaW50ZXJzIHVzdWFsbHkgaXNuJ3QgYSBnb29kIGlkZWEuCgoyMDA4LTEwLTA4IDA4OjU0OjU1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9jb25zdHJ1Y3QpOiBJZiB3ZSBnb3QgYSB0ZW1wbGF0ZSB2aWEgZ19vYmplY3RfZ2V0KCksIGJlIHN1cmUgdG8gdW5yZWYgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTEwLTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfZ2hvc3RfcGFkX2NvbnN0cnVjdCk6IElmIHdlIGdvdCBhCgkgIHRlbXBsYXRlIHZpYSBnX29iamVjdF9nZXQoKSwgYmUgc3VyZSB0byB1bnJlZiBpdC4KCSAgKiBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRlJFRV9GVU5DKTogRml4IGluY29ycmVjdCBkb2MuCgoyMDA4LTEwLTA3IDE1OjEyOjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIFNwYXJjIEFCSSBjaGVja3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3Rfc3BhcmMuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9zcGFyYy5oOgoJICBBZGQgU3BhcmMgQUJJIGNoZWNrcwoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDYXN0IHNpZ25lZCBpbnRlZ2VyIHRvIHVuc2lnbmVkIHRvIGF2b2lkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMDgtMTAtMDcgMTI6MjY6NDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5jOiBVc2UgbmV3IEdTVF9SRUFEX1VJTlQyNF8oTEV8QkUpIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X3VpbnQyNF9iZSksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2xlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfaW50MjRfYmUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfdWludDI0X2xlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQyNF9iZSksIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9sZSksCgkgIChnc3RfYnl0ZV9yZWFkZXJfcGVla19pbnQyNF9iZSk6CgkgIFVzZSBuZXcgR1NUX1JFQURfVUlOVDI0XyhMRXxCRSkgbWFjcm9zLgoKMjAwOC0xMC0wNyAxMjowMDo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQWx3YXlzIHVzZSB0aGUgdW5hbGlnbmVkIHZhcmlhbnRzIG9mIEdTVF9SRUFEX1VJTlQqIGFuZCBHU1RfV1JJVEVfVUlOVCogYXMgaXQncyB0b28gZWFzeSB0byBicmVhayB0aGUgSVNPIEMgc3RyaWN0IGFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFsd2F5cyB1c2UgdGhlIHVuYWxpZ25lZCB2YXJpYW50cyBvZiBHU1RfUkVBRF9VSU5UKiBhbmQgR1NUX1dSSVRFX1VJTlQqCgkgIGFzIGl0J3MgdG9vIGVhc3kgdG8gYnJlYWsgdGhlIElTTyBDIHN0cmljdCBhbGlhc2luZyBydWxlcyB3aXRoIHNpbXBsZQoJICBjYXN0cyB0byB0aGUgY29ycmVzcG9uZGluZyB0eXBlIGFuZCB0aGlzIHdvdWxkIGludHJvZHVjZSBoYXJkIHRvIGRlYnVnCgkgIGJ1Z3MuIEZpeGVzIGJ1ZyAjNTQ1NzE0LgoJICBBUEk6IEFkZCBHU1RfUkVBRF9VSU5UMjRfKExFfEJFKSBhbmQgR1NUX1dSSVRFX1VJTlQyNF8oTEV8QkUpLgoKMjAwOC0xMC0wNyAwNjo1NjoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEFkZCAnU2luY2UnIGJpdHMgdG8gZ3RrLWRvYyBjaHVua3MgZm9yIG5ldyBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDogKEdTVF9CVUZGRVJfRlJFRV9GVU5DKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfY29uc3RydWN0KToKCSAgQWRkICdTaW5jZScgYml0cyB0byBndGstZG9jIGNodW5rcyBmb3IgbmV3IEFQSS4KCjIwMDgtMTAtMDYgMjE6NTI6NTcgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGaXggZG9jdW1lbnRhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBGaXggZG9jdW1lbnRhdGlvbgoKMjAwOC0xMC0wNiAxODowMzo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2csIGRvaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nLCBkb2gKCjIwMDgtMTAtMDYgMTg6MDE6NDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GUkVFX0ZVTkMpOiBOZXcgQVBJLCBhIGZyZWUgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgbWFsbG9jX2RhdGEgdG8gZnJlZSBpdC4gQi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YnVmZmVyLmggKEdTVF9CVUZGRVJfRlJFRV9GVU5DKTogTmV3IEFQSSwgYSBmcmVlIGZ1bmN0aW9uCgkgIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gdGhlIG1hbGxvY19kYXRhIHRvIGZyZWUgaXQuIEJhc2ljYWxseSBhIHdheQoJICB0byBhdm9pZCBzdWJjbGFzc2luZyB3aGVuIGFsbCB5b3UgbmVlZCBpcyBhIGRpZmZlcmVudCBmcmVlCgkgIGZ1bmN0aW9uLCBpLmUuIGZyZWUoKSBpbnN0ZWFkIG9mIGdfZnJlZSgpLgoJICAqIGdzdC9nc3RidWZmZXIuYyAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6IEZyZWUgbWFsbG9jX2RhdGEgdmlhCgkgIGNhbGxpbmcgdGhlIGZyZWUgZnVuY3Rpb24uCgkgIChnc3RfYnVmZmVyX2luaXQpOiBJbml0aWFsaXplIHRoZSBmcmVlIGZ1bmN0aW9uIHRvIGdfZnJlZS4KCjIwMDgtMTAtMDYgMTc6NTc6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC4qOiBOZXcgZnVuY3Rpb24sIGZpbmlzaGVzIHRoZSBpbml0aWFsaXphdGlvbiBvZiBnaG9zdCBwYWQuIFVzZWZ1bCBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MgYW5kIHN1YmNsYXNzZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0xMC0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9jb25zdHJ1Y3QpOiBOZXcgZnVuY3Rpb24sCgkgIGZpbmlzaGVzIHRoZSBpbml0aWFsaXphdGlvbiBvZiBnaG9zdCBwYWQuIFVzZWZ1bCBmb3IgbGFuZ3VhZ2UKCSAgYmluZGluZ3MgYW5kIHN1YmNsYXNzZXJzIG9mIEdzdEdob3N0UGFkLiBGaXhlcyAjNTM5MTA4LgoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6IFVzZSB0aGUgbmV3IGNvbnN0cnVjdG9yLgoKMjAwOC0xMC0wNiAxNjoxNTowMiArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RiaW4uYzogS2VlcCB0cmFjayBvZiBwYWRzIHRoYXQgYXJlIGJlaW5nIGxpbmtlZC91bmxpbmtlZCBhbmQgcmVzeW5jIHRoZSBzdGF0ZSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZSBvbiBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksICh1cGRhdGVfZGVncmVlKSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXcpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgS2VlcCB0cmFjayBvZiBwYWRzIHRoYXQgYXJlIGJlaW5nIGxpbmtlZC91bmxpbmtlZCBhbmQgcmVzeW5jIHRoZSBzdGF0ZQoJICBjaGFuZ2VzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2RpcmVjdGlvbiksCgkgIChnc3RfcGFkX3NldF9jaGFpbl9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9nZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfdW5saW5rKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksCgkgIChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgIFNvbWUgY29kZSBjbGVhbnVwcywgdXNlIG1hY3JvcyB0byBjaGVjayBwYWQgZGlyZWN0aW9uLgoJICBEb24ndCBuZWVkIHRvIHRha2UgdGhlIGxvY2sgb24gdGhlIHBhZCBkaXJlY3Rpb24uCgkgIFBvc3Qgc3RydWN0dXJlIGNoYW5nZSB3aGVuIHBhZHMgYXJlIGxpbmtlZC91bmxpbmtlZC4KCSAgQ2hhbmdlIHNvbWUgY2hlY2tzIGludG8gX3JldHVybl9pZl9mYWlsKCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICAodGVzdF9saW5rX3N0cnVjdHVyZV9jaGFuZ2Vfc3RhdGVfY2hhbmdlZF9zeW5jX2NiKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBBZGQgdGVzdGNhc2UgZm9yIHBhZCBsaW5rL3VubGlua2UgcmVzeW5jIGR1cmluZyBhIHN0YXRlIGNoYW5nZS4KCSAgRml4ZXMgIzUxMDM1NC4KCjIwMDgtMTAtMDYgMTU6MzE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBJbXBsZW1lbnQgU1RSVUNUVVJFX0NIQU5HRUQgbWVzc2FnZXMuIFRoZXNlIG1lc3NhZ2VzIHdpbGwgYmUgdXNlZCB0byBzaWduYWwgdGhlIHBhcmVudCBiaW4gb2YgbGluay91bmxpbmsgb3BlcmF0aW9ucyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X3N0cnVjdHVyZV9jaGFuZ2UpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RydWN0dXJlX2NoYW5nZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgSW1wbGVtZW50IFNUUlVDVFVSRV9DSEFOR0VEIG1lc3NhZ2VzLiBUaGVzZSBtZXNzYWdlcyB3aWxsIGJlIHVzZWQgdG8KCSAgc2lnbmFsIHRoZSBwYXJlbnQgYmluIG9mIGxpbmsvdW5saW5rIG9wZXJhdGlvbnMgdGhhdCBjb3VsZCByZXF1aXJlIGEKCSAgcmVzeW5jIHdoZW4gZG9pbmcgYSBzdGF0ZSBjaGFuZ2UuIFNlZSAjIzUxMDM1NC4KCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfc3RydWN0dXJlX2NoYW5nZSgpCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2Vfc3RydWN0dXJlX2NoYW5nZSgpCgoyMDA4LTEwLTA2IDE1OjIxOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1YXJrLio6IEFkZCBzb21lIG1vcmUgcXVhcmtzIGZvciBuZXcgbWVzc2FnZS4gU2VlICM1MTAzNTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWFyay5jOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICBBZGQgc29tZSBtb3JlIHF1YXJrcyBmb3IgbmV3IG1lc3NhZ2UuIFNlZSAjNTEwMzU0LgoKMjAwOC0xMC0wNiAxMjo1NzozOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIEFQSSB0YWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBhZGQgQVBJIHRhZwoKMjAwOC0xMC0wNiAxMjo0MTo1MyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQWRkIGJpdCByZWFkZXIgYW5kIGJ5dGUgcmVhZGVyIGNsYXNzZXMsIGluY2x1ZGluZyBkb2N1bWVudGF0aW9uIGFuZCBhbiBleHRlbnNpdmUgdW5pdCB0ZXN0IHN1aXRlLiBGaXhlcyBidWcgIzU1MzU1NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvYmFzZS9nc3RiaXRyZWFkZXIuYzogKGdzdF9iaXRfcmVhZGVyX25ldyksCgkgIChnc3RfYml0X3JlYWRlcl9uZXdfZnJvbV9idWZmZXIpLCAoZ3N0X2JpdF9yZWFkZXJfZnJlZSksCgkgIChnc3RfYml0X3JlYWRlcl9pbml0KSwgKGdzdF9iaXRfcmVhZGVyX2luaXRfZnJvbV9idWZmZXIpLAoJICAoZ3N0X2JpdF9yZWFkZXJfc2V0X3BvcyksIChnc3RfYml0X3JlYWRlcl9nZXRfcG9zKSwKCSAgKGdzdF9iaXRfcmVhZGVyX2dldF9yZW1haW5pbmcpLCAoZ3N0X2JpdF9yZWFkZXJfc2tpcCksCgkgIChnc3RfYml0X3JlYWRlcl9za2lwX3RvX2J5dGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Yml0cmVhZGVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RieXRlcmVhZGVyLmM6IChHRE9VQkxFX1NXQVBfTEVfQkUpLAoJICAoR0ZMT0FUX1NXQVBfTEVfQkUpLCAoZ3N0X2J5dGVfcmVhZGVyX25ldyksCgkgIChnc3RfYnl0ZV9yZWFkZXJfbmV3X2Zyb21fYnVmZmVyKSwgKGdzdF9ieXRlX3JlYWRlcl9mcmVlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9pbml0KSwgKGdzdF9ieXRlX3JlYWRlcl9pbml0X2Zyb21fYnVmZmVyKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9zZXRfcG9zKSwgKGdzdF9ieXRlX3JlYWRlcl9nZXRfcG9zKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfcmVtYWluaW5nKSwgKGdzdF9ieXRlX3JlYWRlcl9za2lwKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDgpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQ4KSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQ4KSwgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX2ludDgpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX2dldF91aW50MjRfYmUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX2dldF9pbnQyNF9sZSksIChnc3RfYnl0ZV9yZWFkZXJfZ2V0X2ludDI0X2JlKSwKCSAgKGdzdF9ieXRlX3JlYWRlcl9wZWVrX3VpbnQyNF9sZSksIChnc3RfYnl0ZV9yZWFkZXJfcGVla191aW50MjRfYmUpLAoJICAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfbGUpLCAoZ3N0X2J5dGVfcmVhZGVyX3BlZWtfaW50MjRfYmUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Ynl0ZXJlYWRlci5oOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYml0cmVhZGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYml0X3JlYWRlcl9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svbGlicy9ieXRlcmVhZGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYnl0ZV9yZWFkZXJfc3VpdGUpOgoJICBBZGQgYml0IHJlYWRlciBhbmQgYnl0ZSByZWFkZXIgY2xhc3NlcywgaW5jbHVkaW5nIGRvY3VtZW50YXRpb24KCSAgYW5kIGFuIGV4dGVuc2l2ZSB1bml0IHRlc3Qgc3VpdGUuIEZpeGVzIGJ1ZyAjNTUzNTU0LgoKMjAwOC0xMC0wNiAwODo1ODoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgd2hpbGUgZmx1c2hpbmcgYW5kIG90aGVyIGludGVybWVkaWF0ZSBzdGF0ZSBjaGFuZ2VzLiBGaXhlcyAjNS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgSW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgd2hpbGUgZmx1c2hpbmcgYW5kIG90aGVyIGludGVybWVkaWF0ZSBzdGF0ZQoJICBjaGFuZ2VzLiBGaXhlcyAjNTUzODc0LgoKMjAwOC0xMC0wNiAwODo0NTo0MiArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHNtYWxsIHJlZm91bnQgbGVhayBpbiBjYXBzIGNvbXBhdGliaWxpdHkgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpOgoJICBPcmlnaW5hbCBwYXRjaCBieSA6IFNpbW9uIERlc2NhcmllcwoJICBGaXggc21hbGwgcmVmb3VudCBsZWFrIGluIGNhcHMgY29tcGF0aWJpbGl0eSBjaGVjay4KCSAgRml4ZXMgIzU1MTY3Ni4KCjIwMDgtMTAtMDYgMDc6MzA6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOiBGaXggMC44IGFwaSB1c2FnZSBpbiBleGFtcGxlLiBGaXhlcyAjNTU0NTYxCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJICBGaXggMC44IGFwaSB1c2FnZSBpbiBleGFtcGxlLiBGaXhlcyAjNTU0NTYxCgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgIENoYW5nZSAwLjkgdG8gMC4xMCBoZXJlLgoKMjAwOC0xMC0wNiAwNzoxMzowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWRhdGEueG1sOiBDaGFuZ2UgImV2ZW50LWV2ZW50IGludGVyYWN0aW9uIiB0byAiZWxlbWVudC1lbGVtZW50IGludGVyYWN0aW9uIi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWRhdGEueG1sOgoJICBDaGFuZ2UgImV2ZW50LWV2ZW50IGludGVyYWN0aW9uIiB0byAiZWxlbWVudC1lbGVtZW50IGludGVyYWN0aW9uIi4KCSAgRml4ZXMgIzU1MjQ0OC4gQWxzbyBmaXggc2FtcGxlIGNvZGUgZm9yIHNlZWtpbmcgYW5kIGRvIG1vcmUgMC44LT4wLjEwCgkgIHVwZGF0ZXMuCgoyMDA4LTEwLTA1IDEwOjAxOjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBkZXZlbG9wbWVudCAtPiAwLjEwLjIxLjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIGRldmVsb3BtZW50IC0+IDAuMTAuMjEuMQoKPT09IHJlbGVhc2UgMC4xMC4yMSA9PT0KCjIwMDgtMTAtMDIgMjM6NTk6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4yMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjIxCgoyMDA4LTEwLTAyIDIyOjQyOjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pZC5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcGwucG86CgkqIHBvL3B0X0JSLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMDktMjggMjI6NDk6NTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAwLjEwLjIwLjQgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjIwLjQgcHJlLXJlbGVhc2UKCjIwMDgtMDktMjggMjE6MTk6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IGFzc2VydGlvbiBpbiBiYXNldHJhbnNmb3JtIHdoZW4gdGhlIHN1YmNsYXNzIGNob29zZXMgbm90IHRvIGFsbG9jYXRlIGEgYnVmZmVyIGluIHByZXBhcmVfYnVmZmVyKCksIGFuZCBtYWtlIGNhcHNmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvY2Fwc2ZpbHRlci5jOgoJICBGaXggYXNzZXJ0aW9uIGluIGJhc2V0cmFuc2Zvcm0gd2hlbiB0aGUgc3ViY2xhc3MgY2hvb3NlcyBub3QgdG8KCSAgYWxsb2NhdGUgYSBidWZmZXIgaW4gcHJlcGFyZV9idWZmZXIoKSwgYW5kIG1ha2UgY2Fwc2ZpbHRlciBlcnJvciBvdXQKCSAgY2xlYW5seSBpZiByZXF1ZXN0ZWQgdG8gYXBwbHkgY2FwcyB0aGF0IGRvbid0IGNvbXBsZXRlbHkgc3BlY2lmeSB0aGUKCSAgYnVmZmVyLiBGaXhlcyAjNTUxNTA5CgoyMDA4LTA5LTI0IDE1OjAzOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFRha2UgbmV3IGNhcHMgcmVmIGJlY2F1c2Ugb3VyIG9sZCBvbmUgbWlnaHQgaGF2ZSBiZWVuIGdvbmUgd2hlbiB0aGUgc3ViY2xhc3MgcGVyZm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIFRha2UgbmV3IGNhcHMgcmVmIGJlY2F1c2Ugb3VyIG9sZCBvbmUgbWlnaHQgaGF2ZSBiZWVuIGdvbmUgd2hlbiB0aGUKCSAgc3ViY2xhc3MgcGVyZm9ybXMgYSBnc3RfcGFkX3NldF9jYXBzKCkgb24gdGhlIHNyY3BhZC4gU2VlICM1NDg3NjQuCgoyMDA4LTA5LTE2IDE1OjM1OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQWxzbyBjb21taXQgQ2hhbmdlTG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBbHNvIGNvbW1pdCBDaGFuZ2VMb2cKCjIwMDgtMDktMTYgMTU6MjQ6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgR2FoLiBDb21taXQgcHJlLXJlbGVhc2UgaW5mbyB0aGF0IHNob3VsZCBoYXZlIGdvbmUgaW4gbGFzdCB3ZWVrIGFscmVhZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHYWguIENvbW1pdCBwcmUtcmVsZWFzZSBpbmZvIHRoYXQgc2hvdWxkIGhhdmUgZ29uZSBpbiBsYXN0IHdlZWsgYWxyZWFkeS4KCSAgMjAwOC0wOS0xMCAgSmFuIFNjaG1pZHQgIDxqYW4uc2NobWlkdEBzdW4uY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4yMC4yIHByZS1yZWxlYXNlCgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9pZC5wbzoKCSAgKiBwby9wdF9CUi5wbzoKCSAgTmV3IHRyYW5zbGF0aW9ucy4KCjIwMDgtMDktMTUgMTU6MTg6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogRG8gbm90IHByb2JlIGF2YWlsYWJpbGl0eSBvZiBjaGVjayB1bml0IHRlc3QgbGlicmFyeSB3aGVuIGNyb3NzIGNvbXBpbGluZywgYXMgdGVzdCB3b3VsZCBub3Qgd29yayBhbnl3YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvIG5vdCBwcm9iZSBhdmFpbGFiaWxpdHkgb2YgY2hlY2sgdW5pdCB0ZXN0IGxpYnJhcnkgd2hlbiBjcm9zcwoJICBjb21waWxpbmcsIGFzIHRlc3Qgd291bGQgbm90IHdvcmsgYW55d2F5LiBBbHNvIGNsZWFudXAgdmVyYm9zZSBvdXRwdXQKCSAgb2YgdGhlIGNoZWNrIHRlc3QuIEZpeGVzICM1NTE5NTIuCgoyMDA4LTA5LTE0IDIyOjAxOjMwICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQXZvaWQgbGVha2luZyB0aGUgcGFyZW50IHJlZiB3aGVuIHdlIGZhaWwgY2hhbmdpbmcgdGhlIHN0YXRlIG9mIHRoZSBlbGVtZW50IHVzaW5nIGdzdF9lbGVtZW50X3N5bmNfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpOgoJICBBdm9pZCBsZWFraW5nIHRoZSBwYXJlbnQgcmVmIHdoZW4gd2UgZmFpbCBjaGFuZ2luZyB0aGUgc3RhdGUgb2YgdGhlCgkgIGVsZW1lbnQgdXNpbmcgZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCgpLiBGaXhlcyAjNTUxOTc4LgoKMjAwOC0wOS0xMSAxNjo1Njo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOiBSZW1vdmUgc29tZSBiaXRzIHRoYXQgbm8gbG9uZ2VyIGFwcGx5LCB1cGRhdGUgb3RoZXJzICgjNTUxNjQyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6OgoJICBSZW1vdmUgc29tZSBiaXRzIHRoYXQgbm8gbG9uZ2VyIGFwcGx5LCB1cGRhdGUgb3RoZXJzICgjNTUxNjQyKS4KCjIwMDgtMDktMDkgMTg6NDc6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vY29uZmlnLmguaW46IEFkZCBHU1RfREFUQURJUiwgaGFyZC1jb2RlIGNwdSB0byB4ODYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgQWRkIEdTVF9EQVRBRElSLCBoYXJkLWNvZGUgY3B1IHRvIHg4Ni4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgU3BhY2VzIHRvIHRhYnMuCgoyMDA4LTA5LTAzIDA1OjUyOjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogRml4IFNpbmNlOiBtYXJrZXJzIGZvciBuZXcgZ2VvIHRhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEZpeCBTaW5jZTogbWFya2VycyBmb3IgbmV3IGdlbyB0YWdzLgoKMjAwOC0wOS0wMiAyMDowMDoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogRml4IGFjdHVhbCB0YWcgbmFtZSBkZWZpbmUgYWZ0ZXIgcmVuYW1pbmcgZnJvbSBhbHRpdHVkZSB0byBlbGV2YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEZpeCBhY3R1YWwgdGFnIG5hbWUgZGVmaW5lIGFmdGVyIHJlbmFtaW5nIGZyb20gYWx0aXR1ZGUgdG8gZWxldmF0aW9uLgoKMjAwOC0wOS0wMSAxNDowNTo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQWRkIGZhbGxiYWNrIHdoZW4gY2FsbGluZyB0aGUgZGVwcmVjYXRlZCBmdW5jdGlvbiBvbiBhbiBlbGVtZW50IHRoYXQgaW1wbGVtZW50cyB0aGUgbmV3IGludGVybmFsX2xpbmsgaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChhZGRfdW5yZWZfcGFkX3RvX2xpc3QpLAoJICAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIEFkZCBmYWxsYmFjayB3aGVuIGNhbGxpbmcgdGhlIGRlcHJlY2F0ZWQgZnVuY3Rpb24gb24gYW4gZWxlbWVudCB0aGF0CgkgIGltcGxlbWVudHMgdGhlIG5ldyBpbnRlcm5hbF9saW5rIGhhbmRsZXIuCgoyMDA4LTA5LTAxIDEzOjM1OjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgbmV3IHRhZ3MgZm9yIGdlbyBsb2NhdGlvbiBhbmQgY2xhcmlmeSBwdXJwb3NlIG9mIGV4aXN0aW5nIGxvY2F0aW9uIHRhZy4gRml4ZXMgIzQ4MTE2OQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQWRkIG5ldyB0YWdzIGZvciBnZW8gbG9jYXRpb24gYW5kIGNsYXJpZnkgcHVycG9zZSBvZiBleGlzdGluZyBsb2NhdGlvbgoJICB0YWcuIEZpeGVzICM0ODExNjkKCjIwMDgtMDktMDEgMTE6Mjc6NDUgKzAwMDAgIE9saXZpZXIgQ3JldGUgPHRlc3RlckB0ZXN0ZXIuY2E+CgoJICBnc3QvZ3N0cGFkLmM6IFVzZSB0aHJlYWQtc2FmZSBpbnRlcm5hbCBsaW5rcyBpdGVyYXRvci4gRml4ZXMgIzU0OTUwNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCksCgkgIChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLCAoZ3N0X3BhZF9kaXNwYXRjaGVyKToKCSAgVXNlIHRocmVhZC1zYWZlIGludGVybmFsIGxpbmtzIGl0ZXJhdG9yLiBGaXhlcyAjNTQ5NTA0LgoKMjAwOC0wOS0wMSAxMDo0MjowNCArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIEFkZCB0aHJlYWRzYWZlIHJlcGxhY2VtZW50IGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyBpbnRlcm5hbCBsaW5rcyBvZiBhbiBlbGVtZW50LiBEZXByZWNhdGUgdGhlIG9sZCBpbnRlcm5hbCBsaW5rcyBmdW5jdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IE9saXZpZXIgQ3JldGUgPHRlc3RlciBhdCB0ZXN0ZXIgZG90IGNhPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwKCSAgKGdzdF9wYWRfc2V0X2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZnVuY3Rpb24pLAoJICAoaW50X2xpbmtfaXRlcl9kYXRhX2ZyZWUpLCAoaXRlcmF0ZV9wYWQpLAoJICAoZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9pdGVyYXRlX2ludGVybmFsX2xpbmtzKSwgKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZCB0aHJlYWRzYWZlIHJlcGxhY2VtZW50IGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyBpbnRlcm5hbCBsaW5rcyBvZiBhbgoJICBlbGVtZW50LiBEZXByZWNhdGUgdGhlIG9sZCBpbnRlcm5hbCBsaW5rcyBmdW5jdGlvbnMuCgkgIEFQSTpHc3RQYWQ6OmdzdF9wYWRfc2V0X2l0ZXJhdGVfaW50ZXJuYWxfbGlua3NfZnVuY3Rpb24oKQoJICBBUEk6R3N0UGFkOjpHc3RQYWRJdGVySW50TGlua0Z1bmN0aW9uCgkgIEFQSTpHc3RQYWQ6OmdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rcygpCgkgIEFQSTpHc3RQYWQ6OmdzdF9wYWRfaXRlcmF0ZV9pbnRlcm5hbF9saW5rc19kZWZhdWx0KCkKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9faXRlcmF0ZV9pbnRlcm5hbF9saW5rcyksCgkgIChnc3RfcHJveHlfcGFkX2luaXQpOgoJICBJbXBsZW1lbnQgdGhyZWFkc2FmZSBpbnRlcm5hbCBsaW5rcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKHRlZV9zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgaW50ZXJuYWwgbGlua3Mgb24gdGVlLiBTZWUgIzU0OTUwNC4KCjIwMDgtMDgtMzAgMTI6NTc6NDcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogbGlicy90cmFuc2Zvcm0xIHRlc3QgcmVxdWlyZXMgbGlicy90ZXN0X3RyYW5zZm9ybS5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBsaWJzL3RyYW5zZm9ybTEgdGVzdCByZXF1aXJlcyBsaWJzL3Rlc3RfdHJhbnNmb3JtLmMKCjIwMDgtMDgtMzAgMTI6MDc6NDEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERpZSBldmlsIGRlYWRsb2NrLCBkaWUgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KToKCSAgRGllIGV2aWwgZGVhZGxvY2ssIGRpZSAhCgoyMDA4LTA4LTMwIDExOjU1OjU5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgRml4IGFsbCBsZWFrcyBkdWUgdG8gdGhlIGJ1ZyBpbiBnc3RfcGFkX3RlbXBsYXRlX25ldygpIGJ5IHdoaWNoIGl0IGRvZXMgbm90IHN0ZWFsIHRoZSByZWZjb3VudCBvZiB0aGUgZ2l2ZW4gY2FwcyBhcyBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChuYW1lX2lzX3ZhbGlkKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGFsbCBsZWFrcyBkdWUgdG8gdGhlIGJ1ZyBpbiBnc3RfcGFkX3RlbXBsYXRlX25ldygpIGJ5IHdoaWNoIGl0IGRvZXMKCSAgbm90IHN0ZWFsIHRoZSByZWZjb3VudCBvZiB0aGUgZ2l2ZW4gY2FwcyBhcyBzdGF0ZWQuCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgkgIFJFVkVSVCBUSElTIENPTU1JVCBPTkNFIEZJWEVEICEKCSAgUkVWRVJUIFRISVMgQ09NTUlUIE9OQ0UgRklYRUQgIQoJICBSRVZFUlQgVEhJUyBDT01NSVQgT05DRSBGSVhFRCAhCgoyMDA4LTA4LTI5IDE3OjU4OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLio6IEFmdGVyIDMgeWVhcnMgaXQncyBhYm91dCB0aW1lIHRvIHJldmlzZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgaXRlcmF0b3Igb2JqZWN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFmdGVyIDMgeWVhcnMgaXQncyBhYm91dCB0aW1lIHRvIHJldmlzZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUKCSAgaXRlcmF0b3Igb2JqZWN0cy4KCjIwMDgtMDgtMjkgMTY6MTA6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IE1ha2UgdGhlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uIGxlc3MgdGhyZWFkLXVuc2FmZSBhbmQgYWRkIHNvbWUgY29tbWVudHMsIGR1bm5vIHdoeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfaW50ZXJuYWxfbGlua3NfZGVmYXVsdCk6CgkgIE1ha2UgdGhlIGludGVybmFsIGxpbmtzIGZ1bmN0aW9uIGxlc3MgdGhyZWFkLXVuc2FmZSBhbmQgYWRkIHNvbWUKCSAgY29tbWVudHMsIGR1bm5vIHdoeS4KCjIwMDgtMDgtMjkgMTQ6MTI6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0X3ByaXZhdGUuaDogSW5jbHVkZSBnc3RpbmZvLmggZXZlbiBpZiBHU1RfRElTQUJMRV9HU1RfREVCVUcgaXMgZGVmaW5lZC4gRml4ZXMgYnVpbGQgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgSW5jbHVkZSBnc3RpbmZvLmggZXZlbiBpZiBHU1RfRElTQUJMRV9HU1RfREVCVUcgaXMgZGVmaW5lZC4gRml4ZXMKCSAgYnVpbGQgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLgoKMjAwOC0wOC0yOSAwMDozNDo1OCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogUmV2ZXJ0IGxhc3QgY2hhbmdlLCBzaW5jZSBpdCBicmVha3MgYSBmZXcgcGx1Z2lucywgZmZtcGVnLCBhbGF3LCBhbmQgbXVsYXcuICBDb2RlIGlzIGNvcnJlY3QsIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IFJldmVydCBsYXN0IGNoYW5nZSwgc2luY2UgaXQgYnJlYWtzCgkgIGEgZmV3IHBsdWdpbnMsIGZmbXBlZywgYWxhdywgYW5kIG11bGF3LiAgQ29kZSBpcyBjb3JyZWN0LAoJICBidXQgc2hvdWxkbid0IGJlIGVuYWJsZWQgdW50aWwgd2UndmUgcmVsZWFzZWQgZml4ZWQgdmVyc2lvbnMKCSAgb2YgLWdvb2QgYW5kIC1mZm1wZWcuCgoyMDA4LTA4LTI4IDIwOjEyOjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IFB1dCB0aGUgZ3N0X29iamVjdF9nZXRfbmFtZSgpIGJhY2sgaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgUHV0IHRoZSBnc3Rfb2JqZWN0X2dldF9uYW1lKCkgYmFjayBpbi4KCjIwMDgtMDgtMjggMTI6MzI6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiBUaGUgb2xkIGJlaGF2aW91ciB3YXMgdGhhdCBnc3RfcGFkX3RlbXBsYXRlX25ldygpIHRha2VzIG93bmVyc2hpcCBvZiB0aGUgY2Fwcy4gQXMgd2Ugbm93IGNhbGwgZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgVGhlIG9sZCBiZWhhdmlvdXIgd2FzIHRoYXQgZ3N0X3BhZF90ZW1wbGF0ZV9uZXcoKSB0YWtlcyBvd25lcnNoaXAgb2YKCSAgdGhlIGNhcHMuIEFzIHdlIG5vdyBjYWxsIGdfb2JqZWN0X25ldygpIHdoaWNoIGNhbGxzIGdfb2JqZWN0X3NldCgpIGFuZAoJICB3aGljaCBjb3BpZXMgdGhlIGNhcHMsIHdlIGhhdmUgdG8gdW5yZWYgdGhlbSB0byBub3QgbGVhayB0aGVtLiBGaXhlcwoJICBtYWtlIHZhbGdyaWQgZm9yIG1lLgoKMjAwOC0wOC0yOCAxMDo0NTowNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBEb24ndCBzZWdmYXVsdCBvbiBpbnB1dCBsaWtlICJ0ZWw6KzEtMTIzLTU1NS0xMjM0Ii4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICBEb24ndCBzZWdmYXVsdCBvbiBpbnB1dCBsaWtlICJ0ZWw6KzEtMTIzLTU1NS0xMjM0Ii4KCjIwMDgtMDgtMjcgMDc6MTg6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RvYmplY3QuYzogRHVlIHRvIHBvcHVsYXIgcmVxdWVzdCBhbHNvIGluY2x1ZGUgT2JqZWN0VHlwZSBpbiBnc3Rfb2JqZWN0X2dldF9wYXRoX3N0cmluZygpLiBNYWtlcyBnc3QtbGF1bmNoIC12IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIER1ZSB0byBwb3B1bGFyIHJlcXVlc3QgYWxzbyBpbmNsdWRlIE9iamVjdFR5cGUgaW4KCSAgZ3N0X29iamVjdF9nZXRfcGF0aF9zdHJpbmcoKS4gTWFrZXMgZ3N0LWxhdW5jaCAtdiBiaXQgbW9yZSB1c2VmdWwuCgoyMDA4LTA4LTI3IDAzOjA0OjIzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBSZW1vdmUgY2hlY2sgaW4gZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KCkgdGhhdCBzcmNfdmFsIG11c3QgYmUgcG9zaXRpdmUsIGJlY2F1c2UgdGhhdCdzIG5vdCBhIHJlcXVpcmVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQKCSAgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgVGhpcyBjYXVzZXMgcHJvYmxlbXMgd2l0aCBjb252ZXJ0aW5nIG5lZ2F0aXZlIGdyYW51bGVwb3MKCSAgdmFsdWVzIGZvciBEaXJhYy4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogU2FtZSwgZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KCkuCgoyMDA4LTA4LTI3IDAyOjU5OjU5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBSZW1vdmUgY2hlY2sgaW4gZ3N0X3BhZF9xdWVyeV9jb252ZXJ0KCkgdGhhdCBzcmNfdmFsIG11c3QgYmUgcG9zaXRpdmUsIGJlY2F1c2UgdGhhdCdzIG5vdCBhIHJlcXVpcmVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogUmVtb3ZlIGNoZWNrIGluIGdzdF9wYWRfcXVlcnlfY29udmVydCgpIHRoYXQKCSAgc3JjX3ZhbCBtdXN0IGJlIHBvc2l0aXZlLCBiZWNhdXNlIHRoYXQncyBub3QgYSByZXF1aXJlbWVudC4KCSAgVGhpcyBjYXVzZXMgcHJvYmxlbXMgd2l0aCBjb252ZXJ0aW5nIG5lZ2F0aXZlIGdyYW51bGVwb3MKCSAgdmFsdWVzIGZvciBEaXJhYy4KCjIwMDgtMDgtMjUgMTE6MDY6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogQWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgdG8gdGhlIGNsb2NrIHNsYXZpbmcgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcgdG8gdGhlIGNsb2NrIHNsYXZpbmcgY29kZS4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgYmFzZXRyYW5zZm9ybSBtZXRob2QuCgoyMDA4LTA4LTI1IDExOjAwOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBUYWtlIHRoZSAocmVjdXJzaXZlKSBzdGF0ZSBsb2NrIGJldHdlZW4gZ2V0dGluZyB0aGUgbG9ja2VkIHN0YXRlIG9mIGFuIGVsZW1lbnQgYW5kIGNoYW5naW5nIHRoZSBlbGVtZW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICBUYWtlIHRoZSAocmVjdXJzaXZlKSBzdGF0ZSBsb2NrIGJldHdlZW4gZ2V0dGluZyB0aGUgbG9ja2VkIHN0YXRlIG9mIGFuCgkgIGVsZW1lbnQgYW5kIGNoYW5naW5nIHRoZSBlbGVtZW50IHN0YXRlLiBUaGlzIGFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8KCSAgbG9jayBhbiBlbGVtZW50J3Mgc3RhdGUgYW5kIHRoZW4gY2hhbmdlIGl0cyBzdGF0ZSB3aXRob3V0IHJhY2VzLgoKMjAwOC0wOC0yNSAxMDo1Mjo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogV2hlbiBhbiBlbGVtZW50IGlzIGluIHRoZSBsb2NrZWQgc3RhdGUgd2Ugc3RpbGwgd2FudCB0byB1cGRhdGUgdGhlIGJhc2VfdGltZSBvZiB0aGUgZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIFdoZW4gYW4gZWxlbWVudCBpcyBpbiB0aGUgbG9ja2VkIHN0YXRlIHdlIHN0aWxsIHdhbnQgdG8gdXBkYXRlIHRoZQoJICBiYXNlX3RpbWUgb2YgdGhlIGVsZW1lbnQuCgoyMDA4LTA4LTIxIDExOjE3OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVzZSB0aGUgcmVzdWx0IGZyb20gZ3N0X3BhZF9zZXRfY2FwcygpIGluc3RlYWQgb2YgYXNzdW1pbmcgdGhlIGVsZW1lbnQgYWx3YXlzIGFjY2VwdGVkIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgVXNlIHRoZSByZXN1bHQgZnJvbSBnc3RfcGFkX3NldF9jYXBzKCkgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGUgZWxlbWVudAoJICBhbHdheXMgYWNjZXB0ZWQgdGhlIGNhcHMgY29tcHV0ZWQgYnkgdGhlIGRlZmF1bHQgbmVnb3RpYXRlIGZ1bmN0aW9uLgoKMjAwOC0wOC0yMCAxMDo1MjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEltcGxlbWVudCBtZXRob2QgZm9yIHJlY29uZmlndXJpbmcgYmFzZXRyYW5zZm9ybS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgSW1wbGVtZW50IG1ldGhvZCBmb3IgcmVjb25maWd1cmluZyBiYXNldHJhbnNmb3JtLgoJICBBUEk6IEdzdEJhc2VUcmFuc2Zvcm06OmdzdF9iYXNlX3RyYW5zZm9ybV9yZWNvbmZpZ3VyZSgpCgoyMDA4LTA4LTIwIDA3OjIyOjExICswMDAwICBNdXJyYXkgQ3VtbWluZyA8bXVycmF5Y0BtdXJyYXljLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBNZW50aW9uIHRoYXQgdGhpcyBpcyBqdXN0IGxpa2UgZ3N0X2J1ZmZlcl9tZXJnZSgpIGJ1dCB3aXRoIGV4dHJhIHVucmVmZmluZyBmb3IgQyBjb2RlcnMuIEFkdmlzZSBsYW5ndS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IE11cnJheSBDdW1taW5nIDxtdXJyYXljQG11cnJheWMuY29tPgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBNZW50aW9uIHRoYXQgdGhpcyBpcyBqdXN0IGxpa2UgZ3N0X2J1ZmZlcl9tZXJnZSgpIGJ1dCB3aXRoIGV4dHJhCgkgIHVucmVmZmluZyBmb3IgQyBjb2RlcnMuIEFkdmlzZSBsYW5ndWFnZSBiaW5kaW5ncyBub3QgdG8gd3JhcCBpdC4KCSAgRml4ZXMgQnVnICM1MzM4NTYuCgkgIEFsc28gZml4IGZpbGUgY29tbWVudC4KCjIwMDgtMDgtMjAgMDc6MDM6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBDYWxsIHN1cGVyOjpldmVudCgpIHdoZW4gbm90IGhhbmRsaW5nIGl0LiBGaXhlcyAjNTQ0ODU1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0Bjb2xsYWJvcmEuY28udWs+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBDYWxsIHN1cGVyOjpldmVudCgpIHdoZW4gbm90IGhhbmRsaW5nIGl0LiBGaXhlcyAjNTQ0ODU1LgoKMjAwOC0wOC0xOSAxNzoyMzoxOCArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogVXNlIDY0IGJpdCB2YXJpYW50cyBvZiBzdGF0IGZ1bmN0aW9ucyBvbiB3aW4zMiwgdG8gZW5hYmxlIHN1cHBvcnQgb2YgbGFyZ2UgZmlsZXMgdGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIFVzZSA2NCBiaXQgdmFyaWFudHMgb2Ygc3RhdCBmdW5jdGlvbnMgb24gd2luMzIsIHRvIGVuYWJsZSBzdXBwb3J0CgkgIG9mIGxhcmdlIGZpbGVzIHRoZXJlLgoJICBGaXhlcyAjNTQ3Mjc3LgoKMjAwOC0wOC0xOSAxNjo0NzowNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBwb3NpdGlvbiByZXBvcnRpbmcgaW4gdGhlIGZsdXNoaW5nIHN0YXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfbmVnb3RpYXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEltcHJvdmUgcG9zaXRpb24gcmVwb3J0aW5nIGluIHRoZSBmbHVzaGluZyBzdGF0ZS4KCSAgQWxzbyByZXBvcnQgdGhlIHBvc2l0aW9uIHdoZW4gd2UgYXJlIG5vdCB5ZXQgcHJlcm9sbGVkIGJ1dCB3ZQoJICBoYXZlIGEgbmV3c2VnbWVudCBldmVudC4gRml4ZXMgIzU0MzQ0NC4KCSAgSW1wcm92ZSB0aGUgcHVsbC1iYXNlZCBuZWdvdGlhdGlvbiBjb2RlLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmYWtlc2lua19zdWl0ZSk6CgkgIEFkZCB0ZXN0Y2FzZSBmb3IgcG9zaXRpb24gcmVwb3J0aW5nIHdoaWxlIGZsdXNoaW5nIGluIFBBVVNFRCBhbmQKCSAgUExBWUlORy4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVwZGF0ZSB1bml0LXRlc3QsIHdlIGNhbiBub3cgcXVlcnkgdGhlIHBvc2l0aW9uIGFzIHNvb24gYXMgd2UgcmVjZWl2ZSBhCgkgIE5FV1NFR01FTlQgZXZlbnQuCgoyMDA4LTA4LTE5IDA4OjUyOjA1ICswMDAwICBKYXNvbiBaaGFvIDxlMzQyM2NAbW90b3JvbGEuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXaGVuIHRoZSBzdWJjbGFzcyBldmVudCBoYW5kbGVyIHJlbGVhc2VzIHRoZSBQUkVST0xMX0xPQ0ssIHdlIGNvdWxkIGJlIGluIHRoZSBmbHVzaGluZyBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogSmFzb24gWmhhbyA8ZTM0MjNjIGF0IG1vdG9yb2xhIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KToKCSAgV2hlbiB0aGUgc3ViY2xhc3MgZXZlbnQgaGFuZGxlciByZWxlYXNlcyB0aGUgUFJFUk9MTF9MT0NLLCB3ZSBjb3VsZCBiZQoJICBpbiB0aGUgZmx1c2hpbmcgc3RhdGUgYW5kIHdlIGhhdmUgdG8gaWdub3JlIHRoZSBldmVudC4gRml4ZXMgIzU0ODM5NC4KCjIwMDgtMDgtMTggMTE6Mjg6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IERvY3VtZW50IEdTVF9SRUdJU1RSWV9VUERBVEUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRG9jdW1lbnQgR1NUX1JFR0lTVFJZX1VQREFURSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCjIwMDgtMDgtMTggMDk6NTk6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSWYgdGhlIGVsZW1lbnQgaXMgY29uZmlndXJlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIGJ1dCB0aGUgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGdhdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgSWYgdGhlIGVsZW1lbnQgaXMgY29uZmlndXJlZCBpbiBwYXNzdGhyb3VnaCBtb2RlIGJ1dCB0aGUKCSAgcHJlcGFyZV9vdXRwdXRfYnVmZmVyIGdhdmUgdXMgYSBuZXcgb3V0cHV0IGJ1ZmZlciwgZGlzY2FyZCB0aGF0IGJ1ZmZlcgoJICBhbmQgcmV1c2UgdGhlIGlucHV0IGJ1ZmZlci4KCjIwMDgtMDgtMTUgMTc6MDE6MDcgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS4qOiBQcm90ZWN0IHBhZF9hbGxvYyB3aXRoIGEgbmV3IGxvY2sgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZSB0aGF0IG5vdGhpbmcgaXMgcGVyZm9ybWluZyBhIHBhZF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgIDxvbGUuYW5kcmUucmF2bmFzIGF0IHRhbmRiZXJnIGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9maW5hbGl6ZSksIChnc3RfdGVlX2luaXQpLAoJICAoZ3N0X3RlZV9yZXF1ZXN0X25ld19wYWQpLCAoZ3N0X3RlZV9yZWxlYXNlX3BhZCksCgkgIChnc3RfdGVlX2ZpbmRfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZWVfYnVmZmVyX2FsbG9jKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBQcm90ZWN0IHBhZF9hbGxvYyB3aXRoIGEgbmV3IGxvY2sgc28gdGhhdCB3ZSBjYW4gYmUgc3VyZSB0aGF0IG5vdGhpbmcgaXMKCSAgcGVyZm9ybWluZyBhIHBhZF9hbGxvYyB3aGVuIHJlbW92aW5nIHRoZSBwYWQuIEZpeGVzICM1NDc4MzUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChidWZmZXJfYWxsb2NfaGFybmVzc19zZXR1cCksCgkgIChidWZmZXJfYWxsb2NfaGFybmVzc190ZWFyZG93biksIChhcHBfdGhyZWFkX2Z1bmMpLAoJICAoZmluYWxfc2lua3BhZF9idWZmZXJhbGxvYyksIChHU1RfU1RBUlRfVEVTVCksICh0ZWVfc3VpdGUpOgoJICBBZGRlZCB0ZXN0Y2FzZSBmb3Igc2h1dGRvd24gcmFjZS4KCjIwMDgtMDgtMTQgMjA6MDU6MzMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmg6IEFkZCBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGQgZG9jCgoyMDA4LTA4LTE0IDE2OjM3OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEdvIG92ZXIgdGhlIGJ1ZmZlcl9hbGxvYyBmdW5jdGlvbiBhZ2FpbiBhbmQgbWFrZSBzdXJlIHdlIGFsd2F5cyBlbmQgdXAgYWxsb2NhdGluZyBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgR28gb3ZlciB0aGUgYnVmZmVyX2FsbG9jIGZ1bmN0aW9uIGFnYWluIGFuZCBtYWtlIHN1cmUgd2UgYWx3YXlzIGVuZCB1cAoJICBhbGxvY2F0aW5nIGEgYnVmZmVyLgoJICBBZGQgc29tZSBtb3JlIGRvY3MuCgkgIEF2b2lkIGRvaW5nIHBhZCBhbGxvYyB3aGVuIHdlIGhhdmUgYSBwZW5kaW5nIHN1Z2dlc3Rpb24gYmVjYXVzZSB3ZQoJICBjYW5ub3QgeWV0IGRlYWwgd2l0aCBjaGFuZ2luZyBjYXBzIGluIHRoYXQgY2FzZS4gRml4ZXMgIzU0NzcyOAoKMjAwOC0wOC0xNCAxNDoyNjoyMCArMDAwMCAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoKCSAgZG9jcy9tYW51YWwvOiBBZGQgb25lIG1vcmUgaW1hZ2Ugc2hvd2luZyBkaWZmZXJlbnQgdGltZXMgdG9nZXRoZXIgd2l0aCBhIGRlc2NyaWJpbmcgcGFyYWdyYXBoLiBGaXhlcyAjNTQ3NzI5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1jbG9ja3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2Nsb2Nrcy5wbmc6CgkgICogZG9jcy9tYW51YWwvZGlhZ3JhbXMtY2xvY2tzLnN2ZzoKCSAgQWRkIG9uZSBtb3JlIGltYWdlIHNob3dpbmcgZGlmZmVyZW50IHRpbWVzIHRvZ2V0aGVyIHdpdGggYSBkZXNjcmliaW5nCgkgIHBhcmFncmFwaC4gRml4ZXMgIzU0NzcyOS4KCjIwMDgtMDgtMTQgMTQ6MDQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IEFkZCBuZXcgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBuZXcgbWV0aG9kLgoKMjAwOC0wOC0xNCAxMzo1Nzo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBvdmVyd3JpdGUgdGhlIG91dHNpemUgd2hlbiBjYWxjdWxhdGluZyB0aGUgZXhwZWN0ZWQgc2l6ZSBvZiBhIG5ldyBidWZmZXIgYmVjYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QpOgoJICBEb24ndCBvdmVyd3JpdGUgdGhlIG91dHNpemUgd2hlbiBjYWxjdWxhdGluZyB0aGUgZXhwZWN0ZWQgc2l6ZSBvZiBhIG5ldwoJICBidWZmZXIgYmVjYXVzZSB3ZSBzdGlsbCBuZWVkIGl0IGluIGNhc2Ugd2UgY2Fubm90IHByb2Nlc3MgdGhlIG5ldwoJICBidWZmZXIuCgkgIFdoZW4gY29udmVydGluZyB0aGUgc2l6ZSBvZiB0aGUgbmV3IGJ1ZmZlciB0byBhbiB1cHN0cmVhbSBzaXplLCBhY3R1YWxseQoJICB1c2UgdGhlIGV4cGVjdGVkIHNpemUgb2YgdGhlIGJ1ZmZlciwgbm90IHNvbWUgb3RoZXIgcmFuZG9tIHZhbHVlLgoJICBVc2UgYW4gYXRvbWljIGludCB0byBzaWduYWwgdGhhdCBhIG5ldyB1cHN0cmVhbSBjYXBzIHN1Z2dlc3Rpb24gaXMKCSAgYXZhaWxhYmxlLgoJICBXaGVuIHdlIGNhbiBjb252ZXJ0IHRoZSBjdXJyZW50IGJ1ZmZlciB0byBhIG5ldyBmb3JtYXQsIGNoZWNrIGlmIHRoZQoJICBidWZmZXIgc2l6ZSBpcyBvZiB0aGUgZXhwZWN0ZWQgc2l6ZSBhbmQgYWxsb2NhdGUgYSBuZXcgYnVmZmVyIG9mIHRoZQoJICBleHBlY3RlZCBzaXplIHdoZW4gdGhpcyBpcyBub3QgdGhlIGNhc2UuCgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHJlbW92ZSBpZmRlZmZlZCBjb2RlIGZyb20gdGhlIHVuaXQgdGVzdC4KCjIwMDgtMDgtMTIgMTg6NDg6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBrZ2NvbmZpZy86IFJlbW92ZSAtbGdzdGNvbnRyb2wtMC4xMCB3aGljaCBuZXZlciB3b3JrZWQgYW55d2F5IGFzIHRoZSBsaWIgaXMgY2FsbGVkIGdzdGNvbnRyb2xsZXItMC4xMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBSZW1vdmUgLWxnc3Rjb250cm9sLTAuMTAgd2hpY2ggbmV2ZXIgd29ya2VkIGFueXdheSBhcyB0aGUgbGliIGlzCgkgIGNhbGxlZCBnc3Rjb250cm9sbGVyLTAuMTAuCgoyMDA4LTA4LTEyIDA2OjI3OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvOiBSZW1vdmUgZG91YmxlIGludGVyZmFjZSBmcm9tIGRvYy1zdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBSZW1vdmUgZG91YmxlIGludGVyZmFjZSBmcm9tIGRvYy1zdHJpbmcuCgoyMDA4LTA4LTEyIDA2OjE2OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlLzogRml4IGhlYWRpbmdzIGluIGRvY3MgYW5kIGd0ay1kb2Mgd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGaXggaGVhZGluZ3MgaW4gZG9jcyBhbmQgZ3RrLWRvYyB3YXJuaW5ncy4KCjIwMDgtMDgtMTEgMTk6MDQ6MDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBEb24ndCB1c2UgZ19ta3N0bXAoKSBvbiB3aW4zMiwgaXQncyB1bnNhZmUgaWYgZ2xpYiBpcyB1c2luZyBhIGRpZmZlcmVudCBsaWJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgRG9uJ3QgdXNlIGdfbWtzdG1wKCkgb24gd2luMzIsIGl0J3MgdW5zYWZlIGlmIGdsaWIgaXMgdXNpbmcgYSBkaWZmZXJlbnQKCSAgbGliYy4KCSAgRml4ZXMgIzU0NDc3Ni4KCjIwMDgtMDgtMTEgMTU6MTQ6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGEgIm1heSBiZSB1c2VkIHVuaXRpYWxpemVkIiB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBGaXggYSAibWF5IGJlIHVzZWQgdW5pdGlhbGl6ZWQiIHdhcm5pbmcuCgoyMDA4LTA4LTExIDA4OjA2OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEb2N1bWVudCBwcmVzZXQtaWZhY2Ugdm1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBEb2N1bWVudCBwcmVzZXQtaWZhY2Ugdm1ldGhvZHMuCgoyMDA4LTA4LTExIDA3OjA3OjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDogVHVybiB0aG91Z2h0cyBhYm91dCBIQUwgaW50byBhIG5vdGUtdGFnLiBSZW1vdmUgbWVudGlvbmluZyB0aGF0IGlzIG9ubHkgdXNlZCB0byAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkgIFR1cm4gdGhvdWdodHMgYWJvdXQgSEFMIGludG8gYSBub3RlLXRhZy4gUmVtb3ZlIG1lbnRpb25pbmcgdGhhdCBpcwoJICBvbmx5IHVzZWQgdG8gZGlzY292ZXIgZGV2aWNlcy4KCjIwMDgtMDgtMDcgMTU6NDk6MDAgKzAwMDAgIEZyZWRlcmljIENyb3phdCA8ZmNyb3phdEBtYW5kcml2YS5vcmc+CgoJICBnc3QvZ3N0LmM6IE1ha2Ugc3VyZSBnZXR0ZXh0IHJldHVybnMgdHJhbnNsYXRpb25zIGluIFVURi04IGVuY29kaW5nIHJhdGhlciB0aGFuIGluIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyAoIzU0NjguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGcmVkZXJpYyBDcm96YXQgPGZjcm96YXRAbWFuZHJpdmEub3JnPgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgTWFrZSBzdXJlIGdldHRleHQgcmV0dXJucyB0cmFuc2xhdGlvbnMgaW4gVVRGLTggZW5jb2RpbmcgcmF0aGVyCgkgIHRoYW4gaW4gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nICgjNTQ2ODIyKS4KCjIwMDgtMDgtMDcgMTI6Mjg6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggc3Vic2V0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0X2ZpZWxkKToKCSAgRml4IHN1YnNldCB0ZXN0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEltcHJvdmUgdW5pdCB0ZXN0IHN1YnNldCB0ZXN0cyBhbmQgYWRkIGEgdGVzdGNhc2UgZm9yIHRoZSBzdWJzZXQgZmFpbHVyZQoJICBjYXNlcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEltcHJvdmUgc3VidHJhY3Rpb24gdW5pdCB0ZXN0LgoKMjAwOC0wOC0wNyAwNzowMToxNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogVW5sb2NrLCBpbnN0ZWFkIG9mIGxvY2tpbmcgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIFVubG9jaywgaW5zdGVhZCBvZiBsb2NraW5nIGFnYWluLgoKMjAwOC0wOC0wNSAxNjo1MDoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuaDogQ2xhcmlmeSB0aGUgZG9jcyBhIGJpdCBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIENsYXJpZnkgdGhlIGRvY3MgYSBiaXQgbW9yZS4KCjIwMDgtMDgtMDUgMTU6NDI6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogRG9uJ3QgbGVhayBvbGQgdGFnbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOgoJICBEb24ndCBsZWFrIG9sZCB0YWdsaXN0LgoKMjAwOC0wOC0wNSAxNTowMzoyNyArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogQXZvaWQgb3ZlcmZsb3dzIGluIGZpeGF0aW9uIGNvZGUgd2hlbiBkZWFsaW5nIHdpdGggTUFYSU5UIHZhbHVlcywgd2hpY2ggdjRsMnNyYyBzZWVtcyB0byBkby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uKToKCSAgQXZvaWQgb3ZlcmZsb3dzIGluIGZpeGF0aW9uIGNvZGUgd2hlbiBkZWFsaW5nIHdpdGggTUFYSU5UIHZhbHVlcywgd2hpY2gKCSAgdjRsMnNyYyBzZWVtcyB0byBkby4KCSAgRml4ZXMgIzU0NjMyOC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgYSB1bml0IHRlc3QgdG8gY2hlY2sgdGhlIGZpeC4KCjIwMDgtMDgtMDUgMTE6MTI6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogVXNlIG5ldyBjYXBzIHN1Z2dlc3Rpb24gZmVhdHVyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlcXVlc3QgYSBjYXBzIG5lZ290aWF0aW9uIHVwc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChjb3B5X2Z1bmMpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KToKCSAgVXNlIG5ldyBjYXBzIHN1Z2dlc3Rpb24gZmVhdHVyZSBvZiBiYXNldHJhbnNmb3JtIHRvIHJlcXVlc3QgYSBjYXBzCgkgIG5lZ290aWF0aW9uIHVwc3RyZWFtLgoKMjAwOC0wOC0wNSAxMToxMTowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZnVuY3Rpb246CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgZnVuY3Rpb246CgkgIEFQSTogR3N0QmFzZVRyYW5zZm9ybTo6Z3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QoKQoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jYW5fdHJhbnNmb3JtKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5kX3RyYW5zZm9ybSksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9pbl9wbGFjZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfaW5fcGxhY2UpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3VwZGF0ZV9xb3MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9xb3NfZW5hYmxlZCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3N1Z2dlc3QpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3JlY29uZmlndXJlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUmV3cml0ZSBvZiBiYXNldHJhbnNmb3JtIHRvIHBlcmZvcm0gbmVnb3RpYXRpb24gb3V0c2lkZSBvZiB0aGUKCSAgYnVmZmVyX2FsbG9jIGZ1bmN0aW9ucy4gIEZpeGVzICM1NDU4NTMuCgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChidWZmZXJfYWxsb2NfY3QyKToKCSAgVXBkYXRlIHVuaXQgdGVzdC4KCjIwMDgtMDgtMDUgMDU6NDQ6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwcmVzZXQuYzogT25seSBydW4gcHJlc2V0IHRlc3RzIHdoZW4gJEhPTUUgaXMgd3JpdGFibGUuIFByZWxpbWluYXJ5IGZpeCBmb3IgIzU0NTQzMy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHByZXNldC5jOgoJICBPbmx5IHJ1biBwcmVzZXQgdGVzdHMgd2hlbiAkSE9NRSBpcyB3cml0YWJsZS4gUHJlbGltaW5hcnkgZml4IGZvcgoJICAjNTQ1NDMzLgoKMjAwOC0wOC0wNCAxNTo0OToxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IHJhY2UgZm9yIGJpbnMgdGhhdCBzaW11bGF0ZSBBU1lOQyBzdGF0ZSBjaGFuZ2VzIGJ5IGluc2VydGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgRml4IHJhY2UgZm9yIGJpbnMgdGhhdCBzaW11bGF0ZSBBU1lOQyBzdGF0ZSBjaGFuZ2VzIGJ5IGluc2VydGluZwoJICBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcyBpbiB0aGVpciBidXMuIFdlIG5lZWQgdG8gY2hlY2sgZm9yCgkgIHBlbmRpbmcgQVNZTkMgbWVzc2FnZXMgZXZlbiB3aGVuIHRoZSBiaW4gZG9lcyBub3QgaGF2ZSBBU1lOQyBjaGlsZHJlbi4KCSAgV2Ugbm90ZSBkZXRlY3QgdGhpcyBiZWhhdmlvdXIgYmVjYXVzZSB3ZSB3aWxsIHJlY2VpdmUgYW4gQVNZTkMgbWVzc2FnZQoJICB0aGF0IGlzIG9yaWdpbmF0aW5nIGZyb20gdGhlIGJpbiBpdHNlbGYuCgkgIEZpeGVzIHJhY2VzIHdpdGggZGVjb2RlYmluMiBzdGF0ZSBjaGFuZ2VzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCjIwMDgtMDgtMDQgMTM6MDE6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICBGaXggdHlwby4KCjIwMDgtMDgtMDQgMTI6NDY6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEFyZ2guIGFjdHVhbGx5IHNhdmUgdGhlIHRleHQgYmVmb3JlIGNvbW1pdHRpbmcuIE5vdyBhZGRzIGdzdF90YWdfbWVyZ2Vfc3RyaW5nc193aXRoX2NvbW1hKCkgdG8gZ3N0Xy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBBcmdoLiBhY3R1YWxseSBzYXZlIHRoZSB0ZXh0IGJlZm9yZSBjb21taXR0aW5nLiBOb3cgYWRkcwoJICBnc3RfdGFnX21lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSgpIHRvIGdzdF90YWdfcmVnaXN0ZXIoKS4KCjIwMDgtMDgtMDQgMTI6MzA6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lio6IERvIGFzIHRpbSBwb2ludGVkIG91dCBhbmQgYWN0dWFsbHkgcmVnaXN0ZXIgdGhlIG5ldyB0YWcuIEFsc28gaW1wcm92ZSB0ZSBkb2NzIGFuZCB1c2UgZ3N0X3RhZ19tZXJnZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIERvIGFzIHRpbSBwb2ludGVkIG91dCBhbmQgYWN0dWFsbHkgcmVnaXN0ZXIgdGhlIG5ldyB0YWcuIEFsc28gaW1wcm92ZQoJICB0ZSBkb2NzIGFuZCB1c2UgZ3N0X3RhZ19tZXJnZV9zdHJpbmdzX3dpdGhfY29tbWEoKSBtZXRob2QgdG8gYWxsb3cKCSAgcmV0cml2aW5nIGFsbCBrZXl3b3JkcyBtZXJnZWQgaW4gb25lIGxpc3QuCgoyMDA4LTA4LTAxIDExOjU3OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZXZlcnQgJ2FjY2lkZW50aWFsJyBjaGFuZ2Ugb2YgdGhlIGNvbmZpZ3VyZSBvcHRpb24gcmVtb3ZhbC4gV2Ugc3RpbGwgbmVlZCB0byBnZW5lcmF0ZSB0aGUgdHlwZXMgZmlsZSBpbiBjb25maWd1cmUgLS0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgUmV2ZXJ0ICdhY2NpZGVudGlhbCcgY2hhbmdlIG9mIHRoZSBjb25maWd1cmUgb3B0aW9uIHJlbW92YWwuIFdlIHN0aWxsCgkgIG5lZWQgdG8gZ2VuZXJhdGUgdGhlIHR5cGVzIGZpbGUgaW4gY29uZmlndXJlIC0tZGlzYWJsZS1sb2FkLXNhdmUuCgoyMDA4LTA4LTAxIDExOjM0OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgbmV3IHRhZ2xpc3QgaXRlbSBHU1RfVEFHX0tFWVdPUkRTLCBuZWVkZWQgZm9yICM1MjA2OTQgLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFkZCBuZXcgdGFnbGlzdCBpdGVtIEdTVF9UQUdfS0VZV09SRFMsIG5lZWRlZCBmb3IgIzUyMDY5NCAuCgoyMDA4LTA4LTAxIDEwOjAyOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IEFkZCAibmFtZS10ZW1wbGF0ZSIsICJkaXJlY3Rpb24iLCAicHJlc2VuY2UiIGFuZCAiY2FwcyIgcHJvcGVydGllcywgc28gdGhhdCBnc3RfcGFkX3RlbXBsYXRlX25lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9jbGFzc19pbml0KSwgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCksCgkgIChnc3RfcGFkX3RlbXBsYXRlX25ldyksIChnc3RfcGFkX3RlbXBsYXRlX3BhZF9jcmVhdGVkKSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfc2V0X3Byb3BlcnR5KSwgKGdzdF9wYWRfdGVtcGxhdGVfZ2V0X3Byb3BlcnR5KToKCSAgQWRkICJuYW1lLXRlbXBsYXRlIiwgImRpcmVjdGlvbiIsICJwcmVzZW5jZSIgYW5kICJjYXBzIiBwcm9wZXJ0aWVzLAoJICBzbyB0aGF0IGdzdF9wYWRfdGVtcGxhdGVfbmV3KCkgaXMganVzdCBhIHRoaW4gd3JhcHBlciBhcm91bmQKCSAgZ19vYmplY3RfbmV3KCksIHdoaWNoIGlzIGJldHRlciBmb3IgYmluZGluZ3MuIChGaXhlczogIzUzOTc3MikKCjIwMDgtMDctMzEgMTc6MTY6NTAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3R1cmkuYzogQmUgbW9yZSBsaWJlcmFsIGluIHdoYXQgVVJJcyB3ZSBhY2NlcHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgQmUgbW9yZSBsaWJlcmFsIGluIHdoYXQgVVJJcyB3ZSBhY2NlcHQuCgkgIERvIG5vdCB1bmVzY2FwZSBiaXRzIG9mIHRoZSBVUkkgZm9yIG5vIGFwcGFyZW50IHJlYXNvbiBiZWZvcmUgcGFzc2luZyB0bwoJICB0aGUgZWxlbWVudC4gRml4ZXMgIzU0NTM1Mi4KCjIwMDgtMDctMzEgMTU6MjQ6MjEgKzAwMDAgIFJvYmVydCBTY2h3ZWJlbCA8ci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZT4KCgkgIGdzdC9nc3QuYzogSW5jbHVkZSBnc3Rjb25maWcuaCBhcyBtYWNyb3MgZnJvbSBpdCBhcmUgdXNlZC4gRml4ZXMgYnVnICM1NDU2MDcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVsQHBlbmd1dHJvbml4LmRlPgoJICAqIGdzdC9nc3QuYzoKCSAgSW5jbHVkZSBnc3Rjb25maWcuaCBhcyBtYWNyb3MgZnJvbSBpdCBhcmUgdXNlZC4gRml4ZXMgYnVnICM1NDU2MDcuCgoyMDA4LTA3LTMxIDE1OjIwOjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBSZW1vdmUgR1NUX0RJU0FCTEVfKEVOVU1UWVBFU3xJTkRFWHxVUkkpIGV2ZXJ5d2hlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9zZXRfaW5kZXhfZnVuYyk6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfaW5kZXgpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3JlYWRfY2FjaGUpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpOgoJICAqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWluZGVudDoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfaW5kZXhfaW5mbyksIChwcmludF9lbGVtZW50X2xpc3QpLAoJICAocHJpbnRfcGx1Z2luX2ZlYXR1cmVzKSwgKHByaW50X2VsZW1lbnRfZmVhdHVyZXMpOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChwcmludF9ldmVudF9tYXNrcyksCgkgIChwcmludF9lbGVtZW50X2luZm8pOgoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgUmVtb3ZlIEdTVF9ESVNBQkxFXyhFTlVNVFlQRVN8SU5ERVh8VVJJKSBldmVyeXdoZXJlLgoJICBEaXNhYmxpbmcgdGhlIGluZGV4ZXJzIGFuZCBVUkkgaGFuZGxlciBjb2RlIHdpbGwgb25seSByZWR1Y2UgdGhlCgkgIHJlcXVpcmVkIGFtb3VudCBvZiBtZW1vcnkgYnkgYSB2ZXJ5IHNtYWxsIGFtb3VudCBidXQgb24gdGhlIG90aGVyIGhhbmQKCSAgcmVxdWlyZXMgbXVjaCBtb3JlIG1haW50YWluY2Ugd29yay4gQXBhcnQgZnJvbSB0aGF0IG1hbnkgcGxhY2VzIG9mCgkgIGNvZGUgYXJlIGJyb2tlbiB3aGVuIGRpc2FibGluZyB0aGVtLgoJICBEaXNhYmxpbmcgdGhlIGVudW0gdHlwZXMgZG9lc24ndCByZWR1Y2UgdGhlIHJlcXVpcmVkIGFtb3VudCBvZiBtZW1vcnkKCSAgYnkgbW9yZSB0aGFuIGEgZmV3IGJ5dGVzIGFuZCBtYWtlcyBpdCBoYXJkIHRvIGZpeCBidWdzIGxpa2UgIzUzOTc3MiwKCSAgaS5lLiB1c2UgdGhlIGVudW1zIGFzIEdPYmplY3QgcHJvcGVydGllcy4KCjIwMDgtMDctMzEgMTM6MDY6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgc29tZSB0aG91Z2h0cyBhbmQgcHJvYmxlbXMgd2l0aCB1cHN0cmVhbSByZW5lZ290aWF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgc29tZSB0aG91Z2h0cyBhbmQgcHJvYmxlbXMgd2l0aCB1cHN0cmVhbSByZW5lZ290aWF0aW9uLgoKMjAwOC0wNy0zMSAxMjo1MDo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVtb3ZlIHNpbGx5IHJlZHVuZGFudCBkZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9jb25maWd1cmVfc3JjKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpOgoJICBSZW1vdmUgc2lsbHkgcmVkdW5kYW50IGRlYnVnLgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIENsYXJpZnkgdGhlIGRvY3MgcmVnYXJkaW5nIG5ldyBjYXBzIHJlY2VpdmVkIGZyb20gcGFkX2FsbG9jLgoKMjAwOC0wNy0zMSAwOTo1NToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBNYWtlIHNldHRpbmcgdGhlIGNhcHMgbW9yZSB0aHJlYWRzYWZlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfY2Fwc2ZpbHRlcl9nZXRfcHJvcGVydHkpLCAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2NhcHMpOgoJICBNYWtlIHNldHRpbmcgdGhlIGNhcHMgbW9yZSB0aHJlYWRzYWZlLgoKMjAwOC0wNy0zMSAwODozOToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkgIFVwZGF0ZSBkb2NzLgoKMjAwOC0wNy0zMSAwODozNzowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQWRkIGFuZCB1c2UgYSBjdXN0b20gYWNjZXB0Y2FwcyBmdW5jdGlvbiBpbnN0ZWFkIG9mIGZhbGxpbmcgYmFjayB0byB0aGUgcG90ZW50aWFsbHkgbGVzcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfYWNjZXB0Y2Fwcyk6CgkgIEFkZCBhbmQgdXNlIGEgY3VzdG9tIGFjY2VwdGNhcHMgZnVuY3Rpb24gaW5zdGVhZCBvZiBmYWxsaW5nIGJhY2sgdG8gdGhlCgkgIHBvdGVudGlhbGx5IGxlc3Mgb3B0aW1pemVkIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCgoyMDA4LTA3LTI5IDE1OjMyOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBPbmx5IHNhbml0eS1jaGVjayB0aGUgYnVmZmVyIHNpemUgaWYgcmVxdWVzdGVkX2NhcHMgPT0gYnVmZmVyX2NhcHMgKGllLiBkb24ndCB0YWtlIHBhZCBjYXBzIGludG8gYWNjb3VuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpOgoJICBPbmx5IHNhbml0eS1jaGVjayB0aGUgYnVmZmVyIHNpemUgaWYgcmVxdWVzdGVkX2NhcHMgPT0gYnVmZmVyX2NhcHMKCSAgKGllLiBkb24ndCB0YWtlIHBhZCBjYXBzIGludG8gYWNjb3VudCwgdGhleSdyZSBub3QgcmVsZXZhbnQgaGVyZSkKCjIwMDgtMDctMjkgMTQ6MzI6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLio6IFJldmVydGluZyBhcyBub3QgZXZlcnl0aGluZyBpcyBjbGVhciB5ZXQuIE5lZWRzIHNvbWUgZ2VuZXJhbCBkZXNpZ24gd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBSZXZlcnRpbmcgYXMgbm90IGV2ZXJ5dGhpbmcgaXMgY2xlYXIgeWV0LiBOZWVkcyBzb21lIGdlbmVyYWwgZGVzaWduCgkgIHdvcmsuCgoyMDA4LTA3LTI5IDEzOjM2OjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IENoYW5nZUxvZyBzdXJnZXJ5IGZvciB0ZWUgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5IGZvciB0ZWUgY29tbWl0LgoKMjAwOC0wNy0yOSAxMzozMDowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQ2xlYW51cCBzZWN0aW9uLWZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIENsZWFudXAgc2VjdGlvbi1maWxlLgoKMjAwOC0wNy0yOSAxMTo1NzoxMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuKjogUmVsYXkgdGFnIGV2ZW50cyBpbiB0ZWUuIEZpeGVzIHBhcnRzIG9mICM0NzQwMTYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuaDoKCSAgUmVsYXkgdGFnIGV2ZW50cyBpbiB0ZWUuIEZpeGVzIHBhcnRzIG9mICM0NzQwMTYuCgoyMDA4LTA3LTI5IDAwOjQ1OjI5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBCdWlsZCB0aGUgbmV0IGxpYnJhcnkgaWYgd2UgaGF2ZSB3aW5zb2NrMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L01ha2VmaWxlLmFtOgoJICBCdWlsZCB0aGUgbmV0IGxpYnJhcnkgaWYgd2UgaGF2ZSB3aW5zb2NrMi4KCjIwMDgtMDctMjYgMTI6MDA6MzYgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogUmVwbGFjZSBvbmUgZGlhZ3JhbSB3aXRoIHR3byBzZXBhcmF0ZSBvbmVzIGFuZCB1cGRhdGVzIG90aGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvZGlhZ3JhbXMtcGlwZWxpbmVzLnN2ZzoKCSAgKiBkb2NzL21hbnVhbC9oZWxsby13b3JsZC5wbmc6CgkgICogZG9jcy9tYW51YWwvbGlua2VkLWVsZW1lbnRzLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9xdWV1ZS5wbmc6CgkgICogZG9jcy9tYW51YWwvdGhyZWFkLWJ1ZmZlcmluZy5wbmc6CgkgICogZG9jcy9tYW51YWwvdGhyZWFkLXN5bmNocm9uaXppbmcucG5nOgoJICBSZXBsYWNlIG9uZSBkaWFncmFtIHdpdGggdHdvIHNlcGFyYXRlIG9uZXMgYW5kIHVwZGF0ZXMgb3RoZXJzLgoJICBGaXhlcyAjNTQyNDAxLgoKMjAwOC0wNy0yNSAxMDoyNDo0MyArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IEZpeCBsaW5rIGluIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIEZpeCBsaW5rIGluIGRvY3VtZW50YXRpb24uCgoyMDA4LTA3LTI0IDE3OjM4OjQzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogRml4IGNvbmZ1c2luZyBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBGaXggY29uZnVzaW5nIGRvY3VtZW50YXRpb24uCgoyMDA4LTA3LTI0IDE1OjEzOjI0ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6IHJldmVydCB0aGUgY2hhbmdlcyB0byB0aGUgaGVhZGVyIGZpbGUgZm9yIHRoZSBBQkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICByZXZlcnQgdGhlIGNoYW5nZXMgdG8gdGhlIGhlYWRlciBmaWxlIGZvciB0aGUgQUJJLgoKMjAwOC0wNy0yNCAxNDo0Nzo1OCArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBEb24ndCBjYWNoZSB0aGUgc2Vla2FibGUgc3RhdHVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgRG9uJ3QgY2FjaGUgdGhlIHNlZWthYmxlIHN0YXR1cy4KCSAgRml4ZXMgYnVnICM1NDQxNzQKCjIwMDgtMDctMjQgMTI6MzY6MjAgKzAwMDAgIFJlbmUgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6IEFkZCBmYWtlc2luayB0byBleGFtcGxlIGNvZGUgdG8gY2xvc2UgdGhlIHBpcGVsaW5lIGdyYXBoLiAgVGhpcyBwcmV2ZW50cyB0aGUgcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOiBBZGQgZmFrZXNpbmsgdG8gZXhhbXBsZQoJICBjb2RlIHRvIGNsb3NlIHRoZSBwaXBlbGluZSBncmFwaC4gIFRoaXMgcHJldmVudHMgdGhlIHByb2dyYW0gZnJvbQoJICBwcmludGluZyBpbnRlcm5hbCBkYXRhIGZsb3cgZXJyb3JzLgoKMjAwOC0wNy0yMyAxNTo0NDowNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6IENvcnJlY3QgdHlwby4gRml4ZXMgYnVnICM1NDQzMjAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBDb3JyZWN0IHR5cG8uIEZpeGVzIGJ1ZyAjNTQ0MzIwLgoKMjAwOC0wNy0yMiAxODoxMjo1NCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgQUNfSVNDX1BPU0lYIG1hY3JvOyBpdCdzIGJyb2tlbiBvbiBzb21lIHBsYXRmb3JtcyBhbmQgbm90IG5lZWRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZW1vdmUgQUNfSVNDX1BPU0lYIG1hY3JvOyBpdCdzIGJyb2tlbiBvbiBzb21lIHBsYXRmb3JtcyBhbmQgbm90IG5lZWRlZC4KCSAgQWRkIGNoZWNrICh0YWtlbiBmcm9tIC1iYXNlKSBmb3Igd2luc29jaywgYWRkcyBXSU4zMl9MSUJTCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBBZGQgV0lOMzJfTElCUyB0byBMSUJBREQgZm9yIGxpYmdzdHJlYW1lci4gTmVlZGVkIG5vdyB0aGF0IGdzdHBvbGwgdXNlcwoJICB3aW5zb2NrLgoJICBEZWZpbmUgR1NUX0VYUE9SVFMgd2hlbiBidWlsZGluZyBsaWJnc3RyZWFtZXIgKG9ubHkgdXNlZCBvbiB3aW4zMikKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBVc2UgR1NUX0VYUE9SVCBpbnN0ZWFkIG9mIGxvY2FsbHktZGVmaW5lZCAoYW5kIGluY29ycmVjdCBJTVBPUlRfU1lNQk9MKQoJICBmb3Igc3ltYm9scyB0aGF0IHdlIG5lZWQgdG8gZXhwb3J0IGluIGJvdGggdGhlc2UgZmlsZXMuCgkgICogZ3N0L2dzdHBvbGwuYzoKCSAgSW5jbHVkZSBnc3RfcHJpdmF0ZS5oIGhpZ2hlciB1cCB0byBhdm9pZCBzb21lIGNvbXBpbGUgcHJvYmxlbXMgb24gd2luMzIuCgoyMDA4LTA3LTIyIDA5OjI0OjM3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogRml4IHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRml4IHR5cG9zLgoKMjAwOC0wNy0yMiAwMDoyOTo1NSArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IFByZXZpb3VzIGNvbW1pdCB3YXMgd3JvbmcgTlVMTCBjYXBzIGRvZXMgbm90IGV4aXN0IGFuZCBpbmRpY2F0ZSBhbiBlcnJvciwgc28gYWxzbyBhZGQgYSBGSVhNRSB0byBnc3RfYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBQcmV2aW91cyBjb21taXQgd2FzIHdyb25nIE5VTEwgY2FwcyBkb2VzIG5vdCBleGlzdAoJICBhbmQgaW5kaWNhdGUgYW4gZXJyb3IsIHNvIGFsc28gYWRkIGEgRklYTUUgdG8KCSAgZ3N0X2NhcHNfaXNfZXF1YWwgd2hlcmUgTlVMTCBjYXBzIGFyZSBhY2NlcHRlZC4KCjIwMDgtMDctMjEgMjM6MDI6NDAgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBBbGxvdyBwYXNzaW5nIG9mIE5VTEwgdG8gZ3N0X2NhcHNfdW5pb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgQWxsb3cgcGFzc2luZyBvZiBOVUxMIHRvIGdzdF9jYXBzX3VuaW9uCgoyMDA4LTA3LTIxIDIxOjMyOjA2ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFkZCBpbiBkb2MgdGhhdCBnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQgY2FuIGFjY2VwdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgQWRkIGluIGRvYyB0aGF0IGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCBjYW4gYWNjZXB0CgkgIE5VTEwgdG8gY2xlYXIgdGFyZ2V0CgoyMDA4LTA3LTE1IDIyOjUzOjAwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvOiBHc3RSZWdpc3RyeVBvb2wgZG9lc24ndCBleGlzdDsgZG9uJ3QgcmVmZXIgdG8gaXQgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBHc3RSZWdpc3RyeVBvb2wgZG9lc24ndCBleGlzdDsgZG9uJ3QgcmVmZXIgdG8gaXQgaW4gZG9jcy4KCSAgRG9uJ3QgcmVmZXIgdG8gZnVuY3Rpb25zIHRoYXQgZG9uJ3QgZXhpc3QgaW4gZG9jcywgaXQncwoJICB1bmhlbHBmdWwuCgoyMDA4LTA3LTEyIDE3OjUxOjE2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0LmM6IEZpeCBzY2FubmluZyBvZiBwYXRocyBnaXZlbiB2aWEgLS1nc3QtcGx1Z2luLXBhdGguIEZpeGVzIGJ1ZyAjNTQyMTc1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEZpeCBzY2FubmluZyBvZiBwYXRocyBnaXZlbiB2aWEgLS1nc3QtcGx1Z2luLXBhdGguIEZpeGVzIGJ1ZyAjNTQyMTc1LgoKMjAwOC0wNy0xMiAxNzo0MzoxNSArMDAwMCAgdG1hdHRoIDxsZS5idXNpbmVzc21hbkBnbWFpbC5jb20+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogRG9uJ3QgdXNlIGFuIHVuZGVjbGFyZWQgdmFyaWFibGUgaW4gdGhlIGV4YW1wbGUgcHJvZ3JhbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiB0bWF0dGggPGxlIGRvdCBidXNpbmVzc21hbiBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBEb24ndCB1c2UgYW4gdW5kZWNsYXJlZCB2YXJpYWJsZSBpbiB0aGUgZXhhbXBsZSBwcm9ncmFtLgoJICBGaXhlcyBidWcgIzU0MjU3My4KCjIwMDgtMDctMTIgMDk6NTk6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IFNxdWVlemUgZ2hvc3QtcGFkIGxpbmtzIGFuZCByZW1vdmUgPD4gZnJvbSBjbGFzc25hbWUgbGFiZWxzIHRvIHNhdmUgbW9yZSBob3Jpem9udGFsIHNwYWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBTcXVlZXplIGdob3N0LXBhZCBsaW5rcyBhbmQgcmVtb3ZlIDw+IGZyb20gY2xhc3NuYW1lIGxhYmVscyB0byBzYXZlCgkgIG1vcmUgaG9yaXpvbnRhbCBzcGFjZS4KCjIwMDgtMDctMTEgMTk6MzA6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IEdpdmUgcmVxdWVzdCBhbmQgc29tZXRpbWVzIHBhZHMgYSBkaWZmZXJlbnQgc2hwZSBzdHlsZS4gQ29uZGVuc2UgdGhlIGdyYXBocyBhIGxpdHRsZSBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBHaXZlIHJlcXVlc3QgYW5kIHNvbWV0aW1lcyBwYWRzIGEgZGlmZmVyZW50IHNocGUgc3R5bGUuIENvbmRlbnNlIHRoZQoJICBncmFwaHMgYSBsaXR0bGUgbW9yZS4KCjIwMDgtMDctMTAgMDA6MzA6MDIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgcmVxdWlyZSBmbGV4IGFuZCBiaXNvbiBpZiB0aGUgcGFyc2VyIGlzIGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IHJlcXVpcmUgZmxleCBhbmQgYmlzb24gaWYgdGhlIHBhcnNlciBpcyBkaXNhYmxlZC4KCjIwMDgtMDctMDggMTE6MjA6MjIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzogRG9uJ3QgdXNlIGRlY2xhcmF0aW9ucyBhZnRlciBzdGF0ZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChfbGlzdF9maW5kX3NvcnRlZF9jdXN0b20pOgoJICBEb24ndCB1c2UgZGVjbGFyYXRpb25zIGFmdGVyIHN0YXRlbWVudHMuCgoyMDA4LTA3LTA4IDA5OjA0OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBBZGQgRklYTUVzIGZvciAwLjExIHRvIHVzZSBHU1RfVFlQRV9PQkpFQ1QgaW4gdGhlIHNpZ25hdHVyZSBvZiB0aGUgdGhlIGNoaWxkLWFkZGVkIC8gLXJlbW92ZWQgc2kuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9iYXNlX2luaXQpOgoJICBBZGQgRklYTUVzIGZvciAwLjExIHRvIHVzZSBHU1RfVFlQRV9PQkpFQ1QgaW4gdGhlIHNpZ25hdHVyZQoJICBvZiB0aGUgdGhlIGNoaWxkLWFkZGVkIC8gLXJlbW92ZWQgc2lnbmFscyBhcyBHc3RDaGlsZFByb3h5CgkgIG9ubHkgc3VwcG9ydHMgR3N0T2JqZWN0cy4KCjIwMDgtMDctMDcgMTE6MDE6MjYgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBGaXggbWVtbGVhawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBGaXggbWVtbGVhawoKMjAwOC0wNy0wNiAxMjo0OTo0MyArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBnc3QvZ3N0cG9sbC5jOiBGaXggImlnbm9yZWQgcmV0dXJuIHZhbHVlIiBjb21waWxlciB3YXJuaW5nIHdpdGggbmV3ZXIgZ2xpYmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm8gYXQgbm52YSBkb3Qgb3JnPgoJICAqIGdzdC9nc3Rwb2xsLmM6CgkgIEZpeCAiaWdub3JlZCByZXR1cm4gdmFsdWUiIGNvbXBpbGVyIHdhcm5pbmcgd2l0aCBuZXdlciBnbGliYy4KCjIwMDgtMDctMDUgMTY6Mjg6MjggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RjaGlsZHByb3h5LmM6IEZpeCBjb3B5JnBhc3RlIGVycm9yIGluIGdzdF9jaGlsZF9wcm94eV9yZW1vdmVkKCkgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgRml4IGNvcHkmcGFzdGUgZXJyb3IgaW4gZ3N0X2NoaWxkX3Byb3h5X3JlbW92ZWQoKSBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNy0wMiAxNDo0Mzo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogUHJpbnQgZXJyb3IgZGVidWcgbWVzc2FnZSBpZiBwbHVnaW4gZGVzY3JpcHRpb24gZmllbGRzIHRoYXQgc2hvdWxkIGJlIHNldCBhcmUgTlVMTC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoQ0hFQ0tfUExVR0lOX0RFU0NfRklFTEQpLCAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBQcmludCBlcnJvciBkZWJ1ZyBtZXNzYWdlIGlmIHBsdWdpbiBkZXNjcmlwdGlvbiBmaWVsZHMgdGhhdCBzaG91bGQKCSAgYmUgc2V0IGFyZSBOVUxMLgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2NvbnN0X3N0cmluZyk6CgkgIERvbid0IGNyYXNoIGlmIHRoZSBzdHJpbmcgdG8gc2VyaWFsaXNlIGlzIE5VTEwgKGl0IHJlYWxseSBzaG91bGQKCSAgbm90IGJlLCBidXQgYXBwYXJlbnRseSB0aGlzIHVzZWQgdG8gd29yayB3aXRoIHRoZSB4bWwgcmVnaXN0cnkgLi4uKS4KCjIwMDgtMDctMDIgMTI6MjM6MTIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weTogRml4IHBhcnNpbmcgb2YgbG9nIG1lc3NhZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBGaXggcGFyc2luZyBvZiBsb2cgbWVzc2FnZXMKCjIwMDgtMDctMDEgMDk6Mjc6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IFNvcnQgYWxwaGFiZXRpY2FsbHkgc28gbWFrZSBjaGVjay1leHBvcnRzIGRvZXNuJ3QgYmFyZi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOjoKCSAgU29ydCBhbHBoYWJldGljYWxseSBzbyBtYWtlIGNoZWNrLWV4cG9ydHMgZG9lc24ndCBiYXJmLgoKMjAwOC0wNy0wMSAwNTo1MzozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGV2ZW50LmM6IFVzZSBnc3RfZm9ybWF0X2dldF9uYW1lKCkgdG8gaW1wcm92ZSBkZWJ1ZyBvdXRwdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBVc2UgZ3N0X2Zvcm1hdF9nZXRfbmFtZSgpIHRvIGltcHJvdmUgZGVidWcgb3V0cHV0LgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgUmVtb3ZlICNpZmRlZidlZCBjb2RlLiBBZGQgVE9ETyBjb21tZW50LgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIEFkZCBkZWJ1ZyBvdXRwdXQgdG8gZWFzZSBzcG90dGluZyBmb3JtYXQgIT0gc2VnbWVudC5mb3JtYXQgYXNzZXJ0aW9ucy4KCjIwMDgtMDYtMzAgMDk6NDI6NDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IEFsc28gZW5hYmxlIHRoZSBHRFAgdW5pdCB0ZXN0IGFnYWluIG9uIFBQQyBub3cgdGhhdCB0aGUgYnVnIGlzIGZpeGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgQWxzbyBlbmFibGUgdGhlIEdEUCB1bml0IHRlc3QgYWdhaW4gb24gUFBDIG5vdyB0aGF0IHRoZSBidWcKCSAgaXMgZml4ZWQuCgoyMDA4LTA2LTMwIDA5OjM4OjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IERvbid0IHdyaXRlIHRvIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgYXMgYSB1aW50NjQgYW5kIHVpbnQxNiBhcyB0aGlzIGJyZWFrcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBEb24ndCB3cml0ZSB0byB0aGUgc2FtZSByZWdpb24gb2YgbWVtb3J5IGFzIGEgdWludDY0IGFuZCB1aW50MTYKCSAgYXMgdGhpcyBicmVha3Mgc3RyaWN0IGFsaWFzaW5nIHJ1bGVzIGFuZCBhcHBhcmFudGx5IGJyZWFrcyBvbiBQUEMKCSAgYW5kIHMzOTAuIFRoYW5rcyB0byBTam9lcmQgU2ltb25zIGZvciBhbmFseXNpbmcuIEZpeGVzIGJ1ZyAjMzQ4MTE0LgoKMjAwOC0wNi0yOSAxNjoxMToyNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOiBPcHRpbWl6ZSBsaXN0IGhhbmRsaW5nLiBVc2Ugb3duIGZpbmQgZnVuY3Rpb24uIEV4cGxvaXQgdGhhdCBmYWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgT3B0aW1pemUgbGlzdCBoYW5kbGluZy4gVXNlIG93biBmaW5kIGZ1bmN0aW9uLiBFeHBsb2l0IHRoYXQgZmFjdCB0aGF0CgkgIHRoZSBsaXN0IGlzIHNvcnRlZC4gQWxzbyBwYXNzIGJhY2sgdGhlIG5vZGUgYmVmb3JlLCBzbyB0aGF0IHdlIGNhbgoJICBpbnNlcnQgcXVpY2tseS4gSGF2ZSBhIGZhc3QgcGF0aCBmb3IgYXBwZW5kLgoKMjAwOC0wNi0yOSAxNTowMDoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vOiBGaXggdHdvIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1mcmFtZXN0ZXAudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OgoJICBGaXggdHdvIHR5cG9zLgoKMjAwOC0wNi0yNyAwOTowMjo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFNob3cgY29uZmlndXJhdGlvbiBzdW1hcnkgYWZ0ZXIgY29uZmlndXJlIHJ1bi4gQmFzZWQgb24gcGF0Y2ggYnkKCSAgTHVjIFBpb25jaG9uIDxsdWMucGlvbmNob25Abm9raWEuY29tPi4gRml4ZXM6ICM1NDAxMzQKCjIwMDgtMDYtMjcgMDc6MDM6MDUgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogQWRkIHNjYWxlIGZhY3RvciBmb3IgcGRmIG91dHB1dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtdGhyZWFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgQWRkIHNjYWxlIGZhY3RvciBmb3IgcGRmIG91dHB1dC4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1iYXNpY3MueG1sOgoJICBTd2l0Y2hlZCBzZWN0aW9ucyAicGFkcyIgYW5kICJiaW5zIiBhbmQgYWRkZWQgYSBwaXBlbGluZSBkaWFncmFtLgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWdzdHJlYW1lci54bWw6CgkgIEFkZGVkIG1vcmUgaW5mbyBvbiBnc3RyZWFtZXIuCgkgICogZG9jcy9tYW51YWwvaW50cm8tbW90aXZhdGlvbi54bWw6CgkgIENvbW1lbnRlZCBvdXQgdGhlIHdob2xlIHNlY3Rpb24gImN1cnJlbnQgcHJvYmxlbSIsIHdoaWNoIHNvdW5kcwoJICBoaXN0b3JpY2FsIGFuZCBzb21laG93IG9zb2xldGU7IGl0IGNvdWxkIGJlIHR1cm5lZCBpbiBhIHBvc2l0aXZlCgkgIHdheSBhbmQgcmV1c2VkIHRvIGltcHJvdmUgdGhlIGRlc2lnbiBwcmluY2lwbGVzLgoJICAqIGRvY3MvbWFudWFsL2ludHJvLXByZWZhY2UueG1sOgoJICAtIFVwZGF0ZSBVUkxzIHRvIGxpYnJhcnkuZ25vbWUub3JnLgoJICAtIERvIG5vdCBtZW50aW9uIEdUSysgaW4gcHJlbGltaW5hcnkgcmVhZGluZyAoaXJyZWxldmFudCkuCgkgIC0gTWVudGlvbiBQbHVnaW4gV3JpdGVyJ3MgTWFudWFsIGFuZCBmdXJ0aGVyIHJlYWRpbmcgb25seSBpbiB0aGUKCSAgcHJldmlvdXMgc2VjdGlvbi4KCSAgLSBBZGRlZCBhIGxpc3Qgb2YgbW9zdCByZWxldmFudCBHT2JqZWN0L2dsaWIgdG9waWNzLgoJICAqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LWdob3N0LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9iaW4tZWxlbWVudC1naG9zdC5wbmc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtbm9naG9zdC5maWc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQtbm9naG9zdC5wbmc6CgkgICogZG9jcy9tYW51YWwvYmluLWVsZW1lbnQuZmlnOgoJICAqIGRvY3MvbWFudWFsL2Jpbi1lbGVtZW50LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC1tdWx0aS5maWc6CgkgICogZG9jcy9tYW51YWwvZmlsdGVyLWVsZW1lbnQtbXVsdGkucG5nOgoJICAqIGRvY3MvbWFudWFsL2ZpbHRlci1lbGVtZW50LmZpZzoKCSAgKiBkb2NzL21hbnVhbC9maWx0ZXItZWxlbWVudC5wbmc6CgkgICogZG9jcy9tYW51YWwvZ3N0cmVhbWVyLW92ZXJ2aWV3LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9oZWxsby13b3JsZC5maWc6CgkgICogZG9jcy9tYW51YWwvaGVsbG8td29ybGQucG5nOgoJICAqIGRvY3MvbWFudWFsL2xpbmtlZC1lbGVtZW50cy5maWc6CgkgICogZG9jcy9tYW51YWwvbGlua2VkLWVsZW1lbnRzLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLmZpZzoKCSAgKiBkb2NzL21hbnVhbC9taW1lLXdvcmxkLnBuZzoKCSAgKiBkb2NzL21hbnVhbC9xdWV1ZS5maWc6CgkgICogZG9jcy9tYW51YWwvcXVldWUucG5nOgoJICAqIGRvY3MvbWFudWFsL3NpbXBsZS1wbGF5ZXIucG5nOgoJICAqIGRvY3MvbWFudWFsL3NpbmstZWxlbWVudC5maWc6CgkgICogZG9jcy9tYW51YWwvc2luay1lbGVtZW50LnBuZzoKCSAgKiBkb2NzL21hbnVhbC9zcmMtZWxlbWVudC5maWc6CgkgICogZG9jcy9tYW51YWwvc3JjLWVsZW1lbnQucG5nOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLWdlbmVyYWwuc3ZnOgoJICAqIGRvY3MvbWFudWFsL2RpYWdyYW1zLXBpcGVsaW5lcy5zdmc6CgkgIFJlbW92ZWQgLmZpZywgYWRkZWQgLnBuZyBjb3VudGVycGFydC4KCSAgRml4ZXM6ICM1MzkxMzcKCjIwMDgtMDYtMjYgMjA6Mjc6MDAgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuKjogcmV2ZXJ0IGV4dHJhLXNpemUtYnVmZmVycyBzdHVmZiwgY2F1c2VkIHNvbWUgcmFjZSBjb25kaXRpb25zIGFuZCBleHRyYS1zaXplLWJ1ZmZlcnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIHJldmVydCBleHRyYS1zaXplLWJ1ZmZlcnMgc3R1ZmYsIGNhdXNlZCBzb21lIHJhY2UgY29uZGl0aW9ucwoJICBhbmQgZXh0cmEtc2l6ZS1idWZmZXJzIGlzIG5vdCB1c2VkIGFueW1vcmUuIERvY3MgbmVlZHMgc29tZSB1cGRhdGVzCgoyMDA4LTA2LTI2IDEyOjUyOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogVXBkYXRlIHdpbjMyIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBVcGRhdGUgd2luMzIgZmlsZXMuCgoyMDA4LTA2LTI2IDEyOjI0OjA4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuaDogQWRkIG1pc3NpbmcgU2luY2UnIG1hcmtlcnMgdG8gZ3RrLWRvYyBibHVyYnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6IChHc3REZWJ1Z0dyYXBoRGV0YWlscyksCgkgIChHU1RfREVCVUdfQklOX1RPX0RPVF9GSUxFKToKCSAgQWRkIG1pc3NpbmcgU2luY2UnIG1hcmtlcnMgdG8gZ3RrLWRvYyBibHVyYnMuCgoyMDA4LTA2LTI2IDExOjU5OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IEFkZCBzb21lIG1vcmUgdGVzdHMgd2l0aCBzd2l0Y2hpbmcgY2FwcyBpbiBidWZmZXJfYWxsb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoYnVmZmVyX2FsbG9jX3B0MSksCgkgIChzZXRfY2Fwc19wdDEpLCAoR1NUX1NUQVJUX1RFU1QpLCAoc2V0X2NhcHNfcHQyKSwgKHRyYW5zZm9ybV9pcF8xKSwKCSAgKHNldF9jYXBzXzEpLCAoc2V0X2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9jdDEpLAoJICAodHJhbnNmb3JtX2NhcHNfY3QxKSwgKHRyYW5zZm9ybV9zaXplX2N0MSksIChidWZmZXJfYWxsb2NfY3QxKSwKCSAgKHNldF9jYXBzX2N0MiksICh0cmFuc2Zvcm1fY3QyKSwgKHRyYW5zZm9ybV9jYXBzX2N0MiksCgkgICh0cmFuc2Zvcm1fc2l6ZV9jdDIpLCAoYnVmZmVyX2FsbG9jX2N0Mik6CgkgIEFkZCBzb21lIG1vcmUgdGVzdHMgd2l0aCBzd2l0Y2hpbmcgY2FwcyBpbiBidWZmZXJfYWxsb2MuCgoyMDA4LTA2LTI1IDE3OjI3OjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy86IE1vcmUgdGVzdHMsIHByZXBhcmUgZm9yIHRlc3RzIHdpdGggc3dpdGNoaW5nIGNhcHMgaW4gYnVmZmVyX2FsbG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3Rlc3RfdHJhbnNmb3JtLmM6IChnc3RfdGVzdF90cmFuc19iYXNlX2luaXQpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfY2xhc3NfaW5pdCksIChyZXN1bHRfc2lua19jaGFpbiksCgkgIChyZXN1bHRfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZXN0X3RyYW5zX25ldyksIChnc3RfdGVzdF90cmFuc19mcmVlKSwKCSAgKGdzdF90ZXN0X3RyYW5zX3B1c2gpLCAoZ3N0X3Rlc3RfdHJhbnNfcG9wKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3RyYW5zZm9ybTEuYzogKGJ1ZmZlcl9hbGxvY19wdDEpLAoJICAoc2V0X2NhcHNfcHQxKSwgKEdTVF9TVEFSVF9URVNUKSwgKHNldF9jYXBzX3B0MiksICh0cmFuc2Zvcm1faXBfMSksCgkgIChzZXRfY2Fwc18xKSwgKHNldF9jYXBzX2N0MSksICh0cmFuc2Zvcm1fY3QxKSwKCSAgKHRyYW5zZm9ybV9jYXBzX2N0MSksICh0cmFuc2Zvcm1fc2l6ZV9jdDEpLCAoYnVmZmVyX2FsbG9jX2N0MSksCgkgIChzZXRfY2Fwc19jdDIpLCAodHJhbnNmb3JtX2N0MiksICh0cmFuc2Zvcm1fY2Fwc19jdDIpLAoJICAodHJhbnNmb3JtX3NpemVfY3QyKSwgKGJ1ZmZlcl9hbGxvY19jdDIpLAoJICAoZ3N0X2Jhc2V0cmFuc2Zvcm1fc3VpdGUpOgoJICBNb3JlIHRlc3RzLCBwcmVwYXJlIGZvciB0ZXN0cyB3aXRoIHN3aXRjaGluZyBjYXBzIGluIGJ1ZmZlcl9hbGxvYy4KCjIwMDgtMDYtMjUgMTU6Mzk6MDIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuKjogRml4IGRlYWQtbG9jayBpbiB1bmRlcnJ1bl9jYgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgRml4IGRlYWQtbG9jayBpbiB1bmRlcnJ1bl9jYgoKMjAwOC0wNi0yNSAxNDo0OTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogRml4IGRldmljZSBvcGVuL2Nsb3NlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgRml4IGRldmljZSBvcGVuL2Nsb3NlIGRvY3MuCgoyMDA4LTA2LTI1IDE0OjQ3OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IE1lbnRpb24gYnVnbnVtYmVyIGZvciBsYXN0IGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1Z251bWJlciBmb3IgbGFzdCBjb21taXQuCgoyMDA4LTA2LTI1IDE0OjQ0OjUyICswMDAwICBMdWMgUGlvbmNob24gPGx1Yy5waW9uY2hvbkBub2tpYS5jb20+CgoJICBkb2NzL21hbnVhbC9tYW51YWwueG1sOiAtIFJlb3JnYW5pc2VkIHRoZSBwcmV2aW91cyAiaW50cm9kdWN0aW9uIiBidW5kbGUgaW50byBGb3Jld29yZCwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgIC0gUmVvcmdhbmlzZWQgdGhlIHByZXZpb3VzICJpbnRyb2R1Y3Rpb24iIGJ1bmRsZSBpbnRvIEZvcmV3b3JkLAoJICBJbnRyb2R1Y3Rpb24sIGFuZCBBYm91dCBHU3RyZWFtZXIuIFRoZSB0d28gZmlyc3QgYXJlIDxwcmVmYWNlPgoJICBkb2Nib29rIGVsZW1lbnRzLiBUaGUgbGF0ZXIgaXMgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGJvb2suCgkgIC0gYWRkZWQgaW50cm8tZ3N0cmVhbWVyLnhtbCAoY29udGVudCBwYXJ0aWFsbHkgZnJvbQoJICBpbnRyby1wcmVmYWNlLnhtbCkKCSAgLSBtb3ZlZCBhcHBlbmRpeC13aW4zMi54bWwgaW50byBhcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWwKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1wcmVmYWNlLnhtbDogZ3N0cmVhbWVyIHNlY3Rpb24gbW92ZWQuLi4KCSAgKiBkb2NzL21hbnVhbC9pbnRyby1nc3RyZWFtZXIueG1sOiAuLi5oZXJlLiBuZXcgZmlsZS4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC13aW4zMi54bWw6IHJlbW92ZWQgZmlsZS4gQ29udGVudCBtb3ZlZC4uLgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDogLi4uaGVyZS4KCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6IHNlY3Rpb24gYWJvdXQgR3N0RWRpdG9yIG1vdmVkLi4uCgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDogLi4uaGVyZS4KCjIwMDgtMDYtMjUgMTQ6MzI6NTMgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogLSBFeHBsaWNpdGVseSBpbmNsdWRlIGdsaWIuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBMdWMgUGlvbmNob24gIDxsdWMucGlvbmNob25Abm9raWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oZWxsby13b3JsZC5maWc6CgkgIC0gRXhwbGljaXRlbHkgaW5jbHVkZSBnbGliLmguCgkgIC0gRG8gbm90IHVzZSBnbG9iYWwgdmFyaWFibGVzLgoJICAtIFVzZSBnX3ByaW50ZXJyKCkgaW5zdGVhZCBvZiBnX3ByaW50KCkuCgkgIC0gTWlub3IgZm9ybWF0aW5nL3JlbmFtaW5nIHRvIGluY3JlYXNlIHJlYWRpYmlsaXR5LgoJICAtIFJlbmFtZWQgbmV3X3BhZCgpIHRvIG9uX3BhZF9hZGRlZCgpCgkgIC0gSW1wcm92ZWQgZXhwbGVuYXRvcnkgY29tbWVudHMuCgkgIC0gcmVuYW1lZCBvZ2cgcGFyc2VyIHRvIG9nZyBkZW11eGVyCgkgIC0gVXNlICJhdXRvYXVkaW9zaW5rIiBpbnN0ZWFkIG9mICJhbHNhc2luayIuCgkgIEZpeGVzOiAjNTM4NjE5CgoyMDA4LTA2LTI1IDE0OjI3OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IFJlbW92ZSBjdnMgY29uZmxpY3QgbWFya2VyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIFJlbW92ZSBjdnMgY29uZmxpY3QgbWFya2VyLgoKMjAwOC0wNi0yNSAxNDoyNTo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9SRUFETUU6IERvY3VtZW50IHRoYXQgZm9yIHBsZ2luLWRvY3Mgd2UgZXh0cmF4dCBoZSBzaG9ydC1kZXNjIGZyb20gdGhlIGVsZW1lbnQgZGV0YWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIERvY3VtZW50IHRoYXQgZm9yIHBsZ2luLWRvY3Mgd2UgZXh0cmF4dCBoZSBzaG9ydC1kZXNjIGZyb20gdGhlIGVsZW1lbnQKCSAgZGV0YWlscy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgIFRlbGwgdGhhdCBkZXZpY2VzIHNob3VsZCBiZSBjbG9zZWQgaW4gUEFVU0VEIC0+IFJFQURZLgoJICAqIGRvY3MvbWFudWFsL1JFQURNRToKCSAgRG9jdW1lbnQgaG93IHRlc3RzIGluIHRoZSBtYW51YWwgYXJlIGhhbmRsZWQuCgkgICogZG9jcy9tYW51YWxzLm1hazoKCSAgVHlwbyBpbiBjb21tZW50LgoKMjAwOC0wNi0yNSAxMTo1MDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogT25seSBjYXJlIGFib3V0IGxhdGVuY3kgbWluIGFuZCBtYXggd2hlbiB0aGUgc2luayBpcyBhY3R1YWxseSBhIGxpdmUgc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3F1ZXJ5X2xhdGVuY3lfZm9sZCk6CgkgIE9ubHkgY2FyZSBhYm91dCBsYXRlbmN5IG1pbiBhbmQgbWF4IHdoZW4gdGhlIHNpbmsgaXMgYWN0dWFsbHkgYSBsaXZlCgkgIHNpbmsuCgoyMDA4LTA2LTI1IDEwOjUzOjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgRml4IHR5cG8uCgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkgIEFkZCBub3RlcyBhYm91dCB3aHkgdHJhbnNmb3JtIG5lZWRzIHRvIGtub3cgaW5wdXQvb3V0cHV0IHNpemVzLgoJICBBZGQgc29tZSBpc3N1ZXMgdGhhdCBuZWVkIHRvIGJlIHNvbHZlZC4KCSAgQWRkIHNvbWUgbW9yZSB1c2UgY2FzZXMuCgkgICogdGVzdHMvY2hlY2svbGlicy90ZXN0X3RyYW5zZm9ybS5jOiAoZ3N0X3Rlc3RfdHJhbnNfYmFzZV9pbml0KSwKCSAgKGdzdF90ZXN0X3RyYW5zX2NsYXNzX2luaXQpLCAocmVzdWx0X3NpbmtfY2hhaW4pLAoJICAocmVzdWx0X2J1ZmZlcl9hbGxvYyksIChnc3RfdGVzdF90cmFuc19uZXcpLCAoZ3N0X3Rlc3RfdHJhbnNfZnJlZSksCgkgIChnc3RfdGVzdF90cmFuc19wdXNoKSwgKGdzdF90ZXN0X3RyYW5zX3BvcCk6CgkgICogdGVzdHMvY2hlY2svbGlicy90cmFuc2Zvcm0xLmM6IChidWZmZXJfYWxsb2NfcHQxKSwKCSAgKHNldF9jYXBzX3B0MSksIChHU1RfU1RBUlRfVEVTVCksIChzZXRfY2Fwc19wdDIpLCAodHJhbnNmb3JtX2lwXzEpLAoJICAoc2V0X2NhcHNfMSksIChzZXRfY2Fwc19jdDEpLCAodHJhbnNmb3JtX2N0MSksCgkgICh0cmFuc2Zvcm1fY2Fwc19jdDEpLCAodHJhbnNmb3JtX3NpemVfY3QxKSwgKGJ1ZmZlcl9hbGxvY19jdDEpLAoJICAoZ3N0X2Jhc2V0cmFuc2Zvcm1fc3VpdGUpOgoJICBBZGQgc3Vwb3J0IGZvciBkaWZmZXJlbnQgcGFkIHRlbXBsYXRlcyBhbmQgYnVmZmVyLWFsbG9jLgoJICBBZGQgbW9yZSBjaGVja3MgZm9yIGNhcHMgYW5kIGJ1ZmZlci1hbGxvYy4KCSAgQWRkIGNoZWNrcyBmb3IgcHJveHkgYnVmZmVyIGFsbG9jLgoJICBBZGQgdW5pdCB0ZXN0IGZvciBjb3B5IHRyYW5zZm9ybS4KCjIwMDgtMDYtMjQgMTk6NTY6NTEgKzAwMDAgIEx1YyBQaW9uY2hvbiA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogVHlwbyBhbmQgZm9ybWF0dGluZyBmaXhlcyAoIzUzODU5NCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTHVjIFBpb25jaG9uICA8bHVjLnBpb25jaG9uQG5va2lhLmNvbT4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtbGljZW5zaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkgIFR5cG8gYW5kIGZvcm1hdHRpbmcgZml4ZXMgKCM1Mzg1OTQpLgoKMjAwOC0wNi0yNCAwNzo0OTozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEZpeCBzb21lIG1lbW9yeSBsZWFrcyBhbmQgdXNlcyBvZiBvYmplY3QgaW5zdGFuY2VzIHRoYXQgd2UgZG9uJ3QgYWN0dWFsbHkgb3duLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IHNvbWUgbWVtb3J5IGxlYWtzIGFuZCB1c2VzIG9mIG9iamVjdCBpbnN0YW5jZXMgdGhhdCB3ZSBkb24ndAoJICBhY3R1YWxseSBvd24uCgoyMDA4LTA2LTIyIDE5OjE5OjM1ICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEFkZCBmdW5jdGlvbmFsaXR5IHRvIGV4dHJhLXNpemUtYnVmZmVycyBwcm9wZXJ0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIEFkZCBmdW5jdGlvbmFsaXR5IHRvIGV4dHJhLXNpemUtYnVmZmVycyBwcm9wZXJ0eS4KCjIwMDgtMDYtMjIgMTQ6MzU6MTMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRG9uJ3QgdXBkYXRlIHRoZSBjdXJfdGltZSBvbiBHU1RfQ0xPQ0tfVElNRV9OT05FICgjNTM3ODA0KSBhbmQgZG9uJ3QgYWN0aXZhdGUgdGhlIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6CgkgIERvbid0IHVwZGF0ZSB0aGUgY3VyX3RpbWUgb24gR1NUX0NMT0NLX1RJTUVfTk9ORSAoIzUzNzgwNCkgYW5kIGRvbid0CgkgIGFjdGl2YXRlIHRoZSBwYWRzIGlmIHRoZXkgYXJlIGFkZGVkIGluIFNUQVRFX05VTEwuCgoyMDA4LTA2LTIxIDIxOjIwOjEzICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBBUEkgdG8gZG9jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgQVBJIHRvIGRvYwoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQVBJOiBnc3RfY2hlY2tfdGVhcmRvd25fcGFkX2J5X25hbWUKCjIwMDgtMDYtMjEgMTk6NDg6NTMgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBBbHNvIHNldHVwIHJlcXVlc3QgcGFkcyBhbmQgYWxsb3cgc2V0dXAgcGFkcyBieSBuYW1lICgjNTM3ODEyKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFsc28gc2V0dXAgcmVxdWVzdCBwYWRzIGFuZCBhbGxvdyBzZXR1cCBwYWRzIGJ5IG5hbWUgKCM1Mzc4MTIpCgkgIEFQSTogZ3N0X2NoZWNrX3NldHVwX3NyY19wYWRfYnlfbmFtZQoJICBBUEk6IGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZF9ieV9uYW1lCgoyMDA4LTA2LTIwIDIxOjA4OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogVXNlIEhBVkVfVkFMR1JJTkRfSCBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6CgkgIFVzZSBIQVZFX1ZBTEdSSU5EX0ggc29tZSBtb3JlLgoKMjAwOC0wNi0yMCAxNjoyOToyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBzY3JpcHRzL2N2cy11cGRhdGUuc2g6IFBhc3MgYXJndW1lbnRzIHRvIG1ha2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHNjcmlwdHMvY3ZzLXVwZGF0ZS5zaDoKCSAgUGFzcyBhcmd1bWVudHMgdG8gbWFrZS4KCSAgUnVuIGF1dG9yZWdlbi5zaCBpZiBNYWtlZmlsZSBpcyBub3QgdGhlcmUuCgoyMDA4LTA2LTIwIDE1OjU0OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIERvbid0IGFzc3VtZSB0aGF0IDx2YWxncmluZC92YWxncmluZC5oPiBleGlzdHMganVzdCBiZWNhdXNlIHRoZSBiaW5hcnkgaXMgdGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBEb24ndCBhc3N1bWUgdGhhdCA8dmFsZ3JpbmQvdmFsZ3JpbmQuaD4gZXhpc3RzIGp1c3QgYmVjYXVzZQoJICB0aGUgYmluYXJ5IGlzIHRoZXJlLgoKMjAwOC0wNi0yMCAxMjowNjo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIHNvbWUgdGVzdCBiYXNldHJhbnNmb3JtIGVsZW1lbnQgYW5kIHRoZSBiZWdpbm5pbmdzIG9mIHZhcmlvdXMgdW5pdCB0ZXN0cyBmb3IgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdGVzdF90cmFuc2Zvcm0uYzogKGdzdF90ZXN0X3RyYW5zX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVzdF90cmFuc19jbGFzc19pbml0KSwgKGdzdF90ZXN0X3RyYW5zX2luaXQpLAoJICAoZ3N0X3Rlc3RfdHJhbnNfc2V0X2RhdGEpLCAocmVzdWx0X3NpbmtfY2hhaW4pLAoJICAoZ3N0X3Rlc3RfdHJhbnNfbmV3KSwgKGdzdF90ZXN0X3RyYW5zX2ZyZWUpLCAoZ3N0X3Rlc3RfdHJhbnNfcHVzaCksCgkgIChnc3RfdGVzdF90cmFuc19wb3ApOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHJhbnNmb3JtMS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAodHJhbnNmb3JtX2lwXzEpLCAoc2V0X2NhcHNfMSksIChnc3RfYmFzZXRyYW5zZm9ybV9zdWl0ZSk6CgkgIEFkZCBzb21lIHRlc3QgYmFzZXRyYW5zZm9ybSBlbGVtZW50IGFuZCB0aGUgYmVnaW5uaW5ncyBvZiB2YXJpb3VzCgkgIHVuaXQgdGVzdHMgZm9yIGl0LgoKMjAwOC0wNi0yMCAxMToyNDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogSW5jcmVhc2UgY29kZSByZWFkYWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgIEluY3JlYXNlIGNvZGUgcmVhZGFiaWxpdHkuCgkgIERvbid0IHRyeSB0byBjb21wYXJlIGJ1ZmZlciBvZmZzZXRzIHdoZW4gdGhlciBhcmUgaW52YWxpZC4KCjIwMDgtMDYtMjAgMTE6MDc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbTogRGlzdCBzb21lIG1vcmUgZGVzaWduIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL01ha2VmaWxlLmFtOgoJICBEaXN0IHNvbWUgbW9yZSBkZXNpZ24gZG9jcy4KCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgU21hbGwgYWRkaXRpb246IGdvb2QgcGx1Z2lucyBtdXN0bid0IGhhdmUgZnVuY3Rpb25hbCBjb2RlCgkgIHdpdGhpbiBhc3NlcnRpb24gbWFjcm9zLgoKMjAwOC0wNi0yMCAxMDozMjozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6IFNvbWUgaWRlYXMgYWJvdXQgYSBmcmFtZXN0ZXAgQVBJCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWZyYW1lc3RlcC50eHQ6CgkgIFNvbWUgaWRlYXMgYWJvdXQgYSBmcmFtZXN0ZXAgQVBJCgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXRyYW5zZm9ybS50eHQ6CgkgIFN0YXJ0IGRlc2lnbiBhbmQgdXNlIGNhc2VzIGZvciBiYXNldHJhbnNmb3JtIGluIG9yZGVyIHRvIGdldCBpdAoJICBmaXhlZCBzb29uLgoKMjAwOC0wNi0yMCAxMDoyMDowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogTWFrZSBpdCBrbm93biB0aGF0IGdzdF9idXNfcG9sbCgpIGlzIHB1cmUgZXZpbCAoZml4ZXMgIzUzODgxMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgTWFrZSBpdCBrbm93biB0aGF0IGdzdF9idXNfcG9sbCgpIGlzIHB1cmUgZXZpbCAoZml4ZXMgIzUzODgxMCkuCgoyMDA4LTA2LTIwIDEwOjE0OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogUmVtb3ZlIHNob3J0X2Rlc2NyaXB0aW9uLiBBZGQgYmFzaWMgZG9jcyBmb3IgZ3N0dHlwZWZpbmRlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBSZW1vdmUgc2hvcnRfZGVzY3JpcHRpb24uIEFkZCBiYXNpYyBkb2NzIGZvciBnc3R0eXBlZmluZGVsZW1lbnQuCgkgIFNpbXBsaWZ5IG1hcmt1cCBmb3IgZmFrZXNyYy9mZHNyYy4KCjIwMDgtMDYtMjAgMTA6MDc6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEFkZGVkIFNpbmNlIGRvYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgQWRkZWQgU2luY2UgZG9jLgoKMjAwOC0wNi0yMCAxMDowMjoxNCArMDAwMCAgam9lbCBsYXJzc29uIDx0aWxsam9lbEBnbWFpbC5jb20+CgoJICBBZGQgdGltZW91dCBwcm9wZXJ0eSBsaWtlIHVkcHNyYy4gRml4ZXMgIzUzODYyOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBqb2VsIGxhcnNzb24gPHRpbGxqb2VsIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zcmNfaW5pdCksIChnc3RfZmRfc3JjX3VwZGF0ZV9mZCksCgkgIChnc3RfZmRfc3JjX3NldF9wcm9wZXJ0eSksIChnc3RfZmRfc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBBZGQgdGltZW91dCBwcm9wZXJ0eSBsaWtlIHVkcHNyYy4gRml4ZXMgIzUzODYyOC4KCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGFuZCBleGFtcGxlIHBpcGVsaW5lcy4KCjIwMDgtMDYtMjAgMDg6NTQ6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgbWV0aG9kIHRvIGFsbG93IHNpbmtzIHRvIHNwZWNpZnkgYWRkaXRpb25hbCBkZWxheSBiZXR3ZWVuIHRoZSBzeW5jIHRpbWVzIGFuZCB0aGUgYWN0dWFsIHJlbmRlcmluZyBvZiB0aGUgZGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwgKGdzdF9iYXNlX3Npbmtfc2V0X3JlbmRlcl9kZWxheSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9yZW5kZXJfZGVsYXkpLCAoZ3N0X2Jhc2Vfc2lua193YWl0X2VvcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIEFkZCBtZXRob2QgdG8gYWxsb3cgc2lua3MgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIGRlbGF5IGJldHdlZW4gdGhlIHN5bmMKCSAgdGltZXMgYW5kIHRoZSBhY3R1YWwgcmVuZGVyaW5nIG9mIHRoZSBkYXRhLgoJICBBUEk6IGdzdF9iYXNlX3Npbmtfc2V0X3JlbmRlcl9kZWxheSgpCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19nZXRfcmVuZGVyX2RlbGF5KCkKCjIwMDgtMDYtMjAgMDg6NDU6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIHZlcnNpb24gbnVtYmVyIGJhY2sgdG8gZGV2IC0+IDAuMTAuMjAuMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgdmVyc2lvbiBudW1iZXIgYmFjayB0byBkZXYgLT4gMC4xMC4yMC4xCgoyMDA4LTA2LTIwIDA4OjM5OjU0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBHU1RfVEFHX0FUVEFDSE1FTlQgZm9yIGdlbmVyaWMgZmlsZSBhdHRhY2htZW50cyB0byBzdHJlYW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IEFkZCBHU1RfVEFHX0FUVEFDSE1FTlQgZm9yIGdlbmVyaWMgZmlsZSBhdHRhY2htZW50cyB0byBzdHJlYW1zLgoJICBGaXhlcyBidWcgIzUzODU2OC4KCjIwMDgtMDYtMjAgMDg6MzY6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBSZXZlcnQgb25lIGNoYW5nZSwgdGhhdCBtYWtlIHJldCB2YWx1ZSBwb3NzaWJsZSB1bmluaXRpYWxpemVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgUmV2ZXJ0IG9uZSBjaGFuZ2UsIHRoYXQgbWFrZSByZXQgdmFsdWUgcG9zc2libGUgdW5pbml0aWFsaXplZC4KCjIwMDgtMDYtMjAgMDg6MzI6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBVc2UgZnJlZXplL3RoYXcgbm90aWZ5IHRvIHN5bmMgbm90aWZ5IGVtaXNzaW9uIGEgYml0IChpdHMgYWxzbyBtb3JlIGVmZmljaWVudCkuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgVXNlIGZyZWV6ZS90aGF3IG5vdGlmeSB0byBzeW5jIG5vdGlmeSBlbWlzc2lvbiBhIGJpdCAoaXRzIGFsc28gbW9yZQoJICBlZmZpY2llbnQpLiBNb3ZlIGRlYnVnIG91dHB1dCB0byBMT0cgKGlzIGNhbGxlZCBhIGxvdCBpbiBhIGxvb3ApLgoJICBBbHdheXMgdW5zZXQgZ192YWx1ZXMgaWYgdGhlIGhhdmUgYmVlbiBpbml0aWFsaXplZC4KCjIwMDgtMDYtMjAgMDg6Mjg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IElmIHdlIGhhdmUgbm90IHNlZW4gYSBidWZmZXIgYmVmb3JlIEVPUywgdXNlIHRoZSBzZWdtZW50IHZhbHVlcyB0byByZXBvcnQgdGhlIGN1cnJlbnQgcG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICBJZiB3ZSBoYXZlIG5vdCBzZWVuIGEgYnVmZmVyIGJlZm9yZSBFT1MsIHVzZSB0aGUgc2VnbWVudCB2YWx1ZXMgdG8KCSAgcmVwb3J0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGluc3RlYWQgb2YgaW52YWxpZCBwb3NpdGlvbnMuCgoyMDA4LTA2LTIwIDA4OjIxOjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBJZ25vcmUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA4LTA2LTIwIDA4OjE3OjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBSZXdyaXRlIGhhbmRsaW5nIG9mIGRlZmF1bHQgdmFsdWVzLiBGaXggb3ZlcmZsb3cgd2l0aCB1bnNpZ25lZCB0eXBlcyBpbiBsaW5lYXIgaW50ZXJwb2xhdGlvbi4gUmVtb3ZlIG5vdyBvYnNvbGV0ZSBfZmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBSZXdyaXRlIGhhbmRsaW5nIG9mIGRlZmF1bHQgdmFsdWVzLiBGaXggb3ZlcmZsb3cgd2l0aCB1bnNpZ25lZCB0eXBlcwoJICBpbiBsaW5lYXIgaW50ZXJwb2xhdGlvbi4gUmVtb3ZlIG5vdyBvYnNvbGV0ZSBfZmlyc3RfdmFsdWUoKSBmdW5jdGlvbi4KCSAgQWRkIG1vcmUgdGVzdHMuIEZpeGVzICM1MzgyMDEuCgoyMDA4LTA2LTIwIDA4OjE0OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFkZCBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgQWRkIGRlYnVnIGluZm8uCgkgIFdoZW4gYSBidWZmZXIgaXMgd3JpdGFibGUsIGl0cyBtZXRhZGF0YSBpcyBhbHNvIHdyaXRhYmxlIHNvIHdlIGRvbid0CgkgIG5lZWQgdG8gc3ViYnVmZmVyICh3aGljaCB0aGVuIG1ha2VzIHRoZSBidWZmZXIgbm90LXdyaXRhYmxlIGFueW1vcmUpLgoKPT09IHJlbGVhc2UgMC4xMC4yMCA9PT0KCjIwMDgtMDYtMTggMTA6NTg6MzUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4yMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjIwCgoyMDA4LTA2LTE4IDEwOjU2OjE4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTA2LTExIDIxOjE0OjE3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogMC4xMC4xOS4zIHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgMC4xMC4xOS4zIHByZS1yZWxlYXNlCgoyMDA4LTA2LTExIDIwOjA3OjMxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIFJlbmFtZSBEQVRBRElSIHRvIEdTVF9EQVRBRElSIHRvIGF2b2lkIGJ1aWxkIHByb2JsZW1zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFJlbmFtZSBEQVRBRElSIHRvIEdTVF9EQVRBRElSIHRvIGF2b2lkIGJ1aWxkIHByb2JsZW1zCgkgIG9uIHdpbjMyLiBQYXRjaCBCeTogRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgkgIEZpeGVzOiAjNTM2ODU3CgoyMDA4LTA2LTA1IDEwOjEzOjQ1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IEV4cGxpY2l0ZWx5IGxpbmsgd2l0aCAtbGRsIGlmIGRsYWRkcigpIGlzIGZvdW5kIHRoZXJlLiBCZWZvcmUgaXQgd2FzIGltcGxpY2l0ZWx5IGxpbmtlZCBieSB0aGUgZ21vZHVsZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBFeHBsaWNpdGVseSBsaW5rIHdpdGggLWxkbCBpZiBkbGFkZHIoKSBpcyBmb3VuZCB0aGVyZS4gQmVmb3JlIGl0IHdhcwoJICBpbXBsaWNpdGVseSBsaW5rZWQgYnkgdGhlIGdtb2R1bGUgcGtnY29uZmlnIGZpbGUgYnV0IGluIGdsaWIgMi4xNy4wCgkgIC1sZGwgaGFzIG1vdmVkIGZyb20gTGlicyB0byBMaWJzLnByaXZhdGUuIEZpeGVzIGJ1ZyAjNTM2NzQ0LgoKMjAwOC0wNi0wNSAwOTo0MjozMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIFB1dCBwcmUtcmVsZWFzZSBjaGFuZWdsb2cgZW50cnkgd2hlcmUgaXQgYWN0dWFsbHkgaGFwcGVuZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFB1dCBwcmUtcmVsZWFzZSBjaGFuZWdsb2cgZW50cnkgd2hlcmUgaXQgYWN0dWFsbHkgaGFwcGVuZWQKCjIwMDgtMDYtMDUgMDk6NDE6MjUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAwLjEwLjE5LjIgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAwLjEwLjE5LjIgcHJlLXJlbGVhc2UKCjIwMDgtMDYtMDUgMDg6NTU6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuYzogRml4IHR5cG8gKHNwb3R0ZWQgYnkgRmFicmljaW8gR29kb3ksICM1MzY3MjMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3Rfc3RyZWFtX2Vycm9yc19pbml0KToKCSAgRml4IHR5cG8gKHNwb3R0ZWQgYnkgRmFicmljaW8gR29kb3ksICM1MzY3MjMpLgoKMjAwOC0wNi0wNCAxMTo0NzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIHNvbWUgZGVidWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X2FzeW5jX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfdHNfb2Zmc2V0KSwgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpOgoJICBBZGQgc29tZSBkZWJ1Zy4KCSAgTWFrZSBzdXJlIHdlIGRvbid0IGdlbmVyYXRlIGludmFsaWQgUW9TIG1lc3NhZ2VzLgoKMjAwOC0wNi0wNCAxMTozMToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5jOiBBZGQgc29tZSBhc3NlcnQgYW5kIGRvY3MgZm9yIGludmFsaWQgaW5wdXQgdG8gdGhlIHFvcyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X3Fvcyk6CgkgIEFkZCBzb21lIGFzc2VydCBhbmQgZG9jcyBmb3IgaW52YWxpZCBpbnB1dCB0byB0aGUgcW9zIGZ1bmN0aW9uLgoKMjAwOC0wNS0zMCAxNTo0ODo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVGhlIHJlcG9ydGVkIHBvc2l0aW9uIG11c3QgYWx3YXlzIGJlIHNtYWxsZXIgdGhhbiB0aGUgbGFzdCBzZWVuIHRpbWVzdGFtcHMgKG9yIHRpbWVzdGFtcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgVGhlIHJlcG9ydGVkIHBvc2l0aW9uIG11c3QgYWx3YXlzIGJlIHNtYWxsZXIgdGhhbiB0aGUgbGFzdCBzZWVuCgkgIHRpbWVzdGFtcHMgKG9yIHRpbWVzdGFtcCArIGR1cmF0aW9uIGZvciByZXZlcnNlKS4KCjIwMDgtMDUtMzAgMDc6MzY6MTcgKzAwMDAgIFJvYiBCcmFkZm9yZCA8cm9iQHJvYnN0ZXIub3JnLnVrPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IERvbid0IHJlY3Vyc2UgaW50byAuZGVidWcgZGlyZWN0b3JpZXMgYXMgc29tZSBkaXN0cm9zIGluc3RhbGwgdGhlIGRlYnVnZ2luZyBzeW1ib2xzIG5leHQgdG8gdGhlIHBsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUm9iIEJyYWRmb3JkIDxyb2IgYXQgcm9ic3RlciBkb3Qgb3JnIGRvdCB1az4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBEb24ndCByZWN1cnNlIGludG8gLmRlYnVnIGRpcmVjdG9yaWVzIGFzIHNvbWUgZGlzdHJvcyBpbnN0YWxsCgkgIHRoZSBkZWJ1Z2dpbmcgc3ltYm9scyBuZXh0IHRvIHRoZSBwbHVnaW5zIGluIC5kZWJ1ZyBkaXJlY3RvcmllcwoJICBhbmQgZGxvcGVuKCkgY3Jhc2hlcyBvbiB0aGVtIHNvbWV0aW1lcy4gRml4ZXMgYnVnICM1MDgwNzAuCgkgIEFkZCBGSVhNRSBmb3IgMC4xMSB0byBub3QgcmVjdXJzZSBpbnRvIGRpcmVjdG9yaWVzIGF0IGFsbCBiZWNhdXNlCgkgIGl0J3MgdmVyeSBpbmNvbnNpc3RlbnQgdG8gdGhlIGJlaGF2aW91ciBvZiBvdGhlciBQQVRIIGVudmlyb25tZW50CgkgIHZhcmlhYmxlcy4KCjIwMDgtMDUtMjkgMTY6MzQ6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZpeCBwb3NpdGlvbiBxdWVyeSByYW5nZSBjaGVja3MgaW4gcmV2ZXJzZSBwbGF5YmFjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRml4IHBvc2l0aW9uIHF1ZXJ5IHJhbmdlIGNoZWNrcyBpbiByZXZlcnNlIHBsYXliYWNrLgoKMjAwOC0wNS0yOSAwNzoxOTo0NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnQuKjogRGVwcmVjYXRlZCBnc3RfZWxlbWVudF9nZXRfcGFkKCkgYXMgaXQgY2FuJ3QgYmUgdXNlZCBzYW5lbHkuIEl0J3Mgbm90IGNsZWFyIG9mIHRoZSByZWZlcmVuY2UgdG8gdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRGVwcmVjYXRlZCBnc3RfZWxlbWVudF9nZXRfcGFkKCkgYXMgaXQgY2FuJ3QgYmUgdXNlZCBzYW5lbHkuIEl0J3Mgbm90CgkgIGNsZWFyIG9mIHRoZSByZWZlcmVuY2UgdG8gdGhlIHJlc3VsdGluZyBwYWQgbXVzdCBiZSByZWxlYXNlZCBsYXRlcgoJICBvciBub3QsIHJlc3VsdGluZyBpbiBwb3NzaWJsZSBsZWFrcy4gRml4ZXMgYnVnICM1MzM4NjUuCgoyMDA4LTA1LTI4IDE2OjQ2OjA3ICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFNtYWxsIGRvYyBmaXguIEZpeGVzICM1MzUyODUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXUgYXQgc3ZuIGRvdCBnbm9tZSBkb3Qgb3JnPgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICBTbWFsbCBkb2MgZml4LiBGaXhlcyAjNTM1Mjg1LgoKMjAwOC0wNS0yOCAxMzo0ODoxNyArMDAwMCAgQmphcm5lIFJvc2VuZ3JlbiA8Ymphcm5lQGF4aXMuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1ha2Ugc2VuZGluZyBhbiBFT1MgZXZlbnQgdG8gdGhlIGJhc2VzcmMgbm9uLWJsb2NraW5nIGV2ZW4gaWYgdGhlIGltcGxlbWVudGF0aW9uIGRvZXMgYmxvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogQmphcm5lIFJvc2VuZ3JlbiA8Ymphcm5lIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgTWFrZSBzZW5kaW5nIGFuIEVPUyBldmVudCB0byB0aGUgYmFzZXNyYyBub24tYmxvY2tpbmcgZXZlbiBpZiB0aGUKCSAgaW1wbGVtZW50YXRpb24gZG9lcyBibG9ja2luZyB3YWl0cyBpbiB0aGUgY3JlYXRlIGZ1bmN0aW9uLiBUaGlzIGlzIGRvbmUKCSAgYnkgdW5sb2NraW5nIHRoZSBjcmVhdGUgZnVuY3Rpb24gd2hlbiBFT1MgaXMgc2VudC4KCSAgRml4ZXMgIzUzNTIxOC4KCjIwMDgtMDUtMjggMTA6NDQ6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IElmIHBvc3NpYmxlIHByaW50IHRoZSBlbGVtZW50IHR5cGUgb2YgR1ZhbHVlQXJyYXkgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgSWYgcG9zc2libGUgcHJpbnQgdGhlIGVsZW1lbnQgdHlwZSBvZiBHVmFsdWVBcnJheSBwcm9wZXJ0aWVzLgoKMjAwOC0wNS0yOCAwNzo0NzoyMiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLmM6IFJlbW92ZSBhbiB1bnVzZWQgZmllbGQgZnJvbSB0aGUgcHJpdmF0ZSBHc3RMaXN0SXRlcmF0b3Igc3RydWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgUmVtb3ZlIGFuIHVudXNlZCBmaWVsZCBmcm9tIHRoZSBwcml2YXRlIEdzdExpc3RJdGVyYXRvciBzdHJ1Y3QuCgoyMDA4LTA1LTI3IDIwOjE5OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogQWRkIHBhcmFtZXRlciBndWFyZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBBZGQgcGFyYW1ldGVyIGd1YXJkcy4KCjIwMDgtMDUtMjcgMTk6NDc6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiBSZXZlcnQgdGVzdCBjaGFuZ2UgYW5kIGFkZCBjb21tZW50IHdoeSBpdCBzaG91bGQgbm90IHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBSZXZlcnQgdGVzdCBjaGFuZ2UgYW5kIGFkZCBjb21tZW50IHdoeSBpdCBzaG91bGQgbm90IHdvcmsuCgoyMDA4LTA1LTI3IDE4OjMxOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogRXh0ZW5kaW5nIHRoZSB0ZXN0IGEgbGl0dGxlIHRvIHZlcmlmeSB0aGF0IHdlIGFsc28gZ2V0IHRoZSBOVUxMIHN0YXRlLSBjaGFuZ2UgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIEV4dGVuZGluZyB0aGUgdGVzdCBhIGxpdHRsZSB0byB2ZXJpZnkgdGhhdCB3ZSBhbHNvIGdldCB0aGUgTlVMTCBzdGF0ZS0KCSAgY2hhbmdlIG1lc3NhZ2UuCgoyMDA4LTA1LTI3IDE2OjM3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBBZGQgU2luY2U6IG1hcmtlcnMgdG8gZG9jcyBibHVyYnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzogKGdzdF9wcmVzZXRfZGVmYXVsdF9nZXRfbWV0YSksCgkgIChnc3RfcHJlc2V0X2dldF9wcmVzZXRfbmFtZXMpLCAoZ3N0X3ByZXNldF9nZXRfcHJvcGVydHlfbmFtZXMpLAoJICAoZ3N0X3ByZXNldF9sb2FkX3ByZXNldCksIChnc3RfcHJlc2V0X3NhdmVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfcmVuYW1lX3ByZXNldCksIChnc3RfcHJlc2V0X2RlbGV0ZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9zZXRfbWV0YSk6CgkgIEFkZCBTaW5jZTogbWFya2VycyB0byBkb2NzIGJsdXJicy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHJlY2VudGx5LWFkZGVkIEFQSS4KCjIwMDgtMDUtMjcgMTU6MTE6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogQWRkIERBVEFESVIgZm9yIHN0b3JpbmcgcHJlc2V0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGVmYW4gS29zdCAgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWRkIERBVEFESVIgZm9yIHN0b3JpbmcgcHJlc2V0cy4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBBZGQgR3N0UHJlc2V0IHRvIGRvY3MuCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6IChwcmVzZXRfZ2V0X3BhdGhzKSwgKHByZXNldF9za2lwX3Byb3BlcnR5KSwKCSAgKHByZXNldF9vcGVuX2FuZF9wYXJzZV9oZWFkZXIpLCAocHJlc2V0X3BhcnNlX3ZlcnNpb24pLAoJICAocHJlc2V0X21lcmdlKSwgKHByZXNldF9nZXRfa2V5ZmlsZSksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfZ2V0X3ByZXNldF9uYW1lcyksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfZ2V0X3Byb3BlcnR5X25hbWVzKSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9sb2FkX3ByZXNldCksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfc2F2ZV9wcmVzZXRzX2ZpbGUpLAoJICAoZ3N0X3ByZXNldF9kZWZhdWx0X3NhdmVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9yZW5hbWVfcHJlc2V0KSwKCSAgKGdzdF9wcmVzZXRfZGVmYXVsdF9kZWxldGVfcHJlc2V0KSwgKGdzdF9wcmVzZXRfZGVmYXVsdF9zZXRfbWV0YSksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfZ2V0X21ldGEpLCAoZ3N0X3ByZXNldF9kZWZhdWx0X3JhbmRvbWl6ZSksCgkgIChnc3RfcHJlc2V0X2RlZmF1bHRfcmVzZXQpLCAoZ3N0X3ByZXNldF9nZXRfcHJlc2V0X25hbWVzKSwKCSAgKGdzdF9wcmVzZXRfZ2V0X3Byb3BlcnR5X25hbWVzKSwgKGdzdF9wcmVzZXRfbG9hZF9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9zYXZlX3ByZXNldCksIChnc3RfcHJlc2V0X3JlbmFtZV9wcmVzZXQpLAoJICAoZ3N0X3ByZXNldF9kZWxldGVfcHJlc2V0KSwgKGdzdF9wcmVzZXRfc2V0X21ldGEpLAoJICAoZ3N0X3ByZXNldF9nZXRfbWV0YSksIChnc3RfcHJlc2V0X2NsYXNzX2luaXQpLAoJICAoZ3N0X3ByZXNldF9iYXNlX2luaXQpLCAoZ3N0X3ByZXNldF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICBBZGQgR3N0UHJlc2V0IHRvIGNvcmUuIEZpeGVzICMzOTY3NzkKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cHJlc2V0LmM6IChnc3RfcHJlc2V0X3Rlc3RfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9wcmVzZXRfdGVzdF9zZXRfcHJvcGVydHkpLCAoZ3N0X3ByZXNldF90ZXN0X2NsYXNzX2luaXQpLAoJICAoZ3N0X3ByZXNldF90ZXN0X2Jhc2VfaW5pdCksIChnc3RfcHJlc2V0X3Rlc3RfZ2V0X3R5cGUpLAoJICAoZ3N0X3ByZXNldF90ZXN0X3BsdWdpbl9pbml0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHJlbW92ZV9wcmVzZXRfZmlsZSksICh0ZXN0X3NldHVwKSwgKHRlc3RfdGVhcmRvd24pLAoJICAoZ3N0X3ByZXNldF9zdWl0ZSk6CgkgIEFkZCBHc3RQcmVzZXQgdW5pdCB0ZXN0cy4KCjIwMDgtMDUtMjcgMTA6NTk6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFRoZSBkZWZhdWx0IGV2ZW50IGZ1bmN0aW9uIG9uIGEgc2lua3BhZCBzaG91bGQgcmV0dXJuIFRSVUUgd2hlbiB0aGVyZSBhcmUgbm8gaW50ZXJuYWwgbGlua3MgYnV0IHNob3VsZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKToKCSAgVGhlIGRlZmF1bHQgZXZlbnQgZnVuY3Rpb24gb24gYSBzaW5rcGFkIHNob3VsZCByZXR1cm4gVFJVRSB3aGVuCgkgIHRoZXJlIGFyZSBubyBpbnRlcm5hbCBsaW5rcyBidXQgc2hvdWxkIGNvbGxlY3QgdGhlIHJldHVybiB2YWx1ZXMgZnJvbQoJICB0aGUgaW50ZXJuYWwgbGlua3Mgb3RoZXJ3aXNlLgoKMjAwOC0wNS0yNyAxMDo1NzoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFVzZSBmYXN0ZXIgYW5kIHNhZmVyIF9wYWRfcHVzaF9ldmVudCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgVXNlIGZhc3RlciBhbmQgc2FmZXIgX3BhZF9wdXNoX2V2ZW50KCkuCgoyMDA4LTA1LTI3IDEwOjUwOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X2Jpbl9maW5kX3VubGlua2VkX3BhZCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChlbGVtZW50X2ZpbmRfdW5saW5rZWRfcGFkKSwKCSAgKGdzdF9iaW5fZmluZF91bmxpbmtlZF9wYWQpLCAoZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCksCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFQSTogYWRkIGdzdF9iaW5fZmluZF91bmxpbmtlZF9wYWQoKQoJICBBUEk6IGRlcHJlY2F0ZSBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKCkgKCM0MDE0NTYpCgoyMDA4LTA1LTI2IDEwOjA3OjA5ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC86IEZpeGVkIGEgYnVuY2ggb2YgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3R0YXNrLmM6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgRml4ZWQgYSBidW5jaCBvZiB0eXBvcy4KCjIwMDgtMDUtMjUgMTY6MzQ6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiAndW5jb25uZWN0ZWQgcGFkJyAtPiAndW5saW5rZWQgcGFkJyBmb3IgY29uc2lzdGVuY3kgKCM0MDE0NTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF91bmxpbmspLCAoZWxlbWVudF9maW5kX3VubGlua2VkX3BhZCksCgkgIChnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKSwgKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiksCgkgIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb25fZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICd1bmNvbm5lY3RlZCBwYWQnIC0+ICd1bmxpbmtlZCBwYWQnIGZvciBjb25zaXN0ZW5jeSAoIzQwMTQ1NikuCgoyMDA4LTA1LTI1IDE2OjEzOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdGFnZ2luZy54bWw6IFNtYWxsIGRvY3MgdXBkYXRlLCBjYW4ndCBiZSBib3RoZXJlZCB0byByZXdyaXRlIHRoZSBub25zZW5zaWNhbCBleGFtcGxlcyByaWdodCBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICBTbWFsbCBkb2NzIHVwZGF0ZSwgY2FuJ3QgYmUgYm90aGVyZWQgdG8gcmV3cml0ZSB0aGUgbm9uc2Vuc2ljYWwKCSAgZXhhbXBsZXMgcmlnaHQgbm93LgoKMjAwOC0wNS0yNSAxNDo0NDo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RldmVudC5oOiBDbGFyaWZ5IGRvY3MgZm9yIEdTVF9TRUVLX1RZUEVfQ1VSICgjNTM0NTA1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIENsYXJpZnkgZG9jcyBmb3IgR1NUX1NFRUtfVFlQRV9DVVIgKCM1MzQ1MDUpLgoKMjAwOC0wNS0yNSAxNDoxMzoyMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IFJlbW92ZSB1bm5lZWRlZCBjYXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgUmVtb3ZlIHVubmVlZGVkIGNhc3RzLgoKMjAwOC0wNS0yNSAxMzo1NjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEdldCBhbGwgbWlzc2luZyBlbGVtZW50cyBmcm9tIGEgcGFyc2UgbGF1bmNoIHN0cmluZyBpZiBwb3NzaWJsZSAoaWUuIGlmIHRoZSBGQVRBTF9FUlJPUlMgZmxhZyBoYXMgYmVlbiBzcGVjaWZpZWQpLiBGaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgR2V0IGFsbCBtaXNzaW5nIGVsZW1lbnRzIGZyb20gYSBwYXJzZSBsYXVuY2ggc3RyaW5nIGlmIHBvc3NpYmxlCgkgIChpZS4gaWYgdGhlIEZBVEFMX0VSUk9SUyBmbGFnIGhhcyBiZWVuIHNwZWNpZmllZCkuIEZpeGVzICM1MjgxNzguCgoyMDA4LTA1LTI0IDE2OjM4OjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgc29tZSB1bml0IHRlc3RzIGZvciB0aGUgbmV3IGdzdF9wYXJzZV9sYXVuY2gqX2Z1bGwoKSBBUEkuIChFeHBvc2VzIGEgcHJldmlvdXNseS1leGlzdGluZyBtZW1vcnkgbGVhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgQWRkIHNvbWUgdW5pdCB0ZXN0cyBmb3IgdGhlIG5ldyBnc3RfcGFyc2VfbGF1bmNoKl9mdWxsKCkgQVBJLgoJICAoRXhwb3NlcyBhIHByZXZpb3VzbHktZXhpc3RpbmcgbWVtb3J5IGxlYWsgaW4gdGhlIGVycm9yIGNvZGUKCSAgcGF0aCwgc28gYWRkaW5nIHRvIFZBTEdSSU5EX1RPX0ZJWCBmb3Igbm93KS4KCjIwMDgtMDUtMjQgMTU6MzM6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGdzdF9wYXJzZV9sYXVuY2hfZnVsbCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDogKF9Hc3RQYXJzZUNvbnRleHQpOgoJICAqIGdzdC9nc3RwYXJzZS5jOiAoZ3N0X3BhcnNlX2Vycm9yX3F1YXJrKSwgKGdzdF9wYXJzZV9jb250ZXh0X25ldyksCgkgIChnc3RfcGFyc2VfY29udGV4dF9mcmVlKSwgKGdzdF9wYXJzZV9jb250ZXh0X2dldF9taXNzaW5nX2VsZW1lbnRzKSwKCSAgKGdzdF9wYXJzZV9sYXVuY2h2KSwgKGdzdF9wYXJzZV9sYXVuY2h2X2Z1bGwpLCAoZ3N0X3BhcnNlX2xhdW5jaCksCgkgIChnc3RfcGFyc2VfbGF1bmNoX2Z1bGwpOgoJICAqIGdzdC9nc3RwYXJzZS5oOiAoR1NUX1BBUlNFX0ZMQUdfTk9ORSksIChHU1RfUEFSU0VfRkxBR19GQVRBTF9FUlJPUlMpLAoJICAoR3N0UGFyc2VGbGFncyksIChHc3RQYXJzZUNvbnRleHQpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKSwKCSAgKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbl9mdWxsKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS90eXBlcy5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGdzdF9wYXJzZV8qX2Z1bGwgQVBJICgjNTI4MTc4KToKCSAgQVBJOiBnc3RfcGFyc2VfbGF1bmNoX2Z1bGwoKQoJICBBUEk6IGdzdF9wYXJzZV9sYXVuY2h2X2Z1bGwoKQoJICBBUEk6IGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbl9mdWxsKCkKCSAgQVBJOiBnc3RfcGFyc2VfY29udGV4dF9uZXcoKQoJICBBUEk6IGdzdF9wYXJzZV9jb250ZXh0X2ZyZWUoKQoJICBBUEk6IGdzdF9wYXJzZV9jb250ZXh0X2dldF9taXNzaW5nX2VsZW1lbnRzKCkKCjIwMDgtMDUtMjMgMDY6NTA6MTAgKzAwMDAgIFN1cmVzaCBLdW1hciBQIDxzdXJlc2hrdW1hci5wcEBnbWFpbC5jb20+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFsc28gc3VwcG9ydCBmZm1wZWcgaW4gZ3N0LXVuaW5zdGFsbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFN1cmVzaCBLdW1hciBQIDxzdXJlc2hrdW1hci5wcEBnbWFpbC5jb20+CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBbHNvIHN1cHBvcnQgZmZtcGVnIGluIGdzdC11bmluc3RhbGxlZC4KCjIwMDgtMDUtMjIgMjA6Mjk6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogQWZ0ZXIgZGlzY3Vzc2lvbiBvbiBJUkMgdXNlIHRoZSBiaW5hcnkgcmVnaXN0cnkgYXMgZGVmYXVsdCBidXQgYWxsb3cgdG8gZGlzYWJsZSBpdCB3aXRoIC0tZGlzYWJsZS1iaW5hci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFmdGVyIGRpc2N1c3Npb24gb24gSVJDIHVzZSB0aGUgYmluYXJ5IHJlZ2lzdHJ5IGFzIGRlZmF1bHQKCSAgYnV0IGFsbG93IHRvIGRpc2FibGUgaXQgd2l0aCAtLWRpc2FibGUtYmluYXJ5LXJlZ2lzdHJ5LgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgdGhlIHR3byBuZXcgc3ltYm9scyBmb3IgdGhlIGJpbmFyeSByZWdpc3RyeS4KCjIwMDgtMDUtMjIgMTU6Mzg6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNb3JlIGd1YXJkcyBhZ2FpbnN0IGJhZCBpbnB1dDsgdHlwbyBmaXg7IHNvbWUgbWlub3IgY2xlYW4tdXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKF9nc3RfcGFyc2VfZXNjYXBlKSwgKGdzdF9wYXJzZV9sYXVuY2h2KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbik6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueTogKGdyYXBoKToKCSAgTW9yZSBndWFyZHMgYWdhaW5zdCBiYWQgaW5wdXQ7IHR5cG8gZml4OyBzb21lIG1pbm9yIGNsZWFuLXVwcy4KCjIwMDgtMDUtMjIgMDg6MzM6MjcgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSWYgbm90aGluZyBlbHNlIGNhbiBiZSB1c2VkLCB1c2UgdGhlIGxhc3QgYnVmZmVyJ3Mgc3RhcnQgdGltZSBhcyB0aGUgc2VnbWVudCdzIGxhc3Qgc3RvcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIElmIG5vdGhpbmcgZWxzZSBjYW4gYmUgdXNlZCwgdXNlIHRoZSBsYXN0IGJ1ZmZlcidzIHN0YXJ0IHRpbWUgYXMKCSAgdGhlIHNlZ21lbnQncyBsYXN0IHN0b3AuIEZpeGVzIGJ1ZyAjNTM0MjU4LgoKMjAwOC0wNS0yMSAxODozMzowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogTW92ZSBzaXplIHNhbml0eSBjaGVjayB0byB0aGUgcmlnaHQgcGxhY2U6IGRvd25zdHJlYW0gbWF5IHJldHVybiBhIGJ1ZmZlciB3aXRoIGEgc21hbGxlciBzaXplIGlmIHRoZSBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKToKCSAgTW92ZSBzaXplIHNhbml0eSBjaGVjayB0byB0aGUgcmlnaHQgcGxhY2U6IGRvd25zdHJlYW0gbWF5IHJldHVybgoJICBhIGJ1ZmZlciB3aXRoIGEgc21hbGxlciBzaXplIGlmIHRoZSBidWZmZXIgY2FwcyBhcmUgZGlmZmVyZW50IHRoYW4KCSAgdGhlIHJlcXVlc3RlZCBvbmVzLCBhcyBtYXkgaGFwcGVuIHdoZW4gZG9pbmcgcmV2ZXJzZSBuZWdvdGlhdGlvbi4KCjIwMDgtMDUtMjEgMTY6MDY6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogU21hbGwgY2xlYW51cHMuIEFkZCBub3RlIGFkYm91dCBnX2ZvcGVuKCkgb24gd2luZG93cyBhbmQgd2h5IHdlIGRvbid0IHVzZSBpdCB5ZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfc2V0X2xvY2F0aW9uKSwKCSAgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X2ZpbGVfc3JjX3N0YXJ0KToKCSAgU21hbGwgY2xlYW51cHMuIEFkZCBub3RlIGFkYm91dCBnX2ZvcGVuKCkgb24gd2luZG93cyBhbmQgd2h5IHdlIGRvbid0CgkgIHVzZSBpdCB5ZXQuCgoyMDA4LTA1LTIxIDE1OjU3OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9uJ3QgdXNlIGdzdF9lbGVtZW50X2dldF9wYWQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9sb2FkX2FuZF9saW5rKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkcyksCgkgIChnc3RfZWxlbWVudF91bmxpbmtfcGFkcyk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19zZXR1cF9zcmNfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zcmNfcGFkKSwgKGdzdF9jaGVja19zZXR1cF9zaW5rX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc2luay5jOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChzZXR1cF9tdWx0aXF1ZXVlKSwKCSAgKG1xX3NpbmtwYWRfdG9fc3JjcGFkKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHJ1bl9kZWxheWVkX3Rlc3QpLAoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCB1c2UgZ3N0X2VsZW1lbnRfZ2V0X3BhZCgpLgoKMjAwOC0wNS0yMSAxNTo1NDoyOCArMDAwMCAgRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlLmNvbnRyZXJhc0Bub2tpYS5jb20+CgoJICBkb2NzL01ha2VmaWxlLmFtOiBGaXggaW5zdGFsbGluZyBwbHVnaW4gZG9jdW1lbnRhdGlvbiB3aGVuIGd0ay1kb2MgaXMgZGlzYWJsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgIEZpeCBpbnN0YWxsaW5nIHBsdWdpbiBkb2N1bWVudGF0aW9uIHdoZW4gZ3RrLWRvYyBpcyBkaXNhYmxlZC4KCjIwMDgtMDUtMjEgMTU6NTE6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC86IEF2b2lkIHVzaW5nIGEgYmFkIGZ1bmN0aW9uIGluIHRoZSBleGFtcGxlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgIEF2b2lkIHVzaW5nIGEgYmFkIGZ1bmN0aW9uIGluIHRoZSBleGFtcGxlIGNvZGUuCgoyMDA4LTA1LTIxIDE1OjQ5OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IEZpeCBkZWJ1ZyBvZiB0aGUgbmV3IGNsb2NrIHJhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6CgkgIEZpeCBkZWJ1ZyBvZiB0aGUgbmV3IGNsb2NrIHJhdGUuCgoyMDA4LTA1LTIxIDExOjEwOjMyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6IEFkZCBnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2soKSB0byB0aGUgZXhwb3J0ZWQgc3ltYm9scy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBBZGQgZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgoyMDA4LTA1LTIwIDA4OjI4OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0ubXVsbGVyQGNvbGxhYm9yYS5jby51az4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBVbnJlZiBldmVudHMgdGhhdCB0aGUgR3N0QmFzZVRyYW5zZm9ybTo6ZXZlbnQgdmZ1bmMgZGlkbid0IHdhbnQgdG8gaGF2ZSBmb3J3YXJkZWQgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0ubXVsbGVyIGF0IGNvbGxhYm9yYSBjbyB1az4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50KToKCSAgVW5yZWYgZXZlbnRzIHRoYXQgdGhlIEdzdEJhc2VUcmFuc2Zvcm06OmV2ZW50IHZmdW5jIGRpZG4ndCB3YW50IHRvCgkgIGhhdmUgZm9yd2FyZGVkIGJ5IHRoZSBiYXNlIGNsYXNzLiBDbG9zZXMgYSBsZWFrIGluIGlkZW50aXR5LgoJICBGaXhlcyBidWcgIzQ0Njc2My4KCjIwMDgtMDUtMTkgMTY6MzY6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBFeHBvc2UgYSBtZXRob2QgdGhhdCB3YXMgcHJldmlvdXNseSB1c2VkIGludGVybmFsbHkgdG8gc3luY2hyb25pemUgYWdhaW5zdCB0aGUgY2xvY2sgYmVjYXVzZSBpdCBjYW4gYmUgdXNlZnVsIGZvciBzdWIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgRXhwb3NlIGEgbWV0aG9kIHRoYXQgd2FzIHByZXZpb3VzbHkgdXNlZCBpbnRlcm5hbGx5IHRvIHN5bmNocm9uaXplCgkgIGFnYWluc3QgdGhlIGNsb2NrIGJlY2F1c2UgaXQgY2FuIGJlIHVzZWZ1bCBmb3Igc3ViY2xhc3NlcyB0b28uCgkgIEdzdEJhc2VTaW5rOjpnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2soKQoKMjAwOC0wNS0xOSAxMTo1OTozNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogQWRkIHNhbml0eSBjaGVjayB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IHNtYWxsZXIgYnVmZmVycyB0aGFuIHJlcXVlc3RlZCAoYW5kIGZhbGxiYWNrIHRvIG5vcm1hbCBidWZmZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2J1ZmZlcl9hbGxvY191bmNoZWNrZWQpOgoJICBBZGQgc2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBnZXQgc21hbGxlciBidWZmZXJzCgkgIHRoYW4gcmVxdWVzdGVkIChhbmQgZmFsbGJhY2sgdG8gbm9ybWFsIGJ1ZmZlciBhbGxvYyBpZiB3ZSBkbykuCgoyMDA4LTA1LTE5IDExOjExOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWZhY3RvciBhZGp1c3RpbmcgdGhlIHJ1bm5pbmdfdGltZSB3aXRoIGxhdGVuY3kgYW5kIG9mZnNldCBpbnRvIGEgc2VwYXJhdGUgbWV0aG9kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2FkanVzdF90aW1lKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksIChnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKToKCSAgUmVmYWN0b3IgYWRqdXN0aW5nIHRoZSBydW5uaW5nX3RpbWUgd2l0aCBsYXRlbmN5IGFuZCBvZmZzZXQgaW50byBhCgkgIHNlcGFyYXRlIG1ldGhvZC4KCSAgV2hlbiBkb2luZyBjbGlwcGluZywgd2Ugc3RpbGwgd2FudCB0byB1c2UgdGhlIHN1YmNsYXNzIGdldF90aW1lcyBtZXRob2QsCgkgIGp1c3QgaW4gY2FzZSB0aGUgRFVSQVRJT04gb3IgVElNRVNUQU1QIGFyZSBub3Qgc2V0LgoKMjAwOC0wNS0xOSAxMDo0Njo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF90eXBlX2ZpbmRfc3VnZ2VzdF9zaW1wbGUoKSwgIzUzMzc0MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzogKGdzdF90eXBlX2ZpbmRfc3VnZ2VzdF9zaW1wbGUpOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBUEk6IGFkZCBnc3RfdHlwZV9maW5kX3N1Z2dlc3Rfc2ltcGxlKCksICM1MzM3NDAuCgoyMDA4LTA1LTE5IDEwOjI5OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVzZSByaWdodCBlcnJvciBjb2RlIHdoZW4gdHlwZWZpbmRpbmcgZmFpbHMsIHNvIHdlIGNhbiB1c2UgdGhlIGRlZmF1bHQgKHRyYW5zbGF0ZWQpIGVycm9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KToKCSAgVXNlIHJpZ2h0IGVycm9yIGNvZGUgd2hlbiB0eXBlZmluZGluZyBmYWlscywgc28gd2UgY2FuIHVzZQoJICB0aGUgZGVmYXVsdCAodHJhbnNsYXRlZCkgZXJyb3IgbWVzc2FnZXMuCgoyMDA4LTA1LTE5IDEwOjAzOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFdoZW4gdGhlIHN1YmNsYXNzIGRpZCBub3Qgc2V0IGNhcHMgb24gb3V0Z29pbmcgYnVmZmVycywgY29uZmlndXJlIHRoZSBjYXBzIHdlIG5lZ290aWF0ZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICBXaGVuIHRoZSBzdWJjbGFzcyBkaWQgbm90IHNldCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMsIGNvbmZpZ3VyZSB0aGUKCSAgY2FwcyB3ZSBuZWdvdGlhdGVkIG9uIHRoZSBzb3VyY2UgcGFkLgoJICBXaGVuIHRoZSB0eXBlZmluZCBoZWxwZXIgZG9lcyBub3QgZmluZCBjYXBzLCBlcnJvciBvdXQgcHJvcGVybHkgaW5zdGVhZAoJICBvZiBkb2luZyB0aGluZ3Mgd2l0aCBOVUxMIGNhcHMuCgoyMDA4LTA1LTE4IDE4OjUzOjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHR5cGVmaW5kLmg6IFRhYnMgdG8gc3BhY2VzLCBvaCB5ZXMhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZC5oOgoJICBUYWJzIHRvIHNwYWNlcywgb2ggeWVzIQoKMjAwOC0wNS0xOCAxMjoxMzo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5CgoyMDA4LTA1LTE4IDExOjUyOjM5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogQWRkIERhdmlkJ3MgYW5kIEJlbmphbWluJ3MgdGVzdHMgZm9yIGFycmF5IHN1YnRyYWN0aW9uIHRvIHRoZSB1bml0IHRlc3Qgc3VpdGUsIHdoaWNoIHN1Z2dlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6ICh0ZXN0X2ludGVyc2VjdDIpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGQgRGF2aWQncyBhbmQgQmVuamFtaW4ncyB0ZXN0cyBmb3IgYXJyYXkgc3VidHJhY3Rpb24gdG8gdGhlCgkgIHVuaXQgdGVzdCBzdWl0ZSwgd2hpY2ggc3VnZ2VzdHMgdGhhdCAjMTQ3OTMxIGlzIGZpeGVkIHRoZXNlIGRheXMuCgoyMDA4LTA1LTE4IDExOjM1OjQzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGV2ZW50LmM6IERvY3VtZW50IHRoYXQgZ3N0X2V2ZW50X25ld190YWcoKSBhbmQgZ3N0X2V2ZW50X25ld19uYXZpZ2F0aW9uKCkgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHRhZ2xpc3Qvc3RydWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBEb2N1bWVudCB0aGF0IGdzdF9ldmVudF9uZXdfdGFnKCkgYW5kIGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbigpCgkgIHRha2Ugb3duZXJzaGlwIG9mIHRoZSB0YWdsaXN0L3N0cnVjdHVyZSBwYXNzZWQgdG8gdGhlbS4gKCM1MzM2MzUpLgoKMjAwOC0wNS0xNyAxNzoyMDo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL01ha2VmaWxlLmFtOiBEb24ndCBkZXNjZW5kIGludG8gdGhlIHBsdWdpbnMgZGlyIGlmIHBsdWdpbiBkb2NzIGJ1aWxkaW5nIGlzIGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICBEb24ndCBkZXNjZW5kIGludG8gdGhlIHBsdWdpbnMgZGlyIGlmIHBsdWdpbiBkb2NzIGJ1aWxkaW5nCgkgIGlzIGRpc2FibGVkLgoJICAqIGRvY3MvUkVBRE1FOgoJICBBZGQgYSBub3RlIGFib3V0IHRoZSBuZXcgdHlwZTpHVHlwZU5hbWUgc3ludGF4IGZvciB0aGUgcGx1Z2luCgkgIGRvY3VtZW50YXRpb24gLnR5cGVzIGZpbGUuCgoyMDA4LTA1LTE3IDEzOjU0OjUyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS4qOiBNYXJrIHRoZSBkZWJ1ZyBzdHJpbmcgcGFyYW1ldGVycyBhcyBjb25zdC4gRml4ZXMgYnVnICM1MzM0OTAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X2luZm8pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIE1hcmsgdGhlIGRlYnVnIHN0cmluZyBwYXJhbWV0ZXJzIGFzIGNvbnN0LiBGaXhlcyBidWcgIzUzMzQ5MC4KCjIwMDgtMDUtMTYgMjE6MDk6NDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogU29ydCBidWZmZXIgY2FjaGUgbGlzdCBieSBlbmQgb2Zmc2V0cy4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgZG9uJ3Qgc3RvcCB0byBzZWFyYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKToKCSAgU29ydCBidWZmZXIgY2FjaGUgbGlzdCBieSBlbmQgb2Zmc2V0cy4gVGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgZG9uJ3QKCSAgc3RvcCB0byBzZWFyY2ggZm9yIGEgY2FjaGVkIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIHRoZSByZXF1ZXN0ZWQgZGF0YQoJICB0b28gZWFybHkuCgkgIEFsc28gcmVhZCBhIG1pbmltdW0gb2YgNGsgYnl0ZXMgaW5zdGVhZCBvZiA1MTIgYnl0ZXMgYXMgdGhpcyBpcyBhIGJpdAoJICBtb3JlIGVmZmljaWVudC4gRml4ZXMgYnVnICM0NTk4NjIuCgoyMDA4LTA1LTE0IDE4OjE3OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBFeHBsYWluIHdoeSB3ZSBjb3B5IHRoZSBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBFeHBsYWluIHdoeSB3ZSBjb3B5IHRoZSBsaXN0LgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOgoJICBJbXByb3ZlIGRvY3MuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEFkZCBvbmUgZGVidWctbG9nIHN0YXRlbWVudCB0byBoZWxwIHRyYWNpbmcgcHJvYmVsbXMgd2l0aCBsaW5raW5nIHBhZHMuCgoyMDA4LTA1LTE0IDE4OjA5OjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiBBZGQgYSB0ZXN0IGZvciByZW1vdmluZyB0aGUgZGVmYXVsdCBsb2cgaGFuZGxlci4gU2VlbXMgdG8gZmFpbCB1bmRlciB3aW5kb3dzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOgoJICBBZGQgYSB0ZXN0IGZvciByZW1vdmluZyB0aGUgZGVmYXVsdCBsb2cgaGFuZGxlci4gU2VlbXMgdG8gZmFpbCB1bmRlcgoJICB3aW5kb3dzLgoKMjAwOC0wNS0xNCAxMzo1Mjo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVsZWFzZSBwYWQgbG9jayBiZWZvcmUgY2FsbGluZyBvdXQgdG8gYXZvaWQgYSBwb3NzaWJsZSBkZWFkbG9jay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wZWVyX2FjY2VwdF9jYXBzKToKCSAgUmVsZWFzZSBwYWQgbG9jayBiZWZvcmUgY2FsbGluZyBvdXQgdG8gYXZvaWQgYSBwb3NzaWJsZSBkZWFkbG9jay4KCjIwMDgtMDUtMTQgMTA6MjI6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBSZW1vdmUgdW5uZWVkZWQgdmFsdWUgdW5zZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIFJlbW92ZSB1bm5lZWRlZCB2YWx1ZSB1bnNldC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGRlL3NlcmlhbGl6YXRpb24gb2YgY2Fwcy4KCjIwMDgtMDUtMTMgMTI6NTQ6MDAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBVc2UgY3VzdG9tIG1hcnNoYWxlcnMgdGhhdCB0YWtlIEdzdE1pbmlPYmplY3QgYXMgZmlyc3QgcGFyYW1ldGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgIChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1RfT0JKRUNUKSwgKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1RfT0JKRUNUKSwKCSAgKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgVXNlIGN1c3RvbSBtYXJzaGFsZXJzIHRoYXQgdGFrZSBHc3RNaW5pT2JqZWN0IGFzIGZpcnN0IHBhcmFtZXRlci4KCSAgVXNpbmcgT0JKRUNUIGFzIHBhcmFtZXRlciB3aGlsZSBhIEdzdE1pbmlPYmplY3QgaXMgZ2l2ZW4gd2lsbCBsZWFkCgkgIHRvIGFzc2VydGlvbnMgaWYgYnVpbHQgd2l0aCBHX0VOQUJMRV9ERUJVRy4gRml4ZXMgYnVnICM1MjU1MzIuCgoyMDA4LTA1LTEzIDEyOjM4OjMxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBDbGVhbiB1cCBvbiBGTFVTSF9TVE9QIGFuZCBub3QgRkxVU0hfU1RBUlQuIEZvcndhcmQgYm90aCBldmVudHMgaW1tZWRpYXRlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZW5kX2NhY2hlZF9ldmVudHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIENsZWFuIHVwIG9uIEZMVVNIX1NUT1AgYW5kIG5vdCBGTFVTSF9TVEFSVC4gRm9yd2FyZCBib3RoIGV2ZW50cwoJICBpbW1lZGlhdGVseS4KCjIwMDgtMDUtMTMgMTE6NDU6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IEZvcndhcmQgRkxVU0hfU1RBUlQgZXZlbnRzIGltbWVkaWF0ZWx5IGFuZCBjbGVhbiB1cCBpbnN0ZWFkIG9mIGNhY2hpbmcgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfaGFuZGxlX3NyY19xdWVyeSksIChzdG9wX3R5cGVmaW5kaW5nKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NlbmRfY2FjaGVkX2V2ZW50cyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRm9yd2FyZCBGTFVTSF9TVEFSVCBldmVudHMgaW1tZWRpYXRlbHkgYW5kIGNsZWFuIHVwIGluc3RlYWQgb2YKCSAgY2FjaGluZyB0aGVtLgoKMjAwOC0wNS0xMyAwNzoxMTowNSArMDAwMCAgU2pvZXJkIFNpbW9ucyA8c2pvZXJkQGx1b24ubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENoZWNrIHRoZSBjYXBzIG9mIHRoZSBidWZmZXIgcmV0dXJuZWQgYnkgZ3N0X3BhZF9hbGxvY19idWZmZXIoKSBhbmQgZmFsbCBiYWNrIHRvIGRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2pvZXJkIFNpbW9ucyA8c2pvZXJkIGF0IGx1b24gZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBDaGVjayB0aGUgY2FwcyBvZiB0aGUgYnVmZmVyIHJldHVybmVkIGJ5IGdzdF9wYWRfYWxsb2NfYnVmZmVyKCkgYW5kCgkgIGZhbGwgYmFjayB0byBkZWZhdWx0IG5lZ290aWF0aW9uIGluIHRoZSBjaGFpbiBmdW5jdGlvbiBpZiB0aGUgY2FwcwoJICBhcmUgZGlmZmVyZW50IGZyb20gd2hhdCB3YXMgcmVxdWVzdGVkLiBGaXhlcyBidWcgIzUyNjc2OC4KCjIwMDgtMDUtMDkgMjA6NDg6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBObywgbGV0J3Mgbm90IHVzZSBnX3NsaWNlX3tkdXB8Y29weX0gaGVyZSwgc2luY2UgdGhleSBvbmx5IGV4aXN0IHNpbmNlIEdMaWIgMi4xNCBhbmQgd2Ugc3RpbGwgZGVwZW5kIG9ubHkgb24gPj0gMi4xMi4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOgoJICBObywgbGV0J3Mgbm90IHVzZSBnX3NsaWNlX3tkdXB8Y29weX0gaGVyZSwgc2luY2UgdGhleSBvbmx5IGV4aXN0CgkgIHNpbmNlIEdMaWIgMi4xNCBhbmQgd2Ugc3RpbGwgZGVwZW5kIG9ubHkgb24gPj0gMi4xMi4gQWxzbyBhZGQKCSAgdW5pdCB0ZXN0IGZvciBnc3Rfc2VnbWVudF9jb3B5KCkuCgoyMDA4LTA1LTA5IDE4OjI1OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmg6IFRyeSB0byBmaXggJ2RlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlciB3aWxsIGJyZWFrIHN0cmljdCBhbGlhc2luZyBydWxlcycgd2FybmluZ3Mgd2l0aCBDKysgY29tLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOiAoR1NUX0JPSUxFUlBMQVRFX0ZVTEwpOgoJICBUcnkgdG8gZml4ICdkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXIgd2lsbCBicmVhayBzdHJpY3QKCSAgYWxpYXNpbmcgcnVsZXMnIHdhcm5pbmdzIHdpdGggQysrIGNvbXBpbGVycyBhbmQgR0xpYiA+PSAyLjE0LjA6IEdMaWIKCSAgY2hhbmdlZCB0aGUgZGVmYXVsdCBHVHlwZSB0eXBlZGVmIGZyb20gZ3Vsb25nIHRvIGdzaXplIGF0IHNvbWUgcG9pbnQsCgkgIGJ1dCBrZXB0IEdUeXBlIHR5cGVkZWYnZWQgdG8gZ3Vsb25nIGZvciBDKysgZm9yIEFCSSByZWFzb25zOyB0aGUKCSAgZ19vbmNlXyogZnVuY3Rpb25zIGFsbCB0YWtlIGEgZ3NpemUgKiB0aG91Z2gsIHNvIHdvcmsgYXJvdW5kIHRoZSB0eXBlCgkgIG1pc21hdGNoIGZvciBDKysgYnkgZG9pbmcgZXZlcnl0aGluZyBpbiBnc2l6ZSBhbmQgY2FzdGluZyB0byBHVHlwZQoJICBsYXRlci4KCjIwMDgtMDUtMDkgMTQ6MDI6NTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgc2lnbmFscyB0byBwdXNoIG91ciBjb3JlIHBsdWdpbiBkb2NzIGNvdmVyYWdlIGJhY2sgdXAgdG8gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBBZGQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHNpZ25hbHMgdG8gcHVzaCBvdXIgY29yZSBwbHVnaW4gZG9jcwoJICBjb3ZlcmFnZSBiYWNrIHVwIHRvIDEwMCUuCgoyMDA4LTA1LTA4IDE0OjIzOjE2ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L2dzdGluZm8uaCAoR1NUX0ZVTkNUSU9OKTogUmV2ZXJ0ZWQgR1NUX0ZVTkNUSU9OIHRvIHRoZSBvbGQgdmVyc2lvbiBhcyB3ZSBkb24ndCB3YW50IHRoZSBmdWxsIHNpZ25hdHVyZSBpbiBDKysgY29kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmggKEdTVF9GVU5DVElPTik6CgkgIFJldmVydGVkIEdTVF9GVU5DVElPTiB0byB0aGUgb2xkIHZlcnNpb24gYXMgd2UgZG9uJ3Qgd2FudCB0aGUKCSAgZnVsbCBzaWduYXR1cmUgaW4gQysrIGNvZGUuIEFsc28gYWRkZWQgc3VwcG9ydCBmb3IgTVNWQy4KCjIwMDgtMDUtMDggMTE6Mzc6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBJbnRlcm4gdGhlIHR5cGUgbmFtZSBzdHJpbmcsIHNpbWlsYXIgdG8gd2hhdCBHX0RFRklORV9UWVBFIGRvZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBJbnRlcm4gdGhlIHR5cGUgbmFtZSBzdHJpbmcsIHNpbWlsYXIgdG8gd2hhdCBHX0RFRklORV9UWVBFIGRvZXMuCgoyMDA4LTA1LTA4IDExOjI3OjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuaDogTWFrZSBHU1RfQk9JTEVSUExBVEUgdGhyZWFkLXNhZmUgaWYgYnVpbGRpbmcgd2l0aCBHTGliIDIuMTQgb3IgbmV3ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBNYWtlIEdTVF9CT0lMRVJQTEFURSB0aHJlYWQtc2FmZSBpZiBidWlsZGluZyB3aXRoIEdMaWIgMi4xNCBvciBuZXdlci4KCjIwMDgtMDUtMDggMDU6NTU6MzQgKzAwMDAgIFNqb2VyZCBTaW1vbnMgPHNqb2VyZEBsdW9uLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBEb24ndCBwYXNzdGhyb3VnaCBidWZmZXIgYWxsb2NhdGlvbiB0b28gZWFzaWx5IGlmIHRoZSBjYXBzIGNoYW5nZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIGEgcGF0Y2ggYnk6IFNqb2VyZCBTaW1vbnMgPHNqb2VyZCBhdCBsdW9uIGRvdCBuZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRG9uJ3QgcGFzc3Rocm91Z2ggYnVmZmVyIGFsbG9jYXRpb24gdG9vIGVhc2lseSBpZiB0aGUgY2FwcyBjaGFuZ2UuCgkgIFRoaXMgYnJlYWtzIHdoZW4gd29ya2luZyBpbiBwYXNzdGhyb3VnaCBtb2RlIGFuZCB1cHN0cmVhbSBjaGFuZ2VzCgkgIGl0J3MgY2Fwcy4gRml4ZXMgYnVnICM1MjY3NjguCgoyMDA4LTA1LTA3IDE5OjI0OjQ0ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgZ3N0L2dzdGluZm8uYyAoZ3N0X2RlYnVnX2xvZ192YWxpc3QpOiBJbXByb3ZlZCB0aGUgX19GSUxFX18gcGFydCBvZiBkZWJ1ZyBvdXRwdXQgZm9yIE1TVkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmMgKGdzdF9kZWJ1Z19sb2dfdmFsaXN0KToKCSAgSW1wcm92ZWQgdGhlIF9fRklMRV9fIHBhcnQgb2YgZGVidWcgb3V0cHV0IGZvciBNU1ZDLgoKMjAwOC0wNS0wNyAxOToxNToxNCArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6IERlY2xhcmF0aW9uIGFmdGVyIHN0YXRlbWVudCBmaXggZm9yIGNvbXBpbGVycyBsaWtlIE1TVkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6CgkgIERlY2xhcmF0aW9uIGFmdGVyIHN0YXRlbWVudCBmaXggZm9yIGNvbXBpbGVycyBsaWtlIE1TVkMuCgoyMDA4LTA1LTA3IDE5OjA5OjA4ICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOiBEb24ndCBkZWZpbmUgR1NUX0ZVTkNUSU9OLCBpZiBHTGliIHN1cHBvcnRzIE1TVkMgd2UnZCBtdWNoIHJhdGhlciB1c2UgdGhlIHJlYWwgdGhpbmcgdGhhbiBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgRG9uJ3QgZGVmaW5lIEdTVF9GVU5DVElPTiwgaWYgR0xpYiBzdXBwb3J0cyBNU1ZDIHdlJ2QgbXVjaCByYXRoZXIKCSAgdXNlIHRoZSByZWFsIHRoaW5nIHRoYW4gaGF2aW5nICI/Pz8iIHVuY29uZGl0aW9uYWxseS4KCjIwMDgtMDUtMDcgMTg6NTE6MjIgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICBnc3QvZ3N0aW5mby5oIChHU1RfRlVOQ1RJT04pOiBNYWRlIEdTVF9GVU5DVElPTiBhbiBhbGlhcyBmb3IgR19TVFJGVU5DIHRvIGF2b2lkIGR1cGxpY2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oIChHU1RfRlVOQ1RJT04pOgoJICBNYWRlIEdTVF9GVU5DVElPTiBhbiBhbGlhcyBmb3IgR19TVFJGVU5DIHRvIGF2b2lkIGR1cGxpY2F0aW9uLgoKMjAwOC0wNS0wNyAwOTo0NzoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBTbWFsbCBjb2RlIGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlX2Zhc3QpOgoJICBTbWFsbCBjb2RlIGNsZWFudXAuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICBGaXggc29tZSBjb21tZW50cy4KCjIwMDgtMDUtMDcgMDk6MzQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuKjogQWRkZWQgZm9ybWF0IHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIGZvcm1hdCBvZiB0aGUgbmV3c2VnbWVudCBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2luaXQpLCAoZ3N0X2Zha2Vfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmFrZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlX3NyY19zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIEFkZGVkIGZvcm1hdCBwcm9wZXJ0eSB0byBjb250cm9sIHRoZSBmb3JtYXQgb2YgdGhlIG5ld3NlZ21lbnQgZXZlbnRzLgoJICBBUEk6IEdzdEZha2VTcmM6Zm9ybWF0CgoyMDA4LTA1LTA2IDA4OjQ1OjA3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIGdzdF9wYWRfaGFzX25hbWUoKSB0byB0aGUgZXhwb3J0ZWQgc3ltYm9scy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfcGFkX2hhc19uYW1lKCkgdG8gdGhlIGV4cG9ydGVkIHN5bWJvbHMuCgoyMDA4LTA1LTA2IDA4OjQzOjU3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBEb24ndCBhbGxvdyBuZWdhdGl2ZSBzaXplcyB3aGVuIGFsbG9jYXRpbmcgbmV3IGJ1ZmZlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIERvbid0IGFsbG93IG5lZ2F0aXZlIHNpemVzIHdoZW4gYWxsb2NhdGluZyBuZXcgYnVmZmVycy4KCSAgRml4ZXMgYnVnICM0NjEyNTMuCgoyMDA4LTA1LTA1IDE2OjQ3OjI5ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IERvbid0IHByaW50IGEgd2FybmluZyBpZiB0aGUgcXVldWUgaXMgZW1wdHkgd2hlbiB3ZSB0cnkgdG8gcG9wIGhlcmUuIFRoYXQgY291bGQgaGFwcGVuIGlmIGFub3RoZXIgdGhyZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBuZXQ+CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpOgoJICBEb24ndCBwcmludCBhIHdhcm5pbmcgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5IHdoZW4gd2UgdHJ5IHRvIHBvcAoJICBoZXJlLiBUaGF0IGNvdWxkIGhhcHBlbiBpZiBhbm90aGVyIHRocmVhZCBvciBjYWxsYmFjayBzZXQgdGhlCgkgIGJ1cyB0byBmbHVzaGluZyBiZXR3ZWVuIHRoZSBzb3VyY2UncyBjaGVjay9wcmVwYXJlIGFuZCB0aGUKCSAgZGlzcGF0Y2ggYmVpbmcgY2FsbGVkICgjNTMxNTM4KS4KCjIwMDgtMDUtMDUgMTY6MjU6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogU21hbGwgZG9jcyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICBTbWFsbCBkb2NzIGZpeC4KCjIwMDgtMDUtMDUgMTU6NTA6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiBBZGQgdW5pdCB0ZXN0IGZvciBkZXNlcmlhbGl6aW5nIHVpbnQ2NHMgYW5kIGNoZWNrIHNvbWUgcmVhbGx5IGxhcmdlIG51bWJlcnMgaW4gdGhlIGludDY0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGRlc2VyaWFsaXppbmcgdWludDY0cyBhbmQgY2hlY2sgc29tZSByZWFsbHkgbGFyZ2UKCSAgbnVtYmVycyBpbiB0aGUgaW50NjQgdGVzdC4KCjIwMDgtMDUtMDQgMTk6MDc6MjEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFVzZSAiJXMiIGFzIGZvcm1hdCBzdHJpbmcgaW5zdGVhZCBvZiBwcmludGluZyBzdHJpbmdzIGRpcmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobl9wcmludCksIChwcmludF9oaWVyYXJjaHkpLAoJICAocHJpbnRfaW50ZXJmYWNlcyksIChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyksCgkgIChwcmludF9zaWduYWxfaW5mbyk6CgkgIFVzZSAiJXMiIGFzIGZvcm1hdCBzdHJpbmcgaW5zdGVhZCBvZiBwcmludGluZyBzdHJpbmdzIGRpcmVjdGx5LgoKMjAwOC0wNS0wNCAxNDoyNTowNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IE1ha2Ugc29tZSBjaGVja3MgYWN0dWFsbHkgdXNlZnVsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOgoJICBNYWtlIHNvbWUgY2hlY2tzIGFjdHVhbGx5IHVzZWZ1bC4KCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pOgoJICBSZW1vdmUgc29tZSB1bnVzZWQgY29kZS4gVW5zaWduZWQgaW50ZWdlcnMgdGVuZCB0byBiZSA+PSAwLgoKMjAwOC0wNS0wMyAxOToyMzo0MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEZpeCAnU2luY2U6JyB2ZXJzaW9uIGluIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QoKSBkb2NzIGJsdXJiOiB0aGlzIGZ1bmN0aW9uIHdhcyBub3QgaW4gdGhlIHVucy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX2dldF9taW5pX29iamVjdCk6CgkgIEZpeCAnU2luY2U6JyB2ZXJzaW9uIGluIGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QoKSBkb2NzIGJsdXJiOiB0aGlzCgkgIGZ1bmN0aW9uIHdhcyBub3QgaW4gdGhlIHVuc2NoZWR1bGVkIDAuMTAuMTkgcmVsZWFzZS4KCjIwMDgtMDUtMDMgMTk6MTM6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogT25seSBwcmludCBvbmUgbG9nIG1lc3NhZ2UgcGVyIG5vbi1wbHVnaW4gZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgT25seSBwcmludCBvbmUgbG9nIG1lc3NhZ2UgcGVyIG5vbi1wbHVnaW4gZmlsZS4KCjIwMDgtMDUtMDMgMTk6MDg6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBGaXggYWxpZ25tZW50IG9mIGRlYnVnIGxvZyBjb2x1bW5zIG9uIDY0LWJpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCk6CgkgIEZpeCBhbGlnbm1lbnQgb2YgZGVidWcgbG9nIGNvbHVtbnMgb24gNjQtYml0LgoKMjAwOC0wNS0wMyAxNjo1MjoxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy86IElnbm9yZSBwcml2YXRlIGNvbnRyb2xsZXIgaGVhZGVycyBmb3IgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIElnbm9yZSBwcml2YXRlIGNvbnRyb2xsZXIgaGVhZGVycyBmb3IgZG9jcy4KCjIwMDgtMDUtMDMgMTU6MjU6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBNb3ZlIHNvbWUgcHJpdmF0ZSBkZWNsYXJhdGlvbnMgaW50byBwcml2YXRlIGhlYWRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlcnByaXZhdGUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuYzoKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2Vwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzoKCSAgTW92ZSBzb21lIHByaXZhdGUgZGVjbGFyYXRpb25zIGludG8gcHJpdmF0ZSBoZWFkZXJzLgoKMjAwOC0wNS0wMiAxMDoxMjozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdGRlYnVndXRpbHMuYzogUmVtb3ZlIHNvbWUgY29kZSB0aGF0IGlzIHVudXNlZCBhZnRlciBTdGVmYW4ncyByZWZhY3RvcmluZyBhbmQgdXNlcyB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBub3csLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChkZWJ1Z19kdW1wX2VsZW1lbnRfcGFkKToKCSAgUmVtb3ZlIHNvbWUgY29kZSB0aGF0IGlzIHVudXNlZCBhZnRlciBTdGVmYW4ncyByZWZhY3RvcmluZyBhbmQgdXNlcwoJICB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBub3csIHJlc3VsdGluZyBpbiBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA4LTA1LTAxIDEzOjAzOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFJ1biBnX3N0cl9oYXNfc3VmZml4KCkgb25seSBvbiB0aGUgZmlsZSBuYW1lLCBub3QgdGhlIGVudGlyZSBmaWxlIHBhdGguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6CgkgIFJ1biBnX3N0cl9oYXNfc3VmZml4KCkgb25seSBvbiB0aGUgZmlsZSBuYW1lLCBub3QgdGhlCgkgIGVudGlyZSBmaWxlIHBhdGguCgoyMDA4LTA0LTMwIDE0OjIwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBTaW5jZSB3ZSdyZSBub3QgY2FsbGVkIG9ubHkgZnJvbSB0aGUgY2hhaW4gZnVuY3Rpb24gYW55IGxvbmdlciwgd2UgY2FuJ3QgYXNzdW1lIHRoYXQgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sZWFrX2Rvd25zdHJlYW0pOgoJICBTaW5jZSB3ZSdyZSBub3QgY2FsbGVkIG9ubHkgZnJvbSB0aGUgY2hhaW4gZnVuY3Rpb24gYW55IGxvbmdlciwKCSAgd2UgY2FuJ3QgYXNzdW1lIHRoYXQgdGhlcmUncyBhbHdheXMgZGF0YSBpbiB0aGUgcXVldWUsIHNvIG1vdmUKCSAgdGhlIGlzX2Z1bGwgY2hlY2sgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbG9vcCAob3RoZXJ3aXNlIHdlJ2QKCSAgaGl0IHRoZSBhc3NlcnQgd2hlbiBjaGFuZ2luZyB0aGUgbGltaXQgcHJvcGVydGllcyB3aGlsZSB0aGUKCSAgcXVldWUgaXMgZW1wdHkgb3Igbm90IHJ1bm5pbmcgeWV0KS4KCSAgQWxzbywgb25seSBzZXQgYSBkaXNjb250IGlmIGl0ZW1zIHdlcmUgYWN0dWFsbHkgcmVtb3ZlZCBmcm9tCgkgIHRoZSBxdWV1ZS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAodGVzdF9sZWFreV9kb3duc3RyZWFtKToKCSAgVGVzdCBjYXNlIGZvciB0aGUgYWJvdmUuCgoyMDA4LTA0LTMwIDA5OjM1OjQzICswMDAwICBKb25hcyBIb2xtYmVyZyA8am9uYXMuaG9sbWJlcmdAYXhpcy5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFdoZW4gY2hhbmdpbmcgdGhyIG1heCBjYXBhY2l0eSBvZiBhIGxlYWt5IHF1ZXVlLCBpbW1lZGlhdGx5IGRyb3AgYnVmZmVycyBpbnN0ZWFkIG9mIHdhaXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKb25hcyBIb2xtYmVyZyA8am9uYXMgZG90IGhvbG1iZXJnIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbGVha19kb3duc3RyZWFtKSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChxdWV1ZV9jYXBhY2l0eV9jaGFuZ2UpLAoJICAoZ3N0X3F1ZXVlX3NldF9wcm9wZXJ0eSk6CgkgIFdoZW4gY2hhbmdpbmcgdGhyIG1heCBjYXBhY2l0eSBvZiBhIGxlYWt5IHF1ZXVlLCBpbW1lZGlhdGx5IGRyb3AgYnVmZmVycwoJICBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIGEgcHVzaCBvbiB0aGUgc2lua3BhZC4gRml4ZXMgIzUzMDYzNy4KCjIwMDgtMDQtMzAgMDc6NTY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IFJlZmFjdG9yIGNvZGUgYW5kIGZpeCBoYW5kbGluZyBvZiBnaG9zdHBhZHMgYW5kIHRoZWlyIHByb3h5cGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgUmVmYWN0b3IgY29kZSBhbmQgZml4IGhhbmRsaW5nIG9mIGdob3N0cGFkcyBhbmQgdGhlaXIgcHJveHlwYWRzLgoKMjAwOC0wNC0yOSAxMToyMzo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBtZXRob2QgdG8gY29udmVuaWVudGx5IGNoZWNrIHRoZSBuYW1lIG9mIGEgY3VzdG9tIGV2ZW50IHdpdGggZ3N0X2V2ZW50X2hhc19uYW1lKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfaGFzX25hbWUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgbWV0aG9kIHRvIGNvbnZlbmllbnRseSBjaGVjayB0aGUgbmFtZSBvZiBhIGN1c3RvbSBldmVudCB3aXRoCgkgIGdzdF9ldmVudF9oYXNfbmFtZSgpLgoJICBSZWZvcm1hdCB0aGUgZXZlbnQgZG9jcyBzbyB0aGF0IHJlbGF0ZWQgbWV0aG9kcyBhcmUgcHV0IHRvZ2V0aGVyIGluc3RlYWQKCSAgb2YgdGhlIGRlZmF1bHQgYWxwaGFiZXRpY2FsIHNvcnQuCgkgIFVwZGF0ZSB1bml0IHRlc3Qgd2l0aCBuZXcgbWV0aG9kLgoJICBBUEk6IEdzdEV2ZW50Ojpnc3RfZXZlbnRfaGFzX25hbWUoKQoKMjAwOC0wNC0yOCAxODo0NDo0OCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06IERvbid0IGFkZCBhbiBleHBsaWNpdCBsaW5rIHRvIGxpYmdzdHJlYW1lci0wLjEwLmxhOyBpdCdzIGFscmVhZHkgaW5jbHVkZWQgaW4gR1NUX09CSl9MSUJTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgRG9uJ3QgYWRkIGFuIGV4cGxpY2l0IGxpbmsgdG8gbGliZ3N0cmVhbWVyLTAuMTAubGE7IGl0J3MgYWxyZWFkeQoJICBpbmNsdWRlZCBpbiBHU1RfT0JKX0xJQlMuCgoyMDA4LTA0LTI4IDA5OjIxOjMzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0LmM6IFJlZ2lzdGVyIEdzdENsb2NrIHR5cGUgZnJvbSBhIHR5cGUtc2FmZSBjb250ZXh0LiBGaXhlcyBidWcgIzUzMDMxNy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBSZWdpc3RlciBHc3RDbG9jayB0eXBlIGZyb20gYSB0eXBlLXNhZmUgY29udGV4dC4gRml4ZXMgYnVnICM1MzAzMTcuCgoyMDA4LTA0LTI2IDAwOjEzOjAzICswMDAwICBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCgkgIHRvb2xzL2dzdC1ydW4uYzogSW5jbHVkZSA8dW5pc3RkLmg+IGNvbmRpdGlvbmFsbHkgb24gSEFWRV9VTklTVERfSCBhcyBlbHNld2hlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieSBFZHdhcmQgSGVydmV5IDxlZHdhcmQuaGVydmV5QGNvbGxhYm9yYS5jby51az4KCSAgKiB0b29scy9nc3QtcnVuLmM6CgkgIEluY2x1ZGUgPHVuaXN0ZC5oPiBjb25kaXRpb25hbGx5IG9uIEhBVkVfVU5JU1REX0ggYXMgZWxzZXdoZXJlLgoKMjAwOC0wNC0yNSAxNzo1NDoyOCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogVXNlIHRoZSBHTGliIHN0dWZmIHRvIGNyZWF0ZSBhIHByaXZhdGUgc3RydWN0dXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIFVzZSB0aGUgR0xpYiBzdHVmZiB0byBjcmVhdGUgYSBwcml2YXRlIHN0cnVjdHVyZS4KCSAgQWRkIHNvbWUgbG9ja2luZyBhcm91bmQgc29tZSBkaXNwb3NlIG1ldGhvZHMgdG8gbWFrZSB0aGVtIGEgbGl0dGxlCgkgIHNhZmVyLCBzZWUgIzUyOTcyMy4gUGF0Y2ggYnk6IEFudG9pbmUgVHJlbWJsYXkgPGhleGEwMCBhdCBnbWFpbCBkb3QgY29tPgoKMjAwOC0wNC0yNSAxMzoyMjozMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS86IEZpeCBkb2MgdHlwb3MgYW5kIHVuaWZ5IGNhcHMgYSBiaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEZpeCBkb2MgdHlwb3MgYW5kIHVuaWZ5IGNhcHMgYSBiaXQuCgoyMDA4LTA0LTI1IDEzOjA5OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEZvcmdvdCB0byBhbHNvIGFkZCB0aGUgZW52dmFyIGRvY3MgaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBGb3Jnb3QgdG8gYWxzbyBhZGQgdGhlIGVudnZhciBkb2NzIGhlcmUuCgoyMDA4LTA0LTI1IDEwOjAxOjQ2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUmVmIHNvbWUgbW9yZSBjbGFzc2VzIGluIGdzdF9pbml0KCkgdG8gd29yayBhcm91bmQgdGhyZWFkLXNhZmV0eSBpc3N1ZXMgaW4gcHJlLTIuMTYgR0xpYnMsIGFuZCBhZGQgYmFzaWMgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpLCAoZ3N0X2RlaW5pdCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChwaXBlbGluZV90aHJlYWQpLAoJICAodGVzdF9jb25jdXJyZW50X2NyZWF0ZSksIChnc3RfcGlwZWxpbmVfc3VpdGUpOgoJICBSZWYgc29tZSBtb3JlIGNsYXNzZXMgaW4gZ3N0X2luaXQoKSB0byB3b3JrIGFyb3VuZCB0aHJlYWQtc2FmZXR5CgkgIGlzc3VlcyBpbiBwcmUtMi4xNiBHTGlicywgYW5kIGFkZCBiYXNpYyB1bml0IHRlc3QuCgoyMDA4LTA0LTI1IDA3OjIyOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZWFycmFuZ2UgdGhlIGxhdGVuY3kgcXVlcnkgY29kZS4gV2UgYWx3YXlzIHdhbnQgdG8gZG8gdGhlIHVwc3RyZWFtIHF1ZXJ5LCBldmVuIGlmIHdlIGFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOgoJICBSZWFycmFuZ2UgdGhlIGxhdGVuY3kgcXVlcnkgY29kZS4gV2UgYWx3YXlzIHdhbnQgdG8gZG8gdGhlIHVwc3RyZWFtCgkgIHF1ZXJ5LCBldmVuIGlmIHdlIGFyZSBub3QgbGl2ZSBzbyB0aGF0IHRoZSB1cHN0cmVhbSBlbGVtZW50cyBjYW4gZ2V0IHRoZQoJICBsYXRlbmN5IHJlc3VsdHMgdG9vLiBJZiB3ZSBmYWlsIGRvaW5nIHRoZSBxdWVyeSBhbmQgd2UgYXJlIGxpdmUsIHdlCgkgIHJldHVybiBUUlVFIGFmdGVyd2FyZHMuCgoyMDA4LTA0LTI0IDE1OjE0OjU0ICswMDAwICBKYXNvbiBaaGFvIDxlMzQyM2NAbW90b3JvbGEuY29tPgoKCSAgRW5hYmxlL2Rpc2FibGUgc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KCkgYmFzZWQgb24gY29tbWFuZGxpbmUgc3dpdGNoIG9yIGVudmlyb25tZW50IHZhcmlhYmxlLiBGaXhlcyAjNTIwNDY4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IEphc29uIFpoYW8gPGUzNDIzY0Btb3Rvcm9sYS5jb20+CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgICogZ3N0L2dzdC5jOgoJICBFbmFibGUvZGlzYWJsZSBzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkoKSBiYXNlZCBvbiBjb21tYW5kbGluZSBzd2l0Y2gKCSAgb3IgZW52aXJvbm1lbnQgdmFyaWFibGUuIEZpeGVzICM1MjA0NjguCgkgICogQ2hhbmdlTG9nOgoJICBGaXggdHlwbyBpbiBteSBwcmV2aW91cyBjb21taXQuCgoyMDA4LTA0LTI0IDA4OjI3OjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogQWRkIGEgd2FybmluZyBvZiB3ZSBoaXQgdW5oYW5kbGVkIGZhY3RvcmllcyB3aGVuIHNhdmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEFkZCBhIHdhcm5pbmcgb2Ygd2UgaGl0IHVuaGFuZGxlZCBmYWN0b3JpZXMgd2hlbiBzYXZpbmcuCgkgIE1vcmUgZGVidWcgbG9nZ2luZyBkZXRhaWwsIGJ1dCBtb3ZlIHRvIExPRyBjYXRlZ29yeS4KCjIwMDgtMDQtMjQgMDY6NDY6NTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBUZWxsIHRoZSAqdHJ1dGgqIHdoZW4gaW1wcm92aW5nIHRoZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgVGVsbCB0aGUgKnRydXRoKiB3aGVuIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDQtMjMgMTQ6NTQ6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBVbnJlZiB0aGUgZmFjdG9yeSBhZnRlciBpdCB3YXMgdXNlZCB0aGUgbGFzdCB0aW1lLCBub3QgYmVmb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSk6CgkgIFVucmVmIHRoZSBmYWN0b3J5IGFmdGVyIGl0IHdhcyB1c2VkIHRoZSBsYXN0IHRpbWUsIG5vdCBiZWZvcmUuCgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfbWFrZSk6CgkgIEltcHJvdmUgZGVidWdnaW5nIGEgYml0IGFuZCBkb24ndCBsZWFrIGEgcmVmIHRvIHRoZSBpbmRleCBmYWN0b3J5IHdpdGgKCSAgZWFjaCBjYWxsLgoKMjAwOC0wNC0yMyAxMzo1NTowMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IEltcHJvdmUgdGhlIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBJbXByb3ZlIHRoZSBkb2N1bWVudGF0aW9uLgoKMjAwOC0wNC0yMyAxMDoxNDozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogVGhlIGdsaWIgbWFjcm8gc2VlbXMgdG8gYmUgYm9ya2VkLiBVc2UgZ19zbGljZV9jb3B5IGRpcmVjdGx5IGFuZCBjYXN0IGluIHRoZSBob3BlIHRoYXQgdGhpcyBmaXhlcyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIFRoZSBnbGliIG1hY3JvIHNlZW1zIHRvIGJlIGJvcmtlZC4gVXNlIGdfc2xpY2VfY29weSBkaXJlY3RseSBhbmQgY2FzdAoJICBpbiB0aGUgaG9wZSB0aGF0IHRoaXMgZml4ZXMgdGhlIHdhcm5pbmcgb24gNjRiaXQuCgoyMDA4LTA0LTIzIDA3OjA4OjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBEb2N1bWVudCB0aGUgbmV3IGZ1bmN0aW9uLiBVc2UgZ19zbGljZV9kdXAoKSAobm8gbmVlZCBmb3IgZ3N0X3NlZ21lbnRfaW5pdCgpKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgRG9jdW1lbnQgdGhlIG5ldyBmdW5jdGlvbi4gVXNlIGdfc2xpY2VfZHVwKCkgKG5vIG5lZWQgZm9yCgkgIGdzdF9zZWdtZW50X2luaXQoKSkuCgoyMDA4LTA0LTIzIDA2OjU3OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBNb3ZlIEdQYXJhbVNlcGMgbWFjcm9zIHRvIHN0YW5kYXJ0IHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE1vdmUgR1BhcmFtU2VwYyBtYWNyb3MgdG8gc3RhbmRhcnQgc2VjdGlvbi4KCSAgKiBnc3QvZ3N0YmluLmM6CgkgIERuJ3QgZG9jdW1lbnQgX2dldF90eXBlIC0gaXRzIGluIHByaXZhdGUgc2VjdGlvbiBpbiBkb2NzIGFueXdheSBhbmQKCSAgdGhpcyBkb2MtYmxvYiB3YXMgaW5jb21wbGV0ZS4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRml4IHdyb25nIHN5bWJvbCBuYW1lcyBpbiBkb2NzLgoJICAqIGdzdC9nc3RtYWNyb3MuaDoKCSAgQWRkIG9uY2UgZG9jIHNlbnRlbmNlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgbW9yZS4KCjIwMDgtMDQtMjEgMTA6MjU6MDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L01ha2VmaWxlLmFtOiBBbmQgcmVtb3ZlIHRob3NlIGxpYnMgaGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIEFuZCByZW1vdmUgdGhvc2UgbGlicyBoZXJlLgoKMjAwOC0wNC0yMSAwOToyOTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogRml4IGRvY3MgYnVpbGQgYWdhaW4gYnkgYWRkaW5nIGxpYmdzdG5ldC0wLjEwLnNvIHRvIFNDQU5PQkpfREVQUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBGaXggZG9jcyBidWlsZCBhZ2FpbiBieSBhZGRpbmcgbGliZ3N0bmV0LTAuMTAuc28gdG8gU0NBTk9CSl9ERVBTLgoKMjAwOC0wNC0yMSAwODozNDowOSArMDAwMCAgT2xpdmllciBDcmV0ZSA8dGVzdGVyQHRlc3Rlci5jYT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogQWRkIHRoZSBtaW4tdGhyZXNob2xkIHRvIHRoZSBtaW4gbGF0ZW5jeSBpZiBwb3NzaWJsZS4gRml4ZXMgIzUyOTE0OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGl2aWVyIENyZXRlIDx0ZXN0ZXIgYXQgdGVzdGVyIGRvdCBjYT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSk6CgkgIEFkZCB0aGUgbWluLXRocmVzaG9sZCB0byB0aGUgbWluIGxhdGVuY3kgaWYgcG9zc2libGUuIEZpeGVzICM1MjkxNDguCgoyMDA4LTA0LTIxIDA3OjQ1OjQ4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46IFN0dXBpZCBlZGl0b3IsIEkgcmVtb3ZlZCB0aGF0IGxpbmUgYXMgaXQgc2hvdWxkIGdvIGluIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBTdHVwaWQgZWRpdG9yLCBJIHJlbW92ZWQgdGhhdCBsaW5lIGFzIGl0IHNob3VsZCBnbyBpbiB5ZXQuCgoyMDA4LTA0LTIxIDA3OjQyOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogUmVtb3ZlIGxpYnJhcnkgdHlwZXMgZnJvIGNvcmUgZG9jcyBhbmQgaGF2ZSB0aGVtIGluIGxpYnMgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgUmVtb3ZlIGxpYnJhcnkgdHlwZXMgZnJvIGNvcmUgZG9jcyBhbmQgaGF2ZSB0aGVtIGluIGxpYnMgZG9jcy4KCSAgUmVmb3JtYXQgYW5kIGNsZWFudXAuIEFkZCBjb21tZW50IGZvciBtaW5pb2JqZWN0IHR5cGVzLgoKMjAwOC0wNC0yMCAxNjozMjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRml4IGxlYWs6IGdfc3RyZG93biBvcGVyYXRlcyBvbiB0aGUgc3RyaW5nIGluIHBsYWNlLCB3aGlsZSBnX2FzY2lpX3N0cmRvd24oKSByZXR1cm5zIGEgbmV3bHktYWxsb2NhdGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2dldF9wcm90b2NvbCk6CgkgIEZpeCBsZWFrOiBnX3N0cmRvd24gb3BlcmF0ZXMgb24gdGhlIHN0cmluZyBpbiBwbGFjZSwgd2hpbGUKCSAgZ19hc2NpaV9zdHJkb3duKCkgcmV0dXJucyBhIG5ld2x5LWFsbG9jYXRlZCBzdHJpbmcuCgoyMDA4LTA0LTIwIDA5OjU1OjI1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBQcmludCB0aGUgVVJJIHByb3RvY29scyBhbmQgdGhlIFVSSSB0eXBlIHN1cHBvcnRlZCBieSB0aGUgZWxlbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3VyaV9oYW5kbGVyX2luZm8pLAoJICAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgUHJpbnQgdGhlIFVSSSBwcm90b2NvbHMgYW5kIHRoZSBVUkkgdHlwZSBzdXBwb3J0ZWQgYnkgdGhlIGVsZW1lbnQuCgoyMDA4LTA0LTE5IDE2OjA1OjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBVc2UgZ192YWx1ZV90YWtlX3N0cmluZygpIGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQgZ192YWx1ZV9zZXRfc3RyaW5nX3Rha2Vfb3duZXJzaGlwKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChnc3RfdGFnX21lcmdlX3N0cmluZ3Nfd2l0aF9jb21tYSk6CgkgIFVzZSBnX3ZhbHVlX3Rha2Vfc3RyaW5nKCkgaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZAoJICBnX3ZhbHVlX3NldF9zdHJpbmdfdGFrZV9vd25lcnNoaXAoKS4KCjIwMDgtMDQtMTkgMTU6NDI6MTkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBSZXR1cm4gdGhlIG9sZCBDUkMgaW5zdGVhZCBvZiAwIGlmIHdlIGdpdmUgYSBOVUxMIGJ1ZmZlciBvciBhIGJ1ZmZlciB3aXRoIGEgbGVuZ3RoIG9mIDAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoX2dzdF9jcmMzMik6CgkgIFJldHVybiB0aGUgb2xkIENSQyBpbnN0ZWFkIG9mIDAgaWYgd2UgZ2l2ZSBhIE5VTEwgYnVmZmVyCgkgIG9yIGEgYnVmZmVyIHdpdGggYSBsZW5ndGggb2YgMC4KCjIwMDgtMDQtMTkgMTU6MzY6MjAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1cmkuYzogQSB2YWxpZCBVUkkgc2NoZW1lIGNhbiBhbHNvIGluY2x1ZGUgJysnLCAnLScgYW5kICcuJyBhZGRpdGlvbmFsIHRvIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFzIHBlciBSRkMgMy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX3Byb3RvY29sX2NoZWNrX2ludGVybmFsKSwKCSAgKGdzdF91cmlfZ2V0X3Byb3RvY29sKSwgKGdzdF91cmlfaGFzX3Byb3RvY29sKSwKCSAgKGdzdF91cmlfY29uc3RydWN0KSwgKGdzdF91cmlfaGFuZGxlcl9zZXRfdXJpKToKCSAgQSB2YWxpZCBVUkkgc2NoZW1lIGNhbiBhbHNvIGluY2x1ZGUgJysnLCAnLScgYW5kICcuJyBhZGRpdGlvbmFsCgkgIHRvIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFzIHBlciBSRkMgMzk4NiBTZWN0aW9uIDMuMS4KCSAgSGFuZGxlIFVSSSBzY2hlbWVzIGNhc2UgaW5zZW5zaXRpdmUgaW4gYWxsIHBsYWNlcyBhbmQgY29udmVydAoJICB0byBsb3dlci1jYXNlIHdoZW4gY29uc3RydWN0aW5nIGFuIFVSSSBvciBzZXR0aW5nIGFuIFVSSSB3aXRoCgkgIHRoZSBHc3RVUklIYW5kbGVyIGludGVyZmFjZS4gRml4ZXMgYnVnICM1Mjg4NjguCgkgIEFsbCBlbGVtZW50cyBjYW4gc3RpbGwgYXNzdW1lIChhcyBiZWZvcmUpIHRoYXQgdGhleSB3aWxsCgkgIGdldCBwYXNzZWQgVVJJcyB3aXRoIGEgbG93ZXItY2FzZSBVUkkgc2NoZW1lIGJ5IHRoZSBHc3RVUklIYW5kbGVyCgkgIGludGVyZmFjZS4KCjIwMDgtMDQtMTcgMTA6MDk6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBEb24ndCB1c2UgZ19hdG9taWNfc2V0X2ludCB3aGVyZSBpdCdzIG5vdCBuZWVkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpOgoJICBEb24ndCB1c2UgZ19hdG9taWNfc2V0X2ludCB3aGVyZSBpdCdzIG5vdCBuZWVkZWQuCgoyMDA4LTA0LTE3IDA4OjQ1OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IDIgY2FwcyBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfY2Fwcyk6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgRml4IDIgY2FwcyBsZWFrcy4KCjIwMDgtMDQtMTcgMDg6MzQ6MTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5jOiBVc2UgZ19hdG9taWNfaW50X3NldCgpIGhlcmUgdG9vIGluc3RlYWQgb2YgYXNzaWdubWVudCArIGdfYXRvbWljX2ludF9nZXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYXRvbWljX2ludF9zZXQpOgoJICBVc2UgZ19hdG9taWNfaW50X3NldCgpIGhlcmUgdG9vIGluc3RlYWQgb2YgYXNzaWdubWVudCArCgkgIGdfYXRvbWljX2ludF9nZXQoKS4KCjIwMDgtMDQtMTcgMDc6MTQ6NDYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3R1dGlscy4qOiBBUEk6IERlcHJlY2F0ZSBnc3RfYXRvbWljX2ludF9zZXQoKSwgZ19hdG9taWNfaW50X3NldCgpIHNob3VsZCBiZSB1c2VkIG5vdyB0aGF0IHdlIGRlcGVuZCBvbiBuZXcgZW5vdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBEZXByZWNhdGUgZ3N0X2F0b21pY19pbnRfc2V0KCksIGdfYXRvbWljX2ludF9zZXQoKSBzaG91bGQgYmUgdXNlZAoJICBub3cgdGhhdCB3ZSBkZXBlbmQgb24gbmV3IGVub3VnaCBHTGliLgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpLCAoZ3N0X2RlYnVnX3NldF9jb2xvcmVkKSwKCSAgKGdzdF9kZWJ1Z19zZXRfZGVmYXVsdF90aHJlc2hvbGQpLCAoX2dzdF9kZWJ1Z19jYXRlZ29yeV9uZXcpLAoJICAoZ3N0X2RlYnVnX2NhdGVnb3J5X3NldF90aHJlc2hvbGQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3NldF9wcm9wZXJ0eSk6CgkgIFVzZSBnX2F0b21pY19pbnRfc2V0KCkgaW5zdGVhZCBvZiBnc3RfYXRvbWljX2ludF9zZXQoKS4KCjIwMDgtMDQtMTYgMTg6NDg6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RxdWVyeS5jOiBBbHNvIHVzZSBHX0dJTlQ2NF9DT05TVEFOVCBmb3IgdGhlIHF1ZXJpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICBBbHNvIHVzZSBHX0dJTlQ2NF9DT05TVEFOVCBmb3IgdGhlIHF1ZXJpZXMuCgoyMDA4LTA0LTE2IDE4OjM4OjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBVc2UgR19HSU5UNjRfQ09OU1RBTlQgaW4gdmFyYXJncyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgVXNlIEdfR0lOVDY0X0NPTlNUQU5UIGluIHZhcmFyZ3MgZnVuY3Rpb24uCgoyMDA4LTA0LTE2IDE1OjUxOjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSW5pdGlhbGl6ZSB0aGUgcmVnaXN0cnkgbWFnaWMgd2l0aCB6ZXJvZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKToKCSAgSW5pdGlhbGl6ZSB0aGUgcmVnaXN0cnkgbWFnaWMgd2l0aCB6ZXJvZXMuCgoyMDA4LTA0LTE2IDE0OjE4OjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogQWRkIGNyYzMyIGNoZWNrc3VtIHRvIHRoZSBiaW5hcnkgcmVnaXN0cnkgZmlsZSBhbmQgY2hlY2sgdGhpcyBiZWZvcmUgYWNjZXB0aW5nIGEgcmVnaXN0cnkgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChfZ3N0X2NyYzMyKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBBZGQgY3JjMzIgY2hlY2tzdW0gdG8gdGhlIGJpbmFyeSByZWdpc3RyeSBmaWxlIGFuZCBjaGVjayB0aGlzIGJlZm9yZQoJICBhY2NlcHRpbmcgYSByZWdpc3RyeSBmaWxlLgoJICBBbHNvIGZyZWUgdGhlIGRhdGEgbGlzdCB3aGVuIHdyaXRpbmcgdG8gdGhlIHJlZ2lzdHJ5IGZpbGUgZmFpbHMuCgoyMDA4LTA0LTE2IDEzOjE2OjQ0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSWYgYW4gZWxlbWVudCBzdXBwb3J0cyB0aGUgVXJpIGludGVyZmFjZSwgcmV0dXJucyBhIHZhbGlkIHBvaW50ZXIgdG8gdGhlIHN1cHBvcnRlZCBVUkkgcHJvdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgSWYgYW4gZWxlbWVudCBzdXBwb3J0cyB0aGUgVXJpIGludGVyZmFjZSwgcmV0dXJucyBhIHZhbGlkIHBvaW50ZXIKCSAgdG8gdGhlIHN1cHBvcnRlZCBVUkkgcHJvdG9jb2xzIGJ1dCB0aGlzIHBvaW50ZXIgY29udGFpbnMgbm90aGluZwoJICBkb24ndCB0cnkgdG8gc2F2ZSB0aGF0IGFzIGl0IHdpbGwgY29ycnVwdCB0aGUgcmVnaXN0cnkuCgkgIERvbid0IHVucmVmIHRoZSBwbHVnaW4gaWYgd2UgYWRkZWQgaXQgdG8gdGhlIHJlZ2lzdHJ5IGFscmVhZHkgYnV0CgkgIGZhaWwgdG8gbG9hZCBhIGZlYXR1cmUgYXMgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSB0YWtlcyBvd25lcnNoaXAKCSAgb2YgdGhlIHBsdWdpbi4KCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgYSBiaXQuCgoyMDA4LTA0LTE2IDA4OjMwOjU3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5oOiBDbGFyaWZ5IHNvbWUgdGFnIGl0ZW0gZG9jcyBhZnRlciBkaXNjdXNzaW9uIG9uIGlyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQ2xhcmlmeSBzb21lIHRhZyBpdGVtIGRvY3MgYWZ0ZXIgZGlzY3Vzc2lvbiBvbiBpcmMuCgoyMDA4LTA0LTE1IDA2OjIzOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgY29tbWVudGVkIG91dCBwbHVnaW5zICh0aGV5IGhhdmUgdGhlaXIgb3duIGRvY3MpLiBVcGRhdGUgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIFJlbW92ZSBjb21tZW50ZWQgb3V0IHBsdWdpbnMgKHRoZXkgaGF2ZSB0aGVpciBvd24gZG9jcykuIFVwZGF0ZQoJICBjb21tZW50cy4KCjIwMDgtMDQtMTUgMDY6MTY6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBHU1RfUEFSQU1fQ09OVFJPTExBQkxFIGFuZCBHU1RfUEFSQU1fVVNFUl9TSElGVC4gTW92ZSBwYXJhbXNwZWMgZG9jcyB0byBvd24gc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmM6CgkgICogZ3N0L2dzdHBhcmFtc3BlY3MuaDoKCSAgQWRkIEdTVF9QQVJBTV9DT05UUk9MTEFCTEUgYW5kIEdTVF9QQVJBTV9VU0VSX1NISUZULiBNb3ZlIHBhcmFtc3BlYwoJICBkb2NzIHRvIG93biBzZWN0aW9uLgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBUaGlzIG5vdyBvbmx5IGRvY3VtZW50cyBHVmFsdWUuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgUmVtb3ZlIEdTVF9QQVJBTV9DT05UUk9MTEFCTEUuCgoyMDA4LTA0LTE1IDA1OjU0OjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL1JFQURNRTogQ29ycmVjdCBmaWxlIHBhdGguIFRlbGwgYWJvdXQgaG93IHRvIHVzZSAtb3ZlcnJpZGVzLnR4dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIENvcnJlY3QgZmlsZSBwYXRoLiBUZWxsIGFib3V0IGhvdyB0byB1c2UgLW92ZXJyaWRlcy50eHQuCgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgIFNtYWxsIGRlc2lnbiB1cGRhdGUuCgoyMDA4LTA0LTE0IDEyOjEyOjIyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRml4IGEgdHlwbyBpbiBhIGRlYnVnIG1lc3NhZ2UgYW5kIHJldmVydCBjaGFuZ2UgZnJvbSB5ZXN0ZXJkYXkgYXMgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgRml4IGEgdHlwbyBpbiBhIGRlYnVnIG1lc3NhZ2UgYW5kIHJldmVydCBjaGFuZ2UgZnJvbSB5ZXN0ZXJkYXkgYXMKCSAgZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4oKSB3aWxsIG9ubHkgZmFpbCBpZiBzb21ldGhpbmcgaXMgcmVhbGx5IHdyb25nCgkgIGFscmVhZHkgYW5kIHdlIGNhbid0IHN1cnZpdmUgaXQgYW55d2F5LgoKMjAwOC0wNC0xNCAwODo0ODo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogUHJlLXJlZ2lzdGVyIEdzdEdFcnJvciBHVHlwZSBmcm9tIGEgdGhyZWFkLXNhZmUgY29udGV4dCAoZml4ZXMgIzUyNzk2Nyk7IHVucmVmIGVudW0gdHlwZSBjbGFzc2VzIGluIGRlaW5pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KSwgKGdzdF9kZWluaXQpOgoJICBQcmUtcmVnaXN0ZXIgR3N0R0Vycm9yIEdUeXBlIGZyb20gYSB0aHJlYWQtc2FmZSBjb250ZXh0CgkgIChmaXhlcyAjNTI3OTY3KTsgdW5yZWYgZW51bSB0eXBlIGNsYXNzZXMgaW4gZGVpbml0LgoKMjAwOC0wNC0xMyAxOTo1ODo0MyArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdHRhZ3NldHRlci5jOiBNZXJnaW5nIGFuIGVtcHR5IGxpc3Qgd2l0aCBhbm90aGVyIGxpc3QgaW4gS0VFUF9BTEwgbW9kZSBzaG91bGQgeWllbGQgYW4gZW1wdHkgbGlzdCBhcyByZXN1bHQgYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUmVuZSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRlPgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF90YWdfc2V0dGVyX21lcmdlX3RhZ3MpOgoJICBNZXJnaW5nIGFuIGVtcHR5IGxpc3Qgd2l0aCBhbm90aGVyIGxpc3QgaW4gS0VFUF9BTEwgbW9kZSBzaG91bGQKCSAgeWllbGQgYW4gZW1wdHkgbGlzdCBhcyByZXN1bHQgYW5kIG5vdCB0aGUgc2Vjb25kIGxpc3QgKCM1MTI1NzgpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWdzZXR0ZXIuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGFnIG1lcmdlIG1vZGVzIGFuZCB0aGUgYWZvcmVtZW50aW9uZWQgYnVnLgoKMjAwOC0wNC0xMyAxODo1MDowNSArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogRml4IGRlc2NyaXB0aW9uIHRvIG1hdGNoIHRoZSBvcmRlciBpbiB0aGUgdGFibGUgKCM1MTI1NzcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbmUgU3RhZGxlciA8bWFpbCBhdCByZW5lc3RhZGxlciBkZT4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBGaXggZGVzY3JpcHRpb24gdG8gbWF0Y2ggdGhlIG9yZGVyIGluIHRoZSB0YWJsZSAoIzUxMjU3NykuCgoyMDA4LTA0LTEzIDE3OjUxOjAyICswMDAwICBLd2FuZyBZdWwgU2VvIDxrd2FuZ3l1bC5zZW8uZ21haWwuY29tPgoKCSAgRGVmaW5lIHNvY2tsZW5fdCBhcyBpbnQgaWYgaXQncyBub3QgZGVmaW5lZCB5ZXQuIEZpeGVzIGNvbXBpbGF0aW9uIHdpdGggTVNWQzYgYW5kIG90aGVyIHZlcnNpb25zIHdoZXJlIHNvY2tsZW5fdCBpcyBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogS3dhbmcgWXVsIFNlbyAgPGt3YW5neXVsLnNlbyBnbWFpbCBjb20+CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBEZWZpbmUgc29ja2xlbl90IGFzIGludCBpZiBpdCdzIG5vdCBkZWZpbmVkIHlldC4gRml4ZXMgY29tcGlsYXRpb24KCSAgd2l0aCBNU1ZDNiBhbmQgb3RoZXIgdmVyc2lvbnMgd2hlcmUgc29ja2xlbl90IGlzIG5vdCBkZWZpbmVkIGluCgkgIHRoZSB3aW5kb3dzIGhlYWRlcnMgKCM1MTgwMjIpLgoKMjAwOC0wNC0xMyAxMzo1NDo1NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IElmIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgZmFpbHMgb3VyIHJlZmVyZW5jZSB0byB0aGUgcGx1Z2luIGlzIGludmFsaWQgc28gZG9uJ3QgdHJ5IHRvIHVzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbik6CgkgIElmIGdzdF9yZWdpc3RyeV9hZGRfcGx1Z2luKCkgZmFpbHMgb3VyIHJlZmVyZW5jZSB0byB0aGUgcGx1Z2luIGlzCgkgIGludmFsaWQgc28gZG9uJ3QgdHJ5IHRvIHVzZSBpdCBhbnltb3JlIGFuZCBpbnN0ZWFkIGVycm9yIG91dC4KCjIwMDgtMDQtMTIgMjA6NTI6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QteG1saW5zcGVjdC5jOiBEZS1jcnVmdCBhIGJpdC4gSWYgbm8gYXJndW1lbnQgaXMgc3BlY2lmaWVkLCBwcmludCBhbGwgZWxlbWVudHMgaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyksIChtYWluKToKCSAgRGUtY3J1ZnQgYSBiaXQuIElmIG5vIGFyZ3VtZW50IGlzIHNwZWNpZmllZCwgcHJpbnQgYWxsIGVsZW1lbnRzIGluCgkgIFhNTCBzeW50YXggcmF0aGVyIHRoYW4gYSBmcmVlc3R5bGUgbGlzdCBvZiBlbGVtZW50cyBsaWtlIGdzdC1pbnNwZWN0LgoJICBBbHNvLCBkb24ndCBwcmludCBYTUwgaGVhZGVyIGNodW5rIHVubGVzcyB3ZSBhY3R1YWxseSBoYXZlIHNvbWV0aGluZwoJICB0byBwcmludCAoaWUuIGRvbid0IHByaW50IGl0IGJlZm9yZSBhbiBlcnJvciBtZXNzYWdlKTsgcHJpbnQgZXJyb3IKCSAgbWVzc2FnZSB0byBzdGRlcnIgbm90IHN0ZG91dC4gUmVtb3ZlIHN1cHBvcnQgZm9yIHByaW50aW5nIHBsdWdpbgoJICBpbmZvIChpdCB3b3VsZCBqdXN0IG91dHB1dCBzb21ldGhpbmcgZnJlZXN0eWxlIGFsb25nIHRoZSBsaW5lcyBvZgoJICBnc3QtaW5zcGVjdCBzbyBmYXIpLCB3aGljaCBmaXhlcyAjNTE0NTA3LiBBbHNvIGFkZCBsaWNlbnNlIGhlYWRlci4KCjIwMDgtMDQtMTEgMDk6Mjc6NDQgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgTWFjIE9TIFggbG92ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wNC0xMSAgSnVsaWVuIE1vdXR0ZSAgPGp1bGllbkBmbHVlbmRvLmNvbT4KCSAgTWFjIE9TIFggbG92ZS4uLgoJICAqIGNvbmZpZ3VyZS5hYzogTWVyZ2UgcGxhdGZvcm0gc3BlY2lmaWMgZGVmaW5lcywgaW50cm9kdWNlIGEgbmV3CgkgIGRlZmluZSBvbiBPUyBYIHRvIHJlbWVtYmVyIHRoYXQgZm9ya2luZyB3aGVuIHVwZGF0aW5nIHJlZ2lzdHJ5IGlzCgkgIHVuc2FmZS4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IFVwZGF0ZWQgdG8gaW5jbHVkZSBnc3QtbGlicyBpbiB0aGUgYmFkCgkgIG1vZHVsZS4KCSAgKiBnc3QvZ3N0LmM6IERvbid0IGZvcmsgd2hlbiB1cGRhdGluZyByZWdpc3RyeSBpZiBHU1RfSEFWRV9VTlNBRkVfRk9SSwoJICBpcyBkZWZpbmVkLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCk6IEZpeGVkIGEgYm9ndXMKCSAgY29uZGl0aW9uIHRoYXQgbGVhZHMgdG8gYWJzb2x1dGVseSBubyBwbHVnaW5zIGJlaW5nIHJlZ2lzdGVyZWQgb24KCSAgT1MgWC4KCjIwMDgtMDQtMTAgMjA6NDY6NTEgKzAwMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJICBBZGQgZ3N0X3BhZF9hZGRfKl9wcm9iZV9mdWxsKCkgZnVuY3Rpb25zIHdpdGggYSBub3RpZnkgY2FsbGJhY2sgdGhhdCBsZXRzIHRoZSBjYWxsZXIgZnJlZSB0aGUgZGF0YSBpdCBwYXNzZXMgdG8gdGhlIHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdSBhdCBzdm4gZG90IGdub21lIGRvdCBvcmc+CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX2FkZF9kYXRhX3Byb2JlKSwKCSAgKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmVfZnVsbCksIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZV9mdWxsKSwgKGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmVfZnVsbCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9wYWRfYWRkXypfcHJvYmVfZnVsbCgpIGZ1bmN0aW9ucyB3aXRoIGEgbm90aWZ5IGNhbGxiYWNrIHRoYXQKCSAgbGV0cyB0aGUgY2FsbGVyIGZyZWUgdGhlIGRhdGEgaXQgcGFzc2VzIHRvIHRoZSBwcm9iZSBmdW5jdGlvbnMuIFRoaXMKCSAgaXMgdXNlZnVsIGZvciBiaW5kaW5ncyBzdWNoIGFzIGdzdC1weXRob24gb3IgZ3N0cmVhbWVybW0gKCM1MjY4MTQpLgoJICBBUEk6IGdzdF9wYWRfYWRkX2RhdGFfcHJvYmVfZnVsbAoJICBBUEk6IGdzdF9wYWRfYWRkX2J1ZmZlcl9wcm9iZV9mdWxsCgkgIEFQSTogZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmVfZnVsbAoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICBBZGQgbWluaW1hbCB1bml0IHRlc3QgdG8gbWFrZSBzdXJlIGZyZWVpbmcgdGhlIGRhdGEgYWN0dWFsbHkgd29ya3MKCSAgYXMgZXhwZWN0ZWQuCgkgICogdGVzdHMvYmVuY2htYXJrcy8uY3ZzaWdub3JlOgoJICBSYW5kb20gY3ZzaWdub3JlIGFkZGVuZHVtLgoKMjAwOC0wNC0xMCAxOToxMzo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmg6IE1lbnRpb24gR3N0RGVidWdHcmFwaERldGFpbHMgZW51bSB0eXBlIGluIGRvYyBibHVyYiBzbyB3ZSBnZXQgYSBsaW5rIHRvIGl0IGluIHRoZSBkb2NzIChzaW5jZSB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOiAoR1NUX0RFQlVHX0JJTl9UT19ET1RfRklMRV9XSVRIX1RTKSwKCSAgKEdTVF9ERUJVR19CSU5fVE9fRE9UX0ZJTEUpOgoJICBNZW50aW9uIEdzdERlYnVnR3JhcGhEZXRhaWxzIGVudW0gdHlwZSBpbiBkb2MgYmx1cmIgc28gd2UgZ2V0IGEgbGluawoJICB0byBpdCBpbiB0aGUgZG9jcyAoc2luY2UgdGhlc2UgYXJlIG1hY3JvcyB0aGUgdHlwZXMgb2YgdGhlIGFyZ3VtZW50cwoJICB3b24ndCBiZSBzaG93biBpbiB0aGUgZG9jcyBvdGhlcndpc2UpLgoKMjAwOC0wNC0xMCAxNDoxMDo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBEbyBub3QgYWJvcnQgb24gb3V0IG9mIG1lbW9yeSBmb3IgcGFkX2FsbG9jX2J1ZmZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBEbyBub3QgYWJvcnQgb24gb3V0IG9mIG1lbW9yeSBmb3IgcGFkX2FsbG9jX2J1ZmZlci4KCjIwMDgtMDQtMTAgMTM6NTk6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IFJlbW92ZSBibGFuayBsaW5lIGJldHdlZW4gc3ltYm9sIG5hbWUgYWQgcGFyYW1ldGVycyB0byBmaXggZ3RrZG9jIHdhcm5pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIFJlbW92ZSBibGFuayBsaW5lIGJldHdlZW4gc3ltYm9sIG5hbWUgYWQgcGFyYW1ldGVycyB0byBmaXggZ3RrZG9jCgkgIHdhcm5pbmcuCgoyMDA4LTA0LTA5IDIyOjM3OjIyICswMDAwICBKb3PDqSBBbGJ1cnF1ZXJxdWUgPGphYWxidXJxdUBzdm4uZ25vbWUub3JnPgoKCSAgRXhwb3NlIGdzdF9zZWdtZW50X2NvcHkoKSB0byBtYWtlIHRoaW5ncyBlYXNpZXIgZm9yIHRoZSBjKysgYmluZGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1IGF0IHN2biBkb3QgZ25vbWUgZG90IG9yZz4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgRXhwb3NlIGdzdF9zZWdtZW50X2NvcHkoKSB0byBtYWtlIHRoaW5ncyBlYXNpZXIgZm9yIHRoZSBjKysgYmluZGluZ3MuCgkgIEZpeGVzICM1MTg5MzIuCgkgIEFQSTogZ3N0X3NlZ21lbnRfY29weSgpCgoyMDA4LTA0LTA5IDIxOjI3OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBGaXggY29uc3QgcG9zaXRpb247IHJlZiBHVHlwZSBjbGFzc2VzIGZvciBlbnVtIHR5cGVzIHRvIHdvcmsgYXJvdW5kIHRocmVhZC1zYWZldHkgaXNzdWVzIGluIEdMaWIgdmVyc2lvbnMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApLCAoaW5pdF9wb3N0KToKCSAgRml4IGNvbnN0IHBvc2l0aW9uOyByZWYgR1R5cGUgY2xhc3NlcyBmb3IgZW51bSB0eXBlcyB0byB3b3JrCgkgIGFyb3VuZCB0aHJlYWQtc2FmZXR5IGlzc3VlcyBpbiBHTGliIHZlcnNpb25zIDwgMi4xNi4KCjIwMDgtMDQtMDkgMTg6MjY6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6IEZpeCBzb21lIHR5cG9zIGFuZCBzZXQgdGhlIGVzdGltYXRlZCB0b3RhbCBmb3IgcHVzaCBtb2RlIHRvIC0xLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIEZpeCBzb21lIHR5cG9zIGFuZCBzZXQgdGhlIGVzdGltYXRlZCB0b3RhbCBmb3IgcHVzaCBtb2RlIHRvIC0xLgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcpOgoJICBTZXQgYnVmZmVyaW5nLWxlZnQgdG8gMCBhcyB3ZSdyZSBub3QgYnVmZmVyaW5nIGJ5IGRlZmF1bHQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6CgkgIEltcGxlbWVudCBCVUZGRVJJTkcgcXVlcnkuCgoyMDA4LTA0LTA5IDE3OjM0OjU0ICswMDAwICBNaWxvc3ogRGVyZXp5bnNraSA8aW50ZXJuYWxlcnJvckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXJyb3IuKjogQWRkIHR3byBuZXcgZXJyb3IgY29kZXMgZm9yIGVuY3J5cHRlZCBjb250ZW50LiBGaXhlcyAjNTI0NjU5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQmFzZWQgb24gcGF0Y2ggYnk6IE1pbG9zeiBEZXJlenluc2tpIDxpbnRlcm5hbGVycm9yIGdtYWlsIGNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3Rfc3RyZWFtX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgQWRkIHR3byBuZXcgZXJyb3IgY29kZXMgZm9yIGVuY3J5cHRlZCBjb250ZW50LiBGaXhlcyAjNTI0NjU5LgoJICBBUEk6IEdTVF9TVFJFQU1fRVJST1JfREVDUllQVAoJICBBUEk6IEdTVF9TVFJFQU1fRVJST1JfREVDUllQVF9OT0tFWQoKMjAwOC0wNC0wOSAxMzoxNTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RxdWVyeS5oOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEZpeCB0eXBvLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGZ1bmN0aW9ucy4KCjIwMDgtMDQtMDkgMDg6MTk6MzYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogRml4IGltcGVyZmVjdCB0aW1lc3RhbXAvb2Zmc2V0IGNoZWNrcyB3aGVuIHdlIGdldCBhbm90aGVyIE5FV1NFR01FTlQgZXZlbnQgYWZ0ZXIgcHJvYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZXZlbnQpLAoJICAoZ3N0X2lkZW50aXR5X3N0YXJ0KToKCSAgRml4IGltcGVyZmVjdCB0aW1lc3RhbXAvb2Zmc2V0IGNoZWNrcyB3aGVuIHdlIGdldCBhbm90aGVyIE5FV1NFR01FTlQKCSAgZXZlbnQgYWZ0ZXIgcHJvY2Vzc2luZyBzb21lIGRhdGEuIEZpeGVzIGJ1ZyAjNTI2MDQyLgoKMjAwOC0wNC0wOCAyMDoyODoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFJlbmFtZSBfYXZhaWwgLT4gX3JhbmdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeSksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19yYW5nZSksIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3JhbmdlKToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVuYW1lIF9hdmFpbCAtPiBfcmFuZ2UKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19yYW5nZQoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcmFuZ2UKCjIwMDgtMDQtMDggMjA6MTc6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgYnVzeSBmaWVsZCBhbmQgcXVhcmsgZm9yIHRoZSBidWZmZXJpbmcgcXVlcnkgc28gdGhhdCB0aGUgYXBwIGNhbiBvbmx5IHVzZSB0aGUgcXVlcnkgdG8gc2VlIGlmIGJ1ZmZlcmluZyBpcyBpbiBwcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICAqIGdzdC9nc3RxdWFyay5jOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X25ld19idWZmZXJpbmcpLCAoZ3N0X3F1ZXJ5X3NldF9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGQgYnVzeSBmaWVsZCBhbmQgcXVhcmsgZm9yIHRoZSBidWZmZXJpbmcgcXVlcnkgc28gdGhhdCB0aGUgYXBwIGNhbgoJICBvbmx5IHVzZSB0aGUgcXVlcnkgdG8gc2VlIGlmIGJ1ZmZlcmluZyBpcyBpbiBwcm9ncmVzcy4KCjIwMDgtMDQtMDggMTk6NTk6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBSZW9yZGVyIHRoZSBtZXNzYWdlIGRvY3MgYW5kIGhlYWRlcnMgZm9yIGNsYXJpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX3NldF9idWZmZXJpbmdfc3RhdHMpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nX3N0YXRzKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19sYXRlbmN5KSwgKGdzdF9xdWVyeV9zZXRfbGF0ZW5jeSksCgkgIChnc3RfcXVlcnlfcGFyc2VfbGF0ZW5jeSksIChnc3RfcXVlcnlfbmV3X2J1ZmZlcmluZyksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19wZXJjZW50KSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfcGVyY2VudCksCgkgIChnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19zdGF0cyksIChnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3N0YXRzKSwKCSAgKGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX2F2YWlsKSwgKGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfYXZhaWwpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBSZW9yZGVyIHRoZSBtZXNzYWdlIGRvY3MgYW5kIGhlYWRlcnMgZm9yIGNsYXJpdHkuCgkgIEFkZCBhZGl0aW9uYWwgYnVmZmVyaW5nIHN0YXRzIEFQSSBmb3IgbWVzc2FnZXMuCgkgIEFkZCBidWZmZXJpbmcgcXVlcnkuCgkgIENvbnZlcnQgc29tZSBsZWZ0b3ZlciBxdWVyaWVzIHRvIHVzZSBHc3RRdWFyay4KCSAgQVBJOiBnc3RfbWVzc2FnZV9zZXRfYnVmZmVyaW5nX3N0YXRzCgkgIEFQSTogZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nX3N0YXRzCgkgIEFQSTogR1NUX1FVRVJZX0JVRkZFUklORwoJICBBUEk6IEdzdEJ1ZmZlcmluZ01vZGUKCSAgQVBJOiBnc3RfcXVlcnlfbmV3X2J1ZmZlcmluZwoJICBBUEk6IGdzdF9xdWVyeV9zZXRfYnVmZmVyaW5nX3BlcmNlbnQKCSAgQVBJOiBnc3RfcXVlcnlfcGFyc2VfYnVmZmVyaW5nX3BlcmNlbnQKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19zdGF0cwoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfc3RhdHMKCSAgQVBJOiBnc3RfcXVlcnlfc2V0X2J1ZmZlcmluZ19hdmFpbAoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9idWZmZXJpbmdfYXZhaWwKCjIwMDgtMDQtMDggMTk6NTI6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBVc2UgR3N0UXVhcmsgZm9yIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld19pbmZvKSwKCSAgKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX3Byb3ZpZGUpLCAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX2xvc3QpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X25ld19jbG9jayksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbiksCgkgIChnc3RfbWVzc2FnZV9uZXdfYXN5bmNfc3RhcnQpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfcHJvdmlkZSksIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19sb3N0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX25ld19jbG9jayksIChnc3RfbWVzc2FnZV9wYXJzZV9lcnJvciksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV93YXJuaW5nKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2luZm8pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfZHVyYXRpb24pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYXN5bmNfc3RhcnQpOgoJICBVc2UgR3N0UXVhcmsgZm9yIG1lc3NhZ2VzLgoKMjAwOC0wNC0wOCAxOTozOToyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWFyay4qOiBBZGQgc29tZSBtb3JlIHF1YXJrcyBuZWVkZWQgZm9yIG1lc3NhZ2VzIGFuZCBxdWVyaWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVhcmsuYzogKF9wcml2X2dzdF9xdWFya3NfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHF1YXJrLmg6CgkgIEFkZCBzb21lIG1vcmUgcXVhcmtzIG5lZWRlZCBmb3IgbWVzc2FnZXMgYW5kIHF1ZXJpZXMuCgoyMDA4LTA0LTA4IDE5OjE0OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OiBSZW1vdmUgdGhlICJub25lIiBidWZmZXJpbmcgbW9kZSwgU1RSRUFNIGlzIGEgZ29vZCBkZWZhdWx0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIFJlbW92ZSB0aGUgIm5vbmUiIGJ1ZmZlcmluZyBtb2RlLCBTVFJFQU0gaXMgYSBnb29kIGRlZmF1bHQuCgkgIE1vdmUgZXN0aW1hdGVkLXRpbWUgdG8gdGhlIGF2YWlsIHF1ZXJ5LCB0aGF0J3Mgd2hlbiBpdCB3aWxsIGJlIG5lZWRlZC4KCSAgT3RoZXIgc21hbGwgdHlwbyBmaXhlcyBhbmQgdXBkYXRlcy4KCjIwMDgtMDQtMDcgMTM6Mjc6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5kZXguYzogRG9uJ3QgcHV0IGRlc2NyaXB0aW9ucyBpbnRvIHRoZSBuaWNrIGZpZWxkIG9mIGEgR0VudW1WYWx1ZTogaXQncyBub3QgbWVhbnQgZm9yIHRoYXQgYW5kIHNvbWUgbGFuZ3VhZ2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfcmVzb2x2ZXJfZ2V0X3R5cGUpOgoJICBEb24ndCBwdXQgZGVzY3JpcHRpb25zIGludG8gdGhlIG5pY2sgZmllbGQgb2YgYSBHRW51bVZhbHVlOiBpdCdzIG5vdAoJICBtZWFudCBmb3IgdGhhdCBhbmQgc29tZSBsYW5ndWFnZSBiaW5kaW5ncyByZWx5IG9uIHRoZSBuaWNrIGZpZWxkIHRvCgkgIGNvbnN0cnVjdCBjb25zdGFudHMgYW5kIHRoZSBsaWtlLiBGaXhlcyAjNTI2NzA1LgoKMjAwOC0wNC0wNyAxMDo0ODo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1lcmdlIG90aGVyIGNoYW5nZXMgZnJvbSAwLjEwLjE5IHJlbGVhc2UgYnJhbmNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBORVdTOgoJICAqIFJFTEVBU0U6CgkgICogZ3N0cmVhbWVyLmRvYXA6CgkgIE1lcmdlIG90aGVyIGNoYW5nZXMgZnJvbSAwLjEwLjE5IHJlbGVhc2UgYnJhbmNoLgoKMjAwOC0wNC0wNiAwODo1NDo0NyArMDAwMCAgRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGdtYWlsLmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQWN0dWFsbHkgYnVpbGQgZGxscyB3aGVuIGNyb3NzLWNvbXBpbGluZyB3aXRoIG1pbmd3MzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGFtaWVuIExlc3BpYXUgPGRhbWllbiBkb3QgbGVzcGlhdSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQWN0dWFsbHkgYnVpbGQgZGxscyB3aGVuIGNyb3NzLWNvbXBpbGluZyB3aXRoIG1pbmd3MzIuCgkgIEZpeGVzIGJ1ZyAjNTI2MjQ3LgoKMjAwOC0wNC0wNSAxMDo1ODoxMSArMDAwMCAgRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rwb2xsLmM6IEZpeCBjb21waWxhdGlvbiBvZiBHc3RQb2xsIHdpdGggbWluZ3czMi4gRml4ZXMgYnVnICM1MjYyMzYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRGFtaWVuIExlc3BpYXUgPGRhbWllbiBkb3QgbGVzcGlhdSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3Rwb2xsLmM6CgkgIEZpeCBjb21waWxhdGlvbiBvZiBHc3RQb2xsIHdpdGggbWluZ3czMi4gRml4ZXMgYnVnICM1MjYyMzYuCgoyMDA4LTA0LTA0IDEzOjQzOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgRml4IHR5cG8uCgkgICogZG9jcy9kZXNpZ24vcGFydC1idWZmZXJpbmcudHh0OgoJICBVcGRhdGUgZGVzaWduIGRvY3Mgd2l0aCBtb3JlIGJ1ZmZlcmluZyBpZGVhcy4KCjIwMDgtMDQtMDMgMjE6MTU6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEJ1bXAgdmVyc2lvbiB0byAwLjEwLjE5LjEgYWZ0ZXIgdGhlIHVuc2NoZWR1bGVkIDAuMTAuMTkgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCdW1wIHZlcnNpb24gdG8gMC4xMC4xOS4xIGFmdGVyIHRoZSB1bnNjaGVkdWxlZCAwLjEwLjE5IHJlbGVhc2UuCgoyMDA4LTA0LTAzIDE2OjQ1OjAyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgdG8gd29yayB3aXRoIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIHRvIHdvcmsgd2l0aCBkb2NzCgoyMDA4LTA0LTAzIDE0OjQ5OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFJldmVydCBwYXJ0IHRoYXQgYmVsb25ncyB0byB0aGUgcHJlc2V0IHBhdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJldmVydCBwYXJ0IHRoYXQgYmVsb25ncyB0byB0aGUgcHJlc2V0IHBhdGNoLgoKMjAwOC0wNC0wMyAxNDoyNjo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBBZGQgcW91dGVzIHRvIHRoZSBkZWZpbmUuIEZpeGVzICMgNTI1OTYxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFkZCBxb3V0ZXMgdG8gdGhlIGRlZmluZS4gRml4ZXMgIyA1MjU5NjEuCgoyMDA4LTA0LTAzIDA3OjUyOjMxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2luZGV4ZXJzLzogVXNlIEdTbGljZSB3aGVuIHBvc3NpYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoX2ZpbGVfaW5kZXhfaWRfZnJlZSksCgkgIChnc3RfZmlsZV9pbmRleF9sb2FkKSwgKGdzdF9maWxlX2luZGV4X2FkZF9pZCksCgkgIChnc3RfZmlsZV9pbmRleF9nZXRfYXNzb2NfZW50cnkpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzogKGdzdF9tZW1faW5kZXhfZnJlZV9mb3JtYXQpLAoJICAoZ3N0X21lbV9pbmRleF9mcmVlX2lkKSwgKGdzdF9tZW1faW5kZXhfYWRkX2lkKSwKCSAgKGdzdF9tZW1faW5kZXhfaW5kZXhfZm9ybWF0KToKCSAgVXNlIEdTbGljZSB3aGVuIHBvc3NpYmxlLgoKMjAwOC0wNC0wMiAxNzo0NTowOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOiBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW5nIHRoZSBjb250cm9sIHBvaW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfZnJlZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJuYWwpOgoJICBVc2UgR1NsaWNlIGZvciBhbGxvY2F0aW5nIHRoZSBjb250cm9sIHBvaW50cy4KCjIwMDgtMDQtMDIgMTc6MjE6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBDbGVhbnVwIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBDbGVhbnVwIHByb3BlcnRpZXMuCgkgIEZpeCBwYWQgbGVhayB3aGVuIHBlZXIgcXVlcnkgZmFpbHMuCgkgIFdlIGNhbiBzdGlsbCB0eXBlZmluZCB3aGVuIHRoZSBwZWVyIHJldHVybnMgLTEuCgkgIEFkZCBwcm9wZXJ0eSB0byBmb3JjZSBjYXBzIGFuZCBieXBhc3MgdHlwZWZpbmRpbmcuIFRoaXMgd2lsbCBiZSB1c2VkIGluCgkgIHVyaWRlY29kZWJpbi4KCSAgQVBJOjpmb3JjZS1jYXBzCgoyMDA4LTA0LTAxIDEzOjU1OjIwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBjb25maWd1cmUuYWM6IFJlcXVpcmUgR0xpYiAyLjEyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlcXVpcmUgR0xpYiAyLjEyLgoJICAqIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX25ld19lbXB0eSksIChfZ3N0X2NhcHNfZnJlZSk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKF9nc3RfY2xvY2tfaWRfZnJlZSk6CgkgIFVuY29uZGl0aW9uYWxseSB1c2UgR1NsaWNlIGZvciBhbGxvY2F0aW9uLgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF9uZXcpLCAoZ3N0X3BvbGxfZnJlZSk6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X25ldyksIChnc3Rfc2VnbWVudF9mcmVlKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX2VtcHR5X25ld193aXRoX3NpemUpLAoJICAoZ3N0X3N0cnVjdHVyZV9mcmVlKToKCSAgVXNlIEdTbGljZSBmb3IgYWxsb2NhdGlvbi4KCjIwMDgtMDQtMDEgMTM6NDg6NTkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS86IFJlcXVpcmUgYSBuZXcgZW5vdWdoIGZsZXggYW5kIGJpc29uIGFuZCByZW1vdmUgdGhlIHBhcnNlciBoYWNrcyB0byB1c2UgYSBwcmUtcmVnZW5lcmF0ZWQgdmVyc2lvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuYzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmg6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOgoJICBSZXF1aXJlIGEgbmV3IGVub3VnaCBmbGV4IGFuZCBiaXNvbiBhbmQgcmVtb3ZlIHRoZSBwYXJzZXIgaGFja3MgdG8gdXNlCgkgIGEgcHJlLXJlZ2VuZXJhdGVkIHZlcnNpb24uCgoyMDA4LTA0LTAxIDEwOjI1OjM1ICswMDAwICBKYXNvbiBaaGFvIDxFMzQyM0NAbW90b3JvbGEuY29tPgoKCSAgY29uZmlndXJlLmFjOiBBZGQgYSBjb25maWd1cmUgc3dpdGNoIHRvIGRpc2FibGUgb3B0aW9uIHBhcnNpbmcgaW4gZ3N0X2luaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTA0LTAxICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICBwYXRjaCBieTogSmFzb24gWmhhbyA8RTM0MjNDQG1vdG9yb2xhLmNvbT4KCSAgKiBjb25maWd1cmUuYWM6IEFkZCBhIGNvbmZpZ3VyZSBzd2l0Y2ggdG8gZGlzYWJsZSBvcHRpb24gcGFyc2luZwoJICBpbiBnc3RfaW5pdC4KCSAgRml4ZXMgIzUyMjg4Mi4KCjIwMDgtMDMtMzEgMTM6NDc6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1hY09TIGhhcyBwbHVnaW5zIHVuZGVyIC5zbyBvciB1bmRlciAuZHlsaWIuIEFkZCBkZXRlY3Rpb24gZm9yIE1hY09TIGFuZCBoYW5kbGUgdGhpcyBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIE1hY09TIGhhcyBwbHVnaW5zIHVuZGVyIC5zbyBvciB1bmRlciAuZHlsaWIuIEFkZCBkZXRlY3Rpb24gZm9yIE1hY09TCgkgIGFuZCBoYW5kbGUgdGhpcyBjYXNlLgoJICAqIGdzdC9nc3QuYzoKCSAgQWRkIGEgY29tbWVudCBoZXJlIGRlc2NyaWJpbmcsIHdoeSB3ZSBzdGF0IGVhY2ggcGx1Z2luIGFuZCBub3QgdHJ5IHRvCgkgIGJlIHNtYXJ0LgoKMjAwOC0wMy0zMSAxMDoyMTo1NyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEFsc28gdW5zZXQgdGhlIEdBUCBmbGFnIG9uIGJ1ZmZlcnMgaWYgd2UncmUgd29ya2luZyBpbnBsYWNlIGJ1dCB0aGUgZWxlbWVudCBpcyBub3QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIEFsc28gdW5zZXQgdGhlIEdBUCBmbGFnIG9uIGJ1ZmZlcnMgaWYgd2UncmUgd29ya2luZyBpbnBsYWNlIGJ1dAoJICB0aGUgZWxlbWVudCBpcyBub3QgR0FQLWF3YXJlLgoJICBNYXJrIGEgY29tbWVudCBhcyBGSVhNRSAwLjExLgoKMjAwOC0wMy0zMSAwODozMjoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdC5jOiBGaXggdHlwZSBpbiBsb2cgbWVzc2FnZSBhbmQgYWRkIG9uZSB0byBlYXNlIHNlZWluZyBob3cgbG9uZyByZWdpc3RyeSBjYWNoZSB2ZXJpZmljYXRpb24gdGFrZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRml4IHR5cGUgaW4gbG9nIG1lc3NhZ2UgYW5kIGFkZCBvbmUgdG8gZWFzZSBzZWVpbmcgaG93IGxvbmcgcmVnaXN0cnkKCSAgY2FjaGUgdmVyaWZpY2F0aW9uIHRha2VzLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBPbmx5IHRlc3QgcGx1Z2luIGZpbGVuYW1lcyBhZ2FpbnN0IEdfTU9EVUxFX1NVRkZJWC4KCjIwMDgtMDMtMzEgMDc6NDk6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IEltcHJvdmUgaGFuZGxpbmcgZ2hvc3QvcHJveHkgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgSW1wcm92ZSBoYW5kbGluZyBnaG9zdC9wcm94eSBwYWRzLgoKMjAwOC0wMy0yNyAxOToxMzo0NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRXhwb3NlIG1hY3JvIHRvIGRvY3MgYW5kIGZpeCBsaW5rIHRvIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEV4cG9zZSBtYWNybyB0byBkb2NzIGFuZCBmaXggbGluayB0byBpdC4KCjIwMDgtMDMtMjcgMTU6MjM6NTUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogV2hlbiBjYWxjdWxhdGluZyBHRFAgYm9keSBDUkMsIHVzZSB0aGUgY29ycmVjdCBwb2ludGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnRfMV8wKToKCSAgV2hlbiBjYWxjdWxhdGluZyBHRFAgYm9keSBDUkMsIHVzZSB0aGUgY29ycmVjdCBwb2ludGVyLgoJICBGaXhlcyBwYXJ0IG9mICM1MjI0MDEuCgoyMDA4LTAzLTI0IDE2OjU2OjM2ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBJZGVudGl0eSBpcyBub3QgYWx3YXlzIGEgcGFzc3Rocm91Z2ggZWxlbWVudCwgaXQgY2FuIG1vZGlmeSB0aGUgYnVmZmVyIHRpbWVzdGFtcHMgd2hlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfcHJlcGFyZV9vdXRwdXRfYnVmZmVyKToKCSAgSWRlbnRpdHkgaXMgbm90IGFsd2F5cyBhIHBhc3N0aHJvdWdoIGVsZW1lbnQsIGl0IGNhbiBtb2RpZnkgdGhlIGJ1ZmZlcgoJICB0aW1lc3RhbXBzIHdoZW4gaXQgaGFzIGEgZGF0YXJhdGUgYW5kIG9wZXJhdGVzIGluIHNpbmdsZS1zZWdtZW50IG1vZGUuCgkgIFdlIHRoZXJlZm9yZSBtYWtlIGl0IGFuIGluX3BsYWNlIGZpbHRlciB3aXRoIGEgY3VzdG9tIGJ1ZmZlciBwcmVwYXJlCgkgIGZ1bmN0aW9uIHRoYXQgY29uZGl0aW9uYWxseSBtYWtlcyB0aGUgaW5wdXQgYnVmZmVyIG1ldGFkYXRhIHdyaXRhYmxlCgkgIHdoZW4gbmVlZGVkLiAgRml4ZXMgIzUyMzk4NS4KCjIwMDgtMDMtMjQgMTY6NDQ6MjUgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLiBGaXhlcyAjNTIzOTc4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXhlcy4gRml4ZXMgIzUyMzk3OC4KCjIwMDgtMDMtMjQgMTY6MzE6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogQWxzbyByZXRyeSBvdXIgcG9sbF93YWl0IHdoZW4gd2UgZ2V0IEVBR0FJTi4gRml4ZXMgIzUyNDA0MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3JlbmRlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBBbHNvIHJldHJ5IG91ciBwb2xsX3dhaXQgd2hlbiB3ZSBnZXQgRUFHQUlOLiBGaXhlcyAjNTI0MDQxLgoKMjAwOC0wMy0yNCAxMDozODozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBXaGVuIHRyeWluZyB0byBtYWtlIHJvb20gaW4gdGhlIHF1ZXVlLCBidW1wIHRoZSBtYXggYWxsb3dlZCBidWZmZXJzIGJpZ2dlciB0aGFuIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYik6CgkgIFdoZW4gdHJ5aW5nIHRvIG1ha2Ugcm9vbSBpbiB0aGUgcXVldWUsIGJ1bXAgdGhlIG1heCBhbGxvd2VkIGJ1ZmZlcnMKCSAgYmlnZ2VyIHRoYW4gdGhlIGN1cnJlbnQgYW1vdW50IG9mIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlLiB0aGlzIGZpeGVzIHNvbWUKCSAgbmFzdHkgZGVhZGxvY2tzIGluIG11bHRpcXVldWUgd2hlbiBkeW5hbWljYWxseSBjaGFuZ2luZyB0aGUgbGltaXRzIG9mCgkgIHRoZSBxdWV1ZS4KCjIwMDgtMDMtMjQgMTA6MzM6NDEgKzAwMDAgIEpvc8OpIEFsYnVycXVlcnF1ZSA8amFhbGJ1cnF1QHN2bi5nbm9tZS5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy4qOiBDb25zdGlmeSB0aGUgZmllbGQgZ2NoYXIgKiBwYXJhbXMgaW4gc2V0X3NpbXBsZSBhbmQgZnJpZW5kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiAgSm9zw6kgQWxidXJxdWVycXVlIDxqYWFsYnVycXUgYXQgc3ZuIGRvdCBnbm9tZSBkb3Qgb3JnPgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zZXRfc2ltcGxlKSwKCSAgKGdzdF9jYXBzX3NldF9zaW1wbGVfdmFsaXN0KSwgKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgQ29uc3RpZnkgdGhlIGZpZWxkIGdjaGFyICogcGFyYW1zIGluIHNldF9zaW1wbGUgYW5kIGZyaWVuZHMuCgkgIEZpeGVzICM1MjIzMjYuCgoyMDA4LTAzLTI0IDEwOjI5OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFRyYW5zZm9ybSBhIEdzdE9iamVjdCB0byBhIG1vcmUgbWVhbmluZ2Z1bGwgc3RyaW5nIHRoYXQgaW5jbHVkZXMgdGhlIG9iamVjdCB0eXBlIGluIGFkZGl0aW9uIHRvIGl0cyBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9vYmplY3Rfc3RyaW5nKToKCSAgVHJhbnNmb3JtIGEgR3N0T2JqZWN0IHRvIGEgbW9yZSBtZWFuaW5nZnVsbCBzdHJpbmcgdGhhdCBpbmNsdWRlcyB0aGUKCSAgb2JqZWN0IHR5cGUgaW4gYWRkaXRpb24gdG8gaXRzIG5hbWUuCgoyMDA4LTAzLTIzIDE1OjE3OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2VMb2c6IENoYW5nZUxvZyBzdXJnZXJ5IHRvIGFkZCBidWdudW1iZXIgdG8gY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5IHRvIGFkZCBidWdudW1iZXIgdG8gY29tbWl0LgoKMjAwOC0wMy0yMyAxNDoyNDo0OCArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X2dhcF9hd2FyZSk6IEZpeCBjb25mdXNpbmcgZG9jdW1lbnRhdGlvbi4KCjIwMDgtMDMtMjMgMTE6NDA6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBSZW5hbWUgY29uc3RhbnQgZXZlcnl3aGVyZSBhbmQgZG9uJ3QgZm9yZ2V0IG9uZSBvY2N1cmVuY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSk6CgkgIFJlbmFtZSBjb25zdGFudCBldmVyeXdoZXJlIGFuZCBkb24ndCBmb3JnZXQgb25lIG9jY3VyZW5jZS4KCjIwMDgtMDMtMjMgMTE6Mjk6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBBbGlnbiBtZW1vcnkgdG8gdGhlIHBvaW50ZXIgc2l6ZSBldmVuIGlmIHRoZSBhcmNoaXRlY3R1cmUgYWxsb3dzIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzLiBVbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGUpOgoJICBBbGlnbiBtZW1vcnkgdG8gdGhlIHBvaW50ZXIgc2l6ZSBldmVuIGlmIHRoZSBhcmNoaXRlY3R1cmUgYWxsb3dzCgkgIHVuYWxpZ25lZCBtZW1vcnkgYWNjZXNzLiBVbmFsaWduZWQgbWVtb3J5IGFjY2VzcyB1c3VhbGx5IGNvbWVzIHdpdGgKCSAgcGVyZm9ybWFuY2UgcGVuYWxpdHkuCgoyMDA4LTAzLTIzIDExOjIzOjMwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgaW5zdGVhZCBvZiBhbHdheXMgMzIgYml0LiBGaXhlcyB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzc2VzIG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKToKCSAgQWxpZ24gbWVtb3J5IHRvIHRoZSBwb2ludGVyIHNpemUgaW5zdGVhZCBvZiBhbHdheXMgMzIgYml0LiBGaXhlcwoJICB1bmFsaWduZWQgbWVtb3J5IGFjY2Vzc2VzIG9uIGlhNjQgYW5kIGZyaWVuZHMuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIEJ1bXAgYmluYXJ5IHJlZ2lzdHJ5IGZvcm1hdCB2ZXJzaW9uIGZvciB0aGlzIGFzIGl0IGNoYW5nZXMgdGhlCgkgIGZvcm1hdCBvbiB0aG9zZSBhcmNoaXRlY3R1cmVzIHRoYXQgZG9uJ3QgaGF2ZSB1bmFsaWduZWQgYWNjZXNzCgkgIGFuZCA2NCBiaXQgcG9pbnRlcnMuCgoyMDA4LTAzLTIyIDE0OjU2OjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBEZWZpbmUgR19QQVJBTV9TVEFUSUNfU1RSSU5HUyBpZiBpdCdzIHVuZGVmaW5lZCAoR0xpYiA8IDIuMTMuMCkgYW5kIHVzZSBpdCBldmVyeXdoZXJlIGZvciBHUGFyYW1TcGVjcyB0aGF0IHVzZSBzdGF0aWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZHBhcmFtcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLXNvdXJjZS54bWw6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiAoZ3N0X2RhdGFfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKF9nc3RfY2hlY2tfZmF1bHRfaGFuZGxlcl9yZXN0b3JlKSwKCSAgKF9nc3RfY2hlY2tfZmF1bHRfaGFuZGxlcl9zaWdoYW5kbGVyKSwKCSAgKF9nc3RfY2hlY2tfZmF1bHRfaGFuZGxlcl9zZXR1cCksIChnc3RfY2hlY2tfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6CgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfY2xhc3NfaW5pdCk6CgkgIERlZmluZSBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIGlmIGl0J3MgdW5kZWZpbmVkIChHTGliIDwgMi4xMy4wKSBhbmQKCSAgdXNlIGl0IGV2ZXJ5d2hlcmUgZm9yIEdQYXJhbVNwZWNzIHRoYXQgdXNlIHN0YXRpYyBzdHJpbmdzIChpLmUuIGFsbCkuCgkgIFRoaXMgZ2l2ZXMgdXMgbGVzcyBtZW1vcnkgdXNhZ2UsIGZld2VyIGFsbG9jYXRpb25zIGFuZCB0aHVzIGxlc3MKCSAgbWVtb3J5IGRlZnJhZ21lbnRhdGlvbi4gRml4ZXMgYnVnICM1MjM4MDYuCgoyMDA4LTAzLTIyIDE0OjUxOjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBHU1RfSVNfUEFSQU1fU1BFQ19NSU5JX09CSkVDVCwgR1NUX1BBUkFNX1NQRUNfTUlOSV9PQkpFQ1QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV9kdXBfbWluaV9vYmplY3QpLAoJICAoZ3N0X3BhcmFtX3NwZWNfbWluaV9vYmplY3QpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQVBJOiBBZGQgR1NUX0lTX1BBUkFNX1NQRUNfTUlOSV9PQkpFQ1QsIEdTVF9QQVJBTV9TUEVDX01JTklfT0JKRUNUCgkgIEdTVF9UWVBFX1BBUkFNX01JTklfT0JKRUNUIGFuZCBnc3RfdmFsdWVfZHVwX21pbmlfb2JqZWN0LiBBbHNvIG1vdmUKCSAgR3N0UGFyYW1TcGVjTWluaU9iamVjdCBpbnRvIGEgcHVibGljIGhlYWRlciBmb3IgdGhpcy4KCSAgVGhpcyBtYWtlIEdzdE1pbmlPYmplY3QgYSBiaXQgbW9yZSBjb25zaXN0ZW50IHdpdGggR09iamVjdCBhbmQgbWFrZXMKCSAgaXQgcG9zc2libGUgdG8gZXh0ZW5kIHRoZSBwYXJhbSBzcGVjcy4KCSAgZ3N0X3ZhbHVlX2R1cF9taW5pX29iamVjdCBpcyBtYWlubHkgdXNlZnVsIGZvciBzZXRfcHJvcGVydHkgbWV0aG9kcy4KCSAgRml4ZXMgYnVnICM1MjM3OTguCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgUHJpbnQgc29tZXRoaW5nIHVzZWZ1bCBmb3IgR3N0TWluaU9iamVjdCBwcm9wZXJ0aWVzIGFuZCBub3QganVzdAoJICAidW5rbm93biB0eXBlIi4KCjIwMDgtMDMtMjEgMTY6MTE6NTEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIENhbGwgdGhlIHZlcnNpb24gR1NUX01BR0lDX0JJTkFSWV9WRVJTSU9OX1NUUiB0byBiZSBtb3JlIGNvbnNpc3RlbnQgYW5kIGFkZCBpdCB0byB0aGUgKHByaXZhdGUgcGFydCkgb2YgdGhlIGRvY3MgdG8gZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9pbml0aWFsaXplX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBDYWxsIHRoZSB2ZXJzaW9uIEdTVF9NQUdJQ19CSU5BUllfVkVSU0lPTl9TVFIgdG8gYmUgbW9yZSBjb25zaXN0ZW50CgkgIGFuZCBhZGQgaXQgdG8gdGhlIChwcml2YXRlIHBhcnQpIG9mIHRoZSBkb2NzIHRvIGZpeCB0aGUgYnVpbGQuCgoyMDA4LTAzLTIxIDE1OjUyOjE0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogRG9uJ3QgdXNlIEdTVF9NQUpPUk1JTk9SIGZvciB0aGUgYmluYXJ5IHJlZ2lzdHJ5IHZlcnNpb24uIEluc3RlYWQgaGFyZGNvZGUgYSB2YWx1ZSB0aGF0IG11c3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9jaGVja19tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBEb24ndCB1c2UgR1NUX01BSk9STUlOT1IgZm9yIHRoZSBiaW5hcnkgcmVnaXN0cnkgdmVyc2lvbi4gSW5zdGVhZAoJICBoYXJkY29kZSBhIHZhbHVlIHRoYXQgbXVzdCBiZSBjaGFuZ2VkIHdoZW5ldmVyIHRoZSBmb3JtYXQgY2hhbmdlcwoJICBpbiBhbiBpbmNvbXBhdGlibGUgd2F5LgoJICBBbHNvIGRvbid0IEdTVF9FUlJPUiB3aGVuIHRoZXJlIGlzIGEgdmVyc2lvbiBtaXNtYXRjaCwganVzdAoJICByZWdlbmVyYXRlIHRoZSByZWdpc3RyeSBzaWxlbnRseS4KCjIwMDgtMDMtMjEgMDA6MzU6MTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIGRldmVsb3BtZW50IC0gMC4xMC4xOC4xCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBkZXZlbG9wbWVudCAtIDAuMTAuMTguMQoKPT09IHJlbGVhc2UgMC4xMC4xOCA9PT0KCjIwMDgtMDMtMjEgMDA6MjA6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTgKCjIwMDgtMDMtMjAgMjM6MjY6MDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZS5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGEucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZXMucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaHUucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3BsLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vcncucG86CgkqIHBvL3NrLnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDgtMDMtMTggMTI6MTc6NTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgMC4xMC4xNy40IHByZS1yZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIDAuMTAuMTcuNCBwcmUtcmVsZWFzZQoKMjAwOC0wMy0xOCAxMDo1NDo1MiArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIEFkZCBuZXcgZnVuY3Rpb24gZ3N0X3BvbGxfZmRfaWdub3JlZCgpIGZvciBpbXByb3ZlZCBXaW5kb3dzIGNvbXBhdGliaWxpdHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzCgkgIDxvbGUgZG90IGFuZHJlIGRvdCByYXZuYXMgYXQgdGFuZGJlcmcgZG90IGNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF93aW5zb2NrX2Vycm9yX3RvX2Vycm5vKSwKCSAgKGdzdF9wb2xsX3VwZGF0ZV93aW5zb2NrX2V2ZW50X21hc2spLAoJICAoZ3N0X3BvbGxfcHJlcGFyZV93aW5zb2NrX2FjdGl2ZV9zZXRzKSwKCSAgKGdzdF9wb2xsX2NvbGxlY3Rfd2luc29ja19ldmVudHMpLCAoZ3N0X3BvbGxfbmV3KSwgKGdzdF9wb2xsX2ZyZWUpLAoJICAoZ3N0X3BvbGxfYWRkX2ZkX3VubG9ja2VkKSwgKGdzdF9wb2xsX2ZkX2N0bF93cml0ZSksCgkgIChnc3RfcG9sbF9mZF9jdGxfcmVhZF91bmxvY2tlZCksIChnc3RfcG9sbF9mZF9pZ25vcmVkKSwKCSAgKGdzdF9wb2xsX2ZkX2hhc19lcnJvciksIChnc3RfcG9sbF9mZF9jYW5fcmVhZF91bmxvY2tlZCksCgkgIChnc3RfcG9sbF9jaGVja19jdHJsX2NvbW1hbmRzKSwgKGdzdF9wb2xsX3dhaXQpOgoJICAqIGdzdC9nc3Rwb2xsLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZnVuY3Rpb24gZ3N0X3BvbGxfZmRfaWdub3JlZCgpIGZvciBpbXByb3ZlZCBXaW5kb3dzCgkgIGNvbXBhdGliaWxpdHkuCgkgIFZhcmlvdXMgbWlub3IgZml4ZXMgYW5kIGNsZWFudXBzLiBTZWUgIzUyMDgwOC4KCjIwMDgtMDMtMTcgMTA6MjE6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5kZXguKjogRG9uJ3QgZnJlZSBrZXkgc3RyaW5ncyB3aGljaCB3ZSBkb24ndCBvd24uIEZpeGVzIGNyYXNoIGluIGdzdF9pbmRleF9lbnRyeV9mcmVlKCkgKCM1MjI3NDEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9lbnRyeV9mcmVlKToKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgRG9uJ3QgZnJlZSBrZXkgc3RyaW5ncyB3aGljaCB3ZSBkb24ndCBvd24uIEZpeGVzIGNyYXNoIGluCgkgIGdzdF9pbmRleF9lbnRyeV9mcmVlKCkgKCM1MjI3NDEpLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmRleC5jOiAodGVzdF9pbmRleF9lbnRyaWVzKSwKCSAgKGdzdF9pbmRleF9zdWl0ZSksIChnc3RfaW5kZXgpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA4LTAzLTExIDE0OjA5OjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogUmVtb3ZlIHN5bWJvbHMgdGhhdCB3ZXJlIHJlbW92ZWQgcmVjZW50bHkuIEZpeGVzIGJ1ZyAjNTIxNzQwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgUmVtb3ZlIHN5bWJvbHMgdGhhdCB3ZXJlIHJlbW92ZWQgcmVjZW50bHkuIEZpeGVzIGJ1ZyAjNTIxNzQwLgoKMjAwOC0wMy0xMSAwMDoyNDoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICAwLjEwLjE3LjMgcHJlLXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4xNy4zIHByZS1yZWxlYXNlCgoyMDA4LTAzLTExIDAwOjIzOjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogUmVsZWFzZSAwLjEwLjE3LjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZWxlYXNlIDAuMTAuMTcuMwoKMjAwOC0wMy0wNyAxNTozOTo0NSArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIFJlbW92ZSBHc3RQb2xsTW9kZSBmcm9tIHRoZSBBUEksIGl0IGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gbGV0IHRoZSBhcHBsaWNhdGlvbiBjb250cm9sIHRoaXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzCgkgIDxvbGUgZG90IGFuZHJlIGRvdCByYXZuYXMgYXQgdGFuZGJlcmcgZG90IGNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rwb2xsLmM6IChmaW5kX2luZGV4KSwgKGdzdF9wb2xsX2ZyZWVfd2luc29ja19ldmVudCksCgkgIChnc3RfcG9sbF91cGRhdGVfd2luc29ja19ldmVudF9tYXNrKSwgKGdzdF9wb2xsX25ldyksCgkgIChnc3RfcG9sbF9mcmVlKSwgKGdzdF9wb2xsX2ZkX2luaXQpLCAoZ3N0X3BvbGxfYWRkX2ZkX3VubG9ja2VkKSwKCSAgKGdzdF9wb2xsX3JlbW92ZV9mZCksIChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLAoJICAoZ3N0X3BvbGxfZmRfY3RsX3JlYWRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfaGFzX2Nsb3NlZCksCgkgIChnc3RfcG9sbF9mZF9oYXNfZXJyb3IpLCAoZ3N0X3BvbGxfZmRfY2FuX3JlYWRfdW5sb2NrZWQpLAoJICAoZ3N0X3BvbGxfZmRfY2FuX3dyaXRlKSwgKGdzdF9wb2xsX3dhaXQpLAoJICAoZ3N0X3BvbGxfc2V0X2NvbnRyb2xsYWJsZSksIChnc3RfcG9sbF9yZXN0YXJ0KSwKCSAgKGdzdF9wb2xsX3NldF9mbHVzaGluZyk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0YXJ0KSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19zdGFydCk6CgkgICogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6IChtYWluKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BvbGxfc3VpdGUpOgoJICBSZW1vdmUgR3N0UG9sbE1vZGUgZnJvbSB0aGUgQVBJLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGxldCB0aGUKCSAgYXBwbGljYXRpb24gY29udHJvbCB0aGlzLgoJICBBZGQgc3VwcG9ydCBmb3IgV2luMzIuCgkgIEZpeCB0aGUgdGVzdHN1aXRlLiBGaXhlcyAjNTIwNjcxLgoKMjAwOC0wMy0wNyAxMzoxOToxMiArMDAwMCAgT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBJbmNsdWRlIGlvLmggZm9yIHdyaXRlKCkgYW5kIGNsb3NlKCkgd2hlbiBidWlsZGluZyB3aXRoIE1TVkMuIEZpeGVzIGJ1ZyAjNTIwODc3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcwoJICA8b2xlIGRvdCBhbmRyZSBkb3QgcmF2bmFzIGF0IHRhbmRiZXJnIGRvdCBjb20+CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6CgkgIEluY2x1ZGUgaW8uaCBmb3Igd3JpdGUoKSBhbmQgY2xvc2UoKSB3aGVuIGJ1aWxkaW5nIHdpdGggTVNWQy4gRml4ZXMKCSAgYnVnICM1MjA4NzcuCgoyMDA4LTAzLTA3IDExOjEyOjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3ZlIHJlZ2lzdHJ5IGJhY2tlbmQgQVBJIHRvIHByaXZhdGUgaGVhZGVycyB3aGVyZSB3ZSBjYW4uIEFkZCBmaXhtZS0wLjExIGNvbW1lbnRzIGZvciB0aGUgb3RoZXJzLiBBZGQgc3R1YnMgZm9yIHRoZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIE1vdmUgcmVnaXN0cnkgYmFja2VuZCBBUEkgdG8gcHJpdmF0ZSBoZWFkZXJzIHdoZXJlIHdlIGNhbi4gQWRkCgkgIGZpeG1lLTAuMTEgY29tbWVudHMgZm9yIHRoZSBvdGhlcnMuIEFkZCBzdHVicyBmb3IgdGhlIHhtbCBiYWNrZW5kIHdoZW4KCSAgdXNpbmcgdGhlIGJpbmFyeSB0byBlbnN1cmUgdGhleSBmdW5jdGlvbnMgZXhpc3RzICh0aGV5IHNob3VsZCBub3QgYmUKCSAgdXNlZCB0aG91Z2gpLiBGaXhlcyAjNTIwNzU2LgoKMjAwOC0wMy0wNCAwMDoxNDo1MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICAwLjEwLjE3LjIgcHJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC4xNy4yIHByZWxlYXNlCgoyMDA4LTAzLTAzIDE4OjQyOjA0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgU3dpdGNoIHRvIHVzaW5nIHBvcnRhYmwgZ3NpemUvZ3NzaXplIGluc3RlYWQgb2Ygc2l6ZV90L3NzaXplX3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfc2F2ZSk6CgkgICogZ3N0L2dzdHVyaS5jOiAodW5lc2NhcGVfc3RyaW5nKSwgKGdzdF91cmlfaGFzX3Byb3RvY29sKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbiksCgkgIChnc3RfZmlsZV9zcmNfbWFwX3NtYWxsX3JlZ2lvbiksIChnc3RfZmlsZV9zcmNfY3JlYXRlX21tYXApOgoJICBTd2l0Y2ggdG8gdXNpbmcgcG9ydGFibCBnc2l6ZS9nc3NpemUgaW5zdGVhZCBvZiBzaXplX3Qvc3NpemVfdAoJICBGaXhlcyAjNTIwMTUyCgoyMDA4LTAzLTAzIDE4OjE0OjMzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogSW1wb3J0IGdzdF9wcml2YXRlLmggYmVmb3JlIGFueSBvdGhlciBoZWFkZXIgdGhhdCBtaWdodCBpbmNsdWRlIG90aGVyIGdsaWIgaGVhZGVycy4gVGhpcyBmaXhlcyB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIEltcG9ydCBnc3RfcHJpdmF0ZS5oIGJlZm9yZSBhbnkgb3RoZXIgaGVhZGVyIHRoYXQgbWlnaHQgaW5jbHVkZSBvdGhlcgoJICBnbGliIGhlYWRlcnMuIFRoaXMgZml4ZXMgdGhlIGJ1aWxkIG9uIHdpbmRvd3MgdXNpbmcgbmF0aXZlIGNvbXBpbGVycy4KCjIwMDgtMDMtMDMgMTQ6NDg6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6IEFkZCBoZXJlIHRvbywganVzdCBmb3IgY29tcGxldGVuZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6CgkgIEFkZCBoZXJlIHRvbywganVzdCBmb3IgY29tcGxldGVuZXNzLgoKMjAwOC0wMy0wMyAxNDo0MzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEZpeCBicm9rZW4gdXNlIG9mIGNvbmZpZy5oLWRlZmluZWQgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZSBpbiBhIHB1YmxpYyBoZWFkZXIgZmlsZS4gQWRkIGEgY29ycmVzcG9uZGluZyBkZWZpbmUgdG8gZ3N0Yy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBGaXggYnJva2VuIHVzZSBvZiBjb25maWcuaC1kZWZpbmVkIHByZXByb2Nlc3NvciBkaXJlY3RpdmUgaW4gYSBwdWJsaWMKCSAgaGVhZGVyIGZpbGUuIEFkZCBhIGNvcnJlc3BvbmRpbmcgZGVmaW5lIHRvIGdzdGNvbmZpZy5oLCBzaW5jZSB3ZSBjYW4ndAoJICByZWFsbHkgcmVtb3ZlIHRob3NlIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBmcm9tIHRoZSBoZWFkZXIgZmlsZSBub3cKCSAgKG9yIGNhbiB3ZT8gYW5kIHdoeSBhcmUgdGhleSB0aGVyZSBpbiB0aGUgZmlyc3QgcGxhY2U/KS4KCjIwMDgtMDMtMDMgMTA6MDc6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYyAoR1NUX1NUQVJUX1RFU1QpOiBBZGQgYSBjaGVjayBmb3IgdGhlIG5ldyB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwOC0wMy0wMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmMgKEdTVF9TVEFSVF9URVNUKTogQWRkIGEgY2hlY2sgZm9yCgkgIHRoZSBuZXcgd2FybmluZy4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmMgKGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcpOiBXYXJuIGlmCgkgIHN0cnVjdHVyZV9mcm9tX3N0cmluZyBkaWRuJ3QgY29uc3VtZSB0aGUgd2hvbGUgc3RyaW5nLCBidXQgdGhlCgkgIGNhbGxlciBkaWQgbm90IHByb3ZpZGUgYW4gZW5kIHBvaW50ZXIuCgoyMDA4LTAzLTAxIDExOjIxOjMwICswMDAwICBGYWJyaXppbyBHZW5uYXJpIDxmYWJyaXppby5nZUB0aXNjYWxpLml0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFN0cmluZ3MgYWxsb2NhdGVkIGJ5IGxpYnhtbDIgc2hvdWxkIGJlIGZyZWVkIHdpdGggeG1sRnJlZSgpLCBub3Qgd2l0aCBnX2ZyZWUoKS4gRml4ZXMgaXNzdWVzIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRmFicml6aW8gR2VubmFyaSA8ZmFicml6aW8uZ2UgYXQgdGlzY2FsaSBpdD4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKHJlYWRfc3RyaW5nKSwgKGxvYWRfZmVhdHVyZSk6CgkgIFN0cmluZ3MgYWxsb2NhdGVkIGJ5IGxpYnhtbDIgc2hvdWxkIGJlIGZyZWVkIHdpdGggeG1sRnJlZSgpLCBub3QKCSAgd2l0aCBnX2ZyZWUoKS4gRml4ZXMgaXNzdWVzIG9uIHdpbmRvd3MgaW4gY2VydGFpbiBjb250ZXh0cyAoIzUxOTY5OCkuCgoyMDA4LTAyLTI5IDE4OjM4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGludGVyZmFjZS5jOiBEb24ndCBjcmFzaCBpZiB0aGUgZWxlbWVudCBzdXBwb3J0cyB0aGUgaW50ZXJmYWNlIHF1ZXJpZWQsIGJ1dCBkb2VzIG5vdCBpbXBsZW1lbnQgR3N0SW1wbGVtZW50c0luLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbnRlcmZhY2UuYzogKGdzdF9lbGVtZW50X2ltcGxlbWVudHNfaW50ZXJmYWNlKToKCSAgRG9uJ3QgY3Jhc2ggaWYgdGhlIGVsZW1lbnQgc3VwcG9ydHMgdGhlIGludGVyZmFjZSBxdWVyaWVkLCBidXQgZG9lcwoJICBub3QgaW1wbGVtZW50IEdzdEltcGxlbWVudHNJbnRlcmZhY2UuIEZpeGVzICM1MTk1ODQuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGludGVyZmFjZS5jOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA4LTAyLTI5IDE1OjM5OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICBTbWFsbCBkb2MgdXBkYXRlLgoKMjAwOC0wMi0yOSAxNToyMjozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEltcHJvdmUgc29tZSBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpOgoJICBJbXByb3ZlIHNvbWUgY29tbWVudC4KCSAgVXBkYXRlIHZhcmlhYmxlcyB3aGVyZSBpdCBtYWtlcyBtb3JlIHNlbnNlLgoKMjAwOC0wMi0yOSAxNDoyMzoxNyArMDAwMCAgUmVuZSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgZ3N0L2dzdHVyaS5jOiBVc2UgdGhlIGdldF9wcm90b2NvbHNfZnVsbCB2ZnVuYyBpZiBnZXRfcHJvdG9jb2xzIGlzIE5VTEwuICBGaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2hhbmRsZXJfZ2V0X3Byb3RvY29scyk6CgkgIFVzZSB0aGUgZ2V0X3Byb3RvY29sc19mdWxsIHZmdW5jIGlmIGdldF9wcm90b2NvbHMgaXMgTlVMTC4gIEZpeGVzCgkgIFVSSUhhbmRsZXJzIGltcGxlbWVudGVkIHVzaW5nIGxhbmd1YWdlIGJpbmRpbmdzLgoKMjAwOC0wMi0yOSAxMzo1OToyNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQW5kIGNvcnJlY3QgZXZlbiBtb3JlIHZhbGlkIHNwYXJzZSB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChzZXR1cF9mYWtlc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoc2V0dXBfZmRzcmMpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzaW5rLmM6IChzZXR1cF9maWxlc2luayk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoc2V0dXBfZmlsZXNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKHNldHVwX2lkZW50aXR5KToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKHNldHVwKSwgKHRlYXJkb3duKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChwdWxsX21lc3NhZ2VzKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOiAobXlfZm9vX2luaXQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzogKHRocmVhZF9uYW1lX29iamVjdCksCgkgIChnc3Rfb2JqZWN0X3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2hwcGEuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6IChjcmVhdGVfYW5kX2ZpbGxfYWRhcHRlcik6CgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9ocHBhLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzMyLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF94ODZfNjQuaDoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJICBBbmQgY29ycmVjdCBldmVuIG1vcmUgdmFsaWQgc3BhcnNlIHdhcm5pbmdzLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgZ3N0X3BvbGxfZmRfaW5pdCB0byB0aGUgbGlzdCBvZiBzeW1ib2xzLgoKMjAwOC0wMi0yOSAxMjo0MTozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQ29ycmVjdCBhbGwgcmVsZXZhbnQgd2FybmluZ3MgZm91bmQgYnkgdGhlIHNwYXJzZSBzZW1hbnRpYyBjb2RlIGFuYWx5emVyLiBUaGlzIGluY2x1ZGUgbWFya2luZyBzZXZlcmFsIHN5bWJvbHMgc3RhdGljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlYWRfYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2xvZ19tZXNzYWdlX2Z1bmMpLAoJICAoZ3N0X2NoZWNrX2xvZ19jcml0aWNhbF9mdW5jKSwgKGdzdF9jaGVja19kcm9wX2J1ZmZlcnMpLAoJICAoZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9nZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6IChnc3Rfb2JqZWN0X2NvbnRyb2xfcHJvcGVydGllcyksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sbGVyKSwgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfc291cmNlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9uZXcpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9uZXcpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8wXzIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKF9maWxlX2luZGV4X2lkX3NhdmVfeG1sKSwKCSAgKGdzdF9maWxlX2luZGV4X2FkZF9hc3NvY2lhdGlvbik6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICAqIHRlc3RzL2JlbmNobWFya3MvZ3N0cG9sbHN0cmVzcy5jOiAobWVzc19zb21lX21vcmUpOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChzZXR1cF9xdWV1ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb2xsZWN0cGFkcy5jOiAoc2V0dXApLCAodGVhcmRvd24pLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdWl0ZSk6CgkgICogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtYWtlX3BpcGVsaW5lKToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOgoJICBDb3JyZWN0IGFsbCByZWxldmFudCB3YXJuaW5ncyBmb3VuZCBieSB0aGUgc3BhcnNlIHNlbWFudGljIGNvZGUKCSAgYW5hbHl6ZXIuIFRoaXMgaW5jbHVkZSBtYXJraW5nIHNldmVyYWwgc3ltYm9scyBzdGF0aWMsIHVzaW5nCgkgIE5VTEwgaW5zdGVhZCBvZiAwIGZvciBwb2ludGVycywgbm90IHVzaW5nIHZhcmlhYmxlIHNpemVkIGFycmF5cwoJICBvbiB0aGUgc3RhY2ssIG1vdmluZyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgdG8gdGhlIGJlZ2lubmluZyBvZgoJICBhIGJsb2NrIGFuZCB1c2luZyAiZm9vICh2b2lkKSIgaW5zdGVhZCBvZiAiZm9vICgpIiBmb3IgZGVjbGFyYXRpb25zLgoKMjAwOC0wMi0yOSAxMjowNTo1NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IERvbid0IHJlc2V0IEdzdFBvbGxGRHMsIHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBhdCBhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKToKCSAgRG9uJ3QgcmVzZXQgR3N0UG9sbEZEcywgdGhpcyBpcyBub3QgbmVjZXNzYXJ5IGF0IGFsbC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cG9sbC5jOiAodGVzdF9wb2xsX3dhaXQpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZGVsYXllZF9yZXN0YXJ0KSwgKGRlbGF5ZWRfY29udHJvbCk6CgkgIFVzZSBHU1RfUE9MTF9GRF9JTklULgoKMjAwOC0wMi0yOSAxMTo1Nzo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rwb2xsLio6IEFkZGVkIFNpbmNlIHRhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF9mZF9pbml0KToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICBBZGRlZCBTaW5jZSB0YWdzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua191cGRhdGVfZmQpOgoJICBVc2Ugc29tZSBtb3JlIGluaXQgbWFjcm9zLgoKMjAwOC0wMi0yOSAxMToyMDowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBVc2UgaW5pdCBtYWNyb3MgYW5kIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgIFVzZSBpbml0IG1hY3JvcyBhbmQgZnVuY3Rpb25zLgoKMjAwOC0wMi0yOSAxMTowMDo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCBJTklUIG1hY3JvIGFuZCBfaW5pdCBtZXRob2QgZm9yIGluaXRpYWxpemluZyB0aGUgR3N0UG9sbEZELgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rwb2xsLmM6IChnc3RfcG9sbF9mZF9pbml0KToKCSAgKiBnc3QvZ3N0cG9sbC5oOgoJICBBZGQgSU5JVCBtYWNybyBhbmQgX2luaXQgbWV0aG9kIGZvciBpbml0aWFsaXppbmcgdGhlIEdzdFBvbGxGRC4KCjIwMDgtMDItMjggMTk6NTg6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEluaXRpYWxpemUgc29tZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBhcyBzcG90dGVkIGJ5IHZhbGdyaW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3Npbmtfc3RhcnQpLAoJICAoZ3N0X2ZkX3NpbmtfdXBkYXRlX2ZkKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBvbGwuYzogKHRlc3RfcG9sbF93YWl0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGRlbGF5ZWRfcmVzdGFydCksIChkZWxheWVkX2NvbnRyb2wpOgoJICBJbml0aWFsaXplIHNvbWUgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgYXMgc3BvdHRlZCBieSB2YWxncmluZC4KCjIwMDgtMDItMjggMTU6MjU6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9iZW5jaG1hcmtzLzogQWRkIHBvbGwgc3RyZXNzIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2JlbmNobWFya3MvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvYmVuY2htYXJrcy9nc3Rwb2xsc3RyZXNzLmM6IChtZXNzX3NvbWVfbW9yZSksIChydW5fdGVzdCksCgkgIChtYWluKToKCSAgQWRkIHBvbGwgc3RyZXNzIHRlc3QuCgoyMDA4LTAyLTI4IDEwOjE4OjAyICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBQb3J0IHRvIEdzdFBvbGwuIFNlZSAjNTA1NDE3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcmVuZGVyKSwKCSAgKGdzdF9mZF9zaW5rX3N0YXJ0KSwgKGdzdF9mZF9zaW5rX3N0b3ApLCAoZ3N0X2ZkX3NpbmtfdW5sb2NrKSwKCSAgKGdzdF9mZF9zaW5rX3VubG9ja19zdG9wKSwgKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCksCgkgIChnc3RfZmRfc3JjX3N0YXJ0KSwgKGdzdF9mZF9zcmNfc3RvcCksIChnc3RfZmRfc3JjX3VubG9jayksCgkgIChnc3RfZmRfc3JjX3VubG9ja19zdG9wKSwgKGdzdF9mZF9zcmNfY3JlYXRlKSwKCSAgKGdzdF9mZF9zcmNfdXJpX3NldF91cmkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgUG9ydCB0byBHc3RQb2xsLiBTZWUgIzUwNTQxNy4KCjIwMDgtMDItMjcgMjE6MTg6MzMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgZ3N0X3BvbGxfIHN5bWJvbHMgdG8gd2luMzIgZGVmcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZ3N0X3BvbGxfIHN5bWJvbHMgdG8gd2luMzIgZGVmcy4KCjIwMDgtMDItMjcgMTk6MDE6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBVc2UgYSBwcml2YXRlIHN0dWN0IHRvIG5vdCBicmVhayBBQkkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2luaXQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZG9fc2VsZWN0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19zdGFydCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19zdG9wKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2ZpbmFsaXplKSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0YXJ0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdG9wKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgVXNlIGEgcHJpdmF0ZSBzdHVjdCB0byBub3QgYnJlYWsgQUJJLgoKMjAwOC0wMi0yNyAxODoyNzo1OSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBsaWJzL2dzdC9uZXQvOiBNYXNzaXZlIGNvZGUgcmVtb3ZhbCBhbmQgY2xlYW51cHMgYmVjYXVzZSBvZiBHc3RQb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2luaXQpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZG9fc2VsZWN0KSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCksIChnc3RfbmV0X2NsaWVudF9jbG9ja19zdGFydCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19zdG9wKSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2ZpbmFsaXplKSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3N0YXJ0KSwgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zdG9wKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgTWFzc2l2ZSBjb2RlIHJlbW92YWwgYW5kIGNsZWFudXBzIGJlY2F1c2Ugb2YgR3N0UG9sbC4KCSAgRml4ZXMgIzUwNTQxNy4KCjIwMDgtMDItMjcgMTg6MDA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjb25maWd1cmUuYWM6IEFkZCBjaGVja3MgZm9yIHBvbGwsIHBwb2xsIGFuZCBwc2VsZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEFkZCBjaGVja3MgZm9yIHBvbGwsIHBwb2xsIGFuZCBwc2VsZWN0LgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGRvY3MgZm9yIEdzdFBvbGwuCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cG9sbC5jOiAoZmluZF9pbmRleCksIChzZWxlY3RhYmxlX2ZkcyksCgkgIChwb2xsYWJsZV90aW1lb3V0KSwgKGNob29zZV9tb2RlKSwgKHBvbGxmZF90b19mZF9zZXQpLAoJICAoZmRfc2V0X3RvX3BvbGxmZCksIChnc3RfcG9sbF9uZXcpLCAoZ3N0X3BvbGxfZnJlZSksCgkgIChnc3RfcG9sbF9zZXRfbW9kZSksIChnc3RfcG9sbF9nZXRfbW9kZSksCgkgIChnc3RfcG9sbF9hZGRfZmRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfYWRkX2ZkKSwKCSAgKGdzdF9wb2xsX3JlbW92ZV9mZCksIChnc3RfcG9sbF9mZF9jdGxfd3JpdGUpLAoJICAoZ3N0X3BvbGxfZmRfY3RsX3JlYWRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfY3RsX3JlYWQpLAoJICAoZ3N0X3BvbGxfZmRfaGFzX2Nsb3NlZCksIChnc3RfcG9sbF9mZF9oYXNfZXJyb3IpLAoJICAoZ3N0X3BvbGxfZmRfY2FuX3JlYWRfdW5sb2NrZWQpLCAoZ3N0X3BvbGxfZmRfY2FuX3JlYWQpLAoJICAoZ3N0X3BvbGxfZmRfY2FuX3dyaXRlKSwgKGdzdF9wb2xsX3dhaXQpLAoJICAoZ3N0X3BvbGxfc2V0X2NvbnRyb2xsYWJsZSksIChnc3RfcG9sbF9yZXN0YXJ0KSwKCSAgKGdzdF9wb2xsX3NldF9mbHVzaGluZyk6CgkgICogZ3N0L2dzdHBvbGwuaDoKCSAgQWRkIGdlbmVyaWMgcG9sbCBhYnN0cmFjdGlvbi4gV2UgaWRlYWxseSBkb24ndCB3YW50IHRvIGhhdmUgdGhpcyBpbiBjb3JlCgkgIGhlcmUgYnV0IGluIGdsaWIgaW50ZWFkLi4uCgkgIFRoaXMgY29kZSB3aWxsIGJlIHVzZWQgaW4gdmFyaW91cyBuZXR3b3JrIGVsZW1lbnRzIGFuZCB1bHRpbWF0ZWx5IGZvcgoJICB0aGUgbmFub3NlY29uZCBwcmVjaXNpb24gbW9ub3RvbmljIGNsb2NrICh0aGF0J3Mgd2h5IGl0J3MgaGVyZSBpbiBjb3JlKS4KCSAgSXQnbGwgYWxsb3cgdXMgdG8gaW1wbGVtZW50IGNhbmNlbGFibGUgc29ja2V0IG9wZXJhdGlvbnMgZm9yIHdpbmRvd3MgdG9vLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3Rwb2xsLmM6ICh0ZXN0X3BvbGxfd2FpdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChkZWxheWVkX3N0b3ApLCAoZGVsYXllZF9yZXN0YXJ0KSwgKGRlbGF5ZWRfZmx1c2gpLAoJICAoZGVsYXllZF9jb250cm9sKSwgKGdzdF9wb2xsX3N1aXRlKToKCSAgQWRkIEdzdFBvbGwgdW5pdCB0ZXN0LgoKMjAwOC0wMi0yNSAxNTozNzozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RmaWx0ZXIuYzogSW1wcm92ZSBkb2N1bWVudGF0aW9uIG9mIGdzdF9maWx0ZXJfcnVuKCkuIEZpeGVzICM1MTg2MjcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RmaWx0ZXIuYzoKCSAgSW1wcm92ZSBkb2N1bWVudGF0aW9uIG9mIGdzdF9maWx0ZXJfcnVuKCkuIEZpeGVzICM1MTg2MjcuCgoyMDA4LTAyLTIzIDE2OjAzOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9SRUFETUU6IEFkZCBhIGZldyBsaW5lcyBhYm91dCB0aGUgbmV3ICdjaGVjay1pbnNwZWN0ZWQtdmVyc2lvbnMnIHRhcmdldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIEFkZCBhIGZldyBsaW5lcyBhYm91dCB0aGUgbmV3ICdjaGVjay1pbnNwZWN0ZWQtdmVyc2lvbnMnIHRhcmdldC4KCjIwMDgtMDItMjEgMTA6MzA6NTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiBBZGQgcW9zIHRvIHRoZSBldmVudCB0ZXN0LiBSZW5hbWUgdGNhc2UvdHN1aXRlOyBpcyBub3Qgb25seSBhYm91dCBjdXN0b20gZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgQWRkIHFvcyB0byB0aGUgZXZlbnQgdGVzdC4gUmVuYW1lIHRjYXNlL3RzdWl0ZTsgaXMgbm90IG9ubHkgYWJvdXQKCSAgY3VzdG9tIGV2ZW50cy4KCjIwMDgtMDItMjEgMTA6MjI6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogRW5zdXJlIHRoYXQgYnVmZmVyIG1ldGFkYXRhIGlzIHdyaXRlYWJsZSwgYmVmb3JlIG1vZGlmeWluZy4gU3BvdHRlZCBieQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEVuc3VyZSB0aGF0IGJ1ZmZlciBtZXRhZGF0YSBpcyB3cml0ZWFibGUsIGJlZm9yZSBtb2RpZnlpbmcuIFNwb3R0ZWQgYnkKCSAgTWlrZS4KCjIwMDgtMDItMjAgMTU6NDQ6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogV2hlbiBkcm9wcGluZyBidWZmZXJzIGluIGxlYWt5IG1vZGVzLCBtYXJrIG5leHQgYnVmZmVycyB3ZSBzZW50IGFzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIFdoZW4gZHJvcHBpbmcgYnVmZmVycyBpbiBsZWFreSBtb2RlcywgbWFyayBuZXh0IGJ1ZmZlcnMgd2Ugc2VudCBhcwoJICBESVNDT05ULgoKMjAwOC0wMi0yMCAxMjozMTo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBBbHNvLCBpZiBtbWFwKCkgZmFpbHMgdGhhdCB3b3VsZCBiZSBhIFJFQUQgZXJyb3IsIG5vdCBPUEVOX1JFQUQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pOgoJICBBbHNvLCBpZiBtbWFwKCkgZmFpbHMgdGhhdCB3b3VsZCBiZSBhIFJFQUQgZXJyb3IsIG5vdCBPUEVOX1JFQUQuCgoyMDA4LTAyLTIwIDEyOjI2OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IFJlbW92ZSBHc3RCdWZmZXJTdG9yZSwgbm8gaWRlYSB3aHkgd2Ugd2VyZSBzdGlsbCBidWlsZGluZyBpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIFJlbW92ZSBHc3RCdWZmZXJTdG9yZSwgbm8gaWRlYSB3aHkgd2Ugd2VyZSBzdGlsbCBidWlsZGluZyBpdC4KCSAgSXQncyBub3QgdXNlZCBhbnl3aGVyZSBhbmQgc3VwZXJzZWRlZCBieSBHc3RBZGFwdGVyLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pLAoJICAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9tbWFwKToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOiAoZ3N0X2ZpbGVfaW5kZXhfYWRkX2Fzc29jaWF0aW9uKToKCSAgUHJpbnRmIGZvcm1hdCBmaXhlcyBmb3IgNjQtYml0IGludGVnZXJzLgoKMjAwOC0wMi0xOSAxMzowMDoxNCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBzZXQgR1NUX0NBQ0hFX0RJUiBhbmQgYWxsb3cgdG8gc2V0IGl0IGJ5IGEgY29uZmlndXJlIHBhcmFtZXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBzZXQgR1NUX0NBQ0hFX0RJUiBhbmQgYWxsb3cgdG8gc2V0IGl0IGJ5IGEgY29uZmlndXJlIHBhcmFtZXRlci4KCSAgV2UncmUgbm90IGluIDAuOCB0aW1lcyBhbnltb3JlLgoKMjAwOC0wMi0xOSAxMjo1NjoyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBNYWtlIHRoZSBkZWNsYXJhdGlvbiBpbiB0aGUgaGVhZGVyIGZvciBnc3RfY2hlY2tfZWxlbWVudF9wdXNoX2J1ZmZlcl9saXN0IG1hdGNoIHRoZSBpbXBsZW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19kcm9wX2J1ZmZlcnMpLAoJICAoZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgTWFrZSB0aGUgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlciBmb3IKCSAgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCBtYXRjaCB0aGUgaW1wbGVtZW50YXRpb24uCgkgIEZpeCB1cCBzcGVsbGluZywgZ3JhbW1hciBhbmQgd29yZGluZyBvZiB0aGUgZG9jdW1lbnRhdGlvbiBpbiBhIGZldwoJICBwbGFjZXMsIGFuZCBhZGQgdGhlIFNpbmNlIGtleXdvcmQgdG8gbmV3IEFQSSBmdW5jdGlvbnMuCgkgIFVzZSBnX2xpc3RfZGVsZXRlX2xpbmsgaW5zdGVhZCBvZiBnX2xpc3RfcmVtb3ZlIGluCgkgIGdzdF9jaGVja19kcm9wX2J1ZmZlcnMsIHNpbmNlIGl0J3MgaW1tZWFzdXJhYmx5IG1vcmUgZWZmaWNpZW50LgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXNlIG5ldyBnc3RfY2hlY2tfZHJvcF9idWZmZXJzIGZ1bmN0aW9uIHdoZXJlIGFwcHJvcHJpYXRlLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBzeW1ib2xzIGdzdF9jb2xsZWN0X3BhZHNfdGFrZV9idWZmZXIsCgkgIGdzdF9jb2xsZWN0X3BhZHNfcmVhZF9idWZmZXIsIGdzdF9pbmRleF9zZXRfcmVzb2x2ZXJfZnVsbCB0byB0aGUKCSAgZXhwb3J0cwoJICBDaGFuZ2Vsb2cgc3VyZ2VyeSB0byBhZGQgQVBJIGtleXdvcmQgdG8gbmV3IGdzdF9jaGVjayBBUEkuCgoyMDA4LTAyLTE5IDA4OjA1OjE1ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6IFVwZGF0ZSBwcmUtZ2VuZXJhdGVkIGZsZXggZmlsZXMgd2l0aCBmbGV4IDIuMy4zNC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOiAoeXlfZ2V0X25leHRfYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXllbnN1cmVfYnVmZmVyX3N0YWNrKSwgKF9nc3RfcGFyc2VfeXlsZXhfaW5pdF9leHRyYSk6CgkgIFVwZGF0ZSBwcmUtZ2VuZXJhdGVkIGZsZXggZmlsZXMgd2l0aCBmbGV4IDIuMy4zNC4KCjIwMDgtMDItMTkgMDU6NDk6MzIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IEFkZCBGSVhNRSBmb3IgMC4xMSB0byBtYWtlIEdzdE1pbmlPYmplY3RDbGFzczo6Y29weSgpIGEgYml0IG1vcmUgZnJpZW5kbHkgdG8gc3ViY2xhc3NlcyBhbmQgbm90IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBBZGQgRklYTUUgZm9yIDAuMTEgdG8gbWFrZSBHc3RNaW5pT2JqZWN0Q2xhc3M6OmNvcHkoKSBhIGJpdCBtb3JlCgkgIGZyaWVuZGx5IHRvIHN1YmNsYXNzZXMgYW5kIG5vdCByZXF1aXJlIHRoZW0gdG8ga25vdyBhbGwgaW50ZXJuYWxzCgkgIG9mIHRoZWlyIHBhcmVudCBjbGFzcy4KCjIwMDgtMDItMTUgMTM6MTU6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFkZCBzdWItYnVmZmVyIGZ1bmN0aW9ucyB0byBjb2xsZWN0cGFkcy4gRml4ZXMgIzUxNjE4Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBZGQgc3ViLWJ1ZmZlciBmdW5jdGlvbnMgdG8gY29sbGVjdHBhZHMuIEZpeGVzICM1MTYxODcuCgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc190YWtlX2J1ZmZlcigpLCBnc3RfY29sbGVjdF9wYWRzX3JlYWRfYnVmZmVyKCkKCjIwMDgtMDItMTUgMTI6MzM6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuYzogQ29weSBzZWxlY3RlZCBidWZmZXItZmxhZ3Mgd2hlbiBjcmVhdGluZyBzdWJidWZmZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIENvcHkgc2VsZWN0ZWQgYnVmZmVyLWZsYWdzIHdoZW4gY3JlYXRpbmcgc3ViYnVmZmVycy4KCSAgRml4ZXMgIzUxNjM5NS4KCjIwMDgtMDItMTIgMTI6MDQ6NDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFByb3Blcmx5IGNoYWluIHVwIGZpbmFsaXplIGZ1bmN0aW9ucyB0byB0aGUgcGFyZW50IGNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX2NsYXNzX2luaXQpLCAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfY2xhc3NfaW5pdCksIChnc3RfZXZlbnRfZmluYWxpemUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9jbGFzc19pbml0KSwKCSAgKGdzdF9tZXNzYWdlX2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9jbGFzc19pbml0KSwgKGdzdF9xdWVyeV9maW5hbGl6ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfbW1hcF9idWZmZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfbW1hcF9idWZmZXJfZmluYWxpemUpOgoJICBQcm9wZXJseSBjaGFpbiB1cCBmaW5hbGl6ZSBmdW5jdGlvbnMgdG8gdGhlIHBhcmVudCBjbGFzcy4KCjIwMDgtMDItMTEgMTc6NTM6NTcgKzAwMDAgIFNpYXZhc2ggU2FmaSA8c2lhdmFzaC5zYWZpQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpbmRleC4qOiBBZGQgbmV3IGZ1bmN0aW9uIHdpdGggb3B0aW9uIHRvIGRpc3Bvc2Ugb2YgdXNlcl9kYXRhIGluIHJlc29sdmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFNpYXZhc2ggU2FmaSA8c2lhdmFzaCBkb3Qgc2FmaSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2ZpbmFsaXplKSwgKGdzdF9pbmRleF9zZXRfcmVzb2x2ZXIpLAoJICAoZ3N0X2luZGV4X3NldF9yZXNvbHZlcl9mdWxsKToKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgQWRkIG5ldyBmdW5jdGlvbiB3aXRoIG9wdGlvbiB0byBkaXNwb3NlIG9mIHVzZXJfZGF0YSBpbiByZXNvbHZlci4KCSAgQWN0dWFsbHkgY2FsbCB0aGUgZGlzcG9zZSBmdW5jdGlvbiB3aGVuIGZpbmFsaXppbmcgdGhlIG9iamVjdCBhbmQgbm90CgkgIGp1c3Qgd2hlbiBjaGFuZ2luZyB0aGUgcmVzb2x2ZXIvZmlsdGVyLgoJICBBUEk6IEdzdEluZGV4Ojpnc3RfaW5kZXhfc2V0X3Jlc29sdmVyX2Z1bGwoKQoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgZnVuY3Rpb24gdG8gZG9jcy4gRml4ZXMgIzUxNTQ2OS4KCjIwMDgtMDItMTEgMDg6NTM6MDQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RpbmRleC5jOiBDaGFpbiB1cCBmaW5hbGl6ZSB0byB0aGUgcGFyZW50IGNsYXNzLiBGaXhlcyBsZWFraW5nIHRoZSBHc3RPYmplY3QgbmFtZSBhbmQgb3RoZXIgdGhpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9maW5hbGl6ZSk6CgkgIENoYWluIHVwIGZpbmFsaXplIHRvIHRoZSBwYXJlbnQgY2xhc3MuIEZpeGVzIGxlYWtpbmcgdGhlIEdzdE9iamVjdAoJICBuYW1lIGFuZCBvdGhlciB0aGluZ3MuCgoyMDA4LTAyLTEwIDE5OjQ4OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogRml4IEpvc2VwJ3Mgc3VybmFtZSBpbiBwcmV2aW91cyBjb21taXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogRml4IEpvc2VwJ3Mgc3VybmFtZSBpbiBwcmV2aW91cyBjb21taXRzCgoyMDA4LTAyLTA4IDAwOjU0OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogTWFrZSBESVNBQkxFX0RFUFJFQ0FURUQgZGVmaW5lZCAqb25seSogZHVyaW5nIENWUywgbm90IGR1cmluZyBwcmUtcmVsZWFzZXMgb3IgcmVsZWFzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgTWFrZSBESVNBQkxFX0RFUFJFQ0FURUQgZGVmaW5lZCAqb25seSogZHVyaW5nIENWUywgbm90IGR1cmluZwoJICBwcmUtcmVsZWFzZXMgb3IgcmVsZWFzZXMuCgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBZGQgZ3N0LXBsdWdpbnMtZ2wKCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBDaGFuZ2Ugb25lIG9mIHRoZSBzdGVwcyAtIHdlIG9ubHkgdXBsb2FkIGNvcmUgJiBiYXNlIHRvIEdub21lIEZUUAoKMjAwOC0wMi0wNiAxMjoyMTowNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGNvbmZpZy5oLmluOiBBZGQgJ2lkJyBmb3IgZXhhbXBsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBBZGQgJ2lkJyBmb3IgZXhhbXBsZS4KCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgTGluayB0byBzaWduYWxzLiBEb2MgYW5kIGNvbW1lbnQgZml4ZXMuCgoyMDA4LTAyLTA1IDIxOjIyOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogU29tZSBtaW5vciBkb2NzIGZpeGVzOiBmaXggdHlwbywgbWVudGlvbiB0aGF0IEdTVF9GTE9XX1JFU0VORCBpcyB1bnVzZWQgYW5kIHVuaW1wbGVtZW50ZWQ7IGZpbmFsbHksIGl0IGlzIHBsdWdpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuaDogKEdTVF9QQURfTElOS19TVUNDRVNTRlVMKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOiAoR3N0UGx1Z2luRmVhdHVyZUNsYXNzKToKCSAgU29tZSBtaW5vciBkb2NzIGZpeGVzOiBmaXggdHlwbywgbWVudGlvbiB0aGF0IEdTVF9GTE9XX1JFU0VORCBpcwoJICB1bnVzZWQgYW5kIHVuaW1wbGVtZW50ZWQ7IGZpbmFsbHksIGl0IGlzIHBsdWdpbiBmZWF0dXJlcywgbm90CgkgIHBsdWdpbnMsIHRoYXQgaGF2ZSByYW5rcy4KCjIwMDgtMDItMDUgMTk6NDI6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6IENsYXJpZnkgR3N0UmFuayByYW5nZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICBDbGFyaWZ5IEdzdFJhbmsgcmFuZ2UgZG9jcy4KCjIwMDgtMDItMDUgMTg6Mzc6MDggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdC5jOiBBZGQgYSBzZXBhcmF0ZSBnc3RfZGVpbml0aWFsaXplZCB0aGF0IHByZXZlbnRzIGdzdF9pbml0KCkgZnJvbSBiZWluZyBjYWxsZWQgYWZ0ZXIgZ3N0X2RlaW5pdCgpLiAgRml4ZXMgIzUwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogQWRkIGEgc2VwYXJhdGUgZ3N0X2RlaW5pdGlhbGl6ZWQgdGhhdCBwcmV2ZW50cwoJICBnc3RfaW5pdCgpIGZyb20gYmVpbmcgY2FsbGVkIGFmdGVyIGdzdF9kZWluaXQoKS4gIEZpeGVzICM1MDk1NTkKCjIwMDgtMDItMDUgMTQ6MTU6MTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2VzIHRvIHRoZSBiZWhhdmlvdXIgb2YgR3N0UGFkVGVtcGxhdGVzLCBldGMgYW5kIHRoZSBwb3NzaWJsaXR5IHRvIGNhbGwgdGhlbSBpbiBjbGFzc19pbml0IGFzIGl0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5fYmFzZV9pbml0KSwKCSAgKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfaW5pdCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfZ2V0X3R5cGUpLAoJICAoZ3N0X3BpcGVsaW5lX2Jhc2VfaW5pdCksIChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3NyY19iYXNlX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9iYXNlX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfYmFzZV9pbml0KSwKCSAgKGdzdF90ZWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9iYXNlX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2VzIHRvIHRoZSBiZWhhdmlvdXIgb2YgR3N0UGFkVGVtcGxhdGVzLCBldGMKCSAgYW5kIHRoZSBwb3NzaWJsaXR5IHRvIGNhbGwgdGhlbSBpbiBjbGFzc19pbml0IGFzIGl0IGJyZWFrcyB0b28KCSAgbWFueSBlbGVtZW50cy4gUmVvcGVucyBidWcgIzQ5MTUwMS4KCSAgU2hvdWxkIGJlIGFwcGxpZWQgYWdhaW4gZm9yIDAuMTEsIHRodXMgYWRkZWQgYSBmZXcgRklYTUUgMC4xMSBhdAoJICBzZXZlcmFsIHBsYWNlcy4KCjIwMDgtMDItMDUgMDk6MjQ6MTggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogRHVtcCBvbmUgZ3JhcGggcGVyIHBpcGVsaW5lIHN0YXRlLWNoYW5nZSBhbmQgc3RhdGUgY2hhbmdlIG5hbWUgKGlmIEdTVF9ERUJVR19EVU1QX0RPVF9ESVIgaXMgc2V0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBEdW1wIG9uZSBncmFwaCBwZXIgcGlwZWxpbmUgc3RhdGUtY2hhbmdlIGFuZCBzdGF0ZSBjaGFuZ2UgbmFtZQoJICAoaWYgR1NUX0RFQlVHX0RVTVBfRE9UX0RJUiBpcyBzZXQpLgoKMjAwOC0wMi0wNCAxNDoxNDo0MiArMDAwMCAgVGhpanMgVmVybWVpciA8dGhpanN2ZXJtZWlyQGdtYWlsLmNvbT4KCgkgIEJlIHN1cmUgdGhhdCB3ZSBoYXZlIGEgbmV3IGNvcHkgb2YgdGhlIGNhcHMgYW5kIG5vdCByZWZmZWQgY2FwcyBmcm9tIGEgdGVtcGxhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgQmUgc3VyZSB0aGF0IHdlIGhhdmUgYSBuZXcgY29weSBvZiB0aGUgY2FwcyBhbmQgbm90CgkgIHJlZmZlZCBjYXBzIGZyb20gYSB0ZW1wbGF0ZQoKMjAwOC0wMi0wMyAxMjowNDozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgRG9uJ3QgdXNlIGJhc2VfaW5pdCB3aGVyZSBub3QgYWJzb2x1dGVseSBuZWNlc3NhcnkuIEZvciBleGFtcGxlIGl0J3Mgbm90IG5lY2Vzc2FyeSBhbnltb3JlIGZvciBhZGRpbmcgcGFkIHRlbXBsYXRlcyBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpLCAoZ3N0X2Jpbl9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9nZXRfdHlwZSksCgkgIChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfdHlwZSksCgkgIChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdHlwZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOiAoZ3N0X2RhdGFfcXVldWVfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9iYXNlX2luaXQpLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfYmFzZV9pbml0KSwKCSAgKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9iYXNlX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfbXVsdGlfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChnc3RfcXVldWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfYmFzZV9pbml0KSwKCSAgKGdzdF90ZWVfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9iYXNlX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpOgoJICBEb24ndCB1c2UgYmFzZV9pbml0IHdoZXJlIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gRm9yIGV4YW1wbGUgaXQncwoJICBub3QgbmVjZXNzYXJ5IGFueW1vcmUgZm9yIGFkZGluZyBwYWQgdGVtcGxhdGVzIG9yIHNldHRpbmcgZWxlbWVudAoJICBkZXRhaWxzLgoJICBMZWF2ZSBlbXB0eSBiYXNlX2luaXQgZnVuY3Rpb25zIGluIHNldmVyYWwgcGxhY2VzIGFzIEdTVF9CT0lMRVJQTEFURQoJICBzdGlsbCBkZWZpbmVzIGFuZCB1c2VzIHRoZW0uCgoyMDA4LTAyLTAzIDEwOjQ4OjAxICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvOiBNYWtlIGl0IHBvc3NpYmxlIChhbmQgcmVjb21tZW5kZWQpIHRvIHNldCBlbGVtZW50IGRldGFpbHMgYW5kIGFkZCBwYWQgdGVtcGxhdGVzIGluIHRoZSBjbGFzc19pbml0IGZ1bmN0aW9ucyBieSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Jhc2VfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9jbGFzc19hZGRfcGFkX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSAgTWFrZSBpdCBwb3NzaWJsZSAoYW5kIHJlY29tbWVuZGVkKSB0byBzZXQgZWxlbWVudCBkZXRhaWxzIGFuZCBhZGQKCSAgcGFkIHRlbXBsYXRlcyBpbiB0aGUgY2xhc3NfaW5pdCBmdW5jdGlvbnMgYnkgY29weWluZyB0aGUgZGV0YWlscy9wYWQKCSAgdGVtcGxhdGVzIGluIEdzdEVsZW1lbnQncyBiYXNlX2luaXQuCgkgIEFsc28gbWFrZSBpdCBwb3NzaWJsZSB0byByZXBsYWNlIGV4aXN0aW5nIHBhZCB0ZW1wbGF0ZXMgYnkgYWRkaW5nCgkgIGEgbmV3IG9uZSB3aXRoIHRoZSBzYW1lIG5hbWUuIFRoaXMgd2FzIGRvbmUgaW4gYSBoYWNraXNoIGZhc2hpb24KCSAgaW4gc2FtZSBlbGVtZW50cyBiZWZvcmUgYWxyZWFkeS4KCSAgRG9uJ3QgcmVmZXJlbmNlIHBhZCB0ZW1wbGF0ZXMgdGhhdCBhcmUgYWRkZWQgYSBzZWNvbmQgdGltZS4gQQoJICBuZXcgcGFkIHRlbXBsYXRlIGhhcyBhIHJlZmNvdW50IG9mIG9uZSBhbmQgaXMgbm90IGZsb2F0aW5nIGFueW1vcmUKCSAgYW5kIHRvIGJlIG93bmVkIGJ5IHRoZSBlbGVtZW50J3MgY2xhc3MuIE1ha2UgdGhpcyBtb3JlIGV4cGxpY2l0IGJ5CgkgIG1lbnRpb25pbmcgaXQgaW4gdGhlIGRvY3Mgb2YgZ3N0X2VsZW1lbnRfY2xhc3NfYWRkX3BhZF90ZW1wbGF0ZSgpLgoJICBUaGVzZSBjaGFuZ2VzIGFyZSBiYWNrd2FyZHMgY29tcGF0aWJsZS4gRml4ZXMgYnVnICM0OTE1MDEuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3Igc2V0dGluZyBlbGVtZW50IGRldGFpbHMsIGFkZGluZyBwYWQgdGVtcGxhdGVzIGFuZAoJICByZXBsYWNpbmcgdGhlbSBpbiBhIHN1YmNsYXNzLgoKMjAwOC0wMi0wMiAwNjo0ODozNyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IGEgZmV3IG1lbW9yeSBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2ludGVyZmFjZXMpLAoJICAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLCAocHJpbnRfcGFkX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pLCAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRml4IGEgZmV3IG1lbW9yeSBsZWFrcy4KCjIwMDgtMDItMDEgMTc6MTY6MjYgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBBZGQgbW9yZSBmdW5jdGlvbnMgZm9yIHVuaXQgdGVzdGluZzogZ3N0X2NoZWNrX2Ryb3BfYnVmZmVycywgZ3N0X2NoZWNrX2NhcHNfZXF1YWwsIGdzdF9jaGVja19lbGVtZW50X3B1c2hfYnVmZmVyX2xpc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFkZCBtb3JlIGZ1bmN0aW9ucyBmb3IgdW5pdCB0ZXN0aW5nOiBnc3RfY2hlY2tfZHJvcF9idWZmZXJzLAoJICBnc3RfY2hlY2tfY2Fwc19lcXVhbCwgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXJfbGlzdCwKCSAgZ3N0X2NoZWNrX2VsZW1lbnRfcHVzaF9idWZmZXIKCjIwMDgtMDItMDEgMTY6Mzc6MjIgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIEdTVF9DSEVDS19WRVJTSU9OIHRvIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA4LTAyLTAxICBKdWxpZW4gTW91dHRlICA8anVsaWVuQGZsdWVuZG8uY29tPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBHU1RfQ0hFQ0tfVkVSU0lPTiB0byB0aGUKCSAgZG9jcwoJICAqIGdzdC9nc3RpbmRleC5jOiAoZ3N0X2luZGV4X2NsYXNzX2luaXQpLAoJICAoZ3N0X2luZGV4X2ZyZWVfd3JpdGVyKSwKCSAgKGdzdF9pbmRleF9maW5hbGl6ZSksIChnc3RfaW5kZXhfZW50cnlfZnJlZSksCgkgIChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9uKTogRml4IG1lbW9yeSBsZWFrcy4KCSAgKiBnc3QvZ3N0dmVyc2lvbi5oLmluOiBBZGQgR1NUX0NIRUNLX1ZFUlNJT04gbWFjcm8uCgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOiAoZ3N0X21lbV9pbmRleF9jbGFzc19pbml0KSwKCSAgKGdzdF9tZW1faW5kZXhfZnJlZV9mb3JtYXQpLCAoZ3N0X21lbV9pbmRleF9mcmVlX2lkKSwKCSAgKGdzdF9tZW1faW5kZXhfZmluYWxpemUpOiBGaXggbWVtb3J5IGxlYWtzLgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDogVXBkYXRlZCB0byBDVlMgSEVBRC4KCjIwMDgtMDItMDEgMTI6MjU6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvUkVBRE1FOiBTb21lIG1vcmUgZGV0YWlscyBhYm91dCBob3cgdGhlIHBsdWdpbiBkb2NzIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgU29tZSBtb3JlIGRldGFpbHMgYWJvdXQgaG93IHRoZSBwbHVnaW4gZG9jcyB3b3Jrcy4KCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBXaGl0ZXNwYWNlIGNsZWFudXAuCgoyMDA4LTAyLTAxIDEyOjEwOjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvcGFyc2UvOiBBZGQgZGVsYXllZCBzZXQtcHJvcGVydHkuIFRoaXMgYWxsb3dzIHRvIHNldCBwcm9wZXJ0aWVzIG9uIGR5bmFtaWNhbHkgY3JlYXRlZCBvYmplY3RzIChwYWRzIGluIHZpZGVvbXhlcikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuYzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmg6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6CgkgIEFkZCBkZWxheWVkIHNldC1wcm9wZXJ0eS4gVGhpcyBhbGxvd3MgdG8gc2V0IHByb3BlcnRpZXMgb24gZHluYW1pY2FseQoJICBjcmVhdGVkIG9iamVjdHMgKHBhZHMgaW4gdmlkZW9teGVyKS4KCjIwMDgtMDItMDEgMTE6Mjc6MzIgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgoyMDA4LTAyLTAxIDEwOjI3OjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgZml4bWUgcmVnYXJkaW5nIEVPUyBpbiBwdWxsIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfbG9vcCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9wYXVzZWQpOgoJICBBZGQgZml4bWUgcmVnYXJkaW5nIEVPUyBpbiBwdWxsIG1vZGUuCgkgIEZpeCBwb3NpdGlvbiByZXBvcnRpbmcgaW4gUEFVU0VEIGZvciBuZWdhdGl2ZSByYXRlcy4KCjIwMDgtMDItMDEgMTA6MjM6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBXaGVuIHJlcGxhY2luZyBhIG1pbmlvYmplY3QsIGRvIGEgcXVpY2sgZXF1YWxpdHkgY2hlY2sgZmlyc3Qgc28gdGhhdCB3ZSBjYW4gYXZvaWQgYSByZWYvdW5yZWYgcGFpci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9yZXBsYWNlKToKCSAgV2hlbiByZXBsYWNpbmcgYSBtaW5pb2JqZWN0LCBkbyBhIHF1aWNrIGVxdWFsaXR5IGNoZWNrIGZpcnN0IHNvIHRoYXQgd2UKCSAgY2FuIGF2b2lkIGEgcmVmL3VucmVmIHBhaXIuCgoyMDA4LTAyLTAxIDEwOjE3OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OiBVcGRhdGUgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgQWRkIG11bHRpcXVldWUgdG8gdGhlIGRvY3MuCgoyMDA4LTAxLTMwIDE0OjM4OjQzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xNyA9PT0KCjIwMDgtMDEtMzAgMTQ6MDU6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZ3N0cmVhbWVyLmRvYXA6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjE3CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTcKCjIwMDgtMDEtMzAgMTM6MTM6NDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBhZGQgQ2hhbmdlTG9nIGVudHJ5IGZvciBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBDaGFuZ2VMb2cgZW50cnkgZm9yIHByZXZpb3VzIGNvbW1pdAoKMjAwOC0wMS0zMCAxMzoxMjoyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2hlY2sgaWYgY2FwcyBhcmUgbm90IE5VTEwgKGZpeCBidWcgIzUxMDE5NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgoyMDA4LTAxLTMwIDEyOjU1OjQyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoZWNrIGlmIGNhcHMgYXJlIG5vdCBOVUxMIChmaXggYnVnICM1MTAxOTQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBDaGVjayBpZiBjYXBzIGFyZSBub3QgTlVMTCAoZml4IGJ1ZyAjNTEwMTk0KQoKMjAwOC0wMS0zMCAxMjo0NDoxMyArMDAwMCAgQ3lnd2luIFBvcnRzIG1haW50YWluZXIgPHlzZWxrb3dpdHpAdXNlcnMuc291cmNlZm9yZ2U+CgoJICBnc3QvZ3N0dXRpbHMuYzogRml4IGNvbXBpbGF0aW9uIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHBvc2l4IHRpbWVycyBidXQgbm8gbW9ub3RvbmljIGNsb2NrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgRml4IGNvbXBpbGF0aW9uIG9uIHN5c3RlbXMgdGhhdCBoYXZlIHBvc2l4IHRpbWVycyBidXQgbm8KCSAgbW9ub3RvbmljIGNsb2NrLgoJICBGaXhlczogIzUxMjcxNQoJICBQYXRjaCBCeTogQ3lnd2luIFBvcnRzIG1haW50YWluZXIgPHlzZWxrb3dpdHogYXQgdXNlcnMgZG90IHNvdXJjZWZvcmdlCgkgIGRvdCBuZXQ+CgoyMDA4LTAxLTMwIDEyOjM5OjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFJldmVydCBwcmV2aW91cyBjb21taXQgaW4gcHJlcGFyYXRpb24gZm9yIGFuIGltcHJvbXB0dSAwLjEwLjE3IHJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCBpbiBwcmVwYXJhdGlvbiBmb3IgYW4gaW1wcm9tcHR1IDAuMTAuMTcgcmVsZWFzZQoKMjAwOC0wMS0yOSAwOTo0MzoxMSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IGEgZmV3IG1lbW9yeSBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2ludGVyZmFjZXMpLAoJICAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLCAocHJpbnRfcGFkX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pLCAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRml4IGEgZmV3IG1lbW9yeSBsZWFrcy4KCjIwMDgtMDEtMjggMjM6MzA6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCYWNrIHRvIENWUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjE2ID09PQoKMjAwOC0wMS0yOCAyMzoyNzoxMyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLmFyZ3M6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5oaWVyYXJjaHk6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5pbnRlcmZhY2VzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGdzdHJlYW1lci5kb2FwOgoJKiBwby9MSU5HVUFTOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIFJlbGVhc2UgMC4xMC4xNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjE2CgoyMDA4LTAxLTI4IDIxOjIwOjE2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA4LTAxLTI0IDIzOjI4OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVc2UgQUNfVFJZX0NPTVBJTEUgaW5zdGVhZCBvZiBBQ19UUllfUlVOIHRvIGNoZWNrIGZvciBfUE9TSVhfVElNRVIsIF9QT1NJWF9NT05PVE9OSUNfQ0xPQ0ssIGV0Yy4gTWFrZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIEFDX1RSWV9DT01QSUxFIGluc3RlYWQgb2YgQUNfVFJZX1JVTiB0byBjaGVjayBmb3IKCSAgX1BPU0lYX1RJTUVSLCBfUE9TSVhfTU9OT1RPTklDX0NMT0NLLCBldGMuIE1ha2VzIGNvbmZpZ3VyZQoJICBub3QgZmFpbCB3aGVuIHRyeWluZyB0byBjcm9zc2NvbXBpbGUgb24gT3BlbkVtYmVkZGVkICgjNTExNzUwKS4KCjIwMDgtMDEtMjAgMTc6MDg6NTQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvbWFudWFscy5tYWs6IFVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZSB0byBmaXggdGhlIGJ1aWxkIGlmIEdOVSBtYWtlIGlzIGNhbGxlZCBkaWZmZXJlbnQuIEZpeGVzIGJ1ZyAjNTEwNzQ3LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbHMubWFrOgoJICBVc2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UgdG8gZml4IHRoZSBidWlsZCBpZiBHTlUgbWFrZSBpcwoJICBjYWxsZWQgZGlmZmVyZW50LiBGaXhlcyBidWcgIzUxMDc0Ny4KCjIwMDgtMDEtMjAgMTU6MDQ6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IEZpeCBvbGQtc3R5bGUgc3RhdGljIHBsdWdpbnMgdmlhIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyBhZ2Fpbiwgd2hpY2ggSSBicm9rZSB0d28gY29tbWl0cyBhZ28gd2hlbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5faW5pdGlhbGl6ZSk6CgkgIEZpeCBvbGQtc3R5bGUgc3RhdGljIHBsdWdpbnMgdmlhIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQwoJICBhZ2Fpbiwgd2hpY2ggSSBicm9rZSB0d28gY29tbWl0cyBhZ28gd2hlbiBjaGFuZ2luZyB0aGUgQVBJCgkgIG9mIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCk6IHRoZSBnX2xpc3RfZm9yZWFjaCgpIGluCgkgIF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYyBzdGlsbCBhc3N1bWVkIHRoZSBvbGQgZnVuY3Rpb24KCSAgc2lnbmF0dXJlIGFuZCB3b3VsZCB0aGVyZWZvcmUgZmFpbCAocmUtZml4ZXMgIzUxMDE4NykuCgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX251bV9zdGF0aWNfcGx1Z2lucyksIChfc3RhdGljX3BsdWdpbnMpLAoJICAoX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKToKCSAgUmV2ZXJ0IHRoZSAodGVjaG5pY2FsbHkgY29ycmVjdCkgY2hhbmdlIHRvIGNhbGwgZ190aHJlYWRfaW5pdCgpIGZyb20KCSAgdGhlIHByZS1tYWluKCkgY29uc3RydWN0b3IuIFRoaXMgd2lsbCBicmVhayBwcm9ncmFtcyB3aGljaCBjYWxsCgkgIGdfdGhyZWFkX2luaXQoKSB3aXRob3V0IGFuIGlmICghZ190aHJlYWRfc3VwcG9ydGVkKCkpIGd1YXJkIGluIHRoZWlyCgkgIG1haW4gZnVuY3Rpb24uIFdlIGNvdWxkIGp1c3QgYmxhbWUgaXQgb24gR0xpYiBvciB0aGUgYXBwbGljYXRpb24sIGJ1dAoJICBpdCdzIHByb2JhYmx5IGJlc3QgdG8ganVzdCBhdm9pZCB0aGlzIGFsdG9nZXRoZXIgYW5kIHNpbXBseSBub3QgdXNlCgkgIGFueSBHTGliIGZ1bmN0aW9ucyBoZXJlIGFuZCB1c2UgcGxhaW4gb2xkIG1hbGxvYygpIHdpdGggYSBzaW1wbGUKCSAgYXJyYXkgdG8gc3RvcmUgdGhlIHBsdWdpbnMgdG8gcmVnaXN0ZXIgbGF0ZXIgd2hlbiBnc3RfaW5pdCgpIGlzCgkgIGZpbmFsbHkgY2FsbGVkIChyZS1maXhlcyAjNTEwMTg3KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6IChHU1RfR05VQ19DT05TVFJVQ1RPUl9ERUZJTkVEKSwKCSAgKEdTVF9HTlVDX0NPTlNUUlVDVE9SX0RFRklORUQpLCAocGx1Z2luX2luaXRfY291bnRlciksCgkgIChwbHVnaW4xX2luaXQpLCAocGx1Z2luMl9pbml0KSwgKHBsdWdpbjNfaW5pdCksIChHU1RfU1RBUlRfVEVTVCksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfcGx1Z2luX3N1aXRlKToKCSAgRHVtYiB1bml0IHRlc3QgdG8gbWFrZSBzdXJlIHRoZSBvbGQgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDIHN0aWxsCgkgIHdvcmtzLgoKMjAwOC0wMS0xNyAyMjoyMjo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uaDogUmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkcyBhcm91bmQgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IChHU1RfUExVR0lOX0RFRklORV9TVEFUSUMpOgoJICBSZW1vdmUgZGVwcmVjYXRpb24gZ3VhcmRzIGFyb3VuZCBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMuCgkgIFRoaXMgbWFrZXMgZ3RrLWRvYyBjb21wbGFpbiwgYnV0IHJlc3VsdHMgaW4gc2xpZ2h0bHkgYmV0dGVyCgkgIGNvbXBpbGVyIGVycm9ycy4gVGhlIG9sZCBfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMoKSBpcwoJICBzdGlsbCBndWFyZGVkLCBzbyB0aGVyZSdsbCBiZSBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgdGhhdAoJICBpbnN0ZWFkLiBGaXhlcyAjNTEwMTg3IHRvby4KCjIwMDgtMDEtMTcgMjI6MTc6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBDaGFuZ2UgQVBJIG9mIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgdG8gbm90IHRha2UgYSBHc3RQbHVnaW5EZXNjLCBidXQgcmF0aGVyIGp1c3QgdGFrZSBhbGwgdGhlIGFyZ3VtZW50cyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLAoJICAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9zdGF0aWMpLCAoX2dzdF9wbHVnaW5faW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5oOiAoR3N0UGx1Z2luRmlsdGVyKToKCSAgQ2hhbmdlIEFQSSBvZiBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIHRvIG5vdCB0YWtlCgkgIGEgR3N0UGx1Z2luRGVzYywgYnV0IHJhdGhlciBqdXN0IHRha2UgYWxsIHRoZSBhcmd1bWVudHMKCSAgaW4gYSBHc3RQbHVnaW5EZXNjIGRpcmVjdGx5LiBUaGlzIGlzIG1vcmUgaW50dWl0aXZlIGFuZAoJICBhdm9pZHMgY2VydGFpbiBtaXN0YWtlcyB3aGVuIHBvcnRpbmcgY29kZSBmcm9tCgkgIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQyB0byBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpLgoJICBGaXhlcyAjNTEwMTg3LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgRml4IHVwIGZvciBjaGFuZ2VkIEFQSS4KCjIwMDgtMDEtMTcgMTg6NTA6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9mYXEvbGVnYWwueG1sOiBVcGRhdGUgRkFRLCBUb3RlbSBhY3R1YWxseSBoYXMgYW4gZXhjZXB0aW9uIHRoZXNlIGRheXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2xlZ2FsLnhtbDoKCSAgVXBkYXRlIEZBUSwgVG90ZW0gYWN0dWFsbHkgaGFzIGFuIGV4Y2VwdGlvbiB0aGVzZSBkYXlzLgoKMjAwOC0wMS0xNCAyMjoyMDo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogQWRkIG5ldyBBUEkgZGVjbGFyYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IEFQSSBkZWNsYXJhdGlvbnMKCjIwMDgtMDEtMTQgMTM6MTg6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFNwZWxsaW5nIGZpeGVzIGZvciB0aGUgQVBJIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIFNwZWxsaW5nIGZpeGVzIGZvciB0aGUgQVBJIGRvY3MuCgoyMDA4LTAxLTE0IDExOjQ3OjMyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgQWRkIEFQSSBrZXl3b3JkIGZvciBnc3RfdXRpbF9nZXRfdGltZXN0YW1wLCBhbmQgcmVtb3ZlIHRoZSB0YWcgZm9yIEdTVF9HRVRfVElNRVNUTUFQIHdoaWNoIGRpZG4ndCBzdXJ2aXZlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIEFQSSBrZXl3b3JkIGZvciBnc3RfdXRpbF9nZXRfdGltZXN0YW1wLCBhbmQgcmVtb3ZlIHRoZSB0YWcgZm9yIEdTVF9HRVRfVElNRVNUTUFQIHdoaWNoIGRpZG4ndCBzdXJ2aXZlLgoKMjAwOC0wMS0xNCAxMTo0MDo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBsb25nIHByb3BlcnR5IGRlc2NyaXB0aW9uIGZvciBRb1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICBGaXggbG9uZyBwcm9wZXJ0eSBkZXNjcmlwdGlvbiBmb3IgUW9TLgoKMjAwOC0wMS0xMiAyMDoyMjozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IF9nc3RfdHJhY2Vfb24gaXMgYWxyZWFkeSBwcm92aWRlZCBieSBnc3R0cmFjZS5oLCBubyBuZWVkIHRvIGRlY2xhcmUgaXQgb3Vyc2VsdmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIF9nc3RfdHJhY2Vfb24gaXMgYWxyZWFkeSBwcm92aWRlZCBieSBnc3R0cmFjZS5oLCBubyBuZWVkIHRvIGRlY2xhcmUKCSAgaXQgb3Vyc2VsdmVzLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCAnYnVmZmVycycsICdjaGVja19jb25kJyBhbmQgJ2NoZWNrX211dGV4JyBmcm9tIGxpYmdzdGNoZWNrCgkgIGFuZCByZW1vdmUgc3RyYW5nZSB0Y2FzZV9hZGRfdGVzdCB3aGljaCBpcyBvdXRwdXR0aW5nIGEgd2FybmluZy4KCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIFByb3Blcmx5IGRlY2xhcmUgJ2J1ZmZlcnMnLCAnY2hlY2tfY29uZCcsICdjaGVja19tdXRleCcgZXh0ZXJuCgkgIGFuZCBkZWZpbmUgdGhlbSBpbiBnc3RjaGVjay5jIGluc3RlYWQgb2YgaGF2aW5nIGV2ZXJ5IC5jIGZpbGUgd2hjaWgKCSAgaW5jbHVkZXMgZ3N0Y2hlY2suaCBiZSBkZWZpbmluZyBpdHMgb3duIGNvcHkgYW5kIHJlbHlpbmcgb24gc3ltYm9sCgkgIGludGVycG9zaW5nIHRvIG1hcnJ5IHRoZW0gYWxsLCB3aGljaCBkb2Vzbid0IHdvcmsgb24gU29sYXJpcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBEb24ndCBkZWZpbmUgJ2J1ZmZlcnMnIGxvY2FsbHksIGl0IGNvbWVzIGZyb20gbGliZ3N0Y2hlY2suCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoc2VuZF9idWZmZXIpOgoJICBGaXggdHlwZSBvZiB2YXJpYWJsZSAoR3N0Rmxvd1JldHVybiwgbm90IEdzdFN0YXRlQ2hhbmdlUmV0dXJuKQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGEgYnVuY2ggb2YgY2FzdHMgdG8gbWFrZSB2YXJpb3VzIGNvbnN0YW50cyBmaXQgdGhlIHR5cGVzCgkgIHRoZXkncmUgYmVpbmcgYXNzaWduZWQgdG8uCgoyMDA4LTAxLTEwIDIxOjA2OjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Y2hpbGRwcm94eS5jOiBJbXByb3ZlIGRvY3MgYW5kIGFkZCBzb21lIGlkZWFzIGZvciBtYWtpbmcgdGhpcyBtb3JlIGdlbmVyYWwtcHVycG9zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzoKCSAgSW1wcm92ZSBkb2NzIGFuZCBhZGQgc29tZSBpZGVhcyBmb3IgbWFraW5nIHRoaXMgbW9yZSBnZW5lcmFsLXB1cnBvc2UuCgoyMDA4LTAxLTEwIDE1OjU1OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdF9wcml2YXRlLmg6IEFkZCBHU1RfQ0FUX1RZUEVTLCBmb3IgY29uc2lzdGVuY3ksIGFuZCBzbyB0aGF0IHRoZSBvdGhlciBkZWJ1ZyBjYXRlZ29yaWVzIGRvbid0IG1ha2UgZnVuIG9mIGl0LiBTLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOiAoR1NUX0NBVF9UWVBFUyk6CgkgIEFkZCBHU1RfQ0FUX1RZUEVTLCBmb3IgY29uc2lzdGVuY3ksIGFuZCBzbyB0aGF0IHRoZSBvdGhlcgoJICBkZWJ1ZyBjYXRlZ29yaWVzIGRvbid0IG1ha2UgZnVuIG9mIGl0LiBTcG90dGVkIGJ5IFNhdXIgb24gSVJDLgoKMjAwOC0wMS0xMCAxMzowMzozNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBNb3ZlIHR5cGVzLmggZnJvbSBFWFRSQV9ESVNUIHRvIG5vaW5zdF9IRUFERVJTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIE1vdmUgdHlwZXMuaCBmcm9tIEVYVFJBX0RJU1QgdG8gbm9pbnN0X0hFQURFUlMuCgoyMDA4LTAxLTEwIDEyOjE0OjA0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBhdXRvZ2VuLnNoOiBBZGQgLVduby1wb3J0YWJpbGl0eSB0byB0aGUgYXV0b21ha2UgcGFyYW1ldGVycyB0byBzdG9wIHdhcm5pbmdzIGFib3V0IEdOVSBtYWtlIGV4dGVuc2lvbnMgYmVpbmcgdXNlZC4gV2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogYXV0b2dlbi5zaDoKCSAgQWRkIC1Xbm8tcG9ydGFiaWxpdHkgdG8gdGhlIGF1dG9tYWtlIHBhcmFtZXRlcnMgdG8gc3RvcCB3YXJuaW5ncwoJICBhYm91dCBHTlUgbWFrZSBleHRlbnNpb25zIGJlaW5nIHVzZWQuIFdlIHJlcXVpcmUgR05VIG1ha2UgaW4gYWxtb3N0CgkgIGV2ZXJ5IE1ha2VmaWxlIGFueXdheS4KCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBBTV9QUk9HX0NDX0NfTyBhcyBhIGNvbXBpbGVyIHRoYXQgYWNjZXB0cyBib3RoIC1jIGFuZCAtbwoJICBhdCB0aGUgc2FtZSB0aW1lIGlzIHJlcXVpcmVkIGZvciBwZXIgdGFyZ2V0IGZsYWdzLgoKMjAwOC0wMS0wOSAxODoyMzozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKCkgYW5kIGRlcHJlY2F0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoX2dzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwKCSAgKGdzdF9wbHVnaW5fcmVnaXN0ZXJfc3RhdGljKSwgKF9nc3RfcGx1Z2luX2luaXRpYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9yZWdpc3Rlcl9mdW5jKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6IChHU1RfUExVR0lOX0RFRklORV9TVEFUSUMpOgoJICBBUEk6IGFkZCBnc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpIGFuZCBkZXByZWNhdGUKCSAgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLCBzaW5jZSBpdCdzIG5vdCBwb3J0YWJsZQoJICAoIzQ5ODkyNCkuCgkgIEFsc28sIGluIF9nc3RfcGx1Z2luX3JlZ2lzdGVyX3N0YXRpYygpLCBtYWtlIHN1cmUgdG8gY2FsbAoJICBnX3RocmVhZF9pbml0KCkgYmVmb3JlIGNhbGxpbmcgR0xpYiBmdW5jdGlvbnMgc3VjaCBhcwoJICBnX2xpc3RfYXBwZW5kKCkgaWYgd2UncmUgbm90IGluaXRpYWxpc2VkIHlldCwgc2luY2UgdGhhdAoJICBtYXkgbGVhZCB0byByYW5kb20gY3Jhc2hlcyB3aXRoIG9sZGVyIEdTbGljZS9HTGliIHZlcnNpb25zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgQWRhcHQgdW5pdCB0ZXN0IHRvIGFib3ZlIGNoYW5nZXMuCgoyMDA4LTAxLTA5IDE2OjM2OjM0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogWWV0IGFub3RoZXIgZ3JhdHVpdG91cyBHU3RyaW5nIG1pY3JvLW9wdGltaXNhdGlvbjogYWRkIGEgKHByaXZhdGUpIGZ1bmN0aW9uIHRoYXQgc2VyaWFsaXNlcyBhIHN0cnVjdHVyZSBhcHBlbmRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOiAoU1RSVUNUVVJFX0VTVElNQVRFRF9TVFJJTkdfTEVOKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfQVNDSUlfSVNfU1RSSU5HKSwKCSAgKHByaXZfZ3N0X3N0cnVjdHVyZV9hcHBlbmRfdG9fZ3N0cmluZyksIChnc3Rfc3RydWN0dXJlX3RvX3N0cmluZyk6CgkgIFlldCBhbm90aGVyIGdyYXR1aXRvdXMgR1N0cmluZyBtaWNyby1vcHRpbWlzYXRpb246IGFkZCBhIChwcml2YXRlKQoJICBmdW5jdGlvbiB0aGF0IHNlcmlhbGlzZXMgYSBzdHJ1Y3R1cmUgYXBwZW5kaW5nIHRvIGFuIGV4aXN0aW5nCgkgIEdTdHJpbmcsIHNvIHRoYXQgd2hlbiB3ZSBzZXJpYWxpc2UgY2FwcyB3ZSBkb24ndCBuZWVkIHRvIGFsbG9jK2ZyZWUKCSAgYSB0aHJvd2F3YXkgR1N0cmluZyBmb3IgZWFjaCBzdHJ1Y3R1cmUgKGVhY2ggb2Ygd2hpY2ggYWxzbyBlbnRhaWxpbmcKCSAgbXVsdGlwbGUgcmVhbGxvY3Mgb24gdGhlIHdheSk7IGFsc28gdXNlIGdfc3RyaW5nX3NpemVkX25ldygpIGluCgkgIHZhcmlvdXMgcGxhY2VzIHdpdGggYW4gYXBwcm94aW1hdGUgc3RyaW5nIGxlbmd0aCB0byBhdm9pZCByZWFsbG9jcwoJICB3aXRoaW4gR1N0cmluZy4gU2VlICM1MDAxNDMuCgoyMDA4LTAxLTA5IDE1OjA1OjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBbHdheXMgY2hlY2sgVVRGLTggY29uZm9ybWFuY2Ugb2Ygc3RydWN0dXJlIHN0cmluZ3MgYW5kIG5vdCBvbmx5IGlmIHRoZSBkZWJ1Z2dpbmcgc3lzdGVtIGlzIGVuYWJsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbHVlKToKCSAgQWx3YXlzIGNoZWNrIFVURi04IGNvbmZvcm1hbmNlIG9mIHN0cnVjdHVyZSBzdHJpbmdzIGFuZCBub3Qgb25seQoJICBpZiB0aGUgZGVidWdnaW5nIHN5c3RlbSBpcyBlbmFibGVkOyByZWFzb25pbmc6IHRoZSBiZWhhdmlvdXIgb2YKCSAgdGhlIGFjdHVhbCBjb2RlIHNob3VsZG4ndCByZWFsbHkgY2hhbmdlIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZQoJICBkZWJ1Z2dpbmcgc3lzdGVtIGlzIGVuYWJsZWQgb3Igbm90ICgjNTA4MjkxKS4KCjIwMDgtMDEtMDkgMTM6NDg6MDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1ha2VmaWxlLmFtOiBSZW1vdmUgb2xkIGNvdmVyYWdlIHRhcmdldCBpbiBmYXZvdXIgb2YgIm1ha2UgbGNvdiIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBSZW1vdmUgb2xkIGNvdmVyYWdlIHRhcmdldCBpbiBmYXZvdXIgb2YgIm1ha2UgbGNvdiIuCgoyMDA4LTAxLTA5IDEyOjI1OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFRoZSBzdGFydCBzZWdtZW50IGZvciByZXZlcnNlIHBsYXliYWNrIGdvZXMgZnJvbSBzdGFydCB0byBsYXN0X3N0b3AuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFRoZSBzdGFydCBzZWdtZW50IGZvciByZXZlcnNlIHBsYXliYWNrIGdvZXMgZnJvbSBzdGFydCB0byBsYXN0X3N0b3AuCgoyMDA4LTAxLTA5IDEyOjIyOjIyICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGdzdC9nc3RjbG9jay5oOiBDYXN0IHRoZSByZXN1bHRzIGZyb20gdGhlIHRpbWV2YWwvc3BlY190b190aW1lIG1hY3JvcyB0byB3aGF0IHRoZSBkb2NzIHNheSBpdCBjYXN0cyB0bywgYSBHc3RDbG9ja1RpbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF4aXMgY29tPgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBDYXN0IHRoZSByZXN1bHRzIGZyb20gdGhlIHRpbWV2YWwvc3BlY190b190aW1lIG1hY3JvcyB0byB3aGF0IHRoZQoJICBkb2NzIHNheSBpdCBjYXN0cyB0bywgYSBHc3RDbG9ja1RpbWUuIGZpeGVzICM1MDgxNzUuCgoyMDA4LTAxLTA5IDEyOjE5OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBVcGRhdGUgc29tZSBjb21tZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBVcGRhdGUgc29tZSBjb21tZW50cy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBJbXByb3ZlIHByaW50aW5nIG9mIGZsYWdzLgoKMjAwOC0wMS0wOCAyMToxMzo1OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBQcmludCBlbGVtZW50IG5hbWUgd2l0aCBnX3dhcm5pbmcoKSBpZiB0aGVyZSdzIGEgcHJvYmxlbSB3aXRoIHRoZSB1bml0IHNpemUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKToKCSAgUHJpbnQgZWxlbWVudCBuYW1lIHdpdGggZ193YXJuaW5nKCkgaWYgdGhlcmUncyBhIHByb2JsZW0KCSAgd2l0aCB0aGUgdW5pdCBzaXplLgoKMjAwOC0wMS0wOCAwMjowNzozOCArMDAwMCAgRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0LzogRml4IGVtcHR5IHByb3RvdHlwZXMuICBGaXhlcyBidWcgIzUwNzk1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAZ21haWwuY29tPgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIEZpeCBlbXB0eSBwcm90b3R5cGVzLiAgRml4ZXMgYnVnICM1MDc5NTcuCgoyMDA4LTAxLTA4IDAyOjAxOjM0ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZmFxL2RlcGVuZGVuY2llcy54bWw6IEZpeCB0eXBvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOiBGaXggdHlwby4KCjIwMDgtMDEtMDcgMTE6MjM6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9uJ3QgdXBkYXRlIHRoZSBsYXN0X3N0b3AgcG9zaXRpb24gaW4gZG9fc2VlaywgdGhhdCdzIHRoZSBwb3NpdGlvbiB3ZSBkaWQgYSBzZWVrIHRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBEb24ndCB1cGRhdGUgdGhlIGxhc3Rfc3RvcCBwb3NpdGlvbiBpbiBkb19zZWVrLCB0aGF0J3MgdGhlIHBvc2l0aW9uIHdlCgkgIGRpZCBhIHNlZWsgdG8uCgkgIFJlYWQgYmFja3dhcmRzIHdoZW4gd2UgaGF2ZSBhIG5lZ2F0aXZlIHJhdGUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoZXZlbnRfZnVuYyksICh3YWl0X2VvcyksCgkgIChzZXR1cF9maWxlc3JjKSwgKGNsZWFudXBfZmlsZXNyYyksIChHU1RfU1RBUlRfVEVTVCksCgkgIChmaWxlc3JjX3N1aXRlKToKCSAgQWRkIGNoZWNrIGZvciByZXZlcnNlIHJlYWRpbmcuCgoyMDA4LTAxLTA3IDA5OjQ3OjQ5ICswMDAwICBBbGV4aXMgQmFsbGllciA8YWJhbGxpZXJAZ2VudG9vLm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogRGVjaWRlIHdoaWNoIGhlYWRlciB0byBpbmNsdWRlIGJhc2VkIG9uIHRoZSB1c2VybGFuZCBBQkkgdGFyZ2V0IGFuZCBub3QgdGhlIGtlcm5lbC9jcHUuIEZpeCB1cCBzdHJ1Y3R1ci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXhpcyBCYWxsaWVyIDxhYmFsbGllciBhdCBnZW50b28gb3JnPgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjNjQuaDoKCSAgRGVjaWRlIHdoaWNoIGhlYWRlciB0byBpbmNsdWRlIGJhc2VkIG9uIHRoZSB1c2VybGFuZCBBQkkgdGFyZ2V0CgkgIGFuZCBub3QgdGhlIGtlcm5lbC9jcHUuIEZpeCB1cCBzdHJ1Y3R1cmUgc2l6ZXMgb2YgcHBjNjQgaGVhZGVyCgkgIGZvciA2NC1iaXQgdXNlcmxhbmQgKCM1MDM1OTApLiAgTWlnaHQgbmVlZCBzb21ldGhpbmcgc2ltaWxhciBmb3IKCSAgeDg2IHRvby4KCjIwMDgtMDEtMDUgMTM6NDU6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBMb2cgdGhlIHJlYXNvbiB3aHkgZm9wZW4gZmFpbHMgaW4gYWRkaXRpb24gdG8gdGhlIGZhY3QgdGhhdCBpdCBmYWlsZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6IChfZ3N0X2RlYnVnX2Jpbl90b19kb3RfZmlsZSk6CgkgIExvZyB0aGUgcmVhc29uIHdoeSBmb3BlbiBmYWlscyBpbiBhZGRpdGlvbiB0byB0aGUgZmFjdCB0aGF0IGl0IGZhaWxlZC4KCjIwMDgtMDEtMDQgMTg6NDQ6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9wYXJzZS5sOiBVc2UgIiVvcHRpb24gbmV2ZXItaW50ZXJhY3RpdmUiIHRvIHByZXZlbnQgdXNlbGVzcyBjYWxscyB0byBpc2F0dHkoKSBvbiBldmVyeSBpbnB1dCB3aGVuIHBhcnNpbmcuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgVXNlICIlb3B0aW9uIG5ldmVyLWludGVyYWN0aXZlIiB0byBwcmV2ZW50IHVzZWxlc3MgY2FsbHMgdG8gaXNhdHR5KCkKCSAgb24gZXZlcnkgaW5wdXQgd2hlbiBwYXJzaW5nLiBBbHNvIHVzZSAiJW9wdGlvbiBub2lucHV0IiB0byBub3QgZGVmaW5lCgkgIHRoZSBzdGF0aWMgaW5wdXQveXlpbnB1dCBmdW5jdGlvbnMgd2hpY2ggd2UgZG9uJ3QgdXNlIGFueXdheS4gVGhpcwoJICByZW1vdmVzIGEgY29tcGlsZXIgd2FybmluZyB3aXRoIGdjYyA0LjMgYW5kIHNhdmVzIHNvbWUgYnl0ZXMgaW4gdGhlCgkgIGxpYnJhcnkuCgkgICogZ3N0L3BhcnNlL2xleC5fZ3N0X3BhcnNlX3l5LnByZS5jOgoJICBSZWdlbmVyYXRlZCBmb3IgdGhlIGFib3ZlIGNoYW5nZS4KCjIwMDgtMDEtMDQgMTg6Mzk6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IGNyYXNoIHdoZW4gdHJ5aW5nIHRvIGZpeGF0ZSBhbmQgZW1wdHkgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZml4YXRlX3ZhbHVlKToKCSAgRG9uJ3QgY3Jhc2ggd2hlbiB0cnlpbmcgdG8gZml4YXRlIGFuZCBlbXB0eSBsaXN0LgoJICBGaXhlcyAjNTA2NjQzLgoKMjAwOC0wMS0wMyAwOTo0Mzo0MSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBDbGFyaWZ5IHRoZSBjb21tZW50cyB0byBtYWtlIHRoZSB1c2FnZSBvZiB0aGlzIHNjcmlwdCBhbmQgd2hhdCBpdCBkb2VzIGVhc2llciB0byB1bmRlcnN0YW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIENsYXJpZnkgdGhlIGNvbW1lbnRzIHRvIG1ha2UgdGhlIHVzYWdlIG9mIHRoaXMgc2NyaXB0IGFuZCB3aGF0IGl0CgkgIGRvZXMgZWFzaWVyIHRvIHVuZGVyc3RhbmQuCgoyMDA4LTAxLTAxIDE3OjEwOjMyICswMDAwICBUaGlqcyBWZXJtZWlyIDx0aGlqc3Zlcm1laXJAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6IEFkZCBtb3JlIG9wdGlvbnMgdG8gZ3N0LXBsb3QtdGltZWxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6CgkgIEFkZCBtb3JlIG9wdGlvbnMgdG8gZ3N0LXBsb3QtdGltZWxpbmUKCjIwMDctMTItMzEgMTk6MTE6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6IFNvbWUgbW9yZSBpbmZvIG9uIGhvdyB0aGUgc3RyZWFtX3RpbWUgaW4gR3N0QmFzZVNpbmsgaXMgZG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OgoJICBTb21lIG1vcmUgaW5mbyBvbiBob3cgdGhlIHN0cmVhbV90aW1lIGluIEdzdEJhc2VTaW5rIGlzIGRvbmUuCgoyMDA3LTEyLTMwIDEzOjM2OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogcmVtb3ZlIGJvZ3VzIGNoYW5nZWxvZyBlbnRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IHJlbW92ZSBib2d1cyBjaGFuZ2Vsb2cgZW50cnkKCjIwMDctMTItMzAgMTM6MzE6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IFB1dCBiYWNrIHRoZSB0Y2FzZV9zZXRfdGltZW91dCgpLCBhcHBhcmVudGx5IGl0J3MgbmVlZGVkIGFmdGVyIGFsbDsgZml4IGl0IHVwIGluIGEgd2F5IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgUHV0IGJhY2sgdGhlIHRjYXNlX3NldF90aW1lb3V0KCksIGFwcGFyZW50bHkgaXQncyBuZWVkZWQgYWZ0ZXIKCSAgYWxsOyBmaXggaXQgdXAgaW4gYSB3YXkgdGhhdCBtYWtlcyB0aGluZ3Mgd29yayB3aXRoIHZhbGdyaW5kIHRvby4KCjIwMDctMTItMzAgMTI6MjI6NDkgKzAwMDAgIFRoaWpzIFZlcm1laXIgPHRoaWpzdmVybWVpckBnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBhZGQgd2FybmluZyB3aGVuIGZhaWxlZCB0byBvcGVuIGZpbGUgZm9yIHdyaXRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgYWRkIHdhcm5pbmcgd2hlbiBmYWlsZWQgdG8gb3BlbiBmaWxlIGZvciB3cml0aW5nCgoyMDA3LTEyLTI4IDE0OjM0OjM0ICswMDAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJICBnc3QvZ3N0dmFsdWUuYzogT3B0aW1pc2F0aW9uOiBiYWlsIG91dCBvZiB0aGUgbG9vcCBhcyBlYXJseSBhcyBwb3NzaWJsZSAoIzUwMDE0MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogTGF1cmVudCBHbGF5YWwgIDxzcGdsZWdsZSB5YWhvbyBmcj4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIE9wdGltaXNhdGlvbjogYmFpbCBvdXQgb2YgdGhlIGxvb3AgYXMgZWFybHkgYXMgcG9zc2libGUgKCM1MDAxNDMpLgoKMjAwNy0xMi0yOCAxNDoxNTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEJ1bmNoIG9mIGdyYXR1aXRvdXMgbmFuby1vcHRpbWlzYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfdG9fc3RyaW5nKToKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2NvbnN0cnVjdF90ZXJtX2NvbG9yKToKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2h2KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2R1bXBfbWVtKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfYW55X2xpc3QpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9hbnlfbGlzdF9zdHJpbmcpOgoJICBCdW5jaCBvZiBncmF0dWl0b3VzIG5hbm8tb3B0aW1pc2F0aW9ucy4KCjIwMDctMTItMjggMTM6NTc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IEZpeCBsZWFrIGluIHVuaXQgdGVzdCAoYnVzIHN5bmMgaGFuZGxlciBtdXN0IHVucmVmIHRoZSBtZXNzYWdlIGlmIGl0IHJldHVybnMgR1NUX0JVU19EUk8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoYXN5bmNfZG9uZV9mdW5jKSwKCSAgKGFzeW5jX2RvbmVfZW9zX2Z1bmMpOgoJICBGaXggbGVhayBpbiB1bml0IHRlc3QgKGJ1cyBzeW5jIGhhbmRsZXIgbXVzdCB1bnJlZiB0aGUgbWVzc2FnZQoJICBpZiBpdCByZXR1cm5zIEdTVF9CVVNfRFJPUCkuIERvbid0IGZpZGRsZSB3aXRoIHRoZSBkZWZhdWx0IHRlc3QKCSAgdGltZW91dCwgdGhpcyBpcyBzbWFsbGVyIHRoYW4gdGhlIGN1cnJlbnQgcHJlY29uZmlndXJlZCB2YWx1ZQoJICB2aWEgQ0tfREVGQVVMVF9USU1FT1VULCBhbmQgYWxzbyBicmVha3MgdGhpbmdzIHdpdGggdmFsZ3JpbmQKCSAgYmVjYXVzZSBpdCBvdmVycmlkZXMgdGhlIHZhbHVlIHNwZWNpZmllZCBpbiBDS19ERUZBVUxUX1RJTUVPVVQuCgoyMDA3LTEyLTI0IDE5OjIxOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBBZGQgYnVnIHRoYXQgd2FzIGZpeGVkIHdpdGggbGFzdCBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGQgYnVnIHRoYXQgd2FzIGZpeGVkIHdpdGggbGFzdCBjb21taXQuCgoyMDA3LTEyLTI0IDE5OjExOjI5ICswMDAwICBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGVAeWFob28uZnI+CgoJICBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzdGRpb19leHQuaCBmb3IgdGhlIGZpbGVzaW5rIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBQYXRjaCBieTogTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlIGF0IHlhaG9vIGRvdCBmcj4KCSAgKiBjb25maWd1cmUuYWM6CgkgIENoZWNrIGZvciBzdGRpb19leHQuaCBmb3IgdGhlIGZpbGVzaW5rIGNoYW5nZXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoYnVmZmVyX21vZGVfZ2V0X3R5cGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KSwgKGdzdF9maWxlX3NpbmtfaW5pdCksCgkgIChnc3RfZmlsZV9zaW5rX2Rpc3Bvc2UpLCAoZ3N0X2ZpbGVfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVfc2lua19vcGVuX2ZpbGUpLAoJICAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIEFkZCB0d28gcHJvcGVydGllcyB0byBjb250cm9sIHRoZSBidWZmZXJpbmcgbW9kZSBhbmQgc2l6ZS4KCSAgQVBJOiBHc3RGaWxlU2luazo6YnVmZmVyLW1vZGUKCSAgQVBJOiBHc3RGaWxlU2luazo6YnVmZmVyLXNpemUKCjIwMDctMTItMjQgMTQ6MzU6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogQWRkIHNvbWUgbW9yZSBkb2NzIHRvIGV4cGxhaW4gd2h5IGEgRklYTUUgd2FzIHdyb25nbHkgYWRkZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCk6CgkgIEFkZCBzb21lIG1vcmUgZG9jcyB0byBleHBsYWluIHdoeSBhIEZJWE1FIHdhcyB3cm9uZ2x5IGFkZGVkLgoKMjAwNy0xMi0yMiAxMjo0ODoyNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBGaXggdHlwbyBpbiB0aGUgZ3N0X29iamVjdF97cmVmLHVucmVmfSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIEZpeCB0eXBvIGluIHRoZSBnc3Rfb2JqZWN0X3tyZWYsdW5yZWZ9IGRvY3VtZW50YXRpb24uCgoyMDA3LTEyLTIxIDIxOjE3OjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBEb24ndCB1c2UgR1NUX1BMVUdJTl9ERUZJTkVfU1RBVElDLCBpdCBpcyBub3QgcG9ydGFibGUgYW5kIGlzIGdvaW5nIHRvIGJlIGRlcHJlY2F0ZWQgKHNlZSAjNDk4OTI0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgRG9uJ3QgdXNlIEdTVF9QTFVHSU5fREVGSU5FX1NUQVRJQywgaXQgaXMgbm90IHBvcnRhYmxlIGFuZCBpcwoJICBnb2luZyB0byBiZSBkZXByZWNhdGVkIChzZWUgIzQ5ODkyNCkuCgoyMDA3LTEyLTIxIDIwOjU4OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHR5cGVmaW5kLmM6IE1ha2UgZ3N0X3R5cGVfZmluZF9yZWdpc3RlciB3b3JrIGZvciBzdGF0aWMgdHlwZWZpbmQgZnVuY3Rpb25zLCBpZS4gYWxsb3cgcGFzc2luZyBwbHVnaW4gPT0gTlVMTCAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgIE1ha2UgZ3N0X3R5cGVfZmluZF9yZWdpc3RlciB3b3JrIGZvciBzdGF0aWMgdHlwZWZpbmQgZnVuY3Rpb25zLAoJICBpZS4gYWxsb3cgcGFzc2luZyBwbHVnaW4gPT0gTlVMTCAocHJlcmVxdWlzaXRlIGZvciAjNDk4OTI0KS4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X3JlZ2lzdGVyKToKCSAgU21hbGwgZG9jcyBhZGRpdGlvbi4KCjIwMDctMTItMjEgMTM6NTQ6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFJlYWxseSB1bmxpbmsgdGhlIHBlZXIgcGFkIGluc3RlYWQgb2Ygc2V0dGluZyB0aGUgcGVlciBwb2ludGVyIHRvIE5VTEwgd2hlbiB3ZSBkaXNwb3NlIHRoZSBwYWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSk6CgkgIFJlYWxseSB1bmxpbmsgdGhlIHBlZXIgcGFkIGluc3RlYWQgb2Ygc2V0dGluZyB0aGUgcGVlciBwb2ludGVyIHRvIE5VTEwKCSAgd2hlbiB3ZSBkaXNwb3NlIHRoZSBwYWQuCgkgIFRoaXMgY29ycmVjdGx5IGNhbGxzIHRoZSB1bmxpbmsgZnVuY3Rpb25zIGFuZCBtYWtlcyBzdXJlIHRoYXQgdGhlIHBlZXIKCSAgZG9lcyBub3QgaGF2ZSBhIGhhbmRsZSB0byBpbnZhbGlkIG1lbW9yeS4gU2VlICM1MDQ2NzEuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BhZF9zdWl0ZSk6CgkgIEFkZCB0ZXN0c3VpdGUgZm9yIGFib3ZlIGNhc2UuCgoyMDA3LTEyLTIwIDA5OjIwOjI3ICswMDAwICBQZXRlciBLamVsbGVyc3RlZHQgPHBrakBheGlzLmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IEZpeCBkZXRlY3Rpb24gb2YgdGhlIGNoZWNrIHZlcnNpb24gd2UncmUgY29tcGlsaW5nIGFnYWluc3QgKHdvdWxkIG90aGVyd2lzZSBicmVhayBpZiBjaGVjay4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF4aXMgY29tPgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEZpeCBkZXRlY3Rpb24gb2YgdGhlIGNoZWNrIHZlcnNpb24gd2UncmUgY29tcGlsaW5nIGFnYWluc3QgKHdvdWxkCgkgIG90aGVyd2lzZSBicmVhayBpZiBjaGVjayBnb2VzIHYwLjEwLjApOyBjb3JyZWN0bHkgcmVwb3J0IHRoZQoJICBuYW1lIG9mIHRoZSBmYWlsZWQgdGVzdCBhZ2FpbiBpbiBjYXNlIG9mIGZhaWx1cmUsIGluc3RlYWQgb2YKCSAganVzdCAndGYnIChmaXhlcyAjNTA0NDk5KS4KCjIwMDctMTItMTkgMTc6NDk6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWxsb3cgc2VuZGluZyBFT1MgdG8gdGhlIHNvdXJjZSB0byBtYWtlIGl0IHNlbmQgb3V0IGFuIEVPUyBldmVudCBmcm9tIHRoZSBzdHJlYW1pbmcgdGhyZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQWxsb3cgc2VuZGluZyBFT1MgdG8gdGhlIHNvdXJjZSB0byBtYWtlIGl0IHNlbmQgb3V0IGFuIEVPUyBldmVudCBmcm9tCgkgIHRoZSBzdHJlYW1pbmcgdGhyZWFkLgoJICBVcGRhdGUgZG9jcyBhbmQgZGVwcmVjYXRlIHRoZSBvbGQgTlVMTC9SRUFEWSBzaHV0ZG93biBtZXRob2QuCgkgICogdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfYmFzZXNyY19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgZm9yIGNvbnRyb2xsZWQgc2h1dGRvd24uCgoyMDA3LTEyLTE5IDEyOjQ4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zeW5jaHJvbmlzYXRpb24udHh0OiBTbWFsbCB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIFNtYWxsIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50X2Z1bGwpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKToKCSAgVGhlIHNlZWsgZm9ybWF0IGNhbiBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgc2VnbWVudCBmb3JtYXQgd2hlbiB0aGUgc3RhcnQKCSAgYW5kIHN0b3AgdmFsdWVzIGFyZSBub3QgdG8gYmUgdXBkYXRlZCwgd2hlbiB3ZSBvbmx5IGRvIGEgcmF0ZSBjaGFuZ2UgZm9yCgkgIGV4YW1wbGUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zZWdtZW50X3N1aXRlKToKCSAgQWRkIGEgdGVzdGNhc2UgZm9yIHRoZSByYXRlLW9ubHkgc2Vla3MsIGNoZWNraW5nIHRoYXQgdGhlIGZvcm1hdCBpcwoJICBjb3JyZWN0bHkgaWdub3JlZCB3aGVuIHN0YXJ0IGFuZCBzdG9wIGFyZSBub3QgdXBkYXRlZC4KCjIwMDctMTItMTggMTM6Mzg6MzEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnksIGdzdGVudW10eXBlcy5jIGNoYW5nZXMgd2VyZSBub3QgY29tbWl0dGVkIGJlY2F1c2UgdGhlcmUgd2VyZSBub25lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENoYW5nZUxvZyBzdXJnZXJ5LCBnc3RlbnVtdHlwZXMuYyBjaGFuZ2VzIHdlcmUgbm90IGNvbW1pdHRlZCBiZWNhdXNlIHRoZXJlIHdlcmUgbm9uZQoKMjAwNy0xMi0xOCAxMzoxODozNSArMDAwMCAgTWF0dGhpYXMgQm9sdGUgPHBob3RvbkBtYWlsLnVwYi5kZT4KCgkgIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzogU29tZSBpbmRlbnRpb24gZml4ZXMgYnkgZ3N0LWluZGVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOiAocmVnaXN0ZXJfZ3N0X2J1ZmZlcl9mbGFnKSwKCSAgKHJlZ2lzdGVyX2dzdF9idWZmZXJfY29weV9mbGFncyksIChyZWdpc3Rlcl9nc3RfY2xvY2tfZmxhZ3MpLAoJICAocmVnaXN0ZXJfZ3N0X2RlYnVnX2dyYXBoX2RldGFpbHMpLAoJICAocmVnaXN0ZXJfZ3N0X3N0YXRlX2NoYW5nZV9yZXR1cm4pLCAocmVnaXN0ZXJfZ3N0X3N0YXRlX2NoYW5nZSksCgkgIChyZWdpc3Rlcl9nc3RfZWxlbWVudF9mbGFncyksIChyZWdpc3Rlcl9nc3RfY29yZV9lcnJvciksCgkgIChyZWdpc3Rlcl9nc3RfbGlicmFyeV9lcnJvciksIChyZWdpc3Rlcl9nc3RfcmVzb3VyY2VfZXJyb3IpLAoJICAocmVnaXN0ZXJfZ3N0X3N0cmVhbV9lcnJvciksIChyZWdpc3Rlcl9nc3RfZXZlbnRfdHlwZV9mbGFncyksCgkgIChyZWdpc3Rlcl9nc3RfZXZlbnRfdHlwZSksIChyZWdpc3Rlcl9nc3RfaW5kZXhfZW50cnlfdHlwZSksCgkgIChyZWdpc3Rlcl9nc3RfYXNzb2NfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X21lc3NhZ2VfdHlwZSksCgkgIChyZWdpc3Rlcl9nc3RfbWluaV9vYmplY3RfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X3BhZF9saW5rX3JldHVybiksCgkgIChyZWdpc3Rlcl9nc3RfZmxvd19yZXR1cm4pLCAocmVnaXN0ZXJfZ3N0X3BhZF90ZW1wbGF0ZV9mbGFncyksCgkgIChyZWdpc3Rlcl9nc3RfcGlwZWxpbmVfZmxhZ3MpLCAocmVnaXN0ZXJfZ3N0X3BsdWdpbl9lcnJvciksCgkgIChyZWdpc3Rlcl9nc3RfdGFnX21lcmdlX21vZGUpLCAocmVnaXN0ZXJfZ3N0X2FsbG9jX3RyYWNlX2ZsYWdzKSwKCSAgKHJlZ2lzdGVyX2dzdF90eXBlX2ZpbmRfcHJvYmFiaWxpdHkpLCAocmVnaXN0ZXJfZ3N0X3BhcnNlX2Vycm9yKToKCSAgU29tZSBpbmRlbnRpb24gZml4ZXMgYnkgZ3N0LWluZGVudC4KCSAgUGF0Y2ggYnk6IE1hdHRoaWFzIEJvbHRlIDxwaG90b24gYXQgbWFpbCBkb3QgdXBiIGRvdCBkZT4KCSAgKiB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGNvbnRyb2xsZXIudmNwcm9qOgoJICAqIHdpbjMyL3ZzOC9saWJnc3RyZWFtZXIudmNwcm9qOgoJICBGaXggY29tcGlsYXRpb24gd2l0aCBWUzggYW5kIGluY2x1ZGUgc29tZSBtaXNzaW5nIGZpbGVzLgoKMjAwNy0xMi0xOCAxMjowMzoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IFNtYWxsIGRvY3MgYWRkaXRpb246IG1lbnRpb24gdGhhdCB0aGUgc3RyaW5ncyByZXR1cm5lZCBieSBnc3RfdGFnX2xpc3RfZ2V0X3N0cmluZyooKSBhcmUgaW4gVVRGLTggZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICBTbWFsbCBkb2NzIGFkZGl0aW9uOiBtZW50aW9uIHRoYXQgdGhlIHN0cmluZ3MgcmV0dXJuZWQgYnkKCSAgZ3N0X3RhZ19saXN0X2dldF9zdHJpbmcqKCkgYXJlIGluIFVURi04IGVuY29kaW5nLgoKMjAwNy0xMi0xNyAxOTo1OTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2VmaWxlLmFtOiBUaGUgY2hlY2stZXhwb3J0cyBzdHVmZiBtb3ZlZCB0byBjb21tb24vd2luMzIubWFrLCBzbyBpbmNsdWRlIHRoYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBUaGUgY2hlY2stZXhwb3J0cyBzdHVmZiBtb3ZlZCB0byBjb21tb24vd2luMzIubWFrLCBzbyBpbmNsdWRlIHRoYXQuCgoyMDA3LTEyLTE3IDE2OjM4OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1ha2UgX3dhaXRfcGxheWluZygpIG5vdCBjaGVjayBhbnkgdmFyaWFibGVzIHNvIHRoYXQgd2UgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbiBmcm9tIHN1YmNsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX3NldF9wbGF5aW5nKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIF93YWl0X3BsYXlpbmcoKSBub3QgY2hlY2sgYW55IHZhcmlhYmxlcyBzbyB0aGF0IHdlIGNhbiBjYWxsIHRoaXMKCSAgZnVuY3Rpb24gZnJvbSBzdWJjbGFzc2VzLiBNb3ZlIHRoZSBjaGVja3MgZWxzZXdoZXJlIHNpbWlsYXIgdG8KCSAgX3dhaXRfcHJlcm9sbCgpIGluIGJhc2VzaW5rLgoJICBBZGQgc29tZSBkZWJ1Z2dpbmcuCgkgIE9ubHkgc2lnbmFsIHRoZSBMSVZFIGNvbmQgd2hlbiB3ZSBhcmUgZ29pbmcgYmFjayB0byBQTEFZSU5HLgoKMjAwNy0xMi0xNiAxODoyOToyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBVc2UgZ19yZW1vdmUoKSBhbmQgZ19yZW5hbWUoKS4gQ2hlY2sgcmVzdWx0IG9mIGdfcmVuYW1lKCksIGFuZCBkb24ndCBsZWFrIHRoZSBvcGVuIGZpbGUgZGVzYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpOgoJICBVc2UgZ19yZW1vdmUoKSBhbmQgZ19yZW5hbWUoKS4gQ2hlY2sgcmVzdWx0IG9mIGdfcmVuYW1lKCksIGFuZAoJICBkb24ndCBsZWFrIHRoZSBvcGVuIGZpbGUgZGVzY3JpcHRvciBpZiB3ZSBlcnJvciBvdXQgd2hlbiB3cml0aW5nLgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pLCAoZ3N0X3JlZ2lzdHJ5X3htbF93cml0ZV9jYWNoZSk6CgkgIE11c3QgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiBjbG9zZSgpIGFmdGVyIHdyaXRpbmcgb3V0IHRoZSBuZXcKCSAgcmVnaXN0cnkgZmlsZS4gIFNvbWV0aW1lcyB3cml0ZSBwcm9ibGVtcyBzdWNoIGFzIG91dC1vZi1kaXNrc3BhY2UKCSAgYXJlIG9ubHkgcmVwb3J0ZWQgd2hlbiB0aGUgZmlsZSBpcyBjbG9zZWQgYW5kIG5vdCBhbHJlYWR5IGR1cmluZwoJICB0aGUgd3JpdGUuICBUaGlzIG1heSBoYXZlIGNhdXNlZCBwYXJ0aWFsL2Jyb2tlbiByZWdpc3RyeSBmaWxlcyBpbgoJICBzb21lIHJhcmUgY2lyY3Vtc3RhbmNlcy4gU2hvdWxkIGZpeCAjNTAzNjc1LgoKMjAwNy0xMi0xNiAxNzozNzoxMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvOiBJZ25vcmUgZmlsZXMgZ2VuZXJhdGVkIGJ5IG5ldyBjb21tb24vKiBtb2RpZmljYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0Ly5jdnNpZ25vcmU6CgkgICogZG9jcy9saWJzLy5jdnNpZ25vcmU6CgkgICogZG9jcy9wbHVnaW5zLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBmaWxlcyBnZW5lcmF0ZWQgYnkgbmV3IGNvbW1vbi8qIG1vZGlmaWNhdGlvbnMKCjIwMDctMTItMTUgMTU6MTk6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogWWVzLCB5b3UgY2FuIGFsc28gaGF2ZSBhIDxUQUI+IGlmIHlvdSB3YW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIFllcywgeW91IGNhbiBhbHNvIGhhdmUgYSA8VEFCPiBpZiB5b3Ugd2FudC4KCjIwMDctMTItMTUgMTQ6NTg6NTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjogQWRkIG5ldyBiYXNldHJhbnNmb3JtIEFQSSB0byB3aW4gZXhwb3J0IGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgQWRkIG5ldyBiYXNldHJhbnNmb3JtIEFQSSB0byB3aW4gZXhwb3J0IGZpbGUuCgoyMDA3LTEyLTE1IDE0OjQyOjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IEFkanVzdCB0aGUgdGVzdCB0byB0aGUgcmVmY291bnQgY2hhbmdlIHR3byBkYXlzIGFnby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJICBBZGp1c3QgdGhlIHRlc3QgdG8gdGhlIHJlZmNvdW50IGNoYW5nZSB0d28gZGF5cyBhZ28uCgoyMDA3LTEyLTE0IDIxOjM2OjUwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvZmFxL2dldHRpbmcueG1sOiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ2V0dGluZy54bWw6IEZpeCB0eXBvLgoKMjAwNy0xMi0xNCAxNjo1MjozOCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgQVBJOiBBZGQgZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUoKSB0byBjb250cm9sIHdoZXRoZXIgdGhlIGVsZW1lbnQgY29ycmVjdGx5IGhhbmRsZXMgR1NUX0JVRkZFUl9GTEFHX0dBUCBvciBzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfZ2FwX2F3YXJlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQVBJOiBBZGQgZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9nYXBfYXdhcmUoKSB0byBjb250cm9sIHdoZXRoZXIKCSAgdGhlIGVsZW1lbnQgY29ycmVjdGx5IGhhbmRsZXMgR1NUX0JVRkZFUl9GTEFHX0dBUCBvciBzaG91bGRuJ3QKCSAgZ2V0IGJ1ZmZlcnMgd2l0aCB0aGlzIGZsYWcgYXQgYWxsLiBGaXhlcyAjNTAzMjMxLgoKMjAwNy0xMi0xMyAxNjo0OTo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS86IFJlcGxhY2UgZ3N0X3BhZF9nZXRfcGFyZW50IGJ5IEdTVF9PQkpFQ1RfUEFSRU5UIGluc2lkZSBzdHJlYW1pbmcgdGhyZWFkLiBDb3JyZWN0IGxvZyBtZXNzYWdlIGluIGdzdGJhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgUmVwbGFjZSBnc3RfcGFkX2dldF9wYXJlbnQgYnkgR1NUX09CSkVDVF9QQVJFTlQgaW5zaWRlIHN0cmVhbWluZwoJICB0aHJlYWQuIENvcnJlY3QgbG9nIG1lc3NhZ2UgaW4gZ3N0YmFzZXNyYy5jLgoKMjAwNy0xMi0xMyAxMzo1OTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBGaXggcG9zc2libGUgY29tcGlsZXIgd2FybmluZyAoIzUwMzQxNykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZWxlbWVudF9maW5kX3VuY29ubmVjdGVkX3BhZCk6CgkgIEZpeCBwb3NzaWJsZSBjb21waWxlciB3YXJuaW5nICgjNTAzNDE3KS4KCjIwMDctMTItMTMgMTE6NDE6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IERvbid0IHVzZSBHU1RfQ0FUX0VWRU5UIGhlcmUgZm9yIGxvZ2dpbmcsIGl0IG1ha2VzIG5vIHNlbnNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCk6CgkgIERvbid0IHVzZSBHU1RfQ0FUX0VWRU5UIGhlcmUgZm9yIGxvZ2dpbmcsIGl0IG1ha2VzIG5vIHNlbnNlLgoKMjAwNy0xMi0xMyAxMDozMTozMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWRkIHN1cHBvcnQgZm9yIEdzdEZyYWN0aW9uIHByb3BlcnRpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIEFkZCBzdXBwb3J0IGZvciBHc3RGcmFjdGlvbiBwcm9wZXJ0aWVzLgoKMjAwNy0xMi0xMiAyMzoyMDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2VmaWxlLmFtOiBBZGQgY2hlY2stZXhwb3J0cyB0YXJnZXQgYW5kIHJ1biBpdCBhcyBwYXJ0IG9mICdtYWtlIGNoZWNrJyAoc2VlICM0OTkxNDAgYW5kICM0OTM5ODMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgQWRkIGNoZWNrLWV4cG9ydHMgdGFyZ2V0IGFuZCBydW4gaXQgYXMgcGFydCBvZiAnbWFrZSBjaGVjaycKCSAgKHNlZSAjNDk5MTQwIGFuZCAjNDkzOTgzKS4KCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGluZm8uYzogKF9wcml2X2dzdF9pbl92YWxncmluZCksIChfZ3N0X2RlYnVnX2luaXQpLAoJICAoX3ByaXZfZ3N0X2luX3ZhbGdyaW5kKToKCSAgKiBnc3QvZ3N0aW5mby5oOiAoR3N0TG9nRnVuY3Rpb24pOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAodHlwZV9maW5kX2RlYnVnKSwgKEdTVF9DQVRfREVGQVVMVCksCgkgIChnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6ICh0eXBlX2ZpbmRfZGVidWcpLCAoR1NUX0NBVF9ERUZBVUxUKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChHU1RfQ0FUX0RFRkFVTFQpLAoJICAoR1NUX0NBVF9ERUZBVUxUKSwgKHBhcmVudF9jbGFzcyksIChwcml2X2dzdF9jb250cm9sbGVyX2tleSksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwgKGdzdF9jb250cm9sbGVyX25ld19saXN0KSwKCSAgKF9nc3RfY29udHJvbGxlcl9kaXNwb3NlKSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuYzogKEdTVF9DQVRfREVGQVVMVCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKEdTVF9DQVRfREVGQVVMVCksCgkgIChHU1RfQ0FUX0RFRkFVTFQpLCAoZ3N0X29iamVjdF91bmNvbnRyb2xfcHJvcGVydGllcyksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sbGVyKSwgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xsZXIpLAoJICAoZ3N0X29iamVjdF9zdWdnZXN0X25leHRfc3luYyksIChnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzKSwKCSAgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfc291cmNlKSwgKGdzdF9vYmplY3RfZ2V0X2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9vYmplY3RfZ2V0X3ZhbHVlX2FycmF5cyksIChnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheSksCgkgIChnc3Rfb2JqZWN0X2dldF9jb250cm9sX3JhdGUpLCAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9yYXRlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogKEdTVF9DQVRfREVGQVVMVCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9saWIuYzogKEdTVF9DQVRfREVGQVVMVCk6CgkgIE1ha2Ugc29tZSBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgc3RhdGljIHN0YXRpYzsgcmVuYW1lIHNvbWUKCSAgcHJpdmF0ZSBzeW1ib2xzIHNvIHRoYXQgdGhleSBkb24ndCBnZXQgZXhwb3J0ZWQ7IGFkZCBzb21lIEZJWE1FCgkgIGNvbW1lbnRzIHNvIHdlIGNhbiBtb3ZlIGFjY2lkZW50YWxseSBleHBvcnRlZCBmdW5jdGlvbnMgaW50bwoJICBvdXIgcHJpdmF0ZSBzZWN0aW9uIGluIDAuMTEuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBnc3RfdXRpbHNfZ2V0X3RpbWVzdGFtcCgpLgoKMjAwNy0xMi0xMiAxNDowNDoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IEFkZCBtb3JlIG1pc3NpbmcgIlNpbmNlOiIgdGFncyB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgQWRkIG1vcmUgbWlzc2luZyAiU2luY2U6IiB0YWdzIHRvIGRvY3MuCgoyMDA3LTEyLTEyIDA2OjU4OjU2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dXRpbHMuYzogQWRkIG1pc2luZyAiU2luY2U6IiB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQWRkIG1pc2luZyAiU2luY2U6IiB0byBkb2NzLgoKMjAwNy0xMi0xMSAyMjowMzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBJbmNsdWRlICJnbGliLWNvbXBhdC1wcml2YXRlLmgiIHRvIGZpeCB0aGUgYnVpbGQgb24gc3lzdGVtIHdpdGggZ2xpYiA8IDIuMTAuIEZpeGVzICM1MDMxMzEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgSW5jbHVkZSAiZ2xpYi1jb21wYXQtcHJpdmF0ZS5oIiB0byBmaXggdGhlIGJ1aWxkIG9uIHN5c3RlbSB3aXRoCgkgIGdsaWIgPCAyLjEwLiBGaXhlcyAjNTAzMTMxLgoKMjAwNy0xMi0xMSAyMDozMjoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLio6IEFjdHVhbGx5IGl0cyBub3QgUFVSRSBhcyBpdCBnZXRzIHRoZSB0aW1lIGZyb20gZWxzZXdoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWN0dWFsbHkgaXRzIG5vdCBQVVJFIGFzIGl0IGdldHMgdGhlIHRpbWUgZnJvbSBlbHNld2hlcmUuCgoyMDA3LTEyLTExIDIwOjIzOjU4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBDaGFuZ2UgR1NUX0dFVF9USU1FU1RBTVAgaW50byBnc3RfdXRpbF9nZXRfdGltZXN0YW1wIGFuZCByZXBsYWNlIGFsbCB1c2VzIGFzIHdlIGRvbid0IGhhdmUgSEFWRV9QT1NJWF9USU1FUlMgaW4gcHVibGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQ2hhbmdlIEdTVF9HRVRfVElNRVNUQU1QIGludG8gZ3N0X3V0aWxfZ2V0X3RpbWVzdGFtcCBhbmQgcmVwbGFjZSBhbGwKCSAgdXNlcyBhcyB3ZSBkb24ndCBoYXZlIEhBVkVfUE9TSVhfVElNRVJTIGluIHB1YmxpYyBoZWFkZXJzLgoJICBUaGFua3MgVGltIGZvciBzcG90dGluZy4KCjIwMDctMTItMTEgMTU6Mjk6MjYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlIGJ5IG1pcnJvcmluZyBsYXRlc3QgRmVkb3JhIG9uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZSBieSBtaXJyb3JpbmcgbGF0ZXN0IEZlZG9yYSBvbmUKCjIwMDctMTItMDkgMDQ6Mjg6MDMgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogRG9uJ3QgZGVmaW5lIEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQgZm9yIHJlbGVhc2VzLiBGaXhlcyAjNDk4MTgxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IGRlZmluZSBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGZvciByZWxlYXNlcy4gRml4ZXMgIzQ5ODE4MS4KCjIwMDctMTItMDggMTI6NTQ6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IERvbid0IGNyYXNoIGluIF9mcm9tX3N0cmluZygpIGlmIHRoZSBzdHJ1Y3R1cmUgbmFtZSBpcyBub3QgdmFsaWQgKGZpeGVzICM1MDE1NjApLiAgQWxsb3cgc3RydWN0dXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV92YWxpZGF0ZV9uYW1lKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfbmV3X3ZhbGlzdCksIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcpOgoJICBEb24ndCBjcmFzaCBpbiBfZnJvbV9zdHJpbmcoKSBpZiB0aGUgc3RydWN0dXJlIG5hbWUgaXMgbm90IHZhbGlkCgkgIChmaXhlcyAjNTAxNTYwKS4gIEFsbG93IHN0cnVjdHVyZSBuYW1lcyB0byBzdGFydCB3aXRoIGEgbnVtYmVyCgkgIGFnYWluICh0aGlzIGFwcGFyZW50bHkgYnJva2UgdGhlIHVidW50dSBjb2RlYyBpbnN0YWxsZXIpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGNyYXNoOyB1cGRhdGUgdW5pdCB0ZXN0cyBmb3IgbmV3IGJlaGF2aW91ci4KCjIwMDctMTItMDMgMTE6MDQ6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQ2xhcmlmeSBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQoKSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgQ2xhcmlmeSBnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWQoKSBkb2N1bWVudGF0aW9uLgoJICBGaXhlcyAjNTAwOTE5LgoKMjAwNy0xMi0wMiAyMDozMzo0OSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IERvbid0IGZvcmdldCB0byBkaXN0IHtnc3QsbGlic30vc3RydWN0X2hwcGEuaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIERvbid0IGZvcmdldCB0byBkaXN0IHtnc3QsbGlic30vc3RydWN0X2hwcGEuaC4KCjIwMDctMTEtMjggMTM6MDI6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVXNlIG5ldyBBUEkgdG8gZ2V0IGVsYXBzZWQgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBVc2UgbmV3IEFQSSB0byBnZXQgZWxhcHNlZCB0aW1lLgoKMjAwNy0xMS0yOCAxMjo1Mjo0MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogRml4IHdyb25nIG9yZGVyIG9mIGFyZ3MgaW4gR1NUX0NMT0NLX0RJRkYoKSB1c2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBGaXggd3Jvbmcgb3JkZXIgb2YgYXJncyBpbiBHU1RfQ0xPQ0tfRElGRigpIHVzYWdlLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgVXNlIG5ldyBBUEkgdG8gZ2V0IGVsYXBzZWQgdGltZS4KCjIwMDctMTEtMjggMTI6MzU6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFJlbmFtZSBuZXcgQVBJICsgQ2hhbmdlTG9nIHN1cmdlcnkgdG8gcmVtb3ZlIG9sZCBuYW1lIGZyb20gbGFzdCBlbnRyeS4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBSZW5hbWUgbmV3IEFQSSArIENoYW5nZUxvZyBzdXJnZXJ5IHRvIHJlbW92ZSBvbGQgbmFtZSBmcm9tIGxhc3QgZW50cnkuLgoJICBBUEk6IEdTVF9HRVRfVElNRVNUQU1QCgoyMDA3LTExLTI4IDEyOjExOjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBOb3cgaGlkZSB0aGUgZGlmZmVyZW50IGNsb2NrIHN0dWZmIGJlaGluZCBhIG1hY3JvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgTm93IGhpZGUgdGhlIGRpZmZlcmVudCBjbG9jayBzdHVmZiBiZWhpbmQgYSBtYWNyby4KCSAgQVBJOiBHU1RfR0VUX0NVUlJFTlRfVElNRQoKMjAwNy0xMS0yOCAxMTozOTozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQXBwbHkgdGhlIHBvc2l4LXRpbWVyIGNoZWNrIGZyb20gIzM2MTE1NS4gQ29uZGl0aW9uYWxseSB1c2UgdGhlIHBvc2l4IHRpbWVyIGZvciBsb2dnaW5nLiBUaGlzIGdpdmVzIGJldHRlciB0aW1lc3RhbXAgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEFwcGx5IHRoZSBwb3NpeC10aW1lciBjaGVjayBmcm9tICMzNjExNTUuIENvbmRpdGlvbmFsbHkgdXNlIHRoZSBwb3NpeAoJICB0aW1lciBmb3IgbG9nZ2luZy4gVGhpcyBnaXZlcyBiZXR0ZXIgdGltZXN0YW1wIHByZWNpc3Npb24sIGxlc3MKCSAgb3ZlcmhlYWQgYW5kIG5vIG50cCBqaXR0ZXIuCgoyMDA3LTExLTI4IDExOjExOjU4ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBTb21lIGNsZWFudXAgYW5kIGNoZWNraW5nIGFnYWluc3QgaW52YWxpZCBmdW5jdGlvbiBwYXJhbWV0ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X2dldF90eXBlKSwKCSAgKGdzdF9taW5pX29iamVjdF9jbGFzc19pbml0KSwgKGdzdF9taW5pX29iamVjdF9jb3B5X2RlZmF1bHQpLAoJICAoZ3N0X21pbmlfb2JqZWN0X2ZpbmFsaXplKSwgKGdzdF9taW5pX29iamVjdF9jb3B5KSwKCSAgKGdzdF9taW5pX29iamVjdF9pc193cml0YWJsZSksIChnc3RfbWluaV9vYmplY3RfbWFrZV93cml0YWJsZSksCgkgIChnc3RfbWluaV9vYmplY3RfcmVwbGFjZSksIChwYXJhbV9taW5pX29iamVjdF92YWxpZGF0ZSksCgkgIChnc3RfcGFyYW1fc3BlY19taW5pX29iamVjdF9nZXRfdHlwZSk6CgkgIFNvbWUgY2xlYW51cCBhbmQgY2hlY2tpbmcgYWdhaW5zdCBpbnZhbGlkIGZ1bmN0aW9uIHBhcmFtZXRlcnMuCgoyMDA3LTExLTI4IDEwOjU4OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU3RhcnQgbWVyZ2luZyBpbiB0aGUgZWFzeSBiaXRzIG9mICMzNjExNTUsIHRoZSBtb25vdG9uaWMgY2xvY2sgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBTdGFydCBtZXJnaW5nIGluIHRoZSBlYXN5IGJpdHMgb2YgIzM2MTE1NSwgdGhlIG1vbm90b25pYyBjbG9jayBwYXRjaC4KCSAgVGhpcyBvbmUgYWRkcyBhIGZldyBoYW5keSBtYWNyb3Mgd2l0aCBkb2NzIGFuZCBhIHRlc3RzdWl0ZS4KCjIwMDctMTEtMjcgMTg6NDU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IEJlIGEgYml0IHNtYXJ0ZXIgd2hlbiBzZWVraW5nLCBsaWtlLCBkb24ndCB0cnkgdG8gZG8gYSBzZWVrIHdoZW4gaXQncyBub3QgbmVlZGVkLiBUaGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19ldmVudCk6CgkgIEJlIGEgYml0IHNtYXJ0ZXIgd2hlbiBzZWVraW5nLCBsaWtlLCBkb24ndCB0cnkgdG8gZG8gYSBzZWVrIHdoZW4gaXQncwoJICBub3QgbmVlZGVkLiBUaGlzIGF2b2lkcyBlcnJvcnMgd2hlbiB0aGUgZmlsZSBpcyBub3Qgc2Vla2FibGUuCgkgIEZpeGVzICM0OTk3NzEuCgoyMDA3LTExLTI2IDEzOjE2OjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBEdWUgdG8gcG9wdWxhciByZXF1ZXN0IHJlbW92ZSBwcmVzZXQgaW50ZXJmYWNlIGFnYWluLiA6LSguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXMuaW46CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgICogZ3N0L2dzdHByZXNldC5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgRHVlIHRvIHBvcHVsYXIgcmVxdWVzdCByZW1vdmUgcHJlc2V0IGludGVyZmFjZSBhZ2Fpbi4gOi0oLgoKMjAwNy0xMS0yMiAyMTozMjowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUHJpbnQgJ2RlZmF1bHQgdmFsdWUnIGZvciBlbnVtcyBhbmQgZmxhZ3MgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBQcmludCAnZGVmYXVsdCB2YWx1ZScgZm9yIGVudW1zIGFuZCBmbGFncyB0b28uCgoyMDA3LTExLTIyIDE1OjU5OjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6IE1vcmUgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgTW9yZSBpZGVhcy4KCSAgKiBnc3QvZ3N0YmluLmM6CgkgIEZpeCB0eXBvIGFuZCBnaXZlIGJldHRlciBsb2cgb3V0cHV0LgoJICAqIGdzdC9nc3RkZWJ1Z3V0aWxzLmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuaDoKCSAgTW9yZSBpZGVhcywgbWFrZSBncmFwaHMgYSBiaXQgc21hbGxlciBhbmQgZml4IHBhcmFtIG5hbWUgaW4gbWFjcm8uCgoyMDA3LTExLTIyIDEzOjU2OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cHJlc2V0LmM6IFRyeSBoYXJkZXIgdG8gdXNlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBmZ2V0cygpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIFRyeSBoYXJkZXIgdG8gdXNlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBmZ2V0cygpLgoKMjAwNy0xMS0yMSAxNjowODoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBGb3IgdGhlc2VzIHR3byBmZ2V0cyB3ZSBoYW5kbGUgdGhlIGVycm9yIGJlbG93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIEZvciB0aGVzZXMgdHdvIGZnZXRzIHdlIGhhbmRsZSB0aGUgZXJyb3IgYmVsb3cuCgoyMDA3LTExLTIxIDEzOjQ3OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBPbmx5IHNlbmQgdXBzdHJlYW0gZXZlbnRzIHVwc3RyZWFtLiBGaXhlcyAjNDk4NzQ2LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpOgoJICBPbmx5IHNlbmQgdXBzdHJlYW0gZXZlbnRzIHVwc3RyZWFtLiBGaXhlcyAjNDk4NzQ2LgoKMjAwNy0xMS0yMSAxMzoyNzo1MCArMDAwMCAgTGF1cmVudCBHbGF5YWwgPHNwZ2xlZ2xlQHlhaG9vLmZyPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS4qOiBBZGQgcHJvcGVydHkgdG8gZGlzYWJsZSBoYW5kb2ZmIHNpZ25hbCBlbWlzc2lvbi4gRml4ZXMgIzQ5ODY5NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMYXVyZW50IEdsYXlhbCA8c3BnbGVnbGUgYXQgeWFob28gZG90IGZyPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9pbml0KSwgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApLAoJICAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIEFkZCBwcm9wZXJ0eSB0byBkaXNhYmxlIGhhbmRvZmYgc2lnbmFsIGVtaXNzaW9uLiBGaXhlcyAjNDk4Njk0LgoJICBBUEk6IEdzdElkZW50aXR5OjpzaWduYWwtaGFuZG9mZnMKCjIwMDctMTEtMjEgMDk6NDY6NTAgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBZZXQgYW5vdGhlciBtaXNzaW5nIGxpYnJhcnkgZm9yIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgKGZmdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMjEgIEp1bGllbiBNb3V0dGUgIDxqdWxpZW5AZmx1ZW5kby5jb20+CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBZZXQgYW5vdGhlciBtaXNzaW5nIGxpYnJhcnkgZm9yIHRoZQoJICB1bmluc3RhbGxlZCBzY3JpcHQgKGZmdCkKCjIwMDctMTEtMjEgMDA6MjQ6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6IEFkZCBhIHF1ZXN0aW9uIGFib3V0IGhvdyB0byBzdWJtaXQgbmV3IHRyYW5zbGF0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgIEFkZCBhIHF1ZXN0aW9uIGFib3V0IGhvdyB0byBzdWJtaXQgbmV3IHRyYW5zbGF0aW9ucy4KCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBVcGRhdGUgdGhlIGNvbnRhY3QgZW1haWwgYWRkcmVzcyBmb3IgdGhlIFRyYW5zbGF0aW9uIFByb2plY3QKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIFRoZSBwYXJlbnRfY2xhc3MgZm9yIGZkc3JjIGlzIHB1c2hzcmMsIG5vdCBHc3RFbGVtZW50LgoKMjAwNy0xMS0yMCAxNjozNDozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBQbHVnIGEgbGVhayBhbmQgZml4IHNhdmluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBQbHVnIGEgbGVhayBhbmQgZml4IHNhdmluZy4KCjIwMDctMTEtMjAgMTY6MTA6MjEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgZ3N0X3ByZXNldF9fZ2V0X3Byb3BlcnR5X25hbWVzKCkgZnVuY3Rpb24gdG8gdGhlIGRvY3MgdG8gZml4IHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBnc3RfcHJlc2V0X19nZXRfcHJvcGVydHlfbmFtZXMoKSBmdW5jdGlvbiB0byB0aGUgZG9jcwoJICB0byBmaXggdGhlIGJ1aWxkLgoKMjAwNy0xMS0yMCAxNTo0NjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC4qOiBDaGFuZ2UgX2dldF9wcmVzZXRfbmFtZXMgQVBJIHRvIHJldHVybiBhIHN0cnYgd2l0aCBjb3BpZXMuIEFkZCBfZ2V0X3Byb3BlcnR5X25hbWVzIHRvIGFsbG93IGltcGxlbWVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIENoYW5nZSBfZ2V0X3ByZXNldF9uYW1lcyBBUEkgdG8gcmV0dXJuIGEgc3RydiB3aXRoIGNvcGllcy4gQWRkCgkgIF9nZXRfcHJvcGVydHlfbmFtZXMgdG8gYWxsb3cgaW1wbGVtZW50YXRpb25zIHRvIGZpbHRlciBhbmQgcHJvdmlkZQoJICBnb29kIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCgoyMDA3LTExLTIwIDExOjQ2OjM1ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIGFub3RoZXIgbGlicmFyeSB0byB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IChzZHApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0xMS0yMCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIGFub3RoZXIgbGlicmFyeSB0byB0aGUgdW5pbnN0YWxsZWQKCSAgc2NyaXB0IChzZHApLgoKMjAwNy0xMS0xOSAxNToyMzo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBNb3JlIGNsZWFudXBzLCBkb2NzLCBhbmQgVE9ET3MgZnJvbSBjb21tZW50cyB0aGF0IG5vdyBzbG93bHkgY29tZSBpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBNb3JlIGNsZWFudXBzLCBkb2NzLCBhbmQgVE9ET3MgZnJvbSBjb21tZW50cyB0aGF0IG5vdyBzbG93bHkgY29tZSBpbi4KCjIwMDctMTEtMTkgMTQ6Mzg6NDkgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOiBBZGQgbmV3IGJhc2UgbGlicmFyaWVzIGluIHRoZSBMRCBzZWFyY2ggcGF0aC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMTEtMTkgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBuZXcgYmFzZSBsaWJyYXJpZXMgaW4gdGhlIExECgkgIHNlYXJjaCBwYXRoLgoKMjAwNy0xMS0xOSAxMTo1NDoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBGaXggYm9ndXMgd2FybmluZyBhbmQgbWFrZSB0aGUgcHJvcGVydHkgdHlwZSBzcGVjaWZpYyBjb2RlIG1vcmUgc2ltaWxhci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHByZXNldC5jOgoJICBGaXggYm9ndXMgd2FybmluZyBhbmQgbWFrZSB0aGUgcHJvcGVydHkgdHlwZSBzcGVjaWZpYyBjb2RlIG1vcmUKCSAgc2ltaWxhci4KCjIwMDctMTEtMTkgMDk6MzM6MDUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdHByZXNldC5jOiBNYWtlIGl0IGJ1aWxkIG9uIE9TIFguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTExLTE5ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHByZXNldC5jOiAoZ3N0X3ByZXNldF9kZWZhdWx0X2NyZWF0ZV9wcmVzZXQpOiBNYWtlCgkgIGl0IGJ1aWxkIG9uIE9TIFguCgoyMDA3LTExLTE5IDA4OjUwOjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBDaGFuZ2UgZW1haWwsIGNsZWFudXBzIGFkZCBzb21lIG1vcmUgZGVidWcgYW5kIGNvbW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9pbml0KSwKCSAgKGdzdF9iaW5fYWRkX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGdzdF9iaW5fY29udGludWVfZnVuYyk6CgkgIENoYW5nZSBlbWFpbCwgY2xlYW51cHMgYWRkIHNvbWUgbW9yZSBkZWJ1ZyBhbmQgY29tbWVudHMuCgkgIEFsc28gc2V0IGJ1cyBhbmQgY2xvY2sgb24gbmV3IGVsZW1lbnRzIHdoZW4gdGhlIHBpcGVsaW5lIHdhcyBpbiBlcnJvci4KCjIwMDctMTEtMTggMTk6MzA6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEZpeCBidWlsZCB3aXRoIC0tZGlzYWJsZS1nc3QtZGVidWcuIEZpeGVzICM0OTc4NTkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBGaXggYnVpbGQgd2l0aCAtLWRpc2FibGUtZ3N0LWRlYnVnLiBGaXhlcyAjNDk3ODU5LgoJICBTcG90dGVkIGJ5IFNhbWVlciBOYWlrLgoKMjAwNy0xMS0xNyAxNzo1MDoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGV2ZW50LmM6IExpdHRsZSBkb2N1bWVudGF0aW9uIGltcHJvdm1lbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBMaXR0bGUgZG9jdW1lbnRhdGlvbiBpbXByb3ZtZW50LgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgTW9yZSBUT0RPIGNsZWFudXBzLiBSZW1vdmUgYysrIGNvbW1lbnRzLgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICBBZGQgVE9ETyBhbmQgdXNlIHF1YXJrIGZyb20gc3RhdGljIHN0cmluZy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgVXNlIHF1YXJrIGZyb20gc3RhdGljIHN0cmluZy4KCjIwMDctMTEtMTcgMTc6MjQ6NTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwcmVzZXQuYzogQWRkIHNvbWUgY29tbWVudHMgYW5kIFRPRE9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cHJlc2V0LmM6CgkgIEFkZCBzb21lIGNvbW1lbnRzIGFuZCBUT0RPcy4KCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIEFkZCBwYWRkaW5nIGZvciBmdXR1cmUgY2hhbmdlcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIEltcGxlbWVudCB0aGUgaWZhY2UuCgoyMDA3LTExLTE3IDE2OjQzOjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgdGhlIHByZXNldCBpbnRlcmZhY2UgKEZpeGVzICMzOTY3NzkpLiBEbyBzb21lIGRvYyBjbGVhbnVwcyBhbG9uZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RwcmVzZXQuYzoKCSAgKiBnc3QvZ3N0cHJlc2V0Lmg6CgkgIEFkZCB0aGUgcHJlc2V0IGludGVyZmFjZSAoRml4ZXMgIzM5Njc3OSkuIERvIHNvbWUgZG9jIGNsZWFudXBzIGFsb25nLgoKMjAwNy0xMS0xNiAwMDoyMzoxOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTUgPT09CgoyMDA3LTExLTE2IDAwOjA3OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuMTUsICJPY3RvYmVyIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgPT09IHJlbGVhc2UgMC4xMC4xNSA9PT0KCSAgMjAwNy0xMS0xNSAgSmFuIFNjaG1pZHQgPGphbi5zY2htaWR0QHN1bi5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC4xNSwgIk9jdG9iZXIiCgoyMDA3LTExLTE1IDIzOjMxOjExICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmUucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2VzLnBvOgoJKiBwby9maS5wbzoKCSogcG8vZnIucG86CgkqIHBvL2h1LnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9wbC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3J3LnBvOgoJKiBwby9zay5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTExLTE0IDEyOjI0OjA5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOiBDb252ZXJ0IGxpbmUgZW5kaW5ncyBiYWNrIHRvIERPUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIENvbnZlcnQgbGluZSBlbmRpbmdzIGJhY2sgdG8gRE9TLgoKMjAwNy0xMS0xMyAxMTozMDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFVwZGF0ZSBmYXN0IHRhZ3JlYWRpbmcgZHJhZnQgYW5kIHBlcmZvcm1hbmNlIHByb2ZpbGluZyBpZGVhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBVcGRhdGUgZmFzdCB0YWdyZWFkaW5nIGRyYWZ0IGFuZCBwZXJmb3JtYW5jZSBwcm9maWxpbmcgaWRlYXMuCgoyMDA3LTExLTA5IDE0OjA1OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBob2xkIHRoZSBvYmplY3QgbG9jayB3aGVuIHVucmVmZmluZyBhIGJ1ZmZlciBiZWNhdXNlIGl0IGNvdWxkIGNhdXNlIGEgZGVhZGxvY2sgd2hlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X2xhc3RfYnVmZmVyKToKCSAgRG9uJ3QgaG9sZCB0aGUgb2JqZWN0IGxvY2sgd2hlbiB1bnJlZmZpbmcgYSBidWZmZXIgYmVjYXVzZSBpdCBjb3VsZAoJICBjYXVzZSBhIGRlYWRsb2NrIHdoZW4gdGhlIGZpbmFsaXplIGZ1bmN0aW9uIHdhbnRzIHRvIGdyYWIgdGhlIG9iamVjdAoJICBsb2NrIHRvby4gRml4ZXMgIzQ5NTEzMy4KCjIwMDctMTEtMDkgMTE6NTY6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBBbHNvIGFjY3VtdWxhdGUgdGltZSBjb3JyZWN0bHkgd2hlbiBkb2luZyByZXZlcnNlIHBsYXliYWNrLiBGaXhlcyAjNDg4MjAxLAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICBBbHNvIGFjY3VtdWxhdGUgdGltZSBjb3JyZWN0bHkgd2hlbiBkb2luZyByZXZlcnNlIHBsYXliYWNrLiBGaXhlcwoJICAjNDg4MjAxLAoJICBXaGVuIGNvbnZlcnRpbmcgdG8gcnVubmluZyBhbmQgc3RyZWFtIHRpbWUsIHVzZSBkZWZhdWx0IHZhbHVlcyBmb3IKCSAgc3RhcnQvc3RvcC90aW1lL2FjY3VtIHdoZW4gY29tcGFyaW5nIGRpZmZlcmVudCBmb3JtYXRzLiBGaXhlcyAjNDk0MjQ1LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBEbyBydW5uaW5nL3N0cmVhbSB0aW1lIGluIFRJTUUgZm9ybWF0LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc2VnbWVudF9zdWl0ZSk6CgkgIDIgbmV3IHVuaXQgdGVzdHMgZm9yIHNlZ21lbnQgYWNjdW11bGF0aW9uLgoKMjAwNy0xMS0wNyAxNTo1Mzo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IE1vdmUgZ2V0ZW52KCkgYmFjayBpbnRvIGdzdF9pbml0LCBzbyBldmVyeW9uZSBjYW4gbGl2ZSBoYXBwaWx5IGV2ZXIgYWZ0ZXIuIE1ha2Ugc3VyZSB0aGUgc3ltYm9sIGlzbid0IGV4cG9ydGVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzogKHByaXZfZ3N0X2R1bXBfZG90X2RpciksIChkZWJ1Z19kdW1wX2VsZW1lbnQpLAoJICAoX2dzdF9kZWJ1Z19iaW5fdG9fZG90X2ZpbGUpOgoJICBNb3ZlIGdldGVudigpIGJhY2sgaW50byBnc3RfaW5pdCwgc28gZXZlcnlvbmUgY2FuIGxpdmUgaGFwcGlseQoJICBldmVyIGFmdGVyLiBNYWtlIHN1cmUgdGhlIHN5bWJvbCBpc24ndCBleHBvcnRlZCB0aG91Z2guCgoyMDA3LTExLTA2IDIzOjE3OjA5ICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuKjogVXBkYXRlIGVudW0gdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWVuIE1vdXR0ZSAgPHNlYmFzdGllbiBtb3V0dGUgbmV0PgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkgIFVwZGF0ZSBlbnVtIHR5cGVzLgoJICAqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBVcGRhdGUgdnM2IHByb2plY3QgZmlsZXMgKCM0OTQzNDMpLgoKMjAwNy0xMS0wNiAxNzoxODoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVbmlmeSBmbHVzaGluZyBjb2RlLCByZW1vdmUgc29tZSBvbGQgdW5sb2NrIGNvZGUgdGhhdCBpcyBubyBsb25nZXIgdXNlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBVbmlmeSBmbHVzaGluZyBjb2RlLCByZW1vdmUgc29tZSBvbGQgdW5sb2NrIGNvZGUgdGhhdCBpcyBubyBsb25nZXIgdXNlZC4KCSAgVGFrZSB0aGUgc3RyZWFtaW5nIGxvY2sgd2hlbiBzZWVraW5nIHRvIGF2b2lkIHJhY2VzLiBGaXhlcyAjNDkyNzI5LgoJICBBZGRlZCBzb21lIG1vcmUgY29tbWVudHMuCgoyMDA3LTExLTA2IDE1OjEwOjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBNYWtlICBfZ3N0X2Rpc2FibGVfc2VndHJhcCBzdGF0aWMsIGl0J3Mgb25seSB1c2VkIGluIGdzdHBsdWdpbi5jIGFuZCB3ZSBjYW4gdXNlIGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQoKSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKF9nc3RfZGlzYWJsZV9zZWd0cmFwKToKCSAgTWFrZSAgX2dzdF9kaXNhYmxlX3NlZ3RyYXAgc3RhdGljLCBpdCdzIG9ubHkgdXNlZCBpbiBnc3RwbHVnaW4uYyBhbmQKCSAgd2UgY2FuIHVzZSBnc3Rfc2VndHJhcF9pc19lbmFibGVkKCkgdGhlcmUgbm93IHRoYXQgd2UgaGF2ZSB0aGF0IEFQSS4KCSAgTW92ZSBfZ3N0X2RlYnVnX2R1bXBfZG90X2RpciBpbnRvIGdzdGRlYnVndXRpbHMuYywgdGhlcmUncyBubyByZWFzb24KCSAgdG8gZG8gdGhlIGdldGVudiBoZXJlIChhbmQgZXhwb3J0IHRoZSB2YXJpYWJsZSkuCgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzogKGRlYnVnX2R1bXBfZWxlbWVudCksCgkgIChfZ3N0X2RlYnVnX2Jpbl90b19kb3RfZmlsZSksIChfZ3N0X2RlYnVnX2Jpbl90b19kb3RfZmlsZV93aXRoX3RzKToKCSAgRG9uJ3QgdXNlIFZMQXMgd2hpY2ggaXMgYSBDOTlpc20gYW5kIHRocm93cyBvZmYgTVNWQyAoIzQ5Mzk4MykuCgkgICogZ3N0L2dzdGluZm8uYzogKF9wcml2X2dzdF9pbmZvX3N0YXJ0X3RpbWUpLCAoX2dzdF9kZWJ1Z19pbml0KSwKCSAgKGdzdF9kZWJ1Z19sb2dfZGVmYXVsdCk6CgkgIFJlbmFtZSBfZ3N0X2luZm9fc3RhcnRfdGltZSB0byBwcml2X2dzdF9pbmZvX3N0YXJ0X3RpbWUgc28gaXQKCSAgZG9lc24ndCBnZXQgZXhwb3J0ZWQgKHdhcyBuZXZlciBpbiBhbnkgaGVhZGVyKS4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9mYXVsdF9oYW5kbGVyX3NldHVwKSwKCSAgKGdzdF9wbHVnaW5fbG9hZGluZ19tdXRleCk6CgkgIE1ha2Ugc3RhdGljIG11dGV4IGdzdF9wbHVnaW5fbG9hZGluZ19tdXRleCByZWFsbHkgc3RhdGljICh3YXMgbmV2ZXIKCSAgaW4gYW55IGhlYWRlciksIGFuZCB1c2UgZ3N0X3NlZ3RyYXBfaXNfZW5hYmxlZCgpIGluc3RlYWQgb2YKCSAgX2dzdF9kaXNhYmxlX3NlZ3RyYXAuCgkgICogZ3N0L2dzdHRyYWNlLmM6IChfZ3N0X3RyYWNlX2RlZmF1bHQpOgoJICBNYWtlIGxvY2FsIF9nc3RfdHJhY2VfZGVmYXVsdCBzdGF0aWMgKHdhcyBuZXZlciBpbiBhbnkgaGVhZGVyKS4KCjIwMDctMTEtMDYgMTQ6NDM6MTQgKzAwMDAgIE9sZSBBbmRyw6kgVmFkbGEgUmF2bsOlcyA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgbW9yZSBtaXNzaW5nIHN5bWJvbHMsIHJlbW92ZSBzb21lIGR1cGxpY2F0ZXMsIGFuZCBzb3J0IGFzIHRoZSAnc29ydCcgY29tbWFuZCBzb3J0cyBpdCAocGFydGlhbGx5IGYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgIDxvbGUuYW5kcmUucmF2bmFzQHRhbmRiZXJnLmNvbT4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbW9yZSBtaXNzaW5nIHN5bWJvbHMsIHJlbW92ZSBzb21lIGR1cGxpY2F0ZXMsIGFuZCBzb3J0CgkgIGFzIHRoZSAnc29ydCcgY29tbWFuZCBzb3J0cyBpdCAocGFydGlhbGx5IGZpeGVzICM0OTM5ODMpLgoKMjAwNy0xMS0wNiAxMjoyODoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IE9ubHkgY2hhbmdlIHRoZSBzdGF0ZSBjb29raWUgaWYgYSBkaWZmZXJlbnQgc3RhdGUgd2FzIHNldCBvbiB0aGUgZWxlbWVudC4gU2VlICM0OTI3MjkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgIE9ubHkgY2hhbmdlIHRoZSBzdGF0ZSBjb29raWUgaWYgYSBkaWZmZXJlbnQgc3RhdGUgd2FzIHNldCBvbiB0aGUKCSAgZWxlbWVudC4gU2VlICM0OTI3MjkuCgoyMDA3LTExLTA2IDExOjQxOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IFJlbW92ZSB1bnVzZWQgYW5kIHVuaW5pdGlhbGlzZWQgdHlwZSB2YXJpYWJsZXMgdGhhdCB3ZXJlIHN0aWxsIGV4cG9ydGVkIGZvciBzb21lIHJlYXNvbiAodGhleSB3ZXJlIG5lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICBSZW1vdmUgdW51c2VkIGFuZCB1bmluaXRpYWxpc2VkIHR5cGUgdmFyaWFibGVzIHRoYXQgd2VyZSBzdGlsbAoJICBleHBvcnRlZCBmb3Igc29tZSByZWFzb24gKHRoZXkgd2VyZSBuZXZlciBpbiBhbnkgaGVhZGVyIGZpbGVzCgkgIHRob3VnaCkuCgoyMDA3LTExLTA2IDEwOjMzOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCB0cnkgdG8gcmVwb3J0IGEgMCBwb3NpdGlvbiB3aGVuIHdlIGRvbid0IGtub3csIHJldHVybiAtMSBhbmQgRkFMU0UgaW5zdGVhZC4gVGhpcyBtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbl9sYXN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX3BhdXNlZCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHRyeSB0byByZXBvcnQgYSAwIHBvc2l0aW9uIHdoZW4gd2UgZG9uJ3Qga25vdywgcmV0dXJuIC0xIGFuZCBGQUxTRQoJICBpbnN0ZWFkLiBUaGlzIG1vc3RseSBoYXBwZW5zIHdoZW4gd2UgYXJlIHByZXJvbGxpbmcuCgkgIE1ha2Ugc3VyZSB3ZSBjYW4gcmVwb3J0IHRoZSByaWdodCBwb3NpdGlvbiBiZWZvcmUgd2UgcG9zdCB0aGUgQVNZTkNfRE9ORQoJICBtZXNzYWdlIHNvIHRoYXQgYSBtZXNzYWdlIGhhbmRsZXIgY2FuIHF1ZXJ5IHBvc2l0aW9uIHdpdGhvdXQgcmFjZXMuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoc2VuZF9lb3MpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoYXN5bmNfZG9uZV9oYW5kb2ZmKSwgKGFzeW5jX2RvbmVfZnVuYyksIChzZW5kX2J1ZmZlciksCgkgIChhc3luY19kb25lX2Vvc19mdW5jKSwgKGdzdF9zaW5rc19zdWl0ZSk6CgkgIEFkZCB0d28gdGVzdHMgZm9yIHRoZSBhYm92ZS4KCjIwMDctMTEtMDYgMTA6MjE6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNQUlOVEFJTkVSUzogVXBkYXRlIHdpdGggbmV3IGVtYWlsIGFkZHJlc3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1BSU5UQUlORVJTOgoJICBVcGRhdGUgd2l0aCBuZXcgZW1haWwgYWRkcmVzcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgc29tZSBtb3JlIGluZm8gYWJvdXQgZnV0dXJlIHBhZC1ibG9jayBhbmQgbmVnb3RpYXRpb24gY2hhbmdlcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIEFkZCBzb21lIGlkZWFzIGFib3V0IGJ1ZmZlcmluZyByZXBvcnRpbmcuCgoyMDA3LTExLTA2IDEwOjAxOjA3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBNYWtlZmlsZS5hbToKCSogY29tbW9uOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIFNQRUMgZmlsZSB3aXRoIGxhdGVzdCBjaGFuZ2VzLCBhbHNvIGFkZCBNQUlOVEFJTkVSUyBmaWxlIHRvIEVYVFJBX0RJU1QsIHRoZSBvbW1pc3Npb24gb2YgdGhpcyBjYXVzZSBhIHdlaXJkIFJQLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgU1BFQyBmaWxlIHdpdGggbGF0ZXN0IGNoYW5nZXMsIGFsc28gYWRkIE1BSU5UQUlORVJTIGZpbGUgdG8gRVhUUkFfRElTVCwgdGhlIG9tbWlzc2lvbiBvZiB0aGlzIGNhdXNlIGEgd2VpcmQgUlBNIGJ1aWxkIGVycm9yIG9uIEZDOAoKMjAwNy0xMS0wNiAwMDo1OTo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6IERpc2FibGUgc2lsbHkgcmFjeSB0ZXN0IHRoYXQgYWx3YXlzIGZhaWxzIG9uIHRoaXMgY29tYmluYXRpb24gb2YgQ1BVIGFuZCBrZXJuZWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSAgRGlzYWJsZSBzaWxseSByYWN5IHRlc3QgdGhhdCBhbHdheXMgZmFpbHMgb24gdGhpcyBjb21iaW5hdGlvbiBvZiBDUFUKCSAgYW5kIGtlcm5lbC4KCjIwMDctMTEtMDQgMTA6MTY6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBtZW50aW9uIGJ1ZyBudW1iZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBtZW50aW9uIGJ1ZyBudW1iZXIKCjIwMDctMTEtMDQgMTA6MTM6MzMgKzAwMDAgIE11cnJheSBDdW1taW5nIDxtdXJyYXljQG11cnJheWMuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBDb3JyZWN0ZWQgdGhlIHJlZ2lzdHJhdGlvbiBvZiB0aGUgcGFyZW50LXNldCBhbmQgcGFyZW50LXVuc2V0IHNpZ25hbHM6IFRoZSBwYXJhbWV0ZXIgaXMgYSBHc3RPYmplY3QsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTXVycmF5IEN1bW1pbmcgIDxtdXJyYXljQG11cnJheWMuY29tPgoJICAqIGdzdC9nc3RvYmplY3QuYzoKCSAgQ29ycmVjdGVkIHRoZSByZWdpc3RyYXRpb24gb2YgdGhlIHBhcmVudC1zZXQgYW5kIHBhcmVudC11bnNldAoJICBzaWduYWxzOiBUaGUgcGFyYW1ldGVyIGlzIGEgR3N0T2JqZWN0LCBub3QgYSBHT2JqZWN0LgoKMjAwNy0xMS0wMiAxODozNTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IE1vdmUgZGVjbGFyYXRpb24gb2YgcHJpdmF0ZSBfZ3N0X2Zvb19pbml0aWFsaXplKCkgZnVuY3Rpb25zIGludG8gb3VyIHByaXZhdGUgaGVhZGVyIGZpbGUgd2hlcmUgdGhleSBzaG91bGQgaGF2ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIE1vdmUgZGVjbGFyYXRpb24gb2YgcHJpdmF0ZSBfZ3N0X2Zvb19pbml0aWFsaXplKCkgZnVuY3Rpb25zIGludG8KCSAgb3VyIHByaXZhdGUgaGVhZGVyIGZpbGUgd2hlcmUgdGhleSBzaG91bGQgaGF2ZSBiZWVuIGFsbCBhbG9uZy4KCjIwMDctMTEtMDIgMTc6NDM6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBndGstZG9jIGZpeGVzOyB0cmFpbGluZy1jb21tYS1pbi1lbnVtIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICAqIGdzdC9nc3R4bWwuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGd0ay1kb2MgZml4ZXM7IHRyYWlsaW5nLWNvbW1hLWluLWVudW0gZml4LgoKMjAwNy0xMS0wMiAxNjoyNzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogQ2xlYW4gdXAgb24gZGVpbml0IChub3QgdGhlIGV4dGVybmFsIG9uZXMgdGhvdWdoLCBkb2Vzbid0IHNlZW0gdG8gYmUgbmVlZGVkIGZvciBzb21lIHJlYXNvbikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9kZWluaXQpOgoJICBDbGVhbiB1cCBvbiBkZWluaXQgKG5vdCB0aGUgZXh0ZXJuYWwgb25lcyB0aG91Z2gsIGRvZXNuJ3Qgc2VlbSB0byBiZQoJICBuZWVkZWQgZm9yIHNvbWUgcmVhc29uKS4KCjIwMDctMTEtMDEgMjM6NTE6NTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBSZW1vdmUgX19kZWNsc3BlYyhkbGxpbXBvcnQpIGZvciBNU1ZDIHRoYXQgd2FzIGNvcGllZCBvdmVyIGludG8gY29yZSBmcm9tIGEgcGx1Z2luLCBvYnZpb3VzbHkgd2l0aG91dCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDogKEdTVF9ERUJVR19DQVRFR09SWV9FWFRFUk4pOgoJICBSZW1vdmUgX19kZWNsc3BlYyhkbGxpbXBvcnQpIGZvciBNU1ZDIHRoYXQgd2FzIGNvcGllZCBvdmVyIGludG8gY29yZQoJICBmcm9tIGEgcGx1Z2luLCBvYnZpb3VzbHkgd2l0aG91dCBldmVyIGhhdmluZyBiZWVuIHRlc3RlZCAobm90ZSB0aGUKCSAgc2luZ2xlIHVuZGVyc2NvcmUgaW4gX2RlY2xzcGVjIGluIHRoZSBpbml0aWFsIGNvbW1pdCksIGFuZCB0aGF0IGRvZXNuJ3QKCSAgcmVhbGx5IG1ha2Ugc2Vuc2UuICBTZWUgIzQ5MjA3Ny4KCjIwMDctMTEtMDEgMjE6NTA6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnX3R5cGVfY2xhc3NfcmVmKCkgb3RoZXIgdHlwZXMgYXMgd2VsbCwgc2VlICMzNDk0MTAgYW5kICM2NDc2NC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYyAoZ3N0X2RwX2luaXQpOgoJICBnX3R5cGVfY2xhc3NfcmVmKCkgb3RoZXIgdHlwZXMgYXMgd2VsbCwgc2VlICMzNDk0MTAgYW5kICM2NDc2NC4KCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoX2dzdF9tZXNzYWdlX2luaXRpYWxpemUpOgoJICBTaW1wbGlmeSBleGlzdGluZyBnX3R5cGVfY2xhc3NfcmVmKCkuCgoyMDA3LTExLTAxIDIwOjEwOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGZvcm1hdC5jOiBnX3R5cGVfY2xhc3NfcmVmKCkgb3VyIEdzdEZvcm1hdCB0eXBlIHRvIG1ha2Ugc3VyZSB3ZSBhdm9pZCB0aGUgdGhyZWFkLXVuc2FmZSBiaXRzIG9mIHRoZSBHT2JqZWN0L0dULi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKF9nc3RfZm9ybWF0X2luaXRpYWxpemUpOgoJICBnX3R5cGVfY2xhc3NfcmVmKCkgb3VyIEdzdEZvcm1hdCB0eXBlIHRvIG1ha2Ugc3VyZSB3ZSBhdm9pZCB0aGUKCSAgdGhyZWFkLXVuc2FmZSBiaXRzIG9mIHRoZSBHT2JqZWN0L0dUeXBlIHN5c3RlbSwgaWUuIGJ1ZyAjMzQ5NDEwIGFuZAoJICBidWcgIzY0NzY0LiBTaG91bGQgZml4IGludGVybWl0dGVudCB0ZWUgdW5pdCB0ZXN0IGZhaWx1cmVzICgjNDc0ODIzKS4KCjIwMDctMTEtMDEgMTk6MTk6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogU2ltcGxpZnksIHNpbXBsaWZ5LCBzaW1wbGlmeSAtIG9yIG5vdC4gIFJld3JpdGUgdW5pdCB0ZXN0IG5vdCB0byB1c2UgZ3N0X3BhcnNlX2xhdW5jaCgpOyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6ICh0ZXN0X251bV9idWZmZXJzKToKCSAgU2ltcGxpZnksIHNpbXBsaWZ5LCBzaW1wbGlmeSAtIG9yIG5vdC4gIFJld3JpdGUgdW5pdCB0ZXN0CgkgIG5vdCB0byB1c2UgZ3N0X3BhcnNlX2xhdW5jaCgpOyBhbGxvdyBOIHN1Yi1zdHJlYW1zLiBJbmNyZWFzaW5nCgkgIHRoZSBudW1iZXIgb2Ygc3ViLXN0cmVhbXMgc2VlbXMgdG8gcmVwcm9kdWNlICM0NzQ4MjMgbW9yZSBlYXNpbHkuCgoyMDA3LTEwLTMxIDIyOjAxOjAzICswMDAwICBPbGUgQW5kcsOpIFZhZGxhIFJhdm7DpXMgPG9sZS5hbmRyZS5yYXZuYXNAdGFuZGJlcmcuY29tPgoKCSAgRml4IGEgY291cGxlIG9mIG1pc3NpbmcgaW5jbHVkZXMgZm9yIE1TVkMyMDA1IGFuZCBhIEM5OSBpc3N1ZS4gQWxzbywgc3RhcnRpbmcgd2l0aCAyLjE0LjAsIEdMaWIgd29uJ3QgcHJvdmlkZSBhIHBpcGUoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xlIEFuZHLDqSBWYWRsYSBSYXZuw6VzICA8b2xlLmFuZHJlLnJhdm5hc0B0YW5kYmVyZy5jb20+CgkgICogZ3N0L2dzdHRyYWNlLmM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogKGdzdF9uZXRfdGltZV9wcm92aWRlcl9uZXcpOgoJICBGaXggYSBjb3VwbGUgb2YgbWlzc2luZyBpbmNsdWRlcyBmb3IgTVNWQzIwMDUgYW5kIGEgQzk5IGlzc3VlLiBBbHNvLAoJICBzdGFydGluZyB3aXRoIDIuMTQuMCwgR0xpYiB3b24ndCBwcm92aWRlIGEgcGlwZSgpIG1hY3JvIGFueSBsb25nZXIsCgkgIHNvIHVzZSBfcGlwZSgpIGRpcmVjdGx5ICgjNDkyMDc3KS4KCSAgKiB3aW4zMi9jb21tb24vZGlyZW50LmM6IChfdHJlYWRkaXIpOgoJICBBZGQgYSBjb3VwbGUgb2YgY2FzdHMgdG8gbWFrZSBpdCBidWlsZCB3aXRob3V0IHdhcm5pbmdzIHdpdGggTVNWQy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIHNvbWUgbW9yZSBzeW1ib2xzIHRoYXQgbmVlZCB0byBiZSBleHBvcnRlZC4KCjIwMDctMTAtMzEgMTg6MDg6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IFVzZSBfS0VFUCBhcyBtZXJnZSBtb2RlIHJhdGhlciB0aGFuIF9LRUVQX0FMTCwgc28gdGFncyBhcnJpdmluZyBpbiBhIHNlY29uZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKToKCSAgVXNlIF9LRUVQIGFzIG1lcmdlIG1vZGUgcmF0aGVyIHRoYW4gX0tFRVBfQUxMLCBzbyB0YWdzCgkgIGFycml2aW5nIGluIGEgc2Vjb25kIG9yIHRoaXJkIHRhZyBtZXNzYWdlIGFyZSBhZGRlZCB0bwoJICB0aGUgdGFnIGxpc3QgYXMgd2VsbC4KCjIwMDctMTAtMzEgMTM6MDE6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBJdHMgIlNpbmNlOiIgYW5kIG5vdCAiQFNpbmNlOiIuIEFuZCByZW1vdmUgYW4gc3VwZXJmbG91cyBjYXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgSXRzICJTaW5jZToiIGFuZCBub3QgIkBTaW5jZToiLiBBbmQgcmVtb3ZlIGFuIHN1cGVyZmxvdXMgY2FzdC4KCjIwMDctMTAtMzAgMTg6MzA6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgYSBuZXcgbGFzdC1idWZmZXIgcHJvcGVydHkgdGhhdCBjb250YWlucyB0aGUgbGFzdCBidWZmZXIgdXNlZCBpbiBiYXNlc2luayBmb3IgcHJlcm9sbCBvciByZW5kZXJpbmcuIHVzZWZ1bCBmb3IgbWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfbGFzdF9idWZmZXIpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfbGFzdF9idWZmZXIpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgYSBuZXcgbGFzdC1idWZmZXIgcHJvcGVydHkgdGhhdCBjb250YWlucyB0aGUgbGFzdCBidWZmZXIgdXNlZCBpbgoJICBiYXNlc2luayBmb3IgcHJlcm9sbCBvciByZW5kZXJpbmcuIHVzZWZ1bCBmb3IgbWFraW5nIHNuYXBzaG90cy4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF9sYXN0X2J1ZmZlcigpCgkgIEFQSTogR3N0QmFzZVNpbms6Omxhc3QtYnVmZmVyCgoyMDA3LTEwLTI5IDEzOjQ2OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBJbXByb3ZlIGJpbiBncmFwaCBkdW1waW5nLCBieSB1c2luZyB0aGUgZW52dmFyIHRvIHNwZWNpZnkgYSBwYXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgSW1wcm92ZSBiaW4gZ3JhcGggZHVtcGluZywgYnkgdXNpbmcgdGhlIGVudnZhciB0byBzcGVjaWZ5IGEgcGF0aC4KCSAgUmVuYW1lIHRoZSBlbnZ2YXIgdG8gR1NUX0RFQlVHX0RVTVBfRE9UX0RJUi4KCjIwMDctMTAtMjkgMTM6MTA6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBQb3N0IHNwZWNpYWwgZXJyb3IgbWVzc2FnZSBpZiB3ZSBjYW4ndCBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgYSBzdHJlYW0gYmVjYXVzZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgUG9zdCBzcGVjaWFsIGVycm9yIG1lc3NhZ2UgaWYgd2UgY2FuJ3QgZGV0ZXJtaW5lIHRoZSB0eXBlIG9mIGEgc3RyZWFtCgkgIGJlY2F1c2UgaXQncyBlbXB0eS4KCjIwMDctMTAtMjkgMTA6MDU6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIERvY3VtZW50IG5ldyBlbnYtdmFyLiBBZGQgb25lIGxvZy1saW5lIGFmdGVyIGR1bXBuZyBhIGdyYXBoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9ydW5uaW5nLnhtbDoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBEb2N1bWVudCBuZXcgZW52LXZhci4gQWRkIG9uZSBsb2ctbGluZSBhZnRlciBkdW1wbmcgYSBncmFwaC4KCjIwMDctMTAtMjYgMTg6Mzk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVnbHkgaGFjayB0byBwdXQgdGhlIChyZWNlbnRseSByZW1vdmVkIGFuZCBub24tcG9ydGFibGUsIGFwcGFyZW50bHkpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVWdseSBoYWNrIHRvIHB1dCB0aGUgKHJlY2VudGx5IHJlbW92ZWQgYW5kIG5vbi1wb3J0YWJsZSwgYXBwYXJlbnRseSkKCSAgLVdsLC0tZXhwb3J0LWR5bmFtaWMgYmFjayBpbnRvIGxpYmdzdGNoZWNrJ3MgTERGTEFHUyB3aGVuIHdlJ3JlIHVzaW5nCgkgIEdOVSBsZCwgYmVjYXVzZSB3aXRob3V0IHRoYXQgJ21ha2UgY2hlY2snIGZhaWxzIG1pc2VyYWJseSBvbiBteSBkZWJpYW4KCSAgc3RhYmxlIGJveC4gIFNvbWVvbmUgd2l0aCBtb3JlIGtub3dsZWRnZSBvZiBsaW5rZXIgaW50cmljYWNpZXMgYW5kCgkgIHBvcnRhYmlsaXR5IGlzc3VlcyB0aGFuIG1lIGZpeCB0aGlzIHByb3Blcmx5IHBsZWFzZS4KCjIwMDctMTAtMjUgMTc6MjA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlc2V0IGxhc3Qgc2VlbiBwb3NpdGlvbiBhZnRlciBmbHVzaGluZyBzbyB0aGF0IHdlIGRvbid0IHJlcG9ydCB0aGUgb2xkIHBvc2l0aW9uIGFueW1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICBSZXNldCBsYXN0IHNlZW4gcG9zaXRpb24gYWZ0ZXIgZmx1c2hpbmcgc28gdGhhdCB3ZSBkb24ndCByZXBvcnQgdGhlIG9sZAoJICBwb3NpdGlvbiBhbnltb3JlLgoKMjAwNy0xMC0yNSAxNjoxOTowNSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBnc3QvOiBQYXRjaCBmcm9tIEFsZXNzYW5kcm8gRGVjaW5hIGFkZGluZyBnZXRfdHlwZV9mdWxsIGFuZCBnZXRfcHJvdG9jb2xzX2Z1bGwgcHJpdmF0ZSB2ZnVuY3MgdG8gdGhlIFVSSUhhbmRsZXIgaW50ZXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBQYXRjaCBmcm9tIEFsZXNzYW5kcm8gRGVjaW5hIGFkZGluZyBnZXRfdHlwZV9mdWxsIGFuZAoJICBnZXRfcHJvdG9jb2xzX2Z1bGwgcHJpdmF0ZSB2ZnVuY3MgdG8gdGhlIFVSSUhhbmRsZXIgaW50ZXJmYWNlCgkgIHRvIGFsbG93IGJpbmRpbmdzIHRvIHN1cHBvcnQgY3JlYXRpbmcgVVJJIGhhbmRsZXJzLgoJICBQYXJ0aWFsbHkgZml4ZXM6ICMzMzkyNzkKCSAgQVBJOiBHc3RVUklIYW5kbGVySW50ZXJmYWNlOjpnZXRfdHlwZV9mdWxsCgkgIEFQSTogR3N0VVJJSGFuZGxlckludGVyZmFjZTo6Z2V0X3Byb3RvY29sc19mdWxsCgoyMDA3LTEwLTI1IDE1OjE0OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBNYWtlIGl0IHNvIHRoYXQgcGFkcyBhcmUgY29uc2lkZXJlZCBsaW5rZWQgdW50aWwgYSBidWZmZXIgaXMgcHVzaGVkIGFuZCBkaXNjb3ZlcmVkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3JlcXVlc3RfbmV3X3BhZCksIChnc3Rfc2luZ2xlX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpOgoJICBNYWtlIGl0IHNvIHRoYXQgcGFkcyBhcmUgY29uc2lkZXJlZCBsaW5rZWQgdW50aWwgYSBidWZmZXIgaXMgcHVzaGVkCgkgIGFuZCBkaXNjb3ZlcmVkIG90aGVyd2lzZS4gVGhpcyBhdm9pZHMgcHJvYmxlbXMgd2l0aCBkZWNvZGViaW4yIGhhbmdpbmcKCSAgYWZ0ZXIgYSBzZWVrIGluIHRoZSBmaWxlc3JjICEgZGVjb2RlYmluMiBuYW1lPWQgISBmYWtlc2luayBkLiAhIGZha2VzaW5rCgkgIGNhc2UuCgkgIE1ha2Ugc3VyZSB3ZSBsb2NrIHRoZSBtdWx0aXF1ZXVlIHdoZW4gdXBkYXRpbmcgdGhlIG1heC1zaXplIHByb3BlcnRpZXMuCgkgIEZpeCBhIGNyYXNoIG9uIFNvbGFyaXMgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQgaW4gZ2V0X3JlcXVlc3RfcGFkIHRoYXQKCSAgcGFzc2VzIGEgTlVMTCBzdHJpbmcgdG8gR1NUX0RFQlVHLgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKG1xX2R1bW15cGFkX2NoYWluKSwKCSAgKHJ1bl9vdXRwdXRfb3JkZXJfdGVzdCk6CgkgIEZpeCB0aGUgdGVzdCB0byBhbGxvdyB0aGUgZmlyc3QgYnVmZmVyIG9uIG5vdC1saW5rZWQgcGFkcyB0byBjb21lIG91dAoJICBvZiBzZXF1ZW5jZSB3aGlsZSBtdWx0aXF1ZXVlIGRpc2NvdmVycyB0aGF0IHRoZXkgYXJlIG5vdC1saW5rZWQuCgoyMDA3LTEwLTI1IDE0OjUwOjQ4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIFVzZSBhIGN1c3RvbSBleHBvcnQgc3ltYm9sIHJlZ2V4IGZvciBsaWJnc3RjaGVjaywgYXMgaXQgbmVlZHMgdG8gZXhwb3J0IHN5bWJvbHMgdGhhdCBkb24ndCBtYXRjaCB0aGUgc3RhbmRhcmQgR1N0cmVhbS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIFVzZSBhIGN1c3RvbSBleHBvcnQgc3ltYm9sIHJlZ2V4IGZvciBsaWJnc3RjaGVjaywgYXMgaXQgbmVlZHMKCSAgdG8gZXhwb3J0IHN5bWJvbHMgdGhhdCBkb24ndCBtYXRjaCB0aGUgc3RhbmRhcmQgR1N0cmVhbWVyIGdzdF8qCgkgIHBhdHRlcm4sIGFuZCAgLS1leHBvcnQtZHluYW1pYyBpcyBub3QgcG9ydGFibGUgKG9ubHkgd29ya3Mgb24KCSAgR05VIGxkKQoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpOgoJICBNYWtlIHN1cmUgdG8gcGFzcyBhIG1lc3NhZ2UgcGFyYW1ldGVyIHRvIHRoZSBmYWlsXyogbWFjcm9zLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBzb21lIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwNy0xMC0yNSAxNDo0MTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogRGlzYWJsZSB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQgd2hpdGUgc3BhY2VzIGFyZSBub3QgYWxsb3dlZCBpbiBzdHJ1Y3R1cmUgbmFtZXMgb3IgZmllbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6ICh0ZXN0X3RvX3N0cmluZyk6CgkgIERpc2FibGUgdGVzdCB0aGF0IGNoZWNrcyB0aGF0IHdoaXRlIHNwYWNlcyBhcmUgbm90IGFsbG93ZWQKCSAgaW4gc3RydWN0dXJlIG5hbWVzIG9yIGZpZWxkIG5hbWVzLCBzaW5jZSB3ZSBuZWVkIHRvCgkgIHN1cHBvcnQgdGhhdCBmb3Igbm93IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLgoKMjAwNy0xMC0yNCAxMzoxMzo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfQVJUSVNUX1NPUlROQU1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0FSVElTVF9TT1JUTkFNRQoJICBBUEk6IGFkZCBHU1RfVEFHX0FMQlVNX1NPUlROQU1FCgkgIEFQSTogYWRkIEdTVF9UQUdfVElUTEVfU09SVE5BTUUKCSAgQWRkIHRhZyB2YXJpYW50cyBmb3Igc29ydGluZyAoIzQxNDUzOSkuCgoyMDA3LTEwLTI0IDEzOjAwOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBbHNvIGFsbG93IHdoaXRlIHNwYWNlIGZvciBuYW1lcyBzbyB3ZSBkb24ndCBicmVhayBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBbHNvIGFsbG93IHdoaXRlIHNwYWNlIGZvciBuYW1lcyBzbyB3ZSBkb24ndCBicmVhawoJICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCjIwMDctMTAtMjIgMTU6Mzc6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNtYWxsIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgU21hbGwgdXBkYXRlcy4KCjIwMDctMTAtMjIgMTE6MzI6MTQgKzAwMDAgIEVkZ2FyZCBMaW1hIDxlZGdhcmQubGltYUBpbmR0Lm9yZy5icj4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEZpeGVkIGRvY3VtZW50YXRpb24gZnJvbSBteSBwcmV2aW91cyBjb21taXQgKGFkZGVkIG5ldyBBUEkgYWRkIGdzdF92YWx1ZV9zZXRfc3RydWN0dS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBGaXhlZCBkb2N1bWVudGF0aW9uIGZyb20gbXkgcHJldmlvdXMgY29tbWl0IChhZGRlZCBuZXcgQVBJIGFkZAoJICBnc3RfdmFsdWVfc2V0X3N0cnVjdHVyZSgpLCBhZGQgZ3N0X3ZhbHVlX2dldF9zdHJ1Y3R1cmUoKSBhbmQKCSAgR1NUX1ZBTFVFX0hPTERTX1NUUlVDVFVSRSkuCgoyMDA3LTEwLTIyIDExOjEwOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZGVidWd1dGlscy5jOiBSZWZsb3cgY29kZSB0byBmaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5jOgoJICBSZWZsb3cgY29kZSB0byBmaXggdW5pbml0aWFsaXplZCB2YXJpYWJsZSB3YXJuaW5nLgoKMjAwNy0xMC0yMiAwODo1MzoyNiArMDAwMCAgRWRnYXJkIExpbWEgPGVkZ2FyZC5saW1hQGluZHQub3JnLmJyPgoKCSAgQWRkZWQgR3N0U3RydWN0dXJlIHRvIGdzdF92YWx1ZV90YWJsZSBhbmQgaXRzIHJlbGF0ZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfdG9fc3RyaW5nKSwKCSAgKGdzdF9jYXBzX2Zyb21fc3RyaW5nX2lucGxhY2UpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X2FiYnJzKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfdG9fc3RyaW5nKSwgKGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NldF9zdHJ1Y3R1cmUpLAoJICAoZ3N0X3ZhbHVlX2dldF9zdHJ1Y3R1cmUpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9zdHJ1Y3R1cmUpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX3N0cnVjdHVyZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGRlZCBHc3RTdHJ1Y3R1cmUgdG8gZ3N0X3ZhbHVlX3RhYmxlIGFuZCBpdHMgcmVsYXRlZCBmdW5jdGlvbnMuCgkgIENoYW5nZWQgZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcgdG8gcHJpbnQgJzsnIGluIHRoZSBlbmQuCgkgIENoYW5nZWQgZ3N0X2NhcHNfdG9fc3RyaW5nIHRvIG5vdCBwcmludCAnOycgYmV0ZXdlZW4gaXRzCgkgIGZpZWxkcyAoc3RydWN0dXJlcykgYW55bW9yZSBhbmQgcmVtb3ZlIHRoZSBsYXN0ZXMgJzsnIGZyb20gbGF0ZXN0CgkgIHN0cnVjdHVyZS4gTm93IGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgbmVzdGVkIHN0cnVjdHVyZXMuCgkgIEluIGFkZGl0aW9uLCBiYWNrd2FyZCBjb21wYXRpYmlsdHkgaXMgYXNzdXJlZCBieSBhY2NlcHRpbmcgJ1wwJyBhcwoJICBlbmQgZGVsaW1pdGVyLiBGaXhlczogIzQ4Nzk2OS4KCSAgQVBJOiBhZGQgZ3N0X3ZhbHVlX3NldF9zdHJ1Y3R1cmUoKQoJICBBUEk6IGFkZCBnc3RfdmFsdWVfZ2V0X3N0cnVjdHVyZSgpCgoyMDA3LTEwLTE5IDA5OjQ4OjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJ1cy5jOiBXaGVuIG5vIEdTb3VyY2UgY2FsbGJhY2sgaGFzIGJlZW4gc2V0IHVwLCB0ZWxsIGRldmVsb3BlciB0byB1c2UgYSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGV4aXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICBXaGVuIG5vIEdTb3VyY2UgY2FsbGJhY2sgaGFzIGJlZW4gc2V0IHVwLCB0ZWxsIGRldmVsb3BlcgoJICB0byB1c2UgYSBmdW5jdGlvbiB0aGF0IGFjdHVhbGx5IGV4aXN0cy4KCjIwMDctMTAtMTcgMTI6NTg6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFsbG93IGR1bXBpbmcgcGlwZWxpbmVzIGFzIGRvdCBncmFwaHMuIEZpeGVzICM0NTY1NzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdGRlYnVndXRpbHMuYzoKCSAgKiBnc3QvZ3N0ZGVidWd1dGlscy5oOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIEFsbG93IGR1bXBpbmcgcGlwZWxpbmVzIGFzIGRvdCBncmFwaHMuIEZpeGVzICM0NTY1NzMuCgoyMDA3LTEwLTE2IDIxOjQ4OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBBbGxvdyAnKycgYXMgd2VsbCwgaXQgY2FuIGJlIHBhcnQgb2YgbWVkaWEgb3IgbWltZSB0eXBlcyBzdWNoIGFzIGltYWdlL3N2Zyt4bWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWxsb3cgJysnIGFzIHdlbGwsIGl0IGNhbiBiZSBwYXJ0IG9mIG1lZGlhIG9yIG1pbWUgdHlwZXMKCSAgc3VjaCBhcyBpbWFnZS9zdmcreG1sLgoKMjAwNy0xMC0xNiAyMDozMDoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9idXNfcG9wX2ZpbHRlcmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1cy5jOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgQVBJOiBhZGQgZ3N0X2J1c19wb3BfZmlsdGVyZWQKCSAgQVBJOiBhZGQgZ3N0X2J1c190aW1lZF9wb3BfZmlsdGVyZWQKCSAgVHdvIG5ldyBmdW5jdGlvbnMgZm9yIHdhaXRpbmcgZm9yIHNwZWNpZmljIG1lc3NhZ2UgdHlwZXMgb24gdGhlCgkgIGJ1cyBmb3IgYSBzcGVjaWZpZWQgYW1vdW50IG9mIHRpbWUgd2l0aG91dCBpdGVyYXRpbmcgYW55IG1haW4KCSAgbG9vcHMgb3IgbWFpbiBjb250ZXh0cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6CgkgIFNvbWUgdGVzdHMgZm9yIHRoZSBuZXcgZnVuY3Rpb25zLgoKMjAwNy0xMC0xNiAxNzoyMTozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IE1ha2UgZ3RrLWRvYyBpZ25vcmUgc3R1ZmYgaXQgc2hvdWxkIGlnbm9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgTWFrZSBndGstZG9jIGlnbm9yZSBzdHVmZiBpdCBzaG91bGQgaWdub3JlLgoKMjAwNy0xMC0xNiAxNjoxMjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IEFsbG93IHJ1bnRpbWUgc2VsZWN0aW9uIG9mIHVuaXQgdGVzdHMgdG8gcnVuIHZpYSB0aGUgR1NUX0NIRUNLUyBlbnZpcm9ubWVudCB2YXJpYWJsZSAodGVzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFsbG93IHJ1bnRpbWUgc2VsZWN0aW9uIG9mIHVuaXQgdGVzdHMgdG8gcnVuIHZpYSB0aGUgR1NUX0NIRUNLUwoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSAodGVzdCBjYXNlIGZ1bmN0aW9uIG5hbWVzLCBjb21tYS1zZXBhcmF0ZWQpLgoKMjAwNy0xMC0xNiAxMzo1ODo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUmV2ZXJ0IHNlcmlhbGlzYXRpb24gY2hhbmdlIGFuZCBjb25zdHJhaW4gc3RydWN0dXJlLW5hbWVzIGFmdGVyIGNvbnNlbnN1cyBvbiBpcmMuIFVwZGF0ZSBhcGkgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIFJldmVydCBzZXJpYWxpc2F0aW9uIGNoYW5nZSBhbmQgY29uc3RyYWluIHN0cnVjdHVyZS1uYW1lcyBhZnRlcgoJICBjb25zZW5zdXMgb24gaXJjLiBVcGRhdGUgYXBpIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdCB0aGUgY2hhbmdlLgoKMjAwNy0xMC0xNiAwNjozMjowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBJbXByb3ZlIHNlcmlhbGl6YXRpb24gYW5kIGZpeCB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBJbXByb3ZlIHNlcmlhbGl6YXRpb24gYW5kIGZpeCB0ZXN0cy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIEFkZCBhbm90aGVyIHRlc3QgdGhhdCBjb3ZlcnMgd2h5IEkgYWN0dWFsbHkgZGlkIHRoZSBwcmV2aW91cyBzdHJ1Y3R1cmUKCSAgY2hhbmdlLgoKMjAwNy0xMC0xNSAxNDozMzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IERvbid0IGNyYXNoIHdoZW4gaW5zcGVjdGluZyBhbiBlbGVtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRG9uJ3QgY3Jhc2ggd2hlbiBpbnNwZWN0aW5nIGFuIGVsZW1lbnQuCgoyMDA3LTEwLTE1IDExOjU4OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBBZGQgdW5pdCB0ZXN0IGZvciBlc2NhcGluZyBvZiBzdHJ1Y3R1cmUgbmFtZSB3aGVuIHNlcmlhbGlzaW5nIGFuZCBkZXNlcmlhbGlzaW5nIHRvL2ZyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgQWRkIHVuaXQgdGVzdCBmb3IgZXNjYXBpbmcgb2Ygc3RydWN0dXJlIG5hbWUgd2hlbiBzZXJpYWxpc2luZwoJICBhbmQgZGVzZXJpYWxpc2luZyB0by9mcm9tIHN0cmluZ3MuCgoyMDA3LTEwLTE1IDExOjM2OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEZpeCBxdWV1ZSBuZWdvdGlhdGlvbi4gSWYgYWNjZXB0Y2FwcyB1bmNvbmRpdGlvbmFsbHkgcmV0dXJucyBUUlVFLCB1cHN0cmVhbSBpcyB0cmlja2VkIGludG8gdGhpbmtpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgRml4IHF1ZXVlIG5lZ290aWF0aW9uLiBJZiBhY2NlcHRjYXBzIHVuY29uZGl0aW9uYWxseSByZXR1cm5zIFRSVUUsCgkgIHVwc3RyZWFtIGlzIHRyaWNrZWQgaW50byB0aGlua2luZyBpdCBjYW4gc3VnZ2VzdCBhIGZvcm1hdCBkb3duc3RyZWFtCgkgIHdoaWxlIGRvd25zdHJlYW0gZG9lcyBub3Qgc3VwcG9ydCB0aGF0IGZvcm1hdC4gVGhlIHJlYWwgcHJvYmxlbSBpcyB0aGF0CgkgIGNvcmUgY2FsbHMgYWNjZXB0Y2FwcyB3aGVuIHB1c2hpbmcgYSBidWZmZXIgd2l0aCBuZXcgY2FwcywgZm9yIHdoaWNoIHdlCgkgIGRvIGEgbGl0dGxlIHdvcmthcm91bmQgYnkgc2V0dGluZyB0aGUgY2FwcyBvbiB0aGUgc3JjcGFkIG91cnNlbHZlcwoJICBiZWZvcmUgcHVzaGluZyB0aGUgYnVmZmVyICh1bnRpbCB0aGlzIGlzIGZpZ3VyZWQgb3V0KS4gRml4ZXMgIzQ4Njc1OC4KCjIwMDctMTAtMTUgMTE6MTk6MzYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEFkZCBzb21lIG1vcmUgY29tbWVudHMgYW5kIGRlYnVnIG91dHB1dC4gUXVvdGUgc3RydWN0dXJlIG5hbWUgdG8gZml4IGRlc2VyaWFsaXNhdGlvbiBvZiBzb21lIHN0cmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgQWRkIHNvbWUgbW9yZSBjb21tZW50cyBhbmQgZGVidWcgb3V0cHV0LiBRdW90ZSBzdHJ1Y3R1cmUgbmFtZSB0byBmaXgKCSAgZGVzZXJpYWxpc2F0aW9uIG9mIHNvbWUgc3RyaW5ncy4KCjIwMDctMTAtMTUgMDc6Mzc6MzcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuaDogRGVmaW5lIEdTVF9CVUZGRVJfRkxBR19HQVAgbW9yZSBzdHJpY3RseSB0byBlbmFibGUgb3B0aW1pemF0aW9ucyBiYXNlZCBvbiBpdC4gRml4IGRvY3MgZm9yIEdTVF9CVUZGRS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIERlZmluZSBHU1RfQlVGRkVSX0ZMQUdfR0FQIG1vcmUgc3RyaWN0bHkgdG8gZW5hYmxlIG9wdGltaXphdGlvbnMgYmFzZWQKCSAgb24gaXQuIEZpeCBkb2NzIGZvciBHU1RfQlVGRkVSX01BTExPQ0RBVEEgYW5kIEdzdEJ1ZmZlci5tYWxsb2NfZGF0YS4KCjIwMDctMTAtMTUgMDc6MTE6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IFNhdmUgYXBwcm94LiA0MDAgMSBieXRlIGFsbG9jcyB3aGVuIHByaW50aW5nLiBVc2UgQVBJIHRvIGFjY2VzIGVsZW1lbnQgZGV0YWlscy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgU2F2ZSBhcHByb3guIDQwMCAxIGJ5dGUgYWxsb2NzIHdoZW4gcHJpbnRpbmcuIFVzZSBBUEkgdG8gYWNjZXMgZWxlbWVudAoJICBkZXRhaWxzLgoJICAqIHRvb2xzL2dzdC1ydW4uYzoKCSAgQXZvaWQgYSBzdHJkdXAuCgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgVXNlIEFQSSB0byBhY2NlcyBlbGVtZW50IGRldGFpbHMuCgoyMDA3LTEwLTE1IDA2OjUyOjAxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBGaXggc29tZSBzcGVsbGluZyBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIEZpeCBzb21lIHNwZWxsaW5nIGVycm9ycy4KCjIwMDctMTAtMTQgMTU6NTQ6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENvcnJlY3RseSBzZXQgdGhlIG5leHQgc3RhdGUgaWYgYWxsIG9mIG91ciBhc3luYyBjaGlsZHJlbiBjb21taXRlZCB0aGVpciBzdGF0ZS4gVGhpcyBtYWtlcyBzdXJlIHdlIGNhbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2hhbmRsZV9hc3luY19kb25lKToKCSAgQ29ycmVjdGx5IHNldCB0aGUgbmV4dCBzdGF0ZSBpZiBhbGwgb2Ygb3VyIGFzeW5jIGNoaWxkcmVuIGNvbW1pdGVkIHRoZWlyCgkgIHN0YXRlLiBUaGlzIG1ha2VzIHN1cmUgd2UgY2FuIGFjdHVhbGx5IGNhbmNlbCB0aGUgc3RhdGUgY2hhbmdlIGluCgkgIHByb2dyZXNzLiBGaXhlcyBhIHJlZ3Jlc3Npb24gaW4gUmh5dGhtYm94IHdoZW4gc2Vla2luZy4KCjIwMDctMTAtMTMgMTc6NDM6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IHNoYWRvdyBsb2NhbCB2YXJpYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOgoJICBEb24ndCBzaGFkb3cgbG9jYWwgdmFyaWFibGUuCgkgICogZ3N0L2dzdGluZm8uYzoKCSAgRG9uJ3Qgc2hhZG93IGdsb2JhbCBmdW5jdGlvbiBuYW1lLgoKMjAwNy0xMC0xMyAxNzoyMDowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFVzZSBhbHJlYWR5LWludGVybmVkIHN0cmluZyBmb3IgdGhlIHByaXZhdGUgR3N0UGx1Z2luRmVhdHVyZSBwbHVnaW5fbmFtZSBmaWVsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICBVc2UgYWxyZWFkeS1pbnRlcm5lZCBzdHJpbmcgZm9yIHRoZSBwcml2YXRlIEdzdFBsdWdpbkZlYXR1cmUKCSAgcGx1Z2luX25hbWUgZmllbGQuCgoyMDA3LTEwLTEwIDIyOjQzOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBBUEkgdG8gZG9jczsgZml4ZXMgdGhlIGJ1aWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IEFQSSB0byBkb2NzOyBmaXhlcyB0aGUgYnVpbGQuCgoyMDA3LTEwLTEwIDE1OjE4OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay4qOiBBZGQgZnVuY3Rpb24gdG8gd2FpdCBmb3IgRU9TLCBzdWJjbGFzc2VzIGNhbiB1c2UgdGhpcyB0byBjb3JyZWN0bHkgd2FpdCBmb3IgZGV2aWNlcyB0byBkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBpbnNwaXJlZCBieTogQmVub2l0IEZvdWV0IDxiZW5vaXQgZG90IGZvdWV0IGF0IHB1cnBsZWxhYnMgZG90IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIGZ1bmN0aW9uIHRvIHdhaXQgZm9yIEVPUywgc3ViY2xhc3NlcyBjYW4gdXNlIHRoaXMgdG8gY29ycmVjdGx5IHdhaXQKCSAgZm9yIGRldmljZXMgdG8gZHJhaW4gYmVmb3JlIHBlcmZvcm1pbmcgdGhlIEVPUyBsb2dpYy4gRml4ZXMgIzQ4NTM0My4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3dhaXRfZW9zKCkKCjIwMDctMTAtMTAgMTA6NTM6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luLmg6IENhc3QgZGVzY3JpcHRpb24gc3RyaW5nIGNvbnN0YW50cyBpbiBHU1RfUExVR0lOX0RFRklORSBtYWNyb3MgdG8gYSAoZ2NoYXIqKSB0byBtYWtlIEMrKyBjb2RlIHVzaW5nIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBDYXN0IGRlc2NyaXB0aW9uIHN0cmluZyBjb25zdGFudHMgaW4gR1NUX1BMVUdJTl9ERUZJTkUgbWFjcm9zCgkgIHRvIGEgKGdjaGFyKikgdG8gbWFrZSBDKysgY29kZSB1c2luZyB0aGVzZSBtYWNyb3MgY29tcGlsZQoJICB3aXRob3V0IHdhcm5pbmcgd2l0aCBnKystNC4yIChzZWUgIzQ2MjczNykuICBFdmVuIGlmIHNsaWdodGx5CgkgIHVnbHksIHRoaXMgc2VlbXMgcHJlZmVyYWJsZSB0byBwdXR0aW5nIHRoZSBkZXNjcmlwdGlvbiBzdHJpbmdzCgkgIGludG8gdGhlIEdMaWIgcXVhcmsgdGFibGUgb3IgbWFraW5nIHRoZSBzdHJ1Y3R1cmUgbWVtYmVyIGEKCSAgY29uc3QgZ2NoYXIgKiBhbmQgZG9pbmcgY2FzdHMgaW4gY29yZSBjb2RlIHRoYXQgYWxsb2NzIGFuZAoJICBmcmVlcyB0aGVzZSBzdHJpbmdzLCBvciByZXF1aXJpbmcgYSBjYXN0IGluIHRoZSBDKysgY29kZS4KCjIwMDctMTAtMDkgMjA6NDU6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBVc2UgX19GVU5DVElPTl9fIGluc3RlYWQgb2YgX19QUkVUVFlfRlVOQ1RJT05fXywgaXQncyBzaWxseSB0byBwcmludCB0aGUgZW50aXJlIGNsYXNzL2Z1bmN0aW9uIHNpZ25hdHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgVXNlIF9fRlVOQ1RJT05fXyBpbnN0ZWFkIG9mIF9fUFJFVFRZX0ZVTkNUSU9OX18sIGl0J3Mgc2lsbHkKCSAgdG8gcHJpbnQgdGhlIGVudGlyZSBjbGFzcy9mdW5jdGlvbiBzaWduYXR1cmUgaW50byB0aGUgbG9nCgkgIGZpbGUgZm9yIEMrKyBjb2RlLiAgVGhpcyBvbmx5IGFmZmVjdHMgQysrIGNvZGUsIGZvciBDIGNvZGUKCSAgZXZlcnl0aGluZyByZW1haW5zIHRoZSBzYW1lLgoKMjAwNy0xMC0wOSAxNjoyMDo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogV29yayBhcm91bmQgYSBwcm9ibGVtIHdpdGggcGlwZWxpbmVzIGNvbnRhaW5pbmcgKHNlbWkpbG9vcHMgdW50aWwgYSBwcm9wZXIsIG1vcmUgY29tcGxpY2F0ZWQgc29sdXRpb24gaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChyZW1vdmVfZnJvbV9xdWV1ZSk6CgkgIFdvcmsgYXJvdW5kIGEgcHJvYmxlbSB3aXRoIHBpcGVsaW5lcyBjb250YWluaW5nIChzZW1pKWxvb3BzIHVudGlsIGEKCSAgcHJvcGVyLCBtb3JlIGNvbXBsaWNhdGVkIHNvbHV0aW9uIGlzIHJlYWR5LiBTZWUgIzQ3NTQ1NS4KCjIwMDctMTAtMDkgMTQ6MTg6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBQdXQgbW9yZSBzdHJpbmdzIGludG8gdGhlIEdMaWIgcXVhcmsgdGFibGUuIE5vIG5lZWQgdG8ga2VlcCBhIGh1bmRyZWQtc29tZXRoaW5nIGNvcGllcyBvZiBpZGVudGljYWwgdmVyc2lvbiBzdHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgUHV0IG1vcmUgc3RyaW5ncyBpbnRvIHRoZSBHTGliIHF1YXJrIHRhYmxlLiBObyBuZWVkIHRvIGtlZXAKCSAgYSBodW5kcmVkLXNvbWV0aGluZyBjb3BpZXMgb2YgaWRlbnRpY2FsIHZlcnNpb24gc3RyaW5ncywKCSAgbGljZW5zZSBzdHJpbmdzLCBwYWNrYWdlIG5hbWUgc3RyaW5ncyBhbmQgcGFja2FnZSBvcmlnaW4KCSAgc3RyaW5ncyBhcm91bmQuCgoyMDA3LTEwLTA5IDEwOjQxOjQxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6IERvbid0IGltcGx5IHRoYXQgaXQncyBva2F5IHRvIHVuY29uZGl0aW9uYWxseSBjaGFuZ2UgYnVmZmVyIGRhdGEgb3IgYnVmZmVyIG1ldGFkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBEb24ndCBpbXBseSB0aGF0IGl0J3Mgb2theSB0byB1bmNvbmRpdGlvbmFsbHkgY2hhbmdlCgkgIGJ1ZmZlciBkYXRhIG9yIGJ1ZmZlciBtZXRhZGF0YSBpbiBhIHBhZCBwcm9iZSBjYWxsYmFjaywKCSAgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgY29tbWVudHMuIEZpeGVzICM0MzAwMzEuCgoyMDA3LTEwLTA4IDIwOjQ1OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uLzogVXBkYXRlIGdlbmVyYXRlZCBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBVcGRhdGUgZ2VuZXJhdGVkIGZpbGVzLgoKMjAwNy0xMC0wOCAxNzo1OTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6IFByZWZpeCBzZWN0aW9uIHdpdGggYnJva2VuIGNvZGUgd2l0aCBhIHdhcm5pbmcgKHNlZSAjMzQyNDMyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgUHJlZml4IHNlY3Rpb24gd2l0aCBicm9rZW4gY29kZSB3aXRoIGEgd2FybmluZyAoc2VlICMzNDI0MzIpLgoKMjAwNy0xMC0wOCAxNzoyNjowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogQ2FsbCBnX3RocmVhZF9pbml0KCkgYmVmb3JlIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgdG8gYXZvaWQgd2FybmluZ3MuIFNwb3R0ZWQgYnkgUml0ZXNoIEtoYWRnYXJheS4gRml4ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOgoJICBDYWxsIGdfdGhyZWFkX2luaXQoKSBiZWZvcmUgZ19vcHRpb25fY29udGV4dF9uZXcoKSB0bwoJICBhdm9pZCB3YXJuaW5ncy4gU3BvdHRlZCBieSBSaXRlc2ggS2hhZGdhcmF5LiBGaXhlcyAjNDg0MjI1LgoKMjAwNy0xMC0wOCAxNzowNTowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2hlbiB3ZSByZWNlaXZlZCBFT1MgYW5kIGFyZSB3YWl0aW5nIGZvciB3aGVuIHRvIHBvc3QgdGhlIEVPUyBtZXNzYWdlLCBvdXIgc3RhdGUgaXMgcHJlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCk6CgkgIFdoZW4gd2UgcmVjZWl2ZWQgRU9TIGFuZCBhcmUgd2FpdGluZyBmb3Igd2hlbiB0byBwb3N0IHRoZSBFT1MgbWVzc2FnZSwKCSAgb3VyIHN0YXRlIGlzIHByZXJvbGxlZCBhbmQgd2Ugc2hvdWxkIG5vdCByZXR1cm4gQVNZTkMuCgkgIFJlb3JnYW5pemUgc29tZSBjb2RlIHBhdGhzIHRvIGltcGxlbWVudCB0aGlzIGJlaGF2aW9yLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKHNlbmRfZW9zKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zaW5rc19zdWl0ZSk6CgkgIEFkZCB1bml0IHRlc3QgdG8gdmVyaWZ5IGFib3ZlIEVPUyBmaXguCgoyMDA3LTEwLTA4IDEwOjI4OjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogTW92ZSBkZXRlY3RpbmcgdGhlIGlucHV0IGNhcHMgb2YgdGhlIHNpbmtwYWQgdG8gdGhlIHNldGNhcHMgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZXRjYXBzKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIE1vdmUgZGV0ZWN0aW5nIHRoZSBpbnB1dCBjYXBzIG9mIHRoZSBzaW5rcGFkIHRvIHRoZSBzZXRjYXBzIGZ1bmN0aW9uLgoJICBUaGlzIGFsbG93cyB1cyB0byB1cGRhdGUgdGhlIG91dHB1dCBjYXBzIHdoZW4gd2UgcmVjZWl2ZSBuZXcgaW5wdXQgY2FwcwoJICBpbnN0ZWFkIG9mIGFsd2F5cyB1c2luZyB0aGUgZmlyc3QgZGV0ZWN0ZWQgY2Fwcy4KCjIwMDctMTAtMDggMTA6MjE6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IHRyeSB0byBwcmVyb2xsIG5vbi1hc3luYyBlbGVtZW50cyBhZnRlciBhIGZsdXNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgRG9uJ3QgdHJ5IHRvIHByZXJvbGwgbm9uLWFzeW5jIGVsZW1lbnRzIGFmdGVyIGEgZmx1c2guCgkgIFN1YnRyYWN0IGxhdGVuY3kgZm9ybSBjbG9jayB0aW1lcyB3aGVuIHJlcG9ydGluZyBwb3NpdGlvbi4KCjIwMDctMTAtMDUgMTQ6NDQ6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBjb21tZW50IGFuZCBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wYXVzZV90YXNrKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU21hbGwgY29tbWVudCBhbmQgZG9jdW1lbnRhdGlvbiB1cGRhdGUuCgoyMDA3LTEwLTA1IDE0OjQwOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFJld29yayB0aGUgbG9ja2luZyBvZiBiYXNlc3JjIGluIGEgc2ltaWxhciBmYXNoaW9uIHRvIGJhc2VzaW5rLiBXZSBiYXNpY2FsbHkgaGF2ZSBvbmUgbG9jLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfc2V0X2xpdmUpLCAoZ3N0X2Jhc2Vfc3JjX2lzX2xpdmUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5X2xhdGVuY3kpLCAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksIChnc3RfYmFzZV9zcmNfd2FpdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc3luYyksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19wYWRfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY191bmxvY2spLCAoZ3N0X2Jhc2Vfc3JjX3VubG9ja19zdG9wKSwKCSAgKGdzdF9iYXNlX3NyY19zZXRfZmx1c2hpbmcpLCAoZ3N0X2Jhc2Vfc3JjX3NldF9wbGF5aW5nKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBSZXdvcmsgdGhlIGxvY2tpbmcgb2YgYmFzZXNyYyBpbiBhIHNpbWlsYXIgZmFzaGlvbiB0byBiYXNlc2luay4gV2UKCSAgYmFzaWNhbGx5IGhhdmUgb25lIGxvY2sgKExJVkVfTE9DSykgcHJvdGVjdGluZyB0aGUgZGF0YWZsb3cuIFRoaXMgYWxsb3dzCgkgIHVzIHRvIGhhbmRsZSBsaXZlIHNvdXJjZXMgYW5kIHNlbWkgbGl2ZSBvbmVzIG11Y2ggYmV0dGVyLgoJICBTaW1wbGlmeSBmbHVzaGluZy4KCSAgRml4IHVubG9ja2luZyB3aGVuIHNlZWtpbmcsIHNodXR0aW5nIGRvd24gYW5kIHBhdXNpbmcgaW4gbGl2ZSBzb3VyY2VzLgoKMjAwNy0xMC0wNSAxMTo1MjozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IEZpeCBjb21waWxhdGlvbiBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogKHJ1bl9waXBlbGluZSk6CgkgIEZpeCBjb21waWxhdGlvbiBhZ2Fpbi4KCjIwMDctMTAtMDMgMTU6Mjc6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFVzZSBtZWFuaW5nZnVsIGNhdGVnb3JpZXMgZm9yIHRoZSBsb2dzIHRvIGNsZWFuIHRoZSBkZWZhdWx0IG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgVXNlIG1lYW5pbmdmdWwgY2F0ZWdvcmllcyBmb3IgdGhlIGxvZ3MgdG8gY2xlYW4gdGhlIGRlZmF1bHQgb25lLgoKMjAwNy0xMC0wMyAxNTowNTozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogUHJpbnQgbWVzc2FnZSBuYW1lIGFuZCBub3QganVzdCBudW1iZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkgIFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoKMjAwNy0xMC0wMyAxNTowMjo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6IEFkZCBzb21lIG1vcmUgdGhvdWdodHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICBBZGQgc29tZSBtb3JlIHRob3VnaHRzLgoKMjAwNy0xMC0wMyAxNDo1MTowMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogUHJpbnQgbWVzc2FnZSBuYW1lIGFuZCBub3QganVzdCBudW1iZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6CgkgIFByaW50IG1lc3NhZ2UgbmFtZSBhbmQgbm90IGp1c3QgbnVtYmVyLgoKMjAwNy0xMC0wMyAxMjowNToxNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBTcGVlZHVwIHR5cGVmaW5kaW5nLiBUaGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MgKHNlZSAjNDU5ODYyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBTcGVlZHVwIHR5cGVmaW5kaW5nLiBUaGlzIGlzIHdvcmsgaW4gcHJvZ3Jlc3MgKHNlZSAjNDU5ODYyKS4KCjIwMDctMTAtMDMgMTE6MzY6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogRml4IGRvY3MgdGhhdCBtZW50aW9uICdwbHVnaW5fZGVzYycgaW5zdGVhZCBvZiAnZ3N0X3BsdWdpbl9kZXNjJy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBGaXggZG9jcyB0aGF0IG1lbnRpb24gJ3BsdWdpbl9kZXNjJyBpbnN0ZWFkIG9mICdnc3RfcGx1Z2luX2Rlc2MnLgoJICBTcG90dGVkIGJ5IEpvc2VwIFRvcnJhIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+LgoKMjAwNy0xMC0wMyAxMToxNjo0OCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RjbG9jay5oOiBGaXggdXAgYnJva2VuIEdTVF9DTE9DS19GTEFHUyBtYWNybyBhbmQgR3N0Q2xvY2sgZG9jcy4gVGhlIGZsYWdzIGZpZWxkIGhhcyBtb3ZlZCB0byBHc3RPYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBGaXggdXAgYnJva2VuIEdTVF9DTE9DS19GTEFHUyBtYWNybyBhbmQgR3N0Q2xvY2sgZG9jcy4gVGhlIGZsYWdzCgkgIGZpZWxkIGhhcyBtb3ZlZCB0byBHc3RPYmplY3QuCgoyMDA3LTEwLTAyIDE1OjIwOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IENhbGwgdW5sb2NrIGZvciBsaXZlIHNvdXJjZXMgc28gdGhhdCB0aGV5IGNhbid0IGdldCBzdHVjayBpbiBfY3JlYXRlIGFuZCBwcm9kdWNlIGEgYnVmZmVyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQ2FsbCB1bmxvY2sgZm9yIGxpdmUgc291cmNlcyBzbyB0aGF0IHRoZXkgY2FuJ3QgZ2V0IHN0dWNrIGluIF9jcmVhdGUgYW5kCgkgIHByb2R1Y2UgYSBidWZmZXIgYmVmb3JlIHRoZXkgYXJlIHNldCBiYWNrIHRvIFBMQVlJTkcuCgoyMDA3LTEwLTAyIDA5OjIxOjQ4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBDb21tZW50IHRoZSBzZWdtZW50LXJlbGF0ZWQgY29kZS4uLiBpbiB0aGUgUFJPUEVSIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLAoJICAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKToKCSAgQ29tbWVudCB0aGUgc2VnbWVudC1yZWxhdGVkIGNvZGUuLi4gaW4gdGhlIFBST1BFUiBmdW5jdGlvbi4KCSAgU2VlICM0ODIxNDcgYW5kIG15IGNvbW1pdCBmcm9tIHllc3RlcmRheS4KCjIwMDctMTAtMDEgMTc6NTk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWxzbyBpbml0aWFsaXplIHRoZSBjb3VudGVyIHRoYXQgY2FsY3VsYXRlcyB0aGUgZmlyc3QgdGltZXN0YW1wIG9uIGEgYnVmZmVyIGNvcnJlY3RseSBmb3IuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgQWxzbyBpbml0aWFsaXplIHRoZSBjb3VudGVyIHRoYXQgY2FsY3VsYXRlcyB0aGUgZmlyc3QgdGltZXN0YW1wIG9uIGEKCSAgYnVmZmVyIGNvcnJlY3RseSBmb3Igbm9uLWxpdmUgc291cmNlcy4KCjIwMDctMTAtMDEgMTI6MzE6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IERpc2FibGUgY29kZSB0aGF0J3MgYnJlYWtpbmcgdGhlIGN1cnJlbnQtdGltZS1sZXZlbCByZXBvcnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb2NrZWRfZGVxdWV1ZSk6CgkgIERpc2FibGUgY29kZSB0aGF0J3MgYnJlYWtpbmcgdGhlIGN1cnJlbnQtdGltZS1sZXZlbCByZXBvcnRpbmcuCgkgIFNlZSAjNDgyMTQ3CgoyMDA3LTA5LTMwIDE4OjE2OjM0ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgTV9QSSBhbmQgSU1QT1JUX1NZTUJPTCB0byB0aGUgcHJpdmF0ZSBwYXJ0IG9mIHRoZSBHc3RJbmZvIHNlY3Rpb24gYXMgdGhleSBzaG91bGQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIE1fUEkgYW5kIElNUE9SVF9TWU1CT0wgdG8gdGhlIHByaXZhdGUgcGFydCBvZiB0aGUgR3N0SW5mbyBzZWN0aW9uCgkgIGFzIHRoZXkgc2hvdWxkbid0IHNob3cgdXAuIEZpeGVzIHRoZSBkb2NzIGJ1aWxkLgoKMjAwNy0wOS0yOSAxMTo0NjozMSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogQWRkIGFuIGV4cGxpY2l0IHZhcmlhYmxlIGltcG9ydGF0aW9uIG5lZWRlZCBvbiBWUzYgKG9ubHkgZm9yIE1TQ19WRVIpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEFkZCBhbiBleHBsaWNpdCB2YXJpYWJsZSBpbXBvcnRhdGlvbiBuZWVkZWQgb24gVlM2IChvbmx5IGZvciBNU0NfVkVSKQoJICBEZWZpbmUgTV9QSSB3aGljaCBpcyB1c2VkIGluIGZpbGVzIHdoaWNoIGFyZSBpbmNsdWRpbmcgZ3N0aW5mby5oLgoJICBWUzYgaW5jbHVkZXMgZG9lc24ndCBkZWZpbmUgaXQuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcy4KCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFVwZGF0ZSB0aGUgbGlzdCBvZiBmaWxlcyB0byBidWlsZC4KCjIwMDctMDktMjggMTA6MjI6NDAgKzAwMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBJbXByb3ZlIGRlYnVnZ2luZy4gRml4ZXMgIzQ4MDg1OC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBGZWxpcGUgQ29udHJlcmFzIDxmZWxpcGUgZG90IGNvbnRyZXJhcyBhdCBnbWFpbCBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKHVwZGF0ZV90aW1lX2xldmVsKSwgKGFwcGx5X2J1ZmZlciksCgkgIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4gRml4ZXMgIzQ4MDg1OC4KCjIwMDctMDktMjggMTA6MTU6MjMgKzAwMDAgIEZlbGlwZSBDb250cmVyYXMgPGZlbGlwZS5jb250cmVyYXNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBGaXJzdCBwYXRjaCBvZiBjb2RlIGNsZWFudXBzLCB1c2UgdGhlIG1hY3JvcyBhbmQgcmlnaHQgYXJndW1lbnRzIGluIHRoZSBtYWNyb3MgdG8gc2lnbmFsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogRmVsaXBlIENvbnRyZXJhcyA8ZmVsaXBlIGRvdCBjb250cmVyYXMgYXQgZ21haWwgZG90IGNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBGaXJzdCBwYXRjaCBvZiBjb2RlIGNsZWFudXBzLCB1c2UgdGhlIG1hY3JvcyBhbmQgcmlnaHQgYXJndW1lbnRzIGluIHRoZQoJICBtYWNyb3MgdG8gc2lnbmFsIGFuZCBsb2NrIHRoZSBxdWV1ZS4gU2VlICM0ODA4NTguCgoyMDA3LTA5LTI2IDE4OjA2OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBJbXByb3ZlIGRlYnVnZ2luZyB3aGVuIGRlYWxpbmcgd2l0aCBfcG9sbCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChwb2xsX2Z1bmMpOgoJICBJbXByb3ZlIGRlYnVnZ2luZyB3aGVuIGRlYWxpbmcgd2l0aCBfcG9sbCgpLgoKMjAwNy0wOS0yNiAxODowNDo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBGaXggbWVtb3J5IGxlYWsgSSBpbnRyb2R1Y2VkIGEgZmV3IGRheXMgYWdvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgRml4IG1lbW9yeSBsZWFrIEkgaW50cm9kdWNlZCBhIGZldyBkYXlzIGFnby4KCjIwMDctMDktMjYgMTc6MDA6MjIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RidWZmZXIuYzogTWFrZSBpdCBvbmNlIGFnYWluIHBvc3NpYmxlIHRvIGZyZWUgR3N0QnVmZmVycyBpbiB0aGUgZGVmYXVsdCBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9maW5hbGl6ZSk6CgkgIE1ha2UgaXQgb25jZSBhZ2FpbiBwb3NzaWJsZSB0byBmcmVlIEdzdEJ1ZmZlcnMgaW4gdGhlIGRlZmF1bHQKCSAgYnVpbGQuCgkgIFRoZSBwb2lzb25pbmcgc2NyaWJibGVzIG9uIHBhcnRzIG9mIHRoZSBtaW5pb2JqZWN0IHdlIG5lZWQgaW4KCSAgb3JkZXIgdG8gZnJlZSBpdC4KCSAgRml4ZXMgIzQ4MDM0MQoKMjAwNy0wOS0yNSAxODozNTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfQ09NUE9TRVIsIGZpeGVzICM0NTk4MDkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX0NPTVBPU0VSLCBmaXhlcyAjNDU5ODA5LgoKMjAwNy0wOS0yNCAxNzo0MToyNSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi4qOiBBZGQgdGhlIDMtY2xhdXNlIEJTRCBsaWNlbnNlIGFuZCB0aGUgTUlUL1gxMSBsaWNlbnNlIHRvIHRoZSBsaWNlbnNlIGxpc3QuIEZpeGVzICM0Nzk3ODQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgIEFkZCB0aGUgMy1jbGF1c2UgQlNEIGxpY2Vuc2UgYW5kIHRoZSBNSVQvWDExIGxpY2Vuc2UgdG8gdGhlIGxpY2Vuc2UKCSAgbGlzdC4gRml4ZXMgIzQ3OTc4NC4KCjIwMDctMDktMjQgMTc6MjI6MjEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS9nZXR0aW5nLnhtbDogQWRkIFErQSBhYm91dCBkaWZmZXJlbnQgR1N0cmVhbWVyIHZlcnNpb25zICgjMzY0MDU2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkgIEFkZCBRK0EgYWJvdXQgZGlmZmVyZW50IEdTdHJlYW1lciB2ZXJzaW9ucyAoIzM2NDA1NikuCgoyMDA3LTA5LTI0IDEyOjQ2OjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBSZXR1cm4gY29ycmVjdCBnYm9vbGVhbiBmcm9tIHF1ZXJ5IGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFJldHVybiBjb3JyZWN0IGdib29sZWFuIGZyb20gcXVlcnkgZnVuY3Rpb24uCgoyMDA3LTA5LTI0IDEyOjI5OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTaW1wbGlmeSBsYXRlbmN5IHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3F1ZXJ5X2xhdGVuY3kpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2ltcGxpZnkgbGF0ZW5jeSBxdWVyeS4KCSAgV2hlbiBub3Qgc3luY2hyb25pemluZywgd2UgY2FuIHJlcG9ydCBsYXRlbmN5IHdpdGhvdXQgcXVlcnlpbmcgdGhlIHBlZXIKCSAgZWxlbWVudC4KCjIwMDctMDktMjQgMTE6NDY6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggc21hbGwgdHlwb3MgaW4gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRml4IHNtYWxsIHR5cG9zIGluIHRoZSBkb2NzLgoKMjAwNy0wOS0yNCAxMToyMjoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCB0eXBvIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtYWN0aXZhdGlvbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zY2hlZHVsaW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzIGFuZCB0eXBvIGZpeGVzLgoKMjAwNy0wOS0yMyAxMDoxNjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogQWRkIHNvbWUgZGVidWcgdGV4dCB0byBlcnJvciBtZXNzYWdlIHRvIGluZGljYXRlIHRoYXQgd2UgZXJyb3JlZCBvdXQgb24gcmVxdWVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICBBZGQgc29tZSBkZWJ1ZyB0ZXh0IHRvIGVycm9yIG1lc3NhZ2UgdG8gaW5kaWNhdGUgdGhhdAoJICB3ZSBlcnJvcmVkIG91dCBvbiByZXF1ZXN0LgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgV2hlbiB0aGUgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcgZmFpbHMsIGNoZWNrIGZvciBhbgoJICBlcnJvciBtZXNzYWdlIG9uIHRoZSBidXMgYW5kIHByaW50IGl0LgoKMjAwNy0wOS0yMiAxNzoyMjoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9jcy5wbzoKCSogcG8vaHUucG86CgkqIHBvL3VrLnBvOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCjIwMDctMDktMjIgMTc6MTg6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBBZGRlZCBTcGFuaXNoIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRlZCBieTogSm9yZ2UgR29uesOhbGV6IEdvbnrDoWxleiA8YWxvcmllbEBnbWFpbC5jb20+CgkgICogcG8vTElOR1VBUzoKCSAgKiBwby9lcy5wbzoKCSAgQWRkZWQgU3BhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDktMjEgMTQ6Mzc6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IEZpeCBwcmludGYgYXJndW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBGaXggcHJpbnRmIGFyZ3VtZW50cy4KCjIwMDctMDktMjAgMTA6MzY6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6IEltcHJvdmVkIHN0YXRlIGNoYW5nZSB1bml0IHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIEltcHJvdmVkIHN0YXRlIGNoYW5nZSB1bml0IHRlc3QuCgoyMDA3LTA5LTIwIDA3OjQyOjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmg6IE1vdmUgcHJpdiB0byB0aGUgcmlnaHQgcGxhY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgTW92ZSBwcml2IHRvIHRoZSByaWdodCBwbGFjZS4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSAgQWRkIEZJWE1FOiBhbmQgaW1wcm92ZSBsb2cuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBXb3JrIHdpdGggYWxsIHR5cGVzIG9mIHJlZ2lzdHJpZXMuCgoyMDA3LTA5LTE5IDIwOjM5OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHVucmVmIHRoZSBldmVudCBhZnRlciBwdXNoaW5nIGl0LiBGaXhlcyAjNDc4NDAxLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KToKCSAgRG9uJ3QgdW5yZWYgdGhlIGV2ZW50IGFmdGVyIHB1c2hpbmcgaXQuIEZpeGVzICM0Nzg0MDEuCgoyMDA3LTA5LTE5IDE4OjA3OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBJZ25vcmUgcmVnaXN0cmllcyBpbiBhbnkgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiAuY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uY3ZzaWdub3JlOgoJICBJZ25vcmUgcmVnaXN0cmllcyBpbiBhbnkgZm9ybWF0LgoKMjAwNy0wOS0xOSAxMzoyODo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nbGliLWNvbXBhdC1wcml2YXRlLmg6IEFkZCBjb21wYXRpYmlsaXR5IG1hY3JvIGZvciBnX2ludGVybl9zdHJpbmcoKSBmb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDoKCSAgQWRkIGNvbXBhdGliaWxpdHkgbWFjcm8gZm9yIGdfaW50ZXJuX3N0cmluZygpIGZvcgoJICBHTGliLTIuOCAoYW55IHJlYXNvbiB3ZSBjYW4ndCBqdXN0IGJ1bXAgdGhlCgkgIHJlcXVpcmVtZW50IHRvIGF0IGxlYXN0IDIuMTA/KQoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOgoJICBNYWtlIEdzdFN0YXRpY1BhZFRlbXBsYXRlJ3MgdGVtcGxfbmFtZSBmaWVsZCBhIGNvbnN0IGdjaGFyICogYW5kIGZpeAoJICB1cCB0aGUgaW50ZXJuYWwgY29kZSBhY2NvcmRpbmdseS4gIFRoaXMgc2hvdWxkbid0IGJlIGEgcHJvYmxlbSwgc2luY2UKCSAgdGhlcmUgaXMgbm8gcmVhc29uIGV4dGVybmFsIGNvZGUgY291bGQgZXZlciBhc3N1bWUgdGhlIHN0cmluZyBpbiBzdWNoCgkgIGEgc3RydWN0dXJlIGlzIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB1bmxlc3MgaXQgZGlkIHRoYXQgaXRzZWxmOyAgdGhlCgkgIHVzZSBvZiBnX3N0cmR1cCgpIGlzIHByaXZhdGUgdG8gZWxlbWVudCBmYWN0b3JpZXMuICBUaGUgbmV3IGNvZGUgYWxzbwoJICBzYXZlcyBzb21lIG1lbW9yeSBieSBwdXR0aW5nIHBhZCB0ZW1wbGF0ZSBuYW1lIHN0cmluZ3MgaW50byB0aGUgR0xpYgoJICBxdWFyayB0YWJsZSBpbnN0ZWFkIG9mIGFsbG9jYXRpbmcgdGhlbSBkeW5hbWljYWxseS4KCSAgRGVjbGFyaW5nIHRoaXMgZmllbGQgY29uc3RhbnQgZml4ZXMgd2FybmluZ3Mgd2l0aCBnKystNC4yIHdoZW4gdXNpbmcKCSAgdGhlIEdTVF9TVEFUSUNfUEFEX1RFTVBMQVRFIG1hY3JvIGluIGMrKyBjb2RlICgjNDc4MDkyKS4KCjIwMDctMDktMTkgMTI6MzE6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBSZWxlYXNlIHN0YXRpYyBjYXBzLiBGaXhlcyAjNDc1NzIzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgUmVsZWFzZSBzdGF0aWMgY2Fwcy4gRml4ZXMgIzQ3NTcyMy4KCjIwMDctMDktMTggMjI6MTM6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby4qOiBNYWtlIHNvbWUgaW50ZXJuYWwgQVBJIHRha2UgY29uc3QgZ2NoYXIgKiBpbnN0ZWFkIG9mIGp1c3QgZ2NoYXIgKiB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncyB3aXRoIGcrKy0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBNYWtlIHNvbWUgaW50ZXJuYWwgQVBJIHRha2UgY29uc3QgZ2NoYXIgKiBpbnN0ZWFkIG9mIGp1c3QKCSAgZ2NoYXIgKiB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncyB3aXRoIGcrKy00LjIuMiB3aGVuCgkgIHBhc3Npbmcgc3RyaW5nIGNvbnN0YW50cyAocGFydGlhbGx5IGZpeGVzICM0NzgwOTIpLgoKMjAwNy0wOS0xNyAyMDo1NToyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQSBsYXRlbmN5IHF1ZXJ5IGZhaWxzIHdoZW4gb25lIG9mIHRoZSBzaW5rcyBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcXVlcnlfbGF0ZW5jeV9mb2xkKSwgKGdzdF9iaW5fcXVlcnkpOgoJICBBIGxhdGVuY3kgcXVlcnkgZmFpbHMgd2hlbiBvbmUgb2YgdGhlIHNpbmtzIGZhaWwuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9iYXNlX3RpbWUpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDktMTcgMTc6MTc6MjkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IG1pbm9yIGNvbXBpbGF0aW9uIHdhcm5pbmdzIHNob3duIHdpdGggRm9ydGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY29udGludWVfZnVuYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZG9fc3luYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkX2Z1bGwpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApOgoJICBGaXggbWlub3IgY29tcGlsYXRpb24gd2FybmluZ3Mgc2hvd24gd2l0aCBGb3J0ZS4KCjIwMDctMDktMTcgMDY6MDE6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IE1lYXN1cmUgcXVldWUgbGV2ZWwgYmFzZWQgb24gdGhlIGRpZmYgYmV0d2VlbiBoZWFkIGFuZCB0YWlsIHRpbWVzdGFtcHMgZXZlbiB3aGVuIHB1c2hpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoYXBwbHlfYnVmZmVyKSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksIChnc3RfcXVldWVfbG9ja2VkX2RlcXVldWUpOgoJICBNZWFzdXJlIHF1ZXVlIGxldmVsIGJhc2VkIG9uIHRoZSBkaWZmIGJldHdlZW4gaGVhZCBhbmQgdGFpbCB0aW1lc3RhbXBzCgkgIGV2ZW4gd2hlbiBwdXNoaW5nIHRoZSBmaXJzdCBidWZmZXIuCgoyMDA3LTA5LTE0IDIzOjA2OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTaW5rcyB0aGF0IGRvbid0IHByZXJvbGwgY2FuIGFsd2F5cyBiZSBxdWVyaWVkIGZvciB0aGUgbGF0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTaW5rcyB0aGF0IGRvbid0IHByZXJvbGwgY2FuIGFsd2F5cyBiZSBxdWVyaWVkIGZvciB0aGUgbGF0ZW5jeS4KCSAgRG9uJ3QgcG9zdCBBU1lOQyBzdGFydCB3aGVuIHdlIGFyZSBub3QgYXN5bmMuCgoyMDA3LTA5LTE0IDIwOjI0OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBXaGVuIGRvd25zdHJlYW0gcmV0dXJucyBVTkVYUEVDVEVEIGZyb20gcHVzaGluZyBhIGJ1ZmZlciwgZG9uJ3QgdHJ5IHRvIHB1c2ggbW9yZSBidWZmZXJzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb2NrZWRfZW5xdWV1ZSksCgkgIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLCAoZ3N0X3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9xdWV1ZV9wdXNoX29uZSksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBXaGVuIGRvd25zdHJlYW0gcmV0dXJucyBVTkVYUEVDVEVEIGZyb20gcHVzaGluZyBhIGJ1ZmZlciwgZG9uJ3QgdHJ5IHRvCgkgIHB1c2ggbW9yZSBidWZmZXJzIGJ1dCBhbGxvdyBwdXNoaW5nIG9mIEVPUyBhbmQgTkVXU0VHTUVOVC4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvIGhlcmUgYW5kIHRoZXJlLiBGaXhlcyAjNDc2NTE0LgoKMjAwNy0wOS0xNCAxNTo1MjoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTGF0ZW5jeSBxdWVyeSBpcyBhbGxvd2VkIGFmdGVyIHdlIGFyZSBwcmVyb2xsZWQuIEludHJvZHVjZSBhIG5ldyBmbGFnIGZvciB0aGlzIGFuZCBzdG9wIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKSwgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyksIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTGF0ZW5jeSBxdWVyeSBpcyBhbGxvd2VkIGFmdGVyIHdlIGFyZSBwcmVyb2xsZWQuIEludHJvZHVjZSBhIG5ldyBmbGFnCgkgIGZvciB0aGlzIGFuZCBzdG9wIGFidXNpbmcgb3RoZXIgdmFyaWFibGVzLgoKMjAwNy0wOS0xMyAyMzo1Mzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBQdXNoIE9PQiBldmVudHMgZG93bnN0cmVhbSB3aGVuIHdlIGdldCB0aGVtIGluIHNlbmRfZXZlbnQuIFRoaXMgYWxsb3dzIHRoZSBhcHBsaWNhdGlvbiB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KToKCSAgUHVzaCBPT0IgZXZlbnRzIGRvd25zdHJlYW0gd2hlbiB3ZSBnZXQgdGhlbSBpbiBzZW5kX2V2ZW50LiBUaGlzIGFsbG93cwoJICB0aGUgYXBwbGljYXRpb24gdG8gaW5zZXJ0IGV2ZW50cyBpbiB0aGUgcGlwZWxpbmUuCgkgIEFkZCBzb21lIG1vcmUgY29tbWVudHMuCgoyMDA3LTA5LTEzIDIxOjI3OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW92ZSBsYXRlbmN5IHF1ZXJ5IGZyb20gR3N0UGlwZWxpbmUgdG8gR3N0QmluIHNvIHRoYXQgd2UgY2FuIGFsc28gdXNlIGl0IHdoZW4gYXN5bmMtaGFuZGxpbmcgaXMgZW5hYmxlZCBvbiBiaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoY2xlYXJfcXVldWUpLAoJICAoZG9fYmluX2xhdGVuY3kpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgTW92ZSBsYXRlbmN5IHF1ZXJ5IGZyb20gR3N0UGlwZWxpbmUgdG8gR3N0QmluIHNvIHRoYXQgd2UgY2FuIGFsc28KCSAgdXNlIGl0IHdoZW4gYXN5bmMtaGFuZGxpbmcgaXMgZW5hYmxlZCBvbiBiaW5zLgoKMjAwNy0wOS0xMyAyMToxOTowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBVcGRhdGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZG9fc3luYyksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgVXBkYXRlIGRvY3MuCgkgIENsZWFuIHVwIHRoZSB0aW1lc3RhbXBpbmcgYW5kIHN5bmNpbmcgY29kZSBmb3IgcHNldWRvIGxpdmUgc291cmNlcy4KCjIwMDctMDktMTMgMTk6Mjc6NTMgKzAwMDAgIFN0ZXZlIEZpbmsgPHNwaGlua0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOiBNZW50aW9uIGxlc3MgLVIgc3dpdGNoIGluIHRoZSBzZWN0aW9uIGFib3V0IGRlYnVnIG91dHB1dCAoIzQ3NDA1NSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU3RldmUgRmluayAgPHNwaGluayBnbWFpbCBjb20+CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgTWVudGlvbiBsZXNzIC1SIHN3aXRjaCBpbiB0aGUgc2VjdGlvbiBhYm91dCBkZWJ1ZyBvdXRwdXQgKCM0NzQwNTUpLgoKMjAwNy0wOS0xMyAxNzoxNTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogUXVldWUgY2FuIGxhdGVuY3kgdG8gdGhlIHBpcGVsaW5lIHVwIHRvIHRoZSBjb25maWd1cmVkIG1heCBzaXplIGluIHRpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgUXVldWUgY2FuIGxhdGVuY3kgdG8gdGhlIHBpcGVsaW5lIHVwIHRvIHRoZSBjb25maWd1cmVkIG1heCBzaXplIGluIHRpbWUuCgkgIFJlcG9ydCB0aGlzIGZhY3QgaW4gdGhlIGxhdGVuY3kgcXVlcnkuCgoyMDA3LTA5LTEzIDA5OjA4OjIzICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSgpIHdoZW4gY29udmVydGluZyBmcm9tIGEgdWludDY0IG9yCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuIGF0IG1vdXR0ZSBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0bGZvY29udHJvbHNvdXJjZS5jOgoJICBVc2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSgpIHdoZW4gY29udmVydGluZyBmcm9tIGEgdWludDY0IG9yCgkgIEdzdENsb2NrVGltZSB0byBkb3VibGUgdG8gZml4IHRoZSBidWlsZCBvbiB3aW4zMi4gRml4ZXMgIzQ3NDM3MS4KCjIwMDctMDktMTMgMDg6NDI6NTUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9nc3RidWZmZXIuYzogSW1wbGVtZW50IHBvaXNvbmluZyBmb3IgR3N0QnVmZmVyIGlmIC0tZW5hYmxlLXBvaXNvbmluZyBpcyBzcGVjaWZpZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfZmluYWxpemUpOgoJICBJbXBsZW1lbnQgcG9pc29uaW5nIGZvciBHc3RCdWZmZXIgaWYgLS1lbmFibGUtcG9pc29uaW5nIGlzIHNwZWNpZmllZC4KCSAgV2hlbiBmaW5hbGl6aW5nIGEgYnVmZmVyIHRoZSBjb21wbGV0ZSBzdHJ1Y3QgaXMgZmlsbGVkIHdpdGggMHhmZiwKCSAgdGh1cyBtYWtpbmcgYSB1c2Ugb2YgdGhlIGJ1ZmZlciBhZnRlciB0aGUgZmluYWwgdW5yZWYgaW1wb3NzaWJsZS4KCjIwMDctMDktMTMgMDg6MzY6MzcgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiBVc2UgZmFpbF91bmxlc3NfZXF1YWxzX2ludChhLCBiKSBpbnN0ZWFkIG9mIGZhaWxfdW5sZXNzX2VxdWFscyAoYSA9PSBiKSB0byBnZXQgYmV0dGVyIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVXNlIGZhaWxfdW5sZXNzX2VxdWFsc19pbnQoYSwgYikgaW5zdGVhZCBvZgoJICBmYWlsX3VubGVzc19lcXVhbHMgKGEgPT0gYikgdG8gZ2V0IGJldHRlciBvdXRwdXQgb24gZmFpbHVyZXMuCgoyMDA3LTA5LTEyIDE2OjM1OjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOiBBbHNvIGNoZWNrIGZvciB0aGUgb3RoZXIgZmlsZSBVUkkgdmFyaWFudCBvbiB3aW4zMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOgoJICBBbHNvIGNoZWNrIGZvciB0aGUgb3RoZXIgZmlsZSBVUkkgdmFyaWFudCBvbiB3aW4zMi4KCjIwMDctMDktMTIgMTI6MzY6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IElmIHRoZXJlJ3Mgbm8gaG9zdG5hbWUsIHdlIHdhbnQgdG8gcmV0dXJuICdjOi9mb28vYmFyLnR4dCcgYW5kIG5vdCAnL2M6L2Zvby9iYXIudHh0JyBvbiBXaW5kb3dzLiBGaXhlcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9nZXRfbG9jYXRpb24pOgoJICBJZiB0aGVyZSdzIG5vIGhvc3RuYW1lLCB3ZSB3YW50IHRvIHJldHVybiAnYzovZm9vL2Jhci50eHQnCgkgIGFuZCBub3QgJy9jOi9mb28vYmFyLnR4dCcgb24gV2luZG93cy4gRml4ZXMgIzQ2OTQwMi4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXJpLmM6CgkgIFVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlIGFuZCBhIGZldyBtb3JlIHRoaW5ncy4KCjIwMDctMDktMTEgMjM6Mjc6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDogQWRkIGRvY3Mgb24gaG93IGxpdmUgc291cmNlcyBzaG91bGQgdGltZXN0YW1wLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgQWRkIGRvY3Mgb24gaG93IGxpdmUgc291cmNlcyBzaG91bGQgdGltZXN0YW1wLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpOgoJICBBZGQgc29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIEZvciBzdWJjbGFzc2VzIHRoYXQgYXJlIGxpdmUgYW5kIGxpa2UgdG8gc3luYywgYWRkIGFkaXRpb25hbCBzdGFydHVwCgkgIGxhdGVuY3kgdG8gc3luYyB0aW1lIGFuZCB0aW1lc3RhbXBzIHNvIHRoYXQgd2UgdGltc3RhbXAgYWNjb3JkaW5nIHRvIHRoZQoJICBkZXNpZ24gZG9jLgoKMjAwNy0wOS0xMSAxODo1OTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuYzogQWxzbyBkbyBhIGdfdHlwZV9jbGFzc19yZWYoKSBmb3IgdGhlIHN1YmJ1ZmZlciB0eXBlIGluIHRoZSBpbml0IGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIEFsc28gZG8gYSBnX3R5cGVfY2xhc3NfcmVmKCkgZm9yIHRoZSBzdWJidWZmZXIgdHlwZSBpbgoJICB0aGUgaW5pdCBmdW5jdGlvbi4KCjIwMDctMDktMTEgMTU6NTU6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGQgZnVuY3Rpb24gdG8gcGVyZm9ybSBhIHF1ZXJ5IG9uIHRoZSBwZWVyIG9mIGEgcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGVlcl9xdWVyeSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGQgZnVuY3Rpb24gdG8gcGVyZm9ybSBhIHF1ZXJ5IG9uIHRoZSBwZWVyIG9mIGEgcGFkLgoJICBBUEk6IGdzdF9wYWRfcGVlcl9xdWVyeSgpCgoyMDA3LTA5LTExIDEzOjQzOjUzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogQ2xlYW51cCB0aGUgdGVzdCBhIGxpdHRsZSAodXNlIGdzdC1sb2dnaW5nIGFuZCBub3QgZ19tZXNzYWdlKS4gSW1wcm92ZSB0ZXN0IHRvIGNoZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIENsZWFudXAgdGhlIHRlc3QgYSBsaXR0bGUgKHVzZSBnc3QtbG9nZ2luZyBhbmQgbm90IGdfbWVzc2FnZSkuIEltcHJvdmUKCSAgdGVzdCB0byBjaGVjayBpZiBhIHdhaXQgcmVhY2hlZCB0aGUgdGFyZ2V0LgoKMjAwNy0wOS0xMSAxMDozMzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZCBuZXcgQVBJIHRvIGRvY3MgYW5kIGZpeCB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgQVBJIHRvIGRvY3MgYW5kIGZpeCB0aGUgYnVpbGQuCgoyMDA3LTA5LTEwIDE2OjUwOjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IEFkZCBwcm9wZXJ0eSB0byBtYWtlIHRoZSBiYXNlc3JjIHRpbWVzdGFtcCBidWZmZXJzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHJ1bm5pbmcgdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfc2V0X2RvX3RpbWVzdGFtcCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X2RvX3RpbWVzdGFtcCksIChnc3RfYmFzZV9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBZGQgcHJvcGVydHkgdG8gbWFrZSB0aGUgYmFzZXNyYyB0aW1lc3RhbXAgYnVmZmVycyBiYXNlZCBvbiB0aGUgY3VycmVudAoJICBydW5uaW5nIHRpbWUuCgkgIEFQSTogR3N0QmFzZVNyYzo6ZG8tdGltZXN0YW1wCgkgIEFQSTogZ3N0X2Jhc2Vfc3JjX3NldF9kb190aW1lc3RhbXAoKQoJICBBUEk6IGdzdF9iYXNlX3NyY19nZXRfZG9fdGltZXN0YW1wKCkKCjIwMDctMDktMDggMjA6MjU6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBSZWFsbHkgbWFrZSBzdXJlIHRyYW5zbGF0aW9ucyBhcmUgdXAtdG8tZGF0ZSBiZWZvcmUgYSByZWxlYXNlICgjNDY1MDEwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgUmVhbGx5IG1ha2Ugc3VyZSB0cmFuc2xhdGlvbnMgYXJlIHVwLXRvLWRhdGUgYmVmb3JlCgkgIGEgcmVsZWFzZSAoIzQ2NTAxMCkuCgoyMDA3LTA5LTA3IDE0OjQ2OjUyICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgYWRkIGxhdGVzdCBoZWFkZXIgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsYXRlc3QgaGVhZGVyIGZpbGVzCgoyMDA3LTA5LTA3IDA0OjUwOjIzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogQWx3YXlzIGRlc3Ryb3kgdGhlIHRpbWVyLCBhbHNvIGluIGVycm9yIGNhc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgIEFsd2F5cyBkZXN0cm95IHRoZSB0aW1lciwgYWxzbyBpbiBlcnJvciBjYXNlcy4KCjIwMDctMDktMDUgMjI6Mjk6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL21hbnVhbC9oaWdobGV2ZWwteG1sLnhtbDogRml4IFhNTCBleGFtcGxlIGNvZGUuIEZpeGVzICM0NzI3MTQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC14bWwueG1sOgoJICBGaXggWE1MIGV4YW1wbGUgY29kZS4gRml4ZXMgIzQ3MjcxNC4KCjIwMDctMDktMDUgMjI6MTI6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFByb3RlY3QgZW9zIGFuZCBoYXZlX3ByZXJvbGwgd2l0aCB0aGUgT0JKRUNUIGxvY2sgc28gd2UgZG9uJ3QgbmVlZCB0byB0YWtlIHRoZSBQUkVST0xMIGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9wcmVyb2xsKSwgKGdzdF9iYXNlX3NpbmtfbmVlZHNfcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgUHJvdGVjdCBlb3MgYW5kIGhhdmVfcHJlcm9sbCB3aXRoIHRoZSBPQkpFQ1QgbG9jayBzbyB3ZSBkb24ndCBuZWVkIHRvCgkgIHRha2UgdGhlIFBSRVJPTEwgbG9jayB3aGVuIHF1ZXJ5aW5nIHRoZSBsYXRlbmN5LiBGaXhlcyAjNDczODQ2LgoKMjAwNy0wOS0wNSAxMzoyNDozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogR2l2ZSBzb21lIGxvZy1tZXNzYWdlcyBhIGNhdGVnb3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICBHaXZlIHNvbWUgbG9nLW1lc3NhZ2VzIGEgY2F0ZWdvcnkuCgoyMDA3LTA5LTA1IDAxOjAwOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBGaXggZnJhY3Rpb24gbGlzdCBmaXhhdGlvbiBjb2RlLiBUYWtlIHRoZSBmcmFjdGlvbiB3aXRoIHRoZSBzbWFsbGVzdCBkaWZmZXJlbmNlIHdpdGggdGhlIHRhcmdldCBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZnJhY3Rpb24pOgoJICBGaXggZnJhY3Rpb24gbGlzdCBmaXhhdGlvbiBjb2RlLiBUYWtlIHRoZSBmcmFjdGlvbiB3aXRoIHRoZSBzbWFsbGVzdAoJICBkaWZmZXJlbmNlIHdpdGggdGhlIHRhcmdldCBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGxpc3QuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIEFkZGVkIHRlc3QgdG8gdmVyaWZ5IGNvcnJlY3QgZnJhY3Rpb24gbGlzdCBmaXhhdGlvbiBiZWhhdmlvdXIuCgoyMDA3LTA5LTAyIDIwOjMwOjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEV4cG9ydCBnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2ggdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgRXhwb3J0IGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaCB0b28uCgoyMDA3LTA4LTMwIDE3OjUwOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBtZXRob2RzIHRvIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgbWV0aG9kcyB0byBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfdHNfb2Zmc2V0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3RzX29mZnNldCksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkIHRzLW9mZnNldCBwcm9wZXJ0eSB0byBmaW5lLXR1bmUgdGhlIHN5bmNocm9uaXNhdGlvbi4KCSAgQVBJOiBHc3RCYXNlU2luazo6dHMtb2Zmc2V0IHByb3BlcnR5CgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfdHNfb2Zmc2V0KCkKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2dldF90c19vZmZzZXQoKQoKMjAwNy0wOC0yOSAyMDo1Nzo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogQWRkIGFzeW5jIHByb3BlcnR5IHRvIGluc3RydWN0IHRoZSBzaW5rIG5ldmVyIHRvIGluZm9ybSB0aGUgcGFyZW50IGFib3V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jKSwgKGdzdF9iYXNlX3Npbmtfc2V0X21heF9sYXRlbmVzcyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9tYXhfbGF0ZW5lc3MpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19pc19xb3NfZW5hYmxlZCksIChnc3RfYmFzZV9zaW5rX3NldF9hc3luY19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfYXN5bmNfZW5hYmxlZCksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGQgYXN5bmMgcHJvcGVydHkgdG8gaW5zdHJ1Y3QgdGhlIHNpbmsgbmV2ZXIgdG8gaW5mb3JtIHRoZSBwYXJlbnQgYWJvdXQKCSAgQVNZTkMgc3RhdGUgY2hhbmdlcywgdXBkYXRlIGRvY3MuCgkgIENoZWNrIGFyZ3VtZW50IHdpdGggZ19yZXR1cm5fKiBmb3IgdGhlIHB1YmxpYyBmdW5jdGlvbnMuCgkgIEFQSTogR3N0QmFzZVNpbms6OmFzeW5jIHByb3BlcnR5CgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfYXN5bmNfZW5hYmxlZCgpCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19pc19hc3luY19lbmFibGVkKCkKCjIwMDctMDgtMjggMTU6MDI6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEltcHJvdmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2xvb3ApOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY193YWl0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zeW5jKSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBSZWFycmFuZ2Ugc29tZSBjb2RlIHNvIHRoYXQgd2UgY2FuIGFkZCBzdXBwb3J0IGZvciBtZWFzdXJpbmcgdGhlCgkgIHN0YXJ0dXAgbGF0ZW5jeS4KCjIwMDctMDgtMjcgMjA6MDA6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6IE1vcmUgdGhvdWdocyBvbiB0aGlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OgoJICBNb3JlIHRob3VnaHMgb24gdGhpcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgQWRkIGJ1Z3ppbGxhIHRpY2tldCBudW1iZXIgdG8gRklYTUUgY29tbWVudC4KCjIwMDctMDgtMjYgMTg6MzA6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTUFJTlRBSU5FUlM6CgkgIHJlbW92ZSB0ZW1wIGZpbGVzIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgdGVtcCBmaWxlcyBhZ2FpbgoKMjAwNy0wOC0yNiAxNjo0MjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBNQUlOVEFJTkVSUzoKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA4LTI2IDE1OjU4OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIEFVVEhPUlM6CgkqIE1BSU5UQUlORVJTOgoJICB0ZXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGVzdCBjb21taXQKCjIwMDctMDgtMjQgMjE6NTM6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIFVwZGF0ZSBzb21lIGRvY3MuCgoyMDA3LTA4LTI0IDE2OjM5OjA2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogUmV2ZXJ0IHBhdGNoIHdoaWNoIHVzZXMgJChnc3RfaGVhZGVycykgaW5zdGVhZCBvZiAkXiBiZWNhdXNlIGl0IGJyZWFrcyBtYWtlIGRpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgUmV2ZXJ0IHBhdGNoIHdoaWNoIHVzZXMgJChnc3RfaGVhZGVycykgaW5zdGVhZCBvZiAkXiBiZWNhdXNlIGl0CgkgIGJyZWFrcyBtYWtlIGRpc3QuCgoyMDA3LTA4LTI0IDE0OjU1OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogRml4IGxlYWtzIGluIHRoZSBuZXcgdW5pdCB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBsZWFrcyBpbiB0aGUgbmV3IHVuaXQgdGVzdC4KCjIwMDctMDgtMjMgMjA6NDE6MzAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IERvbid0IHVzZSBHU1RfSU5GTyBiZWZvcmUgdGhlIGRlYnVnIHN5c3RlbSBpcyBhY3R1YWxseSBpbml0aWFsaXNlZCAoc2hvdWxkbid0IGRvIGFueSBoYXJtLCBidXQgd29uJ3QgcHJpbnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBEb24ndCB1c2UgR1NUX0lORk8gYmVmb3JlIHRoZSBkZWJ1ZyBzeXN0ZW0gaXMgYWN0dWFsbHkgaW5pdGlhbGlzZWQKCSAgKHNob3VsZG4ndCBkbyBhbnkgaGFybSwgYnV0IHdvbid0IHByaW50IGFueXRoaW5nIGVpdGhlciwgc28gd2UgY2FuCgkgIGp1c3QgYXMgd2VsbCByZW1vdmUgaXQpLgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEdTVF9DQVRfTEVWRUxfTE9HX3ZhbGlzdCgpLCB3aGljaCBpcyBvdXIgaW5saW5lIGhlbHBlciBmdW5jdGlvbiBmb3IKCSAgY29tcGlsZXJzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB2YXJpYWRpYyBtYWNyb3MgKHN1Y2ggYXMgTVNWQyksIHNob3VsZAoJICBjaGVjayBmb3IgZGVidWdfbGV2ZWwgPD0gX19nc3RfZGVidWdfbWluIGFzIHdlbGwsIHNpbmNlIHRoYXQncyB0aGUKCSAgZnVuY3Rpb24gY2FsbGVkIGZyb20gYWxsIHRoZSBsZXZlbC1zcGVjaWZpYyBHU1RfQ0FUXypfTE9HX09CSkVDVCgpCgkgIGlubGluZSBoZWxwZXIgZnVuY3Rpb25zLiBTaG91bGQgaW1wcm92ZSBwZXJmb3JtYW5jZSBhIGJpdCwgYnV0IGFsc28KCSAgbWFrZXMgc3VyZSB1c2VzIG9mIEdTVF9JTkZPIGV0LmFsIGFyZSBpZ25vcmVkIGlmIHRoZSBkZWJ1Z2dpbmcKCSAgc3lzdGVtIGlzbid0IGluaXRpYWxpc2VkIHlldCAoaW5zdGVhZCBvZiBwcmludGluZyBhbiBhc3NlcnRpb24KCSAgZmFpbHVyZSkuCgoyMDA3LTA4LTIzIDA3OjEwOjMzICswMDAwICBEYXZpZCBOZcSNYXMgPHlldGlAcGh5c2ljcy5tdW5pLmN6PgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBSZXBsYWNlIHNvbWUgbm9uIHBvcnRhYmxlIG1ha2VmaWxlIGNvbnN0cnVjdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYXRjaCBieTogRGF2aWQgTmXEjWFzIDx5ZXRpQHBoeXNpY3MubXVuaS5jej4KCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIFJlcGxhY2Ugc29tZSBub24gcG9ydGFibGUgbWFrZWZpbGUgY29uc3RydWN0cy4KCjIwMDctMDgtMjEgMTQ6MTA6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNvbW1vbi9ndGstZG9jLXBsdWdpbnMubWFrOiBHcnJycnIuIERvbid0IHJlbW92ZSB0aGUgdHlwZXMgZmlsZSBvbiBtYWtlIGNsZWFuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3RrLWRvYy1wbHVnaW5zLm1hazoKCSAgR3JycnJyLiBEb24ndCByZW1vdmUgdGhlIHR5cGVzIGZpbGUgb24gbWFrZSBjbGVhbi4KCjIwMDctMDgtMjAgMTc6NTE6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLjEuaW46IEFkZCBjb2xvcnNwYWNlIHRvIGV4YW1wbGUgcGlwZWxpbmUuIEZpeGVzICM0NTgyNzQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgQWRkIGNvbG9yc3BhY2UgdG8gZXhhbXBsZSBwaXBlbGluZS4gRml4ZXMgIzQ1ODI3NC4KCjIwMDctMDgtMjAgMTI6MzE6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBUaGUgcmVsZWFzZSBtYW5hZ2VyIHNob3VsZCBydW4gJ21ha2UgZG93bmxvYWQtcG8nIGJlZm9yZSBtYWtpbmcgYSByZWxlYXNlIHRvIG1ha2Ugc3VyZSB0cmFuc2xhdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgVGhlIHJlbGVhc2UgbWFuYWdlciBzaG91bGQgcnVuICdtYWtlIGRvd25sb2FkLXBvJyBiZWZvcmUgbWFraW5nIGEKCSAgcmVsZWFzZSB0byBtYWtlIHN1cmUgdHJhbnNsYXRpb25zIGFyZSB1cC10by1kYXRlLgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vYmUucG86CgkgICogcG8vcGwucG86CgkgICogcG8vcncucG86CgkgIEFkZCBzb21lIG5ldyB0cmFuc2xhdGlvbnMuCgoyMDA3LTA4LTE3IDEzOjQ4OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBEb27CtHQgdHJ5IHRvIGRvIGFueSBzdGF0ZSBtYW5hZ2VtZW50IHdoZW4gYSBsaXZlIHBpcGVsaW5lIHBvc3RzIGJ1ZmZlcmluZyBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgRG9uwrR0IHRyeSB0byBkbyBhbnkgc3RhdGUgbWFuYWdlbWVudCB3aGVuIGEgbGl2ZSBwaXBlbGluZSBwb3N0cwoJICBidWZmZXJpbmcgbWVzc2FnZXMuCgkgIEFsc28gbWFrZSB0aGUgYnVmZmVyaW5nIHN0cmluZyB0cmFuc2xhdGFibGUuCgoyMDA3LTA4LTE2IDExOjA0OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoYmluX2hhbmRsZV9hc3luY19zdGFydCksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgV2hlbiBhZGRpbmcgZWxlbWVudHMsIGluc2VydCBtZXNzYWdlcyBpbnRvIHRoZSBidXMgb2YgdGhlIG5ld2x5IGFkZGVkCgkgIGVsZW1lbnQgYW5kIG1ha2Ugc3VyZSB0aGUgZWxlbWVudCBpcyB0aGUgc291cmNlIG9mIHRoZSBtZXNzYWdlLiBUaGlzCgkgIGFsbG93cyB0aGUgcGFyZW50IGJpbiB0byBpbnRlcmNlcHQgdGhlIG1lc3NhZ2UgYW5kIGRvIHRoZQoJICByaWdodCB0aGluZy4gSXQgYWxzbyBhdm9pZHMgdXMgcG9zdGluZyBBU1lOQ19TVEFSVCBhbmQgQ0xPQ0tfUFJPVklERQoJICBtZXNzYWdlcyB0byB0aGUgYXBwICh3aGljaCBpcyBub3QgYWxsb3dlZCkuCgkgIFVwZGF0ZSBzb21lIGRvY3MuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCB0ZXN0c3VpdGUgc28gdGhhdCBpcyBkb2VzIG5vdCB3b3JrIGFyb3VuZCBtZXNzYWdlcyB0aGF0IHNob3VsZCBub3QKCSAgaGF2ZSBiZWVuIHBvc3RlZCBpbiB0aGUgZmlyc3QgcGxhY2UuCgoyMDA3LTA4LTE2IDEwOjI3OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBGaXggYW5ub3lpbmcgYnVnIGluIHRoZSBzb3J0ZWQgaXRlcmF0b3Igd2hlcmUgYSBzaW5rIHRoYXQgaXMgbm90IHJlYWxseSBhIHNpbmsgKHdoZW4gaXQgaGFzIGRvd25zdHJlYW0gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGFkZF90b19xdWV1ZSksIChyZW1vdmVfZnJvbV9xdWV1ZSksIChjbGVhcl9xdWV1ZSksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KToKCSAgRml4IGFubm95aW5nIGJ1ZyBpbiB0aGUgc29ydGVkIGl0ZXJhdG9yIHdoZXJlIGEgc2luayB0aGF0IGlzIG5vdCByZWFsbHkKCSAgYSBzaW5rICh3aGVuIGl0IGhhcyBkb3duc3RyZWFtIGxpbmtzKSBzY3Jld2VkIHVwIHRoZSBpdGVyYXRvci4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgVW5pdCB0ZXN0IHRvIHZlcmlmeSB0aGUgZml4LgoKMjAwNy0wOC0xNiAxMDowNzo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLmg6IEFkZCBzb21lIG1vcmUgZG9jcyBmb3IgdGhlIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgc29tZSBtb3JlIGRvY3MgZm9yIHRoZSBtZXNzYWdlcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFdoZW4gaW50ZXJydXB0aW5nLCBkb24ndCB0cnkgdG8gc2V0IHBpcGVsaW5lIHRvIFBBVVNFRCB0d2ljZS4KCjIwMDctMDgtMTQgMTQ6MTA6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IE1vdmUgQVNZTkNfU1RBUlQgbWVzc2FnZSBwb3N0aW5nIHRvIHdoZXJlIGl0IGJlbG9uZ3MsIHNpbWlsYXIgdG8gYXN5bmNfZG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgTW92ZSBBU1lOQ19TVEFSVCBtZXNzYWdlIHBvc3RpbmcgdG8gd2hlcmUgaXQgYmVsb25ncywgc2ltaWxhciB0bwoJICBhc3luY19kb25lLgoJICBEb24ndCBwb3N0IEFTWU5DX1NUQVJUIHdoZW4gd2UgYXJlIGluIGVycm9yLgoJICBQb3N0IEFTWU5DX1NUQVJUIHdoZW4gd2UgYWRkZWQgYW4gYXN5bmMgZWxlbWVudCB0byBhIGJpbi4KCjIwMDctMDgtMTQgMTM6NDM6NDQgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGluZGV4LmM6IEZpeCBpbmRleCBlbnRyeSBnZW5lcmF0aW9uIGZyb20gdmFyZ3MuIEZpeGVzICM0NjY1OTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTA4LTE0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9uKTogRml4IGluZGV4IGVudHJ5CgkgIGdlbmVyYXRpb24gZnJvbSB2YXJncy4gRml4ZXMgIzQ2NjU5NS4KCjIwMDctMDgtMTQgMTM6Mzc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFsd2F5cyBjaGFuZ2UgdGhlIHN0YXRlIG9mIGEgTk9fUFJFUk9MTCBlbGVtZW50IGV2ZW4gaWYgaXQgaGFzIEFTWU5DIGVsZW1lbnRzIGluc2lkZSAoaW4gY2FzZSBvZiBhIGJpbikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpOgoJICBBbHdheXMgY2hhbmdlIHRoZSBzdGF0ZSBvZiBhIE5PX1BSRVJPTEwgZWxlbWVudCBldmVuIGlmIGl0IGhhcyBBU1lOQwoJICBlbGVtZW50cyBpbnNpZGUgKGluIGNhc2Ugb2YgYSBiaW4pLgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9zaW5rc19zdWl0ZSk6CgkgIFVuaXQgdGVzdCBmb3IgdGhpcyBjYXNlLgoKMjAwNy0wOC0xMyAxMzozMzowNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkIG1vcmUgbWlzc2luZyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RidWZmZXJzdHJhdy5jOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIEFkZCBtb3JlIG1pc3NpbmcgZG9jcy4KCjIwMDctMDgtMTIgMTY6NDQ6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEFkZCBTaW5jZSB0YWcgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBBZGQgU2luY2UgdGFnIHRvIGRvY3MuCgoyMDA3LTA4LTEyIDE2OjQwOjU5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIGZ1bmN0aW9uIHRvIGdldCB1aW50IGZyb20gYSBzdHJ1Y3R1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfdWludCk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICBBZGQgZnVuY3Rpb24gdG8gZ2V0IHVpbnQgZnJvbSBhIHN0cnVjdHVyZS4KCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2dldF91aW50KCkKCjIwMDctMDgtMTIgMTY6Mzg6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggcHJvcGVyIGNoZWNrIGZvciBzaW1wbGUgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3NldF9zaW1wbGVfdmFsaXN0KSwKCSAgKGdzdF9jYXBzX2ludGVyc2VjdCk6CgkgIEZpeCBwcm9wZXIgY2hlY2sgZm9yIHNpbXBsZSBjYXBzLgoKMjAwNy0wOC0xMCAxNzozNTozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IFJlbW92ZSBjcnVmdCBhbmQgZG8gc29tZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICBSZW1vdmUgY3J1ZnQgYW5kIGRvIHNvbWUgY2xlYW51cHMuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICBQcmVwYXJlIGZvciBjb21taW5nIGd0a2RvYyBmZWF0dXJlcyAocmViYXNlIGFnYWluc3Qgb25saW5lIGRvY3MpLgoKMjAwNy0wOC0xMCAxNDo1Mjo0MSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGdzdF9yZWdpc3RyeV9hZGRfcGF0aCB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoIHRvIGRvY3MuCgkgIEFsc28gZml4IGZvcm1hdHRpbmcgb2YgYW4gb2xkZXIgY2hhbmdlbG9nIGVudHJ5CgoyMDA3LTA4LTEwIDE0OjQwOjI2ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnkuaDogQWRkIGdzdF9yZWdpc3RyeV9hZGRfcGF0aCwgd2hpY2ggd2FzIG1pc3NpbmcgZnJvbSB0aGlzIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIEFkZCBnc3RfcmVnaXN0cnlfYWRkX3BhdGgsIHdoaWNoIHdhcyBtaXNzaW5nIGZyb20gdGhpcyBoZWFkZXIuCgoyMDA3LTA4LTEwIDEwOjMwOjIyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmM6IFByaW50ZiBmb3JtYXQgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzoKCSAgUHJpbnRmIGZvcm1hdCBmaXguCgoyMDA3LTA4LTA5IDIxOjUwOjE5ICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBzZW5kIGFuIGFzeW5jX3N0YXJ0IG1lc3NhZ2UgZHVyaW5nIGRvd253YXJkcyBzdGF0ZSBjaGFuZ2UgaWYgdGFyZ2V0IHN0YXRlIGlzIGxlc3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgRG9uJ3Qgc2VuZCBhbiBhc3luY19zdGFydCBtZXNzYWdlIGR1cmluZyBkb3dud2FyZHMgc3RhdGUgY2hhbmdlIGlmIHRhcmdldAoJICBzdGF0ZSBpcyBsZXNzIHRoYW4gUkVBRFkKCjIwMDctMDgtMDkgMTA6NTA6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBBZGRlZCBIdW5nYXJpYW4gdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGVkIGJ5OiBHYWJvciBLZWxlbWVuIDxrZWxlbWVuZ0Bnbm9tZS5odT4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2h1LnBvOgoJICBBZGRlZCBIdW5nYXJpYW4gdHJhbnNsYXRpb24uCgoyMDA3LTA4LTA5IDEwOjQ4OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL2ZpLnBvOgoJICAqIHBvL2l0LnBvOgoJICAqIHBvL25sLnBvOgoJICAqIHBvL3N2LnBvOgoJICAqIHBvL3VrLnBvOgoJICBVcGRhdGVkIHRyYW5zbGF0aW9ucy4KCjIwMDctMDgtMDcgMTY6MDY6NDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbTogRGlzdCBnc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgIERpc3QgZ3N0bGZvY29udHJvbHNvdXJjZXByaXZhdGUuaAoKMjAwNy0wOC0wNyAxNToxNTo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6IERvbid0IHJlZ2lzdGVyIHRoZSBlbnVtIHR5cGUgZ3N0X2xmb193YXZlZm9ybV9nZXRfdHlwZSgpIGluIHRoZSAudHlwZXMgZmlsZSAtIG9ubHkgR08uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBEb24ndCByZWdpc3RlciB0aGUgZW51bSB0eXBlIGdzdF9sZm9fd2F2ZWZvcm1fZ2V0X3R5cGUoKSBpbiB0aGUKCSAgLnR5cGVzIGZpbGUgLSBvbmx5IEdPYmplY3QgZGVyaXZlZCB0eXBlcyBiZWxvbmcuCgoyMDA3LTA4LTA3IDE0OjA0OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBSZW1vdmUgY29tbWEgZnJvbSBsYXN0IGVsZW1lbnQgaW4gZW51bSB0byBhdm9pZCBjb21waWxlIGVycm9ycyB3aGVuIHVzaW5nIC1wZW5kYW50aWMuIEZpeGVzICM0NjQzNjYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogPGFyZW5ldmllciBhdCBmZG4gZG90IGZyPgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgUmVtb3ZlIGNvbW1hIGZyb20gbGFzdCBlbGVtZW50IGluIGVudW0gdG8gYXZvaWQgY29tcGlsZSBlcnJvcnMgd2hlbgoJICB1c2luZyAtcGVuZGFudGljLiBGaXhlcyAjNDY0MzY2LgoKMjAwNy0wOC0wNyAwOTo1NjowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IEFkZCBzb21lIG1vcmUgVE9ETyBpdGVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgc29tZSBtb3JlIFRPRE8gaXRlbXMKCSAgKiBnc3QvZ3N0YmluLmM6IChmaW5kX21lc3NhZ2UpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBPcHRpbWl6ZSB0cml2aWFsIGludGVyc2VjdGlvbiBjYXNlIGJldHdlZW4gaWRlbnRpY2FsIGNhcHMgcG9pbnRlcnMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBzcGVsbGluZyBhbmQgZ3JhbW1hciBtaXN0YWtlcy4KCjIwMDctMDgtMDUgMTQ6NDg6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBvL1BPVEZJTEVTLio6IFVwZGF0ZSBQT1RGSUxFUy4gRml4ZXMgIzQ2MTU5OS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46CgkgICogcG8vUE9URklMRVMuc2tpcDoKCSAgVXBkYXRlIFBPVEZJTEVTLiBGaXhlcyAjNDYxNTk5LgoKMjAwNy0wOC0wMyAxOToyNTo0NSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdC5jOiBGaXggY29uZnVzaW5nIHR5cG8gaW4gZGVidWcgb3V0cHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEZpeCBjb25mdXNpbmcgdHlwbyBpbiBkZWJ1ZyBvdXRwdXQuCgoyMDA3LTA4LTAzIDE1OjQ3OjE3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogQVBJOiBBZGQgR3N0TEZPQ29udHJvbFNvdXJjZSwgYSBjb250cm9sIHNvdXJjZSB0aGF0IGdpdmVzIHZhbHVlcyBmb3Igc3BlY2lmaWMgdGltZXN0YW1wcyBiYXNlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zZi5uZXQ+CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGxmb2NvbnRyb2xzb3VyY2UuYzogKF9jYWxjdWxhdGVfcG9zKSwKCSAgKGdzdF9sZm9fd2F2ZWZvcm1fZ2V0X3R5cGUpLCAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9yZXNldCksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX25ldyksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX3NldF93YXZlZm9ybSksCgkgIChnc3RfbGZvX2NvbnRyb2xfc291cmNlX2JpbmQpLCAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9pbml0KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfZmluYWxpemUpLAoJICAoZ3N0X2xmb19jb250cm9sX3NvdXJjZV9kaXNwb3NlKSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2Vfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9sZm9fY29udHJvbF9zb3VyY2VfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RsZm9jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICBBUEk6IEFkZCBHc3RMRk9Db250cm9sU291cmNlLCBhIGNvbnRyb2wgc291cmNlIHRoYXQgZ2l2ZXMgdmFsdWVzCgkgIGZvciBzcGVjaWZpYyB0aW1lc3RhbXBzIGJhc2VkIG9uIHNldmVyYWwgcGVyaW9kaWMgd2F2ZWZvcm1zLgoJICBGaXhlcyAjNDU5NzE3LgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIEFkZCBkb2N1bWVudGF0aW9uIGFuZCB1bml0IHRlc3RzIGZvciBHc3RMRk9Db250cm9sU291cmNlLgoKMjAwNy0wOC0wMyAxNDo0MDoyMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMTQgPT09CgoyMDA3LTA4LTAzIDE0OjM5OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBSZWxlYXNlIDAuMTAuMTQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbGVhc2UgMC4xMC4xNAoKMjAwNy0wOC0wMyAxMzoyMDo1MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZpLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNy0wOC0wMiAxMTo1MToxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50Lio6IE1ha2Ugc3RyaW5ncyBwYXNzZWQgdG8gZ3N0X2VsZW1lbnRfY2xhc3Nfc2V0X2RldGFpbHNfc2ltcGxlKCkgY29uc3RhbnQsIGFzIHRoZXkgc2hvdWxkIGJlICgjNDYyNzUyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgTWFrZSBzdHJpbmdzIHBhc3NlZCB0byBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUoKQoJICBjb25zdGFudCwgYXMgdGhleSBzaG91bGQgYmUgKCM0NjI3NTIpLgoKMjAwNy0wOC0wMiAxMToxNTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRG9uJ3QgZm9yZ2V0IGFib3V0IHRoZSBmYWN0IHRoYXQgc29tZSBlbGVtZW50IHdlbnQgQVNZTkMgZXZlbiBhZnRlciBhIHJlc3luYy4gVGhpcyBtYWtlcyB1cyBwb3N0IHRoZSBBUy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBEb24ndCBmb3JnZXQgYWJvdXQgdGhlIGZhY3QgdGhhdCBzb21lIGVsZW1lbnQgd2VudCBBU1lOQyBldmVuIGFmdGVyIGEKCSAgcmVzeW5jLiBUaGlzIG1ha2VzIHVzIHBvc3QgdGhlIEFTWU5DX0RPTkUgbWVzc2FnZSBjb3JyZWN0bHkuCgkgIEZpeGVzICM0NjI1NTguCgoyMDA3LTA3LTMxIDExOjUxOjM4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBXaGVuIHJlcGxhY2luZyBhbiBleGlzdGluZyBmZWF0dXJlIGluIHRoZSByZWdpc3RyeSwgbWFrZSBzdXJlIHRvIGNvbnRpbnVlIGhvbGRpbmcgYSByZWZlcmVuY2UgdW50aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9hZGRfZmVhdHVyZSk6CgkgIFdoZW4gcmVwbGFjaW5nIGFuIGV4aXN0aW5nIGZlYXR1cmUgaW4gdGhlIHJlZ2lzdHJ5LCBtYWtlIHN1cmUgdG8KCSAgY29udGludWUgaG9sZGluZyBhIHJlZmVyZW5jZSB1bnRpbCB3ZSd2ZSByZXBsYWNlZCB0aGUgbmFtZSBzdHJpbmcKCSAgd2l0aGluIG91ciBmZWF0dXJlIGhhc2ggdGFibGUuIE1ha2Ugc3VyZSB0byB1c2UgZ19oYXNoX3RhYmxlX3JlcGxhY2UKCSAgaW5zdGVhZCBvZiBnX2hhc2hfdGFibGVfaW5zZXJ0IHRvIGVuc3VyZSB0aGUgbmV3IG5hbWUgc3RyaW5nIGlzIHVzZWQKCSAgYXMgYSBrZXkgaW5zdGVhZCBvZiB0aGUgb2xkIG9uZSB0aGF0IHdlJ3JlIGFib3V0IHRvIGZyZWUuCgkgIEZpeGVzOiAjNDYyMDg1CgoyMDA3LTA3LTMxIDEwOjEwOjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IFJldmVydCBwYXRjaCBmcm9tICM0NTk0NjYgdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UgYW5kIHdlIGNhbiB3b3JrIG91dCBleGFjdGx5IHdoYXQgdGhlIHByb2JsZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2ZpbmFsaXplKSwKCSAgKGdzdF9wbHVnaW5fZmVhdHVyZV9zZXRfbmFtZSk6CgkgIFJldmVydCBwYXRjaCBmcm9tICM0NTk0NjYgdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UgYW5kIHdlIGNhbiB3b3JrCgkgIG91dCBleGFjdGx5IHdoYXQgdGhlIHByb2JsZW0gaXMgKGlmIGFueSkuCgoyMDA3LTA3LTI2IDE1OjQ4OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1RBR19MSUNFTlNFX1VSSSBhbmQgR1NUX1RBR19DT1BZUklHSFRfVVJJICgjNDUxOTM5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfTElDRU5TRV9VUkkgYW5kIEdTVF9UQUdfQ09QWVJJR0hUX1VSSSAoIzQ1MTkzOSkuCgoyMDA3LTA3LTI2IDE0OjA1OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogSW5jbHVkZSBvdXIgYnVpbGQtcHJlZml4IGxpYnMgYW5kIGluY2x1ZGVzIGJlZm9yZSB0aGUgZ2VuZXJpYyBvbmVzIHRvIGF2b2lkIGxpbmtpbmcgYWdhaW5zdCB0aC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIEluY2x1ZGUgb3VyIGJ1aWxkLXByZWZpeCBsaWJzIGFuZCBpbmNsdWRlcyBiZWZvcmUgdGhlIGdlbmVyaWMgb25lcyB0bwoJICBhdm9pZCBsaW5raW5nIGFnYWluc3QgdGhlIGluc3RhbGxlZCBsaWJzIHdoZW4gd2Ugd2FudCB0aGUgYnVpbGQtdHJlZQoJICBvbmVzLgoKMjAwNy0wNy0yNiAwODo0Njo0NiArMDAwMCAgU3RldmUgRmluayA8c3BoaW5rQGdtYWlsLmNvbT4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOiBNZW50aW9uIHRoYXQgR1NUX1BMVUdJTl9QQVRIIG9yIC0tZ3N0LXBsdWdpbi1wYXRoIG1pZ2h0IGJlIG5lZWRlZCBpZiBwZW9wbGUgdHJ5IHRvIGJ1aS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZXZlIEZpbmsgIDxzcGhpbmsgZ21haWwgY29tPgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBNZW50aW9uIHRoYXQgR1NUX1BMVUdJTl9QQVRIIG9yIC0tZ3N0LXBsdWdpbi1wYXRoIG1pZ2h0IGJlIG5lZWRlZAoJICBpZiBwZW9wbGUgdHJ5IHRvIGJ1aWxkIG9yIGluc3RhbGwgdGhlIGV4YW1wbGUgZnJvbSB0aGUgcGx1Z2luCgkgIHRlbXBsYXRlIGFnYWluc3QgYSBHU3RyZWFtZXIgZnJvbSBwYWNrYWdlIHVzaW5nIHRoZSBjb25maWd1cmUKCSAgZGVmYXVsdHMuCgoyMDA3LTA3LTI1IDIyOjI5OjU3ICswMDAwICBTdGV2ZSBGaW5rIDxzcGhpbmtAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjogRG9jdW1lbnQgLS1wcmludC1hbGwgYW5kIC0tcHJpbnQtcGx1Z2luLWF1dG8taW5zdGFsbC1pbmZvIGNvbW1hbmQgbGluZSBvcHRpb25zIGluIG1hbiBwYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZXZlIEZpbmsgIDxzcGhpbmsgZ21haWwgY29tPgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LjEuaW46CgkgIERvY3VtZW50IC0tcHJpbnQtYWxsIGFuZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBjb21tYW5kCgkgIGxpbmUgb3B0aW9ucyBpbiBtYW4gcGFnZS4KCjIwMDctMDctMjUgMTg6NDY6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZG9jcyBmb3IgbmV3IGFwaSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGRvY3MgZm9yIG5ldyBhcGkgZnVuY3Rpb24uCgoyMDA3LTA3LTI1IDE4OjM3OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lio6IEFQSTogZ3N0X2VsZW1lbnRfZmFjdG9yeV9oYXNfaW50ZXJmYWNlKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2hhc19pbnRlcmZhY2UpOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBBUEk6IGdzdF9lbGVtZW50X2ZhY3RvcnlfaGFzX2ludGVyZmFjZSgpCgkgIEFkZGVkIG1ldGhvZCB0byBjaGVjayBpZiBhbiBlbGVtZW50IGZhY3RvcnkgaW1wbGVtZW50cyBhIG5hbWVkCgkgIGludGVyZmFjZS4KCjIwMDctMDctMjUgMTM6MDA6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFub3RoZXIgY29uZGl0aW9uYWwgZG9jIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBBbm90aGVyIGNvbmRpdGlvbmFsIGRvYyBjaGVjay4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R4bWwuaDoKCSAgQVBJLWRvYyBmaXhlcy4KCjIwMDctMDctMjQgMTM6NDQ6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiBQcmludCBlcnJvciBqdXN0IG9uY2UgYW5kIHdpdGggYWRkaXRpb25hbCBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBQcmludCBlcnJvciBqdXN0IG9uY2UgYW5kIHdpdGggYWRkaXRpb25hbCBpbmZvLgoKMjAwNy0wNy0yNCAxMzozODoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBDbGVhbnVwIHRoZSB0eXBlZmluZGhlbHBlciBjb2RlIGFuZCBhZGQgcHJpdmF0ZSBkb2MgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksIChoZWxwZXJfZmluZF9nZXRfbGVuZ3RoKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSksIChidWZfaGVscGVyX2ZpbmRfc3VnZ2VzdCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKToKCSAgQ2xlYW51cCB0aGUgdHlwZWZpbmRoZWxwZXIgY29kZSBhbmQgYWRkIHByaXZhdGUgZG9jIGNvbW1lbnRzLgoKMjAwNy0wNy0yNCAxMjozMjozMSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBGaXggY2Fwc2ZpbHRlciBmb3IgY2FzZXMgd2hlcmUgdGhlIGNhcHMgc2V0IG9uIGNhcHNmaWx0ZXIgd2lsbCBwcm92aWRlIGFkZGl0aW9uYWwgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX3NpemUpLCAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBGaXggY2Fwc2ZpbHRlciBmb3IgY2FzZXMgd2hlcmUgdGhlIGNhcHMgc2V0IG9uIGNhcHNmaWx0ZXIgd2lsbCBwcm92aWRlCgkgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uCgkgIEZpeGVzICM0NDkxOTcKCjIwMDctMDctMjQgMTE6MzE6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogRml4IGRvY3MgdGhhdCByZWNvbW1lbmVkIHdyb25nIGZ1bmN0aW9uIHRvIHVzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJICBGaXggZG9jcyB0aGF0IHJlY29tbWVuZWQgd3JvbmcgZnVuY3Rpb24gdG8gdXNlLgoKMjAwNy0wNy0yMyAxMzowMzo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQWxzbyBnaXZlIG1lZGlhLXR5cGUgZm9yIHR5cGVmaW5kZXJzIGluIGVsZW1lbnQgb3V0cHV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGx1Z2luX2ZlYXR1cmVzKToKCSAgQWxzbyBnaXZlIG1lZGlhLXR5cGUgZm9yIHR5cGVmaW5kZXJzIGluIGVsZW1lbnQgb3V0cHV0LgoKMjAwNy0wNy0yMyAxMTo0MjoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5Lio6IFNwZWVkIHVwIGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQoKSBieSB1c2luZyBhIGhhc2htYXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2luaXQpLCAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZXNfZm9yX3BsdWdpbl91bmxvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpLCAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZV9sb2NrZWQpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBTcGVlZCB1cCBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkKCkgYnkgdXNpbmcgYSBoYXNobWFwLgoJICBGaXhlcyAjNDU5NTAxLgoKMjAwNy0wNy0yMyAxMDozOToxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogQXZvaWQgZG91YmxlIG1lbW9yeSB1c2FnZSBmb3IgcGx1Z2luZmVhdHVyZSBuYW1lcy4gRml4ZXMgIzQ1OTQ2Ni4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9maW5hbGl6ZSksCgkgIChnc3RfcGx1Z2luX2ZlYXR1cmVfc2V0X25hbWUpOgoJICBBdm9pZCBkb3VibGUgbWVtb3J5IHVzYWdlIGZvciBwbHVnaW5mZWF0dXJlIG5hbWVzLiBGaXhlcyAjNDU5NDY2LgoKMjAwNy0wNy0yMiAxODoyNjozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuaDogU21hbGwgYWRkaXRpb24gdG8gR1NUX0ZMT1dfSVNfRkFUQUwoKSBkb2NzOiBtZW50aW9uIHRoYXQgZWxlbWVudHMgZHJpdmluZyB0aGUgcGlwZWxpbmUgbWF5IG5lZWQgdG8gZXhwbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFNtYWxsIGFkZGl0aW9uIHRvIEdTVF9GTE9XX0lTX0ZBVEFMKCkgZG9jczogbWVudGlvbiB0aGF0IGVsZW1lbnRzCgkgIGRyaXZpbmcgdGhlIHBpcGVsaW5lIG1heSBuZWVkIHRvIGV4cGxpY2l0bHkgY2hlY2sgZm9yIE5PVF9MSU5LRUQgYXMKCSAgd2VsbCwgc2luY2UgSVNfRkFUQUwgZG9lc24ndCBjb3ZlciB0aGF0LgoKMjAwNy0wNy0yMiAxODoxNjoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogRml4IHR5cG8gYW5kIGR1cGxpY2F0ZSBlbnRyeSBpbiB2aWRlbyBmb3JtYXRzIGxpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgRml4IHR5cG8gYW5kIGR1cGxpY2F0ZSBlbnRyeSBpbiB2aWRlbyBmb3JtYXRzIGxpc3QuCgoyMDA3LTA3LTIyIDEyOjE4OjQ2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogQWxzbyByb3VuZCB0byB0aGUgbmVhcmVzdCBpbnQgd2hlbiB1c2luZyBjdWJpYyBpbnRlcnBvbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgQWxzbyByb3VuZCB0byB0aGUgbmVhcmVzdCBpbnQgd2hlbiB1c2luZyBjdWJpYyBpbnRlcnBvbGF0aW9uLgoKMjAwNy0wNy0yMSAyMToyMDozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogV2hlbiBsaW5lYXJseSBpbnRlcnBvbGF0aW5nIGludGVnZXIgdHlwZXMsIHJvdW5kIHRvIHRoZSBuZWFyZXN0IGludCBieSBhZGRpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIFdoZW4gbGluZWFybHkgaW50ZXJwb2xhdGluZyBpbnRlZ2VyIHR5cGVzLCByb3VuZCB0byB0aGUgbmVhcmVzdCBpbnQKCSAgYnkgYWRkaW5nIDAuNS4gRG9uJ3QgZG8gaXQgZm9yIGZsb2F0L2RvdWJsZSB0eXBlcy4KCSAgRml4ZXMgdGhlIGZhaWxpbmcgY29udHJvbGxlciB0ZXN0IG9uIG15IG1hY2hpbmUsIHdoaWNoIGlzIHNvbWVob3cKCSAgcm91bmRpbmcgZGlmZmVyZW50bHkgdGhhbiBvbiB0aGUgYnVpbGRib3RzLgoKMjAwNy0wNy0yMCAwNzozNjo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvZ3N0LXBsb3QtdGltZWxpbmUucHk6IEJldHRlciBsb2cgcGFyc2luZyAoY2F0ZWdvcmllcyBjYW4gaGF2ZSAtKS4gQWRqdXN0IHRleHQgdnMuIGxpbmVzLCBzbyB0aGF0IHRoZXkgc3BhbiB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBCZXR0ZXIgbG9nIHBhcnNpbmcgKGNhdGVnb3JpZXMgY2FuIGhhdmUgLSkuIEFkanVzdCB0ZXh0IHZzLiBsaW5lcywgc28KCSAgdGhhdCB0aGV5IHNwYW4gdGhlIHNhbWUgeS1yYW5nZS4KCjIwMDctMDctMjAgMDc6MjY6MzkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvOiBTYXZlIG15IHRob3VnaHRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2F1ZGlvYmFzZWNsYXNzZXMudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OgoJICBTYXZlIG15IHRob3VnaHRzLgoJICAqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBBZGQgbm90ZSB0byB1c2UgZ19hc3NlcnQgdHlwZSBtYWNyb3MuCgoyMDA3LTA3LTIwIDA3OjA5OjExICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgbGlibSBjaGVjayBhcyB3ZSB1c2UgaW4gZm9yIHBsdWdpbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgQWRkIGxpYm0gY2hlY2sgYXMgd2UgdXNlIGluIGZvciBwbHVnaW5zLgoKMjAwNy0wNy0xOCAxNDozMToyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENoZWNrIHRoYXQgdGhlIHN0YXRlX2Nvb2tpZSBoYXNuJ3QgY2hhbmdlZCBzaW5jZSB0aGUgY29udGludWVfZnVuYyB3YXMgc2NoZWR1bGVkLiBBdm9pZHMgcHJvYmxlbXMgd2hlcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKToKCSAgQ2hlY2sgdGhhdCB0aGUgc3RhdGVfY29va2llIGhhc24ndCBjaGFuZ2VkIHNpbmNlIHRoZSBjb250aW51ZV9mdW5jCgkgIHdhcyBzY2hlZHVsZWQuIEF2b2lkcyBwcm9ibGVtcyB3aGVyZSB0aGUgc3RhdGUgY2hhbmdlcyBiYWNrIHRvCgkgIHNvbWV0aGluZyBpdCBzaG91bGRuJ3QgYmUgYmVjYXVzZSBpdCB3YXMgY2hhbmdlZCBpbiB0aGUgbWVhbnRpbWUuCgoyMDA3LTA3LTE3IDA5OjQ0OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogRml4IG1lbW9yeSBsZWFrLiBCZSBsZXNzIHZlcmJvc2UgaW4gdGhlIGxvZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfY29uc3Rfc3RyaW5nKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9zdHJpbmcpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgRml4IG1lbW9yeSBsZWFrLiBCZSBsZXNzIHZlcmJvc2UgaW4gdGhlIGxvZy4KCjIwMDctMDctMTYgMTY6NDQ6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZTogQWRkIGZpbGUgdG8gY3ZzaWdub3JlIGFzIGNvbW1hbmRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgQWRkIGZpbGUgdG8gY3ZzaWdub3JlIGFzIGNvbW1hbmRlZC4KCjIwMDctMDctMTYgMTY6MDQ6NDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiBVc2UgYSBHU3RhdGljTXV0ZXggdG8gcHJvdGVjdCBhbGwgY2FzZXMgd2hlcmUgbGliY2hlY2sgZmFpbF9pZi9mYWlsX3VubGVzcyBtYWNyb3MgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL211bHRpcXVldWUuYzogKG1xX2R1bW15cGFkX2NoYWluKSwKCSAgKG1xX2R1bW15cGFkX2V2ZW50KSwgKHJ1bl9vdXRwdXRfb3JkZXJfdGVzdCk6CgkgIFVzZSBhIEdTdGF0aWNNdXRleCB0byBwcm90ZWN0IGFsbCBjYXNlcyB3aGVyZSBsaWJjaGVjawoJICBmYWlsX2lmL2ZhaWxfdW5sZXNzIG1hY3JvcyBtaWdodCBiZSBjYWxsZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzCgkgIHNpbXVsdGFuZW91c2x5IHRvIGF2b2lkIGVycm9ycyBsaWtlOgoJICAiY2hlY2tfcGFjay5jOjEwNzogOi0xMDgxNzI1NDAwOkJhZCBtZXNzYWdlIHR5cGUgYXJnIgoKMjAwNy0wNy0xNiAxNToxOTowNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IE1ha2Ugc3VyZSB3ZSBzZXQgdGhlIHBpcGVsaW5lIGJhY2sgdG8gdGhlIE5VTEwgc3RhdGUgYmVmb3JlIGRyb3BwaW5nIG91ciBmaW5hbCByZWZlcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHN1cmUgd2Ugc2V0IHRoZSBwaXBlbGluZSBiYWNrIHRvIHRoZSBOVUxMIHN0YXRlIGJlZm9yZQoJICBkcm9wcGluZyBvdXIgZmluYWwgcmVmZXJlbmNlLgoKMjAwNy0wNy0xNiAxNDo1NToyNiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogTWFrZSB0aGUgdGVlIHN0cmVzcy10ZXN0IGEgbGl0dGxlIGxlc3Mgc3RyZXNzZnVsIHNvIGl0IGRvZXNuJ3QganVzdCB0aW1lIG91dCBvbiBzbG93LW1hY2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvdGVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgdGhlIHRlZSBzdHJlc3MtdGVzdCBhIGxpdHRsZSBsZXNzIHN0cmVzc2Z1bCBzbyBpdCBkb2Vzbid0IGp1c3QKCSAgdGltZSBvdXQgb24gc2xvdy1tYWNoaW5lcywgYW5kIHJlbW92ZSBhIHNtYWxsIHJhY2Ugd2hlbiBpdCdzIHN0YXJ0aW5nCgkgIHVwIGJ5IGFkZGluZyBhIGdldF9zdGF0ZSgpIGNhbGwuCgoyMDA3LTA3LTE2IDEyOjM2OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0LmM6IEF2b2lkIHJlYWRpbmcgcmVnaXN0cnkgdHdpY2Ugb24gc3RhcnR1cC4gRml4ZXMgIzQ1NzMyMi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBBdm9pZCByZWFkaW5nIHJlZ2lzdHJ5IHR3aWNlIG9uIHN0YXJ0dXAuIEZpeGVzICM0NTczMjIuCgoyMDA3LTA3LTEzIDE0OjExOjIyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBrZ2NvbmZpZy86IFN1YnN0aXR1dGUgdGhlIENGTEFHUyBmb3IgbGliY2hlY2sgaW50byBvdXIgLnBjIGZpbGUgdG9vIHNvIHRoYXQgZGVwZW5kZW50IG1vZHVsZXMgd2lsbCBwaWNrIGl0IHVwIHByb3Blci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIFN1YnN0aXR1dGUgdGhlIENGTEFHUyBmb3IgbGliY2hlY2sgaW50byBvdXIgLnBjIGZpbGUgdG9vIHNvIHRoYXQKCSAgZGVwZW5kZW50IG1vZHVsZXMgd2lsbCBwaWNrIGl0IHVwIHByb3Blcmx5IGlmIGxpYmNoZWNrIGlzIGluc3RhbGxlZAoJICBpbnRvIHNvbWUgb3RoZXIgcHJlZml4LgoKMjAwNy0wNy0xMyAxMzo0OToxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFJldmVydCB0aGUgcGtnLWNvbmZpZyBjaGVjayBmb3IgbGliY2hlY2ssIHNpbmNlIGl0IHB1bGxzIGluIHRoZSB3cm9uZyBub24tUElDIGxpYmNoZWNrLmEgb24gVWJ1bnR1IGFuZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBSZXZlcnQgdGhlIHBrZy1jb25maWcgY2hlY2sgZm9yIGxpYmNoZWNrLCBzaW5jZSBpdCBwdWxscyBpbiB0aGUKCSAgd3Jvbmcgbm9uLVBJQyBsaWJjaGVjay5hIG9uIFVidW50dSBhbmQgcHJvYmFibHkgRmVkb3JhIHRvby4gV2UgbmVlZAoJICBhIHByb3BlciBzb2x1dGlvbiwgZWl0aGVyIGZyb20gdGhlIGNoZWNrIHByb2plY3QsIG9yIHNvbWV0aGluZyBlbHNlLgoKMjAwNy0wNy0xMiAxMToxMDoyMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBVc2UgcGtnLWNvbmZpZyB0byBsb2NhdGUgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVXNlIHBrZy1jb25maWcgdG8gbG9jYXRlIGNoZWNrLgoKMjAwNy0wNy0xMCAyMDoxMDoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuYzogRml4IGRvYyBzeW50YXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIEZpeCBkb2Mgc3ludGF4LgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgZGVwcmVjYXRpb24gZ3VhcmRzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgRG9uJ3QgZG9jdW1lbnQgb2JqZWN0ICh0aGlzIGlzIGltcGxpY2l0bHkgcHJpdmF0ZSkuCgoyMDA3LTA3LTA4IDE0OjExOjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBXaGVuIGRlc2VyaWFsaXNpbmcgZm9vPWJhciB3aXRob3V0IGEgdHlwZSBjYXN0LCBjaGVjayBpZiBpdCdzIGEgYm9vbGVhbiBiZWZvcmUgZmFsbGluZyBiYWNrIHRvIGEgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICBXaGVuIGRlc2VyaWFsaXNpbmcgZm9vPWJhciB3aXRob3V0IGEgdHlwZSBjYXN0LCBjaGVjayBpZiBpdCdzIGEKCSAgYm9vbGVhbiBiZWZvcmUgZmFsbGluZyBiYWNrIHRvIGEgc3RyaW5nIHR5cGUsIG90aGVyd2lzZSB0aGluZ3MgbGlrZQoJICBhdWRpb3Rlc3RzcmMgISBhdWRpby94LXJhdy1pbnQsc2lnbmVkPXRydWUgISBmYWtlc2luayB3b24ndCB3b3JrLAoJICBiZWNhdXNlIHRoZSBmaWx0ZXJjYXBzIGVuZCB1cCBoYXZpbmcgYSBzaWduZWQ9KHN0cmluZyl0cnVlIGZpZWxkLAoJICB3aGljaCBjYXVzZXMgcHJvYmxlbXMgbGF0ZXIgd2hlbiBpbnRlcnNlY3Rpb24gY2Fwcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBhIHVuaXQgdGVzdCBmb3IgdGhpcy4KCjIwMDctMDctMDYgMjE6NTA6MDIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBBUEk6IFJlZmFjdG9yIEdzdENvbnRyb2xsZXIgaW50byB0aGUgY29yZSBjb250cm9sbGVyIHdoaWNoIGNhbiB0YWtlIGEgR3N0Q29udHJvbFNvdXJjZSBmb3IgcHJvdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfYWRkX2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2UpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZyZWUpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZmluZF9jb250cm9sbGVkX3Byb3BlcnR5KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLCAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3KSwgKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzX3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllc19saXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX3JlbW92ZV9wcm9wZXJ0aWVzKSwKCSAgKGdzdF9jb250cm9sbGVyX3NldF9wcm9wZXJ0eV9kaXNhYmxlZCksCgkgIChnc3RfY29udHJvbGxlcl9zZXRfZGlzYWJsZWQpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2NvbnRyb2xfc291cmNlKSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF9jb250cm9sX3NvdXJjZSksIChnc3RfY29udHJvbGxlcl9nZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpLCAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KSwKCSAgKF9nc3RfY29udHJvbGxlcl9kaXNwb3NlKSwgKGdzdF9jb250cm9sbGVyX2dldF90eXBlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0KSwgKGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKSwKCSAgKGdzdF9jb250cm9sbGVyX2dldF9hbGwpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbHNvdXJjZS5jOgoJICAoZ3N0X2NvbnRyb2xfc291cmNlX2NsYXNzX2luaXQpLCAoZ3N0X2NvbnRyb2xfc291cmNlX2luaXQpLAoJICAoZ3N0X2NvbnRyb2xfc291cmNlX2dldF92YWx1ZSksCgkgIChnc3RfY29udHJvbF9zb3VyY2VfZ2V0X3ZhbHVlX2FycmF5KSwgKGdzdF9jb250cm9sX3NvdXJjZV9iaW5kKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoZ3N0X29iamVjdF9zZXRfY29udHJvbF9zb3VyY2UpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9zb3VyY2UpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZmluZF9jb250cm9sX3BvaW50X25vZGUpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZ2V0X2ZpcnN0X3ZhbHVlKSwKCSAgKF9pbnRlcnBvbGF0ZV9ub25lX2dldCksIChpbnRlcnBvbGF0ZV9ub25lX2dldCksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9ib29sZWFuX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX25vbmVfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KSwKCSAgKF9pbnRlcnBvbGF0ZV90cmlnZ2VyX2dldCksIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldCksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9ib29sZWFuX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X2VudW1fdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfc3RyaW5nX3ZhbHVlX2FycmF5KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlLmM6CgkgIChnc3RfY29udHJvbF9wb2ludF9mcmVlKSwgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3Jlc2V0KSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX25ldyksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2JpbmQpLAoJICAoZ3N0X2NvbnRyb2xfcG9pbnRfY29tcGFyZSksIChnc3RfY29udHJvbF9wb2ludF9maW5kKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX3NldF9pbnRlcm5hbCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9zZXQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2Vfc2V0X2Zyb21fbGlzdCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV91bnNldCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV91bnNldF9hbGwpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfZ2V0X2FsbCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9nZXRfY291bnQpLAoJICAoZ3N0X2ludGVycG9sYXRpb25fY29udHJvbF9zb3VyY2VfaW5pdCksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfaW50ZXJwb2xhdGlvbl9jb250cm9sX3NvdXJjZV9kaXNwb3NlKSwKCSAgKGdzdF9pbnRlcnBvbGF0aW9uX2NvbnRyb2xfc291cmNlX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbmNvbnRyb2xzb3VyY2UuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb25jb250cm9sc291cmNlcHJpdmF0ZS5oOgoJICBBUEk6IFJlZmFjdG9yIEdzdENvbnRyb2xsZXIgaW50byB0aGUgY29yZSBjb250cm9sbGVyIHdoaWNoIGNhbiB0YWtlCgkgIGEgR3N0Q29udHJvbFNvdXJjZSBmb3IgcHJvdmlkaW5nIGFjdHVhbCB2YWx1ZXMgZm9yIHRpbWVzdGFtcHMuCgkgIEltcGxlbWVudCBhIGludGVycG9sYXRpb24gY29udHJvbCBzb3VyY2UgYW5kIHVzZSB0aGlzIGZvciBiYWNrd2FyZAoJICBjb21wYXRpYmlsaXR5LCBkZXByZWNhdGUgYSBidW5jaCBvZiBmdW5jdGlvbnMgdGhhdCBhcmUgbm93IGhhbmRsZWQKCSAgYnkgR3N0Q29udHJvbFNvdXJjZSBvciBHc3RJbnRlcnBvbGF0aW9uQ29udHJvbFNvdXJjZS4KCSAgTWFrZSBpdCBwb3NzaWJsZSB0byBkaXNhYmxlIHRoZSBjb250cm9sbGVyIGNvbXBsZXRlbHkgb3Igb25seSBmb3IKCSAgc3BlY2lmaWMgcHJvcGVydGllcy4gRml4ZXMgIzQ1MDcxMS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJICBBZGQgbmV3IGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyB0byB0aGUgZG9jcy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICBQb3J0IHVuaXQgdGVzdCBhbmQgZXhhbXBsZSB0byB0aGUgbmV3IEFQSSBhbmQgYWRkIHNvbWUgbmV3CgkgIHVuaXQgdGVzdHMuCgoyMDA3LTA3LTA1IDA5OjA2OjAyICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEltcGxlbWVudCBub24tZGVmYXVsdCBHc3RQYWRJbnRMaW5rRnVuY3Rpb24gZm9yIG11bHRpcXVldWUgcGFkcyBzbyB0aGF0IHRoZSBwaXBlbGluLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3IGF0IHNreW5ldCBiZT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzoKCSAgKGdzdF9tdWx0aV9xdWV1ZV9nZXRfaW50ZXJuYWxfbGlua3MpLCAoYXBwbHlfYnVmZmVyKSwKCSAgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgSW1wbGVtZW50IG5vbi1kZWZhdWx0IEdzdFBhZEludExpbmtGdW5jdGlvbiBmb3IgbXVsdGlxdWV1ZSBwYWRzIHNvIHRoYXQKCSAgdGhlIHBpcGVsaW5lIGxheW91dCBjYW4gYmUgdHJhY2tlZCBjb3JyZWN0bHkuIEZpeGVzICM0NTM3MzIuCgoyMDA3LTA3LTA1IDA4OjQyOjQyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogU2ltcGxpdHkgLS1leHRyYS1kaXIgYXMgZ3RrZG9jIHNjYW5zIHJlY3Vyc2l2ZWx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICBTaW1wbGl0eSAtLWV4dHJhLWRpciBhcyBndGtkb2Mgc2NhbnMgcmVjdXJzaXZlbHkuCgoyMDA3LTA3LTAzIDE3OjAxOjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBXaGVuIHdlIGdvdCBhbiBlcnJvciwgdGhlcmUgaXMgbm8gcG9pbnQgaW4gd2FpdGluZyBmb3IgcHJlcm9sbCB3aGVuIHNodXR0aW5nIGRvd24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBXaGVuIHdlIGdvdCBhbiBlcnJvciwgdGhlcmUgaXMgbm8gcG9pbnQgaW4gd2FpdGluZyBmb3IgcHJlcm9sbCB3aGVuCgkgIHNodXR0aW5nIGRvd24uCgoyMDA3LTA3LTAzIDE2OjI2OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogQmUgYSBsb3Qgc21hcnRlciB3aGVuIGRlY2lkaW5nIHdoYXQgc3JjcGFkIHRvIHVzZSBmb3IgcHJveHlpbmcgdGhlIGJ1ZmZlcl9hbGxvYy4gQWxzbyBoYW5kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2Jhc2VfaW5pdCksCgkgIChnc3RfdGVlX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfdGVlX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF90ZWVfZmluZF9idWZmZXJfYWxsb2MpLCAoZ3N0X3RlZV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X3RlZV9kb19wdXNoKSwgKGNsZWFyX3BhZHMpLCAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF90ZWVfY2hhaW4pOgoJICBCZSBhIGxvdCBzbWFydGVyIHdoZW4gZGVjaWRpbmcgd2hhdCBzcmNwYWQgdG8gdXNlIGZvciBwcm94eWluZwoJICB0aGUgYnVmZmVyX2FsbG9jLiBBbHNvIGhhbmRsZSBwYWQgYWRkZWQvcmVtb3ZlZCB3aGVuIGRvaW5nIHNvLgoJICBGaXhlcyAjMzU3OTU5LgoJICBLZWVwIHRyYWNrIG9mIHdoYXQgcGFkcyB3ZSBhbHJlYWR5IHB1c2hlZCBvbiBpbiBjYXNlIHdlIGhhdmUgcGFkcwoJICBhZGRlZC9yZW1vdmVkIHdoaWxlIHB1c2hpbmcuIEZpeGVzICMzNzQ2MzkKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy90ZWUuYzogKGhhbmRvZmYpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAodGVlX3N1aXRlKToKCSAgQWRkZWQgdW5pdCB0ZXN0IGZvciBwYWQgcmVzeW5jLgoKMjAwNy0wNy0wMSAyMTozMToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZWQgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9ubC5wbzoKCSAgKiBwby9zdi5wbzoKCSAgVXBkYXRlZCB0cmFuc2xhdGlvbnMuCgoyMDA3LTA3LTAxIDIxOjMwOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgbmV3IEZpbm5pc2ggdHJhbnNsYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmFuc2xhdGlvbiBieTogVG9tbWkgVmFpbmlrYWluZW4gPFRvbW1pLlZhaW5pa2FpbmVuQGlraS5maT4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL2ZpLnBvOgoJICBBZGRlZCBuZXcgRmlubmlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDYtMjggMTE6MjU6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogV2hlbiBmaWd1cmluZyBvdXQgd2hlbiBhIHF1ZXVlIGlzIGZpbGxlZCwgdXNlIG91ciBpbnRlcm5hbCB0aW1lIGVzdGltYXRlIGJhc2VkIG9uIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChhcHBseV9idWZmZXIpLAoJICAoc2luZ2xlX3F1ZXVlX292ZXJydW5fY2IpOgoJICBXaGVuIGZpZ3VyaW5nIG91dCB3aGVuIGEgcXVldWUgaXMgZmlsbGVkLCB1c2Ugb3VyIGludGVybmFsIHRpbWUgZXN0aW1hdGUKCSAgYmFzZWQgb24gc2VnbWVudHMsIGp1c3QgbGlrZSBjaGVja19mdWxsIGRvZXMuCgoyMDA3LTA2LTI3IDExOjQ3OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWcgNDMwNjgyIGNsb3NlZCBieSBwcmV2aW91cyBjb21taXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyA0MzA2ODIgY2xvc2VkIGJ5IHByZXZpb3VzIGNvbW1pdC4KCjIwMDctMDYtMjcgMTE6NDM6MDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFJlbW92ZSAzIGRvLW5vdGhpbmcgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSk6CgkgIFJlbW92ZSAzIGRvLW5vdGhpbmcgbWV0aG9kcy4KCjIwMDctMDYtMjcgMTE6MjQ6MDggKzAwMDAgIFRpbSBBbmd1cyA8dGltQG5ndXMubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIGNvcHkgd2hlbiBzZXR0aW5nICJjYXBzIi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUaW0gQW5ndXMgPHRpbSBhdCBuZ3VzIGRvdCBuZXQ+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX3NldF9wcm9wZXJ0eSk6CgkgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBhIGNvcHkgd2hlbiBzZXR0aW5nICJjYXBzIi4KCSAgRml4IGRvY3VtZW50YXRpb24gdG8gY2xhcmlmeSB0aGlzIGJlaGF2aW91ci4gRml4ZXMgIzQ0OTQxNC4KCjIwMDctMDYtMjcgMTA6MTI6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IFJlbW92ZSBlbXB0eSBpbnN0YW5jZV9pbml0KCkgZnVuY3Rpb25zIHRvIHNhdmUgcmVsb2NzIGFuZCBsZXNzZW4gdGhlIG5vaXNlLiBSZW1vdmUgc29tZSBvZiB0aGUgZnVuY3Rpb24gcHJvdG90eS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9pbml0KToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2luaXQpOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X2dldF90eXBlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9pbml0KToKCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2hhbmRsZXJfYmFzZV9pbml0KToKCSAgUmVtb3ZlIGVtcHR5IGluc3RhbmNlX2luaXQoKSBmdW5jdGlvbnMgdG8gc2F2ZSByZWxvY3MgYW5kIGxlc3NlbiB0aGUKCSAgbm9pc2UuIFJlbW92ZSBzb21lIG9mIHRoZSBmdW5jdGlvbiBwcm90b3R5cGVzIHRoYXQgYXJlIGRvdWJsZWQgYnkKCSAgR19ERUZJTkVfVFlQRS4KCjIwMDctMDYtMjcgMDk6MzQ6MDEgKzAwMDAgIMOJdGllbm5lIE5vcmVhdS1Iw6liZXJ0IDxldGllbm5lQGRlZXB1bmRlci5vcmc+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWRkIHBlZXIgYW5kIGRpcmVjdGlvbiBpbiB0aGUgWE1MIHNlcmlhbGlzYXRpb24gb2YgZ2hvc3RwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IMOJdGllbm5lIE5vcmVhdS1Iw6liZXJ0IDxldGllbm5lIGF0IGRlZXB1bmRlciBkb3Qgb3JnPgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9zYXZlX3RoeXNlbGYpOgoJICBBZGQgcGVlciBhbmQgZGlyZWN0aW9uIGluIHRoZSBYTUwgc2VyaWFsaXNhdGlvbiBvZiBnaG9zdHBhZHMuCgkgIEZpeGVzICM0NDkyMjYuCgoyMDA3LTA2LTI2IDE2OjI0OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFByZXNlcnZlIHVzZWZ1bCBpbmZvcm1hdGlvbiwgdGhhbmtzIFRpbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBQcmVzZXJ2ZSB1c2VmdWwgaW5mb3JtYXRpb24sIHRoYW5rcyBUaW0uCgoyMDA3LTA2LTI2IDE0OjQ1OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS4qOiBUYWtlIHRoZSBtdWx0aXF1ZXVlIGxvY2sgd2hlbiB1cGRhdGluZyB0aGUgZmlsbCBsZXZlbCBzbyB3ZSBkb24ndCBnZXQgY29uZnVzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2luaXQpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksIChhcHBseV9zZWdtZW50KSwgKGFwcGx5X2J1ZmZlciksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9tdWx0aV9xdWV1ZV9sb29wKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKHdha2VfdXBfbmV4dF9ub25fbGlua2VkKSwKCSAgKGNvbXB1dGVfaGlnaF9pZCksIChnc3Rfc2luZ2xlX3F1ZXVlX25ldyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmg6CgkgIFRha2UgdGhlIG11bHRpcXVldWUgbG9jayB3aGVuIHVwZGF0aW5nIHRoZSBmaWxsIGxldmVsIHNvIHdlIGRvbid0IGdldAoJICBjb25mdXNlZC4KCSAgQWZ0ZXIgYXBwbHlpbmcgYSBidWZmZXIgb3IgZXZlbnQgb24gdGhlIHNyYyBwYWQgc2VnbWVudCwgbWFrZSBzdXJlIHRvCgkgIGNhbGwgZ3N0X2RhdGFfcXVldWVfbGltaXRzX2NoYW5nZWQoKSB0byBnZXQgdGhlIGRhdGEgcXVldWUgdG8gdW5ibG9jawoJICBhbmQgY2hlY2sgdGhlIGZpbGxlZCBzdGF0ZSBhZ2Fpbi4KCSAgUmV3b3JrIHRoZSBub3QtbGlua2VkIHBhZCBoYW5kbGluZyBzbyB0aGUgbG9naWMgaXMgdGhhdCBub3QtbGlua2VkCgkgIHBhZHMgY2FuIHB1c2ggYXMgZmFzdCBhcyB0aGV5IGxpa2UsIGJ1dCBvbmx5IHNvIHRoZXkgbmV2ZXIgZ2V0CgkgIGFoZWFkIG9mIGFueSBsaW5rZWQgcGFkcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtcV9zaW5rcGFkX3RvX3NyY3BhZCksCgkgIChtcV9kdW1teXBhZF9nZXRjYXBzKSwgKG1xX2R1bW15cGFkX2NoYWluKSwgKG1xX2R1bW15cGFkX2V2ZW50KSwKCSAgKHJ1bl9vdXRwdXRfb3JkZXJfdGVzdCksIChHU1RfU1RBUlRfVEVTVCksIChtdWx0aXF1ZXVlX3N1aXRlKToKCSAgQWRkIGEgdGVzdCB0byBjaGVjayB0aGF0IG5vdC1saW5rZWQgcGFkcyBhbHdheXMgc3RheSBiZWhpbmQKCSAgbGlua2VkIHBhZHMuCgoyMDA3LTA2LTI2IDExOjU3OjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IFNvbWUgdXBkYXRlcyB0byB0aGUgcmVsZWFzZSBwcm9jZWR1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIFNvbWUgdXBkYXRlcyB0byB0aGUgcmVsZWFzZSBwcm9jZWR1cmUuCgoyMDA3LTA2LTI2IDA4OjI2OjM2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogTWljcm9vcHRpbWl6YXRpb24gdGhhdCBzYXZlcyBzdHVubmluZyA4MCBieXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChfX2dzdF9lbGVtZW50X2RldGFpbHNfY2xlYXIpOgoJICBNaWNyb29wdGltaXphdGlvbiB0aGF0IHNhdmVzIHN0dW5uaW5nIDgwIGJ5dGVzLgoKMjAwNy0wNi0yNSAxMjozNTo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9wbHVnaW5zLzogVXBkYXRlIGRvY3Mgd2l0aCBjYXBzIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJICBVcGRhdGUgZG9jcyB3aXRoIGNhcHMgaW5mby4KCjIwMDctMDYtMjMgMjI6NTY6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vaXQucG86IFVwZGF0ZWQgSXRhbGlhbiB0cmFuc2xhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vaXQucG86CgkgIFVwZGF0ZWQgSXRhbGlhbiB0cmFuc2xhdGlvbi4KCjIwMDctMDYtMjMgMTE6MTk6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBmaXggd2luMzIgYXJjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHdpbjMyIGFyY2gKCjIwMDctMDYtMjMgMTE6MTg6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgODAgbGluZSBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDgwIGxpbmUgZml4CgoyMDA3LTA2LTIzIDExOjE1OjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogVXBkYXRlIFZpZXRuYW1lc2UgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgICogcG8vdmkucG86CgkgIFVwZGF0ZSBWaWV0bmFtZXNlIHRyYW5zbGF0aW9ucy4KCjIwMDctMDYtMjEgMjI6Mzc6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFJlbW92ZSB1bnVzZWQgc2lnbmFsIGVudW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgUmVtb3ZlIHVudXNlZCBzaWduYWwgZW51bS4KCjIwMDctMDYtMjEgMTg6MDA6NTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIE1BSU5UQUlORVJTOgoJICB1cGRhdGUgTUFJTlRBSU5FUlMgZmlsZSB0byByZWZsZWN0IGN1cnJlbnQgcmVhbGl0aWVzIGJldHRlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIE1BSU5UQUlORVJTIGZpbGUgdG8gcmVmbGVjdCBjdXJyZW50IHJlYWxpdGllcyBiZXR0ZXIKCjIwMDctMDYtMjEgMTY6Mzk6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQmVlZiB1cCBhbmQgaW5jbHVkZSB0aGUgZG9jcyBmb3IgZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwgYW5kIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSBhbmQgYWRkIHRoZSBBLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsKToKCSAgQmVlZiB1cCBhbmQgaW5jbHVkZSB0aGUgZG9jcyBmb3IgZ3N0X3R5cGVfcmVnaXN0ZXJfc3RhdGljX2Z1bGwgYW5kCgkgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSBhbmQgYWRkIHRoZSBBUEkga2V5d29yZAoJICBpbiB0aGUgQ2hhbmdlTG9nLgoKMjAwNy0wNi0yMSAxNDozNTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBGaXggc2V0dGluZyBtYXgtKiBwcm9wZXJ0aWVzIGFmdGVyIGFkZGluZyBxdWV1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX3NldF9wcm9wZXJ0eSksCgkgICh1cGRhdGVfdGltZV9sZXZlbCksIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jaGFpbiksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpOgoJICBGaXggc2V0dGluZyBtYXgtKiBwcm9wZXJ0aWVzIGFmdGVyIGFkZGluZyBxdWV1ZXMuCgkgIFVzZSBJU19GSUxMRUQgZm9yIGNoZWNraW5nIHZpc2libGUgaXRlbXMuCgkgIFNpZ25hbCBvdmVycnVuIGlmIG11bHRpcGxlIHF1ZXVlcyBvdmVycnVuLgoJICBBZGQgZXh0cmEgZGVidWcgb3V0cHV0LgoJICBQYXRjaCBieTogV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCjIwMDctMDYtMjEgMTQ6Mjk6MDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIFNhdmluZyByZWxvY2F0aW9ucyBmb3IgR1R5cGVJbmZvIGFuZCBHc3RFbGVtZW50RGV0YWlscy4gRml4ZXMgIzQzNzQ1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzX3NpbXBsZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF90eXBlX3JlZ2lzdGVyX3N0YXRpY19mdWxsKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2Jhc2VfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2Jhc2VfaW5pdCksCgkgIChhcHBseV9idWZmZXIpLCAoZ3N0X3F1ZXVlX2NoYWluKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9iYXNlX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYmFzZV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgU2F2aW5nIHJlbG9jYXRpb25zIGZvciBHVHlwZUluZm8gYW5kIEdzdEVsZW1lbnREZXRhaWxzLiBGaXhlcyAjNDM3NDU3LgoKMjAwNy0wNi0yMSAwOTo0NjowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogRml4IHR5cG8gaW4gaWFuYS5vcmcgVVJJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEZpeCB0eXBvIGluIGlhbmEub3JnIFVSSS4KCjIwMDctMDYtMTkgMjE6NTg6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDYtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICAodGVzdF9zdGF0ZV9jaGFuZ2VfcmV0dXJucyk6IEVuYWJsZSBwdWxsLW1vZGUgdGVzdHMgbm93IHRoYXQKCSAgYmFzZXNpbmsgaGFzIGJlZW4gZml4ZWQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX25lZWRzX3ByZXJvbGwpOgoJICBDaGFuZ2VkIGZyb20gZ3N0X2Jhc2Vfc2lua19pc19wcmVyb2xsZWQsIHJldmVyc2luZyB0aGUgc2Vuc2Ugb2YKCSAgdGhlIHJldHVybiB2YWx1ZS4gUmV0dXJucyBGQUxTRSBhbHNvIGlmIHRoZSBzaW5rIGlzIGluIHB1bGwgbW9kZSwKCSAgaW4gd2hpY2ggY2FzZSBpdCBuZWVkcyBubyBwcmVyb2xsLgoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSwgZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOiBVcGRhdGUgZm9yCgkgIG5lZWRzX3ByZXJvbGwgY2hhbmdlLgoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOiBBZGQgYSBjYXNlIGZvciBSRUFEWV9UT19QQVVTRUQgYWZ0ZXIKCSAgY2hhaW5pbmcgdXAsIGluIHdoaWNoIHdlIHJldHVybiBTVUNDRVNTIGRpcmVjdGx5IGlmIHdlIGFjdGl2YXRlZAoJICBpbiBwdWxsIG1vZGUgaW5zdGVhZCBvZiBBU1lOQy4gSW52b2x2ZXMgY291bnRlcmluZyBhbiBhc3luY19zdGFydAoJICBtZXNzYWdlIHNlbnQgYmVmb3JlIGNoYWluaW5nIHVwOyBub3Qgc3VyZSBpZiB0aGlzIGlzIGNvcnJlY3QsIGluCgkgIGFuIGlkZWFsIHdvcmxkIHdlIG9ubHkgc2VuZCBhc3luYy1zdGFydCB3aGVuIGFjdGl2YXRpbmcgaW4gcHVzaAoJICBtb2RlLgoKMjAwNy0wNi0xOSAyMToyODo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDYtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICAodGVzdF9zdGF0ZV9jaGFuZ2VfcmV0dXJucyk6IE5ldyB0ZXN0LCBwYXJ0aWFsbHkgZGlzYWJsZWQgdW50aWwKCSAgYmFzZXNpbmsgaXMgZml4ZWQuCgoyMDA3LTA2LTE5IDE2OjA1OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IEZpeCBldmVudCBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGFwcGx5X2J1ZmZlciksCgkgIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCk6CgkgIEZpeCBldmVudCBsZWFrLgoKMjAwNy0wNi0xOSAxMDo0MTozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTW92ZSB0aGUgY29tbW9uIGNvZGUgZm9yIHBvc3Rpbmcgc3RhdGUtY2hhbmdlIG1lc3NhZ2VzIGludG8gb25lIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksIChiaW5fcHVzaF9zdGF0ZV9jb250aW51ZSksCgkgIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBNb3ZlIHRoZSBjb21tb24gY29kZSBmb3IgcG9zdGluZyBzdGF0ZS1jaGFuZ2UgbWVzc2FnZXMgaW50bwoJICBvbmUgZnVuY3Rpb24uCgkgIEJyb2FkY2FzdCB0aGUgc3RhdGUgc2lnbmFsIGFmdGVyIHdlIHBvc3RlZCB0aGUgbWVzc2FnZXMuCgkgIE1hcmsgdGhlIGJpbiBhcyBidXN5IHdoZW4gaXQncyBkb2luZyBhIHN0YXRlLWNoYW5nZS4KCSAgTWFrZSBzdXJlIGFzeW5jLXN0YXJ0L2RvbmUgbWVzc2FnZXMgZG9uJ3QgaW50ZXJmZXJlIHdpdGggdGhlIGJpbidzCgkgIHN0YXRlIHdoZW4gaXQncyBidXN5LgoJICBBZnRlciB0aGUgc3RhdGUgY2hhbmdlLCBsZXQgdGhlIGJpbiBjaGVjayB3aGljaCBlbGVtZW50cyBjb21wbGV0ZWQgdGhlCgkgIHN0YXRlIGNoYW5nZSB3aGlsZSBpdCB3YXMgYnVzeSBzbyB0aGF0IGl0IGNhbiB1cGRhdGUgaXRzIHN0YXRlLgoKMjAwNy0wNi0xOSAxMDozODozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3JhbmRvbS9yZWxlYXNlOiBBZGQgYSBub3RlIGFib3V0IHVwZGF0aW5nIHRoZSBkb2FwIGZpbGUgdG8gdGhlIHJlbGVhc2UgY2hlY2tsaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIEFkZCBhIG5vdGUgYWJvdXQgdXBkYXRpbmcgdGhlIGRvYXAgZmlsZSB0byB0aGUgcmVsZWFzZSBjaGVja2xpc3QKCjIwMDctMDYtMTggMTY6NDQ6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogTWFrZSBzdXJlIHdlIGRvbid0IHJlZmVyZW5jZSB0aGUgYnVmZmVyL2V2ZW50IGFmdGVyIHdlIGhhdmUgZ2l2ZW4gYXdheSBvd25lcnNoaXAgaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChhcHBseV9idWZmZXIpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpOgoJICBNYWtlIHN1cmUgd2UgZG9uJ3QgcmVmZXJlbmNlIHRoZSBidWZmZXIvZXZlbnQgYWZ0ZXIgd2UgaGF2ZSBnaXZlbiBhd2F5CgkgIG93bmVyc2hpcCBpbiB0aGUgcXVldWUuCgoyMDA3LTA2LTE4IDE1OjE1OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFVwZGF0ZSBxdWV1ZSBzdGF0ZSBfYWZ0ZXJfIGFkZGluZyB0aGUgaXRlbSBpbiB0aGUgcXVldWUgYmVjYXVzZSBlbHNlIHdlIGNvdWxkIGVuZCB1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksCgkgIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLCAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfZXZlbnQpOgoJICBVcGRhdGUgcXVldWUgc3RhdGUgX2FmdGVyXyBhZGRpbmcgdGhlIGl0ZW0gaW4gdGhlIHF1ZXVlIGJlY2F1c2UgZWxzZSB3ZQoJICBjb3VsZCBlbmQgdXAgYmVpbmcgZnVsbCB3aXRob3V0IHRoZSBlbGVtZW50IGFkZGVkIHlldC4KCjIwMDctMDYtMTggMTU6MTI6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IEltbWVkaWF0bHkgY29tbWl0IHRoZSB0b3BsZXZlbCBiaW4gc3RhdGUgd2hlbiByZWNlaXZpbmcgYW4gYXN5bmMtZG9uZSBtZXNzYWdlLiBUaGlzIGVuYWJsZXMgdXMgdG8gYXZvaWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKSwKCSAgKGJpbl9wdXNoX3N0YXRlX2NvbnRpbnVlKSwgKGJpbl9oYW5kbGVfYXN5bmNfc3RhcnQpLAoJICAoYmluX2hhbmRsZV9hc3luY19kb25lKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBJbW1lZGlhdGx5IGNvbW1pdCB0aGUgdG9wbGV2ZWwgYmluIHN0YXRlIHdoZW4gcmVjZWl2aW5nIGFuIGFzeW5jLWRvbmUKCSAgbWVzc2FnZS4gVGhpcyBlbmFibGVzIHVzIHRvIGF2b2lkIHNwYXduaW5nIGEgdGhyZWFkIHRvIGNvbW1pdCB0aGUgc3RhdGUKCSAgaW4gc29tZSBjb21tb24gY2FzZXMgYW5kIGl0IGFsc28gYXZvaWRzIHNvbWUgcmFjZXMuCgkgIEF2b2lkIHNwYXduaW5nIGEgc3RhdGUgdGhyZWFkIHdoZW4gYWRkaW5nL3JlbW92aW5nIGFzeW5jIGVsZW1lbnRzIHRvIGEKCSAgdG9wbGV2ZWwgYmluLiBJbnN0ZWFkIHdlIGltbWVkaWF0bHkgdXBkYXRlIHRoZSBiaW4gc3RhdGUuCgkgIEdldCByaWQgb2YgaXRlcmF0aW5nIGFsbCB0aGUgY2hpbGRyZW4gd2hlbiBnZXR0aW5nIHRoZSBzdGF0ZSBpbiB0aGUgYmluCgkgIGJlY2F1c2UgaXQgaXMgbm93IGFsd2F5cyB1cC10by1kYXRlLgoJICBGaXggYnVnIHdoZXJlIGxvY2tlZCBlbGVtZW50cyB3b3VsZCBhbHdheXMgcmV0dXJuIF9TVUNDRVNTIGV2ZW4gaXQgdGhleQoJICByZXR1cm5lZCBOT19QUkVST0xMIGJlZm9yZSBiZWluZyBsb2NrZWQuCgkgIEZpeCB0aGUgb3JkZXIgb2YgdGhlIHN0YXRlX2NoYW5nZSwgYXN5bmMtc3RhcnQvZG9uZSBtZXNzYWdlcyB0aGF0IHdhcwoJICBzb21ldGltZXMgaW5jb3JyZWN0LgoJICBNYXJrIHRoZSBzdGF0ZV9kaXJ0eSBmaWVsZCBhcyBkZXByZWNhdGVkLCB3ZSBkb24ndCBuZWVkIGl0IGFueW1vcmUgYXMgd2UKCSAgYXJlIGFsd2F5cyB1cC10by1kYXRlLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSk6CgkgIFNtYWxsIGRlYnVnIGlucHJvdmVtZW50cy4KCSAgUmV0dXJuIHRoZSBwcmV2aW91cyBlbGVtZW50IHN0YXRlIHJldHVybiB3aGVuIG5vdGhpbmcgaXMgcGVuZGluZyBpbnN0ZWFkCgkgIG9mIGJsaW5kbHkgcmV0dXJuaW5nIFNVQ0NFU1MuCgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAocGFkX2Jsb2NrZWRfY2IpLAoJICAoZ3N0X3NpbmtzX3N1aXRlKToKCSAgQWRkIGEgd2hvbGUgYnVuY2ggb2YgbmV3IHRlc3RjYXNlcy4KCjIwMDctMDYtMTcgMTc6MjY6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBVcGRhdGUgdHJhbnNsYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby91ay5wbzoKCSAgKiBwby92aS5wbzoKCSAgVXBkYXRlIHRyYW5zbGF0aW9ucy4KCjIwMDctMDYtMTUgMTQ6Mzc6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggdHlwbyBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggdHlwbyBpbiB0aGUgZG9jcy4KCjIwMDctMDYtMTUgMTE6NDk6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBZGQgZG9jcyBmb3IgbmV3IG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZCBkb2NzIGZvciBuZXcgbWV0aG9kcy4KCjIwMDctMDYtMTUgMTE6MzU6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRG9uJ3QgdXNlIEdTbGljZSBiZWNhdXNlIHdlIGRvbid0IGRlcGVuZCBvbiA+PSAyLjEwIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfaXRlbV9kZXN0cm95KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyk6CgkgIERvbid0IHVzZSBHU2xpY2UgYmVjYXVzZSB3ZSBkb24ndCBkZXBlbmQgb24gPj0gMi4xMCB5ZXQuCgoyMDA3LTA2LTE1IDExOjA5OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFJlbW92ZSBkZWJ1ZyBwcmludGYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksCgkgICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9zZWdtZW50KSwgKGFwcGx5X2J1ZmZlciksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyksCgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCksIChnc3RfbXVsdGlfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KSwgKHNpbmdsZV9xdWV1ZV9vdmVycnVuX2NiKSwKCSAgKHNpbmdsZV9xdWV1ZV91bmRlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfY2hlY2tfZnVsbCk6CgkgIFJlbW92ZSBkZWJ1ZyBwcmludGYuCgoyMDA3LTA2LTE1IDExOjAwOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuKjogVmFyaW91cyBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzogKGdzdF9kYXRhX3F1ZXVlX2NsZWFudXApLAoJICAoZ3N0X2RhdGFfcXVldWVfZmluYWxpemUpLCAoZ3N0X2RhdGFfcXVldWVfbG9ja2VkX2lzX2VtcHR5KSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3NldF9mbHVzaGluZyksIChnc3RfZGF0YV9xdWV1ZV9wdXNoKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3BvcCksIChnc3RfZGF0YV9xdWV1ZV9kcm9wX2hlYWQpLAoJICAoZ3N0X2RhdGFfcXVldWVfbGltaXRzX2NoYW5nZWQpLCAoZ3N0X2RhdGFfcXVldWVfZ2V0X2xldmVsKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICBWYXJpb3VzIGNsZWFudXBzLgoJICBBZGRlZCBtZXRob2RzIHRvIGdldCB0aGUgY3VycmVudCBsZXZlbHMgYW5kIHRvIGluZm9ybSB0aGUgcXVldWUgdGhhdCB0aGUKCSAgJ2Z1bGwnIGxpbWl0cyBjaGFuZ2VkLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X211bHRpX3F1ZXVlX2luaXQpLAoJICAoZ3N0X211bHRpX3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9tdWx0aV9xdWV1ZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9mbHVzaCksICh1cGRhdGVfdGltZV9sZXZlbCksIChhcHBseV9zZWdtZW50KSwKCSAgKGFwcGx5X2J1ZmZlciksIChnc3Rfc2luZ2xlX3F1ZXVlX3B1c2hfb25lKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX3N0ZWFsX29iamVjdCksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9kZXN0cm95KSwgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyksCgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCksIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksCgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0Y2FwcyksIChnc3RfbXVsdGlfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19xdWVyeSksIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksCgkgIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLCAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpLAoJICAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBLZWVwIHRyYWNrIG9mIHRpbWUgaW4gdGhlIHF1ZXVlIGJ5IG1lYXN1cmluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuCgkgIHJ1bm5pbmdfdGltZSBvbiBpbnB1dCBhbmQgb3V0cHV0LiBUaGlzIGdpdmVzIG1vcmUgYWNjdXJhdGUgcmVzdWx0cyBhbmQKCSAgY2FuIGNvbXBlbnNhdGUgZm9yIHNlZ21lbnRzIGNvcnJlY3RseS4KCSAgTWFrZSBhIHF1ZXVlIGJ5IGRlZmF1bHQgb25seSA1IGJ1ZmZlcnMgZGVlcC4gV2Ugd2lsbCBub3cgaW5jcmVhc2UgdGhlCgkgIGJ1ZmZlciBzaXplIGRlcGVuZGluZyBvbiB0aGUgZmlsbGVkbmVzcyBvZiB0aGUgb3RoZXIgcXVldWVzLgoJICBGYWN0b3Igb3V0IGNvbW1vbmcgZmx1c2ggY29kZS4KCSAgTWFrZSBzdXJlIHdlIGRvbid0IGFkZCBhZGRpdGlvbmFsIHJlZmNvdW50cyB0byBidWZmZXJzIHdoZW4gd2UgY2FuIGF2b2lkCgkgIGl0LgoJICBQcm9wYWdhdGUgR3N0Rmxvd1JldHVybiBkaWZmZXJlbnRseS4KCSAgVXNlIEdTbGljZSBmb3IgaW50ZXJtZWRpYXRlIEdzdE11bHRpUXVldWVJdGVtcy4KCSAgS2VlcCB0cmFjayBvZiBFT1MuCgkgIFJlc2l6ZSBxdWV1ZXMgb24gb3ZlciBhbmQgdW5kZXJydW5zIGJhc2VkIG9uIGZpbGxlZCBsZXZlbCBvZiBvdGhlcgoJICBxdWV1ZXMuCgkgIFdoZW4gY2hlY2tpbmcgaWYgdGhlIHF1ZXVlIGlzIGZpbGxlZCwgcHJlZmVyIHRvIG1lYXN1cmUgaW4gdGltZSBpZiB3ZQoJICBjYW4gYW5kIGZhbGwgYmFjayB0byBieXRlcyB3aGVuIG5vIHRpbWUgaXMga25vd24uCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBGaXggcmV0dXJuIHZhbHVlLgoKMjAwNy0wNi0xNSAxMDo0ODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBXb3JrIGFyb3VuZCB0aGUgYnJva2VubmVzcyBvZiB0aGUgZXZlbnQgdm1ldGhvZCBpbiBiYXNldHJhbnNmb3JtLiBQcmVmZXIgdG8gcmV0dXJuIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50KToKCSAgV29yayBhcm91bmQgdGhlIGJyb2tlbm5lc3Mgb2YgdGhlIGV2ZW50IHZtZXRob2QgaW4gYmFzZXRyYW5zZm9ybS4gUHJlZmVyCgkgIHRvIHJldHVybiBUUlVFIHdoZW4gdGhlIHN1YmNsYXNzIHJldHVybmVkIEZBTFNFIChtZWFuaW5nIGRvbid0IGZvcndhcmQKCSAgdGhlIGV2ZW50KS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQ2xhcmlmeSB0aGUgZG9jcy4KCjIwMDctMDYtMTUgMTA6NDM6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnlfbGF0ZW5jeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoc2V0dXBfcGlwZWxpbmUpOgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDYtMTUgMDc6Mjc6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogQWRkZWQgbW9yZSBmb3JtYXRzIHRvIGNhcHMgdGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgQWRkZWQgbW9yZSBmb3JtYXRzIHRvIGNhcHMgdGFibGUuCgoyMDA3LTA2LTE1IDA3OjAyOjA0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IFJlbW92ZSBjcnVmeSBjb2RlLiBHT3B0aW9uIGRvZXMgbm90IG5lZWQgdGhpcyB3b3JrYXJvdW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgUmVtb3ZlIGNydWZ5IGNvZGUuIEdPcHRpb24gZG9lcyBub3QgbmVlZCB0aGlzIHdvcmthcm91bmQuCgoyMDA3LTA2LTE0IDIwOjI5OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRml4IHdyb25nIGdldHRlciBmb3IgZW51bXMgaW4gY29udHJvbGxlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgRml4IHdyb25nIGdldHRlciBmb3IgZW51bXMgaW4gY29udHJvbGxlci4KCjIwMDctMDYtMTQgMTc6MzY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBJbnRlcmNlcHQgY3JpdGljYWxzIGFuZCB3YXJuaW5ncyBpbiB0aGUgR3N0LVBob25vbiBsb2cgZG9tYWluLCBzbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2luaXQpOgoJICBJbnRlcmNlcHQgY3JpdGljYWxzIGFuZCB3YXJuaW5ncyBpbiB0aGUgR3N0LVBob25vbiBsb2cgZG9tYWluLCBzbwoJICBBU1NFUlRfQ1JJVElDQUwoKSBldGMuIGNhbiBiZSB1c2VkIGluIGdzdC1waG9ub24ncyB1bml0IHRlc3RzIGFzCgkgIHdlbGwuCgoyMDA3LTA2LTE0IDE2OjA3OjA5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhcmFtc3BlY3MuYzogU2luY2UgdGhpcyBmaWxlIGRvZXNuJ3QgaW5jbHVkZSAiZ3N0LmgiIGl0IHdpbGwgbm90IGdvIHRocm91Z2ggdGhlIG1hY3JvcyB0aGF0IGRpc2FibGUgR1NUX0xPRyBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmM6IChfZ3N0X3BhcmFtX2ZyYWN0aW9uX3ZhbGlkYXRlKToKCSAgU2luY2UgdGhpcyBmaWxlIGRvZXNuJ3QgaW5jbHVkZSAiZ3N0LmgiIGl0IHdpbGwgbm90IGdvIHRocm91Z2ggdGhlCgkgIG1hY3JvcyB0aGF0IGRpc2FibGUgR1NUX0xPRyBpZiBkZWJ1Z2dpbmcgd2FzIGRpc2FibGVkLgoKMjAwNy0wNi0xNCAxNTo1NjowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFVnbHkgJ2ZpeCcgZm9yIHRoZSBjb250cm9sbGVyIHVuaXQgdGVzdCBvbiB0aGUgcDUgYm90OiBpbiBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBjaGVjayB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlICdhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1jaGVjay5wYy5pbjoKCSAgVWdseSAnZml4JyBmb3IgdGhlIGNvbnRyb2xsZXIgdW5pdCB0ZXN0IG9uIHRoZSBwNSBib3Q6IGluCgkgIGZhaWxfdW5sZXNzX2VxdWFsc19mbG9hdCgpIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgJ2FsbW9zdAoJICBlcXVhbCcgYnkgYWxsb3dpbmcgYSBzbWFsbCBhYnNvbHV0ZSBlcnJvciwgd2hpY2ggc2hvdWxkIGJlIGdvb2QKCSAgZW5vdWdoIGZvciBvdXIgdXNlIGNhc2VzIChub3JtYWwgbnVtYmVycyBhbmQgdmFsdWVzIGNsb3NlIHRvIDApLgoJICBQcm9wZXIgZml4YWdlIGxlZnQgdG8gZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBhZmljaW9uYWRvcy4KCjIwMDctMDYtMTQgMTI6MDM6NDQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWRkIHR3byBicmVha3MgdGhhdHMgd2hlcmUgbWlzc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgQWRkIHR3byBicmVha3MgdGhhdHMgd2hlcmUgbWlzc2luZy4KCjIwMDctMDYtMTQgMTE6NTY6NDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBmYWlsX3VubGVzc19lcXVhbHNfZmxvYXQoKSBhbmQgYXNzZXJ0X2VxdWFsc19mbG9hdCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIEFQSTogYWRkIGZhaWxfdW5sZXNzX2VxdWFsc19mbG9hdCgpIGFuZCBhc3NlcnRfZXF1YWxzX2Zsb2F0KCkuCgkgIEFkZCBkb2N1bWVudGF0aW9uIGZvciBzb21lIG9mIHRoZSBtYWNyb3MuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBuZXdseS1hZGRlZCBhc3NlcnRzLgoKMjAwNy0wNi0xNCAxMDozMzoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBTaG93IHRoZSBjYXBzIGNoYW5nZSBpbiB0aGUgbG9nIHRvIGhlbHAgc3BvdHRpbmcgdGhlIGNhc2Ugb2Ygbm90IGV4YWN0bHkgbWF0Y2hpbmcgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksIChnc3RfcGFkX3B1c2gpOgoJICBTaG93IHRoZSBjYXBzIGNoYW5nZSBpbiB0aGUgbG9nIHRvIGhlbHAgc3BvdHRpbmcgdGhlIGNhc2Ugb2Ygbm90CgkgIGV4YWN0bHkgbWF0Y2hpbmcgY2Fwcy4KCjIwMDctMDYtMTQgMDg6NTI6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOiBGaXggdHlwb3MsIHNwb3R0ZWQgYnkgVGhpanMgVmVybWVpciAoIzQ0NzE5MCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIEZpeCB0eXBvcywgc3BvdHRlZCBieSBUaGlqcyBWZXJtZWlyICgjNDQ3MTkwKS4KCjIwMDctMDYtMTMgMTY6MTU6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZTogSWdub3JlIGZpbGUgdG8ga2VlcCB0aGUgYnVpbGRib3RzIGhhcHB5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy90bXBsLy5jdnNpZ25vcmU6CgkgIElnbm9yZSBmaWxlIHRvIGtlZXAgdGhlIGJ1aWxkYm90cyBoYXBweQoKMjAwNy0wNi0xMyAxNTozOTo1MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3BsdWdpbnMvOiBQdWxsIGZkc2luayBpbnRvIHRoZSBkb2NzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgUHVsbCBmZHNpbmsgaW50byB0aGUgZG9jcyB0b28uCgoyMDA3LTA2LTExIDA3OjE0OjUzICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogQWN0dWFsbHkgdXNlIHRoZSBuZXcgZnVuY3Rpb25zIHdpdGggbWluL21heCBjaGVja3MgZm9yIHRoZSB0cmlnZ2VyIGFuZCBub25lIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIEFjdHVhbGx5IHVzZSB0aGUgbmV3IGZ1bmN0aW9ucyB3aXRoIG1pbi9tYXggY2hlY2tzIGZvciB0aGUgdHJpZ2dlciBhbmQKCSAgbm9uZSBpbnRlcnBvbGF0aW9uIG1vZGVzIGZvciBnZXQoKSBhbmQgZ2V0X3ZhbHVlX2FycmF5KCkgaW5zdGVhZCBvZgoJICBqdXN0IHRoZSBsYXR0ZXIuCgoyMDA3LTA2LTEwIDEyOjM4OjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogVW5zZXQgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gR1ZhbHVlcyB3aGVuIGZyZWVpbmcgdGhlIGNvcnJlc3BvbmRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9mcmVlKToKCSAgVW5zZXQgdGhlIG1pbmltdW0gYW5kIG1heGltdW0gR1ZhbHVlcyB3aGVuIGZyZWVpbmcgdGhlIGNvcnJlc3BvbmRpbmcKCSAgR3N0Q29udHJvbGxlclByb3BlcnR5IHN0cnVjdC4KCjIwMDctMDYtMDkgMTY6NTg6MzAgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBQcm90ZWN0IGFnYWluc3QgdmFsdWVzIGxhcmdlciBvciBzbWFsbGVyIHRoYW4gdGhlIG1pbmltdW0gb3IgbWF4aW11bSBhbGxvd2VkIHZhbHVlIGZvciB0aGUgcHJvcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZmluZF9jb250cm9sX3BvaW50X25vZGUpLAoJICAoaW50ZXJwb2xhdGVfbm9uZV9nZXQpLCAoaW50ZXJwb2xhdGVfbm9uZV9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXQpLAoJICAoaW50ZXJwb2xhdGVfdHJpZ2dlcl9nZXRfZW51bV92YWx1ZV9hcnJheSksCgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpOgoJICBQcm90ZWN0IGFnYWluc3QgdmFsdWVzIGxhcmdlciBvciBzbWFsbGVyIHRoYW4gdGhlIG1pbmltdW0gb3IgbWF4aW11bQoJICBhbGxvd2VkIHZhbHVlIGZvciB0aGUgcHJvcGVydHkgd2hlbiB1c2luZyB2YWx1ZXMgdGhhdCBjYW4gYmUgY29tcGFyZWQuCgkgIE9wdGltaXplIHRyaWdnZXIgaW50ZXJwb2xhdG9yIGEgYml0IGJ5IHRha2luZyB0aGUgbGFzdCByZXF1ZXN0ZWQgdmFsdWUKCSAgaW50byBhY2NvdW50IGluc3RlYWQgb2YgYWx3YXlzIGxvb3BpbmcgdGhyb3VnaCB0aGUgY29tcGxldGUgbGlzdC4KCSAgRml4IGNvZGluZyBzdHlsZSBhIGJpdCwgZXZlcnl3aGVyZSBlbHNlIHdlIHVzZSAicmV0dXJuIGZvbyIgaW5zdGVhZAoJICBvZiAicmV0dXJuIChmb28pIi4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIHByb3RlY3Rpb24gYWdhaW5zdCB0b28gbGFyZ2Ugb3IgdG9vIHNtYWxsCgkgIHZhbHVlcy4KCjIwMDctMDYtMDggMjE6MDg6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGRvY3MvcmFuZG9tL3Nsb21vL2NvbnRyb2xsZXIudHh0OiBBZGQgc29tZSB0aG91Z2h0cyBhYm91dCB0aGUgZnV0dXJlIG9mIHRoZSBjb250cm9sbGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9zbG9tby9jb250cm9sbGVyLnR4dDoKCSAgQWRkIHNvbWUgdGhvdWdodHMgYWJvdXQgdGhlIGZ1dHVyZSBvZiB0aGUgY29udHJvbGxlci4KCjIwMDctMDYtMDggMTE6MDA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IERvbid0IG92ZXJmbG93IGluIHJldGltZXN0YW1waW5nIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBEb24ndCBvdmVyZmxvdyBpbiByZXRpbWVzdGFtcGluZyBjb2RlLgoKMjAwNy0wNi0wNyAyMDo1MTozNSArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6IFVzZSBnc3RfdXRpbF9ndWludDY0X3RvX2dkb3VibGUgZm9yIGNvbnZlcnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogKERFRklORV9DVUJJQ19HRVQpOgoJICBVc2UgZ3N0X3V0aWxfZ3VpbnQ2NF90b19nZG91YmxlIGZvciBjb252ZXJzaW9ucy4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA3LTA2LTA3IDE3OjIyOjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFNtYWxsIGRvY3MgYWRkaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBTbWFsbCBkb2NzIGFkZGl0aW9uLgoKMjAwNy0wNi0wNyAxNDo0OTowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUkVBRE1FOiBSZW1vdmUgdGhhdCB0ZXN0IGxpbmUgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIFJFQURNRToKCSAgUmVtb3ZlIHRoYXQgdGVzdCBsaW5lIGFnYWluLgoKMjAwNy0wNi0wNyAxNDozNjowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgUkVBRE1FOiBUZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIFJFQURNRToKCSAgVGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoKMjAwNy0wNi0wNyAxNDoxNzo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBGaXggdHlwbyBhbmQgdGVzdCBjb21taXQgbWFpbCBzZW5kaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEZpeCB0eXBvIGFuZCB0ZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgoyMDA3LTA2LTA3IDE0OjEyOjA3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogSW1wcm92ZSBjb21tZW50IGFuZCB0ZXN0IGNvbW1pdCBtYWlsIHNlbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICBJbXByb3ZlIGNvbW1lbnQgYW5kIHRlc3QgY29tbWl0IG1haWwgc2VuZGluZy4KCjIwMDctMDYtMDcgMTA6MTE6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEFkZCBoZWxwZXIgZnVuY3Rpb24gdG8gZmluZCBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZmluZF9tZXNzYWdlKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLCAoaXNfZW9zKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBBZGQgaGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgbWVzc2FnZXMuCgkgIEdlbmVyYXRlIHRoZSBhc3luYy1kb25lIG1lc3NhZ2VzIHRvZ2V0aGVyIHdpdGggdGhlIHN0YXRlIGNoYW5nZQoJICBtZXNzYWdlcy4KCSAgU21hbGwgY2xlYW51cHMgaW4gaGFuZGxpbmcgdG9wbGV2ZWwgYmlucy4KCjIwMDctMDYtMDYgMTg6MTE6MTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBGaXggbXVsdGlxdWV1ZSBsZWFraW5nIGJ1ZmZlcnMgYW5kIGV2ZW50cyB3aGVuIGRvd25zdHJlYW0gb3IgdGhlIHF1ZXVlIGFyZSBmbHVzaGluZy4gTWFrZSByZWZjb3VudGluZyBhc3N1bXB0aW9ucyBleHAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RkYXRhcXVldWUuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9uZXcpLCAoZ3N0X211bHRpX3F1ZXVlX2NoYWluKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zaW5rX2V2ZW50KToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9tdWx0aXF1ZXVlLmM6IChtdWx0aXF1ZXVlX3N1aXRlKToKCSAgRml4IG11bHRpcXVldWUgbGVha2luZyBidWZmZXJzIGFuZCBldmVudHMgd2hlbiBkb3duc3RyZWFtIG9yIHRoZQoJICBxdWV1ZSBhcmUgZmx1c2hpbmcuIE1ha2UgcmVmY291bnRpbmcgYXNzdW1wdGlvbnMgZXhwbGljaXQgYW5kCgkgIGRvY3VtZW50IHRoZW0gKHNob3VsZG4ndCBicmVhayBleGlzdGluZyBjb2RlIHRoYXQgdXNlcyBpdCBvdGhlciB0aGFuCgkgIG1heWJlIGxlYWsgbWluaW9iamVjdHMsIGJ1dCB0aGF0IGFscmVhZHkgaGFwcGVucyBhbnl3YXkpLiBBZGQgdW5pdAoJICB0ZXN0IGZvciB0aGUgbW9zdCBjb21tb24gZmx1c2hpbmcgY2FzZS4gRml4ZXMgIzQyMzcwMC4KCjIwMDctMDYtMDYgMTQ6MjA6MDEgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBDbGFyaWZ5IGRvY3M6IFRoZSBnZXRfYWxsLCBnZXRfdmFsdWVfYXJyYXkocykgZnVuY3Rpb25zIGRvbid0IG1vZGlmeSB0aGUgR09iamVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgQ2xhcmlmeSBkb2NzOiBUaGUgZ2V0X2FsbCwgZ2V0X3ZhbHVlX2FycmF5KHMpIGZ1bmN0aW9ucwoJICBkb24ndCBtb2RpZnkgdGhlIEdPYmplY3QgcHJvcGVydGllcy4KCjIwMDctMDYtMDYgMTQ6MDE6NTYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBGYWN0b3Igb3V0IHRoZSAnc2V0JyBsb2dpYyBpbnRvIGdzdF9jb250cm9sbGVyX3NldF91bmxvY2tlZCBmb3IgdGhlIGdzdF9jb250cm9sbGVyX3NldCBhbmQgZ3N0Xy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfcHJlcGVuZF9kZWZhdWx0KSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksIChnc3RfY29udHJvbGxlcl9zZXRfdW5sb2NrZWQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0KSwgKGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIEZhY3RvciBvdXQgdGhlICdzZXQnIGxvZ2ljIGludG8gZ3N0X2NvbnRyb2xsZXJfc2V0X3VubG9ja2VkIGZvciB0aGUKCSAgZ3N0X2NvbnRyb2xsZXJfc2V0IGFuZCBnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0IGZ1bmN0aW9ucy4KCSAgVG8gbWFrZSBsaWZlIG9mIHRoZSBpbnRlcnBvbGF0b3JzIGVhc2llciBhbHdheXMgYWRkIGEgY29udHJvbCBwb2ludAoJICBhdCB0aW1lc3RhbXAgemVybyB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlLgoJICBJbiB0aGUgbGluZWFyIGludGVycG9sYXRvciBtYWtlIHRoaW5ncyBtb3JlIG9idmlvdXMgYnkgYmV0dGVyIHZhcmlhYmxlCgkgIG5hbWluZyAoc2xvcGUpLgoJICBJbXBsZW1lbnQgY3ViaWMgaW50ZXJwb2xhdGlvbiBtb2RlIChieSB1c2luZyBhIG5hdHVyYWwgY3ViaWMgc3BsaW5lKQoJICBhbmQgbWFwIHRoZSBxdWFkcmF0aWMgaW50ZXJwb2xhdGlvbiBtb2RlIHRvIHRoaXMgdG9vIChhcyBxdWFkcmF0aWMKCSAgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UsIHNlZSBkaXNjdXNzaW9uIG9uIHRoZSBsaXN0KS4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIGN1YmljIGludGVycG9sYXRpb24gbW9kZSBhbmQgY2hlY2sgZXZlcnl3aGVyZQoJICBpZiB0aGUgaW50ZXJwb2xhdGlvbiBtb2RlIGNvdWxkIGJlIHNldCBhcyBleHBlY3RlZC4KCjIwMDctMDYtMDYgMTE6Mzg6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFyYW1zcGVjcy5jOiBEb24ndCB1c2UgR0xpYi0yLjEwIGZ1bmN0aW9ucywgd2Ugc3RpbGwgZGVwZW5kIG9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmM6IChnc3RfcGFyYW1fc3BlY19mcmFjdGlvbl9nZXRfdHlwZSk6CgkgIERvbid0IHVzZSBHTGliLTIuMTAgZnVuY3Rpb25zLCB3ZSBzdGlsbCBkZXBlbmQgb24KCSAgR0xpYi1ob3ctb2xkLWlzLWl0LWFnYWluLTIuOC4KCjIwMDctMDYtMDYgMTE6MTg6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHc3RQYXJhbVNwZWNGcmFjdGlvbiwgc28gZWxlbWVudHMgY2FuIGhhdmUgZnJhY3Rpb24gcHJvcGVydGllcyB3aXRob3V0IGxvdHMgb2YgcGFpbmZ1bCBzdHJpbmcgcGFyc2luZyAoIzQ0NDYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cGFyYW1zcGVjcy5jOiAoX2dzdF9wYXJhbV9mcmFjdGlvbl9pbml0KSwKCSAgKF9nc3RfcGFyYW1fZnJhY3Rpb25fc2V0X2RlZmF1bHQpLCAoX2dzdF9wYXJhbV9mcmFjdGlvbl92YWxpZGF0ZSksCgkgIChfZ3N0X3BhcmFtX2ZyYWN0aW9uX3ZhbHVlc19jbXApLAoJICAoZ3N0X3BhcmFtX3NwZWNfZnJhY3Rpb25fZ2V0X3R5cGUpLCAoZ3N0X3BhcmFtX3NwZWNfZnJhY3Rpb24pOgoJICAqIGdzdC9nc3RwYXJhbXNwZWNzLmg6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhcmFtc3BlY3MuYzogKGdzdF9kdW1teV9vYmpfYmFzZV9pbml0KSwKCSAgKGdzdF9kdW1teV9vYmpfY2xhc3NfaW5pdCksIChnc3RfZHVtbXlfb2JqX2luaXQpLAoJICAoZ3N0X2R1bW15X29ial9zZXRfcHJvcGVydHkpLCAoZ3N0X2R1bW15X29ial9nZXRfcHJvcGVydHkpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BhcmFtX3NwZWNfc3VpdGUpOgoJICBBUEk6IGFkZCBHc3RQYXJhbVNwZWNGcmFjdGlvbiwgc28gZWxlbWVudHMgY2FuIGhhdmUgZnJhY3Rpb24KCSAgcHJvcGVydGllcyB3aXRob3V0IGxvdHMgb2YgcGFpbmZ1bCBzdHJpbmcgcGFyc2luZyAoIzQ0NDY0OCkuCgoyMDA3LTA2LTA1IDE2OjI1OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5jOiBGaXggc2lnbmFsIHNpZ25hdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KToKCSAgRml4IHNpZ25hbCBzaWduYXR1cmUuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgQWRkIHNtYWxsIGNsYXJpZmljYXRpb24gaW4gdGhlIGFwaSBkb2NzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX3NldF9sb2NhdGlvbik6CgkgIFN0YXRlcyBhcmUgcHJvdGVjdGVkIHdpdGggb2JqZWN0IGxvY2suCgoyMDA3LTA2LTA1IDE0OjExOjU5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFVVEhPUlM6IEkgc2hvdWxkIHByb2JhYmx5IGJlIGxpc3RlZCBhcyBhbiBhdXRob3IgYnkgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBBVVRIT1JTOgoJICBJIHNob3VsZCBwcm9iYWJseSBiZSBsaXN0ZWQgYXMgYW4gYXV0aG9yIGJ5IG5vdy4KCSAgKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJICBVcGRhdGUgdGhlIHJlbGVhc2UgZG9jCgoyMDA3LTA2LTA1IDEzOjQ5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IE1ha2UgZG9jcyBmb3IgZ3N0X3ZhbHVlX2NvbXBhcmUoKSBtZW50aW9uIHJldHVybiBlbnVtcyB0aGF0IGFjdHVhbGx5IGV4aXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgTWFrZSBkb2NzIGZvciBnc3RfdmFsdWVfY29tcGFyZSgpIG1lbnRpb24gcmV0dXJuIGVudW1zIHRoYXQKCSAgYWN0dWFsbHkgZXhpc3QuCgoyMDA3LTA2LTA1IDEzOjIxOjQxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xMyA9PT0KCjIwMDctMDYtMDUgMTI6NDc6MjMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuc2lnbmFsczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3RyZWFtZXIuZG9hcDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGNvbnRyb2xsZXIuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGRhdGFwcm90b2NvbC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RuZXQuZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgUmVsZWFzZSAwLjEwLjEzICJXaXRoIG9yIHdpdGhvdXQgeW91IgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVsZWFzZSAwLjEwLjEzICJXaXRoIG9yIHdpdGhvdXQgeW91IgoKMjAwNy0wNi0wNSAxMjowNjo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RhLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTA1LTI5IDE1OjUwOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdHJpZ2dlciBhIG1haWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSBtYWlsCgoyMDA3LTA1LTI5IDE0OjQ5OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdHJpZ2dlciBhIG1haWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSBtYWlsCgoyMDA3LTA1LTI5IDE0OjQ4OjU1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdHJpZ2dlciBhIG1haWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRyaWdnZXIgYSBtYWlsCgoyMDA3LTA1LTI5IDE0OjM3OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgc2VuZCBhIG1haWwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNlbmQgYSBtYWlsCgoyMDA3LTA1LTI5IDExOjUyOjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDExOjQwOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDExOjAwOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDEwOjQzOjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDEwOjM1OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDEwOjM0OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI5IDEwOjIwOjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdGVzdCBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlc3QgY29tbWl0CgoyMDA3LTA1LTI1IDE1OjM2OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNYWtlIHN1cmUgdGhhdCB0aGUgY2hpbGQgYmluIHN0b3BzIGFmdGVyIGNvbXBsZXRpbmcgdGhlIGFzeW5jIHN0YXRlIGNoYW5nZSBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIGNvbnRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSk6CgkgIE1ha2Ugc3VyZSB0aGF0IHRoZSBjaGlsZCBiaW4gc3RvcHMgYWZ0ZXIgY29tcGxldGluZyB0aGUgYXN5bmMgc3RhdGUKCSAgY2hhbmdlIHNvIHRoYXQgdGhlIHBhcmVudCBjYW4gY29udGludWUgdGhlIHN0YXRlIGNoYW5nZSB0byBQTEFZSU5HLgoJICBGaXhlcyAjNDQxMTU5LgoKMjAwNy0wNS0yNSAwOToyNjoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogVXNlIGFkZGl0aW9uYWwgcmVmY291bnRpbmcgdG8gYXZvaWQgY3Jhc2hlcyB3aGVuIGR5bmFtaWNhbGx5IGFkZGluZyBhbmQgcmVtb3ZpbmcgcGFkcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKHVucmVmX2RhdGEpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfcGFkcyk6CgkgIFVzZSBhZGRpdGlvbmFsIHJlZmNvdW50aW5nIHRvIGF2b2lkIGNyYXNoZXMgd2hlbiBkeW5hbWljYWxseSBhZGRpbmcgYW5kCgkgIHJlbW92aW5nIHBhZHMuIEZpeGVzICM0MjAyMDYuCgoyMDA3LTA1LTI0IDE1OjAwOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBXaGVuIGJ1ZmZlcmluZyBnb2VzIGZyb20gYSB0d28gZGlnaXQgdG8gYSBzaW5nbGUgZGlnaXQgbnVtYmVyLCBtYWtlIHN1cmUgdG8gcmVtb3ZlIHRoZSBvbGQgc2Vjb25kLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBXaGVuIGJ1ZmZlcmluZyBnb2VzIGZyb20gYSB0d28gZGlnaXQgdG8gYSBzaW5nbGUgZGlnaXQgbnVtYmVyLCBtYWtlIHN1cmUKCSAgdG8gcmVtb3ZlIHRoZSBvbGQgc2Vjb25kIGRpZ2l0IGJ5IHdyaXRpbmcgYSBibGFuayBvdmVyIGl0LgoKMjAwNy0wNS0yNCAxMjoxOTowMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IEVsaW1pbmF0ZSB0YWJzIGFuZCB0cmFpbGluZyBjb21tYSBpbiBlbnVtIGxpc3Q7IGZpeCBzb21lIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGRhdGFxdWV1ZS5jOgoJICBFbGltaW5hdGUgdGFicyBhbmQgdHJhaWxpbmcgY29tbWEgaW4gZW51bSBsaXN0OyBmaXggc29tZSB0eXBvcy4KCjIwMDctMDUtMjQgMTE6NTA6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IEFsbG93IHJlZmNvdW50IG9mIDMgYW5kIDQgYmVjYXVzZSBzb21lIHN0YXRlIHRocmVhZCBtaWdodCBzdGlsbCBiZSBidXN5IHdpdGggaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWxsb3cgcmVmY291bnQgb2YgMyBhbmQgNCBiZWNhdXNlIHNvbWUgc3RhdGUgdGhyZWFkIG1pZ2h0IHN0aWxsIGJlIGJ1c3kKCSAgd2l0aCBpdC4KCjIwMDctMDUtMjQgMDk6NDE6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogVGhlc2UgYXJlIG5vdCBpbnN0YWxsZWQgaGVhZGVycywgbm8gbmVlZCBmb3IgcGFkZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIFRoZXNlIGFyZSBub3QgaW5zdGFsbGVkIGhlYWRlcnMsIG5vIG5lZWQgZm9yIHBhZGRpbmcuCgoyMDA3LTA1LTI0IDA4OjM1OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBFbmFibGUgbGF0ZW5jeSBmb3IgbmV4dCByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2NvbnRpbnVlX2Z1bmMpOgoJICBFbmFibGUgbGF0ZW5jeSBmb3IgbmV4dCByZWxlYXNlLgoJICBSZXN0b3JlIFNUQVRFX0xPQ0sgYXJvdW5kIHJlY2FsY19zdGF0ZSB0aGF0IHdhcyBsZWZ0IG91dCBkdXJpbmcgdGhlCgkgIHJld3JpdGUgYW5kIGNvdWxkIHJlc3VsdCBpbiByYWN5IGJlaGF2aW91ciB3aGVuIF9nZXRfc3RhdGUgYW5kCgkgIHJlY2FsY19zdGF0ZSBhcmUgcnVuIGNvbmN1cnJlbnRseS4gU2VlICM0NDA0NjMuCgoyMDA3LTA1LTIzIDEzOjU2OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IEltcHJvdmUgdGVzdF9hc3luY19vcmRlciB0byBhbHNvIHdvcmsgd2hlbiBib3RoIHRpbWVycyBhcmUgYWxyZWFkeSBleHBpcmVkIHdoZW4gd2UgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoc3RvcmVfY2FsbGJhY2spLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBJbXByb3ZlIHRlc3RfYXN5bmNfb3JkZXIgdG8gYWxzbyB3b3JrIHdoZW4gYm90aCB0aW1lcnMgYXJlIGFscmVhZHkKCSAgZXhwaXJlZCB3aGVuIHdlIGdldCBzY2hlZHVsZWQgdG8gY2hlY2sgaXQuCgoyMDA3LTA1LTIyIDE3OjEwOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi4qOiAncHJpdmF0ZScgaXMgYSBjKysga2V5d29yZCwgbGV0J3Mgbm90IHVzZSB0aGF0IGluIGhlYWRlciBmaWxlcywgb3RoZXJ3aXNlIGMrKyBjb21waWxlcnMgd2lsbCB0aHJvdyBhIHRhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCksIChnc3RfYmluX2Rpc3Bvc2UpLAoJICAoZ3N0X2Jpbl9zZXRfcHJvcGVydHkpLCAoZ3N0X2Jpbl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgJ3ByaXZhdGUnIGlzIGEgYysrIGtleXdvcmQsIGxldCdzIG5vdCB1c2UgdGhhdCBpbiBoZWFkZXIgZmlsZXMsCgkgIG90aGVyd2lzZSBjKysgY29tcGlsZXJzIHdpbGwgdGhyb3cgYSB0YW50cnVtLgoKMjAwNy0wNS0yMiAxMTo1NTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvOiBVc2UgI2lmZGVmIGZvciBIQVZFX1hZWiBmb3IgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2RvX3NlZWspLAoJICAoZ3N0X2ZpbGVfc2lua19nZXRfY3VycmVudF9vZmZzZXQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzogKHBsdWdpbl9pbml0KToKCSAgVXNlICNpZmRlZiBmb3IgSEFWRV9YWVogZm9yIGNvbnNpc3RlbmN5LgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNpbmsuYzogKHNldHVwX2ZpbGVzaW5rKSwKCSAgKGNsZWFudXBfZmlsZXNpbmspLCAoR1NUX1NUQVJUX1RFU1QpLCAoZmlsZXNpbmtfc3VpdGUpOgoJICBBZGQgc29tZSB1bml0IHRlc3RzIGZvciBmaWxlc2luay4KCjIwMDctMDUtMjIgMTE6NDM6MDcgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLio6IEZpeCBwb3NpdGlvbiByZXBvcnRpbmc7IHJlbmFtZSBkYXRhX3dyaXR0ZW4gbWVtYmVyIHRvIGN1cnJlbnRfcG9zIHRvIHJlZmxlY3QgaXRzIHJlYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGJlPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfcXVlcnkpLCAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgIEZpeCBwb3NpdGlvbiByZXBvcnRpbmc7IHJlbmFtZSBkYXRhX3dyaXR0ZW4gbWVtYmVyIHRvIGN1cnJlbnRfcG9zIHRvCgkgIHJlZmxlY3QgaXRzIHJlYWwgbWVhbmluZyAoZml4ZXMgIzQxMjY0OCkuCgoyMDA3LTA1LTIyIDExOjA5OjQ1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgQWRkIGEgcHJvcGVydHkgZm9yIGJpbnMgdGhhdCBoYW5kbGUgdGhlIHN0YXRlIGNoYW5nZSBvZiB0aGVpciBjaGlsZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksCgkgIChnc3RfYmluX2Rpc3Bvc2UpLCAoZ3N0X2Jpbl9zZXRfcHJvcGVydHkpLCAoZ3N0X2Jpbl9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgQWRkIGEgcHJvcGVydHkgZm9yIGJpbnMgdGhhdCBoYW5kbGUgdGhlIHN0YXRlIGNoYW5nZSBvZiB0aGVpciBjaGlsZHMuCgkgIEZpeGVzICM0MzU4ODAKCjIwMDctMDUtMjIgMTA6MjE6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgYWRkIHF1b3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgcXVvdGUKCjIwMDctMDUtMjIgMDk6NTY6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiBVc2UgYW4gYXJyYXkgb2YgdGhlIGNvcnJlY3QgdHlwZSB3aGVuIHVzaW5nIF9nZXRfdmFsdWVfYXJyYXkgd2l0aCBsaW5lYXIgaW50ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgVXNlIGFuIGFycmF5IG9mIHRoZSBjb3JyZWN0IHR5cGUgd2hlbiB1c2luZyBfZ2V0X3ZhbHVlX2FycmF5IHdpdGgKCSAgbGluZWFyIGludGVycG9sYXRpb24uCgoyMDA3LTA1LTIyIDA2OjM3OjM3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfcmVxdWlyZXNfY2xvY2ssIGdzdF9lbGVtZW50X3Byb3ZpZGVzX2Nsb2NrLCBnc3RfZWxlbWVudF9yZXF1ZXN0X3BhZCwgZ3N0X2VsZW1lbnRfY2xhc3NfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3JlcXVpcmVzX2Nsb2NrLAoJICBnc3RfZWxlbWVudF9wcm92aWRlc19jbG9jaywgZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQsCgkgIGdzdF9lbGVtZW50X2NsYXNzX3NldF9kZXRhaWxzLCBnc3RfZWxlbWVudF9jbGFzc19zZXRfZGV0YWlsc19zaW1wbGUsCgkgIGdzdF9lbGVtZW50X2RlZmF1bHRfc2VuZF9ldmVudCwgZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUsCgkgIGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlLCBnc3RfZWxlbWVudF9zZXRfc3RhdGUsCgkgIGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jLCBpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKToKCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCwgZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbiwKCSAgZ3N0X3BhZF9maXhhdGVfY2FwcywgZ3N0X3BhZF9jb25maWd1cmVfc2luaywgZ3N0X3BhZF9jb25maWd1cmVfc3JjLAoJICBnc3RfcGFkX3F1ZXJ5LCBnc3RfcGFkX3NhdmVfdGh5c2VsZiwgaGFuZGxlX3BhZF9ibG9jaywgZ3N0X3BhZF9wdXNoLAoJICBnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmggKEdTVF9QQURfTElOS19TVUNDRVNTRlVMLCBHU1RfRkxPV19DVVNUT01fU1VDQ0VTUywKCSAgR1NUX0ZMT1dfTk9UX1NVUFBPUlRFRCwgR1NUX0ZMT1dfSVNfRkFUQUwsIEdzdFBhZEFjdGl2YXRlRnVuY3Rpb24sCgkgIEdzdFBhZEFjdGl2YXRlTW9kZUZ1bmN0aW9uLCBHc3RQYWRDaGFpbkZ1bmN0aW9uLAoJICBHc3RQYWRHZXRDYXBzRnVuY3Rpb24sIEdzdFBhZEFjY2VwdENhcHNGdW5jdGlvbiwKCSAgR3N0UGFkRml4YXRlQ2Fwc0Z1bmN0aW9uLCBHc3RQYWRUZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUsCgkgIGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lLCBnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrLAoJICBnc3RfcGlwZWxpbmVfc2V0X2Nsb2NrLCBnc3RfcGlwZWxpbmVfYXV0b19jbG9jaywKCSAgZ3N0X3BpcGVsaW5lX2dldF9kZWxheSk6CgkgIFdoaXRlc3BhY2UgYW5kIGRvY3MgZml4ZXMuCgoyMDA3LTA1LTIxIDIxOjQ4OjA3ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzogQWRkIHN1cHBvcnQgZm9yIHJldHJpZXZpbmcgdmFsdWUgYXJyYXlzIHdoZW4gdXNpbmcgdGhlIHRyaWdnZXIgaW50ZXJwb2xhdGlvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldF9lbnVtX3ZhbHVlX2FycmF5KSwKCSAgKGludGVycG9sYXRlX3RyaWdnZXJfZ2V0X3N0cmluZ192YWx1ZV9hcnJheSk6CgkgIEFkZCBzdXBwb3J0IGZvciByZXRyaWV2aW5nIHZhbHVlIGFycmF5cyB3aGVuIHVzaW5nIHRoZSB0cmlnZ2VyCgkgIGludGVycG9sYXRpb24gbW9kZS4KCjIwMDctMDUtMjEgMjE6MzQ6NDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci4qOiBDbGFyaWZ5IHRoZSBkb2NzIG9mIGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSgpOiBUaGUgYXJyYXkgd2hlcmUgdGhlIHZhbHVlcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVyX2dldF92YWx1ZV9hcnJheSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIENsYXJpZnkgdGhlIGRvY3Mgb2YgZ3N0X2NvbnRyb2xsZXJfZ2V0X3ZhbHVlX2FycmF5KCk6IFRoZSBhcnJheSB3aGVyZQoJICB0aGUgdmFsdWVzIHNob3VsZCBiZSB3cml0dGVuIHRvIG11c3QgYmUgYWxsb2NhdGVkIGFzIHRoZXJlIHNlZW1zIHRvIGJlCgkgIG5vIHdheSB0byBnZXQgdGhlIHNpemUgb2YgYSByYW5kb20gR1R5cGUuIFRoaXMgZG9lc24ndCBjaGFuZ2UgYW55CgkgIGJlaGF2aW91ci4gQWxzbyBmaXggc29tZSB0eXBvcyBhbGwgb3ZlciB0aGUgcGxhY2UgYW5kIHJlbW92ZSBhbiB1bnVzZWQsCgkgIGNvbW1lbnRlZCBmdW5jdGlvbiB0aGF0IGlzIG5vdCBuZWNlc3NhcnkgYXMgZ19vYmplY3Rfc2V0KCkgY291bGQgYmUKCSAgdXNlZCBpbnN0ZWFkLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciBnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkoKS4KCjIwMDctMDUtMjEgMTQ6NTA6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiBEaXNhYmxlIHBhcnQgb2YgdGhlIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MgdGVzdCwgYmVjYXVzZSBpdCBjYW4gaGFwcGlseSBzdWNjZWVkIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRGlzYWJsZSBwYXJ0IG9mIHRoZSBnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jIHRlc3QsIGJlY2F1c2UKCSAgaXQgY2FuIGhhcHBpbHkgc3VjY2VlZCBvbiA2NC1iaXQgc3lzdGVtcyB3aGVyZSB0aGVyZSdzIG1vcmUgYWRkcmVzcwoJICBzcGFjZSBhdmFpbGFibGUuCgoyMDA3LTA1LTIxIDEyOjA1OjU2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IEFkZCB1bml0IHRlc3QgZm9yIHRoZSBpbXByb3ZlZCBjYXBzIGNoZWNraW5nIGZyb20gYnVnICM0MjE1NDMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9wYWRfc3VpdGUpOgoJICBBZGQgdW5pdCB0ZXN0IGZvciB0aGUgaW1wcm92ZWQgY2FwcyBjaGVja2luZyBmcm9tIGJ1ZyAjNDIxNTQzLgoKMjAwNy0wNS0yMSAxMjowNToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDogU21hbGwgYWRkaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgU21hbGwgYWRkaXRpb24uCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9xdWVyeSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoYXBwbHlfc2VnbWVudCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEltcHJvdmUgZG9jcy4KCjIwMDctMDUtMjEgMTI6MDA6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFkZGVkIHNpbXBsZSB2ZXJzaW9uIG9mIGltcHJvdmVkIGNhcHMgY2hlY2tpbmcuIEl0IHdhcyBwcmV2aW91c2x5IGFzc3VtZWQgdGhhdCBhIHNldGNhcHMgZnVuY3Rpb24gd291bGQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksCgkgIChnc3RfcGFkX2FjY2VwdGNhcHNfZGVmYXVsdCksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyk6CgkgIEFkZGVkIHNpbXBsZSB2ZXJzaW9uIG9mIGltcHJvdmVkIGNhcHMgY2hlY2tpbmcuIEl0IHdhcyBwcmV2aW91c2x5CgkgIGFzc3VtZWQgdGhhdCBhIHNldGNhcHMgZnVuY3Rpb24gd291bGQgY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjYXBzIGJ1dAoJICBwZW9wbGUgcHJlZmVyIHVzIHRvIGNoZWNrIGNhcHMgYWdhaW5zdCB0aGUgdGVtcGxhdGUgYXV0b21hdGljYWxseS4KCSAgRml4ZXMgIzQyMTU0My4KCjIwMDctMDUtMjEgMTE6Mjk6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDogRml4IG1hY3JvIGZvciBsb2NraW5nL3VubG9ja2luZyB0aGUgdHJhbnNmb3JtIGxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBGaXggbWFjcm8gZm9yIGxvY2tpbmcvdW5sb2NraW5nIHRoZSB0cmFuc2Zvcm0gbG9jay4KCjIwMDctMDUtMTkgMTM6NTM6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOiBJZ25vcmUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wbHVnaW5zL3RtcGwvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUuCgoyMDA3LTA1LTE4IDE2OjUzOjE4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBIZWxsbywgSSBhbSBNciBUYXltYW5zJyBwZXJzb25hbCBkZWJ1Z2dlci4gVG9kYXkgSSB3aWxsIGludHJvZHVjZSBhIGZpeCBmb3IgdGhlIHN1YnRsZSBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb29wKToKCSAgSGVsbG8sIEkgYW0gTXIgVGF5bWFucycgcGVyc29uYWwgZGVidWdnZXIuIFRvZGF5IEkgd2lsbCBpbnRyb2R1Y2UgYSBmaXgKCSAgZm9yIHRoZSBzdWJ0bGUgYXJ0IG9mIHdhcm5pbmcgYSBwb3RlbnRpYWxseSBibG9ja2luZyB0aHJlYWQgdGhhdCBpdAoJICBzaG91bGQgY2hlY2sgdGhlIHNvdXJjZSBwYWQgcmV0dXJuIHZhbHVlLCBhbmQgcmVsYXkgdGhlIGluZm9ybWF0aW9uCgkgIHVwc3RyZWFtLgoKMjAwNy0wNS0xOCAxMToyMDozMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogUmVsZWFzZSB0aGUgcXVldWUgbG9jayAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIFJlbGVhc2UgdGhlIHF1ZXVlIGxvY2sgIQoKMjAwNy0wNS0xNyAxNzo1NTo0OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkIHRoZSB0d28gbmV3IGNvbnRyb2xsZXIgZnVuY3Rpb25zIHRvIHRoZSBhcHByb3BpYXRlIHBsYWNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkIHRoZSB0d28gbmV3IGNvbnRyb2xsZXIgZnVuY3Rpb25zIHRvIHRoZSBhcHByb3BpYXRlIHBsYWNlcy4KCjIwMDctMDUtMTcgMTc6Mzc6NTggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBBUEk6IGdzdF9jb250cm9sbGVyX3N1Z2dlc3RfbmV4dF9zeW5jKCksIGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVyX3N1Z2dlc3RfbmV4dF9zeW5jKSwgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKSwKCSAgKF9nc3RfY29udHJvbGxlcl9nZXRfcHJvcGVydHkpLCAoX2dzdF9jb250cm9sbGVyX3NldF9wcm9wZXJ0eSksCgkgIChfZ3N0X2NvbnRyb2xsZXJfaW5pdCksIChfZ3N0X2NvbnRyb2xsZXJfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogKGdzdF9vYmplY3Rfc3VnZ2VzdF9uZXh0X3N5bmMpLAoJICAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9yYXRlKSwgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfcmF0ZSk6CgkgIEFQSTogZ3N0X2NvbnRyb2xsZXJfc3VnZ2VzdF9uZXh0X3N5bmMoKSwgZ3N0X29iamVjdF9zdWdnZXN0X25leHRfc3luYygpCgkgIEFkZCBBUEkgdGhhdCBwcm92aWRlcyBzeW5jIHN1Z2dlc3Rpb24gdGltZXN0YW1wcyBmb3IgZWxlbWVudHMgdGhhdAoJICBjYWxsIGdzdF9vYmplY3Rfc3luY192YWx1ZXMoKSBmcm9tIHdoaWNoIHRob3NlIGVsZW1lbnRzIGNhbiBzdWJkaXZpZGUKCSAgdGhlaXIgcHJvY2Vzc2luZyBsb29wIHRvIGdldCB0aGUgYmVzdCByZXN1bHRzIGZvciB0aGUgY29udHJvbGxlZAoJICBwcm9wZXJ0aWVzLiBGb3Igbm93IGl0IGp1c3Qgc3VnZ2VzdHMgbGFzdF9zeW5jICsgY29udHJvbF9yYXRlIGFzCgkgIG5ldyB0aW1lc3RhbXAgYnV0IHRoaXMgd2lsbCBiZSBpbXByb3ZlZCBpbiB0aGUgZnV0dXJlLgoJICBXaGlsZSBkb2luZyB0aGF0IGNoYW5nZSB0aGUgY29udHJvbC1yYXRlIHByb3BlcnR5IHRvIGEgR3N0Q2xvY2tUaW1lCgkgIGZyb20gZ3VpbnQgYW5kIGNoYW5nZSBpdCdzIG1lYW5pbmcgZnJvbSBzYW1wbGVzIHRvIG5hbm9zZWNvbmRzIGFzCgkgIHRoZSBHc3RDb250cm9sbGVyIGRvZXNuJ3Qga25vdyBhbnl0aGluZyBhYm91dCBzYW1wbGluZyByYXRlLiBTdHJpY3RseQoJICBzcGVha2luZyB0aGlzIGJyZWFrcyBBQkkgYnV0IGFzIHRoZSBjb250cm9sLXJhdGUgcHJvcGVydHkgZGlkbid0IGRvCgkgIGFueXRoaW5nIGluIHRoZSBwYXN0IGFuZCBhcyBzdWNoIGNvdWxkbid0IGJlIHVzZWQgdGhpcyBzaG91bGQgYmUgbm8KCSAgcHJvYmxlbS4KCjIwMDctMDUtMTcgMTc6MTY6MDkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBTYXZlIGxhc3Qgc3luY2VkIHZhbHVlIGZyb20gdGhlIGxpc3QgdG8gY29udGludWUgc2VhcmNoaW5nIGZyb20gdGhlcmUgaW4gZnV0dXJlIHN5bmNzLiBUaGlzIHNwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX3Vuc2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX3Vuc2V0X2FsbCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVycHJpdmF0ZS5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZmluZF9jb250cm9sX3BvaW50X25vZGUpOgoJICBTYXZlIGxhc3Qgc3luY2VkIHZhbHVlIGZyb20gdGhlIGxpc3QgdG8gY29udGludWUgc2VhcmNoaW5nIGZyb20gdGhlcmUKCSAgaW4gZnV0dXJlIHN5bmNzLiBUaGlzIHNwZWVkcyBldmVyeXRoaW5nIHVwIGEgYml0LgoKMjAwNy0wNS0xNyAxNzowNTozNiArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci86IEFkZCBhIG5ldyBwcml2YXRlIEdzdENvbnRyb2xQb2ludCBzdHJ1Y3Qgd2hpY2ggImluaGVyaXRzIiBmcm9tCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc2YubmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xfcG9pbnRfY29tcGFyZSksCgkgIChnc3RfY29udHJvbF9wb2ludF9maW5kKSwgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyksCgkgIChnc3RfY29udHJvbF9wb2ludF9mcmVlKSwgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X2ZyZWUpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc2V0KSwgKGdzdF9jb250cm9sbGVyX3NldF9mcm9tX2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLCAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKSwKCSAgKGdzdF9jb250cm9sbGVyX3N5bmNfdmFsdWVzKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9maW5kX2NvbnRyb2xfcG9pbnRfbm9kZSksCgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldCksIChpbnRlcnBvbGF0ZV90cmlnZ2VyX2dldCk6CgkgIEFkZCBhIG5ldyBwcml2YXRlIEdzdENvbnRyb2xQb2ludCBzdHJ1Y3Qgd2hpY2ggImluaGVyaXRzIiBmcm9tCgkgIEdzdFRpbWVkVmFsdWUgdG8gYWxsb3cgZGlmZmVyZW50IGludGVycG9sYXRvcnMgdG8gc3RvcmUgaW50ZXJuYWwKCSAgdmFsdWVzIG5leHQgdG8gZWFjaCBjb250cm9sIHBvaW50LiBGcm9tIHRoZSBvdXRzaWRlIGV2ZXJ5dGhpbmcgaXMKCSAgc3RpbGwgYSBHc3RDb250cm9sUG9pbnQgc28gd2UgZG9uJ3QgbG9vc2UgYmluYXJ5IGNvbXBhdGliaWxpdHkuCgkgIEFsc28gZml4dXAgYWxsIHRoZSBHVmFsdWUgaGFuZGxpbmcgdG8gbm90IGxlYWsgR1ZhbHVlcyBvciBsaXN0IG5vZGVzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBGcmVlIHRoZSBsaXN0IG5vZGVzIGFuZCBHVmFsdWVzIGluIHRoZSBjb250cm9sbGVyX21pc2MgdGVzdC4KCjIwMDctMDUtMTcgMTE6MDU6MjIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBTbWFsbCBkb2MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOgoJICBTbWFsbCBkb2MgZml4LgoKMjAwNy0wNS0xNiAxOTozNTo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYzogSWYgd2UgZmFpbCB0byBsb2FkIGEgcGx1Z2luIGJlY2F1c2Ugb2YgdW5yZXNvbHZlZCBzeW1ib2xzIG9yIG1pc3NpbmcgbGlicmFyaWVzIGFuZCBzcGV3IGEgd2FybmluZyB0by4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIElmIHdlIGZhaWwgdG8gbG9hZCBhIHBsdWdpbiBiZWNhdXNlIG9mIHVucmVzb2x2ZWQgc3ltYm9scyBvciBtaXNzaW5nCgkgIGxpYnJhcmllcyBhbmQgc3BldyBhIHdhcm5pbmcgdG8gc3RkZXJyLCB3ZSBtYXkganVzdCBhcyB3ZWxsIG1lbnRpb24KCSAgd2hpY2ggcGx1Z2luIGl0IHdhcyB0aGF0IGZhaWxlZCB0byBsb2FkLgoKMjAwNy0wNS0xMyAyMDoyODoxNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL01ha2VmaWxlLmFtOiB0aGUgZ3RrLWRvYyBtYWtlZmlsZSBzbmlwcGV0IGNvcnJlY3RseSBoYW5kbGVzIHRoZSBjYXNlIHdoZW4gRU5BQkxFX0dUS19ET0MgaXMgZmFsc2UsIGFuZCBpbnN0YWxscyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbTogdGhlIGd0ay1kb2MgbWFrZWZpbGUgc25pcHBldCBjb3JyZWN0bHkKCSAgaGFuZGxlcyB0aGUgY2FzZSB3aGVuIEVOQUJMRV9HVEtfRE9DIGlzIGZhbHNlLCBhbmQgaW5zdGFsbHMKCSAgdGhlIHByZWJ1aWx0IGRvY3VtZW50YXRpb24uICBTbyBndGstZG9jIHN1YmRpcnMgYXJlCgkgIHVuY29uZGl0aW9uYWxseSBlbmFibGVkLiAgRml4ZXM6ICMzNDkwOTkuCgoyMDA3LTA1LTEzIDIwOjExOjI3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBSZXdvcmQgc29tZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDogUmV3b3JkIHNvbWUgZG9jdW1lbnRhdGlvbi4KCjIwMDctMDUtMTMgMDA6MjA6MzUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBnc3RfcGx1Z2luX3JlZ2lzdGVyX2Z1bmMoKSBkb2Vzbid0IGFjdHVhbGx5IGRvIGFueXRoaW5nIHdpdGggdGhlIHBhc3NlZCAibW9kdWxlIiBwYXJhbWV0ZXIsIHNvIHJlbW92Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogZ3N0X3BsdWdpbl9yZWdpc3Rlcl9mdW5jKCkgZG9lc24ndCBhY3R1YWxseQoJICBkbyBhbnl0aGluZyB3aXRoIHRoZSBwYXNzZWQgIm1vZHVsZSIgcGFyYW1ldGVyLCBzbyByZW1vdmUgaXQuCgkgIEFsbG93cyByZW1vdmFsIG9mIGFkZGl0aW9uYWwgdmVzdGlnYWwgY29kZS4KCjIwMDctMDUtMTMgMDA6MDk6MDAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBVc2luZyBzaWdhY3Rpb24gc2hvdWxkIGRlcGVuZCBvbiBIQVZFX1NJR0FDVElPTiwgbm90IEhBVkVfV0lOMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgVXNpbmcgc2lnYWN0aW9uIHNob3VsZCBkZXBlbmQgb24gSEFWRV9TSUdBQ1RJT04sIG5vdCBIQVZFX1dJTjMyLgoJICBTd2l0Y2ggdG8gdXNpbmcgZ19zdGF0KCkgYmVjYXVzZSBpdCdzIG1vcmUgcG9ydGFibGUuCgoyMDA3LTA1LTEyIDIzOjUzOjA4ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3QuYzogQWRkIEdTVF9ESVNBQkxFX09QVElPTl9QQVJTSU5HLCBpbiBvcmRlciB0byBkaXNhYmxlIG9wdGlvbiBwYXJzaW5nIGZvciBlbWJlZGRlZCBzeXN0ZW1zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIEFkZCBHU1RfRElTQUJMRV9PUFRJT05fUEFSU0lORywgaW4gb3JkZXIgdG8gZGlzYWJsZSBvcHRpb24KCSAgcGFyc2luZyBmb3IgZW1iZWRkZWQgc3lzdGVtcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgQWxsb3cgZ3N0X2VsZW1lbnRfcmVnaXN0ZXIoKSB0byBiZSBjYWxsZWQgd2l0aCBwbHVnaW49PU5VTEwuCgkgIERpZCBub2JvZHkgbm90aWNlIHRoYXQgc3RhdGljIGVsZW1lbnRzIHdlcmUgYnJva2VuPwoKMjAwNy0wNS0xMiAxNTozODowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogR2l2ZSBtb3JlIGludGVyZXN0aW5nIGluZm8gd2hlbiBidWZmZXJpbmcgc3RhcnRzIGFuZCBzdG9wcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIEdpdmUgbW9yZSBpbnRlcmVzdGluZyBpbmZvIHdoZW4gYnVmZmVyaW5nIHN0YXJ0cyBhbmQgc3RvcHMuCgkgIEZpeCBjYXNlIHdoZXJlIGJ1ZmZlcmluZyBzdGFydHMgYnV0IHdlIGZhaWwgdG8gdXBkYXRlIHRoZSBidWZmZXJpbmcgZmxhZwoJICBiZWNhdXNlIHRoZSB0YXJnZXQgc3RhdGUgaXMgbm90IFBMQVlJTkcuCgoyMDA3LTA1LTEyIDE1OjM1OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBSZWZhY3RvciBhbiBjbGVhbnVwIHF1ZXVlIGEgYml0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfZmluYWxpemUpLCAodXBkYXRlX3RpbWVfbGV2ZWwpLCAoYXBwbHlfc2VnbWVudCksCgkgIChhcHBseV9idWZmZXIpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfbG9ja2VkX2VucXVldWUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9kZXF1ZXVlKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkgIFJlZmFjdG9yIGFuIGNsZWFudXAgcXVldWUgYSBiaXQuCgkgIERvIGJldHRlciB0aW1lIGxldmVsIGNhbGN1bGF0aW9ucyB0aGF0IGFsc28gd29yayB3aGVuIHRoZSBzcmNwYWQgaXMgbm90CgkgIHlldCBydW5uaW5nLgoJICBSZW1vdmUgc29tZSB1bm5lZWRlZCBkZWJ1ZyBsaW5lcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAocXVldWVfc3VpdGUpOgoJICBBZGRlZCB0ZXN0Y2FzZSBmb3IgdGltZSBsZXZlbCBtZWFzdXJlbWVudC4KCSAgVHJ5IHRvIG1ha2Ugc29tZSBzdHVmZiBtb3JlIHJhY2VmcmVlLgoKMjAwNy0wNS0xMSAxNDo0NjoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1cmkuYzogRG9uJ3QgbGVhayBwbHVnaW4gZmVhdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSk6CgkgIERvbid0IGxlYWsgcGx1Z2luIGZlYXR1cmUuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHVyaS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3VyaV9zdWl0ZSk6CgkgIEFkZCBicmFpbi1kZWFkIHVuaXQgdGVzdC4KCjIwMDctMDUtMTEgMTQ6Mjg6NTUgKzAwMDAgIEplcm9lbiBXb3V0ZXJzIDx3b3V0ZXJzakBnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXJpLmM6IFRyZWF0IHByb3RvY29sIHN0cmluZ3MgaW4gYSBjYXNlLWluc2Vuc2l0aXZlIHdheSAoIzQzNzU2MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSmVyb2VuIFdvdXRlcnMgPHdvdXRlcnNqIGF0IGdtYWlsIGNvbT4KCSAgKiBnc3QvZ3N0dXJpLmM6IChnc3RfdXJpX2dldF9wcm90b2NvbCksIChzZWFyY2hfYnlfZW50cnkpOgoJICBUcmVhdCBwcm90b2NvbCBzdHJpbmdzIGluIGEgY2FzZS1pbnNlbnNpdGl2ZSB3YXkgKCM0Mzc1NjMpLgoKMjAwNy0wNS0xMSAxMDo1Njo0OCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogRG9uJ3QgcHJpbnQgYSBnX3dhcm5pbmcgZm9yIGFueSBmYWlsdXJlIHRvIGxvYWQgYSBzaGFyZWQgb2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgRG9uJ3QgcHJpbnQgYSBnX3dhcm5pbmcgZm9yIGFueSBmYWlsdXJlIHRvIGxvYWQgYSBzaGFyZWQgb2JqZWN0LgoJICBJbnN0ZWFkLCBwdXNoIHRoaXMgZG93biBpbnRvIGdzdHBsdWdpbi5jLCBhbmQgd2FybiBfb25seV8gaWYgd2UKCSAgZmFpbGVkIHRvIG9wZW4gdGhlIG1vZHVsZSAoaS5lLiBmYWlsdXJlIHRvIGxpbmspLgoJICBBdm9pZHMgd2FybmluZ3Mgb24gbm9ybWFsLCB3b3JraW5nLCBub24tcGx1Z2luIC5zbyBmaWxlcy4KCjIwMDctMDUtMTEgMDg6Mjk6MTAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uYyAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOiBnc3QvZ3N0cmVnaXN0cnkuYyAoR1NUX0NBVF9ERUZBVUxULCBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkLCBnc3Rfci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmMgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoR1NUX0NBVF9ERUZBVUxULAoJICBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmVfbG9ja2VkLCBnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgUHJpbnQgYSBnX3dhcm5pbmcgaWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoZW4gbG9hZGluZyBhIHBsdWdpbnMgZHVyaW5nCgkgIHJlZ2lzdHJ5IHNjYW4uIFRoZSBzaHVsZCBoZWxwIGJlZ2lubmVycyBzdGFydGluZyB3aXRoIGdzdC1wbHVnaW4KCSAgdGVtcGxhdGUuCgoyMDA3LTA1LTEwIDE1OjIxOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS4qOiBCZSBzbWFydGVyIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGN1cnJlbnQgYW1vdW50IG9mIGRhdGEgaW4gdGhlIHF1ZXVlIGJ5IG1lYXN1cmluZyB0aGUgZGlmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwKCSAgKHVwZGF0ZV90aW1lX2xldmVsKSwgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgQmUgc21hcnRlciB3aGVuIGNhbGN1bGF0aW5nIHRoZSBjdXJyZW50IGFtb3VudCBvZiBkYXRhIGluIHRoZSBxdWV1ZSBieQoJICBtZWFzdXJpbmcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBzdGFydCBhbmQgZW5kIHRpbWVzdGFtcHMgKGluIHJ1bm5pbmcKCSAgdGltZSkgaW5zaWRlIHRoZSBxdWV1ZS4gRml4ZXMgIzQzMjg3Ni4KCSAgQVBJOiBHc3RRdWV1ZTo6cHVzaGluZyB0byBub3RpZnkgZWxlbWVudHMgdGhhdCB3ZSBhcmUgcHVzaGluZyBkYXRhIGFnYWluCgkgIHNpbmNlIHRoZSBydW5uaW5nIHNpZ25hbCBpcyByYXRoZXIgYnJva2VuIGZvciB0aGlzIHB1cnBvc2UuCgoyMDA3LTA1LTEwIDEyOjQwOjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmMgKF9kb19pbml0LCBnc3RfcXVldWVfc2lnbmFscywgZ3N0X3F1ZXVlX2Jhc2VfaW5pdCwgZ3N0X3F1ZXVlX2luaXQpOiB1c2UgR1NUX0JPSUxFUlBMQVRFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYyAoX2RvX2luaXQsIGdzdF9xdWV1ZV9zaWduYWxzLAoJICBnc3RfcXVldWVfYmFzZV9pbml0LCBnc3RfcXVldWVfaW5pdCk6CgkgIHVzZSBHU1RfQk9JTEVSUExBVEUKCjIwMDctMDUtMDkgMjE6MDY6MDYgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOiBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgVXNlIGdyYW1tYXIgcHJlLWdlbmVyYXRlZCBmaWxlcy4KCjIwMDctMDUtMDkgMTY6MzI6MDcgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0LzogTWFpbnRhaW4gQVBJIGFuZCBBQkkgd2hlbiAtLWRpc2FibGUtcGFyc2UgaXMgdXNlZC4gTm93IHRoYXQgd2UgaGF2ZSBhbiBhcHByb3ByaWF0ZSBlcnJvciBjb2RlLCB3ZSBjYW4ganVzdCByZXR1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0ICA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2h2KSwgKGdzdF9wYXJzZV9sYXVuY2gpOgoJICAqIGdzdC9nc3RwYXJzZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgTWFpbnRhaW4gQVBJIGFuZCBBQkkgd2hlbiAtLWRpc2FibGUtcGFyc2UgaXMgdXNlZC4gTm93IHRoYXQKCSAgd2UgaGF2ZSBhbiBhcHByb3ByaWF0ZSBlcnJvciBjb2RlLCB3ZSBjYW4ganVzdCByZXR1cm4gTlVMTCBhbmQgdGhlCgkgIGFwcHJvcHJpYXRlIGVycm9yIHdoZW4gZ3N0X3BhcnNlX2xhdW5jaCgpIGlzIHVzZWQgZGVzcGl0ZSBpdCBoYXZpbmcKCSAgYmVlbiBkaXNhYmxlZCAoIzM0MjU2NCkuCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWRpc2FibGVkLmM6CgkgIE1ha2Ugc3VyZSB0aGVzZSBmdW5jdGlvbnMgZXhpc3QgYW5kIHJldHVybiBOVUxMIHBsdXMgYSBHRXJyb3Igd2hlbgoJICAtLWRpc2FibGUtcGFyc2UgaXMgdXNlZC4KCjIwMDctMDUtMDkgMTA6MDE6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9iZW5jaG1hcmtzLzogU2V0IGEgZ29vZCBleGFtcGxlIGFuZCBkb24ndCBsZWFrIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9iZW5jaG1hcmtzL2NvbXBsZXhpdHkuYzogKG1haW4pOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOiAobWFpbik6CgkgIFNldCBhIGdvb2QgZXhhbXBsZSBhbmQgZG9uJ3QgbGVhayBtZXNzYWdlcy4KCjIwMDctMDUtMDYgMTg6Mjc6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBDb3JyZWN0IGZpeHhyZWZzIG9wdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgQ29ycmVjdCBmaXh4cmVmcyBvcHRpb25zLgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYyAoZ3N0X2NhcHNmaWx0ZXJfZGV0YWlscyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmggKF9fR1NUX0NBUFNGSUxURVJfSF9fLAoJICBHU1RfVFlQRV9DQVBTRklMVEVSLCBHU1RfQ0FQU0ZJTFRFUiwgR1NUX0NBUFNGSUxURVJfQ0xBU1MsCgkgIEdTVF9JU19DQVBTRklMVEVSLCBHU1RfSVNfQ0FQU0ZJTFRFUl9DTEFTUywgR3N0Q2Fwc0ZpbHRlciwKCSAgR3N0Q2Fwc0ZpbHRlckNsYXNzLCBfR3N0Q2Fwc0ZpbHRlciwgdHJhbnMsIGZpbHRlcl9jYXBzLAoJICBfR3N0Q2Fwc0ZpbHRlckNsYXNzLCB0cmFuc19jbGFzcyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jIChuYW1lLCByYW5rLCB0eXBlLCBfZWxlbWVudHMpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYwoJICAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF90aW1lc3RhbXAsCgkgIGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KToKCSAgRG9jdW1lbnQgY2Fwc2ZpbHRlciBhbmQgYWRkIGRvYy1ibHVyYiB0byBpZGVudGl0eS4KCjIwMDctMDUtMDQgMTI6Mzc6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyLzogRG9uJ3QgY3Jhc2ggaWYgc29tZW9uZSB0cmllcyB0byBzZXQgYW4gaW50ZXJwb2xhdGlvbiBtb2RlIHRoYXQgaXMgaW52YWxpZCBvciB0aGF0IGlzbid0IHN1cHBvcnQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgRG9uJ3QgY3Jhc2ggaWYgc29tZW9uZSB0cmllcyB0byBzZXQgYW4gaW50ZXJwb2xhdGlvbiBtb2RlIHRoYXQKCSAgaXMgaW52YWxpZCBvciB0aGF0IGlzbid0IHN1cHBvcnRlZCB5ZXQuIEZpeGVzICM0MjIyOTUuCgkgICogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29udHJvbGxlcl9zdWl0ZSk6CgkgIEFkZCBhIHRlc3QgY2FzZSBmb3IgdGhlIGFib3ZlLgoKMjAwNy0wNS0wMyAxNjo0NDozNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBQcm9wZXJseSBzZXQgdGhlIGxhc3Rfc3RvcCBwb3NpdGlvbiBvbiBHc3RTZWdtZW50LiBUaGlzIHdpbGwgb25seSBoYXBwZW4gaWYgdGhlcmUgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgIFByb3Blcmx5IHNldCB0aGUgbGFzdF9zdG9wIHBvc2l0aW9uIG9uIEdzdFNlZ21lbnQuIFRoaXMgd2lsbCBvbmx5IGhhcHBlbgoJICBpZiB0aGVyZSBpcyBhIGJ1ZmZlciB0byBwdXNoIG91dC4KCjIwMDctMDUtMDMgMTQ6NTg6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogYWx3YXlzX2luX3BsYWNlIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgc2luayBhbmQgc291cmNlIGNhcHMgYXJlIHRoZSBzYW1lISBNYWtlIHN1cmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgYWx3YXlzX2luX3BsYWNlIGRvZXMgbm90IG1lYW4gdGhhdCB0aGUgc2luayBhbmQgc291cmNlIGNhcHMgYXJlIHRoZQoJICBzYW1lISBNYWtlIHN1cmUgd2UgZG9uJ3QgYmxpbmRseSBwcm94eSB0aGUgYnVmZmVyX2FsbG9jIGluIHRoaXMgY2FzZS4KCjIwMDctMDUtMDMgMTQ6NTQ6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBUEk6IGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KCkuIEFkZGVkIG1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGVhc2lseSBnZXQgdGhlIGxhdGVuY3kgdmFsdWVzIG9mIHRoZSBiYXNlIHNvdXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBUEk6IGdzdF9iYXNlX3NyY19xdWVyeV9sYXRlbmN5KCkuIEFkZGVkIG1ldGhvZCBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuCgkgIGVhc2lseSBnZXQgdGhlIGxhdGVuY3kgdmFsdWVzIG9mIHRoZSBiYXNlIHNvdXJjZSBjbGFzcy4KCjIwMDctMDUtMDMgMDk6MjQ6NTggKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9pbXBsZW1lbnRhdGlvbl9pbmZvKTogUmVtb3ZlIDAuOCBjcnVmdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYyAocHJpbnRfaW1wbGVtZW50YXRpb25faW5mbyk6CgkgIFJlbW92ZSAwLjggY3J1ZnQuCgoyMDA3LTA1LTAyIDE3OjA5OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBEb24ndCBjcmVhdGUgYSBjdXN0b21pc2VkIG1hbiBwYWdlIGJhc2VkIG9uIHRoZSBob3N0IGFyY2hpdGVjdHVyZSwgZGVzY3JpYmUgdGhlIGRlZmF1bHQgcmVnaXN0cnkgcGF0aCBnZW5lcmljLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgRG9uJ3QgY3JlYXRlIGEgY3VzdG9taXNlZCBtYW4gcGFnZSBiYXNlZCBvbiB0aGUgaG9zdCBhcmNoaXRlY3R1cmUsCgkgIGRlc2NyaWJlIHRoZSBkZWZhdWx0IHJlZ2lzdHJ5IHBhdGggZ2VuZXJpY2FsbHkuIFRoYXQgd2F5IHRoZSBtYW4KCSAgcGFnZSBpcyB0aGUgc2FtZSBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgYW5kIHBhY2thZ2VycyBoYXZlIG9uZQoJICBtdWx0aWxpYiBpc3N1ZSBsZXNzIHRvIGRlYWwgd2l0aC4gRml4ZXMgIzQzNDkyNi4KCjIwMDctMDUtMDIgMTU6MTQ6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCBkb2N1bWVudGF0aW9uIGFzIHNwb3R0ZWQgYnkgcmcgb24gSVJDLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCBkb2N1bWVudGF0aW9uIGFzIHNwb3R0ZWQgYnkgcmcgb24gSVJDLgoKMjAwNy0wNC0yOSAxNzozNjoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEltcHJvdmUgZG9jcyBmb3IgZ3N0X2VsZW1lbnRfe2xpbmssdW5saW5rfS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIEltcHJvdmUgZG9jcyBmb3IgZ3N0X2VsZW1lbnRfe2xpbmssdW5saW5rfS4KCjIwMDctMDQtMjkgMTQ6MDQ6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL1JFQURNRToKCSAgdXBkYXRlIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIFJFQURNRQoKMjAwNy0wNC0yOCAxMToyOTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFR5cG8gZml4ZXM7IG1pbm9yIGRvY3MgYWRkaXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogZ3N0L2dzdHVyaS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgVHlwbyBmaXhlczsgbWlub3IgZG9jcyBhZGRpdGlvbi4KCjIwMDctMDQtMjcgMDg6MzA6NTkgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIEFQSTogQWRkIGdzdF91cmlfcHJvdG9jb2xfaXNfc3VwcG9ydGVkKCksIHdoaWNoIGNoZWNrcyBpZiBhbiBzaW5rIG9yIHNyYyB0aGF0IHN1cHBvcnRzIGEgZ2l2ZW4gVVJJIHByb3RvY29sIGV4aXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXJpLmM6IChnZXRfZWxlbWVudF9mYWN0b3JpZXNfZnJvbV91cmlfcHJvdG9jb2wpLAoJICAoZ3N0X3VyaV9wcm90b2NvbF9pc19zdXBwb3J0ZWQpLCAoZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSk6CgkgICogZ3N0L2dzdHVyaS5oOgoJICBBUEk6IEFkZCBnc3RfdXJpX3Byb3RvY29sX2lzX3N1cHBvcnRlZCgpLCB3aGljaCBjaGVja3MgaWYgYW4gc2luawoJICBvciBzcmMgdGhhdCBzdXBwb3J0cyBhIGdpdmVuIFVSSSBwcm90b2NvbCBleGlzdHMuCgoyMDA3LTA0LTI3IDA3OjM0OjEwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogU2V0IHRoZSBsb2NhdGlvbiB0byBOVUxMIGlmICJmaWxlOi8vIiBpcyBzZXQgYXMgVVJJLiBPdGhlcndpc2Ugc29tZSByYW5kb20gcHJldmlvdXMgVVJJIHdvdWxkIHN0aWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBTZXQgdGhlIGxvY2F0aW9uIHRvIE5VTEwgaWYgImZpbGU6Ly8iIGlzIHNldCBhcyBVUkkuIE90aGVyd2lzZQoJICBzb21lIHJhbmRvbSBwcmV2aW91cyBVUkkgd291bGQgc3RpbGwgYmUgc2V0IGlmICJmaWxlOi8vIiBpcwoJICBzZXQgb24gYW4gYWxyZWFkeSB1c2VkIGZpbGVzaW5rL2ZpbGVzcmMuCgoyMDA3LTA0LTI3IDA3OjI3OjM2ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogU3BlY2lhbCBjYXNlIHRoZSAiZmlsZTovLyIgVVJJIGFzIGFzIHRoaXMgaXMgdXNlZCBieSBzb21lIGFwcGxpY2F0aW9ucyB0byB0ZXN0IHdpdGggZ3N0X2VsZW1lbnRfbWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua191cmlfc2V0X3VyaSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfdXJpX3NldF91cmkpOgoJICBTcGVjaWFsIGNhc2UgdGhlICJmaWxlOi8vIiBVUkkgYXMgYXMgdGhpcyBpcyB1c2VkIGJ5IHNvbWUKCSAgYXBwbGljYXRpb25zIHRvIHRlc3Qgd2l0aCBnc3RfZWxlbWVudF9tYWtlX2Zyb21fdXJpIGlmIHRoZXJlJ3MKCSAgYW4gZWxlbWVudCB0aGF0IHN1cHBvcnRzIHRoZSBVUkkgcHJvdG9jb2wuCgkgIEFsc28gbW92ZSB0aGUgZ19wYXRoX2lzX2Fic29sdXRlKCkgY2hlY2sgZm9yIHRoZSBsb2NhdGlvbiBwYXJ0CgkgIG9mIHRoZSBVUkkgdG8gYWxzbyBjaGVjayB0aGlzIGZvciAiZmlsZTovL2xvY2FsaG9zdC9ibGEiIFVSSXMuCgoyMDA3LTA0LTI2IDEwOjAwOjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X2J1ZmZlcl90cnlfbmV3X2FuZF9hbGxvYygpIHBsdXMgdW5pdCB0ZXN0ICgjNDMxOTQwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX3RyeV9uZXdfYW5kX2FsbG9jKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2J1ZmZlcl9zdWl0ZSk6CgkgIEFQSTogYWRkIGdzdF9idWZmZXJfdHJ5X25ld19hbmRfYWxsb2MoKSBwbHVzIHVuaXQgdGVzdCAoIzQzMTk0MCkuCgoyMDA3LTA0LTI2IDA3OjMyOjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogSW1wbGVtZW50IG5vLW1tYXAgYWx0ZXJuYXRpdmUgZm9yIHJlZ2lzdHJ5IHJlYWRpbmcuIERvIGNvZGUgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgSW1wbGVtZW50IG5vLW1tYXAgYWx0ZXJuYXRpdmUgZm9yIHJlZ2lzdHJ5IHJlYWRpbmcuIERvIGNvZGUgY2xlYW51cHMuCgkgIEFkZCBtb3JlIGNvbW1lbnRzIGFib3V0IGF2b2lkaW5nIHN0cmR1cHMgZm9yIGFsbCB0ZXh0IGRhdGEuIENvbW1lbnRzCgkgIHdlbGNvbWUuCgoyMDA3LTA0LTI1IDEyOjMwOjI3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaCAoR3N0QmluYXJ5UGx1Z2luRWxlbWVudCwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmggKEdzdEJpbmFyeVBsdWdpbkVsZW1lbnQsCgkgIEdzdEJpbmFyeVBsdWdpbkZlYXR1cmUsIF9Hc3RCaW5hcnlFbGVtZW50RmFjdG9yeSwgcGx1Z2luX2ZlYXR1cmUsCgkgIEdzdEJpbmFyeUVsZW1lbnRGYWN0b3J5LCBfR3N0QmluYXJ5VHlwZUZpbmRGYWN0b3J5LCBwbHVnaW5fZmVhdHVyZSk6CgkgIENvbW1lbnQgc3RydWN0cyBhbmQgcmVmb3JtYXQgdG8gZml4IHRoZSBidWlsZCAodGhhdCBzdHVmZiBzaG91bGQgZ28KCSAgaW50byBhIHByaXYuIGhlYWRlcikuCgoyMDA3LTA0LTI1IDExOjQ0OjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuKjogUmVmYWN0b3Igc28gdGhhdCB3ZSBjYW4gaW1wbGVtZW50IG11bHRpcGxlIGZlYXR1cmVzLiBBZGQgc3VwcG9ydCBmb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgIFJlZmFjdG9yIHNvIHRoYXQgd2UgY2FuIGltcGxlbWVudCBtdWx0aXBsZSBmZWF0dXJlcy4gQWRkIHN1cHBvcnQgZm9yCgkgIFR5cGVGaW5kRmFjdG9yeSBmZWF0dXJlcy4KCjIwMDctMDQtMjQgMDY6MTQ6MzUgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8UGV0ZXIuS2plbGxlcnN0ZWR0QGF4aXMuY29tPgoKCSAgY29uZmlndXJlLmFjOiBGaXggQU1fQ09ORElUSU9OQUwoR1NUX0RJU0FCTEVfR1NUX0RFQlVHLC4uLikgYW5kIHVwZGF0ZSBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8UGV0ZXIuS2plbGxlcnN0ZWR0QGF4aXMuY29tPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgRml4IEFNX0NPTkRJVElPTkFMKEdTVF9ESVNBQkxFX0dTVF9ERUJVRywuLi4pIGFuZCB1cGRhdGUgY29tbWVudC4KCjIwMDctMDQtMjMgMDc6MzA6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogRml4IGJ1aWxkIHdpdGggLS1nc3QtZGlzYWJsZS1nc3QtZGVidWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9iaW5fY29udGludWVfZnVuYyksCgkgIChiaW5faGFuZGxlX2FzeW5jX2RvbmUpLCAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgRml4IGJ1aWxkIHdpdGggLS1nc3QtZGlzYWJsZS1nc3QtZGVidWcKCjIwMDctMDQtMjEgMTM6Mjc6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBzdXJlIHN0cmVhbWluZyBoYXMgZmluaXNoZWQgYmVmb3JlIGNhbGxpbmcgdGhlIDo6c3RvcCgpIHZmdW5jLCBzaW5jZSB0aGF0IHZmdW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpOgoJICBNYWtlIHN1cmUgc3RyZWFtaW5nIGhhcyBmaW5pc2hlZCBiZWZvcmUgY2FsbGluZyB0aGUgOjpzdG9wKCkgdmZ1bmMsCgkgIHNpbmNlIHRoYXQgdmZ1bmMgbWlnaHQgY2xlYXIgc3RhdGUgd2hpY2ggaXMgYmVpbmcgdXNlZCBpbiB0aGUKCSAgc3RyZWFtaW5nIHRocmVhZC4gVGhpcyBmaXhlcyBhIHJhY2UgdGhhdCBjYXVzZWQgY3Jhc2hlcyBpbgoJICBhdWRpb3Jlc2FtcGxlIHdoZW4gc2h1dHRpbmcgZG93biBhIHBpcGVsaW5lICgjNDIwMTA2KS4KCjIwMDctMDQtMjAgMDg6NTM6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IFRoYXQgd2FzIG9uZSBieXRlIG1pc3NpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFRoYXQgd2FzIG9uZSBieXRlIG1pc3NpbmcuCgoyMDA3LTA0LTIwIDA4OjM5OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICAybmQgYXR0ZW1wdCB0byBoYXZlIGEgeG1sLWxlc3MgYnVpbGQgYXMgYSBqb2luZWQgZWZmb3J0IG9mICM0MTMxMjMgYW5kICM0MjE0ODAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwKCSAgKGdzdF9zaWduYWxfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgMm5kIGF0dGVtcHQgdG8gaGF2ZSBhIHhtbC1sZXNzIGJ1aWxkIGFzIGEgam9pbmVkIGVmZm9ydCBvZiAjNDEzMTIzCgkgIGFuZCAjNDIxNDgwLgoKMjAwNy0wNC0yMCAwODoyMToxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtdGFncmVhZGluZy50eHQ6IEFkZGVkIG9wZW4gaXNzdWVzL3Rob3VnaHRzIHRvIGRyYWZ0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC10YWdyZWFkaW5nLnR4dDoKCSAgQWRkZWQgb3BlbiBpc3N1ZXMvdGhvdWdodHMgdG8gZHJhZnQuCgoyMDA3LTA0LTE5IDE0OjMyOjQ5ICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvcGFyc2UvOiBVcGRhdGUgdGhlIHByZWJ1aWxkIHBhcnNlciBzb3VyY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIudGFiLnByZS5oOgoJICAqIGdzdC9wYXJzZS9sZXguX2dzdF9wYXJzZV95eS5wcmUuYzoKCSAgVXBkYXRlIHRoZSBwcmVidWlsZCBwYXJzZXIgc291cmNlcy4KCjIwMDctMDQtMTkgMTQ6MjM6MjUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogQW5kIG5vdyBmaXggdGhlIGJ1aWxkaW5nIG9mIHRoZSBmbGV4IHNvdXJjZXMuIE5vdyBldmVyeXRoaW5nIHNob3VsZCB3b3JrIGFzIGV4cGVjdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIEFuZCBub3cgZml4IHRoZSBidWlsZGluZyBvZiB0aGUgZmxleCBzb3VyY2VzLiBOb3cgZXZlcnl0aGluZyBzaG91bGQKCSAgd29yayBhcyBleHBlY3RlZC4KCjIwMDctMDQtMTkgMTQ6MDY6NTIgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogTm93IGhvcGVmdWxseSBmaXggdGhlIGJ1aWxkIGZhaWx1cmVzIGJ5IHNldHRpbmcgcHJvcGVyIHJ1bGUgZGVwZW5kZW5jaWVzIGFuZCBtb3ZpbmcgaW5zdGVhZCBvZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgIE5vdyBob3BlZnVsbHkgZml4IHRoZSBidWlsZCBmYWlsdXJlcyBieSBzZXR0aW5nIHByb3BlciBydWxlCgkgIGRlcGVuZGVuY2llcyBhbmQgbW92aW5nIGluc3RlYWQgb2YgY29weWluZy4KCjIwMDctMDQtMTkgMTA6NDM6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2JlbmNobWFya3MvOiBUb3RhbCBsaWNlbnNpZmljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5nbnVwbG90OgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5zY206CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmdudXBsb3Q6CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLnNjbToKCSAgVG90YWwgbGljZW5zaWZpY2F0aW9uLgoKMjAwNy0wNC0xOSAxMDoyMjoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBGaXggdGhlIGJ1aWxkIGJ5IGNvcnJlY3RpbmcgdGhlIHJ1bGUgdGhhdCBnYXZlIHdyb25nIGZpbGVzIHRvIGZsZXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgRml4IHRoZSBidWlsZCBieSBjb3JyZWN0aW5nIHRoZSBydWxlIHRoYXQgZ2F2ZSB3cm9uZyBmaWxlcyB0byBmbGV4LgoKMjAwNy0wNC0xOSAwODo0MDozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvYmVuY2htYXJrcy86IENoYW5nZSBsaWNlbmNlIHRvIExHUEwgYXMgZ3JhbnRlZCBieSBCZW5qYW1pbiBhbmQgQW5keS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9jb21wbGV4aXR5LmM6CgkgICogdGVzdHMvYmVuY2htYXJrcy9tYXNzLWVsZW1lbnRzLmM6CgkgIENoYW5nZSBsaWNlbmNlIHRvIExHUEwgYXMgZ3JhbnRlZCBieSBCZW5qYW1pbiBhbmQgQW5keS4KCjIwMDctMDQtMTkgMDY6MTg6MjQgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogQWRkIGNvcnJlY3QgZ3JhbW1hci50YWIuaCBkZXBlbmRlbmN5IGlmIGNvbXBpbGluZyB3aXRob3V0IG5ldyBlbm91Z2ggZmxleC4gRml4ZXMgIzQzMTE1MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBBZGQgY29ycmVjdCBncmFtbWFyLnRhYi5oIGRlcGVuZGVuY3kgaWYgY29tcGlsaW5nIHdpdGhvdXQgbmV3IGVub3VnaAoJICBmbGV4LiBGaXhlcyAjNDMxMTUwLgoKMjAwNy0wNC0xOCAxMzozNDo0OCArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L3BhcnNlL01ha2VmaWxlLmFtOiBGaXggdHlwbyBhbmQgdXNlIG91dGRhdGVkIHNvdXJjZXMgaWYgdGhlIGZsZXgvYmlzb24gc291cmNlcyBhcmUgbmV3ZXIgdGhhbiB0aGUgcHJlZ2VuZXJhdGVkIG9uLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgRml4IHR5cG8gYW5kIHVzZSBvdXRkYXRlZCBzb3VyY2VzIGlmIHRoZSBmbGV4L2Jpc29uIHNvdXJjZXMgYXJlIG5ld2VyCgkgIHRoYW4gdGhlIHByZWdlbmVyYXRlZCBvbmVzIGJ1dCBmbGV4IGlzIHRvbyBvbGQuIFByaW50IGEgd2FybmluZyBpbgoJICB0aGF0IGNhc2UuIFRoaXMgc2hvdWxkIGZpeCB0aGUgYnVpbGQgb24gdGhlIGJ1aWxkIGJvdC4KCjIwMDctMDQtMTggMTI6MzQ6NTEgKzAwMDAgIE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KCgkgIGdzdC9wYXJzZS86IE1ha2UgdGhlIHBhcnNlciByZWVudHJhbnQgYW5kIHJlY3Vyc2l2ZWx5IGNhbGxhYmxlLiBUaGlzIHJlcXVpcmVzIGZsZXggPj0gMi41LjMxLCBmb3Igb2xkZXIgdmVyc2lvbnMgcHJlZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUgZG90IGx1cmVhdSBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBNYWtlIHRoZSBwYXJzZXIgcmVlbnRyYW50IGFuZCByZWN1cnNpdmVseSBjYWxsYWJsZS4gVGhpcyByZXF1aXJlcyBmbGV4CgkgID49IDIuNS4zMSwgZm9yIG9sZGVyIHZlcnNpb25zIHByZWdlbmVyYXRlZCBzb3VyY2VzIGFyZSB1c2VkIGFzIHdlCgkgIGNhbid0IGJ1bXAgdGhlIGJ1aWxkIGRlcGVuZGVuY3kuIEZpbmFsbHkgZml4ZXMgIzM0OTE4MC4KCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoJICBEcm9wIHRoZSBIQVZFX01UX1NBVkVfRkxFWCAjaWZkZWZzIGFzIHdlIGFsd2F5cyB1c2UgYSBuZXcgZW5vdWdoIGZsZXgKCSAgbm93IGFueXdheS4KCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci50YWIucHJlLmM6IChfX2dzdF9wYXJzZV9zdHJkdXApLAoJICAoX19nc3RfcGFyc2Vfc3RyZnJlZSksIChfX2dzdF9wYXJzZV9saW5rX25ldyksCgkgIChfX2dzdF9wYXJzZV9saW5rX2ZyZWUpLCAoX19nc3RfcGFyc2VfY2hhaW5fbmV3KSwKCSAgKF9fZ3N0X3BhcnNlX2NoYWluX2ZyZWUpLCAoU0VUX0VSUk9SKSwgKFlZUFJJTlRGKSwKCSAgKGdzdF9wYXJzZV9lbGVtZW50X3NldCksIChnc3RfcGFyc2VfZnJlZV9saW5rKSwKCSAgKGdzdF9wYXJzZV9mb3VuZF9wYWQpLCAoZ3N0X3BhcnNlX3BlcmZvcm1fZGVsYXllZF9saW5rKSwKCSAgKGdzdF9wYXJzZV9wZXJmb3JtX2xpbmspLCAoeXl0bmFtZXJyKSwgKHl5c3ludGF4X2Vycm9yKSwgKHl5ZXJyb3IpLAoJICAoX2dzdF9wYXJzZV9sYXVuY2gpOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnRhYi5wcmUuaDoKCSAgKiBnc3QvcGFyc2UvbGV4Ll9nc3RfcGFyc2VfeXkucHJlLmM6IChQUklOVCksICh5eV9nZXRfbmV4dF9idWZmZXIpLAoJICAoeXlfZ2V0X3ByZXZpb3VzX3N0YXRlKSwgKHl5X3RyeV9OVUxfdHJhbnMpLCAoaW5wdXQpLAoJICAoX2dzdF9wYXJzZV95eXJlc3RhcnQpLCAoX2dzdF9wYXJzZV95eV9zd2l0Y2hfdG9fYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXlfbG9hZF9idWZmZXJfc3RhdGUpLCAoX2dzdF9wYXJzZV95eV9jcmVhdGVfYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXlfZGVsZXRlX2J1ZmZlciksIChfZ3N0X3BhcnNlX3l5X2luaXRfYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXlfZmx1c2hfYnVmZmVyKSwgKF9nc3RfcGFyc2VfeXlwdXNoX2J1ZmZlcl9zdGF0ZSksCgkgIChfZ3N0X3BhcnNlX3l5cG9wX2J1ZmZlcl9zdGF0ZSksCgkgIChfZ3N0X3BhcnNlX3l5ZW5zdXJlX2J1ZmZlcl9zdGFjayksIChfZ3N0X3BhcnNlX3l5X3NjYW5fYnVmZmVyKSwKCSAgKF9nc3RfcGFyc2VfeXlfc2Nhbl9zdHJpbmcpLCAoX2dzdF9wYXJzZV95eV9zY2FuX2J5dGVzKSwKCSAgKHl5X2ZhdGFsX2Vycm9yKSwgKF9nc3RfcGFyc2VfeXlnZXRfZXh0cmEpLAoJICAoX2dzdF9wYXJzZV95eWdldF9saW5lbm8pLCAoX2dzdF9wYXJzZV95eWdldF9jb2x1bW4pLAoJICAoX2dzdF9wYXJzZV95eWdldF9pbiksIChfZ3N0X3BhcnNlX3l5Z2V0X291dCksCgkgIChfZ3N0X3BhcnNlX3l5Z2V0X2xlbmcpLCAoX2dzdF9wYXJzZV95eWdldF90ZXh0KSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfZXh0cmEpLCAoX2dzdF9wYXJzZV95eXNldF9saW5lbm8pLAoJICAoX2dzdF9wYXJzZV95eXNldF9jb2x1bW4pLCAoX2dzdF9wYXJzZV95eXNldF9pbiksCgkgIChfZ3N0X3BhcnNlX3l5c2V0X291dCksIChfZ3N0X3BhcnNlX3l5Z2V0X2RlYnVnKSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfZGVidWcpLCAoX2dzdF9wYXJzZV95eWdldF9sdmFsKSwKCSAgKF9nc3RfcGFyc2VfeXlzZXRfbHZhbCksIChfZ3N0X3BhcnNlX3l5bGV4X2luaXQpLAoJICAoeXlfaW5pdF9nbG9iYWxzKSwgKF9nc3RfcGFyc2VfeXlsZXhfZGVzdHJveSksICh5eV9mbGV4X3N0cm5jcHkpLAoJICAoeXlfZmxleF9zdHJsZW4pLCAoX2dzdF9wYXJzZV95eWFsbG9jKSwgKF9nc3RfcGFyc2VfeXlyZWFsbG9jKSwKCSAgKF9nc3RfcGFyc2VfeXlmcmVlKToKCSAgSWYgdGhlIGluc3RhbGxlZCBmbGV4IHZlcnNpb24gaXMgdG9vIG9sZCB1c2UgcHJlLWdlbmVyYXRlZCBwYXJzZXIKCSAgc291cmNlcy4gVGhlc2UgcHJlLWdlbmVyYXRlZCBwYXJzZXIgc291cmNlcyBhcmUgYWx3YXlzIHVwZGF0ZWQgd2hlbgoJICB0aGUgYWN0dWFsIGZsZXgvYmlzb24gc291cmNlcyBjaGFuZ2UgYnV0IHJlcXVpcmUgZXZlcnlib2R5IHdobyB3YW50cwoJICB0byBjaGFuZ2Ugc29tZXRoaW5nIGluIHRoZSBwYXJzZXIgdG8gaGF2ZSBmbGV4ID49IDIuNS4zMSBpbnN0YWxsZWQuCgoyMDA3LTA0LTE4IDEwOjU4OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNYWtlIC0tZGlzYWJsZS1ubHMgdG8gd29yawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vbTQvZ3N0LWdldHRleHQubTQ6CgkgICogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBNYWtlIC0tZGlzYWJsZS1ubHMgdG8gd29yawoKMjAwNy0wNC0xNyAxNjoxMjo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3Rjb25maWcuaC5pbjogUmV2ZXJ0IHByZXZpb3VzIGNoYW5nZSB0aGF0IGJyb2tlIHRoZSBidWlsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIHRoYXQgYnJva2UgdGhlIGJ1aWxkLgoKMjAwNy0wNC0xNyAxNDozNjozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIE1BTlBBVEggZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNQU5QQVRIIGZpeAoKMjAwNy0wNC0xNyAxMDo0Njo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgRHJvcCBsaWJ4bWwyIGRlcGVuZGVuY3kgd2hlbiBidWlsZGluZyB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBEcm9wIGxpYnhtbDIgZGVwZW5kZW5jeSB3aGVuIGJ1aWxkaW5nIHdpdGgKCSAgLS1lbmFibGUtYmluYXJ5LXJlZ2lzdHJ5IC0tZGlzYWJsZS1sb2Fkc2F2ZQoKMjAwNy0wNC0xNiAyMTo0MTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3RyZWFtZXIuZG9hcDoKCSAgZml4IHRoZSByZWxlYXNlIGRhdGUgaW4gdGhlIGRvYXAgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHRoZSByZWxlYXNlIGRhdGUgaW4gdGhlIGRvYXAgZmlsZQoKMjAwNy0wNC0xNiAxOTo0NTozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiBSZW1vdmUgdW5uZWNlc3NhcnkgPHN5cy9tbWFuLmg+IGluY2x1ZGUgd2hpY2ggYnJva2UgdGhlIHdpbjMyIGJ1aWxkIHdpdGggTWluZ1c7IG1vdmUgaW5jbHVkZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogKGdzdF9yZWdpc3RyeV9iaW5hcnlfd3JpdGVfY2FjaGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9yZWFkX2NhY2hlKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuaDoKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IDxzeXMvbW1hbi5oPiBpbmNsdWRlIHdoaWNoIGJyb2tlIHRoZSB3aW4zMiBidWlsZAoJICB3aXRoIE1pbmdXOyBtb3ZlIGluY2x1ZGVzIGZyb20gaGVhZGVyIGZpbGUgdG8gLmMgZmlsZSwgZXZlbiBpZiB0aGUKCSAgaGVhZGVyIGZpbGUgaXNuJ3QgaW5zdGFsbGVkOyB1c2UgZ19zdHJlcnJvcigpIHdoZXJlIFVURi04IHN0cmluZ3MKCSAgYXJlIGV4cGVjdGVkLCBzdWNoIGFzIGluIEdTVF9ERUJVRyBtZXNzYWdlcy4KCjIwMDctMDQtMTMgMTU6MTU6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogUmVtb3ZlIGJvZ3VzIGFkZGl0aW9uIGZvciBBUEkgSSBkaWRuJ3QgZW5kIHVwIGtlZXBpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIFJlbW92ZSBib2d1cyBhZGRpdGlvbiBmb3IgQVBJIEkgZGlkbid0IGVuZCB1cCBrZWVwaW5nLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBNZW50aW9uIFNpbmNlOiAwLjEwLjEzIGluIHRoZSBkb2N1bWVudGF0aW9uLgoJICBBZGQgdGhlIEFQSSBrZXl3b3JkIHRvIHRoZSBwcmV2aW91cyBDaGFuZ2VMb2cgZW50cnkuCgoyMDA3LTA0LTEzIDE0OjE4OjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEFsbG93IGJhc2VzcmMgZGVyaXZlZCBjbGFzc2VzIHRvIGV4ZWN1dGUgc2Vla3MgaW4gb3RoZXIgZm9ybWF0cyBieSBwcm92aWRpbmcgYSBwcmVwYXJlX3NlZWtfc2VnbWVudCB2bWV0aG9kLiBTdWItY2xhcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcHJlcGFyZV9zZWVrX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3ByZXBhcmVfc2Vla19zZWdtZW50KSwgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBBbGxvdyBiYXNlc3JjIGRlcml2ZWQgY2xhc3NlcyB0byBleGVjdXRlIHNlZWtzIGluIG90aGVyIGZvcm1hdHMKCSAgYnkgcHJvdmlkaW5nIGEgcHJlcGFyZV9zZWVrX3NlZ21lbnQgdm1ldGhvZC4gU3ViLWNsYXNzZXMgY2FuIGNob29zZQoJICB0byBwcmVwYXJlIHRoZSBHc3RTZWdtZW50IGluIGFueSBmb3JtYXQgdGhhdCB0aGVpciBwZXJmb3JtX3NlZWsgbWV0aG9kCgkgIHdpbGwgYmUgYWJsZSB0byB1bmRlcnN0YW5kLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBwcm92aWRlcyB0aGUKCSAgb2xkIGJlaGF2aW91ciBvZiBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgdGhlIHNlZWsgb2Zmc2V0cyB0byB0aGUKCSAgY29uZmlndXJlZCBuYXRpdmUgZm9ybWF0LgoKMjAwNy0wNC0xMyAxMTo1MzowMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBEb24ndCBvdXRwdXQgdGhlIHNhbWUgZGVidWcgc3RhdGVtZW50IHR3aWNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpOgoJICBEb24ndCBvdXRwdXQgdGhlIHNhbWUgZGVidWcgc3RhdGVtZW50IHR3aWNlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfdHJ5X3RvX21lcmdlX3VwKSwKCSAgKGdzdF9hZGFwdGVyX3BlZWspLCAoZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIpOgoJICBPcHRpbWlzZSB0aGUgY2FzZSB3aGVyZSB3ZSBoYXZlIGJ1ZmZlcnMgYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlIHRoYXQKCSAgY2FuIGJlIGpvaW5lZCBxdWlja2x5IChiZWNhdXNlIHRoZXkncmUgY29udGlndW91cyBzdWItYnVmZmVycykgYnkKCSAgbWVyZ2luZyB0aGVtIHRvZ2V0aGVyIHJhdGhlciB0aGFuIGNvcHlpbmcgZGF0YSBvdXQgaW50byBuZXcgbWVtb3J5LgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOgoJICBGaXggYSBsZWFrIGluIGFuIGVycm9yIHBhdGggZm9yIHBhcnNlX2xhdW5jaCwgYW5kIGFkZCBhIGNoZWNrCgkgIGZvciBpdCB0byB0aGUgdGVzdHN1aXRlLgoKMjAwNy0wNC0xMyAxMToyMDo0OCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRG9uJ3QgZGVhZGxvY2sgd2hlbiByZWxlYXNpbmcgYSBwYWQgLSBnc3RfcGFkX3NldF9hY3RpdmUgbWF5IHRyeSBhbmQgdGFrZSB0aGUgbXVsdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfcmVsZWFzZV9wYWQpOgoJICBEb24ndCBkZWFkbG9jayB3aGVuIHJlbGVhc2luZyBhIHBhZCAtIGdzdF9wYWRfc2V0X2FjdGl2ZSBtYXkgdHJ5CgkgIGFuZCB0YWtlIHRoZSBtdWx0aXF1ZXVlIGxvY2sgdG9vLgoKMjAwNy0wNC0xMiAxMjo1OTo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci4qOiBBUEk6IGFkZCBHU1RfQ09SRV9FUlJPUl9ESVNBQkxFRCAoIzM5MjgwNCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9jb3JlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgQVBJOiBhZGQgR1NUX0NPUkVfRVJST1JfRElTQUJMRUQgKCMzOTI4MDQpLgoKMjAwNy0wNC0xMiAxMDozMjozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGRvbid0IGdldCBlbXB0eSBwYXRocyBvbiB0aGUgUEFUSCB2YXJpYWJsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBkb24ndCBnZXQgZW1wdHkgcGF0aHMgb24gdGhlIFBBVEggdmFyaWFibGVzCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2lzX2FjdGl2ZSwgZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6CgkgIERvbid0IGZvcm1hdCBmb3IgdGhlIHVuY29tbW9uIHRlcm1pbmFsIHdpZHRoIG9mIDg0IGNoYXJhY3RlcnMuCgoyMDA3LTA0LTA5IDExOjU5OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYmFjayB0byBoZWFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGhlYWQKCjIwMDctMDQtMDkgMDg6MTc6MTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5jOgoJICBkb24ndCBmb3JtYXQgZm9yIHRoZSB1bmNvbW1vbiBlZGl0b3Igd2lkdGggb2YgODQgY2hhcmFjdGVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZm9ybWF0IGZvciB0aGUgdW5jb21tb24gZWRpdG9yIHdpZHRoIG9mIDg0IGNoYXJhY3RlcnMKCjIwMDctMDQtMDYgMTE6NDg6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogT25seSB0cnkgdG8gc2VsZWN0IGEgZGlmZmVyZW50IHBpcGVsaW5lIGNsb2NrIHdoZW4gd2Ugd2VudCBiYWNrIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAocmVzZXRfc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6CgkgIE9ubHkgdHJ5IHRvIHNlbGVjdCBhIGRpZmZlcmVudCBwaXBlbGluZSBjbG9jayB3aGVuIHdlIHdlbnQgYmFjayB0bwoJICBQQVVTRUQgYW5kIG5vdCB3aGVuIHdlIG1lcmVseSBnb3QgZmx1c2hlZC4KCjIwMDctMDQtMDUgMTY6MTc6MjQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogZnJhY3Rpb25zIGFyZSBiZXR0ZXIgc3VwcG9ydGVkIGluIGdzdHJlYW1lciB0aGFuIHJhY3Rpb25zLCBzbyBzdWdnZXN0IHVzaW5nIHRob3NlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGZyYWN0aW9ucyBhcmUgYmV0dGVyIHN1cHBvcnRlZCBpbiBnc3RyZWFtZXIgdGhhbiByYWN0aW9ucywgc28KCSAgc3VnZ2VzdCB1c2luZyB0aG9zZS4KCjIwMDctMDQtMDUgMTM6NDk6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vbmwucG86CgkgIHVwZGF0ZSBkdXRjaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGR1dGNoCgoyMDA3LTA0LTA1IDEzOjQ2OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvLzogQWRkZWQgRGFuaXNoIHRyYW5zbGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU3VibWl0dGVkIGJ5OiBNb2dlbnMgSmFlZ2VyIDxtb2dlbnNAamFlZ2VyLnRmPgoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vZGEucG86CgkgIEFkZGVkIERhbmlzaCB0cmFuc2xhdGlvbi4KCjIwMDctMDQtMDUgMTE6MTY6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZpeCBsZWFrIGNhdXNlZCB3aGVuIHJlZnVzaW5nIG5ld3NlZ21lbnQgYWZ0ZXIgRU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KToKCSAgRml4IGxlYWsgY2F1c2VkIHdoZW4gcmVmdXNpbmcgbmV3c2VnbWVudCBhZnRlciBFT1MuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfaW5pdCksIChnc3RfZmFrZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmFrZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfZmFrZV9zaW5rX3ByZXJvbGwpLAoJICAoZ3N0X2Zha2Vfc2lua19yZW5kZXIpLCAoZ3N0X2Zha2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgQWRkIG51bS1idWZmZXJzIHByb3BlcnR5IHRvIG1ha2UgdGhlIGVsZW1lbnQgZ2VuZXJhdGUgRU9TIGFmdGVyIGEKCSAgY29uZmlndXJhYmxlIGFtb3VudCBvZiBidWZmZXJzLgoJICBBUEk6IGZha2VzaW5rOjpudW0tYnVmZmVycyBwcm9wZXJ0eS4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpOgoJICBGaXggR3N0QnVzIGxlYWsgaW4gdGVzdC4KCSAgVGVzdCBmb3IgZmFrZXNpbmsgbnVtLWJ1ZmZlcnMuCgoyMDA3LTA0LTA1IDEwOjEwOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBhY2NlcHQgYW55dGhpbmcgYWZ0ZXIgYW4gRU9TLCByZXR1cm4gVU5FWFBFQ1RFRCBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIChnc3RfYmFzZV9zaW5rX3F1ZXVlX29iamVjdF91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgYWNjZXB0IGFueXRoaW5nIGFmdGVyIGFuIEVPUywgcmV0dXJuIFVORVhQRUNURUQgaW5zdGVhZC4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZmFrZXNpbmtfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIG5ldyBFT1MgYmVoYXZpb3VyLgoKMjAwNy0wNC0wNSAxMDowODoyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IE1ha2UgcGFkdGVtcGxhdGVzIGFsc28gd29yayB3aGVuIHRoZXkgZG9uJ3QgY29udGFpbiAlcyBvciAlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCk6CgkgIE1ha2UgcGFkdGVtcGxhdGVzIGFsc28gd29yayB3aGVuIHRoZXkgZG9uJ3QgY29udGFpbiAlcyBvciAlZC4KCjIwMDctMDQtMDUgMTA6MDY6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBJbXByb3ZlIF9hZGp1c3RfdW5sb2NrZWQoKSBzbyB0aGF0IGl0IG92ZXJmbG93cyBsZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCksCgkgIChnc3RfY2xvY2tfdW5hZGp1c3RfdW5sb2NrZWQpLCAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEltcHJvdmUgX2FkanVzdF91bmxvY2tlZCgpIHNvIHRoYXQgaXQgb3ZlcmZsb3dzIGxlc3MuCgkgIEFkZCBnc3RfY2xvY2tfdW5hZGp1c3RfdW5sb2NrZWQgdG8gY29udmVydCBmcm9tIGV4dGVybmFsIHRpbWUgdG8KCSAgaW50ZXJuYWwgdGltZSBiYXNlZCBvbiBjYWxpYnJhdGlvbi4KCSAgQWRkIHNvbWUgbW9yZSBkZWJ1Zy4KCSAgQVBJOiBHc3RDbG9jazo6Z3N0X2Nsb2NrX3VuYWRqdXN0X3VubG9ja2VkKCkKCjIwMDctMDQtMDMgMTE6MDI6NDEgKzAwMDAgIFRvbW1pIE15w7Zow6RuZW4gPGV4dC10b21taS5teW9oYW5lbkBub2tpYS5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRGVhY3RpdmF0ZSBwYWRzIGFuZCBmcmVlIEdzdFNpbmdsZVF1ZXVlIHdpdGggZ3N0X3NpbmdsZV9xdWV1ZV9mcmVlKCkgd2hlbiByZWxlYXNpbmcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBUb21taSBNecO2aMOkbmVuIDxleHQtdG9tbWkgZG90IG15b2hhbmVuIGF0IG5va2lhIGRvdCBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfcmVsZWFzZV9wYWQpOgoJICBEZWFjdGl2YXRlIHBhZHMgYW5kIGZyZWUgR3N0U2luZ2xlUXVldWUgd2l0aCBnc3Rfc2luZ2xlX3F1ZXVlX2ZyZWUoKQoJICB3aGVuIHJlbGVhc2luZyBzaW5rIHBhZC4gRml4ZXMgIzQyNTQwMC4KCjIwMDctMDQtMDIgMTQ6NDg6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvZHlubGluay50eHQ6IE1vcmUgd29yayBvbiBwcm9wb3NhbCBmb3IgbmV3IGNvcmUgYXBpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OgoJICBNb3JlIHdvcmsgb24gcHJvcG9zYWwgZm9yIG5ldyBjb3JlIGFwaS4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBBUEk6IEdTVF9CQVNFX1RSQU5TRk9STV9MT0NLL1VOTE9DSyBhZGRlZAoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAob25fb2JqZWN0X2NvbnRyb2xsZWRfcHJvcGVydHlfY2hhbmdlZCksCgkgIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyksCgkgIChnc3RfY29udHJvbGxlcl9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgTGVzcyB2ZXJib3NlIGxvZ2dpbmcgYWRkIGRvY3MgZm9yIHVuaW1wbGVtZW50ZWQgcGFydHMgYW5kIGNvcnJlY3RseQoJICByZXR1cm4gd2hlbiB1c2luZyB1bmF2YWlsYWJsZSBwYXJ0cy4KCjIwMDctMDMtMjkgMTY6MDQ6NDUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IE1vdmUgYWxsIHRoZSBkZWJ1ZyB0byB0aGUgQ0xPQ0sgY2F0ZWdvcnksIGFuZCBhc3NvY2lhdGUgaXQgd2l0aCB0aGUgY2xvY2sgb2JqZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKToKCSAgTW92ZSBhbGwgdGhlIGRlYnVnIHRvIHRoZSBDTE9DSyBjYXRlZ29yeSwgYW5kIGFzc29jaWF0ZSBpdCB3aXRoCgkgIHRoZSBjbG9jayBvYmplY3QuCgoyMDA3LTAzLTI5IDE1OjUzOjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBNYWtlIHRha2VfYnVmZmVyIGEgYml0IHF1aWNrZXIgYnkgcmVtb3ZpbmcgcmVkdW5kYW50IGNoZWNrcyBjYXVzZWQgYnkgY2FsbGluZyBnc3RfYWRhcHRlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKToKCSAgTWFrZSB0YWtlX2J1ZmZlciBhIGJpdCBxdWlja2VyIGJ5IHJlbW92aW5nIHJlZHVuZGFudCBjaGVja3MKCSAgY2F1c2VkIGJ5IGNhbGxpbmcgZ3N0X2FkYXB0ZXJfdGFrZS4KCjIwMDctMDMtMjggMTg6Mzg6MTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRG9uJ3QgbGVhayBHQ29uZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3Rfc2luZ2xlX3F1ZXVlX2ZyZWUpOgoJICBEb24ndCBsZWFrIEdDb25kLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvbXVsdGlxdWV1ZS5jOiAoc2V0dXBfbXVsdGlxdWV1ZSksCgkgIChHU1RfU1RBUlRfVEVTVCksIChtdWx0aXF1ZXVlX3N1aXRlKToKCSAgQWRkIHNvbWUgZGVhZCBzaW1wbGUgdW5pdCB0ZXN0cyBmb3IgdGhlICdtdWx0aXF1ZXVlJyBlbGVtZW50CgkgIChzb21lIGJpdHMgZG9uJ3Qgd29yayB5ZXQgYW5kIGFyZSBkaXNhYmxlZCBmb3Igbm93KS4KCjIwMDctMDMtMjggMTg6MjU6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBNYWtlIGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCgpIGNyZWF0ZSByZXF1ZXN0IHBhZHMgb25seSBmb3IgcmVxdWVzdCBwYWQgdGVtcGxhdGVzIGFuZCBub3QgZm9yLCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCksCgkgIChnc3RfZWxlbWVudF9jbGFzc19nZXRfcmVxdWVzdF9wYWRfdGVtcGxhdGUpOgoJICBNYWtlIGdzdF9lbGVtZW50X2dldF9yZXF1ZXN0X3BhZCgpIGNyZWF0ZSByZXF1ZXN0IHBhZHMgb25seSBmb3IKCSAgcmVxdWVzdCBwYWQgdGVtcGxhdGVzIGFuZCBub3QgZm9yLCBzYXksIHNvbWV0aW1lcyBwYWQgdGVtcGxhdGVzLgoKMjAwNy0wMy0yOCAxMzo0NDo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBBZGQgZXhhbXBsZSB0aGF0IG5lZWRzIG1vcmUgdGhpbmtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgQWRkIGV4YW1wbGUgdGhhdCBuZWVkcyBtb3JlIHRoaW5raW5nLgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIE1vcmUgdGhvdWdodHMgYWJvdXQgd3RyYXBwZXIgcGx1Z2lucy4KCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2VtYmVkZGVkLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIE1vcmUgZGVzaWduIHdvcmsuCgoyMDA3LTAzLTI1IDE1OjMzOjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE9ubHkgcHVzaCB0aGUgc2VnbWVudCBldmVudHMgaW4gdGhlIFBMQVlJTkcgc3RhdGUgZm9yIGxpdmUgc291cmNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgT25seSBwdXNoIHRoZSBzZWdtZW50IGV2ZW50cyBpbiB0aGUgUExBWUlORyBzdGF0ZSBmb3IgbGl2ZSBzb3VyY2VzLgoKMjAwNy0wMy0yMyAxNzo1MjoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogTW9kaWZ5IHRoZSBjbG9jayBkaXN0cmlidXRpb24gcGF0aCBpbiBQQVVTRUQtPlBMQVlJTkcgc28gdGhhdCB3ZSBuZXZlciBhdHRlbXB0IHRvIGNob29zZSBhIG5ldyBjbG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgTW9kaWZ5IHRoZSBjbG9jayBkaXN0cmlidXRpb24gcGF0aCBpbiBQQVVTRUQtPlBMQVlJTkcgc28gdGhhdCB3ZQoJICBuZXZlciBhdHRlbXB0IHRvIGNob29zZSBhIG5ldyBjbG9jayB1bmxlc3Mgd2UncmUgYWN0dWFsbHkgbGVhdmluZwoJICB0aGUgUEFVU0VEIHN0YXRlIGZvciB0aGUgZmlyc3QgdGltZS4gVGhpcyBwcmV2ZW50cyBjaG9vc2luZyBhCgkgIGRpZmZlcmVudCBjbG9jayB3aGVuIHRoZSBzdGF0ZV9jaGFuZ2UgZ2V0cyBjYWxsZWQgZm9yIGEgMm5kIHRpbWUgZHVlCgkgIHRvIHNvbWUgZWxlbWVudCBkb2luZyBhbiBhc3luYyBzdGF0ZSBjaGFuZ2UuCgoyMDA3LTAzLTIyIDE4OjI4OjAwICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IFJldmVydCBsYXN0IGNvbW1pdC4gVGhpcyBuZWVkcyBzb21lIG1vcmUgdGhvdWdodHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9jb25maWd1cmVfc2luayksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zcmMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX3B1c2gpOgoJICBSZXZlcnQgbGFzdCBjb21taXQuIFRoaXMgbmVlZHMgc29tZSBtb3JlIHRob3VnaHRzLgoKMjAwNy0wMy0yMiAxNzoxMjoyMyArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBDaGVjayBpbiBzZXRfY2FwcyBpZiB0aGUgY2FwcyBhcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBwYWQgYW5kIHJlbW92ZSB0d28gZnVuY3Rpb25zIHRoYXQgYXJlIHJlZHVuZGFudCBuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9hbGxvY19idWZmZXJfZnVsbCksCgkgIChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX3B1c2gpOgoJICBDaGVjayBpbiBzZXRfY2FwcyBpZiB0aGUgY2FwcyBhcmUgY29tcGF0aWJsZSB3aXRoIHRoZSBwYWQgYW5kIHJlbW92ZQoJICB0d28gZnVuY3Rpb25zIHRoYXQgYXJlIHJlZHVuZGFudCBub3cuIEZpeGVzICM0MjE1NDMuCgoyMDA3LTAzLTIyIDEyOjMxOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IFVucmVmIHNvbWUgbW9yZSB0byBtYWtlIHZhbGdyaW5kIGhhcHB5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKG1peGVkX3RocmVhZCksIChtaXhlZF9hc3luY19jYiksIChnc3Rfc3lzdGVtY2xvY2tfc3VpdGUpOgoJICBVbnJlZiBzb21lIG1vcmUgdG8gbWFrZSB2YWxncmluZCBoYXBweS4KCjIwMDctMDMtMjIgMTE6NTg6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogRml4IGFub3lpbmcgcmVncmVzc2lvbiB0aGF0IHN1cnZpdmVkIGEgZmV3IHJlbGVhc2VzLiBXaGVuIGFkZGluZyBhbiBhc3luYyBlbnRyeSB3aGlsZSBibG9ja2luZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyX3VubG9ja2VkKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9qaXR0ZXIpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfdW5zY2hlZHVsZSk6CgkgIEZpeCBhbm95aW5nIHJlZ3Jlc3Npb24gdGhhdCBzdXJ2aXZlZCBhIGZldyByZWxlYXNlcy4gV2hlbiBhZGRpbmcgYW4KCSAgYXN5bmMgZW50cnkgd2hpbGUgYmxvY2tpbmcgb24gYSBzeW5jIGVudHJ5LCB0aGUgc3luYyBlbnRyeSB3aWxsIHVuYmxvY2sKCSAgYnV0IHN0aWxsIGJlIGJ1c3ksIHNvIGl0IHNob3VsZCBjb250aW51ZSB0byB3YWl0IGluc3RlYWQgb2YgcmV0dXJuaW5nCgkgIF9CVVNZIHRvIHRoZSBhcHAuCgkgIEFkZCBzb21lIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAobWl4ZWRfdGhyZWFkKSwKCSAgKG1peGVkX2FzeW5jX2NiKSwgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9zeXN0ZW1jbG9ja19zdWl0ZSk6CgkgIEFkZCB0ZXN0Y2FzZSBmb3IgdGhpcy4KCjIwMDctMDMtMjIgMTE6MTk6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSGFuZGxlIGVycm9ycyBmcm9tIHRoZSBjbG9jayBzeW5jIGJldHRlciwgb25seSBVTlNDSEVEVUxFRCBpbmRpY2F0ZXMgYQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBIYW5kbGUgZXJyb3JzIGZyb20gdGhlIGNsb2NrIHN5bmMgYmV0dGVyLCBvbmx5IFVOU0NIRURVTEVEIGluZGljYXRlcyBhCgkgIFdST05HX1NUQVRFIGFuZCBjYW4gc2lsZW50bHkgcGF1c2UgdGhlIHRhc2suIEFsbCBvdGhlciBjYXNlcyBzaG91bGQKCSAgZXJyb3Igb3V0LgoKMjAwNy0wMy0yMiAwODoyMzo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHBvc3NpYmxlIGRlYWRsb2NrIGlmIHBhZCBldmVudGZ1bmMgaXMgbm90IHNwZWNpZmllZC4gIEZpeGVzICM0MjExNzcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogPHN5cmphbGEgYXQgc2NpIGRvdCBmaT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIEZpeCBwb3NzaWJsZSBkZWFkbG9jayBpZiBwYWQgZXZlbnRmdW5jIGlzIG5vdCBzcGVjaWZpZWQuICBGaXhlcyAjNDIxMTc3LgoJICBJbXByb3ZlIGRlYnVnZ2luZy4KCjIwMDctMDMtMjEgMTg6MTM6NDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogRml4IHNvbWUgZXJyb3JzIGluIHRoZSB0eXBlZmluZGluZyBkb2NzIHBvaW50ZWQgb3V0IG9uIGlyYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBGaXggc29tZSBlcnJvcnMgaW4gdGhlIHR5cGVmaW5kaW5nIGRvY3MgcG9pbnRlZCBvdXQgb24gaXJjLgoKMjAwNy0wMy0yMSAxNzo1MDo0NiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQ2xhcmlmeSBGSVhNRSBjb21tZW50IGluIHRoZSBmYWNlIG9mIGhhdmluZyBhZGRlZCB1bmxvY2tfc3RvcCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICBDbGFyaWZ5IEZJWE1FIGNvbW1lbnQgaW4gdGhlIGZhY2Ugb2YgaGF2aW5nIGFkZGVkIHVubG9ja19zdG9wKCkKCjIwMDctMDMtMjEgMTE6NTI6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFByZXBhcmUgZm9yIHJlbGVhc2Ugd2hlcmUgd2Ugd2FybiBhZ2FpbnN0IHBvc3NpYmxlIGFwcCBicmVha2FnZSBpbiB0aGUgY2FzZSBvZiBsaXZlIHBpcGVsaW5lcyBhbG9uZyB3aXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgUHJlcGFyZSBmb3IgcmVsZWFzZSB3aGVyZSB3ZSB3YXJuIGFnYWluc3QgcG9zc2libGUgYXBwIGJyZWFrYWdlIGluIHRoZQoJICBjYXNlIG9mIGxpdmUgcGlwZWxpbmVzIGFsb25nIHdpdGggYW4gZW52IHZhciB0byBlbmFibGUvZGlzYWJsZSBsaXZlCgkgIHByZXJvbGwgbW9kZSAoR1NUX0NPTVBBVD1bbm8tXWxpdmUtcHJlcm9sbCkuCgoyMDA3LTAzLTIwIDE0OjI1OjE1ICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChnc3RfaWRlbnRpdHlfY2hlY2tfaW1wZXJmZWN0X29mZnNldCk6IFNvIHdlIHNob3VsZCB1c2UgY29ycmVjdCBjb25zdGFudHMgZm9yIGNoZWNraW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAoZ3N0X2lkZW50aXR5X2NoZWNrX2ltcGVyZmVjdF9vZmZzZXQpOgoJICBTbyB3ZSBzaG91bGQgdXNlIGNvcnJlY3QgY29uc3RhbnRzIGZvciBjaGVja2luZyBmb3IgTm9uZSBvZmZzZXQuCgoyMDA3LTAzLTIwIDE0OjE3OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6IE1lbnRpb24gdGhlIGZhY3QgdGhhdCB0aGUgbmV3bHkgc3dpdGNoZWQgZWxlbWVudCBzaG91bGQgYmUgc2V0IHRvIGF0IGxlYXN0IFBBVVNFRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIE1lbnRpb24gdGhlIGZhY3QgdGhhdCB0aGUgbmV3bHkgc3dpdGNoZWQgZWxlbWVudCBzaG91bGQgYmUgc2V0IHRvIGF0CgkgIGxlYXN0IFBBVVNFRC4KCjIwMDctMDMtMjAgMTA6MjM6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0LmM6IEZpeCBjb21waWxhdGlvbiB3aXRoIHJlZ2lzdHJ5IGRpc2FibGVkIGFzIHNwb3R0ZWQgYnkgU2F1ci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBGaXggY29tcGlsYXRpb24gd2l0aCByZWdpc3RyeSBkaXNhYmxlZCBhcyBzcG90dGVkIGJ5IFNhdXIuCgoyMDA3LTAzLTIwIDA5OjQ2OjExICswMDAwICBPbGl2aWVyIENyZXRlIDx0ZXN0ZXJAdGVzdGVyLmNhPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogTG9vayBhdCB0aGUgcGVuZGluZyBzdGF0ZSB0b28gd2hlbiBzeW5jaW5nIHRoZSBlbGVtZW50IHN0YXRlIHRvIHRoZSBwYXJlbnQuIEZpeGVzICM0MjAxMzMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogT2xpdmllciBDcmV0ZSA8dGVzdGVyIGF0IHRlc3RlciBkb3QgY2E+CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3N5bmNfc3RhdGVfd2l0aF9wYXJlbnQpOgoJICBMb29rIGF0IHRoZSBwZW5kaW5nIHN0YXRlIHRvbyB3aGVuIHN5bmNpbmcgdGhlIGVsZW1lbnQgc3RhdGUgdG8gdGhlCgkgIHBhcmVudC4gRml4ZXMgIzQyMDEzMy4KCjIwMDctMDMtMTkgMTU6MDE6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS86IEFkZCA6OnVubG9ja19zdG9wIHRvIGJhc2VzcmMgYW5kIGJhc2VzaW5rLiBUaGlzIGFsbG93cyBhbiBvcHBvcnR1bml0eSBmb3Igc3ViLWNsYXNzZXMgdG8gY29ycmVjdGx5IGNsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2V2ZW50KSwgKGdzdF9iYXNlX3NyY191bmxvY2tfc3RvcCksCgkgIChnc3RfYmFzZV9zcmNfZGVhY3RpdmF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEFkZCA6OnVubG9ja19zdG9wIHRvIGJhc2VzcmMgYW5kIGJhc2VzaW5rLiBUaGlzIGFsbG93cyBhbiBvcHBvcnR1bml0eQoJICBmb3Igc3ViLWNsYXNzZXMgdG8gY29ycmVjdGx5IGNsZWFyIGFueSBzdGF0ZSB0aGV5IHNldCB0cnlpbmcgdG8KCSAgdW5sb2NrLCBzdWNoIGFzIGNsZWFyaW5nIG91dCB1bmxvY2sgY29tbWFuZHMgZnJvbSBhIGNvbW1hbmQgZmQuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfcmVuZGVyKSwgKGdzdF9mZF9zaW5rX3VubG9jayksCgkgIChnc3RfZmRfc2lua191bmxvY2tfc3RvcCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZF9zcmNfaW5pdCksIChnc3RfZmRfc3JjX3VubG9jayksIChnc3RfZmRfc3JjX3VubG9ja19zdG9wKSwKCSAgKGdzdF9mZF9zcmNfY3JlYXRlKSwgKGdzdF9mZF9zcmNfZ2V0X3NpemUpLCAoZ3N0X2ZkX3NyY19kb19zZWVrKToKCSAgSW1wbGVtZW50IHVubG9ja19zdG9wIGluIGZkc3JjIGFuZCBmZHNpbmsuCgkgIEltcGxlbWVudCBzZWVraW5nIGluIGZkc3JjIHdoZW4gYSBzZWVrYWJsZSBmZCBpcyBwYXNzZWQsIGFzIGluCgkgIGdzdC1sYXVuY2gtMC4xMCBmZHNyYyAhIC4uLiAhIHh2aW1hZ2VzaW5rIDwgL3BhdGgvdG8vZmlsZQoKMjAwNy0wMy0xOSAxMjowNzozMiArMDAwMCAgRXZhbiBOZW1lcnNvbiA8ZXZhbkBjb2V1cy5kYXNoLmdyb3VwLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEZpeCBwYWQtYWRkZWQgYW5kIHBhZC1yZW1vdmVkIHNpZ25hbCBzaWduYXR1cmVzIHNvIHRoYXQgdGhlIHBhZCB0eXBlIGlzIHN0YXRlZCBhcyBHU1RfVFlQRV9QQUQgaW5zdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEV2YW4gTmVtZXJzb24gPGV2YW4gYXQgY29ldXMgZGFzaCBncm91cCBkb3QgY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KToKCSAgRml4IHBhZC1hZGRlZCBhbmQgcGFkLXJlbW92ZWQgc2lnbmFsIHNpZ25hdHVyZXMgc28gdGhhdCB0aGUgcGFkIHR5cGUgaXMKCSAgc3RhdGVkIGFzIEdTVF9UWVBFX1BBRCBpbnN0ZWFkIG9mIEdfVFlQRV9PQkpFQ1QuIEZpeGVzICM0MTk4NTEuCgoyMDA3LTAzLTE5IDEwOjQ3OjU2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBlbGVtZW50IGZpZWxkIGFuZCBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBuZXcgZWxlbWVudCBmaWVsZCBhbmQgbWV0aG9kLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLCAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9jb250aW51ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChiaW5fcHVzaF9zdGF0ZV9jb250aW51ZSksIChiaW5faGFuZGxlX2FzeW5jX3N0YXJ0KSwKCSAgKGJpbl9oYW5kbGVfYXN5bmNfZG9uZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBNYWtlIGFzeW5jIHN0YXRlIGNoYW5nZXMgYSBiaXQgc21hcnRlciBieSB1c2luZyBuZXcgQVNZTkNfU1RBUlQgYW5kCgkgIEFTWU5DX0RPTkUgbWVzc2FnZXMuIFRoaXMgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHdlIHJ1biB0aGUgc3RhdGUKCSAgcmVjYWxjdWxhdGlvbiB0aHJlYWQuCgkgIERvbid0IGNoYW5nZSBzdGF0ZSBvZiBlbGVtZW50IHdpdGggYSBwZW5kaW5nIEFTWU5DX1NUQVJUIG1lc3NhZ2UuCgkgIERlcHJlY2F0ZSBTVEFURV9ESVJUWSBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaW5pdCksIChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBLZWVwIHRoZSBzdGF0ZSB0aGF0IHdhcyBsYXN0IHNldCBieSB0aGUgYXBwIGluIGEgbmV3IGVsZW1lbnQgZmllbGQuCgkgIERvbid0IGFsbG93IHN0YXRlIGNoYW5nZXMgd2hlbiBoYW5kbGluZyBhbiBlbGVtZW50IGV2ZW50LgoJICBQb3N0IEFTWU5DX1NUQVJUIGFuZCBBU1lOQ19ET05FIG1lc3NhZ2VzLgoJICBDaGFuZ2UgbG9zdF9zdGF0ZSBzbyB0aGF0IHdlIGdvIHRvIFBBVVNFRCBhbmQgd2FpdCBmb3IgdGhlIHBhcmVudCB0byBzZXQKCSAgdXMgdG8gUExBWUlORyBhZ2FpbiAoc28gbGF0ZW5jeSBjYWxjdWxhdGlvbiBjYW4gYmUgcGVyZm9ybWVkKQoJICBFeHBvcnQgZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKCkgbWV0aG9kIHNvIHRoYXQgc3ViY2xhc3NlcyBjYW4gdXNlIGl0LgoJICBBUEk6IGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSgpCgkgIEFQSTogR1NUX1NUQVRFX1RBUkdFVAoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAocmVzZXRfc3RyZWFtX3RpbWUpLCAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfaGFuZGxlX21lc3NhZ2UpLCAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOgoJICBVc2luZyB0aGUgbmV3IEFTWU5DX1NUQVJUIG1lc3NhZ2Ugd2UgY2FuIHJlc2V0IHRoZSBiYXNlX3RpbWUgd2hlbgoJICBuZWVkZWQuIFRoaXMgY2FuIHRoZW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgYmFzZV90aW1lIHJlZGlzdHJpYnV0aW9uIGluCgkgIGZsdXNoaW5nIHNlZWtzIHNvIHRoYXQgd2UgY2FuIHJlbW92ZSB0aGUgZXhwbGljaXQgc2VlayBoYW5kbGluZy4KCSAgUGVyZm9ybSBsYXRlbmN5IHF1ZXJ5IGFuZCBjb25maWd1cmF0aW9uIHdoZW4gZ29pbmcgdG8gUExBWUlORy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgUG9zdCBuZXcgQVNZTkNfU1RBUlQvQVNZTkNfRE9ORSBtZXNzYWdlcy4KCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCB0ZXN0IGJlY2F1c2UgdGhlIGJpbiB3aWxsIG5vdCBzZXQgdGhlIGFzeW5jIGVsZW1lbnQgdG8gUExBWUlORyByaWdodAoJICBhd2F5LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKHBvcF9hc3luY19kb25lKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSB0aGUgbWVzc2FnZSBjaGVjayBhIGxpdHRsZSBzdHJvbmdlci4KCSAgSGFuZGxlIEFTWU5DIG1lc3NhZ2VzLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRXhwZWN0IEFTWU5DX0RPTkUgbWVzc2FnZXMuCgoyMDA3LTAzLTE5IDA5OjU1OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIEFTWU5DX1NUQVJUIGFuZCBBU1lOQ19ET05FIG1lc3NhZ2VzIHRvIHByZXBhcmUgZm9yIGxhdGVuY3kgc3VwcG9ydC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2FzeW5jX3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19hc3luY19kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2luZm8pLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYXN5bmNfc3RhcnQpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZCBBU1lOQ19TVEFSVCBhbmQgQVNZTkNfRE9ORSBtZXNzYWdlcyB0byBwcmVwYXJlIGZvciBsYXRlbmN5CgkgIHN1cHBvcnQuCgoyMDA3LTAzLTE1IDIyOjMzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZGVzaWduL3BhcnQtc3luY2hyb25pc2F0aW9uLnR4dDoKCSAgdHlwb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHR5cG9zCgoyMDA3LTAzLTE1IDEyOjM3OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogTm93IHRoYXQgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZSAnQ29kZWMnIGtleXdvcmQgYW55IGxvbmdlciBpbiB0aGUga2xhc3MsIHdlIHNob3VsZG4ndCBzcGV3IGEgd2FyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mb19jb2RlY3MpOgoJICBOb3cgdGhhdCB3ZSBkb24ndCBjaGVjayBmb3IgdGhlICdDb2RlYycga2V5d29yZCBhbnkgbG9uZ2VyIGluIHRoZQoJICBrbGFzcywgd2Ugc2hvdWxkbid0IHNwZXcgYSB3YXJuaW5nIGlmIHRoZSBrbGFzcyBpc24ndCBhIGRlY29kZXIgb3IKCSAgZW5jb2RlciAoc2luY2UgaXQgbWlnaHQgYmUgYSBTb3VyY2UvTmV0d29yaywgZm9yIGV4YW1wbGUpLgoKMjAwNy0wMy0xNCAxNzoyNDoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IERvbid0IHJlcXVpcmUgZGVjb2Rlci9kZW11eGVyL2RlcGF5bG9hZGVyIGVsZW1lbnRzIG9yIGVuY29kZXIvbXV4ZXIvcGF5bGFkZXIgZWxlbWVudHMgdG8gaGF2ZSAnQy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm9fY29kZWNzKToKCSAgRG9uJ3QgcmVxdWlyZSBkZWNvZGVyL2RlbXV4ZXIvZGVwYXlsb2FkZXIgZWxlbWVudHMgb3IKCSAgZW5jb2Rlci9tdXhlci9wYXlsYWRlciBlbGVtZW50cyB0byBoYXZlICdDb2RlYycgYXMgcGFydCBvZiB0aGVpcgoJICBmYWN0b3J5IGNsYXNzIHN0cmluZyB3aGVuIGludHJvc3BlY3RpbmcgYSBwbHVnaW4ncyBjYXBhYmlsaXRpZXMuCgkgIGRyYWZ0LWtsYXNzLnR4dCBtZW50aW9ucyB0aGF0IGl0IG1pZ2h0IGJlIHJlbW92ZWQgaW4gZnV0dXJlLCBhbmQKCSAgZmx1bXAzZGVjIGRvZXNuJ3QgaGF2ZSBpdCBhcyBwYXJ0IG9mIGl0cyBjbGFzcyBzdHJpbmcsIHNvIGNoYW5jZXMKCSAgYXJlIG90aGVycyBtaWdodCBhbHNvIG5vdCBoYXZlIGl0LgoKMjAwNy0wMy0xNCAxNTo0MjowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9pMThuOgoJICB1cGRhdGUgaTE4biBkb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBpMThuIGRvYwoKMjAwNy0wMy0xNCAxNToxNzowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIHJlZm9ybWF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWZvcm1hdAoKMjAwNy0wMy0xNCAxNToxNTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwby86IFVwZGF0ZSB0cmFuc2xhdGlvbnMgZnJvbSB0cmFuc2xhdGlvbiBwcm9qZWN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBvL2FmLnBvOgoJICAqIHBvL2F6LnBvOgoJICAqIHBvL2JnLnBvOgoJICAqIHBvL2NhLnBvOgoJICAqIHBvL2NzLnBvOgoJICAqIHBvL2RlLnBvOgoJICAqIHBvL2VuX0dCLnBvOgoJICAqIHBvL2ZyLnBvOgoJICAqIHBvL2l0LnBvOgoJICAqIHBvL25iLnBvOgoJICAqIHBvL25sLnBvOgoJICAqIHBvL3J1LnBvOgoJICAqIHBvL3NxLnBvOgoJICAqIHBvL3NyLnBvOgoJICAqIHBvL3N2LnBvOgoJICAqIHBvL3RyLnBvOgoJICAqIHBvL3VrLnBvOgoJICAqIHBvL3ZpLnBvOgoJICAqIHBvL3poX0NOLnBvOgoJICAqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgdHJhbnNsYXRpb25zIGZyb20gdHJhbnNsYXRpb24gcHJvamVjdAoKMjAwNy0wMy0xNCAxMzo0MDoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGNoaWxkcHJveHkuYzogSW52ZXJ0IHByZWNvbmRpdGlvbiBjaGVjayB0byBiZSBhbGlrZSB0aGUgb25lcyBpbiB0aGUgbWltaWNlZCBnb2JqZWN0IGFwaS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X3NldF9wcm9wZXJ0eSk6CgkgIEludmVydCBwcmVjb25kaXRpb24gY2hlY2sgdG8gYmUgYWxpa2UgdGhlIG9uZXMgaW4gdGhlIG1pbWljZWQgZ29iamVjdAoJICBhcGkuCgoyMDA3LTAzLTE0IDExOjIxOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgZml4IG1pc2xlYWRpbmcgbG9nIHN0YXRlbWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IG1pc2xlYWRpbmcgbG9nIHN0YXRlbWVudAoKMjAwNy0wMy0xMyAxNDo1MzoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IERvIHNvbWUgQXJjaGl0ZWN0IHdvcmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXRhZ3JlYWRpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvYXVkaW9iYXNlY2xhc3Nlcy50eHQ6CgkgIERvIHNvbWUgQXJjaGl0ZWN0IHdvcmsuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfbmFtZSk6CgkgIEFkZCBhIFdBUk5JTkcuCgkgICogZ3N0L2dzdHBhZC5jOgoJICBBZGQgZG9jcyB0aGF0IHBvaW50IGZyb20gZ3N0X3BhZF9nZXRfcmFuZ2UgdG8gZ3N0X3BhZF9wdWxsX3JhbmdlCgoyMDA3LTAzLTEyIDE1OjI3OjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBEZWZlciBzdGFydGluZyB0aGUgYXN5bmMgc3lzdGVtIGNsb2NrIHRocmVhZCB1bnRpbCB0aGUgZmlyc3QgYXN5bmMgd2FpdCBpcyBzY2hlZHVsZWQuIEZpeGVzICM0MS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX3N0YXJ0X2FzeW5jKSwgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9hc3luYyk6CgkgIERlZmVyIHN0YXJ0aW5nIHRoZSBhc3luYyBzeXN0ZW0gY2xvY2sgdGhyZWFkIHVudGlsIHRoZSBmaXJzdCBhc3luYwoJICB3YWl0IGlzIHNjaGVkdWxlZC4gRml4ZXMgIzQxNDk4Ni4KCjIwMDctMDMtMTIgMTQ6MjM6MTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogRml4IHNtYWxsIGxlYWsgKGZyZWUgR3N0U2luZ2xlUXVldWUgc3RydWN0dXJlIHRvbywgbm90IG9ubHkgY29udGVudHMpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogKGdzdF9tdWx0aV9xdWV1ZV9maW5hbGl6ZSksCgkgIChnc3Rfc2luZ2xlX3F1ZXVlX2ZyZWUpOgoJICBGaXggc21hbGwgbGVhayAoZnJlZSBHc3RTaW5nbGVRdWV1ZSBzdHJ1Y3R1cmUgdG9vLCBub3Qgb25seSBjb250ZW50cykuCgoyMDA3LTAzLTEwIDE1OjQ0OjQ0ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IFVzZSBHU1RfU1RSX05VTEwgdG8gcHJldmVudCBOVUxMIHBvaW50ZXIgdG8gYmUgcGFzc2VkIHRvIEdTVF9DQVRfREVCVUcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzooZ3N0X2Jpbl9hZGQpOgoJICBVc2UgR1NUX1NUUl9OVUxMIHRvIHByZXZlbnQgTlVMTCBwb2ludGVyIHRvIGJlIHBhc3NlZCB0byBHU1RfQ0FUX0RFQlVHLgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA3LTAzLTA5IDE2OjM5OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDogRml4IEdzdFRlZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJICBGaXggR3N0VGVlIGRvY3MuCgoyMDA3LTAzLTA5IDE2OjMwOjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG1ldGFkYXRhIGNvcHkgZnVuY3Rpb25zLiBGaXhlcyAjMzkzMDk5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfY29weV9tZXRhZGF0YSksIChfZ3N0X2J1ZmZlcl9jb3B5KToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZCBtZXRhZGF0YSBjb3B5IGZ1bmN0aW9ucy4gRml4ZXMgIzM5MzA5OS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9idWZmZXJfc3RhbXApOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlcik6CgkgIFVzZSBuZXcgbWV0YWRhdGEgY29weSBmdW5jdGlvbnMuCgoyMDA3LTAzLTA5IDE0OjIwOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuKjogU2VwYXJhdGUgb3V0IGNoZWNrLWltcGVyZmVjdC10aW1lc3RhbXAgYW5kIGNoZWNrLWltcGVyZmVjdC1vZmZzZXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9pbml0KSwgKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3RfdGltZXN0YW1wKSwKCSAgKGdzdF9pZGVudGl0eV9jaGVja19pbXBlcmZlY3Rfb2Zmc2V0KSwgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApLAoJICAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIFNlcGFyYXRlIG91dCBjaGVjay1pbXBlcmZlY3QtdGltZXN0YW1wIGFuZCBjaGVjay1pbXBlcmZlY3Qtb2Zmc2V0LgoJICBQdXQgYmFjayBjaGVjay1wZXJmZWN0IGFzIGl0IHdhcyB0byBrZWVwIGNvbXBhdGliaWxpdHkuCgoyMDA3LTAzLTA5IDEyOjM0OjQ2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFRoZXJlJ3Mgbm8gbmVlZCB0byB3YXJuIGlmIFZPSURfUEVORElORyBpcyBub3QgTk9ORSBoZXJlLCBhcyBsb25nIGFzIHRoZSBzdGF0ZSBpcyBOVUxMIGl0J3Mgb2ssIGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFRoZXJlJ3Mgbm8gbmVlZCB0byB3YXJuIGlmIFZPSURfUEVORElORyBpcyBub3QgTk9ORSBoZXJlLCBhcwoJICBsb25nIGFzIHRoZSBzdGF0ZSBpcyBOVUxMIGl0J3Mgb2ssIGFuZCB0aGF0J3MgY2hlY2tlZCBpbW1lZGlhdGVseQoJICBhYm92ZS4KCjIwMDctMDMtMDggMTc6NTg6NTcgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IEZpeCBjaGVjayBmb3IgcGVyZmVjdCBzdHJlYW0gdG8gaWdub3JlIGJ1ZmZlcnMgd2l0aCAtMSBvZmZzZXRzL29mZnNldCBlbmRzIHdoZW4gY2hlY2suLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDMtMDggIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCk6CgkgIEZpeCBjaGVjayBmb3IgcGVyZmVjdCBzdHJlYW0gdG8gaWdub3JlIGJ1ZmZlcnMgd2l0aCAtMQoJICBvZmZzZXRzL29mZnNldCBlbmRzIHdoZW4gY2hlY2tpbmcgZGF0YSBjb250aWd1aXR5LgoKMjAwNy0wMy0wOCAxNjoyNjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogUHJpbnQgSU5GTyBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIFByaW50IElORk8gbWVzc2FnZXMuCgoyMDA3LTAzLTA4IDExOjQwOjE4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IEFkZCBzdXBwb3J0IGZvciBkcm9wcGluZyBidWZmZXJzIHdpdGggY3VzdG9tIEdzdEZsb3dSZXR1cm4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYWN0aXZhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBBZGQgc3VwcG9ydCBmb3IgZHJvcHBpbmcgYnVmZmVycyB3aXRoIGN1c3RvbSBHc3RGbG93UmV0dXJuLgoJICBTZXQgRElTQ09OVCBmbGFncyBvbiBvdXRnb2luZyBidWZmZXJzIGJhc2VkIG9uIFFvUywgaW5jb21taW5nIERJU0NPTlQKCSAgYnVmZmVycyBvciBkcm9wcGVkIGJ1ZmZlcnMuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZG9jcyBmb3IgbmV3IGN1c3RvbSByZXR1cm4gY29kZS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgVXNlIGRyb3Agc3VwcG9ydCBpbiBiYXNlIGNsYXNzIHRvIGltcGxlbWVudCBkcm9wLXByb2JhYmlsaXR5LgoKMjAwNy0wMy0wNyAxNzoyNjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFJlbW92ZSBuZXdsaW5lcyBhdCBlbmQgb2YgZGVidWcgbG9nIHN0cmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGxvYWRfcGx1Z2luX2Z1bmMpOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9ieV9uYW1lKSwgKGdzdF9wbHVnaW5fbG9hZCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3R0cmFjZS5jOiAoZ3N0X3RyYWNlX25ldyksIChnc3RfYWxsb2NfdHJhY2Vfc2V0X2ZsYWdzX2FsbCk6CgkgIFJlbW92ZSBuZXdsaW5lcyBhdCBlbmQgb2YgZGVidWcgbG9nIHN0cmluZ3MuCgoyMDA3LTAzLTA3IDE3OjE0OjUzICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBPbmx5IHBvc3QgYnVzIG1lc3NhZ2UgYXQgbWF4LCBvbmNlIHBlciBidWZmZXIgcmVjZWl2ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpOgoJICBPbmx5IHBvc3QgYnVzIG1lc3NhZ2UgYXQgbWF4LCBvbmNlIHBlciBidWZmZXIgcmVjZWl2ZWQuCgoyMDA3LTAzLTA3IDE3OjEzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBBZGQgZG9jIGFib3V0IHN5bmNocm9uaXNhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN5bmNocm9uaXNhdGlvbi50eHQ6CgkgIEFkZCBkb2MgYWJvdXQgc3luY2hyb25pc2F0aW9uCgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDctMDMtMDcgMTc6MDk6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0cmVhbWVyLmRvYXA6IFVwZGF0ZSB0aGUgZG9hcCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3RyZWFtZXIuZG9hcDoKCSAgVXBkYXRlIHRoZSBkb2FwIGZpbGUuCgoyMDA3LTAzLTA3IDE3OjAyOjUxICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBSZW5hbWUgbm9uLXBlcmZlY3QgdG8gaW1wZXJmZWN0IGZvciBNaWtlIGFuZCBmb3IgdGhlIHNhbmN0aXR5IG9mIHRoZSBsYW5ndWFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDMtMDcgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCk6CgkgIFJlbmFtZSBub24tcGVyZmVjdCB0byBpbXBlcmZlY3QgZm9yIE1pa2UgYW5kIGZvciB0aGUgc2FuY3RpdHkgb2YKCSAgdGhlIGxhbmd1YWdlLgoJICBBbHNvIG1ha2Ugc3VyZSBidXMgbWVzc2FnZSBnZXRzIGVtaXR0ZWQgZm9yIGRhdGEtaW5jb250aWd1aXRpZXMuCgoyMDA3LTAzLTA3IDE2OjU4OjQyICswMDAwICBaYWhlZXIgQWJiYXMgTWVyYWxpIDx6YWhlZXJhYmJhc0BtZXJhbGkub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS4qOiBFbWl0IGJ1cyBtZXNzYWdlIGlmIGNoZWNrLXBlcmZlY3QgaXMgdHJ1ZSBhbmQgd2UgZW5jb3VudGVyIGEgbm9uLXBlcmZlY3Qgc3RyZWFtIGJldHdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAzLTA3ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NoZWNrX3BlcmZlY3QpLAoJICAoZ3N0X2lkZW50aXR5X3N0YXJ0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkgIEVtaXQgYnVzIG1lc3NhZ2UgaWYgY2hlY2stcGVyZmVjdCBpcyB0cnVlIGFuZCB3ZSBlbmNvdW50ZXIgYQoJICBub24tcGVyZmVjdCBzdHJlYW0gYmV0d2VlbiAyIGNvbnNlY3V0aXZlIGJ1ZmZlcnMuCgkgIEZpeGVzICM0MTUzOTQuCgoyMDA3LTAzLTA3IDE2OjU1OjAyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQmFjayB0byBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC4xMiA9PT0KCjIwMDctMDMtMDcgMTY6NDQ6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUmVsZWFzZSAwLjEwLjEyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZWxlYXNlIDAuMTAuMTIKCjIwMDctMDMtMDcgMTY6MzE6MzAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTAzLTA3IDEyOjUxOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIGNvbW1vbjoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA3LTAzLTAxIDE4OjQ2OjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogVmVyc2lvbiAwLjEwLjExLjIgKDAuMTAuMTIgcHJlLXJlbGVhc2UpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgVmVyc2lvbiAwLjEwLjExLjIgKDAuMTAuMTIgcHJlLXJlbGVhc2UpCgkgIEJ1bXAgbGlidG9vbCB2ZXJzaW9uaW5nLgoKMjAwNy0wMy0wMSAxNDo0OTo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IExvZyBmbG93LW5hbWVzIGFuZCBub3QgbnVtYmVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIExvZyBmbG93LW5hbWVzIGFuZCBub3QgbnVtYmVycy4KCjIwMDctMDItMjggMTk6MjU6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBDb252ZXJ0IHRvIG5ldyBBR19HU1Qgc3R5bGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQ29udmVydCB0byBuZXcgQUdfR1NUIHN0eWxlLgoKMjAwNy0wMi0yOCAxODo1MTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgdW5yZWYgcXVlcnkgdHdpY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSk6CgkgIERvbid0IHVucmVmIHF1ZXJ5IHR3aWNlLgoKMjAwNy0wMi0yOCAxNjo1Nzo0OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBJbXBsZW1lbnQgR3N0T2JqZWN0IC0+IHN0cmluZyB0cmFuc2Zvcm0gc28gd2UgcHJpbnQgb2JqZWN0IG5hbWVzIHdoZW4gc2VyaWFsaXppbmcgR1ZhbHVlcyBjb250YWluaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV90cmFuc2Zvcm1fb2JqZWN0X3N0cmluZyksCgkgIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBJbXBsZW1lbnQgR3N0T2JqZWN0IC0+IHN0cmluZyB0cmFuc2Zvcm0gc28gd2UgcHJpbnQgb2JqZWN0IG5hbWVzCgkgIHdoZW4gc2VyaWFsaXppbmcgR1ZhbHVlcyBjb250YWluaW5nIEdzdE9iamVjdHMuCgoyMDA3LTAyLTI4IDE2OjU1OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIG5ldyBzdHVmZiB0byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgbmV3IHN0dWZmIHRvIGRvY3MuCgoyMDA3LTAyLTI4IDE2OjQ2OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbXByb3ZlIGxhdGVuY3kgcXVlcnkgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwgKGdzdF9iYXNlX3Npbmtfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEltcHJvdmUgbGF0ZW5jeSBxdWVyeSBjb2RlLgoJICBEb24ndCBsZWFrIGxhdGVuY3kgZXZlbnRzLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcuCgoyMDA3LTAyLTI4IDE2OjQzOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuKjogSW1wcm92ZSBkb2NzIGEgbGl0dGxlLiBBZGRlZCBTaW5jZTogZm9yIG5ldyBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgSW1wcm92ZSBkb2NzIGEgbGl0dGxlLiBBZGRlZCBTaW5jZTogZm9yIG5ldyBtYWNyby4KCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NpbmspOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfc2V0X25ld19zdHJlYW1fdGltZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIEltcHJvdmUgZGVidWdnaW5nIGFuZCBkb2NzLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfc3RhdGVfY2hhbmdlX3JldHVybl9nZXRfbmFtZSk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wMi0yOCAxNjo0MDowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEhhbmRsZSBJTkZPIG1lc3NhZ2VzIGZyb20gdGhlIEdTVF9FTEVNRU5UX0lORk8gbWFjcm8gYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksCgkgIChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKSwgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEhhbmRsZSBJTkZPIG1lc3NhZ2VzIGZyb20gdGhlIEdTVF9FTEVNRU5UX0lORk8gbWFjcm8gYXMgd2VsbC4KCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBTbWFsbCBjb2RlIGNsZWFudXBzLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfaW5mbyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19pbmZvKCkKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9pbmZvKCkKCSAgQWRkIElORk8gbWVzc2FnZSBjcmVhdGUgYW5kIHBhcnNlIGNvZGUuCgoyMDA3LTAyLTI4IDE2OjM1OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBbHNvIHJlcG9ydCB0aGUgbGl2ZSBwYXJhbWV0ZXIgb2YgYSBsYXRlbmN5IHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcXVlcnlfbWluX21heF9pbml0KSwgKGJpbl9xdWVyeV9sYXRlbmN5X2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2xhdGVuY3lfZG9uZSk6CgkgIEFsc28gcmVwb3J0IHRoZSBsaXZlIHBhcmFtZXRlciBvZiBhIGxhdGVuY3kgcXVlcnkuCgoyMDA3LTAyLTI4IDEyOjU3OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkgIHBsdWcgdGVzdCBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwbHVnIHRlc3QgbGVhawoKMjAwNy0wMi0yOCAxMjo0Mzo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWN0dWFsbHkgdXNlIHRoZSBlbnYgdmFyIGZvciB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWN0dWFsbHkgdXNlIHRoZSBlbnYgdmFyIGZvciB0ZXN0cwoKMjAwNy0wMi0yOCAxMjo0MDo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiBDb3B5IHRoZSBjdXJyZW50IGdlbmVyaWMvc3RhdGVzIGV4YW1wbGUgZnJvbSAtYmFzZSBhbmQgYWRhcHQgc28gd2UgY2FuIHVzZSB0aGUgZXhhY3Qgc2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKSwgKHN0YXRlc19zdWl0ZSk6CgkgIENvcHkgdGhlIGN1cnJlbnQgZ2VuZXJpYy9zdGF0ZXMgZXhhbXBsZSBmcm9tIC1iYXNlIGFuZCBhZGFwdCBzbwoJICB3ZSBjYW4gdXNlIHRoZSBleGFjdCBzYW1lIGNvZGUgZXZlcnl3aGVyZS4KCSAgQ2hlY2sgYSBTVEFURVNfSUdOT1JFX0VMRU1FTlRTIGVudiB2YXIgd2hpY2ggY2FuIGJlIHVzZWQKCSAgdG8gaWdub3JlIGNlcnRhaW4gZWxlbWVudCBmYWN0b3JpZXMgZm9yIHRoaXMgdGVzdCwgd2hpY2ggaXMKCSAgd2hhdCBpcyBiZWluZyBkb25lIGluIC1iYXNlCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIE1lbnRpb24gdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCjIwMDctMDItMjcgMTc6MjI6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBUEk6IGdzdF9idXNfdGltZWRfcG9wKCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2luaXQpLCAoZ3N0X2J1c19kaXNwb3NlKSwgKGdzdF9idXNfcG9zdCksCgkgIChnc3RfYnVzX3RpbWVkX3BvcCksIChnc3RfYnVzX3BvcCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICBBUEk6IGdzdF9idXNfdGltZWRfcG9wKCkKCSAgSW1wbGVtZW50IGdzdF9idXNfdGltZWRfcG9wKCkgdG8gZG8gYSBibG9ja2luZyB0aW1lZCB3YWl0IGZvciBhCgkgIG1lc3NhZ2UgdG8gYXJyaXZlIG9uIHRoZSBidXMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAocG9wX3RocmVhZCksCgkgIChnc3RfYnVzX3N1aXRlKToKCSAgVHdvIHVuaXQgdGVzdHMgZm9yIG5ldyBfdGltZWRfcG9wKCkgZnVuY3Rpb24uCgoyMDA3LTAyLTIzIDE3OjQyOjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IERvbid0IHJlZiBhIE5VTEwgY2xvY2sgaW4gX3Byb3ZpZGVfY2xvY2tfZnVuYygpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfcGlwZWxpbmVfc2V0X2RlbGF5KToKCSAgRG9uJ3QgcmVmIGEgTlVMTCBjbG9jayBpbiBfcHJvdmlkZV9jbG9ja19mdW5jKCkuCgkgIERvbid0IGFsbG93IGFuIElOVkFMSUQgZGVsYXkuCgkgIERvbid0IHRyeSB0byBjYWxjdWxhdGUgYmFzZV90aW1lIHdpdGggYW4gaW52YWxpZCBzdGFydF90aW1lLgoJICBBbHNvIGRpc3RyaWJ1dGUgYW5kIG5vdGlmeSBhIE5VTEwgY2xvY2sgd2hlbiBpdCB3YXMgc2VsZWN0ZWQuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIERvbid0IGNyYXNoIHdoZW4gYSBOVUxMIGNsb2NrIHdhcyBzZWxlY3RlZCBpbiB0aGUgcGlwZWxpbmUuCgoyMDA3LTAyLTIzIDEzOjQyOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy86IFNvbWUgc21hbGwgdXBkYXRlczogdXBkYXRlIHBsdWdpbiBzeXN0ZW0gaWRlbnRpZmllciBwcmVmaXggbWVudGlvbiBvdXIgbmV3IGluc3RhbGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBTb21lIHNtYWxsIHVwZGF0ZXM6IHVwZGF0ZSBwbHVnaW4gc3lzdGVtIGlkZW50aWZpZXIgcHJlZml4CgkgICgnZ3N0cmVhbWVyLm5ldCcgdG8gJ2dzdHJlYW1lcicpLCBtZW50aW9uIG91ciBuZXcgaW5zdGFsbAoJICBBUEkgaW4gbGliZ3N0YmFzZXV0aWxzIHJhdGhlciB0aGFuIGxpYmdpbW1lLWNvZGVjLCBhZGQKCSAgcmVmZXJlbmNlIHRvIHRoZSBvbmxpbmUgZG9jcy4KCjIwMDctMDItMjEgMTU6MzU6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgd2luMzIvY29tbW9uL2NvbmZpZy5oOiBQcmV0dHkgc3VyZSBCaWxsIG5ldmVyIG1hZGUgYSBwb3dlcnBjIHZlcnNpb24uICBQb3dlcnBjIGhhY2tlcnMsIHVzZSBtb2FwIGNsIGNpIHRvIG9ubHkgY2hlY2sgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgUHJldHR5IHN1cmUgQmlsbCBuZXZlciBtYWRlIGEgcG93ZXJwYyB2ZXJzaW9uLiAgUG93ZXJwYyBoYWNrZXJzLAoJICB1c2UgbW9hcCBjbCBjaSB0byBvbmx5IGNoZWNrIGluIHdoYXQgaXMgbWVudGlvbmVkIGluIHRoZSBDaGFuZ2VMb2cuCgoyMDA3LTAyLTIxIDE1OjM0OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEZpeCB1cCBkb2N1bWVudGF0aW9uIHRvIGxpbmsgdG8gdGhlIGNvcnJlY3QgR3N0R0Vycm9yIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgRml4IHVwIGRvY3VtZW50YXRpb24gdG8gbGluayB0byB0aGUgY29ycmVjdCBHc3RHRXJyb3Igc2VjdGlvbi4KCSAgQWRkIEdTVF9FTEVNRU5UX0lORk8gbWFjcm8gc2luY2Ugc29tZW9uZSBlbHNlIGFkZGVkIGEgSW5mbyBtZXNzYWdlLgoKMjAwNy0wMi0yMSAxNTozMDo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1ha2Ugc3VyZSB0aGF0IHdlIGFjdHVhbGx5IHNob3cgdGhlIGltcG9ydGFudCBtZXNzYWdlIHBhcnQgb2YgYSB3YXJuaW5nIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBNYWtlIHN1cmUgdGhhdCB3ZSBhY3R1YWxseSBzaG93IHRoZSBpbXBvcnRhbnQgbWVzc2FnZSBwYXJ0IG9mIGEKCSAgd2FybmluZyBtZXNzYWdlLgoJICBObyBuZWVkIHRvIGNoZWNrIGlmIHRoZSBnZXJyb3IgaXMgbm90IE5VTEwgdG8gZnJlZTsgZmlyc3Qgb2YgYWxsCgkgIGdfZnJlZSBhY2NlcHRzIE5VTEw7IGFuZCBzZWNvbmQgdGhlIGRlZmF1bHQgZXJyb3IgaGFuZGxlciB3b3VsZAoJICBzZWdmYXVsdCBpZiBnZXJyb3Igd2FzIE5VTEwuCgoyMDA3LTAyLTIxIDEyOjEwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVtb3ZlZCBkb2NzIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlbW92ZWQgZG9jcyBhcyB3ZWxsLgoKMjAwNy0wMi0yMSAxMjowMTo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IFJlbW92ZSBuZXcgbWVzc2FnZXMgZm9yIHJlbGVhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9wYXJzZV9kdXJhdGlvbik6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgUmVtb3ZlIG5ldyBtZXNzYWdlcyBmb3IgcmVsZWFzZS4KCjIwMDctMDItMjAgMTg6MDI6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNYWtlIHRoZSBnaG9zdHBhZCBhIHBhcmVudCBvZiB0aGUgaW50ZXJuYWwgcGFkIGFnYWluIGZvciBiZXR0ZXIgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gRG9uJ3Qgd3JpdGUgY29kZSB0aGF0IHJlbGllcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6CgkgIE1ha2UgdGhlIGdob3N0cGFkIGEgcGFyZW50IG9mIHRoZSBpbnRlcm5hbCBwYWQgYWdhaW4gZm9yIGJldHRlciBiYWNrd2FyZAoJICBjb21wYXRpYmlsaXR5LiBEb24ndCB3cml0ZSBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoaXMgaG93ZXZlci4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpOgoJICBSZXF1aXJlIHRoYXQgcGFyZW50cyBzaG91bGQgYmUgR3N0RWxlbWVudHMgaW4gdGhlIGhpZXJhcmNoeSBjaGVjay4KCjIwMDctMDItMjAgMTA6NDU6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEltcHJvdmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX3JlcGxhY2VfbWVzc2FnZSksIChnc3RfYmluX2FkZF9mdW5jKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX3F1ZXJ5X21pbl9tYXhfaW5pdCksCgkgIChiaW5fcXVlcnlfbGF0ZW5jeV9mb2xkKSwgKGJpbl9xdWVyeV9sYXRlbmN5X2RvbmUpLAoJICAoZ3N0X2Jpbl9xdWVyeSk6CgkgIEltcHJvdmUgZGVidWcgaW5mby4KCSAgSW1wbGVtZW50IGxhdGVuY3kgcXVlcnkuCgoyMDA3LTAyLTIwIDEwOjE2OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG8gbm90IHNldCB0aGUgaW50ZXJuYWwgcGFkIGFzIGEgcGFyZW50IGFueW1vcmUgc28gd2UgY2FuIGF2b2lkIGhpZXJhcmNoeSBsaW5raW5nIGVycm9ycyB3aGVuIHRoZSBnaG9zdHBhZCBoYXMgbm8gcGFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpLCAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgRG8gbm90IHNldCB0aGUgaW50ZXJuYWwgcGFkIGFzIGEgcGFyZW50IGFueW1vcmUgc28gd2UgY2FuIGF2b2lkCgkgIGhpZXJhcmNoeSBsaW5raW5nIGVycm9ycyB3aGVuIHRoZSBnaG9zdHBhZCBoYXMgbm8gcGFyZW50IHlldC4gVGhpcyBhbHNvCgkgIGZpeGVzIGZhaWxlZCBhY3RpdmF0aW9uIGJlY2F1c2Ugb2YgdW5saW5rZWQgaW50ZXJuYWwgcGFkcywgd2hpY2ggaW4KCSAgdHVybiBmaXhlcyB0aGUgaW1wb3NzaWJsZSBjYXNlIHdoZXJlIHlvdSBoYXZlIHRvIGFjdGl2YXRlIGEgcGFkIGJlZm9yZQoJICB5b3UgY2FuIGFkZCBpdCB0byBhIHJ1bm5pbmcgZWxlbWVudC4KCSAgQWxzbyBmaXggdGhlIGRvY3MuCgkgICogZ3N0L2dzdHBhZC5jOiAocHJlX2FjdGl2YXRlKSwgKHBvc3RfYWN0aXZhdGUpLAoJICAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBNYXJrIGFjdGl2YXRpb24gbW9kZSBpbiBwcmVfYWN0aXZhdGUgc28gdGhhdCB3ZSBkb24ndCB0cnkgdG8gYWN0aXZhdGUgaW4KCSAgZW5kbGVzcyBsb29wcy4gRml4ZXMgIzM4NTA4NC4KCjIwMDctMDItMTkgMTg6MDg6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogSW1wbGVtZW50IGEgY2hlY2tnZXRyYW5nZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQgY29yZSBiZWhhdmlvdXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hlY2tfZ2V0X3JhbmdlKToKCSAgSW1wbGVtZW50IGEgY2hlY2tnZXRyYW5nZSBmdW5jdGlvbiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGRlZmF1bHQKCSAgY29yZSBiZWhhdmlvdXIgdGhhdCBhc3N1bWVzIHdlIGNhbiBvcGVyYXRlIGluIHB1bGwgbW9kZSBpZiB3ZSBoYXZlIGEKCSAgZ2V0cmFuZ2UgZnVuY3Rpb24uIEZpcnN0IHN0ZXAgYXQgZml4aW5nICMzODUwODQuCgoyMDA3LTAyLTE1IDEyOjA1OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIGRvY3MgY292ZXJhZ2UgYW5kIHNvbWUgQ2hhbmdlTG9nIHN1cmdlcnkgKGFkZCBtaXNzaW5nIG5hbWVzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2hpbGRwcm94eS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTW9yZSBkb2NzIGNvdmVyYWdlIGFuZCBzb21lIENoYW5nZUxvZyBzdXJnZXJ5IChhZGQgbWlzc2luZyBuYW1lcykKCjIwMDctMDItMTUgMTE6MzI6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNvbWUgZG9jIHVwZGF0ZXMuIFN0YXJ0IHJlbmFtaW5nIGZyb20gc3RyZWFtX3RpbWUgdG8gcnVubmluZ190aW1lIHdoZXJlIGl0IHdhcyB1c2VkIHdyb25nbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0YXRlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgU29tZSBkb2MgdXBkYXRlcy4gU3RhcnQgcmVuYW1pbmcgZnJvbSBzdHJlYW1fdGltZSB0byBydW5uaW5nX3RpbWUgd2hlcmUKCSAgaXQgd2FzIHVzZWQgd3JvbmdseS4KCjIwMDctMDItMTUgMDk6MDc6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQW5zd2VyIExBVEVOQ1kgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpOgoJICBBbnN3ZXIgTEFURU5DWSBxdWVyeS4KCjIwMDctMDItMTUgMDg6NDA6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogSW1wcm92ZSBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RldmVudC5jOiAoZXZlbnRfcHJvYmUpLCAodGVzdF9ldmVudCksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIEltcHJvdmUgZGVidWdnaW5nLgoKMjAwNy0wMi0xNSAwODozNzoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgZGVmYXVsdCBwYWQgZGlzcGF0Y2hlciBhbmQgcXVlcnkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9pbnRlcm5hbF9saW5rc19kZWZhdWx0KSwKCSAgKGdzdF9wYWRfZGlzcGF0Y2hlcik6CgkgIEltcHJvdmUgZGVidWdnaW5nIG9mIGRlZmF1bHQgcGFkIGRpc3BhdGNoZXIgYW5kIHF1ZXJ5IGZ1bmN0aW9ucy4KCjIwMDctMDItMTUgMDg6MzE6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZW1vdmUgb2xkIHVudXNlZCBtZXRob2QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIFJlbW92ZSBvbGQgdW51c2VkIG1ldGhvZC4KCjIwMDctMDItMTMgMTU6NTE6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiBGaXggY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGNoZWNrCgoyMDA3LTAyLTEzIDE1OjM0OjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDogU29tZSBzbWFsbCB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNvbWUgc21hbGwgdXBkYXRlLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfc2Vlayk6CgkgIFJldmVydCBvbGQgYm9ndXMgY2hhbmdlIHRoYXQgc2hvdWxkIG1ha2Ugc2Vla2luZyB3b3JrIGFnYWluLgoKMjAwNy0wMi0xMyAxNDo1Mjo0NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy86IFBvc3NpYmxlIGR5bmFtaWMgcmVjb25uZWN0aW9uIGFwaSwgcGx1cyBzb21lIHR5cGUgZml4ZXMgdGhlIG90aGVyIHR3byBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2R5bmxpbmsudHh0OgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvaW50ZXJmYWNlcy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9yZWNlaXBpZXMudHh0OgoJICBQb3NzaWJsZSBkeW5hbWljIHJlY29ubmVjdGlvbiBhcGksIHBsdXMgc29tZSB0eXBlIGZpeGVzIHRoZSBvdGhlciB0d28KCSAgZG9jcy4KCjIwMDctMDItMTMgMTM6NDA6MDUgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBBbHNvIGNoZWNrIGZvciBhbiBhYnNvbHV0ZSBwYXRoIGZvbGxvd2luZyBmaWxlOi8vIGluIHRoZSBmaWxlc3JjIGVsZW1lbnQuIFJlbW92ZSByZWR1bmRhbnQgY2hlY2sgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEFsc28gY2hlY2sgZm9yIGFuIGFic29sdXRlIHBhdGggZm9sbG93aW5nIGZpbGU6Ly8gaW4gdGhlIGZpbGVzcmMKCSAgZWxlbWVudC4gUmVtb3ZlIHJlZHVuZGFudCBjaGVjayBhbmQgY2FsbCBnX3BhdGhfaXNfYWJzb2x1dGUoKSBvbiB0aGUKCSAgdW5lc2NhcGVkIGxvY2F0aW9uLgoKMjAwNy0wMi0xMyAwOToxMDo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBBZGQgZXhpc3RpbmcgY2F0ZWdvcnkgYW5hbHlzaXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgQWRkIGV4aXN0aW5nIGNhdGVnb3J5IGFuYWx5c2lzLgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgIEZpeCBkb2MgZXhhbXBsZSwgZnJhbWVyYXRlIGlzIGEgZnJhY3Rpb24uCgoyMDA3LTAyLTEyIDE5OjU1OjI0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBBZGQgY3Jvc3NyZWZlcmVuY2VzIHRvIGdsaWIvZ29iamVjdCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgQWRkIGNyb3NzcmVmZXJlbmNlcyB0byBnbGliL2dvYmplY3QgZG9jcy4KCjIwMDctMDItMTIgMTE6MzI6MjIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogU21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgU21hbGwgdXBkYXRlLgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X2xhdGVuY3kpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeV9sYXRlbmN5KSwKCSAgKGdzdF9iYXNlX3Npbmtfd2FpdF9jbG9jayksIChnc3RfYmFzZV9zaW5rX3NlbmRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLCAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBUEk6IGdzdF9iYXNlX3NpbmtfcXVlcnlfbGF0ZW5jeSgpIHRvIGxldCBzdWJjbGFzc2VzIHF1ZXJ5IHRoZSB1cHN0cmVhbQoJICBsYXRlbmN5LgoJICBBUEk6IGdzdF9iYXNlX3NpbmtfZ2V0X2xhdGVuY3koKSB0byBsZXQgc3ViY2xhc3NlcyBxdWVyeSB0aGUgY29uZmlndXJlZAoJICBsYXRlbmN5IGluIHRoZSBzaW5rLgoJICBJbXBsZW1lbnQgcXVlcnkgYW5kIHNldCBsYXRlbmN5LgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICBBcyBzcG90dGVkIGJ5IFdpbGwgTmV3dG9uIDx3aWxsIGRvdCBuZXd0b24gYXQgZ21haWwgZG90IGNvbT46IE1ha2Ugc3VyZSB3ZQoJICBkb24ndCBjb250aW51ZSBwcmVyb2xsIHdoZW4gd2UgYXJlIGZsdXNoaW5nLiBGaXhlcyAjNDA1Mjg0LgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKGNoYW5nZV9zdGF0ZV90aW1lb3V0KSwKCSAgKHF1aXRfdGltZW91dCksIChHU1RfU1RBUlRfVEVTVCksIChzdHJlc3Nfc3VpdGUpOgoJICBUZXN0IGZvciAjNDA1Mjg0LgoKMjAwNy0wMi0xMiAxMDo1MDoyMCArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIEFQSTogYWRkIEdTVF9UQUdfUkVGRVJFTkNFX0xFVkVMICgjNDAzNTk3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRlPgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfUkVGRVJFTkNFX0xFVkVMICgjNDAzNTk3KS4KCjIwMDctMDItMTEgMTk6NTk6MTIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogRml4IHBhdGggdG8gY29yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIEZpeCBwYXRoIHRvIGNvcmUgZG9jcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF9ieV9pbnRlcmZhY2UpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX2FsbF9ieV9pbnRlcmZhY2UpOgoJICBSZWZpeCBkb2NzIGJ5IGFsc28gcmVuYW1pbmcgJ2ludGVyZmFjZScgdG8gJ2lmYWNlJyBpbiBpbXBsZW1lbnRhdGlvbi4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9iYXNlX2luaXQpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpOgoJICBEb2N1bWVudCBtb3JlLgoKMjAwNy0wMi0xMCAxODozMToxMiArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGJpbi5oOiBSZXBsYWNlIGludGVyZmFjZSBwYXJhbWV0ZXIgbmFtZSBieSBpZmFjZSBhcyBpbnRlcmZhY2UgaXMgYSByZXNlcnZlZCBrZXl3b3JkIGluIFZpc3VhbCBTdHVkaW8gZm9yIEMrKyBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDooZ3N0X2Jpbl9nZXRfYnlfaW50ZXJmYWNlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9hbGxfYnlfaW50ZXJmYWNlKToKCSAgUmVwbGFjZSBpbnRlcmZhY2UgcGFyYW1ldGVyIG5hbWUgYnkgaWZhY2UgYXMgaW50ZXJmYWNlIGlzCgkgIGEgcmVzZXJ2ZWQga2V5d29yZCBpbiBWaXN1YWwgU3R1ZGlvIGZvciBDKysgcHJvamVjdHMgc28gaXQgcmVtb3ZlcwoJICBhIGJ1aWxkIGVycm9yIGZvciBhcHBsaWNhdGlvbiBkZXZlbG9wcGVycyB1c2luZyBWUy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzooZ3N0X2ZpbGVfc3JjX3VyaV9zZXRfdXJpKToKCSAgRml4IGEgYnVnIG9uIFdpbmRvd3MgaW4gdXJpIGZvcm1hdCBjaGVjay4gTm93IHRoZSBwcmVmaXggY2hlY2tlZAoJICBpcyBmaWxlOi8vIGFuZCBuZXh0IHdlIGNoZWNrIGlmIHRoZSBwYXRoIGFmdGVyIGZpbGU6Ly8gaXMgYWJzb2x1dGUuCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucy4KCjIwMDctMDItMDkgMTU6MjU6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMi0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jCgkgIChzaW1wbGVfbGF1bmNoX2xpbmVzX3N1aXRlLCB0ZXN0X3RlZSk6IERpc2FibGUgdGVlIHRlc3QgdW50aWwgSQoJICBoYXZlIHRpbWUgdG8gZml4IGl0IDotKAoKMjAwNy0wMi0wOSAxMzo1OTozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgQUJJIGNoZWNrcyBmb3IgUFBDMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAyLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtIChub2luc3RfSEVBREVSUyk6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfcHBjMzIuaDogQWRkIEFCSSBjaGVja3MgZm9yIFBQQzMyLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RhYmkuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3BwYzMyLmg6IEFkZCBBQkkgY2hlY2tzIGZvciBQUEMzMi4KCjIwMDctMDItMDkgMTM6NDU6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmMgKHRlc3RfdGVlKTogQWRkIHRlc3RzIGZvciBwdXNoIGFuZCBwdWxsIHRlZSBiZWhhdmlvci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDItMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYyAodGVzdF90ZWUpOiBBZGQKCSAgdGVzdHMgZm9yIHB1c2ggYW5kIHB1bGwgdGVlIGJlaGF2aW9yLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogRGVzY3JpYmUgaGFzLXNpbmstbG9vcCBiZXR0ZXIsIGFuZAoJICBtYXJrIGFzIGRlcHJlY2F0ZWQgYXMgd2VsbCBhcyB1bmltcGxlbWVudGVkLiBJdCB3YXMgYSBjcmFjayBpZGVhLgoJICBBZGQgc3VwcG9ydCBmb3IgdGVlIG9wZXJhdGluZyBpbiBwdWxsIG1vZGUsIG9mZiBieSBkZWZhdWx0LgoKMjAwNy0wMi0wOSAxMzo0MToyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmMgKGxvYWRfZmVhdHVyZSwgbG9hZF9wbHVnaW4pOiBEcm9wIHNvbWUgbm9ybWFsLWNhc2UgbG9ncyBkb3duIHRvIExPRywgcmFpc2UgZXJyb3JzIHRvIFdBUk5JTkcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAyLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jIChsb2FkX2ZlYXR1cmUsIGxvYWRfcGx1Z2luKTogRHJvcCBzb21lCgkgIG5vcm1hbC1jYXNlIGxvZ3MgZG93biB0byBMT0csIHJhaXNlIGVycm9ycyB0byBXQVJOSU5HLgoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKTogRG9uJ3QgbG9nIGJlZm9yZSBjYWxsaW5nIGEgZnVuY3Rpb24KCSAgdGhhdCBsb2dzLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChnc3RfcmVnaXN0cnlfZmluYWxpemUpOiBMZXNzIGRlYnVnIG9uIHByb2dyYW0KCSAgZXhpdCAocmVnaXN0cnkgZmluYWxpemUpLgoJICAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4sIGdzdF9yZWdpc3RyeV9hZGRfZmVhdHVyZSk6IE5vIG5lZWQgZm9yIGEKCSAgREVCVUcgbG9nIHdoZW4gd2UgZW1pdCBzaWduYWxzIHRoYXQgcGVvcGxlIGRvbid0IGV2ZW4gaGF2ZSB0aGUKCSAgY2hhbmNlIHRvIGNvbm5lY3QgdG8uCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKTogTGVzcyBsb2dnaW5nIGluIHRoZSBub3JtYWwgY2FzZS4KCjIwMDctMDItMDUgMTM6MTU6NDQgKzAwMDAgIE1pY2hhbCBCZW5lcyA8bWljaGFsLmJlbmVzQGl0b25pcy50dj4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBDb3JyZWN0bHkgZ2VuZXJhdGUgRU9TIGZvciBub24tc2Vla2FibGUgZmlsZXMuIFdlIGRvbid0IGhhdmUgYSB0b3RhbCBsZW5ndGggZm9yIHRoZW0gYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1pY2hhbCBCZW5lcyA8bWljaGFsIGRvdCBiZW5lcyBhdCBpdG9uaXMgZG90IHR2PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgQ29ycmVjdGx5IGdlbmVyYXRlIEVPUyBmb3Igbm9uLXNlZWthYmxlIGZpbGVzLiBXZSBkb24ndCBoYXZlIGEgdG90YWwKCSAgbGVuZ3RoIGZvciB0aGVtIGFuZCB3b3VsZCBnZXQgYW4gdW5leHBlY3RlZCBlbmQgb2YgZmlsZSBpZiB3ZSBvbmx5CgkgIHNwZWNpYWwtY2FzZWQgZm9yIHJlZ3VsYXIgZmlsZXMuIChGaXhlczogIzQwNDU2OSkKCjIwMDctMDItMDUgMDg6MTU6MjYgKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFVSSUhhbmRsZXIgaW50ZXJmYWNlIGluIGZpbGVzcmMuIFRoaXMgYWxzbyB0ZXN0cyB0aGUgbmV3bHkgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmaWxlc3JjX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgdGhlIEdzdFVSSUhhbmRsZXIgaW50ZXJmYWNlIGluIGZpbGVzcmMuIFRoaXMgYWxzbwoJICB0ZXN0cyB0aGUgbmV3bHkgYWRkZWQgZmlsZTovL2xvY2FsaG9zdC9mb28vYmFyIHN1cHBvcnQuCgoyMDA3LTAyLTA0IDE2OjE0OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6IFRoZSBrbGFzcyBzdHJpbmcgaXMgbm90IGEgaGllcmFyY2h5LiBBZGQgcmVmZXJlbmNlIHRvIHRoZSBkZXNpZ24gZG9jIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5oOgoJICBUaGUga2xhc3Mgc3RyaW5nIGlzIG5vdCBhIGhpZXJhcmNoeS4gQWRkIHJlZmVyZW5jZSB0byB0aGUgZGVzaWduIGRvYwoJICBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgY29tbW9uIHR5cGVzLgoKMjAwNy0wMi0wMiAxODowODozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5jOiBSZW1vdmUgb2xkIHN0cnVjdHVyZSBmaWVsZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfbmV3X2xhdGVuY3kpOgoJICBSZW1vdmUgb2xkIHN0cnVjdHVyZSBmaWVsZC4KCjIwMDctMDItMDIgMTI6Mjc6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogR2l2ZSBleGFtcGxlIGZvciBuZXR3b3JrIHN0cmVhbWluZyAoIzM1MTk5OCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBHaXZlIGV4YW1wbGUgZm9yIG5ldHdvcmsgc3RyZWFtaW5nICgjMzUxOTk4KQoKMjAwNy0wMi0wMiAxMTo0ODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBkb2NzIGZvciBuZXcgbWV0aG9kcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGRvY3MgZm9yIG5ldyBtZXRob2RzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19sYXRlbmN5KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9sYXRlbmN5KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIG5ldyBMQVRFTkNZIGV2ZW50IHRvIGNvbmZpZ3VyZSBsYXRlbmN5IGluIGEgcGlwZWxpbmUuCgkgIEFQSTogZ3N0X2V2ZW50X25ld19sYXRlbmN5CgkgIEFQSTogZ3N0X2V2ZW50X3BhcnNlX2xhdGVuY3kKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfbG9zdF9wcmVyb2xsKSwgKGdzdF9tZXNzYWdlX25ld19wcmVyb2xsZWQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2xhdGVuY3kpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2xvc3RfcHJlcm9sbCk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWRkZWQgbWVzc2FnZXMgdXNlZCBpbiBkcmFmdC1sYXRlbmN5LgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19sb3N0X3ByZXJvbGwKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9sb3N0X3ByZXJvbGwKCSAgQVBJOiBnc3RfbWVzc2FnZV9uZXdfcHJlcm9sbGVkCgkgIEFQSTogZ3N0X21lc3NhZ2VfbmV3X2xhdGVuY3kKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfbGF0ZW5jeSksIChnc3RfcXVlcnlfc2V0X2xhdGVuY3kpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2xhdGVuY3kpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBJbXBsZW1lbnRlZCBuZXcgbGF0ZW5jeSBxdWVyeSBhcyBpbiBkZXNpZ24gZG9jLgoJICBBUEk6IGdzdF9xdWVyeV9uZXdfbGF0ZW5jeQoJICBBUEk6IGdzdF9xdWVyeV9zZXRfbGF0ZW5jeQoJICBBUEk6IGdzdF9xdWVyeV9wYXJzZV9sYXRlbmN5CgoyMDA3LTAyLTAyIDExOjMzOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFNsaWdodCByZWRlc2lnbiB0byBhbGxvdyBmb3IgZHluYW1pYyBsYXRlbmN5IGFkanVzdG1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgU2xpZ2h0IHJlZGVzaWduIHRvIGFsbG93IGZvciBkeW5hbWljIGxhdGVuY3kgYWRqdXN0bWVudHMuCgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgIEZpeCBzb21lIHR5cG9zLgoKMjAwNy0wMi0wMiAxMDo0MToyOSArMDAwMCAgU2ViYXN0aWFuIERyw7ZnZSA8c2xvbW9AY2lyY3VsYXItY2hhb3Mub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEFsbG93IGZpbGU6Ly9sb2NhbGhvc3QvZm9vL2JhciBVUkxzIGFuZCBjb3JyZWN0bHkgZmFpbCBmb3IgZXZlcnkgb3RoZXIgaG9zdG5hbWUgdGhhdCBvbmUgc2V0cy4gVGhpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZpZXdlZCBieTogV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3VyaV9zZXRfdXJpKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY191cmlfc2V0X3VyaSk6CgkgIEFsbG93IGZpbGU6Ly9sb2NhbGhvc3QvZm9vL2JhciBVUkxzIGFuZCBjb3JyZWN0bHkgZmFpbCBmb3IgZXZlcnkgb3RoZXIKCSAgaG9zdG5hbWUgdGhhdCBvbmUgc2V0cy4gVGhpcyB3YXMgZ25vbWV2ZnNzcmMgaXMgbGlua2VkIGZvciB0aG9zZSBpZgoJICBpbnN0YWxsZWQgYXMgaXQgY2FuIGhhbmRsZSBpdCAoIzQwMzE3MikKCjIwMDctMDItMDEgMTk6MDA6NDggKzAwMDAgIFNlYmFzdGlhbiBEcsO2Z2UgPHNsb21vQGNpcmN1bGFyLWNoYW9zLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogRG9uJ3QgcHV0IHRoZSBwcmV2aW91c2x5IGFkZGVkIGRlc3Ryb3kgbm90aWZ5IGluIHRoZSBHc3RDb2xsZWN0RGF0YSBzdHJ1Y3QgYXMgYWxsIGl0Jy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZmluYWxpemUpLAoJICAodW5yZWZfZGF0YSksIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWRfZnVsbCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBEb24ndCBwdXQgdGhlIHByZXZpb3VzbHkgYWRkZWQgZGVzdHJveSBub3RpZnkgaW4gdGhlIEdzdENvbGxlY3REYXRhCgkgIHN0cnVjdCBhcyBhbGwgaXQncyBwYWRkaW5nIGlzIGFscmVhZHkgdXNlZCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBicmVhawoJICBBQkkuIEluc3RlYWQgcHV0IGluIHRoZSBwYWQncyBHT2JqZWN0IGRhdGEgZm9yIG5vdy4gVGhpcyBzaG91bGQgYmUKCSAgY2xlYW5lZCB1cCBmb3IgMC4xMSAoIzQwMjM5MykuCgoyMDA3LTAyLTAxIDE3OjUyOjExICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBBUEk6IEFkZCBmdW5jdGlvbiB0byBzcGVjaWZ5IGEgZGVzdHJveSBub3RpZmljYXRpb24gZm9yIGN1c3RvbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2aWV3ZWQgYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwKCSAgKHVucmVmX2RhdGEpLCAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZF9mdWxsKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEFQSTogQWRkIGZ1bmN0aW9uIHRvIHNwZWNpZnkgYSBkZXN0cm95IG5vdGlmaWNhdGlvbiBmb3IgY3VzdG9tCgkgIEdzdENvbGxlY3REYXRhIHdoZW4gYWRkaW5nIG5ldyBwYWRzIGluIEdzdENvbGxlY3RQYWRzICgjNDAyMzkzKS4KCjIwMDctMDItMDEgMTc6MTA6MjUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwby9zdi5wbzogVXBkYXRlIFN3ZWRpc2ggdHJhbnNsYXRpb24gKCMzNzgyNTUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9zdi5wbzoKCSAgVXBkYXRlIFN3ZWRpc2ggdHJhbnNsYXRpb24gKCMzNzgyNTUpLgoKMjAwNy0wMS0zMSAxMTo0Mjo1MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OiBGaXggdGhlIHByZXZpb3VzIGNoYW5nZSwgdGhpcyBpcyBhIGxpc3Qgb2YgY2F0ZWdvcmllcyBhbmQgbm90IGEgaGllcmFyY2h5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgIEZpeCB0aGUgcHJldmlvdXMgY2hhbmdlLCB0aGlzIGlzIGEgbGlzdCBvZiBjYXRlZ29yaWVzIGFuZCBub3QgYSBoaWVyYXJjaHkuCgoyMDA3LTAxLTMxIDExOjAyOjI5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IEFkZCBpbmZvIGFib3V0IGhvdyB0byBnZXQgYSBsaXN0IG9mIHVzZWQgY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQta2xhc3MudHh0OgoJICBBZGQgaW5mbyBhYm91dCBob3cgdG8gZ2V0IGEgbGlzdCBvZiB1c2VkIGNsYXNzZXMuCgoyMDA3LTAxLTMwIDE5OjEyOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRG9uJ3QgbGVhayBmb3VuZCBjYXBzIGluIGNoYWluIGZ1bmN0aW9uIChubyBpZGVhIHdoeSB0aGF0IG5ldmVyIHNob3dlZCB1cCBhcyBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW5fZG9fdHlwZWZpbmRpbmcpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IGxlYWsgZm91bmQgY2FwcyBpbiBjaGFpbiBmdW5jdGlvbiAobm8gaWRlYSB3aHkgdGhhdCBuZXZlcgoJICBzaG93ZWQgdXAgYXMgYSBsZWFrIGFueXdoZXJlKS4KCjIwMDctMDEtMzAgMTU6MDQ6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwbHVnaW4uaDogRml4IGFuZCBleHBhbmQgR3N0UGx1Z2luRGVzYyBBUEkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICBGaXggYW5kIGV4cGFuZCBHc3RQbHVnaW5EZXNjIEFQSSBkb2NzLgoKMjAwNy0wMS0yOSAxNTo1NDowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY29uZmlndXJlLmFjOiBjb21tZW50IGFib3V0IHJlZmluaW5nIHRoZSB4bWwgZGVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNvbW1lbnQgYWJvdXQgcmVmaW5pbmcgdGhlIHhtbCBkZXBzCgkgICogZG9jcy9tYW51YWxzLm1hazoKCSAgY29tbWVudHMgYWJvdXQgbW92aW5nIGF3YXkgZnJvbSBqYWRlIGZvciBkb2NzCgkgICogZ3N0L2dzdC5jOgoJICByZWNvbW1pdCB0aGUgaWZkZWZzIHRvIHVzZSB0aGUgYmluYXJ5IHJlZ2lzdHJ5CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgIHRoaXMgYnJlYWsgaXMgb2Jzb2xldGUKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgYmV0dGVyIEdTVF9FTEVNRU5UX0RFVEFJTFMgZG9jcywgYWRkIGNvbW1lbnQgYWJvdXQgdHJhbnNsYXRpb24KCSAgKiBnc3QvZ3N0aW5mby5oOgoJICByZW1vdmUgZW9sIHNsYXNoCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X3NpZ25hbF9vYmplY3RfZ2V0X3R5cGUpOgoJICBhZGQgR19VTkxJS0VMWSBhcyB1c3VhbAoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCk6CgkgIGFkZCBmYWxsIHRyaHUgY29tbWVudAoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3N0cmluZyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBjb21tZW50IHR5cG8gYW5kIGZvcm1hdHRpbmcKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKSwKCSAgKGdzdF9lbGVtZW50X3N0YXRlX2NoYW5nZV9yZXR1cm5fZ2V0X25hbWUpOgoJICByZW1vdmUgb2Jzb2xldGUgYnJlYWtzCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfZGF0ZV9nZXRfdHlwZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICBhZGQgRklYTUUgMC4xMSBhbmQgcmVtb3ZlIGNwcCBjb21tZW50CgoyMDA3LTAxLTI5IDE1OjAyOjExICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IEZpeCBwcmludCBzdGF0ZW1lbnQgaW4gYW4gZXZlbiBtb3JlIHBvcnRhYmxlIHdheS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBGaXggcHJpbnQgc3RhdGVtZW50IGluIGFuIGV2ZW4gbW9yZSBwb3J0YWJsZSB3YXkuCgoyMDA3LTAxLTI5IDEzOjQwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgR1NUX1JPVU5EX0RPV05fKiBtYWNyb3MgKCM0MDE3ODEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBUEk6IGFkZCBHU1RfUk9VTkRfRE9XTl8qIG1hY3JvcyAoIzQwMTc4MSkuCgoyMDA3LTAxLTI3IDE4OjQ0OjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgRG9jdW1lbnQgcmVnaXN0cnkgc2lnbmFscyBhbmQgbWFrZSBndGstZG9jIHBpY2sgdGhlbSB1cCAoIzQwMTM4MSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9jbGFzc19pbml0KToKCSAgRG9jdW1lbnQgcmVnaXN0cnkgc2lnbmFscyBhbmQgbWFrZSBndGstZG9jIHBpY2sgdGhlbSB1cCAoIzQwMTM4MSkuCgoyMDA3LTAxLTI2IDE4OjI0OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctdGVzdGFwcC54bWw6IEFkZCBzb21lIGF1ZGlvY29udmVydHMgYW5kIGF1ZGlvcmVzYW1wbGUgdG8gdGhlIHBpcGVsaW5lLCBhbmQgc29tZSBtb3JlIGNvbW1lbnRzIGFuZCBlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXRlc3RhcHAueG1sOgoJICBBZGQgc29tZSBhdWRpb2NvbnZlcnRzIGFuZCBhdWRpb3Jlc2FtcGxlIHRvIHRoZSBwaXBlbGluZSwgYW5kIHNvbWUKCSAgbW9yZSBjb21tZW50cyBhbmQgZXJyb3IgaGFuZGxpbmcuCgoyMDA3LTAxLTI2IDEzOjA3OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy86IEZpeCB0eXBvICgjNDAwOTg3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICBGaXggdHlwbyAoIzQwMDk4NykuCgoyMDA3LTAxLTI2IDA5OjM3OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogSW5pdCBjYXBzIGZsYWdzIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdGF0aWNfY2Fwc19nZXQpOgoJICBJbml0IGNhcHMgZmxhZ3MgdG9vLgoKMjAwNy0wMS0yNSAxNzo1NDowNyArMDAwMCAgSmluZHJpY2ggTWFrb3ZpY2thIDxqaW5kcmljaC5tYWtvdmlja0BpdG9uaXMudHY+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogSWYgbm90IHVzaW5nIG1tYXAnZWQgZmlsZXMgdHJ5IHRvIHNlZWsgdG8gdGhlIGVuZCBpbnN0ZWFkIG9mIHRoZSBzdGFydCB0byBkZXRlcm1pbmUgd2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKaW5kcmljaCBNYWtvdmlja2EgPGppbmRyaWNoLm1ha292aWNrIGF0IGl0b25pcyBkb3QgdHY+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICBJZiBub3QgdXNpbmcgbW1hcCdlZCBmaWxlcyB0cnkgdG8gc2VlayB0byB0aGUgZW5kIGluc3RlYWQgb2YgdGhlCgkgIHN0YXJ0IHRvIGRldGVybWluZSB3aGV0aGVyIHdlIGNhbiBzZWVrIGF0IGFsbC4gVGhpcyBmaXhlcyB0aGUgY2FzZQoJICBvZiAyR0IrIGZpbGVzIG92ZXIgTkZTLCB3aGVyZSBzZWVrcyBpbiB0aGUgZmlyc3QgMkdCIGNhbiBzdWNjZWVkIGJ1dAoJICBzZWVrcyBmb3IgZXZlcnl0aGluZyBhZnRlcndhcmRzIGZhaWwuIEZpeGVzICM0MDA2NTYKCjIwMDctMDEtMjUgMTc6NDE6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBBZGQgc29tZSByZWZjb3VudCBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChfZ3N0X2NhcHNfZnJlZSksIChnc3Rfc3RhdGljX2NhcHNfZ2V0KToKCSAgQWRkIHNvbWUgcmVmY291bnQgZGVidWdnaW5nLgoJICBNYWtlIGdzdF9zdGF0aWNfY2Fwc19nZXQgdGhyZWFkc2FmZSwgd2hpY2ggaXMgbmVlZGVkIHdoZW4gYXV0b3BsdWdnaW5nCgkgIGluIG11bHRpcGxlIHN0cmVhbWluZyB0aHJlYWRzLgoKMjAwNy0wMS0yNSAxMDo1MDowMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBBUEk6IGdzdF9hZGFwdGVyX2NvcHkoKSB0aGF0IGNhbiByZWR1Y2UgdGhlIGFtb3VudCBvZiBtZW1jcHkgd2hlbiBnZXR0aW5nIGRhdGEgZnJvbSB0aGUgYWRhcHRlci4gRml4ZXMgIzM4ODIwMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBEYXZpZCBTY2hsZWVmIDxkcyBhdCBzY2hsZWVmIGRvdCBvcmc+CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2NvcHkpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBBUEk6IGdzdF9hZGFwdGVyX2NvcHkoKSB0aGF0IGNhbiByZWR1Y2UgdGhlIGFtb3VudCBvZiBtZW1jcHkgd2hlbgoJICBnZXR0aW5nIGRhdGEgZnJvbSB0aGUgYWRhcHRlci4gRml4ZXMgIzM4ODIwMS4KCjIwMDctMDEtMjUgMTA6MTQ6MDkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnliaW5hcnkuYzogSW4gcHJpbnQgc3RhdGVtZW50cywgIiV4IiBpcyBmb3IgZ3VpbnQuIEZpeGVzIGJ1aWxkIG9uIG1hY29zeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICBJbiBwcmludCBzdGF0ZW1lbnRzLCAiJXgiIGlzIGZvciBndWludC4gRml4ZXMgYnVpbGQgb24gbWFjb3N4LgoKMjAwNy0wMS0yNCAxMTozMjowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiBTbWFsbCBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAoZ3N0X211bHRpX3F1ZXVlX2xvb3ApOgoJICBTbWFsbCBmaXguCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBJbXBsZW1lbnQgc2luZ2xlIHF1ZXVlIGdyb3d0aCBzeXN0ZW0uCgkgIFRoaXMgdXNlcyB0aGUgZXh0cmEtc2l6ZSBwcm9wZXJ0aWVzLCBhbmQgd2lsbCBncm93IHNpbmdsZSBxdWV1ZXMgYnkKCSAgdGhhdCBtdWNoIGlmIG9uZSBnb2VzIGZ1bGwgd2hlcmVhcyB0aGVyZSBhcmUgb3RoZXJzIGVtcHR5LiBUaGlzIGlzCgkgIGNhbGxlZCBleHRyYS1tb2RlIGluIHRoZSBjb2RlLgoJICBXaGVuIGEgc2luZ2xlIHF1ZXVlJ3MgbGV2ZWxzIGdvIGJhY2sgYmVsb3cgdGhlIGluaXRpYWwgbWF4LXNpemUKCSAgbGltaXRzLCBpdCBpcyBubyBsb25nZXIgaW4gZXh0cmEtbW9kZS4gVGhpcyBpcyB0byBlbnN1cmUgd2UgZG9uJ3QKCSAgY29uc3VtZSB0b28gbXVjaCBtZW1vcnkuCgkgIEZpeGVzICMzOTk4NzUKCjIwMDctMDEtMjMgMTM6NTA6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IE1ha2Ugd2FybmluZyBhYm91dCBsYXRlIGdfdGhyZWFkX2luaXQoKSBjYWxscyBhIGJpdCBtb3JlIGV4cGxpY2l0LCBzbyB0aGF0IGl0J3MgbW9yZSBvYnZpb3VzIHRvIGFwcGxpY2F0aW8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCk6CgkgIE1ha2Ugd2FybmluZyBhYm91dCBsYXRlIGdfdGhyZWFkX2luaXQoKSBjYWxscyBhIGJpdCBtb3JlIGV4cGxpY2l0LAoJICBzbyB0aGF0IGl0J3MgbW9yZSBvYnZpb3VzIHRvIGFwcGxpY2F0aW9uIGRldmVsb3BlcnMgd2hhdCB0aGV5IG5lZWQKCSAgdG8gZG8gaWYgYSB1c2VyIGZpbGVzIGEgYnVnIGFnYWluc3QgdGhlaXIgYXBwbGljYXRpb24uCgoyMDA3LTAxLTIyIDE2OjAwOjM5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IFJlbW92ZSBwcmV2aW91cyBoYWNrIG9mIHVuc2V0dGluZyB0aGUgZmx1c2hpbmcgZmxhZyBmb3IgdGhlIHNvdXJjZSBwYWQgaW5zdGVhZCBvZiBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOgoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9zaW5nbGVfcXVldWVfbmV3KToKCSAgUmVtb3ZlIHByZXZpb3VzIGhhY2sgb2YgdW5zZXR0aW5nIHRoZSBmbHVzaGluZyBmbGFnIGZvciB0aGUgc291cmNlIHBhZAoJICBpbnN0ZWFkIG9mIGFjdGl2YXRpbmcgaXQuIEluc3RlYWQsIGZpeCB0aGUgc291cmNlIHBhZCBhY3RpdmF0ZSBmdW5jdGlvbgoJICBzbyB0aGF0IGl0IG5vIGxvbmdlciBkZXBlbmRzIG9uIGhhdmluZyBhIHBhcmVudCBzZXQgb3Igbm90LgoKMjAwNy0wMS0yMiAxNDozMDoyNyArMDAwMCAgQ2FybG9zIFNhbm1hcnRpbiBEb21pbmd1ZXogPGNzYW5tYXJ0aW5AaWdhbGlhLmNvbT4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOiBGaXggZXhhbXBsZSBjb2RlLCBnc3RfZWxlbWVudF91bnJlZigpIGRvZXNuJ3QgZXhpc3QgYW55IGxvbmdlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBDYXJsb3MgU2FubWFydGluIERvbWluZ3VleiA8Y3Nhbm1hcnRpbkBpZ2FsaWEuY29tPgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICBGaXggZXhhbXBsZSBjb2RlLCBnc3RfZWxlbWVudF91bnJlZigpIGRvZXNuJ3QgZXhpc3QgYW55IGxvbmdlci4KCjIwMDctMDEtMjEgMjA6MjQ6MTEgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBnc3QvZ3N0cGFkLmM6IEZpeCB0d28gZG9jcyB0eXBvZXMgKCMzOTkwOTQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgYmU+CgkgICogZ3N0L2dzdHBhZC5jOgoJICBGaXggdHdvIGRvY3MgdHlwb2VzICgjMzk5MDk0KS4KCjIwMDctMDEtMTkgMDk6MTU6MjEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IEFkZCBnc3QtcGx1Z2lucy1iYXNlL2dzdC91dGlscy8gdG8gTERfTElCUkFSWV9QQVRIIHNvIHRoYXQgcGx1Z2lucyBkZXBlbmRpbmcgb24gbGliZ3N0YmFzZXUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBZGQgZ3N0LXBsdWdpbnMtYmFzZS9nc3QvdXRpbHMvIHRvIExEX0xJQlJBUllfUEFUSCBzbyB0aGF0IHBsdWdpbnMKCSAgZGVwZW5kaW5nIG9uIGxpYmdzdGJhc2V1dGlscyBjYW4gd29yayBpbiB1bmluc3RhbGxlZCBlbnZpcm9ubWVudC4KCjIwMDctMDEtMTggMTI6MDA6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IEFkZCBtb3JlIGRvY3MgcmVnYXJkaW5nIHRhZyBtZXJnZS1tb2RlcyBhbmQgd2hlbiB0byBzZW5kIHRhZ3MuIEZpeCAnc2luY2UnIHN0YXRlbWVudCBmb3IgbmV3IHRhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIEFkZCBtb3JlIGRvY3MgcmVnYXJkaW5nIHRhZyBtZXJnZS1tb2RlcyBhbmQgd2hlbiB0byBzZW5kIHRhZ3MuIEZpeCAnc2luY2UnCgkgIHN0YXRlbWVudCBmb3IgbmV3IHRhZy4KCjIwMDctMDEtMTcgMTQ6MzM6MzkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpcXVldWUuYzogV2hlbiBkeW5hbWljYWxseSBjcmVhdGluZyBzaW5nbGUgcXVldWVzLCBhY3RpdmF0ZSBzaW5rcGFkIGJlZm9yZSBhZGRpbmcgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5jOiAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICBXaGVuIGR5bmFtaWNhbGx5IGNyZWF0aW5nIHNpbmdsZSBxdWV1ZXMsIGFjdGl2YXRlIHNpbmtwYWQgYmVmb3JlIGFkZGluZwoJICBpdC4KCSAgV2Ugc2hvdWxkIGJlIGRvaW5nIHRoZSBzYW1lIHRoaW5nIGZvciB0aGUgc291cmNlIHBhZCwgYnV0IHdlIGNhbid0CgkgIHNpbmNlIGl0IHdvdWxkIGNhbGwgYSBtZXRob2Qgd2hpY2ggbmVlZHMgdGhlIHBhcmVudCB0byBiZSBzZXQgaW4gb3JkZXIKCSAgdG8gd29yayBwcm9wZXJ0bHkuIEluc3RlYWQgb2YgYWN0aXZhdGluZyB0aGUgc291cmNlIHBhZCwgd2UganVzdCB1bnNldAoJICB0aGUgZmx1c2hpbmcgZmxhZywgd2hpY2ggaXMgdGhlIG1pbmltYWwgcmVxdWlyZW1lbnQgZm9yIGFkZGluZyBhIHBhZAoJICB0byBhbiBlbGVtZW50IGluIGEgc3RhdGUgZ3JlYXRlciB0aGFuIFJFQURZLgoKMjAwNy0wMS0xNyAxNDoyNjo0NiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogQWRkIERZTERfTElCUkFSWV9QQVRIIGRlY2xhcmF0aW9ucyBzbyB3ZSBjYW4gYWxzbyB1c2UgdGhpcyBzY3JpcHQgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBBZGQgRFlMRF9MSUJSQVJZX1BBVEggZGVjbGFyYXRpb25zIHNvIHdlIGNhbiBhbHNvIHVzZSB0aGlzIHNjcmlwdCBvbgoJICBNYWMgT1MgWC4KCjIwMDctMDEtMTcgMTI6MzE6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay86IEFkZCBBQkkgc3RydWN0cyBmb3IgSFBQQSAoc2VlICMzOTM3OTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9ocHBhLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaHBwYS5oOgoJICBBZGQgQUJJIHN0cnVjdHMgZm9yIEhQUEEgKHNlZSAjMzkzNzk2KS4KCjIwMDctMDEtMTYgMDk6NTc6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBBY3R1YWxseSB3cml0ZSBBQkkgc3RydWN0cyB0byB0aGUgZmlsZSBzcGVjaWZpZWQgaW4gdGhlIEdTVF9BQkkgZW52aXJvbm1lbnQgdmFyaWFibGUsIGFzIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19hYmlfbGlzdCk6CgkgIEFjdHVhbGx5IHdyaXRlIEFCSSBzdHJ1Y3RzIHRvIHRoZSBmaWxlIHNwZWNpZmllZCBpbiB0aGUgR1NUX0FCSQoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYXMgdGhlIG1lc3NhZ2Ugd2UgcHJpbnQgY2xhaW1zIHdlIHdvdWxkLgoKMjAwNy0wMS0xNSAxNDo1MTowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHRhc2suYzogRml4IGhlYWRlciBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOgoJICBGaXggaGVhZGVyIGNvbW1lbnQuCgoyMDA3LTAxLTE1IDE0OjM5OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBDaGFuZ2UgdGFnIHR5cGUgZnJvbSBTVFJJTkcgdG8gRE9VQkxFLiBBcHBseSBDaGFuZ2VMb2cgc3VyZ2VyeSBmb3IgbXkgcHJldmlvdXMgdHdvIGVudHJpZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgQ2hhbmdlIHRhZyB0eXBlIGZyb20gU1RSSU5HIHRvIERPVUJMRS4gQXBwbHkgQ2hhbmdlTG9nIHN1cmdlcnkgZm9yIG15CgkgIHByZXZpb3VzIHR3byBlbnRyaWVzLgoKMjAwNy0wMS0xNSAxMzo1NzoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkIHRhZyBzdXBwb3J0IGZvciBiZWF0LXBlci1taW51dGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgYWRkIHRhZyBzdXBwb3J0IGZvciBiZWF0LXBlci1taW51dGUKCjIwMDctMDEtMTUgMTI6MTg6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS4qOiB1c2UgZ2xpYiB0eXBlcywgY2xlYW51cCBjb21tZW50cywgaW1wZW1lbnQgaW50ZXJmYWNlcyBhbmQgdXJpLXR5cGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2luaXRpYWxpemVfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3N0cmluZyksIChnc3RfcmVnaXN0cnlfYmluYXJ5X21ha2VfZGF0YSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV93cml0ZV9jYWNoZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2NoZWNrX21hZ2ljKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfbG9hZF9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3JlYWRfY2FjaGUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeWJpbmFyeS5oOgoJICB1c2UgZ2xpYiB0eXBlcywgY2xlYW51cCBjb21tZW50cywgaW1wZW1lbnQgaW50ZXJmYWNlcyBhbmQgdXJpLXR5cGVzCgoyMDA3LTAxLTEzIDEwOjMzOjQxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZ2V0X3JhbmdlLCBnc3RfcGFkX3B1bGxfcmFuZ2UpOiBBbGxvdyBnZXRyYW5nZSgpIHRvIHJldHVybiBidWZmZXJzIHdpdGggb3RoZXIgY2Fwcywgd2hpbGUgd2UgZmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogQWxsb3cKCSAgZ2V0cmFuZ2UoKSB0byByZXR1cm4gYnVmZmVycyB3aXRoIG90aGVyIGNhcHMsIHdoaWxlIHdlIGZpeAoJICBkZW11eGVycyBhbmQgdHlwZWZpbmQsIG9yIG90aGVyd2lzZSBjaGFuZ2UgcGFydC1uZWdvdGlhdGlvbi50eHQuCgoyMDA3LTAxLTEyIDIxOjEzOjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2FjdGl2YXRlKTogRmFjdG9yIHN0YXJ0L3N0b3AgaW50byB0aGlzIHByaXZhdGUgZnVuY3Rpb24gaW5zdGVhZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSk6CgkgIEZhY3RvciBzdGFydC9zdG9wIGludG8gdGhpcyBwcml2YXRlIGZ1bmN0aW9uIGluc3RlYWQgb2YgcGFydGlhbGx5CgkgIGluIGFjdGl2YXRlIGZ1bmN0aW9ucyBhbmQgcGFydGlhbGx5IGluIHRoZSBjaGFuZ2Vfc3RhdGUgZnVuY3Rpb24uCgkgIEZpeGVzIHNldHVwIGJlZm9yZSB0aGUgZWxlbWVudCBoYXMgY2hhbmdlZCBmcm9tIFJFQURZLT5QQVVTRUQsIGFzCgkgIGlzIHRoZSBjYXNlIGluIHB1bGwtbW9kZSBwaXBlbGluZXMuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZV9wdXNoKQoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZV9wdWxsKTogUmVmYWN0b3IgdG8gdXNlCgkgIGdzdF9iYXNlX3RyYW5zZm9ybV9hY3RpdmF0ZSgpLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6IFJlbW92ZWQsIG5vdCBuZWVkZWQgYW55IG1vcmUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKToKCSAgVHJ1bmNhdGUgYmVmb3JlIGZpeGF0aW5nLgoKMjAwNy0wMS0xMiAxODowNjoyOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKTogRG9uJ3Qgc2V0X2NhcHMoKSBpZiB0aGUgcmVzdWx0IG9mIGZpeGF0aW5nIGlzIEFOWSwgYXMgaXQnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19uZWdvdGlhdGVfcHVsbCk6CgkgIERvbid0IHNldF9jYXBzKCkgaWYgdGhlIHJlc3VsdCBvZiBmaXhhdGluZyBpcyBBTlksIGFzIGl0J3Mgbm90CgkgIHN1cHBvcnRlZCwgYW5kIG5vdCBuZWNlc3NhcnkgaW4gdGhlIGNhc2Ugb2YgYSBsaW5rIHdpdGggbm8KCSAgdGVtcGxhdGUgY2FwcyBvbiBlaXRoZXIgc2lkZS4gRml4ZXMgdGVzdHMvY2hlY2svbGlicy9iYXNlc3JjIGluCgkgIHNvbWUgcHVsbC1tb2RlIHRlc3RzLgoKMjAwNy0wMS0xMiAxNTo1NjowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKF9Hc3RCYXNlVHJhbnNmb3JtUHJpdmF0ZSk6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCwgZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChfR3N0QmFzZVRyYW5zZm9ybVByaXZhdGUpOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQsIGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2FjdGl2YXRlX3B1c2gpCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBUcmFjayB0aGUgYWN0aXZhdGlvbiBtb2RlLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBJbiBwdWxsIG1vZGUsIHdoZW4gYWN0aXZhdGluZyB0aGUKCSAgc3JjIHBhZCwgYWZ0ZXIgYWN0aXZhdGluZyB0aGUgc2luayBwYWQsIGFjdGl2YXRlIHRoZSBzaW5rIHBhZCdzCgkgIHBlZXIsIGFzIGRpc2N1c3NlZCBpbiBwYXJ0LW5lZ290aWF0aW9uLnR4dC4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX2ZpeGF0ZSk6IEFkZCBmaXhhdGUKCSAgdm1ldGhvZCwgYXMgaW4gYmFzZXNpbmsuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBSZWZvcm1hdCBkb2NzLCBhZGQgZml4YXRlIHZtZXRob2QuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX3BhZF9zZXRjYXBzKTogSW4gcHVsbAoJICBtb2RlLCBmaXJzdCBwcm94eSB0aGUgc2V0Y2FwcyB0byB0aGUgcGVlciBwYWQuCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9maXhhdGUpOiBBZGQgYSBmaXhhdGUgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUKCSAgbmV3IGZpeGF0ZSB2bWV0aG9kLgoJICAoZ3N0X2Jhc2Vfc2lua19kZWZhdWx0X2FjdGl2YXRlX3B1bGwpOiBSZW5hbWUgZnJvbQoJICBnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwuCgkgIChnc3RfYmFzZV9zaW5rX25lZ290aWF0ZV9wdWxsKTogTmV3IGZ1bmN0aW9uLCBwZXJmb3JtcyBuZWdvdGlhdGlvbgoJICBpbiBwdWxsIG1vZGUgYmVmb3JlIGNhbGxpbmcgOjphY3RpdmF0ZV9wdWxsKCkuCgkgIChnc3RfYmFzZV9zaW5rX3BhZF9hY3RpdmF0ZV9wdWxsKTogQWN0dWFsbHkgY2FsbCB0aGUgYWN0aXZhdGVfcHVsbAoJICB2bWV0aG9kIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uIEkgaGF2ZSBubyBpZGVhIGhvdwoJICB0aGlzIHdvcmtlZCBiZWZvcmUuIE5lZ290aWF0ZSBiZWZvcmUgY2FsbGluZyBhY3RpdmF0ZV9wdWxsLgoKMjAwNy0wMS0xMiAxNTo0ODowMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpOiBSZWZ1c2UgdG8gYWN0aXZhdGUgdW5saW5rZWQgc2luayBwYWRzIGluIHB1bGwgbW9kZS4gSW4gYWRkaXRpb24gdG8gYmVpbmcgY29ycmVjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKTogUmVmdXNlIHRvIGFjdGl2YXRlIHVubGlua2VkCgkgIHNpbmsgcGFkcyBpbiBwdWxsIG1vZGUuIEluIGFkZGl0aW9uIHRvIGJlaW5nIGNvcnJlY3QsIGZpeGVzCgkgIGZpbGVzcmMgISBkZWNvZGViaW4gISBpZGVudGl0eSAhIGZha2VzaW5rLgoJICAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IERvbid0IGNhbGwKCSAgZ3N0X3BhZF9zZXRfY2FwcygpIGlmIHRoZSBjYXBzIGNoYW5nZXM7IGluc3RlYWQgZXJyb3Igb3V0IHdpdGgKCSAgR1NUX0ZMT1dfTk9UX05FR09USUFURUQsIGFzIGRpc2N1c3NlZCBpbiBwYXJ0LW5lZ290aWF0aW9uLnR4dC4KCjIwMDctMDEtMTIgMTU6Mzk6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbmVnb3RpYXRpb24udHh0OiBVcGRhdGUgd2l0aCBtb3JlIHBvbGljeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMTIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB3aXRoIG1vcmUgcG9saWN5LgoKMjAwNy0wMS0xMiAxMjo0ODoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2NoZWNrLzogQWRkIEdfQkVHSU5fREVDTFMgYW5kIEdfRU5EX0RFQ0xTLiBNb3ZlIEdTVF9DSEVDS19NQUlOIHdoZXJlIGl0IGJlbG9uZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgQWRkIEdfQkVHSU5fREVDTFMgYW5kIEdfRU5EX0RFQ0xTLiBNb3ZlIEdTVF9DSEVDS19NQUlOIHdoZXJlIGl0CgkgIGJlbG9uZ3MuCgoyMDA3LTAxLTEyIDEwOjUzOjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgbWluaW1hbCB1bml0IHRlc3QgZm9yIGJlZm9yZW1lbnRpb25lZCBHc3RUYWdTZXR0ZXIgYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfZHVtbXlfZW5jX2FkZF9pbnRlcmZhY2VzKSwKCSAgKGdzdF9kdW1teV9lbmNfYmFzZV9pbml0KSwgKGdzdF9kdW1teV9lbmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZHVtbXlfZW5jX2luaXQpLCAodGFnX2xpc3RfZm9yZWFjaCksICh0YWdfc2V0dGVyX2xpc3RfbGVuZ3RoKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90YWdfc2V0dGVyX3N1aXRlKToKCSAgQWRkIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBiZWZvcmVtZW50aW9uZWQgR3N0VGFnU2V0dGVyIGJ1Zy4KCjIwMDctMDEtMTIgMTA6NDg6NDkgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLmM6IGdzdF90YWdfbGlzdF9tZXJnZSgpIHJldHVybnMgYSBuZXcgbGlzdCwgc28gaXQncyBub3QgdGhlIGJlc3QgaWRlYSB0byBpbmdvcmUgaXRzIHJldHVybiB2YWx1ZS4gRWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6IChnc3RfdGFnX3NldHRlcl9tZXJnZV90YWdzKToKCSAgZ3N0X3RhZ19saXN0X21lcmdlKCkgcmV0dXJucyBhIG5ldyBsaXN0LCBzbyBpdCdzIG5vdCB0aGUgYmVzdCBpZGVhCgkgIHRvIGluZ29yZSBpdHMgcmV0dXJuIHZhbHVlLiBFZmZlY3RpdmVseSBtZWFudCB0aGF0IHRhZ3MgY291bGQgb25seQoJICBiZSBtZXJnZWQgb24gYSBHc3RUYWdTZXR0ZXIgb25jZSB1c2luZyBfbWVyZ2VfdGFncygpLiBGaXhlcyAjMzk1NTU0LgoJICBBbHNvIGFkZCBmdW5jdGlvbiBndWFyZCB0byByZXF1aXJlIGEgbm9uLU5VTEwgdGFnbGlzdCBhcyBpbnB1dCAoaGFzCgkgIGFsd2F5cyBiZWVuIHNvIGR1ZSB0byBnc3RfdGFnX2xpc3RfY29weSgpLCBqdXN0IG1ha2luZyBpdCBleHBsaWNpdCkuCgoyMDA3LTAxLTExIDE1OjAzOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogU29tZSBhZGRpdGlvbnM6IG1lbnRpb24gbmV3IEFQSSB0aGF0IGlzIHN1cHBvc2VkIHRvIGJlIHVzZWQgYXQgdGhlIHZhcmlvdXMgc3RhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIFNvbWUgYWRkaXRpb25zOiBtZW50aW9uIG5ldyBBUEkgdGhhdCBpcyBzdXBwb3NlZCB0byBiZSB1c2VkIGF0IHRoZQoJICB2YXJpb3VzIHN0YWdlczsgc2hvcnQgYmxvYiBhYm91dCBuZXcgZ3N0LWluc3BlY3QgaW50cm9zcGVjdGlvbgoJICBvcHRpb247IG1lbnRpb24gcG90ZW50aWFsIGZ1dHVyZSBwcm9ibGVtIHdpdGggcGx1Z2lucyB0aGF0IGhhdmUKCSAgYSBkeW5hbWljIGxpc3Qgb2YgZWxlbWVudHMgKHN1Y2ggYXMgbGFkc3BhLCBwaXRmZGxsLCBsaWJ2aXN1YWwpLgoKMjAwNy0wMS0xMSAxNDoxNjoyMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCAtLXByaW50LXBsdWdpbi1hdXRvLWluc3RhbGwtaW5mbyBvcHRpb24gdG8gZ3N0LWluc3BlY3QsIHNvIHdlIGNhbiBpbnRyb3NwZWN0IHBsdWdpbiBmaWxlcyBhbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICAocHJpbnRfcGx1Z2luX2F1dG9tYXRpY19pbnN0YWxsX2luZm9fY29kZWNzKSwKCSAgKHByaW50X3BsdWdpbl9hdXRvbWF0aWNfaW5zdGFsbF9pbmZvX3Byb3RvY29scyksCgkgIChwcmludF9wbHVnaW5fYXV0b21hdGljX2luc3RhbGxfaW5mbyksIChtYWluKToKCSAgQWRkIC0tcHJpbnQtcGx1Z2luLWF1dG8taW5zdGFsbC1pbmZvIG9wdGlvbiB0byBnc3QtaW5zcGVjdCwgc28gd2UgY2FuCgkgIGludHJvc3BlY3QgcGx1Z2luIGZpbGVzIGFuZCBnZXQgbWFjaGluZS1wYXJzYWJsZSBvdXRwdXQgdGhhdCBjb3JyZXNwb25kcwoJICB0byB0aGUgbGFzdCBiaXQgb2YgdGhlIG1pc3NpbmctcGx1Z2luIGluc3RhbGxlciBzdHJpbmcgKHNtYWxsIGdvdGNoYToKCSAgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCByYW5rcykuCgoyMDA3LTAxLTExIDEzOjQ1OjUxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjb21taXQgYmluYXJ5IHJlZ2lzdHJ5IChkaXNhYmxlZCBieSBkZWZhdWx0LCBzZWUgIzM1OTY1MykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfbG9va3VwX2xvY2tlZCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5LmM6IChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfaW5pdGlhbGl6ZV9tYWdpYyksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3NhdmVfc3RyaW5nKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X3dyaXRlX2NhY2hlKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfY2hlY2tfbWFnaWMpLAoJICAoZ3N0X3JlZ2lzdHJ5X2JpbmFyeV9sb2FkX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfZmVhdHVyZSksCgkgIChnc3RfcmVnaXN0cnlfYmluYXJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV9iaW5hcnlfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5YmluYXJ5Lmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKToKCSAgY29tbWl0IGJpbmFyeSByZWdpc3RyeSAoZGlzYWJsZWQgYnkgZGVmYXVsdCwgc2VlICMzNTk2NTMpCgoyMDA3LTAxLTExIDEwOjQ4OjU5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiBGaXggJ21ha2UgY2hlY2snIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAodGVzdF9nZXRfYWxsb3dlZF9jYXBzKToKCSAgRml4ICdtYWtlIGNoZWNrJyB0b28uCgoyMDA3LTAxLTEwIDIxOjI0OjA4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogRml4IGEgdHlwbywgYWRkIGEgY291cGxlIG5vdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogRml4IGEgdHlwbywgYWRkIGEgY291cGxlCgkgIG5vdGVzLgoKMjAwNy0wMS0xMCAyMToxNTowOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6IFVwZGF0ZSB3aXRoLCB1bSwgb25lIHdheSB0aGF0IHB1bGwtbW9kZSBuZWdvdGlhdGlvbiBtaWdodCB3b3JrPwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNy0wMS0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDogVXBkYXRlIHdpdGgsIHVtLCBvbmUgd2F5IHRoYXQKCSAgcHVsbC1tb2RlIG5lZ290aWF0aW9uIG1pZ2h0IHdvcms/CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfYWxsb3dlZF9jYXBzKTogUmVtb3ZlIHRoZSByZXN0cmljdGlvbgoJICB0aGF0IHRoZSBwYWQgbXVzdCBiZSBhIHNyYyBwYWQ7IG1ha2VzIHNlbnNlIHRvIGNhbGwgaXQgdGhlIG90aGVyCgkgIHdheSBpbiBwdWxsIG1vZGUsIGFuZCB0aGUgbG9naWMgaXMgc3ltbWV0cmljIGFueXdheS4KCjIwMDctMDEtMTAgMTk6MjU6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IEluY2x1ZGUgPHN0ZGlvLmg+IGZvciBmc2Vla28oKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBJbmNsdWRlIDxzdGRpby5oPiBmb3IgZnNlZWtvKCkuCgoyMDA3LTAxLTEwIDEwOjIxOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGV2ZW50Lio6IFJlc2VydmUgTEFURU5DWSBldmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIFJlc2VydmUgTEFURU5DWSBldmVudC4KCjIwMDctMDEtMDkgMTg6MDk6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDogVXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6CgkgIFVwZGF0ZXMuCgoyMDA3LTAxLTA5IDE1OjM4OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IFVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWxhdGVuY3kudHh0OgoJICBVcGRhdGVzLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3R0cmFjZS5jOgoJICBTbWFsbCB0eXBvIGZpeGVzLgoKMjAwNy0wMS0wOSAxNDozODoxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrLy5jdnNpZ25vcmU6IElnbm9yZSB0ZXN0LXJlZ2lzdHJ5LnhtbCBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay8uY3ZzaWdub3JlOgoJICBJZ25vcmUgdGVzdC1yZWdpc3RyeS54bWwgYXMgd2VsbC4KCjIwMDctMDEtMDkgMTI6MzQ6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IHVucmVmIGRhdGEgYXQgdGhlIGVuZCB3aGVuIHdlIGFyZSBkb25lIHdpdGggdGhlIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKToKCSAgdW5yZWYgZGF0YSBhdCB0aGUgZW5kIHdoZW4gd2UgYXJlIGRvbmUgd2l0aCB0aGUgcGFkLgoKMjAwNy0wMS0wOCAyMDozMDoxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIGdzdF91cGRhdGVfcmVnaXN0cnkoKSAoIzM5MTI5NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdC5jOiAobG9hZF9wbHVnaW5fZnVuYyksIChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLAoJICAoaW5pdF9wb3N0KSwgKGdzdF9kZWluaXQpLCAoZ3N0X3VwZGF0ZV9yZWdpc3RyeSk6CgkgICogZ3N0L2dzdC5oOgoJICBBUEk6IGFkZCBnc3RfdXBkYXRlX3JlZ2lzdHJ5KCkgKCMzOTEyOTYpLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RyZWdpc3RyeS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICBTaW1wbGUgdW5pdCB0ZXN0IGZvciB0aGUgYWJvdmUuCgoyMDA3LTAxLTA4IDE2OjIzOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFBsdWdpbiBleHRlbnNpb24gb24gSFAtVVggaXMgLnNsLCBhZGQgdGhhdCB0byB0aGUgbGlzdCBvZiBhcHByb3ZlZCBwbHVnaW4gZXh0ZW5zaW9ucyAoc2VlICMzOTM3OTYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpOgoJICBQbHVnaW4gZXh0ZW5zaW9uIG9uIEhQLVVYIGlzIC5zbCwgYWRkIHRoYXQgdG8gdGhlIGxpc3Qgb2YgYXBwcm92ZWQKCSAgcGx1Z2luIGV4dGVuc2lvbnMgKHNlZSAjMzkzNzk2KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHVsb25nID0+IGd1bG9uZy4gRml4ZXMgY29tcGlsYXRpb24gd2l0aCBIUC1VWCBjb21waWxlci4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBjb21waWxhdGlvbiBpZiB2YWxncmluZCBoZWFkZXJzIGFyZSBub3QgYXZhaWxhYmxlLgoKMjAwNy0wMS0wNyAxMDoyMTozMyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBBZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9uLgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgQWRkIGdzdGRhdGFxdWV1ZS5jIHRvIHRoZSBidWlsZC4KCSAgKiB3aW4zMi92czYvbGliZ3N0Y29yZWVsZW1lbnRzLmRzcDoKCSAgQWRkIGdzdG11bHRpcXVldWUuYyB0byB0aGUgYnVpbGQuCgoyMDA3LTAxLTA2IDE3OjE4OjAzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6IE5ldyBHc3RCYXNlU2lua0NsYXNzIHZtZXRob2QsIGFjdGl2YXRlX3B1bGwoKSwgcHJvdmlkaW5nIGZvciBhIHdheSB0byBzcGVjaWFsaXplIHRoZSBwcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDctMDEtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBOZXcgR3N0QmFzZVNpbmtDbGFzcyB2bWV0aG9kLAoJICBhY3RpdmF0ZV9wdWxsKCksIHByb3ZpZGluZyBmb3IgYSB3YXkgdG8gc3BlY2lhbGl6ZSB0aGUgcHJvY2VzcyBvZgoJICBzcGF3bmluZyBhIHRocmVhZCB0byBwdWxsIG9uIHRoZSBzaW5rIHBhZC4gVGhlcmUgaXMgYSBkZWZhdWx0CgkgIGltcGxlbWVudGF0aW9uLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2Vfc2lua19wYWRfYWN0aXZhdGVfcHVsbCkKCSAgKGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlX3B1c2gsIGdzdF9iYXNlX3NpbmtfcGFkX2FjdGl2YXRlKQoJICAoZ3N0X2Jhc2Vfc2lua19pbml0KTogUmVuYW1lZCBwYWQgYWN0aXZhdGlvbiBmdW5jdGlvbnMgKGluc2VydGluZwoJICAiX3BhZCIgaW4gdGhlaXIgbmFtZXMpLiBSZWZhY3RvciB0byB1c2UgdGhlIG5ldyBhY3RpdmF0ZV9wdWxsCgkgIHZtZXRob2QsIGFzIGFwcHJvcHJpYXRlLgoJICAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0LCBnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOiBTZXQgdGhlCgkgIGRlZmF1bHQgYWN0aXZhdGVfcHVsbCBmdW5jdGlvbiB0byBzdGFydCBhIHRhc2sgcHVsbGluZyBmcm9tIHRoZQoJICBzaW5rIHBhZCwgYXMgYmVmb3JlLgoKMjAwNy0wMS0wNiAxNzowOToxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2dldF9yYW5nZSwgZ3N0X3BhZF9wdWxsX3JhbmdlKTogU2V0IGNhcHMgb24gdGhlIHBhZHMgaWYgbmVjZXNzYXJ5LCBhcyBpbiBwdXNoKCkvY2hhaW4oKS4gVXBkYXRlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA3LTAxLTA2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9nZXRfcmFuZ2UsIGdzdF9wYWRfcHVsbF9yYW5nZSk6IFNldCBjYXBzCgkgIG9uIHRoZSBwYWRzIGlmIG5lY2Vzc2FyeSwgYXMgaW4gcHVzaCgpL2NoYWluKCkuIFVwZGF0ZSBkb2NzLgoJICBTaG91bGRuJ3QgYWZmZWN0IGV4aXN0aW5nIHB1bGwoKSB1c2FnZSBhcyBpdCBpcyBjdXJyZW50bHkgb25seQoJICBiZWluZyB1c2VkIG9uIGJ1ZmZlcnMgd2l0aG91dCBjYXBzLgoKMjAwNy0wMS0wNSAxNjozNjozNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogQ2FsbCBnX3RocmVhZF9pbml0KCkgZmlyc3QgdGhpbmcgaW4gZ3N0X2luaXQoKSAvIGdzdF9jaGVja19pbml0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApLCAoZ3N0X2luaXRfY2hlY2spLAoJICAoaW5pdF9wcmUpOgoJICBDYWxsIGdfdGhyZWFkX2luaXQoKSBmaXJzdCB0aGluZyBpbiBnc3RfaW5pdCgpIC8gZ3N0X2NoZWNrX2luaXQoKS4KCSAgV2hlbiBpbml0aWFsaXNhdGlvbiBpcyBkb25lIHZpYSBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkgYW5kCgkgIEdPcHRpb24gcGFyc2luZywgaXNzdWUgYSB3YXJuaW5nIGlmIHRoZSBHTGliIHRocmVhZCBzeXN0ZW0gaGFzIG5vdAoJICBiZWVuIGluaXRpYWxpc2VkIHlldCBieSB0aGUgdGltZSBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkgaXMKCSAgY2FsbGVkLCBhcyBpdCdzIHF1aXRlIGxpa2VseSBvdGhlciBHTGliIGZ1bmN0aW9ucyBzdWNoIGFzCgkgIGdfb3B0aW9uX2NvbnRleHRfbmV3KCkgaGF2ZSBiZWVuIGNhbGxlZCBhbHJlYWR5IHRoZW4sIGFuZAoJICBnX3RocmVhZF9pbml0KCkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBvdGhlciBHTGliIGZ1bmN0aW9uLiBUaGUKCSAgYXBwbGljYXRpb24gaW4gcXVlc3Rpb24gbXVzdCBiZSBmaXhlZCBpbiB0aGF0IGNhc2UsIHNpbmNlIG1lbW9yeQoJICBjb3JydXB0aW9uIG1pZ2h0IGhhcHBlbiBvdGhlcndpc2UuCgkgIFdlIGlzc3VlIHRoZSB3YXJuaW5nIGJlY2F1c2UgZXZlbiBpZiB0aGUgR0xpYiBmb2xrcyBkZWNpZGUgdG8gd29yawoJICBhcm91bmQgdGhlIHByb2JsZW0gb24gdGhlaXIgZW5kIGluIGZ1dHVyZSwgdGhpcyBpcyBzdGlsbCBhbiBpc3N1ZQoJICB3aXRoIGFsbCBHTGliIHZlcnNpb25zID49IDIuMTAuMCwgc28gd2Ugc2hvdWxkIHdhcm4gdW50aWwgd2UgZGVwZW5kCgkgIG9uIGEgR0xpYiB2ZXJzaW9uIHdlIGtub3cgdG8gYmUgc2FmZS4KCSAgVXBkYXRlIGRvY3VtZW50YXRpb24gYXMgd2VsbC4KCSAgQ2xvc2VzIGJ1ZyAjMzkxMjc4LgoKMjAwNy0wMS0wNSAxNTo1NToxNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzLzogQ2FsbCBnX3RocmVhZF9pbml0KCkgcmVhbGx5IHJlYWxseSBlYXJseSwgYmVmb3JlIGFueSBvdGhlciBHTGliIGZ1bmN0aW9uIChzZWUgIzM0MjU2NCBhbmQgcmVjZW50IGRpc2N1c3Npb24gby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiAobWFpbik6CgkgIENhbGwgZ190aHJlYWRfaW5pdCgpIHJlYWxseSByZWFsbHkgZWFybHksIGJlZm9yZSBhbnkgb3RoZXIgR0xpYgoJICBmdW5jdGlvbiAoc2VlICMzNDI1NjQgYW5kIHJlY2VudCBkaXNjdXNzaW9uIG9uIGd0ay1kZXZlbC1saXN0KS4KCjIwMDctMDEtMDUgMTM6MjM6MDIgKzAwMDAgIFZpbmNlbnQgVG9ycmkgPHZ0b3JyaUB1bml2LWV2cnkuZnI+CgoJICBnc3QvOiBPbiB3aW4zMiwgYWxsIHRoZSBfX2RlY2xzcGVjIHN0dWZmIGZvciBzeW1ib2wgZXhwb3J0aW5nIGlzIGFwcGFyZW50bHkgb25seSBuZWVkZWQgd2l0aCBNU1ZDLCBidXQgZG9lc24ndCB3b3JrIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBWaW5jZW50IFRvcnJpICA8dnRvcnJpIGF0IHVuaXYtZXZyeSBkb3QgZnI+CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIE9uIHdpbjMyLCBhbGwgdGhlIF9fZGVjbHNwZWMgc3R1ZmYgZm9yIHN5bWJvbCBleHBvcnRpbmcgaXMKCSAgYXBwYXJlbnRseSBvbmx5IG5lZWRlZCB3aXRoIE1TVkMsIGJ1dCBkb2Vzbid0IHdvcmsgd2l0aCBNaW5nVy4KCSAgRml4ZXMgY29tcGlsYXRpb24gd2l0aCBNaW5nVyBhbmQgIzM5MTkwOS4KCjIwMDctMDEtMDUgMTE6NTc6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQ2hhbmdlIHNvbWUgR1NUX0VSUk9SX09CSkVDVCB0aGF0IGFyZW4ndCByZWFsbHkgZXJyb3JzIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBDaGFuZ2Ugc29tZSBHU1RfRVJST1JfT0JKRUNUIHRoYXQgYXJlbid0IHJlYWxseSBlcnJvcnMgdG8KCSAgR1NUX1dBUk5JTkdfT0JKRUNUIGluIG9yZGVyIHRvIHJlZHVjZSB0ZXJtaW5hbCBzcGFtLgoKMjAwNy0wMS0wNCAxMzo1NDoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06IGRpc2FibGUgdGVzdCBhZ2FpbiwgYXMgdGhlcmUgc2VlbSB0byBiZSBzdGlsbCByYWNlIHByb2JsZW1zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkaXNhYmxlIHRlc3QgYWdhaW4sIGFzIHRoZXJlIHNlZW0gdG8gYmUgc3RpbGwgcmFjZSBwcm9ibGVtcwoKMjAwNy0wMS0wNCAxMzozNzowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBlbmFibGUgcXVldWUgdGVzdCBhZ2FpbiwgYWRkIHRlc3RzIGZvciB0aGUgbGVha3kgYmVoYXZpb3VyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHF1ZXVlX3N1aXRlKToKCSAgZW5hYmxlIHF1ZXVlIHRlc3QgYWdhaW4sIGFkZCB0ZXN0cyBmb3IgdGhlIGxlYWt5IGJlaGF2aW91cgoKMjAwNy0wMS0wMiAxNzowMTozMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIENvbXBpbGUgYWRhcHRlciB0ZXN0L2V4YW1wbGUgb25seSBpZiB0aGUgcmVxdWlyZWQgaGVhZGVycyBhcmUgYXZhaWxhYmxlIChmaXhlcyAjMzkxOTE1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBDb21waWxlIGFkYXB0ZXIgdGVzdC9leGFtcGxlIG9ubHkgaWYgdGhlIHJlcXVpcmVkIGhlYWRlcnMgYXJlCgkgIGF2YWlsYWJsZSAoZml4ZXMgIzM5MTkxNSkuCgoyMDA3LTAxLTAyIDA5OjMxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB0ZWxsIHVzIHdoYXQncyBub3QgaW1wbGVtZW50ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRlbGwgdXMgd2hhdCdzIG5vdCBpbXBsZW1lbnRlZAoKMjAwNy0wMS0wMiAwOTozMToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJ1bXAgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBidW1wIHRvIENWUwoKMjAwNy0wMS0wMiAwNjoxNDowNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IFJlc3RvcmUgdGhlIHByZXZpb3VzIHNpZ25hbCBoYW5kbGVyIGZvciBTSUdTRUdWIGluc3RlYWQgb2Ygc2V0dGluZyB0byBkZWZhdWx0LCBzaW5jZSB3ZSBtYXkgaGF2ZSBzdG8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBSZXN0b3JlIHRoZSBwcmV2aW91cyBzaWduYWwgaGFuZGxlciBmb3IgU0lHU0VHViBpbnN0ZWFkIG9mCgkgIHNldHRpbmcgdG8gZGVmYXVsdCwgc2luY2Ugd2UgbWF5IGhhdmUgc3RvbGVuIGl0IGF3YXkgZnJvbQoJICBzb21lb25lLiAgKGkuZS4sIE1vbm8pCgoyMDA2LTEyLTI2IDE1OjU1OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDogU29tZSBzbWFsbCBhZGRpdGlvbnMgYW5kIGNsYXJpZmljYXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBTb21lIHNtYWxsIGFkZGl0aW9ucyBhbmQgY2xhcmlmaWNhdGlvbnMuCgoyMDA2LTEyLTI2IDE1OjA2OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IE1ha2Ugc3VyZSB3ZSBkb24ndCBwYXNzIG5vbi1VVEYtOCBzdHJpbmdzIHRvIGdfbWFya3VwX2VzY2FwZSgpLCBzaW5jZSB0aGF0IGNhbiBsZWFkIHRvIHJhbmRvbSBtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3NhdmVfZXNjYXBlZCk6CgkgIE1ha2Ugc3VyZSB3ZSBkb24ndCBwYXNzIG5vbi1VVEYtOCBzdHJpbmdzIHRvIGdfbWFya3VwX2VzY2FwZSgpLAoJICBzaW5jZSB0aGF0IGNhbiBsZWFkIHRvIHJhbmRvbSBtZW1vcnkgY29ycnVwdGlvbnMgYW5kIGNyYXNoZXMKCSAgKG1heSBvciBtYXkgbm90IGJlIHJlbGF0ZWQgdG8gIzM4MzI0NCwgIzM4NjcxMSwgYW5kICMzODY3MTEpLgoKMjAwNi0xMi0yMSAxNTo1NDowNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBzeW5jIC5jdnNpZ25vbWUgYW5kIENMRUFORklMRVMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgc3luYyAuY3ZzaWdub21lIGFuZCBDTEVBTkZJTEVTCgoyMDA2LTEyLTIxIDE1OjMyOjAwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IGRpc3RjaGVjawoKMjAwNi0xMi0yMSAxNTowMDowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OiB0d28gdGlueSBhZGRpdGlvbmFsIGNvbW1lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgdHdvIHRpbnkgYWRkaXRpb25hbCBjb21tZW50cwoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgZG9jIGZpeGluZwoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgZGlzYWJsZSB0ZXN0IGZvciBub3csIHVubGVzcyBpdCBnZXRzIGZpeGVkCgoyMDA2LTEyLTIxIDE0OjI0OjU0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiBmaXggcmFjZSBpbiB1bmRlcnJ1biB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL3F1ZXVlLmM6IChxdWV1ZV9vdmVycnVuKSwgKHF1ZXVlX3VuZGVycnVuKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgZml4IHJhY2UgaW4gdW5kZXJydW4gdGVzdAoKMjAwNi0xMi0yMSAwOTo1ODoyNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZTogaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9xdWV1ZS5jOiAocXVldWVfb3ZlcnJ1biksIChxdWV1ZV91bmRlcnJ1biksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIHRyeSB0byBuYXJyb3cgdGVzdCBmYWlsdXJlCgoyMDA2LTEyLTIxIDA5OjM3OjU2ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiBVc2UgZ19yYW5kb21faW50X3JhbmdlKCksIHNpbmNlIGl0IHByb2R1Y2VzIGJldHRlciByYW5kb20gbnVtYmVycyBpbiBhIHJhbmdlIHRoYW4gYWxtby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgVXNlIGdfcmFuZG9tX2ludF9yYW5nZSgpLCBzaW5jZSBpdCBwcm9kdWNlcyBiZXR0ZXIgcmFuZG9tCgkgIG51bWJlcnMgaW4gYSByYW5nZSB0aGFuIGFsbW9zdC1jb3JyZWN0IGZsb2F0aW5nIHBvaW50IGNvZGUuCgoyMDA2LTEyLTIxIDA4OjEyOjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBkbyBub3QgYXV0b21hdGljYWxseSAoZGUpYWN0aXZhdGUgcGFkcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpLCAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zaW5rX3BhZCk6CgkgIGRvIG5vdCBhdXRvbWF0aWNhbGx5IChkZSlhY3RpdmF0ZSBwYWRzCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvcXVldWUuYzogKHF1ZXVlX292ZXJydW4pLCAocXVldWVfdW5kZXJydW4pLAoJICAoc2V0dXBfcXVldWUpLCAoY2xlYW51cF9xdWV1ZSksIChHU1RfU1RBUlRfVEVTVCksIChxdWV1ZV9zdWl0ZSk6CgkgIGFkZCBuZXcsIHlldCBzaW1wbGUgdGVzdHMgZm9yIHF1ZXVlCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoY2xlYW51cF9mYWtlc3JjKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mZHNyYy5jOiAoY2xlYW51cF9mZHNyYyk6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmlsZXNyYy5jOiAoY2xlYW51cF9maWxlc3JjKSwKCSAgKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOiAoY2xlYW51cF9pZGVudGl0eSk6CgkgIGNvbnNpc3RlbnQgcGFkIChkZSlhY3RpdmF0aW9uCgoyMDA2LTEyLTIwIDE5OjA2OjAyICswMDAwICBTZWJhc3RpYW4gRHLDtmdlIDxzbG9tb0BjaXJjdWxhci1jaGFvcy5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEZpeCB0d28gZG9jIHR5cG9zICgjMzg3ODY2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpYW4gRHLDtmdlICA8c2xvbW8gdWJ1bnR1IGNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIEZpeCB0d28gZG9jIHR5cG9zICgjMzg3ODY2KS4KCjIwMDYtMTItMTkgMTU6MDY6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDogRml4IHR5cG8gKGdfb2JqZWN0X2NvbnRyb2xfcHJvcGVydGllcygpIGRvZXNuJ3QgZXhpc3QpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgRml4IHR5cG8gKGdfb2JqZWN0X2NvbnRyb2xfcHJvcGVydGllcygpIGRvZXNuJ3QgZXhpc3QpLgoKMjAwNi0xMi0xOSAxMjozODowMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IEZpbmUgdHVuZSB0aGUgY2FzZXMgd2hlcmUgdGhlIHNlZ21lbnQgc3RhcnQvc3RvcCB2YWx1ZXMgYXJlIHJlYWxseSB1cGRhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICBGaW5lIHR1bmUgdGhlIGNhc2VzIHdoZXJlIHRoZSBzZWdtZW50IHN0YXJ0L3N0b3AgdmFsdWVzIGFyZSByZWFsbHkKCSAgdXBkYXRlZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGQgdGVzdHMgZm9yIHRoZSByZXR1cm4gdmFsdWVzIG9mIGdzdF9zZWdtZW50X3NldF9zZWVrKCkuCgoyMDA2LTEyLTE5IDExOjA0OjQ5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBEb2NzIHR5cG8gZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIERvY3MgdHlwbyBmaXguCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NsYXNzX2luaXQpLAoJICAoZ3N0X3F1ZXVlX2luaXQpOgoJICBGaXggaW5jb3JyZWN0IGRvY3VtZW50YXRpb24gYW5kIGZsZXNoIGl0IG91dCBhIGJpdCBtb3JlLgoJICBTZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBtYXggcHJvcGVydGllcyBvbiB0aGUgR1BhcmFtU3BlYyBhcyB3ZWxsLAoJICBzbyBpdCBzaG93cyB1cCBjb3JyZWN0bHkgaW4gZ3N0LWluc3BlY3QuCgoyMDA2LTEyLTE4IDE2OjAxOjMyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IENvcnJlY3QgZG9jcyBvZiBxdWV1ZSwgYWRkIG1vcmUgZGV0YWlsIGFuZCBjcm9zc2xpbmsgaXQgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAocXVldWVfbGVha3lfZ2V0X3R5cGUpOgoJICBDb3JyZWN0IGRvY3Mgb2YgcXVldWUsIGFkZCBtb3JlIGRldGFpbCBhbmQgY3Jvc3NsaW5rIGl0IG1vcmUuCgoyMDA2LTEyLTE2IDE5OjMzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBQcmludCBhZGRpdGlvbmFsIGRlYnVnIGluZm8gd2hlbiB0aGUgc3RyZWFtIGlzbid0IHBlcmZlY3RseSB0aW1lc3RhbXBlZDsgZG9uJ3QgdHJ5IHRvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KToKCSAgUHJpbnQgYWRkaXRpb25hbCBkZWJ1ZyBpbmZvIHdoZW4gdGhlIHN0cmVhbSBpc24ndCBwZXJmZWN0bHkKCSAgdGltZXN0YW1wZWQ7IGRvbid0IHRyeSB0byB1c2UgaW52YWxpZCBkdXJhdGlvbnMuCgoyMDA2LTEyLTE2IDE2OjE0OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06IERpc3QgbmV3IGRlc2lnbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgRGlzdCBuZXcgZGVzaWduIGRvY3MuCgoyMDA2LTEyLTE2IDE1OjE3OjU0ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IEFkZCByZWZjb3VudGluZyB0byB0aGUgY29sbGVjdHBhZHMgZGF0YSBzbyB3ZSBjYW4gdHJhY2sgd2hlbiBpdCdzIHNhZmUgdG8gZnJlZSB0aGUgZGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKHJlZl9kYXRhKSwgKHVucmVmX2RhdGEpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0b3ApLCAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIEFkZCByZWZjb3VudGluZyB0byB0aGUgY29sbGVjdHBhZHMgZGF0YSBzbyB3ZSBjYW4gdHJhY2sgd2hlbiBpdCdzIHNhZmUKCSAgdG8gZnJlZSB0aGUgZGF0YS4gRml4ZXMgIzM4MzM4Mi4KCjIwMDYtMTItMTUgMTc6MDk6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEF1dG9tYXRpY2FsbHkgYWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWRzIHdoZW4gdGhleSBhcmUgYWRkZWQgdG8gYSBzdGFydGVkL3N0b3BlZCBjb2xsZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCk6CgkgIEF1dG9tYXRpY2FsbHkgYWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWRzIHdoZW4gdGhleSBhcmUgYWRkZWQgdG8gYQoJICBzdGFydGVkL3N0b3BlZCBjb2xsZWN0cGFkcy4KCjIwMDYtMTItMTUgMTY6MDE6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTZXQgcGFkcyB0byBGTFVTSElORyB3aGVuIHRoZXkgYXJlIGNyZWF0ZWQuIENoZWNrLCB3YXJuIGFuZCBmaXggd2hlbiBhIGRlbXV4ZXIgYWRkcyBhbiBpbmFjdGl2ZSBwYWQgdG8gaXRzZWxmIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2FkZF9wYWQpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KToKCSAgU2V0IHBhZHMgdG8gRkxVU0hJTkcgd2hlbiB0aGV5IGFyZSBjcmVhdGVkLiBDaGVjaywgd2FybiBhbmQgZml4IHdoZW4gYQoJICBkZW11eGVyIGFkZHMgYW4gaW5hY3RpdmUgcGFkIHRvIGl0c2VsZiB3aGVuIHJ1bm5pbmcuIEZpeGVzICMzMzkzMjYuCgoyMDA2LTEyLTE1IDE1OjQ5OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRXhwb3NlIGRlZmF1bHQgZWxlbWVudCBzZW5kX2V2ZW50IGFuZCBxdWVyeSBoYW5kbGluZyBhcyB2bWV0aG9kcyB0aGF0IHN1YmNsYXNzZXMgY2FuIGNoYWluIHVwIHRvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9kZWZhdWx0X3NlbmRfZXZlbnQpLCAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksCgkgIChnc3RfZWxlbWVudF9kZWZhdWx0X3F1ZXJ5KSwgKGdzdF9lbGVtZW50X3F1ZXJ5KToKCSAgRXhwb3NlIGRlZmF1bHQgZWxlbWVudCBzZW5kX2V2ZW50IGFuZCBxdWVyeSBoYW5kbGluZyBhcyB2bWV0aG9kcyB0aGF0CgkgIHN1YmNsYXNzZXMgY2FuIGNoYWluIHVwIHRvLgoKMjAwNi0xMi0xNSAxNTozOToyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyk6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuCgoyMDA2LTEyLTE1IDE1OjI2OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vZHJhZnQtbGF0ZW5jeS50eHQ6IENoZWNrZWQgaW4gZHJhZnQgZm9yIGhhbmRsaW5nIGxhdGVuY3kgaW4gcGlwZWxpbmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1sYXRlbmN5LnR4dDoKCSAgQ2hlY2tlZCBpbiBkcmFmdCBmb3IgaGFuZGxpbmcgbGF0ZW5jeSBpbiBwaXBlbGluZXMuCgoyMDA2LTEyLTE1IDAwOjE2OjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGFkZGluZyAuZG9hcCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGdzdHJlYW1lci5kb2FwOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBhZGRpbmcgLmRvYXAgZmlsZQoKMjAwNi0xMi0xNCAxNDowNjozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogaW5pdF9wcmUoKSBhbmQgaW5pdF9wb3N0KCkgbWlnaHQgYmUgY2FsbGVkIHZpYSBvdXIgR09wdGlvbkdyb3VwIG9yIGZyb20gZ3N0X2luaXQoKSwgYW5kIHdlIHNob3VsZCBza2lwIGJvdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSksIChpbml0X3Bvc3QpOgoJICBpbml0X3ByZSgpIGFuZCBpbml0X3Bvc3QoKSBtaWdodCBiZSBjYWxsZWQgdmlhIG91ciBHT3B0aW9uR3JvdXAgb3IKCSAgZnJvbSBnc3RfaW5pdCgpLCBhbmQgd2Ugc2hvdWxkIHNraXAgYm90aCBvZiB0aGVtIGlmIHdlJ3ZlIGFscmVhZHkKCSAgYmVlbiBpbml0aWFsaXNlZCwgb3RoZXJ3aXNlIHdlIHdpbGwgaW5pdCBzb21lIHRoaW5ncyB0d2ljZSBvciBhZGQKCSAgdHdvIGRlZmF1bHQgbG9nIGZ1bmN0aW9ucy4KCjIwMDYtMTItMTMgMTI6NDY6MjggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDogTm8sIGdzdF9tYWluX2xvb3AgZG9lcyBub3QgZXhpc3QuIEl0cyBnX21haW5fbG9vcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIE5vLCBnc3RfbWFpbl9sb29wIGRvZXMgbm90IGV4aXN0LiBJdHMgZ19tYWluX2xvb3AuCgkgIERpc2NvdmVyZWQgYnkgc29tZWJvZHkgd2hvIGFidXNlZCB0aGUgY29weS1wYXN0ZSB0ZWNobmlxdWUgb2YgY29kaW5nIDopCgoyMDA2LTEyLTEzIDExOjA1OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IExvZyBnaG9zdHBhZCBkZWJ1ZyBzdHVmZiB0byB0aGUgR1NUX1BBRFMgY2F0ZWdvcnkgYXMgd2VsbCByYXRoZXIgdGhhbiBqdXN0IHRvIHRoZSBkZWZhdWx0IGNhdGVnb3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgTG9nIGdob3N0cGFkIGRlYnVnIHN0dWZmIHRvIHRoZSBHU1RfUEFEUyBjYXRlZ29yeSBhcyB3ZWxsIHJhdGhlcgoJICB0aGFuIGp1c3QgdG8gdGhlIGRlZmF1bHQgY2F0ZWdvcnkuCgoyMDA2LTEyLTEyIDEzOjUzOjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIHNvbWUgYmFzaWMgc3lzdGVtIGRldGFpbHMgc3VjaCBhcyBPUyBhbmQgYXJjaGl0ZWN0dXJlIHRvIHRoZSBkZWJ1ZyBvdXRwdXQgaWYgcG9zc2libGUsIGNvdXJ0ZXN5IG9mIHVuYW1lKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSk6CgkgIEFkZCBzb21lIGJhc2ljIHN5c3RlbSBkZXRhaWxzIHN1Y2ggYXMgT1MgYW5kIGFyY2hpdGVjdHVyZQoJICB0byB0aGUgZGVidWcgb3V0cHV0IGlmIHBvc3NpYmxlLCBjb3VydGVzeSBvZiB1bmFtZSgpLgoKMjAwNi0xMi0xMSAxMzo0MDozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZ3N0L3J1bm5pbmcueG1sOiBEb2N1bWVudCBHU1RfUkVHSVNUUllfRk9SSyBhbmQgR1NUX0RFQlVHX05PX0NPTE9SIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvcnVubmluZy54bWw6CgkgIERvY3VtZW50IEdTVF9SRUdJU1RSWV9GT1JLIGFuZCBHU1RfREVCVUdfTk9fQ09MT1IKCSAgZW52aXJvbm1lbnQgdmFyaWFibGVzLgoKMjAwNi0xMi0wOSAyMDoyMzoxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IEl0IGlzIGFjY2VwdGFibGUgdG8gaGF2ZSBhIHJlZmNvdW50IG9mIDIgb3IgMyBhdCB0aGlzIHBvaW50IGluIHRoZSB0ZXN0LCBiZWNhdXNlIHRoZSBwaXBlbGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBJdCBpcyBhY2NlcHRhYmxlIHRvIGhhdmUgYSByZWZjb3VudCBvZiAyIG9yIDMgYXQgdGhpcyBwb2ludCBpbiB0aGUKCSAgdGVzdCwgYmVjYXVzZSB0aGUgcGlwZWxpbmUgbWlnaHQgYmUganVzdCBwb3N0aW5nIGl0cyBzdGF0ZV9jaGFuZ2UKCSAgbWVzc2FnZS4gVGhlIG5leHQgbGluZSB0aGVuIHdhaXRzIGZvciB0aGF0IG1lc3NhZ2UgdG8gYXBwZWFyIHVzaW5nCgkgIGJ1c19wb2xsLCBzbyB0aGF0IHNob3VsZCBiZSBmaW5lIHRvby4KCjIwMDYtMTItMDkgMTg6NDg6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBJZ25vcmUgRUlOVFIgd2hlbiByZWFkaW5nIGZyb20gdGhlIGNoaWxkIHJlZ2lzdHJ5IHBpcGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpOgoJICBJZ25vcmUgRUlOVFIgd2hlbiByZWFkaW5nIGZyb20gdGhlIGNoaWxkIHJlZ2lzdHJ5IHBpcGUuCgkgIEV4cGxpY2l0bHkgaWdub3JlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBjbG9zZSwgc2luY2UgaXQgbWFrZXMgbm8KCSAgZGlmZmVyZW5jZS4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlZiksCgkgIChnc3RfbWluaV9vYmplY3RfdW5yZWYpOgoJICBXaGVuIGRlYnVnZ2luZyByZWZjb3VudHMsIGNoZWNrIEdTVF9JU19NSU5JX09CSkVDVCBhbmQgd2Fybi4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKF9wcml2X2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyk6CgkgIFdoZW4gcmVtb3ZpbmcgY2FjaGVkIHBsdWdpbnMsIHJlbW92ZSB0aGVpciBmZWF0dXJlcyB0b28sIHNvIHRoZXkncmUKCSAgbm90IHZpc2libGUgYWZ0ZXIgdGhleSd2ZSBkaXNhcHBlYXJlZC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKHByZXBhcmVfbGlua19tYXliZV9naG9zdGluZyk6CgkgIEluIHRoZSB1bmxpa2VseSBjYXNlIHRoYXQgd2UgYXJlIGxpbmtpbmcgcGFkcyB3aXRoIG5vIHBhcmVudHMsIGRvbid0CgkgIGNyYXNoIHRyeWluZyB0byBnZXQgdGhlIG5vbi1leGlzdGVudCBwYXJlbnQgYmluLgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIE91dHB1dCBkZWJ1ZyBpbiB0aGUgUElQRUxJTkUgY2F0ZWdvcnkKCjIwMDYtMTItMDggMTY6MTI6NDQgKzAwMDAgIFJlbsOpIFN0YWRsZXIgPG1haWxAcmVuZXN0YWRsZXIuZGU+CgoJICBnc3QvZ3N0Y2xvY2suYzogUmVqZWN0IGludmFsaWQgY2xvY2sgdGltZXMgZm9yIGludGVydmFsIG9mIHBlcmlvZGljIGlkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19uZXdfcGVyaW9kaWNfaWQpOgoJICBSZWplY3QgaW52YWxpZCBjbG9jayB0aW1lcyBmb3IgaW50ZXJ2YWwgb2YgcGVyaW9kaWMgaWRzLgoJICBGaXhlcyAjIzM4MzUwNi4KCjIwMDYtMTItMDcgMTI6MTE6MTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRml4IHJlZmNvdW50aW5nIG9mIGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkIHRvIG1hdGNoIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jYWxsX2Z1bmN0aW9uKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRml4IHJlZmNvdW50aW5nIG9mIGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkIHRvIG1hdGNoIHRoZSBkb2NzLgoJICBGaXhlczogIzM4MDEyOQoKMjAwNi0xMi0wNyAxMDo1OTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgSW1wcm92ZSBkZWJ1Z2dpbmcgb2YgZXZlbnRzLgoKMjAwNi0xMi0wNyAxMDo1MTozNiArMDAwMCAgUmVuw6kgU3RhZGxlciA8bWFpbEByZW5lc3RhZGxlci5kZT4KCgkgIGdzdC9nc3RjbG9jay5jOiBNYWtlIHBlcmlvZCBpZHMgYWRkIHRoZSBpbnRlcnZhbCB0byB0aGUgb3JpZ2lhbCByZXF1ZXN0ZWQgdGltZSBpbnN0ZWFkIG9mIHRoZSBwb3NzaWJseSB1cGRhdGVkIHRpbWUgdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFJlbsOpIFN0YWRsZXIgPG1haWwgYXQgcmVuZXN0YWRsZXIgZG90IGRlPgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2lkX3dhaXQpOgoJICBNYWtlIHBlcmlvZCBpZHMgYWRkIHRoZSBpbnRlcnZhbCB0byB0aGUgb3JpZ2lhbCByZXF1ZXN0ZWQgdGltZSBpbnN0ZWFkCgkgIG9mIHRoZSBwb3NzaWJseSB1cGRhdGVkIHRpbWUgd2hpY2ggY2FuIGJlIHdyb25nIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlCgkgIHdhaXRlcnMgZm9yIHRoZSBzYW1lIGlkLiBGaXhlcyAjMzgyNTkyLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyKToKCSAgRml4IHJlc3RhcnQgaW4gdGhlIGFzeW5jIG5vdGlmeSB0aHJlYWQgd2hlbiBhbiBhc3luYyBlbnRyeSBpcyBhZGRlZCB0bwoJICB0aGUgZnJvbnQgb2YgdGhlIGxpc3QuIEZpeGVzICMzODE0OTIuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChzdG9yZV9jYWxsYmFjayksCgkgIChub3RpZnlfY2FsbGJhY2spLCAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgQWRkZWQgdGVzdCBmb3IgbXVsdGlwbGUgYXN5bmMgd2FpdHMuCgkgIEFkZGVkIHRlc3QgZm9yIGFzeW5jIHdhaXQgb3JkZXIuCgoyMDA2LTEyLTA3IDEwOjAyOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBBZGQgc29tZSBtb3JlIGRvY3MgYWJvdXQgdGhlIFBPU0lUSU9OIHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3F1ZXJ5KToKCSAgQWRkIHNvbWUgbW9yZSBkb2NzIGFib3V0IHRoZSBQT1NJVElPTiBxdWVyeS4KCjIwMDYtMTItMDcgMDI6Mzc6MTggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiBCdW1wIHZlcnNpb24gbmFubyAtIGJhY2sgdG8gQ1ZTLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIEJ1bXAgdmVyc2lvbiBuYW5vIC0gYmFjayB0byBDVlMuCgo9PT0gcmVsZWFzZSAwLjEwLjExID09PQoKMjAwNi0xMi0wNyAwMjozMzo1NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjExLCAiTG92ZSBuZXZlciBydW5zIG9uIHRpbWUiCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICA9PT0gcmVsZWFzZSAwLjEwLjExID09PQoJICAyMDA2LTEyLTA2ICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjEwLjExLCAiTG92ZSBuZXZlciBydW5zIG9uIHRpbWUiCgoyMDA2LTEyLTAxIDEwOjIzOjI2ICswMDAwICBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5LnNjb2JpY2hAZ21haWwuY29tPgoKCSAgd2luMzIvOiBGaXggY29tcGlsYXRpb24gb24gd2luMzIgdW5kZXIgVlM4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi92czgvbGliZ3N0YmFzZS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGNvcmVlbGVtZW50cy52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgIEZpeCBjb21waWxhdGlvbiBvbiB3aW4zMiB1bmRlciBWUzgKCSAgUGF0Y2ggYnk6IFNlcmdleSBTY29iaWNoIDxzZXJnZXkgZG90IHNjb2JpY2ggYXQgZ21haWwgZG90IGNvbT4KCSAgUGFydGlhbGx5IGZpeGVzICMzODExNzUKCjIwMDYtMTEtMzAgMjI6NTU6MDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTExLTI5IDE2OjM5OjMyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBJZiBzb21lb25lIGlzIGZvb2xpc2ggZW5vdWdoIHRvIGNvbXBhcmUgMiBmcmFjdGlvbnMgd2l0aCBkZW5vbWluYXRvciA9IDAsIHJldHVybiBVTk9SREVSRUQgcmF0aGVyIHRoYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uKToKCSAgSWYgc29tZW9uZSBpcyBmb29saXNoIGVub3VnaCB0byBjb21wYXJlIDIgZnJhY3Rpb25zIHdpdGggZGVub21pbmF0b3IgPQoJICAwLCByZXR1cm4gVU5PUkRFUkVEIHJhdGhlciB0aGFuIGFib3J0aW5nLgoKMjAwNi0xMS0yOCAxMjowNzowNiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBOZXcgR3N0RGF0YVF1ZXVlIG9iamVjdCBmb3IgdGhyZWFkc2FmZSBxdWV1ZWluZy4gTW9zdCB1c2VmdWwgZm9yIGVsZW1lbnRzIHRoYXQgbmVlZCBzb21lIHF1ZXVlaW5nIGZ1bi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmM6IChnc3RfZGF0YV9xdWV1ZV9nZXRfdHlwZSksCgkgIChnc3RfZGF0YV9xdWV1ZV9iYXNlX2luaXQpLCAoZ3N0X2RhdGFfcXVldWVfY2xhc3NfaW5pdCksCgkgIChnc3RfZGF0YV9xdWV1ZV9pbml0KSwgKGdzdF9kYXRhX3F1ZXVlX25ldyksCgkgIChnc3RfZGF0YV9xdWV1ZV9jbGVhbnVwKSwgKGdzdF9kYXRhX3F1ZXVlX2ZpbmFsaXplKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX2xvY2tlZF9mbHVzaCksIChnc3RfZGF0YV9xdWV1ZV9sb2NrZWRfaXNfZW1wdHkpLAoJICAoZ3N0X2RhdGFfcXVldWVfbG9ja2VkX2lzX2Z1bGwpLCAoZ3N0X2RhdGFfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2RhdGFfcXVldWVfaXNfZW1wdHkpLCAoZ3N0X2RhdGFfcXVldWVfaXNfZnVsbCksCgkgIChnc3RfZGF0YV9xdWV1ZV9zZXRfZmx1c2hpbmcpLCAoZ3N0X2RhdGFfcXVldWVfcHVzaCksCgkgIChnc3RfZGF0YV9xdWV1ZV9wb3ApLCAoZ3N0X2RhdGFfcXVldWVfZHJvcF9oZWFkKSwKCSAgKGdzdF9kYXRhX3F1ZXVlX3NldF9wcm9wZXJ0eSksIChnc3RfZGF0YV9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0ZGF0YXF1ZXVlLmg6CgkgIE5ldyBHc3REYXRhUXVldWUgb2JqZWN0IGZvciB0aHJlYWRzYWZlIHF1ZXVlaW5nLiBNb3N0IHVzZWZ1bCBmb3IKCSAgZWxlbWVudHMgdGhhdCBuZWVkIHNvbWUgcXVldWVpbmcgZnVuY3Rpb25uYWxpdHkuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBJbnNlcnQgZG9jdW1lbnRhdGlvbiBmb3IgR3N0RGF0YVF1ZXVlCgkgICogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RtdWx0aXF1ZXVlLmM6IChnc3RfbXVsdGlfcXVldWVfYmFzZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9tdWx0aV9xdWV1ZV9pbml0KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9maW5hbGl6ZSksIChnc3RfbXVsdGlfcXVldWVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9nZXRfcHJvcGVydHkpLCAoZ3N0X211bHRpX3F1ZXVlX3JlcXVlc3RfbmV3X3BhZCksCgkgIChnc3RfbXVsdGlfcXVldWVfcmVsZWFzZV9wYWQpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9wdXNoX29uZSksCgkgIChnc3RfbXVsdGlfcXVldWVfaXRlbV9kZXN0cm95KSwgKGdzdF9tdWx0aV9xdWV1ZV9pdGVtX25ldyksCgkgIChnc3RfbXVsdGlfcXVldWVfbG9vcCksIChnc3RfbXVsdGlfcXVldWVfY2hhaW4pLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfbXVsdGlfcXVldWVfc2lua19ldmVudCksCgkgIChnc3RfbXVsdGlfcXVldWVfZ2V0Y2FwcyksIChnc3RfbXVsdGlfcXVldWVfYnVmZmVyYWxsb2MpLAoJICAoZ3N0X211bHRpX3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9tdWx0aV9xdWV1ZV9hY2NlcHRjYXBzKSwKCSAgKGdzdF9tdWx0aV9xdWV1ZV9zcmNfZXZlbnQpLCAoZ3N0X211bHRpX3F1ZXVlX3NyY19xdWVyeSksCgkgICh3YWtlX3VwX25leHRfbm9uX2xpbmtlZCksIChjb21wdXRlX25leHRfbm9uX2xpbmtlZCksCgkgIChzaW5nbGVfcXVldWVfb3ZlcnJ1bl9jYiksIChzaW5nbGVfcXVldWVfdW5kZXJydW5fY2IpLAoJICAoc2luZ2xlX3F1ZXVlX2NoZWNrX2Z1bGwpLCAoZ3N0X3NpbmdsZV9xdWV1ZV9uZXcpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bXVsdGlxdWV1ZS5oOgoJICBOZXcgbXVsdGlxdWV1ZSBlbGVtZW50LCB1c2luZyBHc3REYXRhUXVldWUuIFVzZWQgZm9yIHF1ZXVpbmcgbXVsdGlwbGUKCSAgc3RyZWFtcy4KCSAgQ2xvc2VzICMzNDQ2MzkgYW5kICMzNDc3ODUKCjIwMDYtMTEtMjIgMTI6Mjk6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogYWRkIG1vcmUgbWlzc2luZyB0eXBlIGRldGFpbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBhZGQgbW9yZSBtaXNzaW5nIHR5cGUgZGV0YWlscwoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICByZW1vdmUgdW51c2VkIHZhcmlhYmxlCgoyMDA2LTExLTIxIDA4OjMwOjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvOiBhZGQgdHlwZXMgb2YgYmFzZSBjbGFzc2VzIHRvIGVuYWJsZSBnb2JqZWN0IHNwZWNpZmljIHN0dWZmIGluIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMudHlwZXM6CgkgIGFkZCB0eXBlcyBvZiBiYXNlIGNsYXNzZXMgdG8gZW5hYmxlIGdvYmplY3Qgc3BlY2lmaWMgc3R1ZmYgaW4gdGhlIGRvY3MKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2VtYmVkZGVkLnR4dDoKCSAgbW9yZSBpZGVhcyBhYm91dCBpc29sYXRpbmcgcGxhdGZvcm0gc3BlY2lmaWMgdGhpbmdzCgoyMDA2LTExLTIwIDExOjExOjIwICswMDAwICBTZWJhc3RpYW4gRHJvZWdlIDxzbG9tb0B1YnVudHUuY29tPgoKCSAgbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDogRml4IGNvbXBpbGF0aW9uIGFuZCBydW5uaW5nIGFnYWluc3QgMC45LjQuIEZpeGVzICMzNzczMzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2ViYXN0aWFuIERyb2VnZSA8c2xvbW8gYXQgdWJ1bnR1IGRvdCBjb20+CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IGNvbXBpbGF0aW9uIGFuZCBydW5uaW5nIGFnYWluc3QgMC45LjQuIEZpeGVzICMzNzczMzIuCgoyMDA2LTExLTIwIDEwOjI3OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogRml4IGJvdW5kYXJ5IGNoZWNraW5nIGluIHRvX3J1bm5pbmdfdGltZSgpIGFuZCB0b19zdHJlYW1fdGltZSgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksCgkgIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICBGaXggYm91bmRhcnkgY2hlY2tpbmcgaW4gdG9fcnVubmluZ190aW1lKCkgYW5kIHRvX3N0cmVhbV90aW1lKCkuCgkgIEZpeGVzICMzNzcxODMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgc3RyZWFtIGFuZCBydW5uaW5nIHRpbWUgY2FuIG5vdyBiZSBjYWxjdWxhdGVkIGZvciB0aGUgY29tcGxldGUKCSAgY2xpcHBlZCBzZWdtZW50LgoKMjAwNi0xMS0xNSAxNzozODoxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogQ2FuJ3QgYWNjZXNzIGV2ZW50IHN0cnVjdHVyZSBhZnRlciBnaXZpbmcgYXdheSBvd25lcnNoaXAgb2YgdGhlIGV2ZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBDYW4ndCBhY2Nlc3MgZXZlbnQgc3RydWN0dXJlIGFmdGVyIGdpdmluZyBhd2F5IG93bmVyc2hpcCBvZgoJICB0aGUgZXZlbnQuCgoyMDA2LTExLTE1IDEzOjAwOjE2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljLzogbW9yZSB0aGlua2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2VtYmVkZGVkLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9yZWNlaXBpZXMudHh0OgoJICBtb3JlIHRoaW5raW5nCgoyMDA2LTExLTEzIDE4OjAzOjM1ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L2dzdHBhZC5jOiBGaXggZG9jdW1lbnRhdGlvbiBmb3IgZ3N0X3BhZF9kaXNwYXRjaGVyLiBGaXhlcyAjMzc0NDc1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IGRvY3VtZW50YXRpb24gZm9yIGdzdF9wYWRfZGlzcGF0Y2hlci4gRml4ZXMgIzM3NDQ3NS4KCjIwMDYtMTEtMTMgMTc6NTQ6NTggKzAwMDAgIEpvbmF0aGFuIE1hdHRoZXcgPGpvbmF0aGFuQGthb2xpbi53aDkubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFN0b3JlIG5ldyBsZW5ndGggaW4gc2VnbWVudCBkdXJhdGlvbiBzbyB3ZSBkb24ndCBrZWVwIG9uIGNhbGxpbmcgdGhlIHBvdGVudGlhbGx5IGV4cGVuc2l6Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSm9uYXRoYW4gTWF0dGhldyA8am9uYXRoYW4gYXQga2FvbGluIGRvdCB3aDkgZG90IG5ldD4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKToKCSAgU3RvcmUgbmV3IGxlbmd0aCBpbiBzZWdtZW50IGR1cmF0aW9uIHNvIHdlIGRvbid0IGtlZXAgb24gY2FsbGluZyB0aGUKCSAgcG90ZW50aWFsbHkgZXhwZW5zaXplIGdldF9zaXplKCkgY2FsbC4gRml4ZXMgIzM3MDg2NS4KCjIwMDYtMTEtMTAgMTg6NTY6NDQgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXJ5LnNjb2JpY2hAZ21haWwuY29tPgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IEFkZCB0d28gbWlzc2luZyBzeW1ib2xzICgjMzY2NDkyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZXJnZXkgU2NvYmljaCAgPHNlcmdlcnkuc2NvYmljaCBhdCBnbWFpbCBjb20+CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCB0d28gbWlzc2luZyBzeW1ib2xzICgjMzY2NDkyKS4KCjIwMDYtMTEtMTAgMTA6NTA6MTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IEZpeCBmb3JtYXQgc3RyaW5nIHRvIHVzZSBhbGwgaXRzIGFyZ3VtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9mbHVzaCksCgkgIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgIEZpeCBmb3JtYXQgc3RyaW5nIHRvIHVzZSBhbGwgaXRzIGFyZ3VtZW50cy4KCSAgUmVtb3ZlIHVzZWxlc3MgPj0gY2hlY2sgb24gYSBndWludAoKMjAwNi0xMS0wOSAxNToyNTozOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9leGFtcGxlcy9hZGFwdGVyLy5jdnNpZ25vcmU6IElnbm9yZSBidWlsZCBmaWxlIGFzIGNvbW1hbmRlZCBieSB0aGUgYnVpbGQtYm90CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvLmN2c2lnbm9yZToKCSAgSWdub3JlIGJ1aWxkIGZpbGUgYXMgY29tbWFuZGVkIGJ5IHRoZSBidWlsZC1ib3QKCjIwMDYtMTEtMDkgMTQ6Mzg6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvYWRhcHRlci86IEFkZCBuZXcgZmlsZXMgZnJvbSB0aGUgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL2FkYXB0ZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvYWRhcHRlci9hZGFwdGVyX3Rlc3QuYzogKHJ1bl90ZXN0X3Rha2UpLAoJICAocnVuX3Rlc3RfdGFrZV9idWZmZXIpLCAocnVuX3Rlc3RzKSwgKG1haW4pOgoJICBBZGQgbmV3IGZpbGVzIGZyb20gdGhlIHByZXZpb3VzIGNvbW1pdAoKMjAwNi0xMS0wOSAxNDozNzozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBEbyBzb21lIG9wdGltaXNhdGlvbiB3b3JrIGluIEdzdEFkYXB0ZXIgdG8gYXZvaWQgY29waWVzIGluIG1vcmUgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzogKGdzdF9hZGFwdGVyX2NsZWFyKSwKCSAgKGdzdF9hZGFwdGVyX3B1c2gpLCAoZ3N0X2FkYXB0ZXJfcGVla19pbnRvKSwgKGdzdF9hZGFwdGVyX3BlZWspLAoJICAoZ3N0X2FkYXB0ZXJfZmx1c2gpLCAoZ3N0X2FkYXB0ZXJfdGFrZSksIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9hZGFwdGVyLmM6IChjcmVhdGVfYW5kX2ZpbGxfYWRhcHRlciksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfYWRhcHRlcl9zdWl0ZSk6CgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIERvIHNvbWUgb3B0aW1pc2F0aW9uIHdvcmsgaW4gR3N0QWRhcHRlciB0byBhdm9pZCBjb3BpZXMgaW4gbW9yZSBjYXNlcy4KCSAgSXQgY291bGQgc3RpbGwgZG8gc2xpZ2h0bHkgYmV0dGVyIGJ5IG1lcmdpbmcgYnVmZmVycyB3aGVuCgkgIGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0IGlzIHRydWUsIGJ1dCBpcyBhbHJlYWR5IGZhc3Rlci4KCSAgQWxzbywgYXZvaWQgdHJhdmVyc2luZyBhIHNpbmdsZS1saW5rZWQgbGlzdCB0byBhcHBlbmQgZWFjaCBpbmNvbWluZwoJICBidWZmZXIgaW5zaWRlIHRoZSBhZGFwdGVyLgoJICBBZGQgc2ltcGxlIHRlc3QgYXBwIHRoYXQgdGltZXMgdGhlIGFkYXB0ZXIgYmVoYXZpb3VyIGluIGRpZmZlcmVudAoJICBzaXR1YXRpb25zLCBhbmQgZXh0ZW5kIHRoZSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCBieXRlcyBlbnRlciBhbmQKCSAgZXhpdCB0aGUgYWRhcHRlciBpbiB0aGVpciBvcmlnaW5hbCBvcmRlci4KCjIwMDYtMTEtMDggMTk6Mjc6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OiBVcGRhdGU6IHVzZSBlbGVtZW50IG1lc3NhZ2UgaW5zdGVhZCBvZiBhZGRpbmcgYSBuZXcgbWVzc2FnZSB0eXBlIHRvIHRoZSBjb3JlOyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZHJhZnQtbWlzc2luZy1wbHVnaW5zLnR4dDoKCSAgVXBkYXRlOiB1c2UgZWxlbWVudCBtZXNzYWdlIGluc3RlYWQgb2YgYWRkaW5nIGEgbmV3IG1lc3NhZ2UKCSAgdHlwZSB0byB0aGUgY29yZTsgZG9uJ3QgcHJvdmlkZSBHU3RyZWFtZXIgQVBJIHRvIGluaXRpYXRlIHRoZQoJICBwbHVnaW4gZG93bmxvYWQsIGp1c3QgcHJvdmlkZSBBUEkgdG8gY29tcG9zZSB0aGUgc3RyaW5ncyBuZWVkZWQKCSAgYW5kIGxldCBhbiBleHRlcm5hbCBsaWJnaW1tZXN0dWZmIGhhbmRsZSB0aGUgcmVzdC4KCjIwMDYtMTEtMDggMTE6NDE6MTMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUHJpbnQgYSBzdHJpbmcgaW5zdGVhZCBvZiAndW5rbm93biB0eXBlJyBmb3IgR1ZhbHVlQXJyYXkgcHJvcGVydGllcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBQcmludCBhIHN0cmluZyBpbnN0ZWFkIG9mICd1bmtub3duIHR5cGUnIGZvciBHVmFsdWVBcnJheSBwcm9wZXJ0aWVzCgoyMDA2LTExLTA4IDEwOjM1OjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRml4IENocmlzdGlhbidzIGVtYWlsIGFkZHJlc3MgaW4gQ2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggQ2hyaXN0aWFuJ3MgZW1haWwgYWRkcmVzcyBpbiBDaGFuZ2Vsb2cKCjIwMDYtMTEtMDggMDI6MDQ6NTIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IE1vcmUgc21hbGwgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6CgkgIE1vcmUgc21hbGwgZml4ZXMuCgoyMDA2LTExLTA4IDAyOjAzOjQ4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvdHlwZWZpbmQvdHlwZWZpbmQuYzogTWFrZSB0eXBlZmluZCBlbGVtZW50IGV4YW1wbGUgd29yayBhZ2FpbiAoIzM3MTg5NCk7IGFkZCBhIGxpY2Vuc2UgaGVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOiAodHlwZV9mb3VuZCksIChtYWluKToKCSAgTWFrZSB0eXBlZmluZCBlbGVtZW50IGV4YW1wbGUgd29yayBhZ2FpbiAoIzM3MTg5NCk7IGFkZCBhCgkgIGxpY2Vuc2UgaGVhZGVyLgoKMjAwNi0xMS0wOCAwMTo0MDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2RyYWZ0LW1pc3NpbmctcGx1Z2lucy50eHQ6IENvbW1pdCBpbml0aWFsIGRyYWZ0IGFib3V0IGhvdyB0byBkZWFsIHdpdGggbWlzc2luZyBwbHVnaW5zLCBuZWVkcyB3b3JrIChBUEkgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9kcmFmdC1taXNzaW5nLXBsdWdpbnMudHh0OgoJICBDb21taXQgaW5pdGlhbCBkcmFmdCBhYm91dCBob3cgdG8gZGVhbCB3aXRoIG1pc3NpbmcgcGx1Z2lucywKCSAgbmVlZHMgd29yayAoQVBJIHRvbykuCgoyMDA2LTExLTA3IDA3OjM0OjQzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6IGRvY3VtZW50cyB0aGUgbmV3IGNhcHMgZWxlbWVudHMgKHNlZSAjMzYzMTE4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIGRvY3VtZW50cyB0aGUgbmV3IGNhcHMgZWxlbWVudHMgKHNlZSAjMzYzMTE4KQoKMjAwNi0xMS0wNiAxNzo1MzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIFVzZSBnX3N0cmVycm9yKCkgaW5zdGVhZCBvZiBzdHJlcnJvcigpIC0gd2Ugd2FudCBVVEYtOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF9maWxlX3NyY19tYXBfcmVnaW9uKSwgKGdzdF9maWxlX3NyY19zdGFydCk6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2xvYWQpLAoJICAoZ3N0X2ZpbGVfaW5kZXhfY29tbWl0KToKCSAgVXNlIGdfc3RyZXJyb3IoKSBpbnN0ZWFkIG9mIHN0cmVycm9yKCkgLSB3ZSB3YW50IFVURi04LgoKMjAwNi0xMS0wNiAxNzoyNTowMSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEFub3RoZXIgcHJpbnRmIGZpeCAoIzM3MTQ5MykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBBbm90aGVyIHByaW50ZiBmaXggKCMzNzE0OTMpLgoKMjAwNi0xMS0wNiAxNToyMjo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOiByZWxpY2VuY2UgKG9rYXkgd2l0aCBhdXRob3I9Y29tcGFueSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHRhZy5jOgoJICByZWxpY2VuY2UgKG9rYXkgd2l0aCBhdXRob3I9Y29tcGFueSkKCjIwMDYtMTEtMDYgMTU6MTg6NTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRW5oYW5jZSBkZWJ1ZyBhbmQgaW1wcm92ZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZXZlbnRfZGVmYXVsdF9kaXNwYXRjaCksCgkgIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBFbmhhbmNlIGRlYnVnIGFuZCBpbXByb3ZlIGRvY3MKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgIEZpeCBkb2NzCgoyMDA2LTExLTA2IDE1OjE3OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljLzogbW9yZSBpZGVhcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2Rpc3RyaWJ1dGVkLnR4dDoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIG1vcmUgaWRlYXMKCjIwMDYtMTEtMDYgMTU6MTQ6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IGFkZCBuZXcgQVBJIGFuZCBmaXggdGhlIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGFkZCBuZXcgQVBJIGFuZCBmaXggdGhlIGJ1aWxkCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpOgoJICB1c2UgbmV3IEFQSSBhbmQgaW1wcm92ZSBsb2dnaW5nCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9jaGFuZ2VfcmV0dXJuX2dldF9uYW1lKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgZnVuY3Rpb24gdG8gZ2V0IFN0YXRlQ2hhbmdlcmV0dXJuIG5hbWVzIHRvIGltcHJvdmUgbG9ncwoKMjAwNi0xMS0wNiAxMjowMToyNyArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkqIGRvY3MvcmFuZG9tL3phaGVlcm0vZHZiLWludGVyZmFjZS50eHQ6CgkgIE5vdGVzIHRha2VuIHdoaWxlIGRpc2N1c3NpbmcgZHZiIGNoYW5uZWwgc2VsZWN0aW9uIHdpdGggV2ltCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBOb3RlcyB0YWtlbiB3aGlsZSBkaXNjdXNzaW5nIGR2YiBjaGFubmVsIHNlbGVjdGlvbiB3aXRoIFdpbQoKMjAwNi0xMS0wNCAxMjo1NDowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSAgZG9uJ3QgcHV0IHN0cmVycm9yIGluIHRyYW5zbGF0YWJsZSBtZXNzYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBwdXQgc3RyZXJyb3IgaW4gdHJhbnNsYXRhYmxlIG1lc3NhZ2UKCjIwMDYtMTEtMDMgMTU6MDQ6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEdldCB0aGUgdHlwZSBhbmQgcHJpbnRmIGNvbnZlcnNpb24gc3BlY2lmaWVycyByaWdodC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBHZXQgdGhlIHR5cGUgYW5kIHByaW50ZiBjb252ZXJzaW9uIHNwZWNpZmllcnMgcmlnaHQuCgoyMDA2LTExLTAzIDEzOjU3OjI4ICswMDAwICBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXdAc2t5bmV0LmJlPgoKCSAgZ3N0L2dzdHBhZC5jOiBTb21lIHNtYWxsIGNsZWFudXBzLiBJbXByb3ZlIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBNYXJrIE5hdXdlbGFlcnRzIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAocHJlX2FjdGl2YXRlKSwKCSAgKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpLCAoZ3N0X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIFNvbWUgc21hbGwgY2xlYW51cHMuIEltcHJvdmUgZGVidWdnaW5nLgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgU2lnbmFsIGFsbCB3YWl0aW5nIHRocmVhZHMgd2l0aCBhIGJyb2FkY2FzdCBpbnN0ZWFkIG9mIGp1c3Qgb25lLgoJICBGaXhlcyAjMzY5OTQyLgoKMjAwNi0xMS0wMyAwOTo0MDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogQWRkIHNvbWUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX3VwZGF0ZV9mZCksCgkgIChnc3RfZmRfc3JjX2NyZWF0ZSk6CgkgIEFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT25seSB1cGRhdGUgZmQgd2hlbiBpdCdzIGRpZmZlcmVudCBmcm9tIHRoZSBvbGQuCgoyMDA2LTExLTAyIDIwOjUyOjIxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFByaW50ZiBmaXhlcyBmb3IgUFBDL09TWCwgdGFrZSB0d28gKCMzNjkzNjYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfbW1hcCk6CgkgIFByaW50ZiBmaXhlcyBmb3IgUFBDL09TWCwgdGFrZSB0d28gKCMzNjkzNjYpLgoKMjAwNi0xMS0wMiAxMzowMDozOCArMDAwMCAgSmFuIERhdmlkIE1vbCA8ai5qLmQubW9sQHR1ZGVsZnQubmw+CgoJICBwbHVnaW5zL2VsZW1lbnRzLzogUHJpbnRmIGZpeGVzIGZvciBnc2l6ZSBwYXJhbWV0ZXJzIG9uIFBQQy9PU1ggKCMzNjkzNjYpLiBBbHNvLCBkb24ndCBjYXN0IHRvIGxvbmcgbG9uZyBmb3IgcG9ydGFiaWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEJhc2VkIG9uIHBhdGNoIGJ5OiBKYW4gRGF2aWQgTW9sICA8ai5qLmQubW9sIGF0IHR1ZGVsZnQgbmw+CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19tYXBfc21hbGxfcmVnaW9uKSwgKGdzdF9maWxlX3NyY19jcmVhdGVfbW1hcCk6CgkgIFByaW50ZiBmaXhlcyBmb3IgZ3NpemUgcGFyYW1ldGVycyBvbiBQUEMvT1NYICgjMzY5MzY2KS4gQWxzbywKCSAgZG9uJ3QgY2FzdCB0byBsb25nIGxvbmcgZm9yIHBvcnRhYmlsaXR5IHJlYXNvbnMsIGJ1dCB1c2UKCSAgR0xpYidzIHR5cGVzIGluc3RlYWQuCgoyMDA2LTEwLTMwIDE4OjQzOjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IEdldCB0aGUgYXJndW1lbnRzIHRvIGxzZWVrKCkgdGhlIHJpZ2h0IHdheSBhcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfdXBkYXRlX2ZkKToKCSAgR2V0IHRoZSBhcmd1bWVudHMgdG8gbHNlZWsoKSB0aGUgcmlnaHQgd2F5IGFyb3VuZC4KCSAgRml4ZXMgMzY3Njc3LgoKMjAwNi0xMC0zMCAwNzo1MToxMyArMDAwMCAgZ29yc2hrb3YgPGdvcnNoa292QG9naG1hLm9uLmNhPgoKCSAgZ3N0L2dzdGluZm8uaDogX2RlY2xzcGVjIHNob3VsZCBiZSBfX2RlY2xzcGVjICh0d28gdW5kZXJzY29yZXMsIG5vdCBvbmUpLiBGaXhlcyAzNjY1NzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogZ29yc2hrb3YgPGdvcnNoa292IGF0IG9naG1hIGRvdCBvbiBkb3QgY2E+CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgX2RlY2xzcGVjIHNob3VsZCBiZSBfX2RlY2xzcGVjICh0d28gdW5kZXJzY29yZXMsIG5vdCBvbmUpLiBGaXhlcyAzNjY1NzIuCgoyMDA2LTEwLTI4IDE1OjQyOjI5ICswMDAwICBLamFydGFuIE1hcmFhcyA8a21hcmFhc0Bnbm9tZS5vcmc+CgoJICBUeXBvIGZpeGVzICgjMzY2MjEyKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBLamFydGFuIE1hcmFhcyAgPGttYXJhYXMgYXQgZ25vbWUgb3JnPgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvcmFuZG9tL3d0YXkvY2Fwc25lZ28yLWRvY3M6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBUeXBvIGZpeGVzICgjMzY2MjEyKS4KCjIwMDYtMTAtMjggMTU6MTA6MjYgKzAwMDAgIFNlcmdleSBTY29iaWNoIDxzZXJnZXkuc2NvYmljaEBnbWFpbC5jb20+CgoJICBBZGQgbmVlZGVkIGVudHJpZXMgaW4gLmRlZiBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZXJnZXkgU2NvYmljaCA8c2VyZ2V5IGRvdCBzY29iaWNoIGF0IGdtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdC5jOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi92czgvbGliZ3N0YmFzZS52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdGNvbnRyb2xsZXIudmNwcm9qOgoJICBBZGQgbmVlZGVkIGVudHJpZXMgaW4gLmRlZiBmaWxlcy4KCSAgVXNlIEhBVkVfVU5JU1REX0guCgkgIFJlYXJyYW5nZSBkZWYgZmlsZXMgaW4gdnM4IHNvbHV0aW9ucy4gRml4ZXMgIzM2NjI4Ni4KCjIwMDYtMTAtMjggMTU6MDM6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vZ3N0Y29uZmlnLmg6IEFkZCBHU1RfU0VHTUVOVF9GT1JNQVQgYW5kIEdTVF9VU0lOR19QUklOVEZfRVhURU5TSU9OIHRvIHRoZSBoYW5kLW1hZGUgd2luMzIgZ3N0Y29uZmlnLmguIEYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBBZGQgR1NUX1NFR01FTlRfRk9STUFUIGFuZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byB0aGUKCSAgaGFuZC1tYWRlIHdpbjMyIGdzdGNvbmZpZy5oLiBGaXhlcyAjMzY2MzIxLgoKMjAwNi0xMC0yNyAxNjozMToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBNYWtlIGFjY2VwdGNhcHMgcmV0dXJuIFRSVUUgd2hlbiB3ZSBkb24ndCBoYXZlIGEgdGFyZ2V0LCBqdXN0IGxpa2Ugc2V0Y2FwcyBkb2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19mdWxsKToKCSAgTWFrZSBhY2NlcHRjYXBzIHJldHVybiBUUlVFIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldCwganVzdCBsaWtlCgkgIHNldGNhcHMgZG9lcy4KCjIwMDYtMTAtMjcgMTA6MTA6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCwgMCBzaXplZCBidWZmZXJzIGFyZSBhbGxvd2VkLiBSZW9wZW5zICMzNjMwOTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKToKCSAgUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCwgMCBzaXplZCBidWZmZXJzIGFyZSBhbGxvd2VkLiBSZW9wZW5zICMzNjMwOTUuCgoyMDA2LTEwLTI2IDA4OjQ5OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHN0cnVjdHVyZS5jOiBJZiBzb21lb25lIHRyaWVzIHRvIHNldCBhIG5vbi1VVEY4IHN0cmluZyBmaWVsZCBvbiBhIHN0cnVjdHVyZSwgZG9uJ3QganVzdCBwcmludCBhIHdhcm5pbmcsIGJ1dCBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfaWRfc2V0X3ZhbHVlKToKCSAgSWYgc29tZW9uZSB0cmllcyB0byBzZXQgYSBub24tVVRGOCBzdHJpbmcgZmllbGQgb24gYSBzdHJ1Y3R1cmUsCgkgIGRvbid0IGp1c3QgcHJpbnQgYSB3YXJuaW5nLCBidXQgYWxzbyBpZ25vcmUgdGhlIHJlcXVlc3QgYW5kIGRvCgkgIG5vdCBjaGFuZ2UvYWRkIHRoYXQgZmllbGQgdG8gdGhlIHN0cnVjdHVyZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGFnX3N1aXRlKToKCSAgVGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNi0xMC0yNiAwMDowMDozNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0aW5mby5jOiBnX2hhc2hfdGFibGVfaW5zZXJ0KCkgbmVlZHMgYSBjYXN0IHRvIGEgbm9uLWNvbnN0IHBvaW50ZXIgZHVoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBnX2hhc2hfdGFibGVfaW5zZXJ0KCkgbmVlZHMgYSBjYXN0IHRvIGEgbm9uLWNvbnN0IHBvaW50ZXIgZHVoLgoKMjAwNi0xMC0yNSAyMzo0Nzo0MCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0aW5mby4qOiBDaGFuZ2UgbmFtZSBwYXJhbWV0ZXIgb2YgX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyIHRvIGNvbnN0IHRvIHJlZmxlY3QgdGhlIGNvbnN0bmVzcyBvZiBpdHMgdXNlIGluIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBDaGFuZ2UgbmFtZSBwYXJhbWV0ZXIgb2YgX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyIHRvIGNvbnN0CgkgIHRvIHJlZmxlY3QgdGhlIGNvbnN0bmVzcyBvZiBpdHMgdXNlIGluIHRoZSBmdW5jdGlvbiBhcyB3ZWxsCgkgIGFzIHRvIHF1aWV0IGEgZ2NjIHdhcm5pbmcuCgoyMDA2LTEwLTI1IDEzOjQxOjQ0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IHB1c2ggdGhlIGJ1ZmZlciBpZiBpdCdzIGVtcHR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgIERvbid0IHB1c2ggdGhlIGJ1ZmZlciBpZiBpdCdzIGVtcHR5LgoJICBDbG9zZXMgIzM2MzA5NQoKMjAwNi0xMC0yNCAwODoyMjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5oOiBBZGQgc21hbGwgY29tbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBzbWFsbCBjb21tZW50LgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfZXZlbnRmdW5jKToKCSAgRGVidWcgc2VnbWVudCB2YWx1ZXMgKmFmdGVyKiB1cGRhdGluZyB0aGVtIGFzIHRoaXMgaXMgbW9yZQoJICBpbnRlcmVzdGluZy4KCjIwMDYtMTAtMjMgMTU6MjE6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6IFVwZGF0ZSBzb21lIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgVXBkYXRlIHNvbWUgZG9jcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2lzX2Jsb2NraW5nKSwgKGhhbmRsZV9wYWRfYmxvY2spLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgUmV2ZXJ0IEJMT0NLSU5HIHBhdGNoLCBpdCB0cmllcyB0byBiZSBzbWFydCB3aXRob3V0IHJlYWxseSBoYXZpbmcgYQoJICBjbGVhciBpZGVhIHdoYXQgb3IgaG93LiBTbywgbm93IHdlIGRpc2NhcmQgYWxsIEZMVVNISU5HIGV2ZW50cyBhZ2FpbiBvbgoJICBhIGJsb2NraW5nIHBhZC4gU2hvdWxkIGZpeCBnbm9ubGluIGFnYWluLgoKMjAwNi0xMC0yMyAxNDo1MTozMCArMDAwMCAgU2VyZ2V5IFNjb2JpY2ggPHNlcmdleS5zY29iaWNoQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIHN1cmUgc2l6ZSBpcyBhbHdheXMgaW5pdGlhbGl6ZWQuIEZpeGVzICMzNjQzODguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogU2VyZ2V5IFNjb2JpY2ggPHNlcmdleSBkb3Qgc2NvYmljaCBhdCBnbWFpbCBkb3QgY29tPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBNYWtlIHN1cmUgc2l6ZSBpcyBhbHdheXMgaW5pdGlhbGl6ZWQuIEZpeGVzICMzNjQzODguCgoyMDA2LTEwLTIwIDExOjM2OjU2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2Rpc3RyaWJ1dGVkLnR4dDogYWRkIHNvbWUgaWRlYXMgYWJvdXQgZG9pbmcgZGlzdHJpYnV0ZWQgcHJvY2Vzc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL2Rpc3RyaWJ1dGVkLnR4dDoKCSAgYWRkIHNvbWUgaWRlYXMgYWJvdXQgZG9pbmcgZGlzdHJpYnV0ZWQgcHJvY2Vzc2luZwoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgZ2V0X3J1c2FnZSBsb29rIHByb21pc2luZwoKMjAwNi0xMC0xOCAxOTo0Mzo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOiBBZGQgYSBjYXN0IGluIGV4YW1wbGUgdG8gZml4IGNvbXBpbGUgd2FybmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgIEFkZCBhIGNhc3QgaW4gZXhhbXBsZSB0byBmaXggY29tcGlsZSB3YXJuaW5nCgoyMDA2LTEwLTE4IDE1OjI4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogUmVsYXggYXJnIGNoZWNraW5nIGFnYWluLCAtMSBpcyBhbGxvd2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksCgkgIChnc3Rfc2VnbWVudF9zZXRfc2VlayksIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKToKCSAgUmVsYXggYXJnIGNoZWNraW5nIGFnYWluLCAtMSBpcyBhbGxvd2VkLgoKMjAwNi0xMC0xOCAxMzoyNzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IF9zZXRfbGFzdF9zdG9wKCkgbXVzdCBiZSB3aXRoIGEgdmFsdWUgIT0gLTEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLAoJICAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCk6CgkgIF9zZXRfbGFzdF9zdG9wKCkgbXVzdCBiZSB3aXRoIGEgdmFsdWUgIT0gLTEKCSAgQSBfVFlQRV9TRVQgdG8gLTEgbWVhbnMgc2VlayB0byAwLgoJICBDYWxjIGxhc3Rfc3RvcCBjb3JyZWN0bHkgZm9yIG5lZ2F0aXZlIHJhdGVzLgoJICBNYWtlIHN1cmUgd2Ugd29yayB3aXRoIHBvc2l0aXZlIGR1cmF0aW9ucyB3aGVuIHVwZGF0aW5nIGEgc2VnbWVudC4KCjIwMDYtMTAtMTggMTM6MjE6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2NzIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWxpdmUtc291cmNlLnR4dDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgU21hbGwgZG9jcyBmaXhlcy4KCjIwMDYtMTAtMTggMTA6MDg6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmg6IEFkZCBhbiBleHBsaWNpdCBjYXN0IHRvIEdzdEJ1ZmZlcioqIHRvIGtlZXAgb2xkIGNvZGUgdGhhdCBhZGRlZCBhbiBleHBsaWNpdCBjYXN0IHRvIEdzdE1pbmlPYmplY3QqKiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBZGQgYW4gZXhwbGljaXQgY2FzdCB0byBHc3RCdWZmZXIqKiB0byBrZWVwIG9sZCBjb2RlIHRoYXQgYWRkZWQgYW4KCSAgZXhwbGljaXQgY2FzdCB0byBHc3RNaW5pT2JqZWN0KiogZm9yIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCkKCSAgY29tcGlsaW5nIHdpdGhvdXQgd2FybmluZy4KCjIwMDYtMTAtMTggMDg6NTQ6MzAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBjaGVjayBmb3IgdmFsaWRpdHkgb2YgZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2V0X2RhdGUpLCAoZ3N0X2RhdGVfY29weSk6CgkgIGNoZWNrIGZvciB2YWxpZGl0eSBvZiBkYXRlcwoKMjAwNi0xMC0xNyAxMjowOTozNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEZvcmdvdCB0aGlzIG9uZSwgbWFrZXMgZ3RrLWRvYyBzaHV0IHVwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBGb3Jnb3QgdGhpcyBvbmUsIG1ha2VzIGd0ay1kb2Mgc2h1dCB1cC4KCjIwMDYtMTAtMTcgMTE6NTc6MzIgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L2dzdG9iamVjdC5oOiBEb24ndCBkZWZpbmUgeG1sTm9kZVB0ciB0byBncG9pbnRlciBpZiB0aGUgY29yZSB3YXMgYnVpbHQgd2l0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9uJ3QgZGVmaW5lIHhtbE5vZGVQdHIgdG8gZ3BvaW50ZXIgaWYgdGhlIGNvcmUgd2FzIGJ1aWx0IHdpdGgKCSAgLS1kaXNhYmxlLWxvYWRzYXZlIGFuZCAtLWRpc2FibGUtcmVnaXN0cnksIHRoaXMgd2lsbCBicmVhawoJICBhcHBsaWNhdGlvbnMgdGhhdCB3YW50IHRvIHVzZSBsaWJ4bWwyIGJ1dCBhcmUgYnVpbGRsaW5nIGFnYWluc3QgYQoJICBjb3JlIHRoYXQgZG9lc24ndCB1c2UgbGlieG1sMi4gVXNlIGFuIGludGVybWVkaWFyeSB0eXBlIEdzdFhtbE5vZGVQdHIKCSAgaW5zdGVhZCBzbyB3ZSBkb24ndCBoYXZlIHRvIG1lc3Mgd2l0aCB0aGUgbGlieG1sMiBuYW1lc3BhY2UKCSAgKCMzNjE2NzUpLgoKMjAwNi0xMC0xNyAxMDozMDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RidWZmZXIuaDogRml4IGdzdF9idWZmZXJfcmVwbGFjZSgpIG1hY3JvIHRvIGF2b2lkIGdzdF9taW5pX29iamVjdF9yZXBsYWNlKCktcmVsYXRlZCB0eXBlLXB1bm5lZCBwb2ludGVyIHdhcm5pbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEZpeCBnc3RfYnVmZmVyX3JlcGxhY2UoKSBtYWNybyB0byBhdm9pZCBnc3RfbWluaV9vYmplY3RfcmVwbGFjZSgpLXJlbGF0ZWQKCSAgdHlwZS1wdW5uZWQgcG9pbnRlciB3YXJuaW5ncy4KCjIwMDYtMTAtMTYgMjA6MDI6MzggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5oOiBBZGQgY2FzdHMgdG8gdGhlIGNvcnJlY3QgcmV0dXJuIHR5cGUgdG8gc3RhdGUgPD0+IHN0YXRlIHRyYW5zaXRpb24gbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBBZGQgY2FzdHMgdG8gdGhlIGNvcnJlY3QgcmV0dXJuIHR5cGUgdG8gc3RhdGUgPD0+IHN0YXRlIHRyYW5zaXRpb24KCSAgbWFjcm9zLgoKMjAwNi0xMC0xNiAxMzo1Mzo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6IGRlc2NyaWJlIGhvd3RvIGhhbmRsZSBsYXRlbmN5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICBkZXNjcmliZSBob3d0byBoYW5kbGUgbGF0ZW5jeQoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvcHJvZmlsaW5nLnR4dDoKCSAgbW9yZSBpZGVhcwoJICAqIHRvb2xzL2dzdC1wbG90LXRpbWVsaW5lLnB5OgoJICBmaXggbG9nIHBhcnNpbmcgZm9yIHNvbGFyaXMsIHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KCjIwMDYtMTAtMTYgMTE6NDY6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBVcGRhdGUgc29tZSBkb2NzIHJlZ2FyZGluZyByZXZlcnNlIHBsYXliYWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBVcGRhdGUgc29tZSBkb2NzIHJlZ2FyZGluZyByZXZlcnNlIHBsYXliYWNrLgoKMjAwNi0xMC0xNSAxMjo0NzoxMyArMDAwMCAgTWFyY3VzIEdyYW5hZG8gPG1yYy5ncmFuQGdtYWlsLmNvbT4KCgkgIHdpbjMyL3ZzOC9ncmFtbWFyLnZjcHJvajogRXJyb3Igb3V0IHdpdGggYSB3YXJuaW5nIGlmIGdsaWItZ2VubWFyc2hhbC5leGUgaXMgbm90IGluIHBhdGgsIGluc3RlYWQgb2YgY3JlYXRpbmcgYm9ndXMgZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmN1cyBHcmFuYWRvICA8bXJjIGRvdCBncmFuIGF0IGdtYWlsIGNvbT4KCSAgKiB3aW4zMi92czgvZ3JhbW1hci52Y3Byb2o6CgkgIEVycm9yIG91dCB3aXRoIGEgd2FybmluZyBpZiBnbGliLWdlbm1hcnNoYWwuZXhlIGlzIG5vdCBpbiBwYXRoLAoJICBpbnN0ZWFkIG9mIGNyZWF0aW5nIGJvZ3VzIGdzdG1hcnNoYWwuW2NoXSBmaWxlcy4gRml4ZXMgIzM2MTcyMC4KCjIwMDYtMTAtMTMgMTY6MDk6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBXaGVuIHNlZWtpbmcgdG8gc3RvcCAtMSwgc2V0IGxhc3Rfc3RvcCAoY3VycmVudCBwb3NpdGlvbikgdG8gdGhlIGR1cmF0aW9uIG9mIHRoZSBzZWdtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICBXaGVuIHNlZWtpbmcgdG8gc3RvcCAtMSwgc2V0IGxhc3Rfc3RvcCAoY3VycmVudCBwb3NpdGlvbikgdG8gdGhlCgkgIGR1cmF0aW9uIG9mIHRoZSBzZWdtZW50LgoKMjAwNi0xMC0xMyAxMzoyNzo0NiArMDAwMCAgWXZlcyBMZWZlYnZyZSA8aXZhbm9oZUBhYmFjb20uY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogQ2xhcmlmeSBfTk9fUFJFUk9MTCBhIGJpdCBtb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBDbGFyaWZ5IF9OT19QUkVST0xMIGEgYml0IG1vcmUuCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgIEZpeCBkb2NzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19oaWVyYXJjaHkpLAoJICAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX3NhdmVfdGh5c2VsZiksCgkgIChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfcHVzaF9ldmVudCksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBQYXRjaCBieTogWXZlcyBMZWZlYnZyZSA8aXZhbm9oZSBhdCBhYmFjb20gZG90IGNvbT4gRml4IHBvc3NpYmxlIGRlYWRsb2NrCgkgIGR1ZSB0byB3cm9uZyBsb2NraW5nIG9yZGVyLiBGaXhlcyAjMzYxNzY5LgoJICBSZW1vdmUgc29tZSByZWR1bmRhbnQvbWlzcGxhY2VkIGNoZWNrcyBpbiBwYWRfYmxvY2suCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBGb3IgbmVnYXRpdmUgcmF0ZXMsIGNvdW50IGJhY2t3YXJkcyBmcm9tIHRoZSBkdXJhdGlvbi4KCjIwMDYtMTAtMTMgMDk6Mzc6NTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXJyb3IuYzogRml4IGVycm9yIG1lc3NhZ2UgZm9yIEdTVF9MSUJSQVJZX0VSUk9SX1NFVFRJTkdTIChmZWVsIGZyZWUgdG8gY29tZSB1cCB3aXRoIHNvbWV0aGluZyBiZXR0ZXIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfbGlicmFyeV9lcnJvcnNfaW5pdCk6CgkgIEZpeCBlcnJvciBtZXNzYWdlIGZvciBHU1RfTElCUkFSWV9FUlJPUl9TRVRUSU5HUyAoZmVlbCBmcmVlIHRvIGNvbWUKCSAgdXAgd2l0aCBzb21ldGhpbmcgYmV0dGVyKS4KCjIwMDYtMTAtMTIgMjI6MzU6NTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi86IERvbid0IHJlZmVyZW5jZSBnbGliLWNvbXBhdC5jIHdoaWNoIGlzIGN1cnJlbnRseSBub3QgdXNlZCBhbmQgbm90IGRpc3RlZDsgYWRkIGdzdHF1YXJrLmMgd2hpY2ggd2FzIHJlY2VudGx5IGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgICogd2luMzIvdnM3L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgICogd2luMzIvdnM4L2xpYmdzdHJlYW1lci52Y3Byb2o6CgkgIERvbid0IHJlZmVyZW5jZSBnbGliLWNvbXBhdC5jIHdoaWNoIGlzIGN1cnJlbnRseSBub3QgdXNlZCBhbmQgbm90CgkgIGRpc3RlZDsgYWRkIGdzdHF1YXJrLmMgd2hpY2ggd2FzIHJlY2VudGx5IGFkZGVkLiBGaXhlcyAjMzYxNzMwLgoKMjAwNi0xMC0xMiAxNjowOToyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBnc3RfY2Fwc19tZXJnZSgpIGFuZCBhIGJ1bmNoIG9mIG90aGVyIHJlY2VudGx5LWFkZGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3Rjb250cm9sbGVyLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIGdzdF9jYXBzX21lcmdlKCkgYW5kIGEgYnVuY2ggb2Ygb3RoZXIgcmVjZW50bHktYWRkZWQgZnVuY3Rpb25zLgoJICBGaXhlcyAjMzYxNzMyLgoKMjAwNi0xMC0xMSAxNjozMDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcGx1Z2lucy86IFVwZGF0ZSBlbGVtZW50IGFyZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJICAqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJICBVcGRhdGUgZWxlbWVudCBhcmdzLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICBTbWFsbCBjb21tZW50IHVwZGF0ZS4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9jbGFzc19pbml0KSwgKGdzdF90ZWVfaW5pdCksCgkgIChnc3RfdGVlX3JlcXVlc3RfbmV3X3BhZCksIChnc3RfdGVlX3JlbGVhc2VfcGFkKSwKCSAgKGdzdF90ZWVfYnVmZmVyX2FsbG9jKSwgKGdzdF90ZWVfc2lua19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF90ZWVfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICBTb21lIHRlZSBsb3Zpbmc6CgkgIEFkZCBkZWZhdWx0IHByb3BlcnR5IGRlZmluZXMuCgkgIEltcGxlbWVudCByZWxlYXNlIHBhZCBmdW5jdGlvbi4KCSAgR2l2ZSBwcm9wZXJ0aWVzIGJldHRlciBibHVicyBldGMuCgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIGFkZGluZyB0aGVtIHRvIGEgcnVubmluZyB0ZWUuCgkgIERvIHNpbXBsZSBidWZmZXJfYWxsb2Mgb24gdGhlIGZpcnN0IHJlcXVlc3RlZCBwYWQuCgkgIFBvc3QgZXJyb3Igd2hlbiBhY3RpdmF0aW9uIGZhaWxzLgoKMjAwNi0xMC0xMSAxMjoxNjowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogQ2hlY2sgcmV0dXJuIHZhbHVlIG9mIHdyaXRlKCkgdG8gbWFrZSBjb21waWxlciBoYXBweS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIENoZWNrIHJldHVybiB2YWx1ZSBvZiB3cml0ZSgpIHRvIG1ha2UgY29tcGlsZXIgaGFwcHkuCgoyMDA2LTEwLTExIDEwOjEwOjM3ICswMDAwICBTam9lcmQgU2ltb25zIDxzam9lcmRAbHVvbi5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IFJlY2hlY2sgcXVldWUgZmlsbGVkbmVzcyBhZnRlciBzaWduYWxsaW5nIHRoZSBvdmVycnVuIHdoZW4gd2UncmUgYWJvdXQgdG8gbGVhayBkb3duc3RyZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTam9lcmQgU2ltb25zIDxzam9lcmQgYXQgbHVvbiBkb3QgbmV0PgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jaGFpbik6CgkgIFJlY2hlY2sgcXVldWUgZmlsbGVkbmVzcyBhZnRlciBzaWduYWxsaW5nIHRoZSBvdmVycnVuIHdoZW4gd2UncmUgYWJvdXQKCSAgdG8gbGVhayBkb3duc3RyZWFtIGJlY2F1c2Ugd2UgcmVsZWFzZWQgdGhlIGxvY2sgd2hlbiBlbWl0dGluZyB0aGUgc2lnbmFsCgkgIGFuZCB0aGUgcXVldWUgY291bGQgYmUgZW1wdHkgYWdhaW4uIEZpeGVzICMzNTIzNDUuCgoyMDA2LTEwLTExIDA5OjEzOjI2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IEZpeCByZWZjb3VudGluZyBoZXJlIHRvbywganVzdCBsaWtlIHdlIGRpZCBmb3IgX25ld192YWxpc3QoKSBhIGZldyBkYXlzIGFnbyAoIzM1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpOgoJICBGaXggcmVmY291bnRpbmcgaGVyZSB0b28sIGp1c3QgbGlrZSB3ZSBkaWQgZm9yIF9uZXdfdmFsaXN0KCkgYSBmZXcKCSAgZGF5cyBhZ28gKCMzNTcxODApICh0aGFua3MgdG8gUmVuw6kgU3RhZGxlcikuIEFsc28gcmVtb3ZlIGFsbCB0aG9zZQoJICAnU2luY2U6IDAuOScgZnJvbSB0aGUgZ3RrLWRvYyBibG9icy4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKGNvbnRyb2xsZXJfcmVmY291bnRfbmV3X2xpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIHRoZSBhYm92ZS4KCjIwMDYtMTAtMTAgMTQ6NDc6NDAgKzAwMDAgIFNlYmFzdGllbiBDb3RlIDxzZWJhczY0MkB5YWhvby5jYT4KCgkgIGdzdC9nc3RwYWQuYzogVXBkYXRlIHNvbWUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTZWJhc3RpZW4gQ290ZSA8c2ViYXM2NDIgYXQgeWFob28gZG90IGNhPgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLAoJICAoZ3N0X3BhZF9zYXZlX3RoeXNlbGYpOgoJICBVcGRhdGUgc29tZSBkb2NzLgoJICBXcml0ZSBwYWQgZGlyZWN0aW9uIGluIFhNTCBvdXRwdXQuIEZpeGVzICMzNDU0OTYuCgoyMDA2LTEwLTEwIDE0OjEzOjA4ICswMDAwICBSZW7DqSBTdGFkbGVyIDxtYWlsQHJlbmVzdGFkbGVyLmRlPgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IFRha2UgcmVmIHRvIGNvbnRyb2xsZWQgb2JqZWN0IHNvIHRoYXQgaXQgY2Fubm90IGRpc2FwcGVhci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBSZW7DqSBTdGFkbGVyIDxtYWlsIGF0IHJlbmVzdGFkbGVyIGRvdCBkZT4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfbmV3X2xpc3QpLCAoX2dzdF9jb250cm9sbGVyX2Rpc3Bvc2UpLAoJICAoX2dzdF9jb250cm9sbGVyX2ZpbmFsaXplKSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgVGFrZSByZWYgdG8gY29udHJvbGxlZCBvYmplY3Qgc28gdGhhdCBpdCBjYW5ub3QgZGlzYXBwZWFyLgoJICBGaXhlcyAjMzU3NDMyLgoKMjAwNi0xMC0xMCAxNDowOTo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IEFjdGl2YXRlL2RlYWN0aXZhdGUgcGFkcyBpbiBzZXR1cC90ZWFyZG93biByZXNwZWN0aXZlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCksIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NpbmtfcGFkKToKCSAgQWN0aXZhdGUvZGVhY3RpdmF0ZSBwYWRzIGluIHNldHVwL3RlYXJkb3duIHJlc3BlY3RpdmVseS4KCjIwMDYtMTAtMTAgMTI6MTI6NDQgKzAwMDAgIEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgoJICBnc3QvTWFrZWZpbGUuYW06IENhc3QgdmFsdWVzIHdoZW4gbWFraW5nIGdzdGVudW10eXBlcy5oLiAgVGhpcyBwYWNpZmllcyBGb3J0ZSBzbyBpdCBkb2Vzbid0IHdhcm4gYWJvdXQgdGhlIH4wIGFzIEdTVF8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMTAgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgUGF0Y2ggYnk6IEpvc2VwIFRvcnJlIFZhbGxlcyA8am9zZXBAZmx1ZW5kby5jb20+CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBDYXN0IHZhbHVlcyB3aGVuIG1ha2luZyBnc3RlbnVtdHlwZXMuaC4gIFRoaXMgcGFjaWZpZXMgRm9ydGUKCSAgc28gaXQgZG9lc24ndCB3YXJuIGFib3V0IHRoZSB+MCBhcyBHU1RfTUVTU0FHRV9BTlkgbm90IGZpdHRpbmcKCSAgaW4gdGhlIGVudW1lcmF0aW9uLgoKMjAwNi0xMC0wOSAxNzoxNTozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5jOiBSZW5hbWUgc29tZSBtb3JlIEBjdXIgdG8gQHN0YXJ0IHRvIGZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfc2VlayksIChnc3RfZXZlbnRfcGFyc2Vfc2Vlayk6CgkgIFJlbmFtZSBzb21lIG1vcmUgQGN1ciB0byBAc3RhcnQgdG8gZml4IGRvY3MuCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3NldF9zZWVrKToKCSAgRml4IHR5cG8uCgkgIHRpbWUgYW5kIHN0YXJ0IG11c3QgYWx3YXlzIHN0YXkgaW4gc3luYyBhcyBkZWZpbmVkIGluIGRlc2lnbiBkb2MuCgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF90YWdfbGlzdF9pc19lbXB0eSk6CgkgIFJlbmFtZSBwYXJhbSB0byBmaXggZG9jcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDaGVjayB0aGF0IHN0YXJ0IGFuZCB0aW1lIGFyZSBpbiBzeW5jLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgQWN0aXZhdGUgcGFkIGJlZm9yZSBhZGRpbmcgdG8gdGhlIGVsZW1lbnQuCgoyMDA2LTEwLTA5IDE2OjMzOjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OiBGaXggdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBGaXggdHlwby4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgVXBkYXRlIHNlZWsgZXZlbnQgZG9jcyByZWdhcmRpbmcgbmVnYXRpdmUgcmF0ZXMuCgkgIFJlbmFtZSBAY3VyIHRvIEBzdGFydC4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIFVwZGF0ZSBzZXRfc2VlayBkb2NzIHJlZ2FyZGluZyBuZWdhdGl2ZSByYXRlcy4KCSAgQ29ycmVjdGx5IHVwZGF0ZSBsYXN0X3N0b3AgdG8gQHN0b3Agd2hlbiBkZWFsaW5nIHdpdGggbmVnYXRpdmUKCSAgcmF0ZXMuCgkgIFJlbmFtZSBAY3VyIHRvIEBzdGFydC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFjdGl2YXRlIHBhZHMgYmVmb3JlIHRyeWluZyB0byB1c2UgdGhlbS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3NlZ21lbnRfc3VpdGUpOgoJICBBZGQgc2ltcGxlIGNoZWNrIGZvciBzZWdtZW50cyBhbmQgbmVnYXRpdmUgcmF0ZXMuCgoyMDA2LTEwLTA5IDExOjIwOjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgZ3N0X3RhZ19saXN0X2lzX2VtcHR5KCkgKCMzNjA0NjcpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoZ3N0X3RhZ19saXN0X2lzX2VtcHR5KToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFQSTogYWRkIGdzdF90YWdfbGlzdF9pc19lbXB0eSgpICgjMzYwNDY3KS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFuZCBhIHRlc3QgY2FzZS4KCjIwMDYtMTAtMDkgMTE6MDY6NTAgKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5oOiBSZXZlcnQgY2hhbmdlIGZyb20gZWFybGllciB3cnQgR1NUX01FU1NBR0VfVFlQRV9BTlkgaGF2aW5nIGEgdmFsdWUgdGhhdCBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMTAtMDkgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBSZXZlcnQgY2hhbmdlIGZyb20gZWFybGllciB3cnQgR1NUX01FU1NBR0VfVFlQRV9BTlkgaGF2aW5nCgkgIGEgdmFsdWUgdGhhdCBkb2Vzbid0IGZpdCBvbiBlbnVtZXJhdGlvbi4KCjIwMDYtMTAtMDkgMTA6MTQ6MjggKzAwMDAgIFphaGVlciBBYmJhcyBNZXJhbGkgPHphaGVlcmFiYmFzQG1lcmFsaS5vcmc+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogUmVtb3ZlIGxvY2FsIGRlYnVnZ2luZyBzeXN0ZW0gYW5kIHVzZSBHc3RyZWFtZXIncyBpbnN0ZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wOSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgUmVtb3ZlIGxvY2FsIGRlYnVnZ2luZyBzeXN0ZW0gYW5kIHVzZSBHc3RyZWFtZXIncyBpbnN0ZWFkLgoKMjAwNi0xMC0wOSAwOTozMjoyOSArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6IERpc2FibGUgd2FybmluZyBvZiBzdGF0ZW1lbnQgbm90IHJlYWNoZWQgb24gRm9ydGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA5ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6CgkgIERpc2FibGUgd2FybmluZyBvZiBzdGF0ZW1lbnQgbm90IHJlYWNoZWQgb24gRm9ydGUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgRml4IHdhcm5pbmcgb24gRm9ydGUgKHZhbHVlIGRvZXNuJ3QgZml0IG9uIGVudW1lcmF0aW9uKS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKToKCSAgRml4IHdhcm5pbmcgb24gRm9ydGUgKHZhbHVlIGRvZXNuJ3QgZml0IG9uIGVudW1lcmF0aW9uKS4KCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgIERFQlVHIG1hY3JvIHNheXMgaXQgdGFrZXMgbWluaW11bSBvZiAyIGFyZ3MgYW5kIHNvIEZvcnRlCgkgIGNvbXBsYWlucyBhYm91dCB0aGUgdXNlIHdpdGgganVzdCAxIGFyZy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgIFVzZSBjb3JyZWN0IHJldHVybiB0eXBlIGZvciB0aGUgdXJpIGhhbmRsZXIgaW1wbGVtZW50YXRpb25zLgoJICBBbGwgdGhlc2UgZml4IHdhcm5pbmdzIGluIEZvcnRlLiAgRml4ZXMgYnVnICMzNjA4NjAuCgoyMDA2LTEwLTA4IDEzOjI3OjE3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuaDogZ2NjIHZlcnNpb25zIHByaW9yIHRvIGdjYyAzLjMgYXBwYXJlbnRseSBjb21wbGFpbiBhYm91dCBhIE5VTEwgcHJpbnRmIGZvcm1hdCBzdHJpbmcsIHNvIGRvbid0IHVzZSBHLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGdjYyB2ZXJzaW9ucyBwcmlvciB0byBnY2MgMy4zIGFwcGFyZW50bHkgY29tcGxhaW4gYWJvdXQgYSBOVUxMIHByaW50ZgoJICBmb3JtYXQgc3RyaW5nLCBzbyBkb24ndCB1c2UgR19HTlVDX1BSSU5URiBmb3IgdGhvc2UgdmVyc2lvbnMuCgoyMDA2LTEwLTA3IDE4OjQxOjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuKjogTWlub3IgZml4ZXMgdG8gR1NUX0lTX1RBR19MSVNUIGFuZCBnc3RfaXNfdGFnX2xpc3QoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF9pc190YWdfbGlzdCk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgTWlub3IgZml4ZXMgdG8gR1NUX0lTX1RBR19MSVNUIGFuZCBnc3RfaXNfdGFnX2xpc3QoKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGFnX3N1aXRlKToKCSAgU21hbGwgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNi0xMC0wNyAxODoxMTowMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0Lmg6IExlc3MgdGFicywgbW9yZSBzcGFjZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIExlc3MgdGFicywgbW9yZSBzcGFjZXMuCgoyMDA2LTEwLTA2IDE3OjIxOjMzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uaDogVGhvc2UgdHdvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBkbyBhY3R1YWxseSBiZWxvbmcgdGhlcmUsIHJldmVydCBjb21taXQgZnJvbSB5ZXN0ZXJkYXkgdGhhdCB0dXJuZWQgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIFRob3NlIHR3byBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgZG8gYWN0dWFsbHkgYmVsb25nIHRoZXJlLCByZXZlcnQKCSAgY29tbWl0IGZyb20geWVzdGVyZGF5IHRoYXQgdHVybmVkIHRoZW0gaW50cm8gbWFjcm9zLgoKMjAwNi0xMC0wNiAxNDo0NjowNCArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIGdzdC9nc3QuYzogRml4IGVtcHR5IGRlY2xhcmF0aW9uIGFuZCB0eXBlIG1pc21hdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNiAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICBQYXRjaCBieTogSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKToKCSAgRml4IGVtcHR5IGRlY2xhcmF0aW9uIGFuZCB0eXBlIG1pc21hdGNoLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBGaXggdHlwZSBtaXNtYXRjaC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgRml4IHR5cGUgbWlzbWF0Y2hlcy4KCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX2NvbXBhcmVfbG9nX2Z1bmN0aW9uX2J5X2Z1bmMpLAoJICAoZ3N0X2RlYnVnX3JlbW92ZV9sb2dfZnVuY3Rpb24pLCAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0cik6CgkgIENhc3QgYXMgYXBwcm9wcmlhdGUuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X2NsYXNzX3NpZ25hbF9jb25uZWN0KToKCSAgQ2FzdCBhcyBhcHByb3ByaWF0ZS4gIFRoZSBmdW5jdGlvbiBwb2ludGVyIHBhcmFtZXRlciByZWFsbHkKCSAgaGFzIHRoZSB3cm9uZyB0eXBlIGJ1dCB3b3VsZCBicmVhayBBUEkgaWYgd2UgY2hhbmdlIGl0LgoJICAqIGdzdC9nc3RxdWVyeS5jOgoJICBGaXggcmVkZWZpbml0aW9uIG9mIF9GSUxFX09GRlNFVF9CSVRTIGNhdXNlZCBvbiBTb2xhcmlzIHdydAoJICBvcmRlciBvZiBpbmNsdWRpbmcgc3RyaW5nLmguCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9zdGF0ZV9nZXRfbmFtZSk6CgkgIFJlbW92ZSB1bnJlYWNoYWJsZSBsaW5lLgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfcGFyc2VfZG9jKToKCSAgRml4IHR5cGUgbWlzbWF0Y2guCgkgIEFsbCB0aGVzZSBjYXVnaHQgYnkgRm9ydGUuCgoyMDA2LTEwLTA2IDE0OjAwOjQ5ICswMDAwICBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoKCSAgY29tbW9uL200L2dzdC1lcnJvci5tNDogRml4ZWQgYnVnICMzNjAxNTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA2ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6CgkgIEZpeGVkIGJ1ZyAjMzYwMTUxLgoJICBXZSBuZWVkIHRvIGRpc2FibGUgd2FybmluZ3Mgb24gRm9ydGUgZm9yIGVtcHR5IGRlY2xhcmF0aW9ucwoJICBkdWUgdG8gZ3N0LWluZGVudCBhZGRpbmcgO3MgdG8gbGluZXMgdGhhdCBqdXN0IHVzZSBtYWNyb3MKCSAgd2hlcmUgdGhlIG1hY3JvIGFjdHVhbGx5IGRvZXNuJ3QgbmVlZCBhIDsgYXQgZW5kIHRvIGVuZAoJICBzdGF0ZW1lbnQuCgoyMDA2LTEwLTA2IDEzOjAxOjMwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBBZGQgc29tZSBGSVhNRSBmb3IgdGhlIE5FV1NFR01FTlQgaGFuZGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSksIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgQWRkIHNvbWUgRklYTUUgZm9yIHRoZSBORVdTRUdNRU5UIGhhbmRsaW5nLgoKMjAwNi0xMC0wNSAxNTo0Nzo0NCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IFJlbW92ZSBzdGF0aWMgZnVuY3Rpb24gZ3N0X3BhcnNlX2VsZW1lbnRfbG9jayBhcyBhbGwgaXQgZG9lcyBpcyByZXR1cm4uICBMb29rcyBsaWtlIGNydWZ0IGZyb20gMC44LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0xMC0wNSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIFJlbW92ZSBzdGF0aWMgZnVuY3Rpb24gZ3N0X3BhcnNlX2VsZW1lbnRfbG9jayBhcyBhbGwgaXQgZG9lcwoJICBpcyByZXR1cm4uICBMb29rcyBsaWtlIGNydWZ0IGZyb20gMC44LgoKMjAwNi0xMC0wNSAxNTozMToxNiArMDAwMCAgSm9zZXAgVG9ycmUgVmFsbGVzIDxqb3NlcEBmbHVlbmRvLmNvbT4KCgkgIEZpeCBhIGNvbXBpbGF0aW9uIGlzc3VlIHdpdGggRm9ydGUgb24gU29sYXJpcy4gIGluZXRfYXRvbiBpcyBpbiBsaWJyZXNvbHYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTEwLTA1ICBaYWhlZXIgQWJiYXMgTWVyYWxpICA8emFoZWVyYWJiYXMgYXQgbWVyYWxpIGRvdCBvcmc+CgkgIFBhdGNoIGJ5OiBKb3NlcCBUb3JyZSBWYWxsZXMgPGpvc2VwQGZsdWVuZG8uY29tPgoJICAqIGNvbW1vbi9tNC9nc3QtZXJyb3IubTQ6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgRml4IGEgY29tcGlsYXRpb24gaXNzdWUgd2l0aCBGb3J0ZSBvbiBTb2xhcmlzLiAgaW5ldF9hdG9uIGlzIGluCgkgIGxpYnJlc29sdi4KCjIwMDYtMTAtMDUgMTQ6MjY6MDggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBQcmludGYgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKHByZV9hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudF8xXzApOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOiAoZ3N0X2ZkX3NyY19jcmVhdGUpOgoJICBQcmludGYgZml4ZXMuCgoyMDA2LTEwLTA1IDEyOjMxOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEdTVF9VU0lOR19QUklOVEZfRVhURU5TSU9OIHRvIGdzdGNvbmZpZy5oIHNvIHRoYXQgd2Uga25vdyB3aGV0aGVyIHdlIGNhbiB1c2UgR19HTlVDX1BSSU5URiBpbiBvdGhlciBoZWFkZXIgZmlsZXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEFkZCBHU1RfVVNJTkdfUFJJTlRGX0VYVEVOU0lPTiB0byBnc3Rjb25maWcuaCBzbyB0aGF0IHdlIGtub3cKCSAgd2hldGhlciB3ZSBjYW4gdXNlIEdfR05VQ19QUklOVEYgaW4gb3RoZXIgaGVhZGVyIGZpbGVzIGFuZCBhdAoJICBsZWFzdCBjaGVjayB0aGUgcHJpbnRmIGZvcm1hdC9hcmd1bWVudHMgb2YgZGVidWcgbWVzc2FnZXMgYW5kCgkgIEdTVF9FTEVNRU5UX0VSUk9SIG1lc3NhZ2VzIHdoZW4gdGhlIHByaW50ZiBleHRlbnNpb24gaXMgbm90CgkgIGJlaW5nIHVzZWQuCgkgIFJlcGxhY2UgbW9yZSB0YWJzIHdpdGggc3BhY2VzIGluIGdzdGluZm8uaCBhbmQgcmVtb3ZlIHR3byBzcHVyaW91cwoJICBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW4gR1NUX0RJU0FCTEVfREVCVUcgcGFydCB3aXRoIG1hY3Jvcy4KCjIwMDYtMTAtMDMgMTk6MTM6MzYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IE1vcmUgZG9jcyBmb3IgdGhlIHN5bmMtbWVzc2FnZSBzaWduYWwgKG1lbnRpb24gdGhhdCBpdCBpcyBub3QgZW1pdHRlZCBieSBkZWZhdWx0KTsgbG9nIG1lc3NhZ2Ugc3RydWN0dXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KSwgKGdzdF9idXNfcG9zdCk6CgkgIE1vcmUgZG9jcyBmb3IgdGhlIHN5bmMtbWVzc2FnZSBzaWduYWwgKG1lbnRpb24gdGhhdCBpdCBpcyBub3QKCSAgZW1pdHRlZCBieSBkZWZhdWx0KTsgbG9nIG1lc3NhZ2Ugc3RydWN0dXJlcyBvZiBtZXNzYWdlcyBwb3N0ZWQgb24KCSAgdGhlIGJ1cyBhcyB3ZWxsLgoKMjAwNi0xMC0wMyAxNToxMDo1MSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0LmM6IFVzZSBhIHBpcGUgcGFpciB0byByZWNlaXZlIHN0YXR1cyByZXN1bHRzIGZyb20gdGhlIGZvcmtlZCBjaGlsZCwgYW5kIGlnbm9yZSB0aGUgcmVzdWx0IGZyb20gd2FpdHBpZC4gRml4ZXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyk6CgkgIFVzZSBhIHBpcGUgcGFpciB0byByZWNlaXZlIHN0YXR1cyByZXN1bHRzIGZyb20gdGhlIGZvcmtlZCBjaGlsZCwgYW5kCgkgIGlnbm9yZSB0aGUgcmVzdWx0IGZyb20gd2FpdHBpZC4gRml4ZXMgIzM1NTQ5OQoKMjAwNi0xMC0wMiAxNjo0NjoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBGaXggbGVhayBpbiBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgRml4IGxlYWsgaW4gY2hlY2suCgoyMDA2LTEwLTAyIDE2OjM3OjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGQgJ1NpbmNlOiAwLjEwLjExJyB0byBnc3RfcGFkX2lzX2Jsb2NraW5nKCkgZ3RrLWRvYyBibHVyYi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOgoJICBBZGQgJ1NpbmNlOiAwLjEwLjExJyB0byBnc3RfcGFkX2lzX2Jsb2NraW5nKCkgZ3RrLWRvYyBibHVyYi4KCjIwMDYtMTAtMDIgMTY6MDE6NTQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDogRnVydGhlciBleHBsYWluIHRoZSB1c2Ugb2YgZmx1c2hpbmcgb24gYmxvY2tlZCBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDoKCSAgRnVydGhlciBleHBsYWluIHRoZSB1c2Ugb2YgZmx1c2hpbmcgb24gYmxvY2tlZCBwYWRzLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pc19ibG9ja2luZyksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBBZGRlZCBuZXcgR3N0UGFkRmxhZyA6IEdTVF9QQURfQkxPQ0tJTkcuCgkgIEFkZHMgdGhlIG5vdGlvbiBvZiBwYWRzIHJlYWxseSBibG9ja2luZywgd2hpY2ggZW5hYmxlcyB0byBwcm9wZXJseQoJICBoYW5kbGUgRkxVU0hfU1RBUlQvRkxVU0hfU1RPUCBldmVudHMgb24gYmxvY2tlZCBwYWRzLgoJICBGaXhlcyAjMzU4OTk5CgkgIEFQSTogZ3N0X3BhZF9pc19ibG9ja2luZygpCgkgIEFQSTogR1NUX1BBRF9JU19CTE9DS0lORygpIG1hY3JvCgkgIEFQSTogR1NUX1BBRF9CTE9DS0lORyBHc3RQYWRGbGFnCgoyMDA2LTEwLTAyIDEwOjA2OjE3ICswMDAwICBtcmNncmFuIDxtcmMuZ3JhbkBnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogRmlsdGVyIHRoZSBwcm94aWVkIGNhcHMgYWdhaW5zdCB0aGUgcGFkdGVtcGxhdGUgaWYgd2UgaGF2ZSBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogbXJjZ3JhbiA8bXJjLmdyYW4gYXQgZ21haWwgZG90IGNvbT4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2Fwcyk6CgkgIEZpbHRlciB0aGUgcHJveGllZCBjYXBzIGFnYWluc3QgdGhlIHBhZHRlbXBsYXRlIGlmIHdlIGhhdmUgb25lLgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19zZWdtZW50KToKCSAgQWRkIGluY2x1ZGUgZm9yIGdzdGluZm8uaCBzbyB0aGF0IGNvbXBpbGF0aW9uIHdpdGgKCSAgLURHU1RfRElTQUJMRV9HU1RfREVCVUcgd29ya3MgYWdhaW4uIEZpeGVzICMzNTg0MzYuCgoyMDA2LTEwLTAyIDA5OjQ0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBHaXZlIGNyZWRpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgR2l2ZSBjcmVkaXQKCjIwMDYtMTAtMDIgMDk6NDE6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IFNldCBmaWxlIHRvIE5VTEwgd2hlbiBjbG9zaW5nIGZpbGVzaW5rIHNvIHRoYXQgd2UgY2FuIHNldCBhIG5ldyBmaWxlbmFtZSBpbiBSRUFEWS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19pbml0KSwKCSAgKGdzdF9maWxlX3Npbmtfc2V0X2xvY2F0aW9uKSwgKGdzdF9maWxlX3Npbmtfb3Blbl9maWxlKSwKCSAgKGdzdF9maWxlX3NpbmtfY2xvc2VfZmlsZSksIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgU2V0IGZpbGUgdG8gTlVMTCB3aGVuIGNsb3NpbmcgZmlsZXNpbmsgc28gdGhhdCB3ZSBjYW4gc2V0IGEgbmV3IGZpbGVuYW1lCgkgIGluIFJFQURZLiBGaXhlcyAjMzU4NjEzLgoKMjAwNi0xMC0wMiAwODozNzoyNCArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBnc3QvZ3N0ZXZlbnQuYzogRml4IGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKCkgYW5kIGdzdF9ldmVudF9jb3B5KCkgZm9yIGV2ZW50cyB3aXRoIGV2ZW50IHN0cnVjdHVyZXMgYnkgc2V0dGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlY2luYSAgPGFsZXNzYW5kcm8gYXQgbm52YSBvcmc+CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2NvcHkpOgoJICBGaXggZ3N0X21pbmlfb2JqZWN0X21ha2Vfd3JpdGFibGUoKSBhbmQgZ3N0X2V2ZW50X2NvcHkoKSBmb3IgZXZlbnRzCgkgIHdpdGggZXZlbnQgc3RydWN0dXJlcyBieSBzZXR0aW5nIHRoZSBwYXJlbnQgcmVmY291bnQgYWRkcmVzcyBvZiB0aGUKCSAgY29waWVkIHN0cnVjdHVyZSB0byB0aGUgYWRkcmVzcyBvZiB0aGUgcmVmY291bnQgbWVtYmVyIG9mIHRoZSBuZXdseQoJICBjb3BpZWQgZXZlbnQgcmF0aGVyIHRoYW4gdGhlIGFkZHJlc3Mgb2YgdGhlIHJlZmNvdW50IG1lbWJlciBvZiB0aGUKCSAgb3JpZ2luYWwgZXZlbnQuIEZpeGVzICMzNTg3MzcuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVuaXQgdGVzdCBmb3IgdGhlIGFib3ZlLgoKMjAwNi0wOS0yOSAyMDoyOTo0OSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9kZXNpZ24vTWFrZWZpbGUuYW06IERpc3Qgc29tZSBtb3JlIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgRGlzdCBzb21lIG1vcmUgZmlsZXMuCgoyMDA2LTA5LTI5IDEyOjMxOjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6IEFkZCB0ZXN0IGZvciB0aGUgcHJldmlvdXMgZml4OyBhZGQgc29tZSBtb3JlIHRlc3RzIGZvciBjb3JyZWN0IHJlZmNvdW50aW5nIGJlaGF2aW91cjsgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICBBZGQgdGVzdCBmb3IgdGhlIHByZXZpb3VzIGZpeDsgYWRkIHNvbWUgbW9yZSB0ZXN0cwoJICBmb3IgY29ycmVjdCByZWZjb3VudGluZyBiZWhhdmlvdXI7IGZpeCBhIGZldyBsZWFrcwoJICBpbiB0ZXN0IGNhc2VzOyBjYWxsIGdzdF9jb250cm9sbGVyX2luaXQoKSBhdCBzdGFydAoJICBvZiBhbGwgdGVzdHMuCgoyMDA2LTA5LTI5IDEyOjI0OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IERvbid0IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgb24gdGltZWQgdmFsdWVzIHdpdGggaW52YWxpZCB0aW1lc3RhbXBzIGluc2lkZSBhIGNyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9zZXRfZnJvbV9saXN0KToKCSAgRG9uJ3QgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKSBvbiB0aW1lZCB2YWx1ZXMgd2l0aCBpbnZhbGlkIHRpbWVzdGFtcHMKCSAgaW5zaWRlIGEgY3JpdGljYWwgc2VjdGlvbiB3aXRob3V0IHVubG9ja2luZyB0aGUgbXV0ZXguIFNwb3R0ZWQgYnkKCSAgUmVuw6kgU3RhZGxlci4gKCMzNTc2MTcpCgkgIEFsc28sIGZpeCB1cCByZWZjb3VudGluZyBwcm9wZXJseTogd2hlbiByZXR1cm5pbmcgYW4gZXhpc3RpbmcKCSAgY29udHJvbGxlciwgd2Ugc2hvdWxkIGluY3JlYXNlIHRoZSByZWZlcmVuY2Ugb25seSBvbmNlIGFuZCBub3QKCSAgb25jZSBwZXIgcHJvcGVydHkgYW5kIHdoZW4gdHJ5aW5nIHRvIGNvbnRyb2wgYSBwcm9wZXJ0eSBhZ2FpbgoJICB3ZSBzaG91bGQgYWxzbyBpbmNyZWFzZSB0aGUgcmVmY291bnQuCgoyMDA2LTA5LTI5IDA4OjIyOjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvbmV0LzogU3RvcCByZWFkaW5nIGNvbW1hbmRzIHdoZW4gRU9GIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfdGhyZWFkKToKCSAgU3RvcCByZWFkaW5nIGNvbW1hbmRzIHdoZW4gRU9GIGFzIHdlbGwuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgIFVuaWZ5IGRlc2NyaXB0aW9uIG9mIHRoZSBkdW1wIHByb3BlcnR5LgoKMjAwNi0wOS0yOCAxNzoyMDoxNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIE1lbnRpb24gYnVnIG51bWJlciBpbiBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gYnVnIG51bWJlciBpbiBwcmV2aW91cyBjb21taXQKCjIwMDYtMDktMjggMTU6NTI6MDQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvZXhhbXBsZXMvbWFudWFsLy5jdnNpZ25vcmU6IE9LLCBzbyBpdCdzIGFjdHVhbGx5IGN2c2lnbm9yZSB0aGF0IG5lZWRzIGNoYW5naW5nLiBTdG9wIGxhdWdoaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvLmN2c2lnbm9yZToKCSAgT0ssIHNvIGl0J3MgYWN0dWFsbHkgY3ZzaWdub3JlIHRoYXQgbmVlZHMgY2hhbmdpbmcuIFN0b3AgbGF1Z2hpbmcuCgoyMDA2LTA5LTI4IDE1OjI3OjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbTogR2FoLCBkZWNsYXJlIHZhcnMgKmJlZm9yZSogdXNpbmcgdGhlbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIEdhaCwgZGVjbGFyZSB2YXJzICpiZWZvcmUqIHVzaW5nIHRoZW0KCjIwMDYtMDktMjggMTQ6MDA6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogUmUtY29tbWl0IHRoZSByZWdpc3RyeSBjaGFuZ2VzLCBhbG9uZyB3aXRoIGFuIGV4dHJhIGZpeDoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpLCAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X25vbmZvcmtpbmcpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyksIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeSksCgkgIChpbml0X3Bvc3QpLCAoZ3N0X2RlYnVnX2hlbHApLCAoZ3N0X2RlaW5pdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfZmluYWxpemUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlc19mb3JfcGx1Z2luX3VubG9ja2VkKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfcGx1Z2luKSwgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCksCgkgIChfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMpLAoJICAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X2NsZWFudXApOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBSZS1jb21taXQgdGhlIHJlZ2lzdHJ5IGNoYW5nZXMsIGFsb25nIHdpdGggYW4gZXh0cmEgZml4OgoJICBXaGVuIGEgY2FjaGVkIHBsdWdpbiBpcyBlbmNvdW50ZXJlZCBhdCBhIGRpZmZlcmVudCBmaWxlIHBhdGgsCgkgIHVwZGF0ZSB0aGUgc3RvcmVkIHBhdGggaW4gdGhlIHJlZ2lzdHJ5IGNhY2hlIHNvIHRoYXQgdGhlIHBhcmVudAoJICBwcm9jZXNzIGtub3dzIHdoZXJlIGl0IGFjdHVhbGx5IGlzIG5vdyB3aGVuIGl0IHJlLXJlYWRzIHRoZSByZWdpc3RyeQoJICBjYWNoZS4gRml4ZXMgdGhlIHRoaW5nIHRoYXQgYnJva2UgZGlzdGNoZWNrIHdpdGggdGhlIHByZXZpb3VzIGNvbW1pdC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgQ2xlYW4gdXAgZmlsZXMgbmFtZWQgJ2NvcmUnIHRvbyB3aGVuIHJ1bm5pbmcgbWFrZSBjbGVhbi4KCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIFNldCB1cCBhIHJlZ2lzdHJ5IHBhdGggZm9yIHJ1bm5pbmcgdGhlc2UgdGVzdHMsIGFuZCBjbGVhbiBpdCBwcm9wZXJseQoJICBmb3IgZGlzdGNoZWNrLgoKMjAwNi0wOS0yOCAxMToxMToyOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IERvbid0IHB1bGwgaW4gZ21vZHVsZS0yLjAucGMgYXMgYSBkZXBlbmRlbmN5IGluIG91ciAucGMgZmlsZXMgLSB3ZSB3YW50IGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYyBpbnN0ZWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBEb24ndCBwdWxsIGluIGdtb2R1bGUtMi4wLnBjIGFzIGEgZGVwZW5kZW5jeSBpbiBvdXIgLnBjIGZpbGVzIC0gd2UKCSAgd2FudCBnbW9kdWxlLW5vLWV4cG9ydC0yLjAucGMgaW5zdGVhZCBzbyB0aGF0IHdlIGRvbid0IGRyYWcgaW4KCSAgLS1leHBvcnQtZHluYW1pYyBvbiBldmVyeSBwcm9qZWN0IHRoYXQgbGlua3MgdG8gR1N0cmVhbWVyLgoJICBBbHNvLCBtYWtlIG91ciBleHBvcnQgcmVnZXggb25seSBtYXRjaCB0aGUgc3RhcnQgb2Ygc3ltYm9scywgcmF0aGVyCgkgIHRoYW4gYW55IHN5bWJvbCB0aGF0IGNvbnRhaW5zICdfZ3N0JyBzb21ld2hlcmUuCgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgIFRoZSBsaWJnc3RjaGVjayB3ZSBidWlsZCBkb2VzIGhvd2V2ZXIgbmVlZCBleHBvcnQtZHluYW1pYywgYXMgaXQKCSAgcHJvZHVjZXMgc29tZSBzeW1ib2xzIHRoYXQgZG9uJ3QgbWF0Y2ggb3VyIF9nc3QuLi4gc3R5bGUgcmVnZXguCgoyMDA2LTA5LTI3IDE3OjQyOjQ3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IFJldmVydCBwcmV2aW91cyBjaGFuZ2UgdW50aWwgSSBmaWd1cmUgb3V0IHdoeSBpdCBicmVha3MgZGlzdGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3ByZSksIChzY2FuX2FuZF91cGRhdGVfcmVnaXN0cnkpLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfbm9uZm9ya2luZyksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKSwgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5KSwKCSAgKGluaXRfcG9zdCksIChnc3RfZGVidWdfaGVscCksIChnc3RfZGVpbml0KToKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9maW5hbGl6ZSksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX3BsdWdpbiksIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpLCAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyksCgkgIChfZ3N0X3JlZ2lzdHJ5X2NsZWFudXApOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBSZXZlcnQgcHJldmlvdXMgY2hhbmdlIHVudGlsIEkgZmlndXJlIG91dCB3aHkgaXQgYnJlYWtzIGRpc3RjaGVjay4KCjIwMDYtMDktMjcgMTY6NTI6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBNYWtlIGluaXRfcHJlIGFuZCBpbml0X3Bvc3QgdGFrZSB0aGUgZnVsbCBjb21wbGVtZW50IG9mIEdPcHRpb25GdW5jIGFyZ3Mgc28gdGhleSBjYW4gcmV0dXJuIHVzZWZ1bCBHRXJyb3JzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKSwgKHNjYW5fYW5kX3VwZGF0ZV9yZWdpc3RyeSksCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9ub25mb3JraW5nKSwKCSAgKGVuc3VyZV9jdXJyZW50X3JlZ2lzdHJ5X2ZvcmtpbmcpLCAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpLAoJICAoaW5pdF9wb3N0KSwgKGdzdF9kZWJ1Z19oZWxwKSwgKGdzdF9kZWluaXQpOgoJICBNYWtlIGluaXRfcHJlIGFuZCBpbml0X3Bvc3QgdGFrZSB0aGUgZnVsbCBjb21wbGVtZW50IG9mIEdPcHRpb25GdW5jCgkgIGFyZ3Mgc28gdGhleSBjYW4gcmV0dXJuIHVzZWZ1bCBHRXJyb3JzLiBNYWtlIHRoZSByZWdpc3RyeSB1cGRhdGluZwoJICBmdW5jdGlvbnMgZG8gc28uCgkgIENhbGwgX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zIGFmdGVyIHNjYW5uaW5nIGZpbGVzIHRvCgkgIGVuc3VyZSB0aGF0IHRoZSByZWdpc3RyeSB3ZSdyZSBhYm91dCB0byB3cml0ZSBvdXQgZG9lc24ndCBjb250YWluCgkgIHN0YWxlIGluZm9ybWF0aW9uIGFib3V0IG9sZC1kZWxldGVkIHBsdWdpbiBmaWxlcy4KCSAgTWFrZSBfcHJpdl9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMgcmV0dXJuIGEgYm9vbGVhbiBzbwoJICB0aGF0IGRlbGV0aW9uIG9mIHBsdWdpbiBmaWxlcyBpcyBjb25zaWRlcmVkIGEgcmVnaXN0cnkgY2hhbmdlLgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2ZpbmFsaXplKSwKCSAgKGdzdF9yZWdpc3RyeV9yZW1vdmVfZmVhdHVyZXNfZm9yX3BsdWdpbl91bmxvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX3BsdWdpbiksIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKSwKCSAgKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGgpLAoJICAoX3ByaXZfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKSwKCSAgKF9wcml2X2dzdF9yZWdpc3RyeV9jbGVhbnVwKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgUmVuYW1lIF9nc3RfcmVnaXN0cnlfcmVtb3ZlX2NhY2hlX3BsdWdpbnMgYW5kIF9nc3RfcmVnaXN0cnlfY2xlYW51cAoJICBieSBhZGRpbmcgX3ByaXYgcHJlZml4LCBzbyB0aGF0IHRoZXkgd29uJ3QgYXBwZWFyIGluIHRoZSBnbG9iYWwKCSAgc3ltYm9sIHRhYmxlLiBUaGV5IHN0aWxsIGRvIGF0bSB0aG91Z2ggYmVjYXVzZSBvZiAjMzE4MDMxLiBNb3ZlIHRoZQoJICBwcm90b3R5cGVzIHRvIGdzdF9wcml2YXRlLmgKCSAgV2hlbiByZW1vdmluZyBhIHBsdWdpbiwgcmVtb3ZlIGFsbCBmZWF0dXJlcyBmb3IgdGhhdCBwbHVnaW4gdG9vLgoJICBGaXhlcyAjMzQwODc4LgoKMjAwNi0wOS0yNyAxMzoxOTo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOiBNYWtlIGl0IGNsZWFyIHRoYXQgdGhlICJjb21waWxlZC1pbiBkZXNjcmlwdGlvbnMiIHJlYWxseSBtZWFuIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICBNYWtlIGl0IGNsZWFyIHRoYXQgdGhlICJjb21waWxlZC1pbiBkZXNjcmlwdGlvbnMiIHJlYWxseSBtZWFuCgkgIHRoZSBlbGVtZW50IGRldGFpbHMuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X3ByZXJvbGwpOgoJICBVcGRhdGUgZG9jcy4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3dhaXRfcGxheWluZyksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkZWQgZnVuY3Rpb24gdG8gYmxvY2sgd2hpbGUgd2FpdGluZyBmb3IgUExBWUlORywgdGhpcyBmdW5jdGlvbgoJICBpcyB1c2VkIGJ5IGxpdmUgc291cmNlcyB0aGF0IGJsb2NrIG9uIHRoZSBjbG9jay4KCSAgQVBJOiBnc3RfYmFzZV9zcmNfd2FpdF9wbGF5aW5nKCkKCjIwMDYtMDktMjcgMTA6MTM6MTMgKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgTWFrZWZpbGUuYW06IGdzdC1lbGVtZW50LWNoZWNrLm00IGlzIGdlbmVyYXRlZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBiZSBjb3BpZWQgZnJvbSB0aGUgYnVpbGQgZGlyIHJhdGhlciB0aGFuIHRoZSBzb3VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBjb20+CgkgICogTWFrZWZpbGUuYW06CgkgIGdzdC1lbGVtZW50LWNoZWNrLm00IGlzIGdlbmVyYXRlZCBhbmQgc2hvdWxkIHRoZXJlZm9yZSBiZQoJICBjb3BpZWQgZnJvbSB0aGUgYnVpbGQgZGlyIHJhdGhlciB0aGFuIHRoZSBzb3VyY2UgZGlyICgjMzU3NTkzKS4KCSAgJ21ha2UgZGlzdGNoZWNrJyBoYXNuJ3Qgbm90aWNlZCB0aGlzIGJlY2F1c2Ugd2Ugd2VyZSBkaXN0aW5nCgkgIHRoZSBmaWxlIGFzIHdlbGwsIHNvIHN0b3AgZG9pbmcgdGhhdC4KCjIwMDYtMDktMjcgMDk6MjM6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiBBZGQgc29tZSB0ZXN0cyBmb3IgZ3N0X2NhcHNfaW50ZXJzZWN0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfY2Fwc19zdWl0ZSk6CgkgIEFkZCBzb21lIHRlc3RzIGZvciBnc3RfY2Fwc19pbnRlcnNlY3QoKS4KCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgUHJpbnQgYWxsIGJ1ZmZlcmluZyBwZXJjZW50YWdlcyB3ZSBnZXQsIGV2ZW4gdGhlIDEwMCUgb25lLgoKMjAwNi0wOS0yNiAxMjozOToyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCBwcmludGluZyBvZiBmbGFncyB0byBtYXRjaCB0aGUgbG9vayBvZiBlbnVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwKCSAgKHByaW50X3NpZ25hbF9pbmZvKToKCSAgRml4IHByaW50aW5nIG9mIGZsYWdzIHRvIG1hdGNoIHRoZSBsb29rIG9mIGVudW1zLgoKMjAwNi0wOS0yNSAxMzowODoyOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBGaXggdHlwbyBpbiBkb2NzIGJsdXJiLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgRml4IHR5cG8gaW4gZG9jcyBibHVyYi4KCjIwMDYtMDktMjUgMTE6MTY6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dXJpLmM6IERvbid0IGFzc2VydC9jcmFzaCBoZXJlIGlmIGEgdXJpIGhhbmRsZXIgZG9lc24ndCByZXR1cm4gYW55IHN1cHBvcnRlZCBwcm90b2NvbHMuIFRoZSBsaXN0IG9mIHByb3RvY29scyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoc2VhcmNoX2J5X2VudHJ5KToKCSAgRG9uJ3QgYXNzZXJ0L2NyYXNoIGhlcmUgaWYgYSB1cmkgaGFuZGxlciBkb2Vzbid0IHJldHVybiBhbnkKCSAgc3VwcG9ydGVkIHByb3RvY29scy4gVGhlIGxpc3Qgb2YgcHJvdG9jb2xzIGNvdWxkIGJlIGdlbmVyYXRlZAoJICBkeW5hbWljYWxseSBhdCBydW50aW1lIG9yIGF0IHBsdWdpbiByZWdpc3RyYXRpb24sIGFuZCBhbiBlcnJvcgoJICBpbiB0aGUgdW5kZXJseWluZyBsaWJyYXJ5IHNob3VsZG4ndCBiZSBmYXRhbCAoIzM1MzMwMSkuCgoyMDA2LTA5LTI1IDEwOjM2OjIzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogRml4IHdhcm5pbmcgaWYgSEFWRV9QUklOVEZfRVhURU5TSU9OIGlzIHVuZGVmaW5lZCAoc3BvdHRlZCBieSBQZXRlciBLamVsbGVyc3RlZHQpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBGaXggd2FybmluZyBpZiBIQVZFX1BSSU5URl9FWFRFTlNJT04gaXMgdW5kZWZpbmVkCgkgIChzcG90dGVkIGJ5IFBldGVyIEtqZWxsZXJzdGVkdCkuCgoyMDA2LTA5LTIzIDA5OjMwOjQwICswMDAwICBBbnRvaW5lIFRyZW1ibGF5IDxoZXhhMDBAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IE1hdGNoIF9zdGFydC9fc3RvcCBjYWxscyBpbiB0aGUgYWN0aXZhdGUgZnVuY3Rpb25zLiBSZW1vdmUgcmVkdW5kYW50IF9zdG9wIGNhbGwgZnJvbSB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYXNlZCBvbiBwYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGRvdCBjb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9jaGVja19nZXRfcmFuZ2UpLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBNYXRjaCBfc3RhcnQvX3N0b3AgY2FsbHMgaW4gdGhlIGFjdGl2YXRlIGZ1bmN0aW9ucy4gUmVtb3ZlIHJlZHVuZGFudAoJICBfc3RvcCBjYWxsIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbi4gRml4ZXMgIzM1NjkxMC4KCSAgVHVybiBmYWlsdXJlIERFQlVHIGludG8gRVJST1IuCgoyMDA2LTA5LTIyIDE1OjI5OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVXBkYXRlIGRvY3MgYWJvdXQgYnVmZmVyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfYnVmZmVyaW5nKToKCSAgVXBkYXRlIGRvY3MgYWJvdXQgYnVmZmVyaW5nLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIEZpeCB0eXBvLgoKMjAwNi0wOS0yMiAxNDozMDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICBhdWRpb3Rlc3RzcmMgaXMgbm90IHBhcnQgb2YgY29yZSwgZmFrZXNyYyBpcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXVkaW90ZXN0c3JjIGlzIG5vdCBwYXJ0IG9mIGNvcmUsIGZha2VzcmMgaXMKCjIwMDYtMDktMjIgMTM6MzI6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBSZWYgaW5zdGFuY2VzIHdoZW4gcmV0dXJuaW5nIHRoZW0gYWdhaW4gKGZpeGVzICMzNTcxODApCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCk6CgkgIFJlZiBpbnN0YW5jZXMgd2hlbiByZXR1cm5pbmcgdGhlbSBhZ2FpbiAoZml4ZXMgIzM1NzE4MCkKCjIwMDYtMDktMjIgMTA6MTc6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogRG9uJ3QgZm9yZ2V0IHRvIHJlbGVhc2UgcHJveHkgbG9jayB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgRG9uJ3QgZm9yZ2V0IHRvIHJlbGVhc2UgcHJveHkgbG9jayB3aGVuIHRoZXJlJ3MgYW4gZXJyb3IuCgoyMDA2LTA5LTIwIDE2OjE3OjI2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RjYXBzLmg6IEFkZCBleHRyYSBpbml0aWFsaXNlcnMgZm9yIENhcHMgdGhpbmdzLCB0byBmaXggc29tZSBwbHVnaW4gd2FybmluZ3Mgd2hlbiB1c2luZyAtV2V4dHJhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIEFkZCBleHRyYSBpbml0aWFsaXNlcnMgZm9yIENhcHMgdGhpbmdzLCB0byBmaXggc29tZSBwbHVnaW4gd2FybmluZ3MKCSAgd2hlbiB1c2luZyAtV2V4dHJhCgoyMDA2LTA5LTE4IDEzOjU2OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IEFsc28gc2V0IHRlbXBsYXRlIG9uIHRoZSBpbnRlcm5hbCBwYWQgc28gdGhhdCBhIGdldGNhcHMgZnJvbSB0aGUgdGFyZ2V0IHBhZCByZXR1cm5zIHRoZSB0ZW1wbGF0ZSBjLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCk6CgkgIEFsc28gc2V0IHRlbXBsYXRlIG9uIHRoZSBpbnRlcm5hbCBwYWQgc28gdGhhdCBhIGdldGNhcHMgZnJvbSB0aGUgdGFyZ2V0CgkgIHBhZCByZXR1cm5zIHRoZSB0ZW1wbGF0ZSBjYXBzLgoKMjAwNi0wOS0xOCAxMzo0NDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFVzZSBfREVCVUdfT0JKRUNUIHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSksCgkgIChnc3RfZWxlbWVudF9kaXNwb3NlKToKCSAgVXNlIF9ERUJVR19PQkpFQ1Qgc29tZSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBBdm9pZCB0eXBlY2hlY2tzLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBJZiB0aGUgdG9wbGV2ZWwgZWxlbWVudCBpcyBub3QgYSBHc3RQaXBlbGluZSwgaXQgbXVzdCBiZSBwdXQgaW4gYQoJICBwaXBlbGluZSBzbyB0aGF0IGEgYnVzIGFuZCBjbG9jayBpcyBzZWxlY3RlZC4KCjIwMDYtMDktMTcgMTk6MzE6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogSklUVEVSLCBSQVRFLCBhbmQgTEFURU5DWSBxdWVyeSBzaG91bGQgYmUgaGFuZGxlZCBieSB0aGUgZGVmYXVsdCBjYXNlIGFuZCBub3QgYnkgdGhlIENPTlYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSk6CgkgIEpJVFRFUiwgUkFURSwgYW5kIExBVEVOQ1kgcXVlcnkgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlCgkgIGRlZmF1bHQgY2FzZSBhbmQgbm90IGJ5IHRoZSBDT05WRVJUIHF1ZXJ5IGNvZGUuCgoyMDA2LTA5LTE3IDE5OjI2OjE2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGZvcm1hdC5jOiBGaXggbG9ja2luZyBvcmRlciAobXVzdCB0YWtlIGxvY2sgYmVmb3JlIHVzaW5nIG5fdmFsdWVzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoZ3N0X2Zvcm1hdF9yZWdpc3Rlcik6CgkgIEZpeCBsb2NraW5nIG9yZGVyIChtdXN0IHRha2UgbG9jayBiZWZvcmUgdXNpbmcgbl92YWx1ZXMpLgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9lbnVtKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9lbnVtX2l0ZXJfY21wKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9lbnVtKToKCSAgRml4IHNlcmlhbGlzYXRpb24vZGVzZXJpYWxpc2F0aW9uIG9mIGN1c3RvbSByZWdpc3RlcmVkIEdzdEZvcm1hdHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBVbml0IHRlc3QgZm9yIGN1c3RvbSBmb3JtYXQgc2VyaWFsaXNhdGlvbi9kZXNlcmlhbGlzYXRpb24uCgoyMDA2LTA5LTE2IDIxOjM4OjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBNb3JlIEdfT0JKRUNUIG1hY3JvIGZpeGluZy4gQWxzbyBGaXggc29tZSBkZXRhaWxzIG9uIHRoZSBwbHVnaW4tc3RhbXAgc2VjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgTW9yZSBHX09CSkVDVCBtYWNybyBmaXhpbmcuIEFsc28gRml4IHNvbWUgZGV0YWlscyBvbiB0aGUgcGx1Z2luLXN0YW1wCgkgIHNlY3Rpb24uCgoyMDA2LTA5LTE2IDEyOjQ5OjAyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IENoZWNrIGlmIHJlcXVlc3RlZCBjYXBzIGFyZSB0aGUgc2FtZSBhcyB0aGUgc2lua3MgY2FwcyBJRgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBDaGVjayBpZiByZXF1ZXN0ZWQgY2FwcyBhcmUgdGhlIHNhbWUgYXMgdGhlIHNpbmtzIGNhcHMgSUYKCSAgLT5oYXZlX3NhbWVfY2FwcyBpcyBUUlVFLiBJZiB0aGV5IGFyZSBub3QsIGFjdCBhcyBpZiBoYXZlX3NhbWVfY2FwcwoJICBpcyBGQUxTRS4KCSAgVGhpcyBmaXhlcyB0aGUgcmVuZWdvdGlhdGlvbiBpc3N1ZXMgc3RhdGVkIGluICMzNTI4MjcuCgoyMDA2LTA5LTE2IDEwOjQ5OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIEV4dHJhY3QgdGhlIG1hbnVhbCBleGFtcGxlcyBhZ2FpbiBsaWtlIHdlIHVzZWQgdG8gZG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tYW51YWwvZXh0cmFjdC5wbDoKCSAgRXh0cmFjdCB0aGUgbWFudWFsIGV4YW1wbGVzIGFnYWluIGxpa2Ugd2UgdXNlZCB0byBkby4KCSAgRml4IG9uZSBvZiB0aGVtLgoKMjAwNi0wOS0xNiAxMDo0NzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi9jb21tb24vY29uZmlnLmg6IHVwZGF0ZSBmb3IgdmVyc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBmb3IgdmVyc2lvbgoKMjAwNi0wOS0xNSAyMTozMDowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVycm9yLmM6IERvY3VtZW50cyBob3cgdG8gcmVjZWl2ZSBlcnJvcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICBEb2N1bWVudHMgaG93IHRvIHJlY2VpdmUgZXJyb3JzLgoKMjAwNi0wOS0xNSAxMDo0MzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQWRkZWQgc29tZSBjb21tZW50cyBoZXJlIGFuZCB0aGVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoc2lnaW50X2hhbmRsZXJfc2lnaGFuZGxlciksIChjaGVja19pbnRyKSwKCSAgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIEFkZGVkIHNvbWUgY29tbWVudHMgaGVyZSBhbmQgdGhlcmUuCgkgIFBvc3QgYW4gYXBwbGljYXRpb24gbWVzc2FnZSB3aGVuIGFuIGludGVycnVwdCBpcyBjYXVnaHQgaW5zdGVhZCBvZiBkb2luZwoJICBhbiB1bmNvbnRyb2xsZWQgc3RhdGUgY2hhbmdlLgoJICBDbGVhbiB1cCB0aGUgZXZlbnQgbG9vcC4KCSAgSGFuZGxlIGJ1ZmZlcmluZyBtZXNzYWdlcywgcGF1c2UvcmVzdW1lIHRoZSBwaXBlbGluZS4KCSAgTWFrZSBzaHV0ZG93biBiZWNhdXNlIG9mIGFuIGludGVycnVwdCBtb3JlIHJlbGlhYmxlLgoKMjAwNi0wOS0xNSAwOTo0OToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogTWFrZSBzdXJlIHRoYXQgb3VyIGludGVybmFsIHN0YXRlIGlzIGNvcnJlY3Qgd2hlbiB3ZSBjb21taXQgb3VyIHN0YXRlIGFzeW5jaHJvbm91c2x5LiBUaC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX29iamVjdCk6CgkgIE1ha2Ugc3VyZSB0aGF0IG91ciBpbnRlcm5hbCBzdGF0ZSBpcyBjb3JyZWN0IHdoZW4gd2UgY29tbWl0IG91ciBzdGF0ZQoJICBhc3luY2hyb25vdXNseS4gVGhpcyBzb2x2ZXMgYSByYWNlIHdoZXJlIGEgc3RhdGUgY2hhbmdlIHRvIFBMQVlJTkcKCSAgY291bGQgY2F1c2UgdGhlIHNpbmsgdG8gcmVtYWluIGJsb2NrZWQgaW4gcHJlcm9sbCBpbiBzb21lIHNpdHVhdGlvbnMuCgoyMDA2LTA5LTE1IDA4OjUwOjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogTGlzdCBmbGFncyBhcyBoZXggc28gaXQncyBlYXNpZXIgdG8gZGVhbCB3aXRoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLAoJICAocHJpbnRfc2lnbmFsX2luZm8pOgoJICBMaXN0IGZsYWdzIGFzIGhleCBzbyBpdCdzIGVhc2llciB0byBkZWFsIHdpdGguCgoyMDA2LTA5LTE1IDA4OjQ3OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRXhwb3NlIGxvZ2ljIHRvIHdhaXQgZm9yIHByZXJvbGwgc28gdGhhdCBzdWJjbGFzc2VzIHN1Y2ggYXMgYXVkaW9zaW5rIGNhbiBhbHNvIHVzZSB0aGlzIG1ldGhvZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgRXhwb3NlIGxvZ2ljIHRvIHdhaXQgZm9yIHByZXJvbGwgc28gdGhhdCBzdWJjbGFzc2VzIHN1Y2ggYXMgYXVkaW9zaW5rCgkgIGNhbiBhbHNvIHVzZSB0aGlzIG1ldGhvZC4KCSAgQVBJOiBnc3RfYmFzZV9zaW5rX3dhaXRfcHJlcm9sbCgpCgoyMDA2LTA5LTE1IDA4OjQzOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgY2xlYW51cHMgaW4gZG9jcyBhbmQgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfcGFyZW50KToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGRvX3BpcGVsaW5lX3NlZWspOgoJICBTbWFsbCBjbGVhbnVwcyBpbiBkb2NzIGFuZCBjb2RlLgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBpZiBzdG9wID09IHN0YXJ0IGFuZCBzdGFydCBpcyBpbiB0aGUgc2VnbWVudCwgbm8gY2xpcHBpbmcgc2hvdWxkIGJlCgkgIGRvbmUuIEFsc28gYWRkIGEgdGVzdCBmb3IgdGhpcy4KCjIwMDYtMDktMTUgMDg6Mzk6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBtZXRob2RzIHRvIGNyZWF0ZSBhbmQgcGFyc2UgQlVGRkVSSU5HIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2J1ZmZlcmluZyksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIG1ldGhvZHMgdG8gY3JlYXRlIGFuZCBwYXJzZSBCVUZGRVJJTkcgbWVzc2FnZXMuCgkgIEFkZGVkIHByZWxpbWluYXJ5IGRvY3MgYWJvdXQgYnVmZmVyaW5nLgoJICBBUEk6IGdzdF9tZXNzYWdlX25ld19idWZmZXJpbmcKCSAgQVBJOiBnc3RfbWVzc2FnZV9wYXJzZV9idWZmZXJpbmcKCjIwMDYtMDktMTUgMDg6MzI6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFVwZGF0ZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIFVwZGF0ZSBkb2N1bWVudGF0aW9uLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KSwKCSAgKGdzdF9lbGVtZW50X3JlbGVhc2VfcmVxdWVzdF9wYWQpLCAoZ3N0X2VsZW1lbnRfc2V0X2Nsb2NrKSwKCSAgKGdzdF9lbGVtZW50X2dldF9pbmRleCksIChnc3RfZWxlbWVudF9hZGRfcGFkKSwKCSAgKGdzdF9lbGVtZW50X3JlbW92ZV9wYWQpLCAoZ3N0X2VsZW1lbnRfZ2V0X3JhbmRvbV9wYWQpLAoJICAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCksIChnc3RfZWxlbWVudF9nZXRfcXVlcnlfdHlwZXMpLAoJICAoZ3N0X2VsZW1lbnRfcXVlcnkpLCAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKSwKCSAgKGdzdF9lbGVtZW50X21lc3NhZ2VfZnVsbCksIChnc3RfZWxlbWVudF9jb250aW51ZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZiksCgkgIChnc3RfZWxlbWVudF9yZXN0b3JlX3RoeXNlbGYpOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIFJlbmFtZSBsYXN0IGJpdCBvZiB0aGUgbmV3LXBhZCAtPiBwYWQtYWRkZWQgc2lnbmFsIHJlbmFtZS4KCSAgRml4IHRoZSBjYXNlIHdoZXJlIGFuIGVsZW1lbnQgcXVlcnkgd291bGQgb25seSB3b3JrIGlmIHRoZSBzb3VyY2UKCSAgcGFkIHdhcyBsaW5rZWQuCgkgIEF2b2lkIHNvbWUgdXNlbGVzcyB0eXBlIGNoZWNraW5nIGluIG1lc3NhZ2UgaGFuZGxpbmcuCgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCjIwMDYtMDktMTQgMjA6MTI6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgIGFkZCBhbiBJTkZPIGxpbmUgZm9yIHdoZW4gd2UgYWN0dWFsbHkgdXBkYXRlIHRoZSBmZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGFuIElORk8gbGluZSBmb3Igd2hlbiB3ZSBhY3R1YWxseSB1cGRhdGUgdGhlIGZkCgoyMDA2LTA5LTE0IDIwOjExOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIHRydW5rCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIHRydW5rCgo9PT0gcmVsZWFzZSAwLjEwLjEwID09PQoKMjAwNi0wOS0xNCAyMDowODoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE5FV1M6CgkqIFJFTEVBU0U6CgkqIGNvbW1vbjoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuMTAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjEwCgoyMDA2LTA5LTA5IDE2OjA4OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBmaXJzdCBwcmVyZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXJzdCBwcmVyZWxlYXNlCgoyMDA2LTA5LTA5IDE2OjA3OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdHJhbnNsYXRpb24gdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJhbnNsYXRpb24gdXBkYXRlcwoKMjAwNi0wOS0wNSAxNDoxMTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDogRml4IHR5cG8gaW4gc2FtcGxlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgRml4IHR5cG8gaW4gc2FtcGxlIGNvZGUuCgoyMDA2LTA5LTA1IDA4OjM1OjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvbmV0LzogTWFrZSBzdHVmZiBjb21waWxlIG9uIHdpbmRvd3MuIEZpeGVzICMzNDUyOTUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoaW5ldF9hdG9uKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2luaXQpLCAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZmluYWxpemUpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZG9fc2VsZWN0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChpbmV0X2F0b24pLAoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2ZpbmFsaXplKSwKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl90aHJlYWQpLCAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX25ldyk6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICBNYWtlIHN0dWZmIGNvbXBpbGUgb24gd2luZG93cy4gRml4ZXMgIzM0NTI5NS4KCjIwMDYtMDktMDMgMTE6MTY6NTAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IFByaW50IGJldHRlciBkZXRhaWxzIHdoZW4gY2hpbGQgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgUHJpbnQgYmV0dGVyIGRldGFpbHMgd2hlbiBjaGlsZCB3YXMgdGVybWluYXRlZCBieSBzaWduYWwuCgoyMDA2LTA5LTAzIDExOjA2OjUyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IFByaW50IGEgd2FybmluZyByYXRoZXIgdGhhbiBnX2Fzc2VydCgpIGlmIGEgcGx1Z2luIGZlYXR1cmUgaXMgYSBVUkkgaGFuZGxlciBidXQgcmV0dXJucyBubyBwcm90Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2ZlYXR1cmUpOgoJICBQcmludCBhIHdhcm5pbmcgcmF0aGVyIHRoYW4gZ19hc3NlcnQoKSBpZiBhIHBsdWdpbiBmZWF0dXJlCgkgIGlzIGEgVVJJIGhhbmRsZXIgYnV0IHJldHVybnMgbm8gcHJvdG9jb2xzICgjMzUzOTc2KS4KCjIwMDYtMDktMDIgMTk6MTA6NTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOiBGaXggdHdvIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgRml4IHR3byB0eXBvcy4KCjIwMDYtMDktMDIgMTk6MDM6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3VtZW50IHByb2Nlc3Mgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoKMjAwNi0wOS0wMiAxMzo0MDo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgY2xhcmlmeSBlcnJvciBtZXNzYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGFyaWZ5IGVycm9yIG1lc3NhZ2UKCjIwMDYtMDktMDIgMTM6MzY6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGRvY3VtZW50IHByb2Nlc3Mgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2N1bWVudCBwcm9jZXNzIHNvbWUgbW9yZQoKMjAwNi0wOS0wMSAxNjowMzo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSAgQ2hhbmdlTG9nIHN1cmdlcnk6IGZpeCB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogZml4IHR5cG8KCjIwMDYtMDktMDEgMTU6NTU6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBGaXggbG9ja2luZyBvcmRlciwgaGFuZGxlIE5VTEwgZnVuY3Rpb24gdmFsdWVzIHByb3Blcmx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0cik6CgkgIEZpeCBsb2NraW5nIG9yZGVyLCBoYW5kbGUgTlVMTCBmdW5jdGlvbiB2YWx1ZXMgcHJvcGVybHkuCgkgICogZ3N0L2dzdGluZm8uaDoKCSAgRml4IGRvY3MuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9idWZmZXJfYWxsb2NfdW5jaGVja2VkKToKCSAgSW5pdGlhbGlzZWQgdmFyaWFibGUgYmVmb3JlIHVzaW5nIGl0IGFuZCBmaXggZGVidWcgc3RhdGVtZW50IHRvCgkgIHByaW50IHRoZSBhZGRyZXNzIG9mIHRoZSBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYWRkcmVzcyBvZiB0aGUKCSAgdmFyaWFibGUgb24gdGhlIHN0YWNrIGhvbGRpbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIGZ1bmN0aW9uLgoKMjAwNi0wOS0wMSAxMDozMzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBNb3JlIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fZXZlbnQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCksIChnc3RfZ2hvc3RfcGFkX3BhcmVudF9zZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfdW5zZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX2luaXQpLCAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpLCAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3KSwgKGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUpLAoJICAoZ3N0X2dob3N0X3BhZF9nZXRfdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldCk6CgkgIE1vcmUgY2xlYW51cHMuCgkgIEF2b2lkIG5lZWRsZXNzIHR5cGVjaGVja2luZyBpbiBtYWNyb3MuCgkgIFNpbmNlIHRoZSBpbnRlcm5hbCBwYWQgaXMgYWx3YXlzIHByZXNlbnQgYW5kIG5ldmVyIGNoYW5nZXMsIHRoZXJlIGlzCgkgIG5vIG5lZWQgdG8gbG9ja2luZyBvciByZWYgd2hlbiByZXRyaWV2aW5nIGl0LgoJICBJbXByb3ZlIGRlYnVnZ2luZyBhIGJpdC4KCSAgSGFuZGxlIGxpbmsgZXJyb3JzIHdoZW4gc2V0dGluZyB0aGUgdGFyZ2V0LiBGaXhlcyAjMzQxMDI5LgoKMjAwNi0wOS0wMSAxMDoyNjo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvOiBGaXggZG9jcyBzb21lIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgRml4IGRvY3Mgc29tZSBtb3JlLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgRnJlZSBxdWV1ZWQgYnVmZmVyIHdoZW4gcmVtb3ZpbmcgYSBwYWQuCgoyMDA2LTA4LTMxIDE3OjEzOjM0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogRW5zdXJlIHRoYXQgd2Ugc2V0IGEgY2Fwc2ZpbHRlciB0byBOVUxMIGlmIHdlIGZhaWxlZCB0byBsaW5rIGl0IHdoZW4gZG9pbmcgZmlsdGVyZWQgbGlua2luZywgdG8gYXZvaWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfbGlua19wYWRzX2ZpbHRlcmVkKToKCSAgRW5zdXJlIHRoYXQgd2Ugc2V0IGEgY2Fwc2ZpbHRlciB0byBOVUxMIGlmIHdlIGZhaWxlZCB0byBsaW5rIGl0CgkgIHdoZW4gZG9pbmcgZmlsdGVyZWQgbGlua2luZywgdG8gYXZvaWQgY3JpdGljYWxzLgoJICBObyBuZWVkIHRvIGNoZWNrIGZvciB1bnJlZmZpbmcgc3JjcGFkLCB3aGljaCBpcyBleHBsaWNseSBOVUxMZWQKCSAgYWJvdmUgKGEgdHJpdmlhbCBjb2RlIGNsZWFudXApLgoKMjAwNi0wOC0zMSAxNToxOTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBVcGRhdGUgYXNjaWkgYXJ0IGluIGRvY3VtZW50YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OgoJICBVcGRhdGUgYXNjaWkgYXJ0IGluIGRvY3VtZW50YXRpb24uCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2ludGVybmFsX2xpbmspLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKSwgKGdzdF9wcm94eV9wYWRfaW5pdCksCgkgIChnc3RfZ2hvc3RfcGFkX3BhcmVudF9zZXQpLCAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfdW5zZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayksCgkgIChnc3RfZ2hvc3RfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9uZXdfZnVsbCksCgkgIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICBTbWFsbCBjbGVhbnVwcyBhbmQgbGVhayBmaXhlcy4KCSAgUmVtb3ZlIHNvbWUgY2hlY2tzIG5vdyB0aGF0IHRoZSBpbnRlcm5hbCBwYWQgaXMgbmV2ZXIgTlVMTC4KCSAgRml4IHRoZSBjYXNlIHdoZXJlIGxpbmtpbmcgcGFkcyB3aXRob3V0IGEgdGFyZ2V0IHdvdWxkIGNyZWF0ZSBuYXN0eQoJICBjcml0aWNhbHMuIEZpeGVzICMzNDEwMjkuCgkgIERvbid0IGFzc2lnbiBhIEdzdFBhZExpbmtSZXR1cm4gdG8gYSBnYm9vbGVhbiBhbmQgbWVzcyB1cCB0aGUgcmV0dXJuCgkgIHZhbHVlIG9mIF9zZXRfdGFyZ2V0KCkuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgU29tZSBtb3JlIHRlc3RzIGZvciBjcmVhdGluZyBhbmQgbGlua2luZyB1bnRhcmdldGVkIGdob3N0cGFkcy4KCjIwMDYtMDgtMzEgMTA6NTk6MTEgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBSZWZhY3RvcmVkICpfbmV3KCkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2FwcyksIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKSwgKGdzdF9naG9zdF9wYWRfbmV3X2Z1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfbmV3KSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBSZWZhY3RvcmVkICpfbmV3KCkgZnVuY3Rpb25zLgoJICBUZW1wbGF0ZXMgYXJlIG5vdyB1c2VkIGFzIGEgZ19vYmplY3RfbmV3KCkgcGFyYW1ldGVyLgoJICBVc2UgdGVtcGxhdGUgaW4gX2RvX2dldGNhcHMoKSBpZiB3ZSBkb24ndCBoYXZlIGEgdGFyZ2V0LgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGNsZWFudXBzLgoJICBBZGRlZCB0d28gbmV3IGNvbnN0cnVjdG9yczoKCSAgZ3N0X2dob3N0X3BhZF9uZXdfZnJvbV90ZW1wbGF0ZSgpCgkgIGdzdF9naG9zdF9wYWRfbmV3X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKCkKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCB0ZXN0cyBmb3IgbmV3IGdob3N0cGFkIGluc3RhbmNpYXRpb24gZnVuY3Rpb25zLgoJICBBUEkgYWRkaXRpb25zOiBnc3RfZ2hvc3RfcGFkX25ld19mcm9tX3RlbXBsYXRlLAoJICBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZQoKMjAwNi0wOC0zMCAxMjoyODo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9wcm9maWxpbmcudHh0OiBJZGVhcyBhYm91dCBxb3MgcHJvZmlsaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL3Byb2ZpbGluZy50eHQ6CgkgIElkZWFzIGFib3V0IHFvcyBwcm9maWxpbmcuCgoyMDA2LTA4LTI5IDE0OjM5OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQ29kZSBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3N0cnVjdHVyZV9pc19zdWJzZXRfZmllbGQpOgoJICBDb2RlIGNsZWFudXBzLgoJICBGaXggbWVtbGVhay4KCjIwMDYtMDgtMjkgMTA6NDk6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0eG1sLmM6IEltcHJvdmUgYW5kIGRldHlwb2Z5IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R4bWwuYzoKCSAgSW1wcm92ZSBhbmQgZGV0eXBvZnkgZG9jcy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0eG1sLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfeG1sX3N1aXRlKToKCSAgQWRkIGEgYmFzaWMgdGVzdCBzdWl0ZSBmb3IgR3N0WE1MLgoKMjAwNi0wOC0yOSAwOTo1Njo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IENsZWFyIHRoZSBwYWQgY2FwcyB3aGVuIHRoZSBlbGVtZW50IHNodXQgZG93biBhbGwgb2YgdGhlIHBhZHMgYW5kIGlzIG5vdCBzdHJlYW1pbmcgZGF0YSB0aGF0IGNvdWxkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoYWN0aXZhdGVfcGFkcyksIChjbGVhcl9jYXBzKSwKCSAgKGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpLCAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIENsZWFyIHRoZSBwYWQgY2FwcyB3aGVuIHRoZSBlbGVtZW50IHNodXQgZG93biBhbGwgb2YgdGhlIHBhZHMgYW5kCgkgIGlzIG5vdCBzdHJlYW1pbmcgZGF0YSB0aGF0IGNvdWxkIG1vZGlmeSB0aGUgY2Fwcy4KCSAgRml4ZXMgIzM1Mjk1OC4KCjIwMDYtMDgtMjkgMDg6MDI6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBJIGRvbid0IGV2ZW4ga25vdyB3aGljaCBhcmNoIHRoYXQgaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEkgZG9uJ3QgZXZlbiBrbm93IHdoaWNoIGFyY2ggdGhhdCBpcwoKMjAwNi0wOC0yOCAyMzoxNjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIG1vcmUgbG9naWNhbCB0byBsb2cgdGhlIHNlbmRpbmcgcGFkLCBhbmQgdGhlIHBhZCBpdCBpcyBzZW5kaW5nIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGxvZ2ljYWwgdG8gbG9nIHRoZSBzZW5kaW5nIHBhZCwgYW5kIHRoZSBwYWQgaXQgaXMgc2VuZGluZyB0bwoKMjAwNi0wOC0yOCAxODoyMDowMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBSZXZlcnQgcHJldmlvdXMgY2hhbmdlOyBJIG1pc3VuZGVyc3Rvb2Qgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIFJldmVydCBwcmV2aW91cyBjaGFuZ2U7IEkgbWlzdW5kZXJzdG9vZCBzaW5nbGUtc2VnbWVudCBtb2RlLgoKMjAwNi0wOC0yOCAxODowODowOSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBVbnNldCBESVNDT05UIG9uIGJ1ZmZlcnMgd2hlbiB1c2luZyBzaW5nbGUtc2VnbWVudCBtb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgVW5zZXQgRElTQ09OVCBvbiBidWZmZXJzIHdoZW4gdXNpbmcgc2luZ2xlLXNlZ21lbnQgbW9kZS4KCjIwMDYtMDgtMjggMTY6Mzk6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy4qOiBGaXggZG9jcyBhbmQgaW5kZW50YXRpb24gYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19tZXJnZV9zdHJ1Y3R1cmUpOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIEZpeCBkb2NzIGFuZCBpbmRlbnRhdGlvbiBhZ2Fpbi4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGxlYWsgaW4gdGVzdHMgYW5kIGFkZCBzb21lIG1vcmUgdGVzdHMuCgoyMDA2LTA4LTI4IDE1OjU3OjM5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBJbmZvcm0gR3N0U2VnbWVudCBvZiB0aGUgbGFzdCBzdG9wIHBvc2l0aW9uIGluIG9yZGVyIGZvciB0aGUgY3VycmVudCBzZWdtZW50IHRvIGhhdmUgYSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpOgoJICBJbmZvcm0gR3N0U2VnbWVudCBvZiB0aGUgbGFzdCBzdG9wIHBvc2l0aW9uIGluIG9yZGVyIGZvciB0aGUgY3VycmVudAoJICBzZWdtZW50IHRvIGhhdmUgYSBwcm9wZXIgZHVyYXRpb24gaWYgaXQgZG9lc24ndCBoYXZlIGEgc3BlY2lmaWMgc3RvcAoJICBwb3NpdGlvbiBmcm9tIHdoaWNoIGEgZHVyYXRpb24gY291bGQgYmUgY2FsY3VsYXRlZC4KCSAgVGhpcyBidWcgd2FzIG5vdGljZWFibGUgd2hlbiBhIG5vbi1mbHVzaGluZywgbm9uLXVwZGF0ZSBuZXcgc2VnbWVudCB3YXMKCSAgZm9sbG93ZWQgYnkgYW5vdGhlciBzZWdtZW50IChhbGwgYnVmZmVycyBmcm9tIHRoZSBuZXcgc2VnbWVudCB3ZXJlIGJlaW5nCgkgIGRyb3BwZWQpLgoKMjAwNi0wOC0yOCAxNTo0ODoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTbWFsbCBjb21tZW50IHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcGVyZm9ybV9zZWVrKToKCSAgU21hbGwgY29tbWVudCB1cGRhdGUuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgIERyb3AtcHJvYmFiaWxpdHkgaXMgYnJva2VuLCBtZW50aW9uIHRoaXMgaW4gdGhlIGNvZGUgd2l0aCBhCgkgIEZJWE1FIGFuZCBhbHNvIGluIHRoZSBwcm9wZXJ0eSBkZXNjcmlwdGlvbi4KCSAgTWFrZSBzaWxlbnQgYWxzbyBiZSBzaWxlbnQgYWJvdXQgdGhlIGRyb3AgbWVzc2FnZXMuCgoyMDA2LTA4LTI4IDExOjA2OjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYXBwZW5kaXgtd2luMzIueG1sOiBSZW1vdmUgbWVudGlvbiBvZiBwb3B0LCB3ZSBkb24ndCBkZXBlbmQgb24gdGhhdCBhbnkgbG9uZ2VyICgjMzUzMTM2KS4gQWRkIHNvbWUgY29tbWVuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXdpbjMyLnhtbDoKCSAgUmVtb3ZlIG1lbnRpb24gb2YgcG9wdCwgd2UgZG9uJ3QgZGVwZW5kIG9uIHRoYXQgYW55CgkgIGxvbmdlciAoIzM1MzEzNikuIEFkZCBzb21lIGNvbW1lbnRzIHBvaW50aW5nIG91dCB0aGF0CgkgIHRoaXMgc2VjdGlvbiBpcyBzbGlnaHRseSBvdXRkYXRlZC4KCjIwMDYtMDgtMjggMDg6NDQ6MjkgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgSW5pdGlhbGl6ZSB2YXJpYWJsZXMgd2hlbiBjcmVhdGluZyBhIG5ldyBzZWdtZW50IHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggYXQgZ214IGRvdCBkZT4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfc2VnbWVudCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEluaXRpYWxpemUgdmFyaWFibGVzIHdoZW4gY3JlYXRpbmcgYSBuZXcgc2VnbWVudCBxdWVyeS4KCSAgRml4ZXMgIzM1MzEyMS4KCjIwMDYtMDgtMjggMDg6MzU6MzEgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgQ2hlY2sgZm9yIE5VTEwgYmVmb3JlIF9yZWZmaW5nIHRoZSBidXMuIEZpeGVzICMzNTMxMjIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaCBhdCBnbXggZG90IGRlPgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfYnVzKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDaGVjayBmb3IgTlVMTCBiZWZvcmUgX3JlZmZpbmcgdGhlIGJ1cy4gRml4ZXMgIzM1MzEyMi4KCjIwMDYtMDgtMjUgMTY6NDY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDogRG9jcyB1cGRhdGU6IGZpeCB3cm9uZyBjYWxsYmFjayByZXR1cm4gdmFsdWUgZXhwbGFuYXRpb247IGFkZCBzb21lIGxpbmVzIGFib3V0IHRoZSBpbXBsaWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkgIERvY3MgdXBkYXRlOiBmaXggd3JvbmcgY2FsbGJhY2sgcmV0dXJuIHZhbHVlIGV4cGxhbmF0aW9uOyBhZGQKCSAgc29tZSBsaW5lcyBhYm91dCB0aGUgaW1wbGljaXQgcmVsYXRpb25zaGlwIGJldHdlZW4gbWFpbiBsb29wCgkgIGFuZCBtYWluIGNvbnRleHQ7IHJlbW92ZSBkdXBsaWNhdGUgbWFpbiBsb29wIHZhcmlhYmxlIGRlY2xhcmF0aW9uLgoKMjAwNi0wOC0yNCAxMjozMDowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IERvbid0IGxlYWsgY2FwcyBpbiB1bml0IHRlc3Q7IGFkZCBhIGZldyBtb3JlIHNpbXBsZSBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGxlYWsgY2FwcyBpbiB1bml0IHRlc3Q7IGFkZCBhIGZldyBtb3JlIHNpbXBsZQoJICBjaGVja3MuCgoyMDA2LTA4LTI0IDEwOjQwOjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbXBsZW1lbnQgY2FwcyBtZXJnaW5nIChmaXhlcyAjMzUyNTgwKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19zdHJ1Y3R1cmVfaXNfc3Vic2V0X2ZpZWxkKSwKCSAgKGdzdF9jYXBzX3N0cnVjdHVyZV9pc19zdWJzZXQpLCAoZ3N0X2NhcHNfbWVyZ2UpLAoJICAoZ3N0X2NhcHNfbWVyZ2Vfc3RydWN0dXJlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBpbXBsZW1lbnQgY2FwcyBtZXJnaW5nIChmaXhlcyAjMzUyNTgwKQoKMjAwNi0wOC0yMyAxODo1Mzo0NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdG9vbHMvOiBhZGQgZGVidWctbG9nIHBsb3R0aW5nIGRldmVsb3BlciB0b29sICgjMzQwNjc0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtcGxvdC10aW1lbGluZS5weToKCSAgYWRkIGRlYnVnLWxvZyBwbG90dGluZyBkZXZlbG9wZXIgdG9vbCAoIzM0MDY3NCkKCjIwMDYtMDgtMjMgMTY6NTE6MTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEltcHJvdmUgZGVidWdnaW5nIGZvciB0YXNrIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zdGFydF90YXNrKSwgKGdzdF9wYWRfcGF1c2VfdGFzayksCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgIEltcHJvdmUgZGVidWdnaW5nIGZvciB0YXNrIGZ1bmN0aW9ucy4KCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZnVuYyksIChnc3RfdGFza19zZXRfbG9jayksCgkgIChnc3RfdGFza19zdGFydCksIChnc3RfdGFza19wYXVzZSksIChnc3RfdGFza19qb2luKToKCSAgTWFrZSBzdXJlIHRoYXQgdGhlIHRhc2sgZnVuY3Rpb24gc3RhcnRlZCBhbmQgZmluaXNoZWQgYWZ0ZXIgYQoJICBqb2luKCkuCgkgIERvbid0IHRyeSB0byBwdXNoIHRoZSB0YXNrIGZ1bmN0aW9uIG9uIHRoZSB0aHJlYWRwb29sIG11bHRpcGxlCgkgIHRpbWVzLgoJICBJbXByb3ZlIHRoZSBnX3dhcm5pbmcgbWVzc2FnZSB3aXRoIHNvbWUgdXNlZnVsIHN1Z2dlc3Rpb25zCgkgIGFib3V0IGhvdyB0byBmaXggdGhlIHByb2JsZW0uCgoyMDA2LTA4LTIzIDEwOjU5OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEhhbmRsZSBSRVNZTkMgY29ycmVjdGx5IGluIF9wcm94eV9nZXRjYXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfcHJveHlfZ2V0Y2Fwcyk6CgkgIEhhbmRsZSBSRVNZTkMgY29ycmVjdGx5IGluIF9wcm94eV9nZXRjYXBzLgoKMjAwNi0wOC0yMyAwOTo0NzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHdvcmQgcmVmY291bnRpbmcgbW9yZSBwcmVjaXNlbHkgZm9yIGdzdF92YWx1ZV8qX2J1ZmZlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yZCByZWZjb3VudGluZyBtb3JlIHByZWNpc2VseSBmb3IgZ3N0X3ZhbHVlXypfYnVmZmVyCgoyMDA2LTA4LTIxIDE1OjE5OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHhtbC5jOiBDaGFpbiB1cCB0byBwYXJlbnQgY2xhc3MgaW4gZGlzcG9zZSBmdW5jdGlvbiBhbmQgYWxzbyB1bnJlZiB0aGUgZWxlbWVudHMgaW4gdGhlIHRvcGxldmVsX2VsZW1lbnRzIEdMaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2Rpc3Bvc2UpLCAoZ3N0X3htbF9wYXJzZV9maWxlKSwKCSAgKGdzdF94bWxfcGFyc2VfbWVtb3J5KSwgKGdzdF94bWxfZ2V0X2VsZW1lbnQpOgoJICBDaGFpbiB1cCB0byBwYXJlbnQgY2xhc3MgaW4gZGlzcG9zZSBmdW5jdGlvbiBhbmQgYWxzbwoJICB1bnJlZiB0aGUgZWxlbWVudHMgaW4gdGhlIHRvcGxldmVsX2VsZW1lbnRzIEdMaXN0LgoJICBEb24ndCBsZWFrIFhtbERvY1B0ciBpbiBfcGFyc2VfZmlsZSgpIGFuZCBfcGFyc2VfbWVtb3J5KCkuCgkgIEFsd2F5cyByZXR1cm4gYSByZWZlcmVuY2UgaW4gZ3N0X3htbF9nZXRfZWxlbWVudCgpIHJhdGhlcgoJICB0aGFuIG9ubHkgc29tZXRpbWVzLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHhtbGxhdW5jaF9wYXJzZV9jbWRsaW5lKToKCSAgRG9uJ3QgbGVhayBHc3RYbWwgb2JqZWN0LgoKMjAwNi0wOC0yMSAxNDo1NDozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQVBJOiBBZGQgZ3N0X2NhcHNfbWVyZ2UoKSBhbmQgdXNlIGl0IGluIGJhc2V0cmFuc2Zvcm0sIGZpeGVzICMzNDU0NDQgaW4gYSBiZXR0ZXIgd2F5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9zdHJ1Y3R1cmVfaXNfZXF1YWxfZm9yZWFjaCksCgkgIChnc3RfY2Fwc19tZXJnZSk6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgIEFQSTogQWRkIGdzdF9jYXBzX21lcmdlKCkgYW5kIHVzZSBpdCBpbiBiYXNldHJhbnNmb3JtLCBmaXhlcyAjMzQ1NDQ0CgkgIGluIGEgYmV0dGVyIHdheQoKMjAwNi0wOC0yMSAxNDowMzozMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R4bWwuYzogSW1wbGVtZW50IEdPYmplY3Q6OmRpc3Bvc2UgdmlydHVhbCBtZXRob2QgaW4gR3N0WE1MIHNvIHdlIGNhbiBmcmVlIHRoZSB0b3BfZWxlbWVudHMgR0xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfY2xhc3NfaW5pdCksIChnc3RfeG1sX2Rpc3Bvc2UpOgoJICBJbXBsZW1lbnQgR09iamVjdDo6ZGlzcG9zZSB2aXJ0dWFsIG1ldGhvZCBpbiBHc3RYTUwgc28gd2UgY2FuIGZyZWUgdGhlCgkgIHRvcF9lbGVtZW50cyBHTGlzdC4KCjIwMDYtMDgtMjEgMDk6MzA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IENvcHkgZHVyYXRpb24vb2Zmc2V0X2VuZC9jYXBzIHdoZW4gY3JlYXRpbmcgYSBzdWJidWZmZXIgb2YgdGhlIGNvbXBsZXRlIHBhcmVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKSwKCSAgKGdzdF9idWZmZXJfY3JlYXRlX3N1Yik6CgkgIENvcHkgZHVyYXRpb24vb2Zmc2V0X2VuZC9jYXBzIHdoZW4gY3JlYXRpbmcgYSBzdWJidWZmZXIgb2YgdGhlCgkgIGNvbXBsZXRlIHBhcmVudC4KCSAgTWFrZSB0aGUgc3ViYnVmZmVyIHJlYWQtb25seSB3aGVuIHdlIG1ha2UgdGhlIG1ldGFkYXRhIHdyaXRhYmxlIGZvcgoJICBub3cuIEZpeGVzICMzNTE3NjguCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBBZGRlZCBjaGVjayBmb3IgbWV0YWRhdGEgY29weSB3aGVuIGNyZWF0aW5nIHN1YmJ1ZmZlcnMuCgoyMDA2LTA4LTIxIDA5OjIwOjQyICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE9ubHkgY2FsbCBkb3duc3RyZWFtIGJ1ZmZlcl9hbGxvYyBpZiB0cmFuc2Zvcm0gZWxlbWVudCBpcyBwYXNzdGhyb3VnaCBvciBhbHdheXNfaW5fLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6CgkgIE9ubHkgY2FsbCBkb3duc3RyZWFtIGJ1ZmZlcl9hbGxvYyBpZiB0cmFuc2Zvcm0gZWxlbWVudCBpcyBwYXNzdGhyb3VnaAoJICBvciBhbHdheXNfaW5fcGxhY2UuIENsb3NlcyAjMzUwNDQ5LgoKMjAwNi0wOC0yMCAxOTozNjoyMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQ2hhbmdlTG9nOiBDaGFuZ2VMb2cgc3VyZ2VyeSB0byBhZGQgY29tbWVudHMgdG8gcHJldmlvdXMgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5IHRvIGFkZCBjb21tZW50cyB0byBwcmV2aW91cyBjaGFuZ2VzCgoyMDA2LTA4LTIwIDE5OjMwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBTaW1wbGlmeSBjYXBzIHRvIGdldCByaWQgb2YgZHVwbGljYXRlcywgZml4ZXMgIzM0NTQ0NAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgIFNpbXBsaWZ5IGNhcHMgdG8gZ2V0IHJpZCBvZiBkdXBsaWNhdGVzLCBmaXhlcyAjMzQ1NDQ0CgoyMDA2LTA4LTIwIDE1OjU1OjEyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogVXNlIHRoZXNlIG9wdGltaXphdGlvbnMgb25seSBpbnRlcm5hbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBVc2UgdGhlc2Ugb3B0aW1pemF0aW9ucyBvbmx5IGludGVybmFseS4KCjIwMDYtMDgtMjAgMTQ6MzA6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS4qOiBTYXZlcyB0aGUgZXhwZW5zaXZlIGxvb2t1cCBvZiB0aGUgY29tcGFyZSBmdW5jdGlvbiBpbiBtYW55IGNhc2VzICgjMzQ1NDQ0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2xpc3QpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9mcmFjdGlvbl9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fcmFuZ2VfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2dldF9jb21wYXJlX2Z1bmMpLCAoZ3N0X3ZhbHVlX2NvbXBhcmUpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfd2l0aF9mdW5jKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgU2F2ZXMgdGhlIGV4cGVuc2l2ZSBsb29rdXAgb2YgdGhlIGNvbXBhcmUgZnVuY3Rpb24gaW4gbWFueSBjYXNlcwoJICAoIzM0NTQ0NCkKCjIwMDYtMDgtMTggMTM6NDE6MDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiBEaXNhYmxlIHRlc3QgdGhhdCByZXF1aXJlIGdzdGRlYnVnIGlmIGl0IHdhc24ndCBidWlsdCBpbiBjb3JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAoZ3N0X2luZm9fc3VpdGUpOgoJICBEaXNhYmxlIHRlc3QgdGhhdCByZXF1aXJlIGdzdGRlYnVnIGlmIGl0IHdhc24ndCBidWlsdCBpbiBjb3JlLgoKMjAwNi0wOC0xOCAxMDo1MjozMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9sb2dnaW5nLnR4dDogdXBkYXRlIGlkZWFzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6CgkgIHVwZGF0ZSBpZGVhcwoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICByZW9yZGVyIGZpZWxkcywgc2F2ZSBzb21lIGNvbHVtbnMsIGFkZCBvcHRpbmFsIGNvbG9yIGNvZGVzIGZvciBsb2ctCgkgIGxldmVscwoKMjAwNi0wOC0xOCAwODowNzoxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9sb2dnaW5nLnR4dDogYWRkIGlkZWFzIGFib3V0IG1ha2luZyB0aGUgbG9ncyBhYml0IG1vcmUgdXNlZnVsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL2Vuc29uaWMvbG9nZ2luZy50eHQ6CgkgIGFkZCBpZGVhcyBhYm91dCBtYWtpbmcgdGhlIGxvZ3MgYWJpdCBtb3JlIHVzZWZ1bAoKMjAwNi0wOC0xNyAxODoxMToxMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnLzogVXBkYXRlIGZvciAwLjEwIEFQSSAoIzM0MDYyNykuIEFkZCBteXNlbGYgdG8gYXV0aG9ycyBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1ldmVudHMueG1sOgoJICAqIGRvY3MvcHdnL3RpdGxlcGFnZS54bWw6CgkgIFVwZGF0ZSBmb3IgMC4xMCBBUEkgKCMzNDA2MjcpLiBBZGQgbXlzZWxmCgkgIHRvIGF1dGhvcnMgbGlzdC4KCjIwMDYtMDgtMTcgMTA6NDY6MTkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBNYWtlIGdzdGNoZWNrIHN0dWZmIHNob3cgdXAgaW4gZG9jcyAoc3RpbGwgbmVlZHMgdG8gYmUgZG9jdW1lbnRlZCBwcm9wZXJseSB0aG91Z2gpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzoKCSAgTWFrZSBnc3RjaGVjayBzdHVmZiBzaG93IHVwIGluIGRvY3MgKHN0aWxsIG5lZWRzIHRvCgkgIGJlIGRvY3VtZW50ZWQgcHJvcGVybHkgdGhvdWdoKS4KCjIwMDYtMDgtMTYgMTE6NDc6NTQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQWRkIGludGVybmFsIGhlbHBlcnMgZm9yIHByZS1yZWdpc3RlcmluZyBxdWFya3MgZnJvbSBzdGF0aWMgc3RyaW5ncyBhbmQgdXNpbmcgdGhlIHF1YXJrIHZhbHVlcyBkaXJlY3RseSBpbnN0ZWFkIG9mIGxvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdHF1YXJrLmM6IChfcHJpdl9nc3RfcXVhcmtzX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3RxdWFyay5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfc2V0X3Bvc2l0aW9uKSwgKGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfbmV3X2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2R1cmF0aW9uKSwgKGdzdF9xdWVyeV9uZXdfY29udmVydCksCgkgIChnc3RfcXVlcnlfc2V0X2NvbnZlcnQpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2NvbnZlcnQpLAoJICAoZ3N0X3F1ZXJ5X25ld19zZWdtZW50KSwgKGdzdF9xdWVyeV9zZXRfc2VnbWVudCksCgkgIChnc3RfcXVlcnlfcGFyc2Vfc2VnbWVudCksIChnc3RfcXVlcnlfbmV3X3NlZWtpbmcpLAoJICAoZ3N0X3F1ZXJ5X3NldF9zZWVraW5nKSwgKGdzdF9xdWVyeV9wYXJzZV9zZWVraW5nKToKCSAgQWRkIGludGVybmFsIGhlbHBlcnMgZm9yIHByZS1yZWdpc3RlcmluZyBxdWFya3MgZnJvbSBzdGF0aWMgc3RyaW5ncwoJICBhbmQgdXNpbmcgdGhlIHF1YXJrIHZhbHVlcyBkaXJlY3RseSBpbnN0ZWFkIG9mIGxvb2tpbmcgdGhlbSB1cCB3aGVuCgkgIGNyZWF0aW5nIGFuZCBwYXJzaW5nIHF1ZXJpZXMuIENhbiBiZSB1c2VkIGZvciBldmVudCBjb25zdHJ1Y3Rpb24gdG9vLgoJICBDbG9zZXMgIzM1MDQzMi4KCjIwMDYtMDgtMTYgMDg6NTQ6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBib2d1cyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIEZpeCBib2d1cyBkb2NzLgoKMjAwNi0wOC0xNSAxODo0NTozOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBGaXggbWVtbGVhayAoIzM1MTUwMikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfc2V0X3ZhbHVlX2Zyb21fc3RyaW5nKToKCSAgRml4IG1lbWxlYWsgKCMzNTE1MDIpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkIHVuaXQgdGVzdCBmb3IgbW9zdCBvZiBnc3RfdXRpbF9zZXRfdmFsdWVfZnJvbV9zdHJpbmcoKQoJICAobm90IHRoYXQgb25lIHdvdWxkIHdhbnQgdG8gZW5jb3VyYWdlIHVzZSBvZiB0aGlzIGZ1bmN0aW9uKS4KCjIwMDYtMDgtMTUgMTg6Mjk6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBVc2UgY29uc3QgZ2NoYXIgKiB2YXJpYWJsZXMgaW4gZmFpbF91bmxlc3NfZXF1YWxzX3N0cmluZyBtYWNybyB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgVXNlIGNvbnN0IGdjaGFyICogdmFyaWFibGVzIGluIGZhaWxfdW5sZXNzX2VxdWFsc19zdHJpbmcKCSAgbWFjcm8gdG8gYXZvaWQgY29tcGlsZXIgd2FybmluZ3MgKGFuZCBkb24ndCB1c2UgdGFicyBmb3IKCSAgaW5kZW50aW5nKS4KCjIwMDYtMDgtMTUgMTA6MDg6MzQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1vcmUgc3BhY2Ugb24gdGhlIGxlZnQgZm9yIHRoZSB0YWcgbmFtZXMsIHRvIGNhdGVyIGZvciB0aGUgJ2V4dGVuZGVkIGNvbW1lbnQnIHRhZyAobm90IHRvdWNoaW5nIHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAocHJpbnRfdGFnKToKCSAgTW9yZSBzcGFjZSBvbiB0aGUgbGVmdCBmb3IgdGhlIHRhZyBuYW1lcywgdG8gY2F0ZXIKCSAgZm9yIHRoZSAnZXh0ZW5kZWQgY29tbWVudCcgdGFnIChub3QgdG91Y2hpbmcgdGhlCgkgIHN0cmluZyBmb3IgdGhlIGZpcnN0IGxpbmUgc2luY2UgaXQncyB0cmFuc2xhdGVkKS4KCjIwMDYtMDgtMTUgMDk6NDQ6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBkb24ndCBmb3JnZXQgdG8gbWVudGlvbiB0aGUgb3RoZXIgY2hhbmdlIGluIHRoZSBDaGFuZ2VMb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBkb24ndCBmb3JnZXQgdG8gbWVudGlvbiB0aGUgb3RoZXIgY2hhbmdlIGluIHRoZSBDaGFuZ2VMb2cKCjIwMDYtMDgtMTUgMDk6MzM6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBGaXggQVNTRVJUX0NSSVRJQ0FMIGFuZCBBU1NFUlRfV0FSTklORyBtYWNyb3MgdG8gYWN0dWFsbHkgcHJpbnQgc29tZXRoaW5nIHdoZW4gdGhleSBmYWlsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBGaXggQVNTRVJUX0NSSVRJQ0FMIGFuZCBBU1NFUlRfV0FSTklORyBtYWNyb3MgdG8gYWN0dWFsbHkKCSAgcHJpbnQgc29tZXRoaW5nIHdoZW4gdGhleSBmYWlsLgoKMjAwNi0wOC0xNCAxOTowNDo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9UQUdfRVhURU5ERURfQ09NTUVOVCAoIzM1MDkzNSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKF9nc3RfdGFnX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgIEFQSTogYWRkIEdTVF9UQUdfRVhURU5ERURfQ09NTUVOVCAoIzM1MDkzNSkuCgoyMDA2LTA4LTE0IDE3OjI5OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGluZm8uYzogTWFrZSBHU1RfUFRSX0ZPUk1BVCBwcmludCBtZXNzYWdlcyBhcyB3ZWxsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoZ3N0X2RlYnVnX3ByaW50X29iamVjdCk6CgkgIE1ha2UgR1NUX1BUUl9GT1JNQVQgcHJpbnQgbWVzc2FnZXMgYXMgd2VsbC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aW5mby5jOiAocHJpbnRmX2V4dGVuc2lvbl9sb2dfZnVuYyksCgkgIChHU1RfU1RBUlRfVEVTVCksIChnc3RfaW5mb19zdWl0ZSk6CgkgIE1vcmUgdGVzdHMuCgoyMDA2LTA4LTE0IDE1OjMzOjE3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IElmIHRoZSBHc3RFbGVtZW50Q2xhc3MgZG9lc24ndCBoYXZlIGEgR3N0RWxlbWVudERldGFpbHMgd2l0aCBhbGwgZmllbGRzIHRoZW4gZXJyb3Igb3V0IG5pY2VsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfcmVnaXN0ZXIpOgoJICBJZiB0aGUgR3N0RWxlbWVudENsYXNzIGRvZXNuJ3QgaGF2ZSBhIEdzdEVsZW1lbnREZXRhaWxzIHdpdGggYWxsIGZpZWxkcwoJICBmaWxsZWQgdXAgY29ycmVjdGx5IChsb25nbmFtZSwgZGVzY3JpcHRpb24gQU5EIGF1dGhvciksIHRoZW4gZXJyb3Igb3V0CgkgIG5pY2VseSBpbnN0ZWFkIG9mIGNyYXNoaW5nLgoKMjAwNi0wOC0xNCAxMjozNTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogRml4IHR5cG8gaW4gZG9jcyBhbmQgcmUtd3JhcCBkb2NzIGJsdXJiIHRvIG5vdCBleGNlZWQgODAgY2hhcnMvbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBGaXggdHlwbyBpbiBkb2NzIGFuZCByZS13cmFwIGRvY3MgYmx1cmIgdG8gbm90IGV4Y2VlZCA4MCBjaGFycy9saW5lLgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBFeHBhbmQgb24gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhcnJheXMgYW5kIGxpc3RzIGFzIHdlIHVzZSB0aGVtLgoKMjAwNi0wOC0xNCAwNzo0NDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBJZiB0aGUgcGFyZW50IHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBmYWlsZWQsIGRvbid0IGFzc3VtZSB3ZSBjYW4gc2FmZWx5IHN0b3AgdGhlIHNvdXJjZSwgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBJZiB0aGUgcGFyZW50IHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBmYWlsZWQsIGRvbid0IGFzc3VtZSB3ZSBjYW4gc2FmZWx5CgkgIHN0b3AgdGhlIHNvdXJjZSwgdGhpcyB3aWxsIGJlIGRvbmUgd2hlbiB0aGUgcGFkcyBhcmUgZGVhY3RpdmF0ZWQuCgoyMDA2LTA4LTE0IDA3OjM1OjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfam9pbik6CgkgIFNtYWxsIGRvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3BhZF9zdG9wX3Rhc2spOgoJICBXaGVuIHBhZCAoZGUpYWN0aXZhdGlvbiBmYWlsZWQgZm9yIHNvbWUgcmVhc29uLCByZXN0b3JlIHRoZSBvbGQKCSAgYWN0aXZhdGlvbiBtb2RlIGFuZCBzZXQgdGhlIHBhZCB0byBmbHVzaGluZyBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoZQoJICBwYWQgaXMgZGVhY3RpdmF0ZWQuCgkgIElmIHRoZSBfdGFza19qb2luKCkgZmFpbGVkLCByZWluc3RhbGwgdGhlIHRhc2sgb24gdGhlIHBhZCBzbyB0aGF0IGl0IGNhbgoJICBiZSBzdG9wcGVkIGxhdGVyIGFuZCByZXR1cm4gYW4gZXJyb3IuCgoyMDA2LTA4LTExIDE1OjI2OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBHU1RfRElTQUJMRV9ERVBSRUNBVEVEIGlzIG9ubHkgZm9yIHVzZXJzIG9mIEFQSSB0aGF0IGRvbid0IHdhbnQgdG8gc2VlIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIGluIHRoZSBoZWFkZXJzOyBwZW9wbGUgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDgtMTEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRpemVyX25ldyk6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6IEdTVF9ESVNBQkxFX0RFUFJFQ0FURUQKCSAgaXMgb25seSBmb3IgdXNlcnMgb2YgQVBJIHRoYXQgZG9uJ3Qgd2FudCB0byBzZWUgZGVwcmVjYXRlZAoJICBmdW5jdGlvbnMgaW4gdGhlIGhlYWRlcnM7IHBlb3BsZSB0aGF0IHdhbnQgdG8gY29tcGlsZSBvdXQKCSAgZGVwcmVjYXRlZCBjb2RlIHNob3VsZCBwYXNzIC1ER1NUX1JFTU9WRV9ERVBSRUNBVEVEIGludG8gdGhlCgkgIENGTEFHUy4gRml4ZXMgdGhlIGJ1aWxkIG9mIG11bHRpZmRzaW5rLCBvciB3aWxsIHNvb24uLgoKMjAwNi0wOC0xMSAxNToyNDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBHc3RDbG9ja0NsYXNzIHZtZXRob2QgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIEdzdENsb2NrQ2xhc3Mgdm1ldGhvZCBkb2NzLgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgIE1hcmsgI2VuZGlmIHdpdGggY29tbWVudCBmb3IgYXNzb2NpYXRlZCAjaWYKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19pZF93YWl0KToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgQWRkIHZtZXRob2Qgd2FpdF9qaXR0ZXIgdG8gYXZvaWQgYW4gdW5uZWVkZWQgX2dldF90aW1lKCkgZm9yCgkgIG1vc3QgY2xvY2sgaW1wbGVtZW50YXRpb25zLgoJICBEb2N1bWVudCB2bWV0aG9kcy4KCSAgRmxlc2ggb3V0IGRvY3MgYWJvdXQgcmVzb2x1dGlvbiBtZXRob2RzLgoJICBBUEk6IEdzdENsb2NrQ2xhc3M6OndhaXRfaml0dGVyCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19hc3luY190aHJlYWQpLAoJICAoZ3N0X3N5c3RlbV9jbG9ja19pZF93YWl0X2ppdHRlcl91bmxvY2tlZCksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfaml0dGVyKToKCSAgVXNlIGJhc2UgY2xhc3Mgd2FpdF9qaXR0ZXIgdmFyaWFudCBmb3IgaW1wcm92ZWQgcGVyZm9ybWFuY2UKCSAgZHVlIHRvIGxlc3MgY2xvY2sgcG9sbGluZy4KCjIwMDYtMDgtMTEgMTU6MDc6NTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0LmM6IFNldCBnc3QgYXMgYmVpbmcgaW5pdGlhbGl6ZWQgYmVmb3JlIHNjYW5uaW5nL3VwZGF0aW5nIHRoZSByZWdpc3RyeSwgc2luY2UgdGhlcmUgbWlnaHQgYmUgc29tZSBwbHVnaW5zIHRoYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfY2hlY2spLCAoaW5pdF9wb3N0KToKCSAgU2V0IGdzdCBhcyBiZWluZyBpbml0aWFsaXplZCBiZWZvcmUgc2Nhbm5pbmcvdXBkYXRpbmcgdGhlIHJlZ2lzdHJ5LAoJICBzaW5jZSB0aGVyZSBtaWdodCBiZSBzb21lIHBsdWdpbnMgdGhhdCBjYWxsIGdzdF9pbml0KCkgYW5kIHdlIGRvbid0CgkgIHdhbnQgdG8gbG9vcCBiYWNrIGluLgoJICBDbG9zZXMgIzM1MDg3OQoKMjAwNi0wOC0xMSAxMzoxMzowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiB0aGF0IHdlIGZpeGVkIGJ1ZyAjMzQ5OTQzIHdpdGggdGhlIGxhc3QgY29tbWl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiB0aGF0IHdlIGZpeGVkIGJ1ZyAjMzQ5OTQzIHdpdGggdGhlIGxhc3QgY29tbWl0LgoKMjAwNi0wOC0xMSAxMzowNTozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDogQnJpbmcgZG9jcyBpbiBsaW5lIHdpdGggdGhlIGNvZGUuIE1vc3RseSB0aGUgc2lnbiBvZiB0aGUgaml0dGVyIHdhcyB3cm9uZyBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBCcmluZyBkb2NzIGluIGxpbmUgd2l0aCB0aGUgY29kZS4gTW9zdGx5IHRoZSBzaWduIG9mIHRoZSBqaXR0ZXIgd2FzCgkgIHdyb25nIGluIHRoZSBkb2NzLgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICBGaXggdGhlIGRvY3MgZm9yIHRoZSBqaXR0ZXIuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2N1c3RvbSksIChnc3RfZXZlbnRfbmV3X3RhZyksCgkgIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfYnVmZmVyX3NpemUpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX2J1ZmZlcl9zaXplKSwgKGdzdF9ldmVudF9wYXJzZV9xb3MpLAoJICAoZ3N0X2V2ZW50X25ld19zZWVrKSwgKGdzdF9ldmVudF9wYXJzZV9zZWVrKSwKCSAgKGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbik6CgkgIE1ha2Ugc3VyZSB0aGUgR3N0U3RydWN0dXJlIGhhcyBubyBwYXJlbnQgd2hlbiBjcmVhdGluZyBjdXN0b20KCSAgZXZlbnRzLgoJICBBZGQgc29tZSBtb3JlIGFyZ3VtZW50IGNoZWNraW5nIHNvIHRoYXQgd2UgYXZvaWQgMC4wIHJhdGVzLgoJICBGbGVzaCBvdXQgdGhlIGRvY3MgZm9yIHRoZSBRb1MgZXZlbnQgc29tZSBtb3JlLgoKMjAwNi0wOC0xMSAxMDoyMTozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IHRvIG1lbnRpb24gZml4ZWQgYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRvIG1lbnRpb24gZml4ZWQgYnVnLgoKMjAwNi0wOC0xMSAxMDoxOTo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXApLCAoZ3N0X2luaXRfY2hlY2spLAoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfZm9ya2luZyksIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeSksCgkgIChwYXJzZV9vbmVfb3B0aW9uKSwgKHBhcnNlX2dvcHRpb25fYXJnKSwgKGdzdF9kZWluaXQpLAoJICAoZ3N0X3JlZ2lzdHJ5X2ZvcmtfaXNfZW5hYmxlZCksIChnc3RfcmVnaXN0cnlfZm9ya19zZXRfZW5hYmxlZCk6CgkgICogZ3N0L2dzdC5oOgoJICBEb2MgdXBkYXRlcy4KCSAgQWRkZWQgQVBJIGFuZCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGRpc2FibGUgcmVnaXN0cnkgZm9ya2luZyBpbgoJICBhZGRpdGlvbiB0byB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgkgIENvbnN0aWZ5IHNvbWUgc3RhdGljIGFycmF5cy4KCSAgQWRkZWQgc29tZSBtb3JlIGRlYnVnLgoJICBEb24ndCBkZWluaXQgdHdpY2UuCgkgIEFQSTogZ3N0X3JlZ2lzdHJ5X2ZvcmtfaXNfZW5hYmxlZCgpCgkgIEFQSTogZ3N0X3JlZ2lzdHJ5X2Zvcmtfc2V0X2VuYWJsZWQoKQoJICBBUEk6IC0tZ3N0LWRpc2FibGUtcmVnaXN0cnktZm9yayBjb21tYW5kIGxpbmUgb3B0aW9uCgoyMDA2LTA4LTExIDA5OjU5OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBGaXggdHlwbyBpbiBlcnJvciBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChnc3RfaW5pdCk6CgkgIEZpeCB0eXBvIGluIGVycm9yIG1lc3NhZ2UuCgoyMDA2LTA4LTEwIDIwOjA1OjMwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDogZml4IEFCSSBzaXplLWNvcnJlY3Rpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIGZpeCBBQkkgc2l6ZS1jb3JyZWN0aW9uCgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIG1ha2UgdGVzdHMgdGhhdCB1c2UgZGVwcmVjYXRlZCBBUEkgY29uZGl0aW9uYWwKCjIwMDYtMDgtMTAgMTk6NDY6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEFQSTogYWRkIGdzdF9vYmplY3Rfe3MsZ31ldF9jb250cm9sX3JhdGUoKSwgYWRkIHByaXZhdGUgZGF0YSBzZWN0aW9uLCBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoX2dzdF9jb250cm9sbGVyX2dldF9wcm9wZXJ0eSksIChfZ3N0X2NvbnRyb2xsZXJfc2V0X3Byb3BlcnR5KSwKCSAgKF9nc3RfY29udHJvbGxlcl9pbml0KSwgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOiAoZ3N0X29iamVjdF9nZXRfY29udHJvbF9yYXRlKSwKCSAgKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xfcmF0ZSk6CgkgIEFQSTogYWRkIGdzdF9vYmplY3Rfe3MsZ31ldF9jb250cm9sX3JhdGUoKSwgYWRkIHByaXZhdGUgZGF0YSBzZWN0aW9uLAoJICBmaXggZG9jcwoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRpemVyX25ldyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICBhZGQgZGVwcmVjYXRpb24gZ3VhcmRzIHRvIG1ha2UgZ3RrLWRvYyBoYXBweSBhbmQgYWxsb3cgZGlzYWJsaW5nIGNydWZ0CgoyMDA2LTA4LTA5IDE1OjI2OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiBMZXQncyBlbmFibGUgdGhlIG5ldyB1bml0IHRlc3QgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgIExldCdzIGVuYWJsZSB0aGUgbmV3IHVuaXQgdGVzdCBhcyB3ZWxsLgoKMjAwNi0wOC0wOSAxNToxMzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFQSTogYWRkIEdTVF9TRUdNRU5UX0ZPUk1BVCwgd2hpY2ggaXMgYSBwcmludGYgZXh0ZW5zaW9uIHdlIHJlZ2lzdGVyIHRoYXQgbGV0cyB1cyBlYXNpbHkgZHVtcCBHc3RTZWdtZW50cyBpbnRvIGRlYnVnIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCksIChnc3RfZGVidWdfcHJpbnRfc2VnbWVudCksCgkgIChfZ3N0X2luZm9fcHJpbnRmX2V4dGVuc2lvbl9wdHIpLAoJICAoX2dzdF9pbmZvX3ByaW50Zl9leHRlbnNpb25fc2VnbWVudCk6CgkgIEFQSTogYWRkIEdTVF9TRUdNRU5UX0ZPUk1BVCwgd2hpY2ggaXMgYSBwcmludGYgZXh0ZW5zaW9uIHdlCgkgIHJlZ2lzdGVyIHRoYXQgbGV0cyB1cyBlYXNpbHkgZHVtcCBHc3RTZWdtZW50cyBpbnRvIGRlYnVnCgkgIGxvZ3MgKCMzNTA0MTkpLgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpbmZvLmM6IChzZWdtZW50X3ByaW50Zl9leHRlbnNpb25fbG9nX2Z1bmMpLAoJICAoaW5mb19zZWdtZW50X2Zvcm1hdF9wcmludGZfZXh0ZW5zaW9uKSwgKGdzdF9pbmZvX3N1aXRlKToKCSAgQWRkIHNpbXBsZSB1bml0IHRlc3QgdGhhdCBsb2dzIGEgYnVuY2ggb2YgZGlmZmVyZW50IHNlZ21lbnRzIChub3QKCSAgdmFsZ3JpbmRlZCBhdCB0aGUgbW9tZW50IGJlY2F1c2Ugb2YgbGVha3MgaW4gZ3N0X2RlYnVnX2FkZF9sb2dfZnVuY3Rpb24pLgoKMjAwNi0wOC0wOSAxMTowMToyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBFdmVuIGlmIHdlIGNhbid0IGZpZ3VyZSBvdXQgdGhlIHByb3BlciBmb3JtYXQgdG8gcmVxdWVzdCBkb3duc3RyZWFtLCBjYWxsIGJ1ZmZlcl9hbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBFdmVuIGlmIHdlIGNhbid0IGZpZ3VyZSBvdXQgdGhlIHByb3BlciBmb3JtYXQgdG8gcmVxdWVzdCBkb3duc3RyZWFtLAoJICBjYWxsIGJ1ZmZlcl9hbGxvYygpIGRvd25zdHJlYW0gd2l0aCB0aGUgaW5wdXQgcGFyYW1ldGVycyB3aXRob3V0IHNldHRpbmcKCSAgdGhlIGNhcHMgb24gdGhlIHNyY3BhZC4gVGhpcyB3aWxsIGZvcmNlIG5lZ290aWF0aW9uIGluIHRoZSBjaGFpbgoJICBmdW5jdGlvbi4KCSAgQ2xvc2VzICMzNTA0NDkKCjIwMDYtMDgtMDggMTY6MjQ6NTggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogVW5saW5raW5nIGZyb20gYSBwYWQgd2l0aG91dCBhIHRhcmdldCBpcyBub3cgYSBwZXJmZWN0bHkgdmFsaWQgY2FzZSB3aGljaCBzaG91bGQgTk9UIHJhaXNlIGFuIGFzc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX3VubGluayk6CgkgIFVubGlua2luZyBmcm9tIGEgcGFkIHdpdGhvdXQgYSB0YXJnZXQgaXMgbm93IGEgcGVyZmVjdGx5IHZhbGlkIGNhc2UKCSAgd2hpY2ggc2hvdWxkIE5PVCByYWlzZSBhbiBhc3NlcnRpb24uCgkgIFRoaXMgY2FzZSB3b3VsZCBoYXBwZW4gaWYgYSBsaW5rZWQgZ2hvc3RwYWQgaXRzIHRhcmdldCBzZXQgdG8gTlVMTCBhZnRlcgoJICBpdCB3YXMgcHJldmlvdXNseSBsaW5rZWQuCgoyMDA2LTA4LTA4IDA5OjU2OjQ1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgdGVzdHMvY2hlY2svbGlicy9nZHAuYzogQWxzbyBjb21tZW50IG91dCB0aGUgdGVzdCAoc2VlIGJlbG93KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgQWxzbyBjb21tZW50IG91dCB0aGUgdGVzdCAoc2VlIGJlbG93KS4KCjIwMDYtMDgtMDggMDk6MDc6MzQgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiBVc2UgdGhlIGFyY2hpdGVjdHVyZSBpbmZvcm1hdGlvbiBmcm9tIGNvbmZpZy5oIGFuZCBub3QgZ2NjIG1hY3JvcyBpbiBvcmRlciB0byBwcm9wZXJseSBkaXNhYmwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nZHAuYzogKGdzdF9kcF9zdWl0ZSk6CgkgIFVzZSB0aGUgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIGZyb20gY29uZmlnLmggYW5kIG5vdCBnY2MgbWFjcm9zCgkgIGluIG9yZGVyIHRvIHByb3Blcmx5IGRpc2FibGUgYSB0ZXN0IHRoYXQgZmFpbHMgb24gUFBDNjQuCgoyMDA2LTA4LTA0IDE1OjE1OjI0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRG9uJ3QgY3Jhc2ggcHJpbnRpbmcgdGhlIHdhcm5pbmcgaWYgdGhlIHBhZCBoYXMgbm8gcGFyZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCk6CgkgIERvbid0IGNyYXNoIHByaW50aW5nIHRoZSB3YXJuaW5nIGlmIHRoZSBwYWQgaGFzIG5vIHBhcmVudC4KCjIwMDYtMDgtMDIgMTU6MTk6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IE1ha2UgZGVidWcgY2F0ZWdvcnkgc3RhdGljCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXJfYW55KSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzX2FueSksCgkgIChnc3RfZHBfY3JjKSwgKGdzdF9kcF9oZWFkZXJfcGF5bG9hZF9sZW5ndGgpLAoJICAoZ3N0X2RwX2hlYWRlcl9wYXlsb2FkX3R5cGUpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudF8xXzApLCAoZ3N0X2RwX2J1ZmZlcl9mcm9tX2hlYWRlciksCgkgIChnc3RfZHBfY2Fwc19mcm9tX3BhY2tldCksIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMF8yKSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCksIChnc3RfZHBfdmFsaWRhdGVfaGVhZGVyKSwKCSAgKGdzdF9kcF92YWxpZGF0ZV9wYXlsb2FkKToKCSAgTWFrZSBkZWJ1ZyBjYXRlZ29yeSBzdGF0aWMKCSAgQ29uc3RpZnkgdGhlIGNyYyB0YWJsZS4KCSAgRG8gc29tZSBtb3JlIGFyZyBjaGVja2luZyBpbiBwdWJsaWMgZnVuY3Rpb25zLgoJICBGaXggc29tZSBkb2NzIGFuZCBkbyBzb21lIHNtYWxsIGNsZWFudXBzLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZHBfc3VpdGUpOgoJICBBZGQgc29tZSBtb3JlIGNoZWNrcyB0byBzZWUgaWYgR0RQIGRlYWxzIHdpdGggYm9ndXMgaW5wdXQuCgoyMDA2LTA3LTMxIDE2OjM0OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCBHc3RWYWx1ZUxpc3QgY29tcGFyaXNvbiBjb2RlLiBGaXhlcyAjMzQ3MjkzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9jb21wYXJlX2xpc3QpOgoJICBGaXggR3N0VmFsdWVMaXN0IGNvbXBhcmlzb24gY29kZS4gRml4ZXMgIzM0NzI5My4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQ2hlY2sgdG8gdGVzdCBHc3RWYWx1ZUxpc3QgY29tcGFyaXNvbi4KCjIwMDYtMDctMzEgMTU6MTI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogVXNlIE9CSkVDVF9MT0NLIGFuZCByZWZjb3VudGluZyB0byBnZXQgdGhlIHBhZCBjYXBzIGluIHRoZSBidWZmZXJfYWxsb2MgZnVuY3Rpb24gYmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgVXNlIE9CSkVDVF9MT0NLIGFuZCByZWZjb3VudGluZyB0byBnZXQgdGhlIHBhZCBjYXBzIGluIHRoZQoJICBidWZmZXJfYWxsb2MgZnVuY3Rpb24gYmVjYXVzZSB0aGUgY2FwcyBjb3VsZCBjaGFuZ2Ugd2hpbGUgd2UgYXJlCgkgIGJ1c3kgd2l0aCB0aGVtLiBGaXhlcyAjMzQ5MTA1CgoyMDA2LTA3LTMxIDE1OjEyOjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IFJlbW92ZSB1bm5lY2Vzc2FyeSByZWYvdW5yZWYgcGFpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgUmVtb3ZlIHVubmVjZXNzYXJ5IHJlZi91bnJlZiBwYWlyCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgTWFrZSBzdXJlIHRvIGZyZWUgdGhlIHBhcnNlIGJ1ZmZlciBvbiBhbGwgY29kZSBwYXRocy4KCSAgTW92ZSBhIGdfZnJlZSB1cCB0byB0aGUgZXJyb3IgaGFuZGxlciB3aGVyZSBpdCdzIGVhc2llciB0byBzZWUuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6ICh0ZXN0X2V2ZW50KToKCSAgRXh0ZW5kaW5nIHRpbWVvdXQgZm9yIGRvd25zdHJlYW0gdHJhdmVsbGluZyBldmVudHMgdG8gMTAgc2Vjb25kcyB0bwoJICBob3BlZnVsbHkgYXZvaWQgaW50ZXJtaXR0ZW50IGZhaWx1cmUgb24gdGhlIGJ1aWxkYm90cy4KCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IChydW5fZGVsYXllZF90ZXN0KToKCSAgRG9uJ3QgbWFudWFsbHkgc2V0IHRoZSBzdGF0ZSBvZiB0aGUgc3JjIGVsZW1lbnQgLSBpdCB3aWxsIGhhcHBlbiBhcyBhCgkgIG5hdHVyYWwgY29uc2VxdWVuY2Ugb2YgdGhlIHBpcGVsaW5lIGNoYW5naW5nIHN0YXRlLCBhbmQgdGhhdCB3YXkgaXQKCSAgd2lsbCBkbyBpdCBpbiB0aGUgcmlnaHQgb3JkZXIgdG9vLgoKMjAwNi0wNy0zMSAxNTowNzozMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogUmVtb3ZlIHVubmVjZXNzYXJ5IHJlZi91bnJlZiBwYWlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jcmVhdGUpOgoJICBSZW1vdmUgdW5uZWNlc3NhcnkgcmVmL3VucmVmIHBhaXIKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBNYWtlIHN1cmUgdG8gZnJlZSB0aGUgcGFyc2UgYnVmZmVyIG9uIGFsbCBjb2RlIHBhdGhzLgoJICBNb3ZlIGEgZ19mcmVlIHVwIHRvIHRoZSBlcnJvciBoYW5kbGVyIHdoZXJlIGl0J3MgZWFzaWVyIHRvIHNlZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKHRlc3RfZXZlbnQpOgoJICBFeHRlbmRpbmcgdGltZW91dCBmb3IgZG93bnN0cmVhbSB0cmF2ZWxsaW5nIGV2ZW50cyB0byAxMCBzZWNvbmRzIHRvCgkgIGhvcGVmdWxseSBhdm9pZCBpbnRlcm1pdHRlbnQgZmFpbHVyZSBvbiB0aGUgYnVpbGRib3RzLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHJ1bl9kZWxheWVkX3Rlc3QpOgoJICBEb24ndCBtYW51YWxseSBzZXQgdGhlIHN0YXRlIG9mIHRoZSBzcmMgZWxlbWVudCAtIGl0IHdpbGwgaGFwcGVuIGFzIGEKCSAgbmF0dXJhbCBjb25zZXF1ZW5jZSBvZiB0aGUgcGlwZWxpbmUgY2hhbmdpbmcgc3RhdGUsIGFuZCB0aGF0IHdheSBpdAoJICB3aWxsIGRvIGl0IGluIHRoZSByaWdodCBvcmRlciB0b28uCgoyMDA2LTA3LTMxIDE0OjIzOjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFByb3RlY3QgX1BBRF9DQVBTIHdpdGggT0JKRUNUX0xPQ0suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9nZXRfZml4ZWRfY2Fwc19mdW5jKToKCSAgUHJvdGVjdCBfUEFEX0NBUFMgd2l0aCBPQkpFQ1RfTE9DSy4KCjIwMDYtMDctMzEgMTQ6MjE6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFVzZSBfREVCVUdfT0JKRUNUIHdoZW4gaXQgbWFrZXMgc2Vuc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2Rpc3Bvc2UpLAoJICAoZ3N0X3BhZF9nZXRfcHJvcGVydHkpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCksIChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKSwKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlcHVsbF9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9hY3RpdmF0ZXB1c2hfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfY2hhaW5fZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9ldmVudF9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9xdWVyeV9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9xdWVyeV90eXBlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2ludGVybmFsX2xpbmtfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfbGlua19mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF91bmxpbmtfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfZ2V0Y2Fwc19mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9hY2NlcHRjYXBzX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2ZpeGF0ZWNhcHNfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfc2V0Y2Fwc19mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9idWZmZXJhbGxvY19mdW5jdGlvbiksIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9nZXRfY2FwcyksCgkgIChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX3BlZXJfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2FwcyksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksCgkgIChnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMpLCAoZ3N0X3BhZF9nZXRfbmVnb3RpYXRlZF9jYXBzKSwKCSAgKGdzdF9wYWRfYnVmZmVyX2FsbG9jX3VuY2hlY2tlZCksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfcXVlcnkpLCAoZ3N0X3BhZF9sb2FkX2FuZF9saW5rKSwgKGhhbmRsZV9wYWRfYmxvY2spLAoJICAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIFVzZSBfREVCVUdfT0JKRUNUIHdoZW4gaXQgbWFrZXMgc2Vuc2UuCgkgIFByb3RlY3QgR1NUX1BBRF9DQVBTIHdpdGggdGhlIE9CSkVDVF9MT0NLLgoJICBTbWFsbCBjbGVhbnVwcyBhbmQgY29kZSByZWZsb3dzLgoJICBBdm9pZCBjYXBzIHJlZmNvdW50aW5nIGluIF9hY2NlcHRfY2Fwcy4KCSAgUmVmYWN0b3IgYWxsb2NfYnVmZmVyIHNvIHRoYXQgdGhlIGNvZGUgcGVyZm9ybWVkIG9uIHRoZSBwZWVyIGlzIGluIGEKCSAgc2VwYXJhdGUgZnVuY3Rpb24uIEFsc28gaWYgdGhlIHBhZCBkb2VzIG5vdCBpbXBsZW1lbnQgYSBidWZmZXIgYWxsb2MKCSAgZnVuY3Rpb24sIHdlIHNob3VsZCBzdGlsbCBjaGVjayBpZiB0aGUgcGFkIGlzIGZsdXNoaW5nIGJlZm9yZSBmYWxsaW5nCgkgIGJhY2sgdG8gdGhlIGRlZmF1bHQgYWxsb2NhdG9yLgoKMjAwNi0wNy0zMCAyMjoyMDo0MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IE1ha2UgYWxsIHVzZXMgb2YgaWRlbnRpdHkgYW5kIGZha2VzaW5rIGhhdmUgc2lsZW50PXRydWUgdG8gYXZvaWQgc2VyaWFsaXNpbmcgZXYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGFsbCB1c2VzIG9mIGlkZW50aXR5IGFuZCBmYWtlc2luayBoYXZlIHNpbGVudD10cnVlIHRvIGF2b2lkCgkgIHNlcmlhbGlzaW5nIGV2ZXJ5IHBhc3NpbmcgZGF0YSBzdHJ1Y3R1cmUsIHdoaWNoIGlzIGJyZWFraW5nIHRlc3RzCgkgIG9uIEZDNCBmb3Igc29tZSB1bmtub3duIHJlYXNvbi4KCjIwMDYtMDctMzAgMTg6NTg6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9wYXJzZS86IFJldmVydGVkIHByZXZpb3VzIHBhdGNoIGFzIGl0IHJlcXVpcmVkIHRvIGJ1bXAgdGhlIGZsZXggZGVwZW5kZW5jeSB0byAyLjUuMzEsIHdoZXJlIGZjNC81IHNlZW0gdG8gc2hpcCBvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgUmV2ZXJ0ZWQgcHJldmlvdXMgcGF0Y2ggYXMgaXQgcmVxdWlyZWQgdG8gYnVtcCB0aGUgZmxleCBkZXBlbmRlbmN5IHRvCgkgIDIuNS4zMSwgd2hlcmUgZmM0LzUgc2VlbSB0byBzaGlwIG9ubHkgdGhlIGFuY2llbnQgMi41LjRhIDooCgoyMDA2LTA3LTMwIDE4OjMyOjQ5ICswMDAwICBNYXJjLUFuZHJlIEx1cmVhdSA8bWFyY2FuZHJlLmx1cmVhdUBnbWFpbC5jb20+CgoJICBnc3QvcGFyc2UvOiBwdXNoICYgcG9wIHRoZSBzdGF0ZSBvZiB0aGUgbGV4ZXIgZm9yIHJlZW50cmFudCB1c2UgY2FzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmMtQW5kcmUgTHVyZWF1IDxtYXJjYW5kcmUubHVyZWF1QGdtYWlsLmNvbT4KCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgcHVzaCAmIHBvcCB0aGUgc3RhdGUgb2YgdGhlIGxleGVyIGZvciByZWVudHJhbnQgdXNlIGNhc2UKCSAgRml4ZXMgIzM0OTE4MAoKMjAwNi0wNy0yOSAxMzo0NTowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOiBOb3RlIGluIHRoZSBkb2NzIHRoYXQgdGhlIDo6bmV3c2VnbWVudCB2ZnVuYyBpcyBub3QgYWN0dWFsbHkgdXNlZCBieQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTm90ZSBpbiB0aGUgZG9jcyB0aGF0IHRoZSA6Om5ld3NlZ21lbnQgdmZ1bmMgaXMgbm90IGFjdHVhbGx5IHVzZWQgYnkKCSAgR3N0QmFzZVNyYy4KCjIwMDYtMDctMjggMTQ6MDk6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFdoZW4gZmx1c2hpbmcgYSBwYWQsIGFsc28gY2xlYXIgdGhlIHF1ZXVlZCBidWZmZXIgc28gdGhhdCB3ZSBkb24ndCBhY2NpZGVudGFsbHkgdXNlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJICAoZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmdfdW5sb2NrZWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jbGVhciksIChnc3RfY29sbGVjdF9wYWRzX2ZsdXNoKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgIFdoZW4gZmx1c2hpbmcgYSBwYWQsIGFsc28gY2xlYXIgdGhlIHF1ZXVlZCBidWZmZXIgc28gdGhhdCB3ZSBkb24ndAoJICBhY2NpZGVudGFsbHkgdXNlIGl0IHdoZW4gd2Ugc2hvdWxkbid0LgoJICBGaXggbGVha3MgYnkgaW5yZWZmaW5nIGluY29tbWluZyBidWZmZXIuCgkgIEZsdXNoIG91dCBxdWV1ZWQgYnVmZmVycyBpbiBjYXNlIG9mIGVycm9ycy4KCSAgRml4ZXMgIzM0NzQ1Mi4KCjIwMDYtMDctMjggMTA6MTc6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL3JhbmRvbS9waG9ub24tZ3N0OiBSYW5kb20gbm90ZXMgYWJvdXQgYSBQaG9ub24gYmFja2VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vcGhvbm9uLWdzdDoKCSAgUmFuZG9tIG5vdGVzIGFib3V0IGEgUGhvbm9uIGJhY2tlbmQuCgoyMDA2LTA3LTI3IDE0OjMyOjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBFeHRyYSBkZWJ1ZyBvdXRwdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6CgkgIEV4dHJhIGRlYnVnIG91dHB1dAoJICAqIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IChnc3RfZHBfc3VpdGUpOgoJICBUYWtlIGEgd2hhY2sgYXQgZml4aW5nIHRoZSBwcGMgY29tcGlsZSB1c2luZyBhIGRpZmZlcmVudCBkZWZpbmUgdG8KCSAgZGlzYWJsZSB0aGUgYnJva2VuIHRlc3QuCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBSZW1vdmUgZXhjZXNzIGdfcHJpbnQoKQoKMjAwNi0wNy0yNyAxMzo0NDoyMiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0ZXN0cy9jaGVjay9waXBlbGluZXMvcGFyc2UtbGF1bmNoLmM6IE9vcHMsIG1lYW50IHRvIHVuY29tbWVudCB0aGlzIGxpbmUgdG9vIHRvIGRhbXBlbiB0aGUgbm9pc2UgYSBiaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKGV4cGVjdGVkX2ZhaWxfcGlwZSk6CgkgIE9vcHMsIG1lYW50IHRvIHVuY29tbWVudCB0aGlzIGxpbmUgdG9vIHRvIGRhbXBlbiB0aGUgbm9pc2UgYSBiaXQuCgoyMDA2LTA3LTI3IDEzOjI2OjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBzb21lIG9mIHRoZSBsZWFrcyBleHBvc2VkIGJ5IGV4dGVuZGluZyB0aGUgcGFyc2UtbGF1bmNoIHRlc3RzdWl0ZSwgYW5kIG1vdmUgdGhlIDMgSSBjYW4ndCBmaWd1cmUgb3V0IGludG8gYSBzZXBhci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKGV4cGVjdGVkX2ZhaWxfcGlwZSksCgkgIChHU1RfU1RBUlRfVEVTVCksIChwYXJzZV9zdWl0ZSk6CgkgIEZpeCBzb21lIG9mIHRoZSBsZWFrcyBleHBvc2VkIGJ5IGV4dGVuZGluZyB0aGUgcGFyc2UtbGF1bmNoIHRlc3RzdWl0ZSwKCSAgYW5kIG1vdmUgdGhlIDMgSSBjYW4ndCBmaWd1cmUgb3V0IGludG8gYSBzZXBhcmF0ZSB0ZXN0IHRoYXQgd29uJ3QgcnVuCgkgIHRoZSBwaXBlbGluZXMgdW5sZXNzIHRoZSBhcHByb3ByaWF0ZSBsaW5lIGlzIHVuY29tbWVudGVkLgoKMjAwNi0wNy0yNyAxMjozOTo0MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBSZXF1ZXN0aW5nIDAgYnl0ZXMgYmVmb3JlIHRoZSBlbmQgb2YgdGhlIGZpbGUgc2hvdWxkIHJlc3VsdCBpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIFJlcXVlc3RpbmcgMCBieXRlcyBiZWZvcmUgdGhlIGVuZCBvZiB0aGUgZmlsZSBzaG91bGQgcmVzdWx0IGluCgkgIEZMT1dfT0sgYW5kIGFuIGVtcHR5IGJ1ZmZlciwgbm90IEZMT1dfVU5FWFBFQ1RFRC4gVGhhbmsgeW91CgkgIHVuaXQgdGVzdC4KCjIwMDYtMDctMjcgMTE6MDA6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggdXNlbGVzcyBhc3NlcnQsIGEgdWludCBpcyBhbHdheXMgcG9zaXRpdmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KSwgKGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUpOgoJICBGaXggdXNlbGVzcyBhc3NlcnQsIGEgdWludCBpcyBhbHdheXMgcG9zaXRpdmUuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9udGhfZmllbGRfbmFtZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZvcmVhY2gpLCAoZ3N0X3N0cnVjdHVyZV9tYXBfaW5fcGxhY2UpOgoJICBDaGVjayBpbnB1dCBhcmd1bWVudHMgZm9yIHB1YmxpYyBmdW5jdGlvbnMgdG8gYXZvaWQgb2J2aW91cyBjcmFzaGVzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfcmVuZGVyKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkgIERvIGxlc3MgdXNlbGVzcyB0eXBlY2hlY2tpbmcuCgoyMDA2LTA3LTI3IDEwOjU0OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IERvIG5vdCB1c2UgbW1hcCgpIGJ5IGRlZmF1bHQgc2luY2UgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIGVycm9yIGNvbmRpdGlvbnMgdGhhdCB3ZSB3b3VsLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpOgoJICBEbyBub3QgdXNlIG1tYXAoKSBieSBkZWZhdWx0IHNpbmNlIHRoZXJlIGFyZSBhIG51bWJlciBvZiBlcnJvcgoJICBjb25kaXRpb25zIHRoYXQgd2Ugd291bGQgbGlrZSB0byBoYW5kbGUgaW4gYSBub24tZmF0YWwgd2F5IHRoYXQKCSAgd2lsbCByZXN1bHQgaW4gYSBTSUdCVVMgaWYgd2UgdXNlIG1tYXAoKS4gRXhhbXBsZXM6IGV4dGVybmFsCgkgIGRldmljZXMgKFVTQiBoYXJkZHJpdmUsIHBvcnRhYmxlIG11c2ljIHBsYXllcikgYmVpbmcgdW5wbHVnZ2VkCgkgIHdoaWxlIGluIHVzZTsgZmlsZSBvbiBtb3VudGVkIENEL0RWRCB0aGF0IGNhbid0IGJlIHJlYWQgYmVjYXVzZQoJICB0aGUgbWVkaXVtIGlzIHBhcnRseSBkYW1hZ2VkLiBGaXhlcyAjMzQ4NDU1IGFuZCAjMzQ4NDc1LgoKMjAwNi0wNy0yNiAyMjo1OToxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuaDogRGVsZXRlIHVudXNlZCBhbmQgbWlzbGVhZGluZyBkZWZpbmUgb2YgR1NUX1FVRVJZX1RZUEVfUkFURV9ERU4gLSByYXRlcyBhcmUgYSBnZG91YmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBEZWxldGUgdW51c2VkIGFuZCBtaXNsZWFkaW5nIGRlZmluZSBvZiBHU1RfUVVFUllfVFlQRV9SQVRFX0RFTiAtCgkgIHJhdGVzIGFyZSBhIGdkb3VibGUKCjIwMDYtMDctMjYgMjA6MzA6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiBNb3ZlIGJpZyBkb2N1bWVudGF0aW9uIGNvbW1lbnQgaW50byBjbGFzcyBzZWN0aW9uIGhlYWRlciwgc28gdGhhdCBpdCBhcHBlYXJzIGluIHRoZSBBUEkgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIE1vdmUgYmlnIGRvY3VtZW50YXRpb24gY29tbWVudCBpbnRvIGNsYXNzIHNlY3Rpb24gaGVhZGVyLCBzbyB0aGF0IGl0CgkgIGFwcGVhcnMgaW4gdGhlIEFQSSBkb2NzLgoKMjAwNi0wNy0yNiAxNzoxODoyNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBPb3BzLiBDb21taXQgdGhlIGRvY3MgYWRkaXRpb25zIHRvbyBmb3IgbmV3IEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgT29wcy4gQ29tbWl0IHRoZSBkb2NzIGFkZGl0aW9ucyB0b28gZm9yIG5ldyBBUEkuCgkgIEFsc28sIHJlbW92ZSB0aGUgbWVudGlvbiBvZiB0aGUgbm9uLWV4aXN0ZW50IEdTVF9RVUVSWV9UWVBFX1JBVEVfREVOCgoyMDA2LTA3LTI2IDE3OjA0OjQ1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuKjogQWRkIEFQSSBmb3Igc2V0dGluZyB2YWx1ZXMgaW50byBzdHJ1Y3R1cmVzIHdpdGhvdXQgcGVyZm9ybWluZyBhIHF1YXJrIGxvb2t1cCwgaWYgdGhlIGFwcHJvcHJpYXRlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX2lkX3NldCksCgkgIChnc3Rfc3RydWN0dXJlX2lkX3NldF92YWxpc3QpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgQWRkIEFQSSBmb3Igc2V0dGluZyB2YWx1ZXMgaW50byBzdHJ1Y3R1cmVzIHdpdGhvdXQgcGVyZm9ybWluZwoJICBhIHF1YXJrIGxvb2t1cCwgaWYgdGhlIGFwcHJvcHJpYXRlIHF1YXJrIGlzIGFscmVhZHkga25vd24uCgkgIEFQSTogZ3N0X3N0cnVjdHVyZV9pZF9zZXQKCSAgQVBJOiBnc3Rfc3RydWN0dXJlX2lkX3NldF92YWxpc3QKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIGdzdC9wYXJzZS9wYXJzZS5sOgoJICBSZW1vdmUgc29tZSBkZWFkIGNvZGUgc2hvd24gYnkgdGhlIGNvdmVyYWdlIGluZm9ybWF0aW9uLgoJICBEb24ndCB0aHJvdyBhIGNyaXRpY2FsIGdfd2FybmluZyB3aGVuIGVuY291bnRlcmluZyBhIHN5bnRheCBlcnJvciwKCSAganVzdCB3YXJuIGFuZCBsZXQgdGhlIG5vcm1hbCBlcnJvciBwYXRoIGhhbmRsZSBpdC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIEJ1bXAgdGhlIHJhbmsgb2YgZmlsZXNpbmsgdXAgdG8gUFJJTUFSWSBzbyB0aGF0IGl0IGlzIHByZWZlcnJlZCBvdmVyCgkgIGdub21ldmZzc2luayBmb3IgZmlsZTovLyBzaW5rIHVyaSdzCgkgICogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3BhcnNlLWxhdW5jaC5jOiAoZXhwZWN0ZWRfZmFpbF9waXBlKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKHJ1bl9kZWxheWVkX3Rlc3QpLAoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9iYXNlX2luaXQpLAoJICAoZ3N0X3BhcnNlX3Rlc3RfZWxlbWVudF9jbGFzc19pbml0KSwgKGdzdF9wYXJzZV90ZXN0X2VsZW1lbnRfaW5pdCksCgkgIChnc3RfcGFyc2VfdGVzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcmVnaXN0ZXJfcGFyc2VfZWxlbWVudCksIChwYXJzZV9zdWl0ZSk6CgkgIEJlZWYgdXAgdGhlIHRlc3RzIGZvciBwYXJzZSBzeW50YXggdG8gY2hlY2sgdGhhdCBtb3JlIGVycm9yIGNhc2VzCgkgIGZhaWwgYXMgdGhleSBhcmUgc3VwcG9zZWQgdG8uIEluY3JlYXNlcyB0aGUgdGVzdCBjb3ZlcmFnZSBhIGJpdC4KCjIwMDYtMDctMjYgMTE6NDM6MjMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOiBGaXggZ3N0X2VsZW1lbnRfbGluaygpIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIEZpeCBnc3RfZWxlbWVudF9saW5rKCkgZXhhbXBsZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTWVudGlvbiBpbiBBUEkgZG9jcyB0aGF0IG9uZSBzaG91bGQgdXN1YWxseSBnc3RfYmluX2FkZCgpCgkgIGVsZW1lbnRzIHRvIGEgYmluIG9yIHBpcGVsaW5lIGJlZm9yZSBkb2luZyB0aGUgbGlua2luZy4KCjIwMDYtMDctMjYgMTA6NDc6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBiYWNrIHRvIDMyIGJpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byAzMiBiaXQKCjIwMDYtMDctMjYgMTA6Mzk6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IEF2b2lkIGZ1bmN0aW9uIGNhbGwgZm9yIGtub3duIHR5cGVzIGJ5IGtlZXBpbmcgdGhlIGJ1ZmZlciBhbmQgc3ViYnVmZmVyIEdUeXBlIGdsb2JhbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9nZXRfdHlwZSksIChnc3RfYnVmZmVyX25ldyksCgkgIChnc3Rfc3ViYnVmZmVyX2dldF90eXBlKSwgKGdzdF9idWZmZXJfY3JlYXRlX3N1Yik6CgkgIEF2b2lkIGZ1bmN0aW9uIGNhbGwgZm9yIGtub3duIHR5cGVzIGJ5IGtlZXBpbmcgdGhlIGJ1ZmZlciBhbmQKCSAgc3ViYnVmZmVyIEdUeXBlIGdsb2JhbC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIFJhbmRvbSBzaWxseSBvcHRpbWlzYXRpb25zIGluIHJlYWQoKSBwYXRoLgoKMjAwNi0wNy0yNiAwNjoxODo0NCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IElmIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIHBhcnNlIGlzIGEgbm9ybWFsIGJpbiwgaXQgZG9lc24ndCBkbyB0aGUgcmlnaHQgbG9naWMgdG8gcnVuIGFzIGEgdG9wLWxldmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIElmIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIHBhcnNlIGlzIGEgbm9ybWFsIGJpbiwgaXQgZG9lc24ndCBkbyB0aGUKCSAgcmlnaHQgbG9naWMgdG8gcnVuIGFzIGEgdG9wLWxldmVsIGVsZW1lbnQsIHNvIHBsYWNlIGl0IGluc2lkZSBhCgkgIHBpcGVsaW5lLgoKMjAwNi0wNy0yNSAxOTozNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBSZW1vdmUgc3VwZXJmbHVvdXMgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbHMsIEdPYmplY3QgZG9lcyB0aGF0IGZvciB1cyBhdXRvbWF0aWNhbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19zZXRfcHJvcGVydHkpOgoJICBSZW1vdmUgc3VwZXJmbHVvdXMgZ19vYmplY3Rfbm90aWZ5KCkgY2FsbHMsIEdPYmplY3QgZG9lcwoJICB0aGF0IGZvciB1cyBhdXRvbWF0aWNhbGx5LgoKMjAwNi0wNy0yNSAxNTowNzo1OCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBsYXRlc3QgLmggYWRkaXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBsYXRlc3QgLmggYWRkaXRpb24KCjIwMDYtMDctMjUgMTM6MDY6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmg6IE1vdmUgdGhlIFdpbjMyIHZlcnNpb24gZnJvbSBnc3QtcGx1Z2lucy1nb29kL2dzdC9hdmkvYXZpZGVtdXguYyB0byBoZXJlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBNb3ZlIHRoZSBXaW4zMiB2ZXJzaW9uIGZyb20gZ3N0LXBsdWdpbnMtZ29vZC9nc3QvYXZpL2F2aWRlbXV4LmMgdG8KCSAgaGVyZS4KCjIwMDYtMDctMjQgMTY6MzM6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnbGlzdC5jOiBBbGxvdyBtb3JlIHRoYW4gb25lIEdTVF9UQUdfSU1BR0UgcGVyIHRhZ2xpc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgQWxsb3cgbW9yZSB0aGFuIG9uZSBHU1RfVEFHX0lNQUdFIHBlciB0YWdsaXN0LgoKMjAwNi0wNy0yNCAwNzo0MDoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiB1cGRhdGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICB1cGRhdGUgZG9jcwoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZF9zcmNfY3JlYXRlKToKCSAgbG9nIHJlY3VycmluZyBldmVudHMgYXQgTE9HIGxldmVsCgkgIGFkZCBtb3JlIGRlYnVnIGZvciB3aGVuIHRoZSBmZCBnZXRzIHNldAoKMjAwNi0wNy0yNCAwNzozNzo1MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkgIHJlbW92ZSAtLWVuYWJsZS1kb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgLS1lbmFibGUtZG9jcwoKMjAwNi0wNy0yMyAwOTo0MTozMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeTogYWRkIGJ1ZyByZWZlcmVuY2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENoYW5nZUxvZyBzdXJnZXJ5OiBhZGQgYnVnIHJlZmVyZW5jZQoKMjAwNi0wNy0yMSAxODo1MjozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHBhcnNlLmM6IEFsc28gcmVtb3ZlIHJlZW50cmFuY2UgY2hlY2tzIGlmIGZsZXggaXMgTVQgc2F2ZSAoIzM0ODE3OSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgQWxzbyByZW1vdmUgcmVlbnRyYW5jZSBjaGVja3MgaWYgZmxleCBpcyBNVCBzYXZlICgjMzQ4MTc5KQoJICBGaXggbXkgZW1wdHkgQ2hhbmdlTG9nIGVudHJ5IGJlbG93CgoyMDA2LTA3LTIxIDE2OjAxOjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBBdHRlbXB0IHRvIHBhY2lmeSBidWlsZGJvdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQXR0ZW1wdCB0byBwYWNpZnkgYnVpbGRib3QuCgoyMDA2LTA3LTIxIDE1OjQ4OjA0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbSAobGliZ3N0Y2hlY2tfQEdTVF9NQUpPUk1JTk9SQGluY2x1ZGVfSEVBREVSUykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDctMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvY2hlY2svTWFrZWZpbGUuYW0KCSAgKGxpYmdzdGNoZWNrX0BHU1RfTUFKT1JNSU5PUkBpbmNsdWRlX0hFQURFUlMpCgkgIChsaWJnc3RjaGVja19AR1NUX01BSk9STUlOT1JAX2xhX1NPVVJDRVMpOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGJ1ZmZlcnN0cmF3Lmg6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0YnVmZmVyc3RyYXcuYzogQWRkIHNvbWUgbmV3IGh5cGUgdGVzdGluZwoJICBmdW5jdGlvbnMsIHRodXMgcHJvdmluZyBJIGFtIHN0aWxsIGEgR1N0cmVhbWVyIGhheG9yLiBPSyBJIHdyb3RlCgkgIHRoZW0gYSBsb25nIHRpbWUgYWdvLCBidXQgYW55d2F5cy4KCjIwMDYtMDctMjEgMTM6MTE6MzMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzogKiBjb25maWd1cmUuYWM6ICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCjIwMDYtMDctMjEgMTA6NDA6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFyc2UuYzogUHJvdGVjdCByZWN1cnNpdmUgY2FsbHMgdG8gX3BhcnNlIHdpdGggYSByZWN1cnNpdmUgbXV0ZXggYW5kIGJ1c3kgZmxhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhcnNlLmM6IChnc3RfcGFyc2VfbGF1bmNoKToKCSAgUHJvdGVjdCByZWN1cnNpdmUgY2FsbHMgdG8gX3BhcnNlIHdpdGggYSByZWN1cnNpdmUgbXV0ZXgKCSAgYW5kIGJ1c3kgZmxhZy4KCjIwMDYtMDctMjEgMTA6Mzg6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cGFkLmM6IEZpeCBsZWFrIGluIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGxlYWsgaW4gdGVzdC4KCjIwMDYtMDctMjAgMjA6MDI6NTUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RwYXJzZS5jOiBEbyBub3QgaGFuZ2Ugb24gcmVjdXJzaXZlIHVhc2dlIG9mIGdzdF9wYXJzZV9sYXVuY2goKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzogKGdzdF9wYXJzZV9sYXVuY2gpOgoJICBEbyBub3QgaGFuZ2Ugb24gcmVjdXJzaXZlIHVhc2dlIG9mIGdzdF9wYXJzZV9sYXVuY2goKQoKMjAwNi0wNy0yMCAxNjoxMDoxNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEFkZCBzb21lIG1vcmUgZG9jcywgY29tbWVudHMgYW5kIEZJWE1FIDAuMTFzIGhlcmUgYW5kIHRoZXJlIGFuZCAgYWxzbyBmaXggc29tZSB0eXBvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgQWRkIHNvbWUgbW9yZSBkb2NzLCBjb21tZW50cyBhbmQgRklYTUUgMC4xMXMgaGVyZSBhbmQgdGhlcmUKCSAgYW5kICBhbHNvIGZpeCBzb21lIHR5cG9zLgoKMjAwNi0wNy0yMCAxMDo1MDoyMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RzZWdtZW50Lmg6IENvbnZlcnQgdGFicyB0byBzcGFjZXMgZm9yIGJldHRlciByZWFkYWJpbGl0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgQ29udmVydCB0YWJzIHRvIHNwYWNlcyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5LgoKMjAwNi0wNy0yMCAxMDoyNToyOCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvZ2RwLmM6IHRoZSB0ZXN0X2J1ZmZlciB0ZXN0IGZhaWxzIGF0IGxpbmUgMTQwIG9uIHBwYzY0IGF0IHRoZSBmb2xsb3dpbmcgY2hlY2s6ICJHU1RfQlVGRkVSX0lOX0NBUFMgZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgdGhlIHRlc3RfYnVmZmVyIHRlc3QgZmFpbHMgYXQgbGluZSAxNDAgb24gcHBjNjQgYXQgdGhlIGZvbGxvd2luZwoJICBjaGVjazoKCSAgZmFpbF91bmxlc3MgKEdTVF9CVUZGRVJfRkxBR19JU19TRVQgKG5ld2J1ZmZlciwgR1NUX0JVRkZFUl9GTEFHX0lOX0NBUFMpLAoJICAiR1NUX0JVRkZFUl9JTl9DQVBTIGZsYWcgc2hvdWxkIGhhdmUgYmVlbiBjb3BpZWQgISIpOwoJICBTZWUgYnVnICMzNDgxMTQgZm9yIG1vcmUgZGV0YWlscy4KCjIwMDYtMDctMTkgMTI6NDA6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBGaXggdHlwb3MgKCMzNDgwMDApLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIEZpeCB0eXBvcyAoIzM0ODAwMCkuCgoyMDA2LTA3LTE4IDIwOjM4OjQ1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDogRml4IHdyb25nIGxpbmtzICgjMzQ3OTI3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvaW50cm8tYmFzaWNzLnhtbDoKCSAgRml4IHdyb25nIGxpbmtzICgjMzQ3OTI3KS4KCjIwMDYtMDctMTggMTk6MDE6MjUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1ha2UgLS1kaXNhYmxlLWluZGV4IHdvcmsgKCMzNDI1NjQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9mZWF0dXJlKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSksIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfZmVhdHVyZSk6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBtYWtlIC0tZGlzYWJsZS1pbmRleCB3b3JrICgjMzQyNTY0KQoKMjAwNi0wNy0xOCAwOTo0MjozMSArMDAwMCAgUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2pAYXhpcy5jb20+CgoJICBnc3QvOiBUaGUgYXR0YWNoZWQgcGF0Y2ggYWRkcyB0d28gbWlzc2luZyBkZWZpbmVzIHRvIGdzdHRyYWNlLmggd2hlbiB0cmFjaW5nIGlzIGRpc2FibGVkLiAgSXQgYWxzbyBjb3JyZWN0cyBvbmUgZXhpc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBQZXRlciBLamVsbGVyc3RlZHQgPHBraiBhdCBheGlzIGRvdCBjb20+CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3R0cmFjZS5oOgoJICBUaGUgYXR0YWNoZWQgcGF0Y2ggYWRkcyB0d28gbWlzc2luZyBkZWZpbmVzIHRvIGdzdHRyYWNlLmggd2hlbiB0cmFjaW5nCgkgIGlzIGRpc2FibGVkLiAgSXQgYWxzbyBjb3JyZWN0cyBvbmUgZXhpc3RpbmcgZGVmaW5lLgoJICBGaXhlcyAjMzQ3NzU2LgoKMjAwNi0wNy0xNyAxNzo0MDo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZCB0d28gZnVuY3Rpb25zIHRvIGNoZWNrIGFuZCBjaGFuZ2UgdGhlIFNJR1NFR1YgYmVoYXZpb3VyIHdoZW4gbG9hZGluZyBwbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzogKGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQpLCAoZ3N0X3NlZ3RyYXBfc2V0X2VuYWJsZWQpOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChfZ3N0X3BsdWdpbl9mYXVsdF9oYW5kbGVyX3Jlc3RvcmUpOgoJICBBZGQgdHdvIGZ1bmN0aW9ucyB0byBjaGVjayBhbmQgY2hhbmdlIHRoZSBTSUdTRUdWIGJlaGF2aW91cgoJICB3aGVuIGxvYWRpbmcgcGx1Z2lucy4KCSAgRG9uJ3QgbWVzcyB3aXRoIHRoZSBTSUdTRUdWIGhhbmRsZXIgd2hlbiB3ZSB3ZXJlIHRvbGQgbm90IHRvLgoJICBGaXhlcyAjMzQ3Nzk0LgoJICBBUEk6IGdzdF9zZWd0cmFwX2lzX2VuYWJsZWQKCSAgQVBJOiBnc3Rfc2VndHJhcF9zZXRfZW5hYmxlZAoKMjAwNi0wNy0xNCAxNjo0MjoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFJldmVydCBmaXggZm9yIHJlZ3Jlc3Npb24gaW4gIzM0NzQwOCBhZnRlciByZWxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFJldmVydCBmaXggZm9yIHJlZ3Jlc3Npb24gaW4gIzM0NzQwOCBhZnRlciByZWxlYXNlLgoKMjAwNi0wNy0xNCAxNjoyMDoxOCArMDAwMCAgQW50b2luZSBUcmVtYmxheSA8aGV4YTAwQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBGcmVlIGl0ZXJhdG9yIHdoZW4gZG9uZSAoIzM0NzMxMSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogQW50b2luZSBUcmVtYmxheSA8aGV4YTAwIGF0IGdtYWlsIGNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayk6CgkgIEZyZWUgaXRlcmF0b3Igd2hlbiBkb25lICgjMzQ3MzExKS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIEFuZCBhZGQgYSB0ZXN0IGNhc2UgZm9yIHRoaXMuCgoyMDA2LTA3LTE0IDE1OjUyOjU1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogQnVtcCBuYW5vIGJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQnVtcCBuYW5vIGJhY2sgdG8gQ1ZTCgo9PT0gcmVsZWFzZSAwLjEwLjkgPT09CgoyMDA2LTA3LTE0IDE1OjUwOjE5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogcmVsZWFzaW5nIDAuMTAuOSwgIk9uIHRoZSByb2FkIGFnYWluIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNy0xMyAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC45LCAiT24gdGhlIHJvYWQgYWdhaW4iCgoyMDA2LTA3LTEzIDE5OjQ3OjE0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wNy0xMyAxNTo1MTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFJldmVydCBwdWxsLTAgZml4IGZvciByZWxlYXNlLiBEaXNhYmxlIGNoZWNrLiBGaXhlcyAjMzQ3NDA4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY191cGRhdGVfbGVuZ3RoKToKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFJldmVydCBwdWxsLTAgZml4IGZvciByZWxlYXNlLiBEaXNhYmxlIGNoZWNrLiBGaXhlcyAjMzQ3NDA4LgoKMjAwNi0wNy0xMyAxNDowMjoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeGVzICMzNDczMzc6IGZhaWx1cmUgdG8gZGVzZXJpYWxpemUgZXZlbnQgcGFja2V0cyB3aXRoIGVtcHR5IHBheWxvYWQgKG9ubHkgZXYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0XzFfMCk6CgkgIEZpeGVzICMzNDczMzc6IGZhaWx1cmUgdG8gZGVzZXJpYWxpemUgZXZlbnQgcGFja2V0cyB3aXRoCgkgIGVtcHR5IHBheWxvYWQgKG9ubHkgZXZlbnQgdHlwZSkKCjIwMDYtMDctMTMgMTM6NTc6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBkbyBub3QgaW5zdGFsbCBhIC5jIGZpbGUgaW4gdGhlIGhlYWRlciBkaXJlY3RvcnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBkbyBub3QgaW5zdGFsbCBhIC5jIGZpbGUgaW4gdGhlIGhlYWRlciBkaXJlY3RvcnkKCjIwMDYtMDctMTMgMTA6NDc6MDAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogR2hvc3RQYWQgbm8gbG9uZ2VyIGltcGxpY2l0ZWx5IHVzZSB0aGUgcGFkdGVtcGxhdGVzIG9mIHRoZSB0YXJnZXRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfc2V0X3RhcmdldF91bmxvY2tlZCk6CgkgIEdob3N0UGFkIG5vIGxvbmdlciBpbXBsaWNpdGVseSB1c2UgdGhlIHBhZHRlbXBsYXRlcyBvZiB0aGUgdGFyZ2V0cy4KCSAgRml4ZXMgIzM0NzM4NAoKMjAwNi0wNy0xMSAyMjo1NTo0MCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogcG8vemhfVFcucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDYtMDctMTEgMjA6NDQ6NDYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBNZW50aW9uIGJ1ZyAjMzQxMDI5IGZpeGVkIGJ5IGJpbGJvZWQncyBwcmV2aW91cyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1lbnRpb24gYnVnICMzNDEwMjkgZml4ZWQgYnkgYmlsYm9lZCdzIHByZXZpb3VzIGNvbW1pdAoKMjAwNi0wNy0xMSAyMDoxNDoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBNYWtlIEdzdFZhbHVlQXJyYXkgY29tcGFyaXNvbiBiZSBvcmRlciBkZXBlbmRlbnQgYXMgZGVzaWduZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfbGlzdCksCgkgIChnc3RfdmFsdWVfY29tcGFyZV9hcnJheSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIEdzdFZhbHVlQXJyYXkgY29tcGFyaXNvbiBiZSBvcmRlciBkZXBlbmRlbnQgYXMgZGVzaWduZWQuCgkgIEFkZCBjaGVja3MgZm9yIHZhbHVlIGxpc3RzIGFuZCB2YWx1ZSBhcnJheSBjb21wYXJpc29ucy4KCSAgRml4ZXMgIzM0NzIyMQoKMjAwNi0wNy0xMSAxNjoyMDowOSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogKGRlKWFjdGl2YXRlIHNyYyBwYWRzIGJlZm9yZSBjYWxsaW5nIHN0YXRlX2NoYW5nZSBvbiB0aGUgY2hpbGRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChhY3RpdmF0ZV9wYWRzKSwKCSAgKGl0ZXJhdG9yX2FjdGl2YXRlX2ZvbGRfd2l0aF9yZXN5bmMpLCAoZ3N0X2Jpbl9zcmNfcGFkc19hY3RpdmF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKGRlKWFjdGl2YXRlIHNyYyBwYWRzIGJlZm9yZSBjYWxsaW5nIHN0YXRlX2NoYW5nZSBvbiB0aGUgY2hpbGRzLgoJICBUaGlzIGlzIHRvIGF2b2lkIHRoZSBjYXNlIHdoZXJlIGEgc3JjIGdob3N0cGFkIGlzIGJsb2NrZWQgKGhvbGRpbmcgdGhlCgkgIHN0cmVhbSBsb2NrKSwgd2hpY2ggd291bGQgYmxvY2sgdGhlIGRlYWN0aXZhdGlvbiBvZiB0aGUgZ2hvc3RwYWQncwoJICB0YXJnZXQgcGFkLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19xdWVyeV90eXBlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZXZlbnQpLCAoZ3N0X3Byb3h5X3BhZF9kb19xdWVyeSksCgkgIChnc3RfcHJveHlfcGFkX2RvX2ludGVybmFsX2xpbmspLCAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoYWluKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGVja2dldHJhbmdlKSwgKGdzdF9wcm94eV9wYWRfZG9fZ2V0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2FjY2VwdGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9kb19maXhhdGVjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2FwcyksIChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0KSwgKGdzdF9wcm94eV9wYWRfZ2V0X2ludGVybmFsKSwKCSAgKGdzdF9wcm94eV9wYWRfZGlzcG9zZSksIChnc3RfcHJveHlfcGFkX2luaXQpLAoJICAoZ3N0X2dob3N0X3BhZF9wYXJlbnRfc2V0KSwgKGdzdF9naG9zdF9wYWRfcGFyZW50X3Vuc2V0KSwKCSAgKGdzdF9naG9zdF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfZ2hvc3RfcGFkX2ludGVybmFsX2RvX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2dob3N0X3BhZF9pbnRlcm5hbF9kb19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2dob3N0X3BhZF9kb19saW5rKSwgKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKSwKCSAgKGdzdF9naG9zdF9wYWRfZGlzcG9zZSksIChnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9uZXcpLCAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgR2hvc3RQYWRzIG5vdyBjcmVhdGUgdGhlaXIgaW50ZXJuYWwgR3N0UHJveHlQYWQgYXQgY3JlYXRpb24gKGFuZCBub3QKCSAgd2hlbiB0aGV5J3JlIGxpbmtlZCwgYXMgaXQgd2FzIGJlaW5nIGRvbmUgcHJldmlvdXNseSkuCgkgIFRoZSBpbnRlcm5hbCBhbmQgdGFyZ2V0IHBhZHMgYXJlIGxpbmtlZCBzdHJhaWdodCBhd2F5LgoJICBUaGUgZGF0YSB3aWxsIGFsc28gdHJhdmVsIHRocm91Z2ggdGhlIG90aGVyIHBhZCBpbiBvcmRlciB0byBtYWtlCgkgIHBhZCBibG9ja2luZyBhbmQgcHJvYmVzIG5vbi1oYWNraXNoICh0aGUgcHJvYmUvYmxvY2sgbm93IHJlYWxseSBoYXBwZW5zCgkgIG9uIHRoZSBHaG9zdFBhZCBhbmQgbm90IG9uIHRoZSB0YXJnZXQpLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpLAoJICAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgUmVtb3ZlIHByZXZpb3VzIGdob3N0cGFkIGNydWZ0LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICBSZW1vdmUgcHJldmlvdXMgZ2hvc3QgcGFkIGNydWZ0LgoJICBBZGRlZCBtb3JlIGRldGFpbGVkIGRlYnVnIHN0YXRlbWVudHMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCB0aGUgdGVzdHN1aXRlIGZvciByZWZjb3VudGluZyBjaGFuZ2VzLgoJICBUaGUgY29tbWVudHMgYWJvdXQgd2hvIGhhcyByZWZlcmVuY2VzIHdlcmUgY29ycmVjdCwgYnV0IHRoZSByZWZjb3VudAoJICBiZWluZyBjaGVja2VkIHdhc24ndCB0aGUgc2FtZSAoIT8hKS4KCjIwMDYtMDctMTAgMTk6MzU6MzIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIE1vcmUgZG9jcyBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLCBhZGQgZG9jcyB0byBndGstZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgTW9yZSBkb2NzIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGFkZCBkb2NzIHRvIGd0ay1kb2MuCgoyMDA2LTA3LTEwIDE4OjI3OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXggYnVpbGQgd2hlbiBkaXNhYmxpbmcgdHJhY2luZyAoZml4ZXMgIzM0NDAxNikuIEFsc28gc3RhcnQgdG8gZG9jdW1lbnQgdGhlIGRlZmluZXMgdGhhdCBkaXNhYmxlIHRoZSBzdWItc3lzdGVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIEZpeCBidWlsZCB3aGVuIGRpc2FibGluZyB0cmFjaW5nIChmaXhlcyAjMzQ0MDE2KS4gQWxzbyBzdGFydCB0byBkb2N1bWVudAoJICB0aGUgZGVmaW5lcyB0aGF0IGRpc2FibGUgdGhlIHN1Yi1zeXN0ZW1zLgoKMjAwNi0wNy0xMCAwOTo0MjoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3QuYzogbGV0J3MgbWFrZSB2YWxncmluZCBoYXBweS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKToKCSAgbGV0J3MgbWFrZSB2YWxncmluZCBoYXBweS4uLgoKMjAwNi0wNy0wOSAxNjo1Njo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEJldHRlciBwYWQgYWN0aXZhdGlvbiBjb2RlOiBSZXNldCB0aGUgY29sbGVjdCB2YWx1ZSB0b28gb24gcmVzeW5jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoYWN0aXZhdGVfcGFkcyksCgkgIChpdGVyYXRvcl9hY3RpdmF0ZV9mb2xkX3dpdGhfcmVzeW5jKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICBCZXR0ZXIgcGFkIGFjdGl2YXRpb24gY29kZTogUmVzZXQgdGhlIGNvbGxlY3QgdmFsdWUgdG9vIG9uIHJlc3luYy4KCSAgQWRkIHNvbWUgY29tbWVudHMuCgoyMDA2LTA3LTA5IDEzOjI2OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBVc2Ugc29tZSBtb3JlIG1hY3JvcyB3aGVyZSBpdCBtYWtlcyBzZW5zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KSwgKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1c2gpOgoJICBVc2Ugc29tZSBtb3JlIG1hY3JvcyB3aGVyZSBpdCBtYWtlcyBzZW5zZS4KCSAgQWxsb3cgcGFkIG1vZGUgc3dpdGNoaW5nIGluc3RlYWQgb2YgYXNzZXJ0aW5nLiBXaGVuIGEgcGFkCgkgIGlzIGFjdGl2YXRlZCBpbiBvbmUgbW9kZSBhbmQgd2UgYWN0aXZhdGUgaXQgaW4gYW5vdGhlciwKCSAgZGVhY3RpdmF0ZSBpdCBmaXJzdCBiZWZvcmUgYWN0aXZhdGluZyBpdCBpbiBhIGRpZmZlcmVudCBtb2RlLgoJICBGaXhlcyAjMzI5MTk4LgoKMjAwNi0wNy0wOCAxMzoyMjozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jIChtYWluKTogSGFuZGxlIGVyciA9PSBOVUxMLiBnc3QvZ3N0LmMgKGluaXRfcG9zdCwgZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpIChlbnN1cmVfY3VycmVudF9yZWdpc3RyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA3LTA4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYyAobWFpbik6IEhhbmRsZSBlcnIgPT0gTlVMTC4KCSAgKiBnc3QvZ3N0LmMgKGluaXRfcG9zdCwgZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnkpCgkgIChlbnN1cmVfY3VycmVudF9yZWdpc3RyeV9mb3JraW5nKQoJICAoZW5zdXJlX2N1cnJlbnRfcmVnaXN0cnlfbm9uZm9ya2luZyk6IFJlZHVjZSAjaWZkZWYgcmF0bmVzdCBieQoJICBmYWN0b3Jpbmcgb3V0IHRoZSByZWdpc3RyeSBzY2FubmluZyBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9ucy4gRG9uJ3QKCSAgZm9yayBmb3IgdGhlIHJlc2NhbiBpcyBHU1RfUkVHSVNUUllfRk9SSz1ubzsgdXNlZnVsIGluIGRlYnVnZ2luZy4KCSAgQmV0dGVyIGVudmlyb25tZW50IHZhciBuYW1lL2ludGVyZmFjZSBzdWdnZXN0aW9ucyBhY2NlcHRlZC4KCjIwMDYtMDctMDcgMTc6MTY6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IFJhbmRvbSBtaWNyby1vcHRpbWlzYXRpb246IGRvbid0IHVzZSBhIGhhc2ggdGFibGUgd2l0aCBzdHJpbmdzIGFzIGtleXMgYW5kIHRoZSB1c3VhbCBzdHJkdXAvc3RyY21wIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9zZXRfbmFtZV9kZWZhdWx0KSwKCSAgKGdzdF9vYmplY3Rfc2V0X25hbWUpOgoJICBSYW5kb20gbWljcm8tb3B0aW1pc2F0aW9uOiBkb24ndCB1c2UgYSBoYXNoIHRhYmxlCgkgIHdpdGggc3RyaW5ncyBhcyBrZXlzIGFuZCB0aGUgdXN1YWwgc3RyZHVwL3N0cmNtcAoJICBpbnZvbHZlZCwgYnV0IHJhdGhlciBqdXN0IHVzZSB0aGUgR1F1YXJrIG9mIHRoZQoJICB0eXBlIG5hbWUgYXMga2V5LCBzaW5jZSBpdCBuZWVkcyB0byBiZSBsb29rZWQgdXAKCSAgYW55d2F5IHRvIGdldCB0aGUgdHlwZSBuYW1lIHN0cmluZy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCB2YXJpb3VzIGxlYWtzLgoKMjAwNi0wNy0wNyAxNTo0MjowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogQ2FuJ3QgdXNlIEdQT0lOVEVSX1RPX0lOVCBhbmQgR0lOVF9UT19QT0lOVEVSIHdpdGggR1R5cGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChjb21wYXJlX2ludGVyZmFjZSksIChnc3RfYmluX2dldF9ieV9pbnRlcmZhY2UpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX2FsbF9ieV9pbnRlcmZhY2UpOgoJICBDYW4ndCB1c2UgR1BPSU5URVJfVE9fSU5UIGFuZCBHSU5UX1RPX1BPSU5URVIgd2l0aCBHVHlwZXMuCgkgIEdUeXBlcyBhcmUgZ3Vsb25ncyBhbmQgdGh1cyB0aGUgdG9wIDQgYnl0ZXMgbWlnaHQgYmUgY3V0CgkgIG9mZiBvbiBzb21lIHBsYXRmb3JtcyB3aGVuIGRvaW5nIEdQT0lOVEVSX1RPX0lOVCwgbGVhZGluZwoJICB0byBpbnZhbGlkIEdUeXBlcyBhbmQgYmFkIHRoaW5ncyBoYXBwZW5pbmcuCgkgIEFsc28gYWRkIGEgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSB0eXBlIHBhc3NlZCBpbiBpcyByZWFsbHkKCSAgYW4gaW50ZXJmYWNlIHR5cGUuCgoyMDA2LTA3LTA3IDA5OjQ3OjE5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgLmN2c2lnbm9yZTogSWdub3JlIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIC5jdnNpZ25vcmU6CgkgIElnbm9yZSBtb3JlLgoKMjAwNi0wNy0wNyAwOTowOToxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1ha2UgZ3N0LWVsZW1lbnQtY2hlY2stJFZFUlNJT04ubTQgY2FsbCBnc3QtaW5zcGVjdC0kVkVSU0lPTiBpbnN0ZWFkIG9mIHRoZSB1bnZlcnNpb25lZCBnc3QtaW5zcGVjdCAoIzMyNDE3NiwgIzE2ODY1OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QtZWxlbWVudC1jaGVjay5tNDoKCSAgKiBnc3QtZWxlbWVudC1jaGVjay5tNC5pbjoKCSAgTWFrZSBnc3QtZWxlbWVudC1jaGVjay0kVkVSU0lPTi5tNCBjYWxsIGdzdC1pbnNwZWN0LSRWRVJTSU9OCgkgIGluc3RlYWQgb2YgdGhlIHVudmVyc2lvbmVkIGdzdC1pbnNwZWN0ICgjMzI0MTc2LCAjMTY4NjU5KS4KCjIwMDYtMDctMDYgMTY6MTc6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWVzc2FnZS5oOiBVc2UgYSB2YWxpZCBpbnQgZm9yIHRoZSBfTUVTU0FHRV9BTlkgZW51bSB2YWx1ZSB0byBhdm9pZCBjb21waWxlciB3YXJuaW5ncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgVXNlIGEgdmFsaWQgaW50IGZvciB0aGUgX01FU1NBR0VfQU5ZIGVudW0gdmFsdWUgdG8gYXZvaWQgY29tcGlsZXIKCSAgd2FybmluZ3MuCgoyMDA2LTA3LTA2IDE1OjQ2OjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVwZGF0ZSBkb2NzLiBibG9ja3NpemUgPT0gMCBub3cgbWVhbnMgdGhlIGRlZmF1bHQgYmxvY2tzaXplIHdoZW4gd29ya2luZyBpbiBwdXNoIGJhc2VkIG1vZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLCAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoZWNrX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfcGFkX2NoZWNrX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpOgoJICBVcGRhdGUgZG9jcy4KCSAgYmxvY2tzaXplID09IDAgbm93IG1lYW5zIHRoZSBkZWZhdWx0IGJsb2Nrc2l6ZSB3aGVuIHdvcmtpbmcgaW4gcHVzaAoJICBiYXNlZCBtb2RlLgoJICBSZW1vdmUgc29tZSBwb2ludGxlc3MgYXNzZXJ0cyBpbiBfd2FpdCBmdW5jdGlvbi4KCSAgRml4IG9mZnNldC9sZW5ndGggY2FsY3VsYXRpb25zIGFuZCBFT1MgaGFuZGxpbmcuIFdlIGNhbiBub3cgcHVsbCAwCgkgIGJ5dGVzIGFzIHdlbGwsIHdoaWNoIGlzIGFsbG93ZWQuCgkgIHVzZSBfY2hlY2tfZ2V0X3JhbmdlKCkgdG8gZGVjaWRlIGlmIHdlIGNhbiBvcGVyYXRlIGluIF9wdWxsIGJhc2VkCgkgIG1vZGUuCgkgIEZpeCByZWZjb3VudGluZyBsZWFrIHdoZW4gY2hlY2tfZ2V0X3JhbmdlIGZ1bmN0aW9uIHdhcyBub3QKCSAgaW1wbGVtZW50ZWQuCgkgIEFQSSBHc3RCYXNlU3JjOjpibG9ja3NpemUgcmFuZ2UgY2FuIGJlIDAgdG9vIG5vdyAoZGVmYXVsdCkKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChmaWxlc3JjX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgdG8gdGVzdCBfZ2V0X3JhbmdlKCkgYmVoYXZpb3VyLgoKMjAwNi0wNy0wNiAxNToyMTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogTG90cyBvZiBjb21tZW50cyBhbmQgZG9jcyBhZGRlZCB0byB0aGUgcGFkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jaGFpbl91bmNoZWNrZWQpLCAoZ3N0X3BhZF9jaGFpbiksCgkgIChnc3RfcGFkX3B1c2gpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBMb3RzIG9mIGNvbW1lbnRzIGFuZCBkb2NzIGFkZGVkIHRvIHRoZSBwYWQgZnVuY3Rpb25zLgoJICBGbGVzaCBvdXQgdGhlIGV4cGVjdGVkIGJlaGF2aW91ciBvZiB0aGUgZ2V0X3JhbmdlKCkgZnVuY3Rpb25zLgoKMjAwNi0wNy0wNiAwOToyMTowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZSBjb21tYSBhdCBlbmQgb2YgZW51bWVyYXRvciBsaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICBSZW1vdmUgY29tbWEgYXQgZW5kIG9mIGVudW1lcmF0b3IgbGlzdC4KCjIwMDYtMDctMDUgMTk6NTY6MDggKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGRhdGFwcm90b2NvbC5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYnNndHJlYW1lci5kZWY6CgkgIEFkZCBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zLgoKMjAwNi0wNy0wNSAxODoyMDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBBZGQgc29tZSBtb3JlIGRvY3MgaGVyZSBhbmQgdGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiAoZ3N0X3B1c2hfc3JjX2NoZWNrX2dldF9yYW5nZSk6CgkgIEFkZCBzb21lIG1vcmUgZG9jcyBoZXJlIGFuZCB0aGVyZS4KCjIwMDYtMDctMDUgMTg6MTg6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFdoZW4gb3BlcmF0aW5nIGluIHB1bGwgbW9kZSB1cGRhdGUgdGhlIG9mZnNldCBzbyB0aGF0IHdlIHJlYWQgc2VxdWVudGlhbGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFdoZW4gb3BlcmF0aW5nIGluIHB1bGwgbW9kZSB1cGRhdGUgdGhlIG9mZnNldCBzbyB0aGF0IHdlCgkgIHJlYWQgc2VxdWVudGlhbGx5LgoKMjAwNi0wNy0wNSAxODoxNzowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBBdm9pZCBzdHJkdXAuICh3aWxsIGhhcHBlbiBpbiBsaWJ4bWwsIGJ1dCBoZXkhKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKHJlYWRfc3RyaW5nKToKCSAgQXZvaWQgc3RyZHVwLiAod2lsbCBoYXBwZW4gaW4gbGlieG1sLCBidXQgaGV5ISkKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgIEFkZCBzb21lIG1vcmUgZG9jcy4KCjIwMDYtMDctMDUgMTc6MDk6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBObyBwb2ludCBpbiBjaGVja2luZyBpZiB0aGUgc2l6ZSBvZiB0aGUgc3ViYnVmZmVyID4gMCwgdGhlIGNvZGUgaGFuZGxlcyBpdCBjb3JyZWNsdHkgYXMgZGVtb25zdHJhdGVkIGJ5IHVuaXQgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfY29weSksIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9idWZmZXJfc3VpdGUpOgoJICBObyBwb2ludCBpbiBjaGVja2luZyBpZiB0aGUgc2l6ZSBvZiB0aGUgc3ViYnVmZmVyID4gMCwgdGhlCgkgIGNvZGUgaGFuZGxlcyBpdCBjb3JyZWNsdHkgYXMgZGVtb25zdHJhdGVkIGJ5IHVuaXQgdGVzdC4KCSAgQWxzbyBhZGQgYSB1bml0IHRlc3QgZm9yIHRoZSB6ZXJvIHNpemVkIF9uZXdfYW5kX2FsbG9jIGFuZAoJICBfY29weS4gRml4ZXMgIzM0NjY2My4KCjIwMDYtMDctMDUgMDg6MTY6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogTWFrZSBzdXJlIHRoZSBidWZmZXIgd2UgcGFzcyB0byB0cmFuc2Zvcm1faXAgaGFzIGEgcmVmY291bnQgb2YgMSBhbmQgdGh1cyBpcyB3cml0YWIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBNYWtlIHN1cmUgdGhlIGJ1ZmZlciB3ZSBwYXNzIHRvIHRyYW5zZm9ybV9pcCBoYXMgYSByZWZjb3VudCBvZgoJICAxIGFuZCB0aHVzIGlzIHdyaXRhYmxlLiBGaXhlcyAjMzQzMTk2CgoyMDA2LTA3LTA0IDA5OjAxOjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy4qOiBBZGQgInNlcXVlbnRpYWwiIHByb3BlcnR5LCBvZmYgYnkgZGVmYXVsdCwgdG8gdXNlIG1hZHZpc2UgYW5kIGhpbnQgdG8gdGhlIGtlcm5lbCB0aGF0IC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NyY19pbml0KSwgKGdzdF9maWxlX3NyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZpbGVfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmlsZV9zcmNfbWFwX3JlZ2lvbik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIEFkZCAic2VxdWVudGlhbCIgcHJvcGVydHksIG9mZiBieSBkZWZhdWx0LCB0byB1c2UgbWFkdmlzZSBhbmQgaGludAoJICB0byB0aGUga2VybmVsIHRoYXQgc2VxdWVudGlhbCBhY2Nlc3MgaXMgZGVzaXJlZC4KCSAgVG91Y2ggYWxsIHJldHJpZXZlZCBwYWdlcyBieSBkZWZhdWx0IHRvIGVuc3VyZSB0aGV5IGFyZSBwdWxsZWQKCSAgaW50byBtZW1vcnkuIChDbG9zZXMgIzM0NTcyMCkKCjIwMDYtMDctMDMgMTc6NDQ6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNtYWxsIGRvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1keW5hbWljLnR4dDoKCSAgU21hbGwgZG9jcyB1cGRhdGVzLgoKMjAwNi0wNy0wMyAxNjo1Nzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFVzZSBHU2xpY2Ugd2hlbiB0aGUgZ2xpYiB3ZSBidWlsZCBhZ2FpbnN0IGlzID49IDIuMTAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX25ld19lbXB0eSksIChfZ3N0X2NhcHNfZnJlZSksCgkgIChnc3RfY2Fwc191bnJlZiksIChnc3Rfc3RhdGljX2NhcHNfZ2V0KSwKCSAgKGdzdF9jYXBzX2FwcGVuZF9zdHJ1Y3R1cmUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyksIChfZ3N0X2Nsb2NrX2lkX2ZyZWUpOgoJICBVc2UgR1NsaWNlIHdoZW4gdGhlIGdsaWIgd2UgYnVpbGQgYWdhaW5zdCBpcyA+PSAyLjEwCgoyMDA2LTA3LTAzIDE2OjQ2OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogU21hbGwgY2xlYW51cCBpbiBwYWQgYWN0aXZhdGlvbiBjb2RlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFNtYWxsIGNsZWFudXAgaW4gcGFkIGFjdGl2YXRpb24gY29kZS4KCjIwMDYtMDctMDMgMTQ6MTQ6NDggKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgVGhlIGF0dGFjaGVkIHBhdGNoIHdpbGwgbWFrZSB0aGUgaW5jbHVzaW9uIG9mIGdldHRleHQuaCB1bmNvbmRpdGlvbmFsIGluIGdzdC9nc3QtaTE4bi1hcHAuaCBhbmQgZ3N0L2dzdC1pMThuLWxpYi5oLCBhLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGV0ZXIgS2plbGxlcnN0ZWR0IDxwa2ogYXQgYXhpcyBkb3QgY29tPgoJICAqIGdzdC9nc3QtaTE4bi1hcHAuaDoKCSAgKiBnc3QvZ3N0LWkxOG4tbGliLmg6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3NpZ25hbF9pbmZvKToKCSAgVGhlIGF0dGFjaGVkIHBhdGNoIHdpbGwgbWFrZSB0aGUgaW5jbHVzaW9uIG9mIGdldHRleHQuaCB1bmNvbmRpdGlvbmFsIGluCgkgIGdzdC9nc3QtaTE4bi1hcHAuaCBhbmQgZ3N0L2dzdC1pMThuLWxpYi5oLCBhbmQgaXQgd2lsbCByZW1vdmUgdGhlIGluY2x1c2lvbiBvZgoJICBsaWJpbnRsLmggaW4gdG9vbHMvZ3N0LWluc3BlY3QuYy4KCSAgVGhpcyBhbGxvd3MgdXNlIG9mIC0tZGlzYWJsZS1ubHMgYWdhaW4gYW5kIGZpeGVzICMzNDQ2NDIuCgoyMDA2LTA3LTAzIDExOjEwOjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgZml4IGxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBsZWFrCgoyMDA2LTA3LTAzIDEwOjMwOjQ5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXBsZW1lbnQgcGFkIGJsb2NraW5nIG9uIGV2ZW50cyBhY2NvcmRpbmcgdG8gcGFydC1ibG9jay50eHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGhhbmRsZV9wYWRfYmxvY2spLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KToKCSAgSW1wbGVtZW50IHBhZCBibG9ja2luZyBvbiBldmVudHMgYWNjb3JkaW5nIHRvIHBhcnQtYmxvY2sudHh0LgoJICBNb3JlIGNvbW1lbnRzIG9uIGJlaGF2aW91ci4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKHRlc3RfZXZlbnQpOgoJICBTZW5kIGV2ZW50IHRvIHBlZXIgcGFkIG9mIGJsb2NrZWQgcGFkIChlbHNlIGl0IHdpbGwgYmxvY2spLgoKMjAwNi0wNy0wMiAyMzoyMjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiBpZiB3ZSBnZXQgdGhlIHdyb25nIG1lc3NhZ2UsIGdpdmUgdXMgdGhlIHR5cGVzIGFzIHN0cmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX21lc3NhZ2VfZXJyb3IpLAoJICAoZ3N0X2NoZWNrX3J1bl9zdWl0ZSk6CgkgIGlmIHdlIGdldCB0aGUgd3JvbmcgbWVzc2FnZSwgZ2l2ZSB1cyB0aGUgdHlwZXMgYXMgc3RyaW5nCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZV9zcmNfc3RhcnQpOgoJICBGaXggYSB0cmFuc2xhdGFibGUKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9maWxlc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCBhIHRlc3QgZm9yIHRyeWluZyB0byBvcGVuIGEgbm9uLWV4aXN0aW5nIGZpbGUKCjIwMDYtMDctMDIgMjI6NDQ6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIG1hY3JvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1hY3JvcwoKMjAwNi0wNy0wMiAyMjoyODozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgcmVtb3ZlIGRvdWJsZSB2YXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkb3VibGUgdmFyCgoyMDA2LTA3LTAyIDIyOjI3OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgIGNsZWFuIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNsZWFuIG1vcmUKCjIwMDYtMDctMDIgMjI6MjA6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvLmdpdGlnbm9yZToKCSogZG9jcy9saWJzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9nc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svbGlicy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9oZWxsb3dvcmxkLy5naXRpZ25vcmU6CgkqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9leGFtcGxlcy94bWwvLmdpdGlnbm9yZToKCSAgbW9hcCBpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vYXAgaWdub3JlCgoyMDA2LTA3LTAyIDIyOjE3OjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogYWRkIGEgdGVzdCBmb3IgYWRkaW5nIHNlbGYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2Jpbl9zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZm9yIGFkZGluZyBzZWxmCgoyMDA2LTA3LTAyIDIyOjA1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmg6IGFkZCBzb21lIGFzc2VydF8gYXMgYWxpYXMgZm9yIGZhaWxfdW5sZXNzXyoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIHNvbWUgYXNzZXJ0XyBhcyBhbGlhcyBmb3IgZmFpbF91bmxlc3NfKgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9zdWl0ZSk6CgkgIGluY3JlYXNlIHRlc3QgY292ZXJhZ2UKCjIwMDYtMDctMDIgMjE6NTQ6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IGluY2x1ZGUgbGNvdi5tYWsgZm9yIGxjb3YgY292ZXJhZ2UgZ2VuZXJhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgaW5jbHVkZSBsY292Lm1hayBmb3IgbGNvdiBjb3ZlcmFnZSBnZW5lcmF0aW9uCgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgIGFkZCB0byBDTEVBTkZJTEVTCgoyMDA2LTA3LTAyIDIxOjUyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIHdoaXRlc3BhY2UvZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlL2RvYyBmaXhlcwoKMjAwNi0wNy0wMiAxNjoyNzoxNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5jdnNpZ25vcmU6IG1vYXBpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvLmN2c2lnbm9yZToKCSAgbW9hcGluZwoKMjAwNi0wNy0wMiAxNDozOToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGRvbid0IHNldCBDRkxBR1MgYW5kIGZyaWVuZHMgZm9yIGdjb3YsIGRvbmUgZnJvbSBHU1RfR0NPViBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBkb24ndCBzZXQgQ0ZMQUdTIGFuZCBmcmllbmRzIGZvciBnY292LCBkb25lIGZyb20gR1NUX0dDT1Ygbm93CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGNsZWFuIHVwIGdjb3YgZmlsZXMKCjIwMDYtMDctMDIgMTQ6Mzc6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNhcHMuYzogcmVtb3ZlIGdzdF9jYXBzX3NpbXBsaWZ5OyBpdCB3YXMgbm90IGRlY2xhcmVkIGFuZCBub3QgdXNlZCBhbmQgZGVwcmVjYXRlZCBpbiAwLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3JlbW92ZV9hbmRfZ2V0X3N0cnVjdHVyZSk6CgkgIHJlbW92ZSBnc3RfY2Fwc19zaW1wbGlmeTsgaXQgd2FzIG5vdCBkZWNsYXJlZCBhbmQgbm90IHVzZWQKCSAgYW5kIGRlcHJlY2F0ZWQgaW4gMC44CgoyMDA2LTA3LTAyIDE0OjA1OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogZG9uJ3QgcHV0IGVtcHR5IHBhdGhzIG9uIFBZVEhPTlBBVEgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBkb24ndCBwdXQgZW1wdHkgcGF0aHMgb24gUFlUSE9OUEFUSAoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHJlbW92ZSBzb21lIHN5bWJvbHMgdGhhdCBhcmUgbm90IHRoZXJlCgoyMDA2LTA3LTAyIDEyOjU3OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RjYXBzLmM6CgkgIHVuYnJlYWsgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW5icmVhayB0ZXN0CgoyMDA2LTA3LTAyIDEyOjU0OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjYXBzLmM6IHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2NvbXBhcmVfc3RydWN0dXJlcyk6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgYWRkIG1vcmUgdGVzdHMKCjIwMDYtMDctMDIgMTI6NTI6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0Ly5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNi0wNy0wMiAwOTowNDo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06IGJ1aWxkIGRhdGFwcm90b2NvbCB0ZXN0IGJ5IGxpbmtpbmcgdG8gdGhlIGxpYiwgaW5zdGVhZCBvZiBjb21waWxpbmcgdGhlIHNvdXJjZSwgc28uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICBidWlsZCBkYXRhcHJvdG9jb2wgdGVzdCBieSBsaW5raW5nIHRvIHRoZSBsaWIsIGluc3RlYWQgb2YKCSAgY29tcGlsaW5nIHRoZSBzb3VyY2UsIHNvIHdlIGdldCBjb3ZlcmFnZQoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2ZpbGVzcmMuYzogKGV2ZW50X2Z1bmMpLCAoc2V0dXBfZmlsZXNyYyksCgkgIChjbGVhbnVwX2ZpbGVzcmMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZmlsZXNyY19zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZm9yIGZpbGVzcmMKCjIwMDYtMDctMDIgMDg6MjY6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCjIwMDYtMDctMDIgMDA6NDA6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiBQdXNoIGNvdmVyYWdlIGZyb20gNTkuMDQlIHRvIDcwLjAwJQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgUHVzaCBjb3ZlcmFnZSBmcm9tIDU5LjA0JSB0byA3MC4wMCUKCjIwMDYtMDctMDIgMDA6Mzk6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvYmFzZS8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9jaGVjay8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvLmdpdGlnbm9yZToKCSAgbW9hcCBpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vYXAgaWdub3JlCgoyMDA2LTA3LTAyIDAwOjM4OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSAgbW9hcCBpZ25vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vYXAgaWdub3JlCgoyMDA2LTA3LTAyIDAwOjMzOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOiBnc3QtaW5zcGVjdCBldmVyeSBlbGVtZW50OyB0aGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBhbHNvIGdldCBjb3ZlcmFnZSBvbiBlbGVtZW50J3MgZ2V0L3NldCBmdS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZ3N0LWluc3BlY3QgZXZlcnkgZWxlbWVudDsgdGhpcyBtYWtlcyBzdXJlIHRoYXQgd2UgYWxzbyBnZXQKCSAgY292ZXJhZ2Ugb24gZWxlbWVudCdzIGdldC9zZXQgZnVuY3Rpb25zCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N0cnVjdHVyZV9zdWl0ZSk6CgkgIFB1c2ggY292ZXJhZ2UgZnJvbSA1OS4wNCUgdG8gNzAuMDAlCgoyMDA2LTA3LTAxIDIzOjI2OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogc2V0IENGTEFHUyBhbmQgZnJpZW5kcyB0byAtTzAgaWYgZ2NvdiBpcyBiZWluZyB1c2VkIGFkZCBHQ09WIExJQlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBzZXQgQ0ZMQUdTIGFuZCBmcmllbmRzIHRvIC1PMCBpZiBnY292IGlzIGJlaW5nIHVzZWQKCSAgYWRkIEdDT1YgTElCUwoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIGFkZCBtYWtlZmlsZSBydWxlcyB0byBnZW5lcmF0ZSBnY292IGRhdGEgYW5kIGNsZWFuIHVwCgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBhIGNvdmVyYWdlIHRhcmdldCB0aGF0IGdlbmVyYXRlcyBhbiBodG1sIG92ZXJ2aWV3CgkgIG9mIGNvdmVyYWdlIGRhdGEKCjIwMDYtMDctMDEgMjM6MTk6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgZml4IGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzIGJ1aWxkCgoyMDA2LTA3LTAxIDIwOjU2OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogdXNlIHRoZSBuZXcgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmRzcmMuYzoKCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKGdzdF9zaW5rc19zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2Vfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zdWl0ZSk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYWRhcHRlci5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvYmFzZXNyYy5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29sbGVjdHBhZHMuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOiAoZ3N0X2RwX3N1aXRlKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2dzdG5ldGNsaWVudGNsb2NrLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzogKGxpYnNhYmlfc3VpdGUpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvdHlwZWZpbmRoZWxwZXIuYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zdHJlc3MuYzogKHN0cmVzc19zdWl0ZSk6CgkgIHVzZSB0aGUgbmV3IG1hY3JvCgoyMDA2LTA3LTAxIDIwOjU0OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLio6IGNyZWF0ZSBhIG1hY3JvIGFuZCBmdW5jdGlvbiBzbyB0aGF0IHRoZSBzaW1wbGUgdW5pdCB0ZXN0IGNhc2UgY2FuIGJlIGp1c3Qgb25lIG1hY3JvIHRvIGNyZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX3J1bl9zdWl0ZSk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgY3JlYXRlIGEgbWFjcm8gYW5kIGZ1bmN0aW9uIHNvIHRoYXQgdGhlIHNpbXBsZSB1bml0IHRlc3QKCSAgY2FzZSBjYW4gYmUganVzdCBvbmUgbWFjcm8gdG8gY3JlYXRlIG1haW4oKQoKMjAwNi0wNi0zMCAxMzoxNzo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEZpeCBkZXNlcmlhbGlzYXRpb24gZnJvbSBYTUwuIFNldCBwYXJlbnQgbWFudWFsbHkgaW5zdGVhZCBvZiB1c2luZyBnc3RfYmluX2FkZCgpLCBzaW5jZSBnc3RfYmluX2FkZCgpIHdpbGwgdW5saS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Jlc3RvcmVfdGh5c2VsZik6CgkgICogZ3N0L2dzdHhtbC5jOiAoZ3N0X3htbF9tYWtlX2VsZW1lbnQpOgoJICBGaXggZGVzZXJpYWxpc2F0aW9uIGZyb20gWE1MLiBTZXQgcGFyZW50IG1hbnVhbGx5CgkgIGluc3RlYWQgb2YgdXNpbmcgZ3N0X2Jpbl9hZGQoKSwgc2luY2UgZ3N0X2Jpbl9hZGQoKQoJICB3aWxsIHVubGluayBhbGwgcGFkcyBvZiB0aGUgZWxlbWVudCBiZWluZyBhZGRlZC4KCSAgRml4ZXMgIzM0MTY2Ny4KCjIwMDYtMDYtMjggMTU6MTk6MDggKzAwMDAgIFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqQGF4aXMuY29tPgoKCSAgZ3N0L2dzdC5jOiBGaXggbWlzc2luZyBnX3N0cmR1cCgpIGFuZCBkb3VibGUgZnJlZSB3aGVuIHVzaW5nIHRoZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBldGVyIEtqZWxsZXJzdGVkdCA8cGtqIGF0IGF4aXMgY29tPgoJICAqIGdzdC9nc3QuYzogKHByZXBhcmVfZm9yX2xvYWRfcGx1Z2luX2Z1bmMpLCAoc3BsaXRfYW5kX2l0ZXJhdGUpOgoJICBGaXggbWlzc2luZyBnX3N0cmR1cCgpIGFuZCBkb3VibGUgZnJlZSB3aGVuIHVzaW5nIHRoZQoJICAtLWdzdC1wbHVnaW4tbG9hZCBjb21tYW5kIGxpbmUgb3B0aW9uICgjMzQ2MDk3KS4KCjIwMDYtMDYtMjMgMTM6MTY6NDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBQcm9tb3RlIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgaW4gZXhhbXBsZSBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICBQcm9tb3RlIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgaW4gZXhhbXBsZSBpbiBkb2NzLgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgVXNlIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgaGVyZSB0b28gKCMzNDI1MDMpLgoKMjAwNi0wNi0yMyAxMDozMDowOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBGaXggYnVmZmVyIHByb2JlIGV4YW1wbGUgY29tcGlsYXRpb24gaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCBidWZmZXIgcHJvYmUgZXhhbXBsZSBjb21waWxhdGlvbiBpbgoJICBBRE0gKCMzNDU3MDgpLgoKMjAwNi0wNi0yMiAxNzowOToxMyArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFdlIG5lZWQgdG8gZGVhY3RpdmF0ZSBzcmMgcGFkcyBmaXJzdCBhbmQgdGhlbiBzaW5rIHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgV2UgbmVlZCB0byBkZWFjdGl2YXRlIHNyYyBwYWRzIGZpcnN0IGFuZCB0aGVuIHNpbmsgcGFkcy4KCSAgVGhlIHJlYXNvbiBpcyB0aGUgc3JjIHBhZHMgbWlnaHQgYmUgYmxvY2tpbmcgd2hpbGUgaG9sZGluZyB0aGUgc3RyZWFtaW5nCgkgIGxvY2ssIHNvIHdlIG5lZWQgdG8gZGVhY3RpdmF0ZSB0aGVtIGZpcnN0IHNvIHRoYXQgZGVhY3RpdmF0aW5nIHRoZSBzaW5rCgkgIHBhZHMgZG9lc24ndCBibG9jayAoc2luY2UgaXQgd2lsbCByZXF1aXJlIHRoZSBzdHJlYW1pbmcgbG9jaykuCgoyMDA2LTA2LTIyIDE1OjEyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZvcmdvdCB0byByZW1vdmUgdHdvIHVubmVlZGVkIHVucmVmcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRm9yZ290IHRvIHJlbW92ZSB0d28gdW5uZWVkZWQgdW5yZWZzLgoJICBTaW1wbGlmeSBhIGNoZWNrIF9pc19lcXVhbCBhbGxyZWFkeSBjaGVja3MgdGhlIG9idmlvdXMgY2FzZS4KCjIwMDYtMDYtMjIgMTQ6MDk6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWJsb2NrLnR4dDogU29tZSBkb2NzIGFib3V0IHdoYXQgcGFkX2Jsb2NrIHNob3VsZCBkby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ibG9jay50eHQ6CgkgIFNvbWUgZG9jcyBhYm91dCB3aGF0IHBhZF9ibG9jayBzaG91bGQgZG8uCgoyMDA2LTA2LTIyIDEzOjUxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IGNyYXNoZXIgd2hlbiBwYXNzZWQgTlVMTC4gRG9jIGNsYXJpZmljYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZXBsYWNlKToKCSAgRml4IGNyYXNoZXIgd2hlbiBwYXNzZWQgTlVMTC4gRG9jIGNsYXJpZmljYXRpb24uCgkgIE9wdGltaXplIGZvciB0aGUgdHJpdmlhbCBjYXNlLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGNsZWFudXBzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGNsZWFudXAuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgRG9uJ3QgdXNlIHNpbGx5IGdzdF9wYWRfZ2V0X25lZ290aWF0ZWRfY2FwcywgR1NUX1BBRF9DQVBTCgkgIGlzIHdoYXQgd2UgbmVlZCBhbmQgaXQgYXZvaWRzIGEgd2hvbGUgbG90IG9mIHJlZHVuZGFudAoJICByZWZjb3VudCBvcGVyYXRpb25zLgoKMjAwNi0wNi0yMiAwODo1Mzo0MCArMDAwMCAgUGhpbGlwIErDpGdlbnN0ZWR0IDxwaGlsaXBAbHlzYXRvci5saXUuc2U+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDogRml4ICdFbWJlZGRpbmcgc3RhdGljIGVsZW1lbnRzJyBzZWN0aW9uIHRvIHVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBoaWxpcCBKw6RnZW5zdGVkdCAgPHBoaWxpcCBhdCBseXNhdG9yIGxpdSBzZT4KCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgRml4ICdFbWJlZGRpbmcgc3RhdGljIGVsZW1lbnRzJyBzZWN0aW9uIHRvIHVzZQoJICBHU1RfUExVR0lOX0RFRklORV9TVEFUSUMgKCMzNDU2MDcpLgoKMjAwNi0wNi0yMSAxMToxMjoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9zaW1wbGUtbGF1bmNoLWxpbmVzLmM6IEF0dGVtcHQgdG8gJ2ZpeCcgc3B1cmlvdXNseSBmYWlsaW5nIHRlc3QgY2FzZTogaXQgc2VlbXMgbGlrZSB0aGUgdGltZW91dC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOiAodGVzdF9zdG9wX2Zyb21fYXBwKToKCSAgQXR0ZW1wdCB0byAnZml4JyBzcHVyaW91c2x5IGZhaWxpbmcgdGVzdCBjYXNlOiBpdCBzZWVtcyBsaWtlIHRoZQoJICB0aW1lb3V0IG9mIGhhbGYgYSBzZWNvbmQgaXMgc2ltcGx5IHRvbyBzbWFsbCB3aGVuIHRoZSBzeXN0ZW0gaXMgdW5kZXIKCSAgbG9hZCBvdGhlcndpc2UsIGFuZCB0aGUgdGltZW91dCBkb2Vzbid0IHJlYWxseSBzZWVtIHRvIHNlcnZlIGFueQoJICBwYXJ0aWN1bGFyIHB1cnBvc2UgaGVyZS4gR2l2ZSB0aGUgcGlwZWxpbmUgYSBmZXcgc2Vjb25kcyB0byBwcmVyb2xsCgkgIGZpcnN0LCBhbmQgdGhlbiBnaXZlIGl0IGFub3RoZXIgaGFsZiBhIHNlY29uZCB0byBnbyBmcm9tIFBBVVNFRCB0bwoJICBQTEFZSU5HIGFuZCBtYXJzaGFsIHRoZSBtZXNzYWdlIGludG8gdGhlIG1haW4gdGhyZWFkLgoKMjAwNi0wNi0yMSAxMDoxNDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1mZWVkYmFjay1tLm06IERvbid0IG9ubHkgdXNlIHVudmVyc2lvbmVkIHRvb2xzLCB0cnkgdmVyc2lvbmVkIHRvb2xzIGFzIHdlbGwgKCMzNDUwODYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtZmVlZGJhY2stbS5tOgoJICBEb24ndCBvbmx5IHVzZSB1bnZlcnNpb25lZCB0b29scywgdHJ5IHZlcnNpb25lZCB0b29scyBhcyB3ZWxsCgkgICgjMzQ1MDg2KS4KCjIwMDYtMDYtMjEgMTA6MDE6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBzb21lIHR5cG9zLCBtYWtlIGRvY3MgbW9yZSBleHBsaWNpdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgRml4IHNvbWUgdHlwb3MsIG1ha2UgZG9jcyBtb3JlIGV4cGxpY2l0LgoKMjAwNi0wNi0yMCAwODo0MDo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGRlZCBzb21lIG1vcmUgZ2hvc3RwYWQgdGVzdHMsIG1haW5seSBibG9ja2luZyBhbmQgcHJvYmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKGJsb2NrX2NhbGxiYWNrKSwKCSAgKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9naG9zdF9wYWRfc3VpdGUpOgoJICBBZGRlZCBzb21lIG1vcmUgZ2hvc3RwYWQgdGVzdHMsIG1haW5seSBibG9ja2luZwoJICBhbmQgcHJvYmVzLgoKMjAwNi0wNi0xOSAwODo1Njo0OCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGxhdGVzdCB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsYXRlc3QgdXBkYXRlcwoKMjAwNi0wNi0xNiAxNjoyODozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuKjogQ2hlY2sgaWYgd2UgY2FuIHNlZWsgaW4gdGhlIGZpbGUgaW5zdGVhZCBvZiBhc3N1bWluZyB3ZSBhbHdheXMgY2FuLiBQb3N0IGFuIGVycm9yIHdoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX29wZW5fZmlsZSksCgkgIChnc3RfZmlsZV9zaW5rX2Nsb3NlX2ZpbGUpLCAoZ3N0X2ZpbGVfc2lua19kb19zZWVrKSwKCSAgKGdzdF9maWxlX3NpbmtfZXZlbnQpLCAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSAgQ2hlY2sgaWYgd2UgY2FuIHNlZWsgaW4gdGhlIGZpbGUgaW5zdGVhZCBvZiBhc3N1bWluZwoJICB3ZSBhbHdheXMgY2FuLiBQb3N0IGFuIGVycm9yIHdoZW4gd2UgYXJlIGFza2VkIHRvIHNlZWsgaW4gYQoJICBub24tc2Vla2FibGUgZmlsZSAobGlrZSBhIGZpZm8pLiBGaXhlcyAjMzQzMzEyLgoJICBTb21lIGNsZWFudXBzLgoKMjAwNi0wNi0xNiAxNDozMTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogVW4tZ2FyYmxlIChmb3VyY2MpIGJpdCBpbiBmaWx0ZXJlZCBjYXBzIHNlY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgVW4tZ2FyYmxlIChmb3VyY2MpIGJpdCBpbiBmaWx0ZXJlZCBjYXBzIHNlY3Rpb24uCgoyMDA2LTA2LTE2IDA5OjM5OjU0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBEb24ndCBsZWFrIGJ1cyByZWZlcmVuY2UgaW4gc2FtcGxlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICAqIGRvY3MvbWFudWFsL2hpZ2hsZXZlbC1jb21wb25lbnRzLnhtbDoKCSAgRG9uJ3QgbGVhayBidXMgcmVmZXJlbmNlIGluIHNhbXBsZSBjb2RlLgoKMjAwNi0wNi0xNiAwODozMDo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGF1dG9nZW4uc2g6IEFkZCBkZWZhdWx0IGZvciBuZXcgLS1lbmFibGUtcGx1Z2luLWRvY3Mgc3dpdGNoLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOgoJICBBZGQgZGVmYXVsdCBmb3IgbmV3IC0tZW5hYmxlLXBsdWdpbi1kb2NzIHN3aXRjaC4KCSAgKiBjb25maWd1cmUuYWM6CgkgIFVzZSBuZXcgR1NUX1BMVUdJTl9ET0NTIG1hY3JvIHRvIGNoZWNrIGZvciBweXhtbCBldGMuCgkgIEZpeGVzICMzNDQwMzkuCgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgVXNlIG5ldyBFTkFCTEVfUExVR0lOX0RPQ1MgY29uZGl0aW9uYWwuCgoyMDA2LTA2LTE0IDEwOjM0OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNYWtlIGl0IGNsZWFyIHdpdGggYSBGSVhNRSBhbmQgYSByZWFsIGRlZmluZSB3aGF0IHRoZSAjaWYgMCBwcmV2aW91c2x5IGRpc2FibGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSksIChnc3RfYmluX3F1ZXJ5KToKCSAgTWFrZSBpdCBjbGVhciB3aXRoIGEgRklYTUUgYW5kIGEgcmVhbCBkZWZpbmUgd2hhdCB0aGUgI2lmIDAKCSAgcHJldmlvdXNseSBkaXNhYmxlZC4KCjIwMDYtMDYtMTQgMTA6MzE6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlLzogRG9uJ3QgcmFuZG9tbHkgYW5kIHNpbGVudGx5IHJlc2V0IGEgc2VnbWVudCB3aGVuIHRoZSBmb3JtYXQgY2hhbmdlcyBhcyB0aGlzIGlzIGEgYnVnIHNvbWV3aGVyZSB1cHN0cmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb25maWd1cmVfc2VnbWVudCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIERvbid0IHJhbmRvbWx5IGFuZCBzaWxlbnRseSByZXNldCBhIHNlZ21lbnQgd2hlbiB0aGUgZm9ybWF0CgkgIGNoYW5nZXMgYXMgdGhpcyBpcyBhIGJ1ZyBzb21ld2hlcmUgdXBzdHJlYW0uIEZpeGVzICMzMzAzNzkuCgoyMDA2LTA2LTE0IDA4OjI2OjUzICswMDAwICBXb3V0ZXIgUGFlc2VuIDx3b3V0ZXJAa2FuZ2Fyb290Lm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiBGaXggY29udHJvbGxpbmcgb2YgZmxvYXQgcHJvcGVydGllcyAoIzM0NDg0OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogV291dGVyIFBhZXNlbiAgPHdvdXRlciBhdCBrYW5nYXJvb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgRml4IGNvbnRyb2xsaW5nIG9mIGZsb2F0IHByb3BlcnRpZXMgKCMzNDQ4NDkpLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9jbGFzc19pbml0KSwgKEdTVF9TVEFSVF9URVNUKToKCSAgV2hpbGUgd2UncmUgYXQgaXQsIGFkZCBzb21lIGZsb2F0IHN0dWZmIHRvIHVuaXQgdGVzdC4KCjIwMDYtMDYtMTMgMTk6MjQ6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IGFkZCBhIGdkcCBpbWFnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL1JFQURNRToKCSAgKiBkb2NzL2ltYWdlcy9nZHAtaGVhZGVyLnN2ZzoKCSAgYWRkIGEgZ2RwIGltYWdlCgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9nZHAtaGVhZGVyLnBuZzoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIGFkZCBpdCB0byB0aGUgQVBJIGRvY3MKCSAgKiBkb2NzL21hbnVhbC9pbnRyby1tb3RpdmF0aW9uLnhtbDoKCSAgZml4IHR5cG8KCjIwMDYtMDYtMTMgMTY6NDE6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0LmM6IElmIHRoZSBmb3JrKCknZWQgY2hpbGQgcHJvY2VzcyBjYW4ndCB3cml0ZSB0aGUgdXBkYXRlZCByZWdpc3RyeSBjYWNoZSBmaWxlIHRvIGRpc2sgZm9yIHNvbWUgcmVhc29uLCBtYWtlIGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoc2Nhbl9hbmRfdXBkYXRlX3JlZ2lzdHJ5KSwgKGluaXRfcG9zdCk6CgkgIElmIHRoZSBmb3JrKCknZWQgY2hpbGQgcHJvY2VzcyBjYW4ndCB3cml0ZSB0aGUgdXBkYXRlZCByZWdpc3RyeSBjYWNoZQoJICBmaWxlIHRvIGRpc2sgZm9yIHNvbWUgcmVhc29uLCBtYWtlIGl0IGV4aXQgd2l0aCBhIGZhaWx1cmUgZXhpdCBjb2RlLAoJICBzbyB0aGF0IHRoZSBwYXJlbnQgY2FuIHRoZW4gcmUtc2NhbiB0aGUgcGx1Z2lucyBpdHNlbGYgYW5kIHVwZGF0ZSB0aGUKCSAgcmVnaXN0cnkgc3RydWN0dXJlcyBpbiBtZW1vcnkgYW5kIHdvcmsgd2l0aCB0aGF0IChyYXRoZXIgdGhhbiBmYWlsaW5nCgkgIHdoZW4gY3JlYXRpbmcgZWxlbWVudHMgYmVjYXVzZSBzZWVtaW5nbHkgbm8gcGx1Z2lucyBhcmUgYXZhaWxhYmxlKS4KCSAgUmVmYWN0b3IgcmVnaXN0cnkgc2Nhbm5pbmcgY29kZSBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciB0aGlzIGFuZAoJICBhbHNvIHNlcGFyYXRlIGZvcmsoKSBhbmQgbm9uLWZvcmsoKSBjb2RlIHBhdGhzLiBGaXhlcyAjMzQ0NzQ4LgoKMjAwNi0wNi0xMyAxNjoyNDo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBGaXggd3JvbmcgUGx1Z2luRGVzYy4gRml4ZXMgIzM0NDc1NS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCB3cm9uZyBQbHVnaW5EZXNjLiBGaXhlcyAjMzQ0NzU1LgoKMjAwNi0wNi0xMyAxMzozMDo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBGaXggc2lsbHkgYnVnIHRoYXQgcHJldmVudGVkIHVzIGZyb20gY3JlYXRpbmcgfi8uZ3N0cmVhbWVyLTAuMTAgYW5kIHdyaXRpbmcgdGhlIHJlZ2lzdHJ5IGluIG9uZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICBGaXggc2lsbHkgYnVnIHRoYXQgcHJldmVudGVkIHVzIGZyb20gY3JlYXRpbmcKCSAgfi8uZ3N0cmVhbWVyLTAuMTAgYW5kIHdyaXRpbmcgdGhlIHJlZ2lzdHJ5IGluIG9uZQoJICBnbyAodGhlIGZpcnN0IGNhbGwgdG8gZ19ta3N0ZW1wKCkgd291bGQgb3ZlcndyaXRlIHRoZQoJICBwbGFjZWhvbGRlciBpbiB0aGUgdGVtcGxhdGUgc3RyaW5nLCBzbyB0aGUgc2Vjb25kIGNhbGwKCSAgdG8gZ19ta3N0ZW1wKCkgYWZ0ZXIgY3JlYXRpbmcgdGhlIG1pc3NpbmcgZGlyZWN0b3J5CgkgIHdvdWxkIHRoZW4gZXJyb3Igb3V0IHdpdGggJ2ludmFsaWQgYXJndW1lbnQnKS4KCjIwMDYtMDYtMTMgMTE6MTc6MDIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0LmM6IEZyZWUgc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBGcmVlIHN0cmluZy4KCjIwMDYtMDYtMTMgMDg6MjA6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcmVtb3ZlIEdMaWIgMi42IGNvbXBhdGliaWxpdHkgY29kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQtcHJpdmF0ZS5oOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyk6CgkgIHJlbW92ZSBHTGliIDIuNiBjb21wYXRpYmlsaXR5IGNvZGUKCjIwMDYtMDYtMTIgMTY6NTA6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvcGFyc2UvTWFrZWZpbGUuYW06IEZpeCBidWlsZCB3aXRoICdtYWtlIC1qIE4nIGV2ZW4gbW9yZSAoIzM0MDAxNikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgRml4IGJ1aWxkIHdpdGggJ21ha2UgLWogTicgZXZlbiBtb3JlICgjMzQwMDE2KS4KCjIwMDYtMDYtMTIgMDk6Mzc6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBGaXggZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgRml4IGRvY3MuCgoyMDA2LTA2LTEyIDA5OjI5OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogVXNlIEdfVU5MSUtFTFkgdG8gaGVscCB0aGUgY29tcGlsZXIgYSBiaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9zZXRfZHVyYXRpb24pLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2xhc3Rfc3RvcCksIChnc3Rfc2VnbWVudF9zZXRfc2VlayksCgkgIChnc3Rfc2VnbWVudF9zZXRfbmV3c2VnbWVudF9mdWxsKSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgVXNlIEdfVU5MSUtFTFkgdG8gaGVscCB0aGUgY29tcGlsZXIgYSBiaXQuCgoyMDA2LTA2LTEyIDA5OjI4OjM1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0Bzb25pY3B1bHNlLmRlPgoKCSAgZ3N0LzogY29uc3RpZnkgcXVhcmsgcmVnaXN0cmF0aW9uIHN0cmluZ3MuIEZpeGVzICMzNDQxMTUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGVmYW4gS29zdCA8ZW5zb25pYyBhdCBzb25pY3B1bHNlIGRvdCBkZT4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NoYWluX3VuY2hlY2tlZCksIChnc3RfcGFkX2NoYWluKSwKCSAgKGdzdF9wYWRfcHVzaCk6CgkgIGNvbnN0aWZ5IHF1YXJrIHJlZ2lzdHJhdGlvbiBzdHJpbmdzLiBGaXhlcyAjMzQ0MTE1CgkgIEF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcgaXMgX3BhZF9wdXNoKCkgYnkgaW50ZXJuYWxseQoJICBjYWxsaW5nIGdzdF9wYWRfY2hhaW5fdW5jaGVja2VkKCkuCgoyMDA2LTA2LTEyIDA5OjIzOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBJbml0IF90eXBlIGZvciBjb25zaXN0ZW5jeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9nZXRfdHlwZSksIChnc3RfYnVmZmVyX2ZpbmFsaXplKSwKCSAgKF9nc3RfYnVmZmVyX2NvcHkpLCAoZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3Rfc3ViYnVmZmVyX2ZpbmFsaXplKSwgKGdzdF9idWZmZXJfY3JlYXRlX3N1YiksCgkgIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCksIChnc3RfYnVmZmVyX3NwYW4pOgoJICBJbml0IF90eXBlIGZvciBjb25zaXN0ZW5jeS4KCSAgVXNlIF9GTEFHUyBtYWNybyB0byBhdm9pZCB0eXBlIGNoZWNrLgoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNrcyBpbiBzdWJidWZlciBjb2RlLgoKMjAwNi0wNi0xMiAwOToxNzo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFVzZSBfQ0FTVCBtYWNyb3MgdG8gYXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoZ3N0X2RlYnVnX2hlbHApOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fZmluYWxpemUpLCAoZ3N0X3BsdWdpbl9saXN0X2ZyZWUpOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfYWRkX2ZlYXR1cmUpLCAoZ3N0X3JlZ2lzdHJ5X3BsdWdpbl9maWx0ZXIpLAoJICAoZ3N0X3JlZ2lzdHJ5X2ZlYXR1cmVfZmlsdGVyKSwgKGdzdF9yZWdpc3RyeV9maW5kX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfZmluZF9mZWF0dXJlKSwgKGdzdF9yZWdpc3RyeV9nZXRfcGx1Z2luX2xpc3QpLAoJICAoZ3N0X3JlZ2lzdHJ5X2xvb2t1cF9mZWF0dXJlX2xvY2tlZCksIChnc3RfcmVnaXN0cnlfbG9va3VwX2xvY2tlZCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKSwgKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfdW5yZWYpLAoJICAoZ3N0X21pbmlfb2JqZWN0X3JlcGxhY2UpLCAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2ZyZWUpLAoJICAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2NvcHkpOgoJICBVc2UgX0NBU1QgbWFjcm9zIHRvIGF2b2lkIHVubmVlZGVkIHR5cGUgY2hlY2tpbmcuCgkgIEFkZGVkIHNvbWUgbW9yZSBHX1VOTElLRUxZLgoKMjAwNi0wNi0xMiAwOToxMTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogQXZvaWQgdW5uZWVkZWQgdHlwZSBjaGVja2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBdm9pZCB1bm5lZWRlZCB0eXBlIGNoZWNraW5nLgoJICBBUEk6IEdTVF9CVUZGRVJfSVNfRElTQ09OVAoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIEF2b2lkIHR5cGUgY2hlY2sgaW4gZmxhZyBhY2Nlc3Nvci4KCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgQWRkIF9DQVNUIG1hY3Jvcy4KCSAgQVBJOiBHU1RfRUxFTUVOVF9GQUNUT1JZX0NBU1QKCSAgQVBJOiBHU1RfUExVR0lOX0NBU1QKCSAgQVBJOiBHU1RfUExVR0lOX0ZFQVRVUkVfQ0FTVAoKMjAwNi0wNi0xMiAwOTowNjowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RvYmplY3QuYzogQWRkIEdfVU5MSUtFTFkgaW4gdHlwZSByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZ2V0X3R5cGUpLCAoZ3N0X29iamVjdF9yZWYpLAoJICAoZ3N0X29iamVjdF91bnJlZik6CgkgIEFkZCBHX1VOTElLRUxZIGluIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBBdm9pZCB0eXBlIGNoZWNrIGluIF9yZWYvX3VucmVmIHNpbmNlIHRoYXQgaXMgYWxzbwoJICBkb25lIGluIGdsaWIuCgoyMDA2LTA2LTEyIDA4OjU1OjIxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIEdfVU5MSUtFTFkgaW4gdHlwZSByZWdpc3RyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoZ3N0X2dfZXJyb3JfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfdHlwZSksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogKGdzdF90YWdfbGlzdF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOiAoZ3N0X3RhZ19zZXR0ZXJfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYW5kbGVyX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF9kYXRlX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2dldF90eXBlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF90eXBlKToKCSAgQWRkIEdfVU5MSUtFTFkgaW4gdHlwZSByZWdpc3RyYXRpb24uCgoyMDA2LTA2LTEyIDA4OjUxOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogUHJvcGVybHkgcHJpbnQgZW51bSB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9zaWduYWxfaW5mbyk6CgkgIFByb3Blcmx5IHByaW50IGVudW0gdmFsdWVzLgoKMjAwNi0wNi0xMiAwODo0NzoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpbmZvLio6IEFkZCBzb21lIEdfW1VOXUxJS0VMWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19zZXRfYWN0aXZlKSwKCSAgKGdzdF9kZWJ1Z19jYXRlZ29yeV9zZXRfdGhyZXNob2xkKSwgKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEFkZCBzb21lIEdfW1VOXUxJS0VMWS4KCSAgTWFpbnRhaW4gX19nc3RfZGVidWdfbWluIHRvIGF2b2lkIGZvcm1hdHRpbmcgdGhlIGFyZ3VtZW50cyBvZgoJICBkZWJ1ZyBtZXNzYWdlcyB0aGF0IHdpbGwgYmUgZHJvcHBlZCBhbnl3YXkgdG8gYXZvaWQgYSBsb3Qgb2YKCSAgb3ZlcmhlYWQgZnJvbSB0aGUgZGVidWdnaW5nIHN5c3RlbS4KCjIwMDYtMDYtMTEgMjA6Mzc6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHBvL1BPVEZJTEVTLio6IGFkZCBtaXNzaW5nIGZpbGVzIGNvbnRhaW5pbmcgdHJhbnNsYXRhYmxlIHN0cmluZ3MsIHRlbGwgaW50bHRvb2wgYWJvdXQgb25lIGV4Y2VwdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgKiBwby9QT1RGSUxFUy5za2lwOgoJICBhZGQgbWlzc2luZyBmaWxlcyBjb250YWluaW5nIHRyYW5zbGF0YWJsZSBzdHJpbmdzLCB0ZWxsIGludGx0b29sIGFib3V0CgkgIG9uZSBleGNlcHRpb24KCjIwMDYtMDYtMTEgMTc6Mjg6MTkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZTogYWRkIHRlc3QtYmluYXJ5IHRvIGlnbm9yZSBsaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgYWRkIHRlc3QtYmluYXJ5IHRvIGlnbm9yZSBsaXN0CgoyMDA2LTA2LTExIDE3OjAzOjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOiByZW9yZGVyIChwdXQgZHAgaW50byBhIGNoYXB0ZXIpIGFuZCBpbmRlbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgcmVvcmRlciAocHV0IGRwIGludG8gYSBjaGFwdGVyKSBhbmQgaW5kZW50CgoyMDA2LTA2LTExIDExOjU2OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9yYW5kb20vYXV0b3Rvb2xzOgoJICBhZGQgbm90ZXMgb24gb3VyIGF1dG90b29scyBzZXR1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG5vdGVzIG9uIG91ciBhdXRvdG9vbHMgc2V0dXAKCjIwMDYtMDYtMTAgMTc6MzI6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuOCA9PT0KCjIwMDYtMDYtMTAgMTc6MDY6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjgKCjIwMDYtMDYtMTAgMTE6NTE6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBtb3ZlIHBpZCBkZWNsYXJhdGlvbiB0byBkZWNsYXJhdGlvbiBibG9jawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBtb3ZlIHBpZCBkZWNsYXJhdGlvbiB0byBkZWNsYXJhdGlvbiBibG9jawoKMjAwNi0wNi0xMCAxMTo0Nzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IHVzZSBfZXhpdCgpIGluc3RlYWQgb2YgZXhpdCgpIGluIG91ciBmb3JrZWQgY2hpbGQ7IHRoaXMgZW5zdXJlcyB0aGF0IG5vbmUgb2YgdGhlIHJlZ2lzdGVyZWQgZXhpdCBoYW5kbGVycyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgdXNlIF9leGl0KCkgaW5zdGVhZCBvZiBleGl0KCkgaW4gb3VyIGZvcmtlZCBjaGlsZDsgdGhpcyBlbnN1cmVzCgkgIHRoYXQgbm9uZSBvZiB0aGUgcmVnaXN0ZXJlZCBleGl0IGhhbmRsZXJzIGZyb20gd2hhdGV2ZXIgaXMgdXNpbmcKCSAgR1N0cmVhbWVyIGdldCBleGVjdXRlZC4gIFRoaXMgZml4ZXMgZ25vbWUtbWl4ZXItYXBwbGV0IGZhaWxpbmcKCSAgdG8gbG9hZCwgYmVjYXVzZSBPUkJpdCB3b3VsZCBzaHV0IGRvd24uCgkgIFNwb3R0ZWQgYnk6IEVkd2FyZCBIZXJ2ZXkgIDxlZHdhcmRAZmx1ZW5kby5jb20+CgkgIEZpeCBzdWdnZXN0ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgRml4ZXMgIzM0NDQ3NAoKMjAwNi0wNi0wOSAxODo1MjowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGJhY2sgdG8gVFJVTksKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDYtMDkgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIFRSVU5LCgo9PT0gcmVsZWFzZSAwLjEwLjcgPT09CgoyMDA2LTA2LTA5IDE4OjQ5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC43CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC43CgoyMDA2LTA2LTA3IDEwOjQ2OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIDAuMTAuNi4yIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHBvL2FmLnBvOgoJICAqIHBvL2F6LnBvOgoJICAqIHBvL2JnLnBvOgoJICAqIHBvL2NhLnBvOgoJICAqIHBvL2NzLnBvOgoJICAqIHBvL2RlLnBvOgoJICAqIHBvL2VuX0dCLnBvOgoJICAqIHBvL2ZyLnBvOgoJICAqIHBvL2l0LnBvOgoJICAqIHBvL25iLnBvOgoJICAqIHBvL25sLnBvOgoJICAqIHBvL3J1LnBvOgoJICAqIHBvL3NxLnBvOgoJICAqIHBvL3NyLnBvOgoJICAqIHBvL3N2LnBvOgoJICAqIHBvL3RyLnBvOgoJICAqIHBvL3VrLnBvOgoJICAqIHBvL3ZpLnBvOgoJICAqIHBvL3poX0NOLnBvOgoJICAqIHBvL3poX1RXLnBvOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgMC4xMC42LjIgcHJlcmVsZWFzZQoKMjAwNi0wNi0wNyAwODozODozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBsZWFrIHNwb3R0ZWQgYnkgY292ZXJpdHkgY2hlY2tlci4gRml4ZXMgIzM0MzgyNwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9ndHlwZV9yZXNvbHZlcik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X3BsdWdpbl9pbmZvKToKCSAgRml4IGxlYWsgc3BvdHRlZCBieSBjb3Zlcml0eSBjaGVja2VyLiBGaXhlcyAjMzQzODI3CgkgIEZpeCBhbm90aGVyIG90aGVyIGxlYWsgZm91bmQgYnkgcGFvbG8gYm9yZWxsaS4KCjIwMDYtMDYtMDYgMTY6NTI6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X3g4Nl82NC5oOgoJICBpZmRlZiBMT0FEU0FWRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWZkZWYgTE9BRFNBVkUKCjIwMDYtMDYtMDYgMTU6MTg6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Y29udHJvbC5zZ21sOgoJICByZW1vdmUgb2xkIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvbGQgZG9jcwoKMjAwNi0wNi0wNiAxNDo1MTo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzoKCSAgdGVybWluYXRlIGlmZGVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0ZXJtaW5hdGUgaWZkZWYKCjIwMDYtMDYtMDYgMTQ6MzI6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Ynl0ZXN0cmVhbS5zZ21sOgoJICByZW1vdmUgdW51c2VkIHRtcGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB1bnVzZWQgdG1wbAoKMjAwNi0wNi0wNiAxNDoyOTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBhZGQgbm90ZSB0byBkb2NzIGFib3V0IEdEUCB2ZXJzaW9uaW5nOyByZW1vdmUgdG1wbCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbm90ZSB0byBkb2NzIGFib3V0IEdEUCB2ZXJzaW9uaW5nOyByZW1vdmUgdG1wbCBmaWxlCgoyMDA2LTA2LTA2IDE0OjI0OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuKjogQVBJOiBhZGQgYSBHc3REUFBhY2tldGl6ZXIgb2JqZWN0LCBhbmQgY3JlYXRlL2ZyZWUgZnVuY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXJfYW55KSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzX2FueSksCgkgIChnc3RfZHBfdmVyc2lvbl9nZXRfdHlwZSksIChnc3RfZHBfaW5pdCksCgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKSwgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXJfMV8wKSwKCSAgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKSwgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzXzFfMCksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50XzFfMCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXRfMF8yKSwgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldF8xXzApLAoJICAoZ3N0X2RwX2V2ZW50X2Zyb21fcGFja2V0KSwgKGdzdF9kcF9wYWNrZXRpemVyX25ldyksCgkgIChnc3RfZHBfcGFja2V0aXplcl9mcmVlKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIEFQSTogYWRkIGEgR3N0RFBQYWNrZXRpemVyIG9iamVjdCwgYW5kIGNyZWF0ZS9mcmVlIGZ1bmN0aW9ucwoJICBBUEk6IGFkZCBHc3REUFZlcnNpb24gZW51bQoJICBBZGQgMS4wIGV2ZW50IGZ1bmN0aW9uIHRoYXQgdXNlcyB0aGUgc3RyaW5nIHNlcmlhbGl6YXRpb24KCSAgU2VyaWFsaXplIG1vcmUgdXNlZnVsIGJ1ZmZlciBmbGFncwoJICBGaXhlcyAjMzQzOTg4CgoyMDA2LTA2LTA2IDE0OjIxOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJICBhZGQgc3ltYm9sCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc3ltYm9sCgoyMDA2LTA2LTA2IDE0OjE2OjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgd2lkdGggcmVzcGVjdGF0aW9uaXppbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdpZHRoIHJlc3BlY3RhdGlvbml6aW5nCgoyMDA2LTA2LTA2IDE0OjEwOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrLzogYWRkIHBwYzY0IHN0cnVjdHVyZSBzaXplcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9wcGM2NC5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X3BwYzY0Lmg6CgkgIGFkZCBwcGM2NCBzdHJ1Y3R1cmUgc2l6ZXMKCjIwMDYtMDYtMDYgMTM6NTk6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdGVzdHMvY2hlY2svOiBnZW5lcmF0ZSBhbmQgYWRkIHN0cnVjdHVyZSBzaXplIGxpc3RzIGZvciB4ODZfNjQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfeDg2XzY0Lmg6CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfeDg2XzY0Lmg6CgkgIGdlbmVyYXRlIGFuZCBhZGQgc3RydWN0dXJlIHNpemUgbGlzdHMgZm9yIHg4Nl82NAoKMjAwNi0wNi0wNiAxMzo1MzoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBjb3NtZXRpY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvc21ldGljcwoKMjAwNi0wNi0wNiAxMzo0ODoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBmYWN0b3Igb3V0IHRoZSBtZXRob2QgZnJvbSB0ZXN0cyB0aGF0IGNoZWNrcyBzaXplIG9mIHN0cnVjdHVyZXMsIGFuZCBhZGQgY29kZSB0byBnZW5lcmF0ZSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19hYmlfbGlzdCk6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgZmFjdG9yIG91dCB0aGUgbWV0aG9kIGZyb20gdGVzdHMgdGhhdCBjaGVja3Mgc2l6ZSBvZiBzdHJ1Y3R1cmVzLAoJICBhbmQgYWRkIGNvZGUgdG8gZ2VuZXJhdGUgdGhlIGhlYWRlciBjb250YWluaW5nIHRoZXNlIHNpemVzCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGFiaS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9zdHJ1Y3RfaTM4Ni5oOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvbGlic2FiaS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvc3RydWN0X2kzODYuaDoKCSAgdXNlIGl0CgoyMDA2LTA2LTA2IDEzOjExOjAzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0c2VnbWVudC5oOiBEb24ndCB1c2UgYysrLXN0eWxlIGNvbW1lbnRzLCBmaXhlcyAjMzQzOTI5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIERvbid0IHVzZSBjKystc3R5bGUgY29tbWVudHMsIGZpeGVzICMzNDM5MjkKCjIwMDYtMDYtMDYgMDk6NDc6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgd2hpdGVzcGFjZS93aWR0aCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZS93aWR0aCBmaXhlcwoKMjAwNi0wNi0wNiAwODo1MDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDYtMDYtMDYgMDg6NTA6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgcmVtb3ZlIGFuIGV4dHJhIHNwYWNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYW4gZXh0cmEgc3BhY2UKCjIwMDYtMDYtMDUgMTM6MDU6MzcgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0LmM6IHBsdWdpbl9wYXRocyBpcyBub3QgdXNlZCBpZiB3ZSBidWlsZCB3aXRob3V0IHJlZ2lzdHJ5IHN1cHBvcnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgcGx1Z2luX3BhdGhzIGlzIG5vdCB1c2VkIGlmIHdlIGJ1aWxkIHdpdGhvdXQgcmVnaXN0cnkgc3VwcG9ydC4KCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY29weSk6CgkgIF9jb3B5KCkgd2FzIGFsd2F5cyByZXR1cm5pbmcgTlVMTC4uLgoKMjAwNi0wNi0wNSAxMjo1NTo1OCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3RzZWdtZW50LmM6IF9jb3B5KCkgd2FzIGFsd2F5cyByZXR1cm5pbmcgTlVMTC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY29weSk6CgkgIF9jb3B5KCkgd2FzIGFsd2F5cyByZXR1cm5pbmcgTlVMTC4uLgoKMjAwNi0wNi0wMiAxNjo0NjoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IGZhY3RvciBvdXQgQ1JDIGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlciksIChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpOgoJICBmYWN0b3Igb3V0IENSQyBjb2RlCgoyMDA2LTA2LTAyIDE2OjQ1OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IG1ha2Ugc3VyZSB3ZSB1bnNldCBjYXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfdGVhcmRvd25fc3JjX3BhZCk6CgkgIG1ha2Ugc3VyZSB3ZSB1bnNldCBjYXBzCgoyMDA2LTA2LTAyIDE2OjQxOjAyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay4qOiBBZGQgYSBjb25kL211dGV4IHRvIHRoZSBjaGVjayBzdXBwb3J0IGxpYiwgc2lnbmFsIHRoaXMgd2hlbmV2ZXIgd2UgYWRkIHRvIHRoZSBidWZmZXJzIGxpc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19pbml0KSwKCSAgKGdzdF9jaGVja19jaGFpbl9mdW5jKToKCSAgKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOgoJICBBZGQgYSBjb25kL211dGV4IHRvIHRoZSBjaGVjayBzdXBwb3J0IGxpYiwgc2lnbmFsIHRoaXMgd2hlbmV2ZXIgd2UKCSAgYWRkIHRvIHRoZSBidWZmZXJzIGxpc3QuIFRoaXMgd2lsbCBhbGxvdyB0ZXN0cyB0byBub3QgYnVzeS13YWl0IG9uCgkgIHRoZSBidWZmZXItbGlzdC4KCjIwMDYtMDYtMDIgMTA6NTg6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiBmYWN0b3Igb3V0IHNvbWUgY29tbW9uIGhlYWRlciBpbml0IGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICAoZ3N0X2RwX2hlYWRlcl9mcm9tX2J1ZmZlciksIChnc3RfZHBfcGFja2V0X2Zyb21fY2FwcyksCgkgIChnc3RfZHBfcGFja2V0X2Zyb21fZXZlbnQpOgoJICBmYWN0b3Igb3V0IHNvbWUgY29tbW9uIGhlYWRlciBpbml0IGNvZGUKCjIwMDYtMDYtMDIgMTA6MDg6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgQVBJOiBtYWtlIGdzdF9kcF9jcmMoKSBwdWJsaWMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IChnc3RfZHBfY3JjKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgIEFQSTogbWFrZSBnc3RfZHBfY3JjKCkgcHVibGljCgoyMDA2LTA2LTAyIDA5OjEzOjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBkZWJ1ZyBjaGFuZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRlYnVnIGNoYW5nZQoKMjAwNi0wNi0wMSAxODozMDoxOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9pbmRleGVycy9nc3RpbmRleGVycy5jOiBjb25kaXRpb25hbGx5IHJlZ2lzdGVyIGZpbGVpbmRleGVyIChmaXhlcyAjMzQzNTk4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGluZGV4ZXJzLmM6IChwbHVnaW5faW5pdCk6CgkgIGNvbmRpdGlvbmFsbHkgcmVnaXN0ZXIgZmlsZWluZGV4ZXIgKGZpeGVzICMzNDM1OTgpCgoyMDA2LTA2LTAxIDE4OjIyOjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLmg6IENhbid0IGNhc3QgaWZhY2VzIHRvIGEgY2xhc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICBDYW4ndCBjYXN0IGlmYWNlcyB0byBhIGNsYXNzCgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkgICogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuaDoKCSAgRml4IG1vcmUgZ29iamVjdCBtYWNyb3M6IG9iajwtPmtsYXNzLCBHc3RYWFg8LT5Hc3RYWFhDbGFzcwoKMjAwNi0wNi0wMSAxMToxMzo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IG1ha2Ugc3VyZSB3ZSB6ZXJvIHRoZSB3aG9sZSBBQkktY29tcGF0aWJsZSBhcmVhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpOgoJICBtYWtlIHN1cmUgd2UgemVybyB0aGUgd2hvbGUgQUJJLWNvbXBhdGlibGUgYXJlYQoKMjAwNi0wNi0wMSAwOTowMjoyMyArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IE1ha2Ugc3VyZSB0aGUgRU9TIGZsYWcgaXMgY2xlYXJlZCBmcm9tIHBhZHMgYWZ0ZXIgYSBmbHVzaCBvciBzdG9wLiBGaXhlcyAjMzQzNTM4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvIGF0IG5udmEgZG90IG9yZz4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3N0b3ApOgoJICBNYWtlIHN1cmUgdGhlIEVPUyBmbGFnIGlzIGNsZWFyZWQgZnJvbSBwYWRzIGFmdGVyIGEgZmx1c2gKCSAgb3Igc3RvcC4gRml4ZXMgIzM0MzUzOC4KCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N1aXRlKToKCSAgQWRkZWQgdGVzdCBmb3IgY29sbGVjdHBhZHMgcmV1c2FnZSBhZnRlciBFT1MuCgoyMDA2LTA1LTMwIDIwOjI1OjAzICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0LmM6IHNldCAjaW5jbHVkZSA8c3lzL3dhaXQuaD4gaW4gYSAjaWZkZWYgI2lmZGVmIEhBVkVfRk9SSwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6CgkgIHNldCAjaW5jbHVkZSA8c3lzL3dhaXQuaD4gaW4gYSAjaWZkZWYgI2lmZGVmIEhBVkVfRk9SSwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgZXhwb3J0IGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV4cG9ydCBnc3RfcGFkX3NldF9hY2NlcHRjYXBzX2Z1bmN0aW9uLCBnc3Rfc3RydWN0dXJlX2VtcHR5X25ldywKCSAgZ3N0X3ZhbHVlX2ZyYWN0aW9uX211bHRpcGx5CgkgICogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSAgYWRkIGEgbGluayB0byBpbnRsLmxpYgoKMjAwNi0wNS0zMCAxNTo1NToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEgcGFkIGlzIHJlbW92ZWQgZnJvbSB0aGUgY29sbGVjdGlvbiB0aGF0IGNvdWxkIGNhdXNlIHRoZSBvdGhlci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIHBhZCBpcyByZW1vdmVkIGZyb20gdGhlIGNvbGxlY3Rpb24KCSAgdGhhdCBjb3VsZCBjYXVzZSB0aGUgb3RoZXIgcGFkcyB0byBiZWNvbWUgY29sbGVjdGFibGUuCgoyMDA2LTA1LTMwIDE1OjUzOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogQ2xhcmlmeSB0aGUgdXNlIG9mIF9yZWxlYXNlX3JlcXVlc3RfcGFkKCkgYW5kIF9nZXRfcmVxdWVzdF9wYWQoKSBhIGJpdCBiZXR0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIENsYXJpZnkgdGhlIHVzZSBvZiBfcmVsZWFzZV9yZXF1ZXN0X3BhZCgpIGFuZAoJICBfZ2V0X3JlcXVlc3RfcGFkKCkgYSBiaXQgYmV0dGVyLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfcGVlayksCgkgIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcik6CgkgIEZpeCBzb21lIGRvYyBhbmQgY29tbWVudCB0eXBvcy4KCjIwMDYtMDUtMzAgMTQ6NDM6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IGFkZCBkZWNsYXJlZCBzeW1ib2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgYWRkIGRlY2xhcmVkIHN5bWJvbHMKCjIwMDYtMDUtMzAgMTQ6NDE6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICB1cGRhdGUgcG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBwbyBmaWxlcwoKMjAwNi0wNS0zMCAxNDo0MDo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYnVpbGQKCjIwMDYtMDUtMzAgMTQ6MDM6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBhZGRlZCBIQVZFX0ZPUksKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIEhBVkVfRk9SSwoKMjAwNi0wNS0zMCAxMjowNDoyOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0c3lzdGVtY2xvY2suYzogQWRkIGRlYnVnIHRoYXQgY2FuIGJlIGVuYWJsZWQgdXNpbmcgYSAjZGVmaW5lIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsIGZvciBkdW1waW5nIHN0YXRzIGFib3V0IGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfdW5sb2NrZWQpOgoJICBBZGQgZGVidWcgdGhhdCBjYW4gYmUgZW5hYmxlZCB1c2luZyBhICNkZWZpbmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSwKCSAgZm9yIGR1bXBpbmcgc3RhdHMgYWJvdXQgaG93IGxhdGUvZWFybHkgd2Ugd2VyZSB3aGVuIHdha2luZyB1cCBmcm9tCgkgIHdhaXRpbmcgb24gdGhlIGNsb2NrLgoKMjAwNi0wNS0zMCAxMTo0Mzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogV2hlbiByZWJ1aWxkaW5nIHRoZSBwYWQgbGlzdCwgZG9uJ3QgbGVhayB0aGUgcHJldmlvdXMgbGlzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19jaGVja19wYWRzKToKCSAgV2hlbiByZWJ1aWxkaW5nIHRoZSBwYWQgbGlzdCwgZG9uJ3QgbGVhayB0aGUgcHJldmlvdXMgbGlzdC4KCjIwMDYtMDUtMzAgMTA6NTc6NDQgKzAwMDAgIEx1dHogTXVlbGxlciA8bHV0ekB0b3Bmcm9zZS5kZT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBQdWJsaXNoIHN1cHBvcnRlZCBxdWVyeSB0eXBlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBMdXR6IE11ZWxsZXIgPGx1dHogYXQgdG9wZnJvc2UgZG90IGRlPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9xdWVyeV90eXBlcyksIChnc3RfYmFzZV9zcmNfdXBkYXRlX2xlbmd0aCk6CgkgIFB1Ymxpc2ggc3VwcG9ydGVkIHF1ZXJ5IHR5cGVzLgoJICBVcGRhdGUgbGFzdF9zdG9wIGZpZWxkIGluIGdldF9yYW5nZSBtb2RlIHNvIHRoZSBwb3NpdGlvbgoJICBxdWVyeSB3b3Jrcy4gRml4ZXMgIzM0MjMyMS4KCjIwMDYtMDUtMzAgMTA6MTI6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBHU1RfVEFHX1BSRVZJRVdfSU1BR0UgKCMzNDMzNDEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICBBUEk6IGFkZCBHU1RfVEFHX1BSRVZJRVdfSU1BR0UgKCMzNDMzNDEpLgoKMjAwNi0wNS0zMCAwOTo0MjowOSArMDAwMCAgQWxlc3NhbmRybyBEZWNpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVubG9jayBtdXRleCB3aGVuIHJlbW92aW5nIGFuIHVua25vd24gcGFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEFsZXNzYW5kcm8gRGVjaW5hIDxhbGVzc2FuZHJvIGF0IG5udmEgZG90IG9yZz4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpOgoJICBVbmxvY2sgbXV0ZXggd2hlbiByZW1vdmluZyBhbiB1bmtub3duIHBhZC4KCSAgRml4ZXMgIzM0MzMzNC4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbGxlY3RwYWRzLmM6IChjb2xsZWN0ZWRfY2IpLCAocHVzaF9idWZmZXIpLAoJICAocHVzaF9ldmVudCksIChzZXR1cCksICh0ZWFyZG93biksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N1aXRlKSwgKG1haW4pOgoJICBBZGRlZCBjb2xsZWNwYWRzIGNoZWNrLCBkaXNhYmxlZCBmb3Igbm93IGFzIGNoZWNrIGNyYXNoZXMgZm9yCgkgIHNvbWUgcmVhc29uLgoKMjAwNi0wNS0yOSAxNzoyMDowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogRG9uJ3QgbGVhayBwYWRzIGxpc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKToKCSAgRG9uJ3QgbGVhayBwYWRzIGxpc3RzLgoKMjAwNi0wNS0yOSAxNjowMDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFQSTogZ3N0X2NvbGxlY3RfcGFkc19zZXRfZmx1c2hpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZ191bmxvY2tlZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3NldF9mbHVzaGluZyksIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBBUEk6IGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nCgkgIEFkZGVkIGFwaSB0byBzZXQgdGhlIHBhZHMgdG8gZmx1c2hpbmcsIHVzZWZ1bGwgZm9yIHNlZWtpbmcKCSAgY29kZSBpbiBlbGVtZW50cyB1c2luZyBjb2xsZWN0cGFkcy4KCSAgQ2xlYXIgc2VnbWVudCB3aGVuIHJlY2VpdmluZyBhIGZsdXNoLgoKMjAwNi0wNS0yOSAxMTo1Mjo1MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogRG9uJ3Qgc2NhbiByZWdpc3RyeSBwYXRocyBwYXNzZWQgdmlhIC0tZ3N0LXBsdWdpbi0tcGF0aCBpbW1lZGlhdGVseSAod2lsbCBjcmFzaCwgYmVjYXVzZSBhYnNvbHV0ZWx5IG5vdGhpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChhZGRfcGF0aF9mdW5jKSwgKGluaXRfcG9zdCk6CgkgIERvbid0IHNjYW4gcmVnaXN0cnkgcGF0aHMgcGFzc2VkIHZpYSAtLWdzdC1wbHVnaW4tLXBhdGggaW1tZWRpYXRlbHkKCSAgKHdpbGwgY3Jhc2gsIGJlY2F1c2UgYWJzb2x1dGVseSBub3RoaW5nIGlzIHNldCB1cCBhbmQgbm8gdHlwZXMgYXJlCgkgIHJlZ2lzdGVyZWQgZXRjLik7IGRvIHRoaXMgbGF0ZXIgaW4gaW5pdF9wb3N0KCkuIEZpeGVzICMzNDMwNTcuCgoyMDA2LTA1LTI4IDA5OjA5OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogaWYgd2UgaGF2ZSBmb3JrLCBmb3JrIHdoaWxlIHJlYWRpbmcvcmVidWlsZGluZyB0aGUgcmVnaXN0cnkgc28gdGhlIHBhcmVudCBkb2Vzbid0IHRha2UgdGhlIGhpdCBvZiBoYXZpbmcgYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBpZiB3ZSBoYXZlIGZvcmssIGZvcmsgd2hpbGUgcmVhZGluZy9yZWJ1aWxkaW5nIHRoZSByZWdpc3RyeQoJICBzbyB0aGUgcGFyZW50IGRvZXNuJ3QgdGFrZSB0aGUgaGl0IG9mIGhhdmluZyBhbGwgcGx1Z2lucyBsb2FkZWQKCSAgaW4gbWVtb3J5LiAgRml4ZXMgIzM0Mjc3Ny4KCSAgKiBjb25maWd1cmUuYWM6CgkgIENoZWNrIGlmIHdlIGhhdmUgZm9yaygpCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBubyBmb3JrKCkgb24gd2luMzIKCjIwMDYtMDUtMjYgMTM6NTI6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy86IEFkZCBhIHVzZS1tbWFwIHByb3BlcnR5IHRvIGVuYWJsZSBlYXNpZXIgdGVzdGluZyBvZiBhbGwgY29kZSBwYXRocy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX2luaXQpLCAoZ3N0X2ZpbGVfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmlsZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9maWxlX3NyY19zdGFydCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkgIEFkZCBhIHVzZS1tbWFwIHByb3BlcnR5IHRvIGVuYWJsZSBlYXNpZXIgdGVzdGluZyBvZiBhbGwgY29kZSBwYXRocy4KCSAgQnVtcCByYW5rIHRvIFBSSU1BUlksIHNvIGZpbGVzcmMgaXMgdGhlIHByZWZlcnJlZCBmaWxlIHJlYWRlciBhbmQgdXNlZAoJICBpbiB0aGUgYWJzZW5jZSBvZiBnbm9tZXZmc3NyYy4gKENsb3NlcyAjMzQwNTAxKQoKMjAwNi0wNS0yNiAxMDozNTozNCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEFkZCBtaXNzaW5nIGluY2x1ZGUsIHJlbW92ZXMgd2FybmluZyBvZiBuZ2V0dGV4dCBub3QgYmVpbmcgZGVmaW5lZCBvbiBzb21lIGFyY2hlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDUtMjYgIFphaGVlciBBYmJhcyBNZXJhbGkgIDx6YWhlZXJhYmJhcyBhdCBtZXJhbGkgZG90IG9yZz4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJICBBZGQgbWlzc2luZyBpbmNsdWRlLCByZW1vdmVzIHdhcm5pbmcgb2YgbmdldHRleHQgbm90IGJlaW5nIGRlZmluZWQgb24KCSAgc29tZSBhcmNoZXMuCgoyMDA2LTA1LTI2IDA5OjE5OjI0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBIYW5kbGUgTlVMTCBpbnB1dCBhbmQgb3V0cHV0IHBvaW50ZXJzIHNpbGVudGx5IGFzIGEgZmFpbGVkIGNvbnZlcnNpb24sIHJhdGhlciB0aGFuIGdfd2FybmluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKToKCSAgSGFuZGxlIE5VTEwgaW5wdXQgYW5kIG91dHB1dCBwb2ludGVycyBzaWxlbnRseSBhcyBhIGZhaWxlZCBjb252ZXJzaW9uLAoJICByYXRoZXIgdGhhbiBnX3dhcm5pbmdzLgoKMjAwNi0wNS0yNSAxNTo1MjoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBJbml0aWFsaXplIHZhcmlhYmxlIGJlZm9yZSB1c2luZy4gRml4ZXMgIzM0MjgyMC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19zdGFydCk6CgkgIEluaXRpYWxpemUgdmFyaWFibGUgYmVmb3JlIHVzaW5nLiBGaXhlcyAjMzQyODIwLgoKMjAwNi0wNS0yNCAxNzoxMTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogRml4IG9mZi1ieS1vbmUgYnVnIHRoYXQgd291bGQgb25seSBhbGxvdyBwZWVrcyBvZiBOLTEgYnl0ZXMgZnJvbSB0aGUgc3RhcnQgZXZlbiBpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChidWZfaGVscGVyX2ZpbmRfcGVlayk6CgkgIEZpeCBvZmYtYnktb25lIGJ1ZyB0aGF0IHdvdWxkIG9ubHkgYWxsb3cgcGVla3Mgb2YgTi0xIGJ5dGVzCgkgIGZyb20gdGhlIHN0YXJ0IGV2ZW4gaWYgdGhlIGJ1ZmZlciB0byB0eXBlZmluZCBvbiBjb250YWlucwoJICBpbiBmYWN0IE4gYnl0ZXMgb2YgZGF0YSAobWFrZXMgdm9yYmlzIHR5cGVmaW5kaW5nIGZyb20gYQoJICB2b3JiaXMgaWRlbnRpZmljYXRpb24gaGVhZGVyIGJ1ZmZlciB3b3JrKS4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvY2hlY2svbGlicy90eXBlZmluZGhlbHBlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3R5cGVmaW5kaGVscGVyX3N1aXRlKSwgKG1haW4pLCAoZm9vYmFyX3R5cGVmaW5kKSwKCSAgKHBsdWdpbl9pbml0KToKCSAgQWRkIHZlcnkgYmFzaWMgdW5pdCB0ZXN0IGZvciBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkKCSAgdGhhdCBjaGVja3MgZm9yIHRoZSBwcm9ibGVtIGZpeGVkIGFib3ZlLgoKMjAwNi0wNS0yNCAwOTowMDo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgZG9jIGluZGVudCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyBpbmRlbnQgZml4CgoyMDA2LTA1LTI0IDA5OjAwOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgbWFyayBtb3JlIHN0cmluZ3MgZm9yIHRyYW5zbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYXJrIG1vcmUgc3RyaW5ncyBmb3IgdHJhbnNsYXRpb24KCjIwMDYtMDUtMjMgMTQ6MjM6NDkgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogTWFrZSBuZXcgR1NUX0ZMT1dfSVNfU1VDQ0VTUyBtYWNybyB2aXNpYmxlIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogSnVsaWVuIE1vdXR0ZSAgPGp1bGllbiBhdCBtb3V0dGUgbmV0PgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE1ha2UgbmV3IEdTVF9GTE9XX0lTX1NVQ0NFU1MgbWFjcm8gdmlzaWJsZSBpbiBkb2NzLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zaW5rX3ByZXJvbGwpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgQWRkIG5ldyA6OnByZXJvbGwtaGFuZG9mZiBzaWduYWwgKCMzMzcxMDApLgoKMjAwNi0wNS0yMyAxMToxMzo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogQWRkZWQgX0NVU1RPTSBlcnJvciBhbmQgc3VjY2VzcyBHc3RGbG93UmV0dXJuIHRoYXQgY2FuIGJlIHVzZWQgYmUgZWxlbWVudHMgaW50ZXJuYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X2Zsb3dfZ2V0X25hbWUpLCAoZ3N0X2Zsb3dfdG9fcXVhcmspOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgQWRkZWQgX0NVU1RPTSBlcnJvciBhbmQgc3VjY2VzcyBHc3RGbG93UmV0dXJuIHRoYXQgY2FuIGJlCgkgIHVzZWQgYmUgZWxlbWVudHMgaW50ZXJuYWxseS4KCSAgQWRkZWQgbWFjcm8gdG8gY2hlY2sgZm9yIFNVQ0NFU1MgZmxvd3JldHVybnMuCgkgIEFQSTogR1NUX0ZMT1dfQ1VTVE9NX1NVQ0NFU1MKCSAgQVBJOiBHU1RfRkxPV19DVVNUT01fRVJST1IKCSAgQVBJOiBHU1RfRkxPV19JU19TVUNDRVNTCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIGZvciBHc3RGbG93UmV0dXJuIHNhbml0eS4KCjIwMDYtMDUtMjMgMDk6NDA6MTQgKzAwMDAgIE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1d0Bza3luZXQuYmU+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IGNsZWFyL3Jlc2V0IHNlZ21lbnQgaW5mbyBpbiBGTFVTSF9TVE9QLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgPG1hbmF1dyBhdCBza3luZXQgZG90IGJlPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgY2xlYXIvcmVzZXQgc2VnbWVudCBpbmZvIGluIEZMVVNIX1NUT1AuCgkgIEZpeGVzICMzMzY5MjkuCgoyMDA2LTA1LTIyIDE2OjMwOjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IEZsdXNoIHF1ZXVlZCBidWZmZXIgb24gX3N0b3AoKSwgZml4ZXMgcGxheWluZyBhZ2FpbiAoIzM0MjQ1NCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfY29sbGVjdGVkKToKCSAgRmx1c2ggcXVldWVkIGJ1ZmZlciBvbiBfc3RvcCgpLCBmaXhlcyBwbGF5aW5nIGFnYWluICgjMzQyNDU0KQoKMjAwNi0wNS0yMiAxMzozNDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IGFkZCBhIHRlc3QgZm9yIGEgY29tcGxldGUgc3RydWN0dXJlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfc3VpdGUpOgoJICBhZGQgYSB0ZXN0IGZvciBhIGNvbXBsZXRlIHN0cnVjdHVyZQoKMjAwNi0wNS0yMiAxMzozMTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5jOgoJICBkZWJ1Z2dpbmcgY2hhbmdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVidWdnaW5nIGNoYW5nZXMKCjIwMDYtMDUtMTkgMTU6MzU6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS86IFNvbWUgbWlub3IgRkFRIHVwZGF0ZXMgdGhhdCB3b24ndCBjaGFuZ2UgdGhlIGZhY3QgdGhhdCBvdXIgRkFRIGlzIGJhZGx5IHN0cnVjdHVyZWQsIGZ1bGwgb2YgaW5mb3JtYXRpb24gaGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZGV2ZWxvcGluZy54bWw6CgkgICogZG9jcy9mYXEvZmFxLnhtbDoKCSAgKiBkb2NzL2ZhcS90cm91Ymxlc2hvb3RpbmcueG1sOgoJICAqIGRvY3MvZmFxL3VzaW5nLnhtbDoKCSAgU29tZSBtaW5vciBGQVEgdXBkYXRlcyB0aGF0IHdvbid0IGNoYW5nZSB0aGUgZmFjdCB0aGF0CgkgIG91ciBGQVEgaXMgYmFkbHkgc3RydWN0dXJlZCwgZnVsbCBvZiBpbmZvcm1hdGlvbiBoYXJkbHkKCSAgYW55b25lIG5ldyB0byBHU3RyZWFtZXIgbmVlZHMgdG8ga25vdyBhbmQgbGFja2luZyBsb3RzCgkgIG9mIGluZm9ybWF0aW9uIHBlb3BsZSBjb25zdGFudGx5IGFzayBmb3IuCgoyMDA2LTA1LTE5IDEzOjQ2OjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogU2hvcnQtY2lyY3VpdCBnc3RfcGFkX3NldF9jYXBzIGlmIHNldHRpbmcgdGhlIGV4aXN0aW5nIGNhcHMgcG9pbnRlciBhZ2FpbiwgYW5kIGF2b2lkIHByaW50aW5nIGRlYnVnIGFuZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKToKCSAgU2hvcnQtY2lyY3VpdCBnc3RfcGFkX3NldF9jYXBzIGlmIHNldHRpbmcgdGhlIGV4aXN0aW5nCgkgIGNhcHMgcG9pbnRlciBhZ2FpbiwgYW5kIGF2b2lkIHByaW50aW5nIGRlYnVnIGFuZAoJICByZWZmaW5nL3VucmVmZmluZyB0aGUgY2Fwcy4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBUaGVyZSdzIGFjdHVhbGx5IG5vIG5lZWQgdG8gc2V0IHRoZSBjYXBzIGJlZm9yZSBwdXNoaW5nIC0KCSAgdGhlIGFjY2VwdGNhcHMgbWV0aG9kIHdpbGwgaGFuZGxlIGl0IGFueXdheS4KCjIwMDYtMDUtMTkgMTA6Mjk6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBUEk6IGFkZCBnc3RfZWxlbWVudF9zZWVrX3NpbXBsZSgpICgjMzQyMjM4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3NlZWtfc2ltcGxlKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgZ3N0X2VsZW1lbnRfc2Vla19zaW1wbGUoKSAoIzM0MjIzOCkuCgoyMDA2LTA1LTE4IDE0OjI1OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHR5cGVmaW5kLio6IEFkZGVkIEdTVF9UWVBFX1RZUEVfRklORCBhbmQgZ3N0X3R5cGVfZmluZF9nZXRfdHlwZSgpIHNvIGEgR1R5cGUgZ2V0cyByZWdpc3RlcmVkIGZvciBHc3RUeXBlRmluZCBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIEFkZGVkIEdTVF9UWVBFX1RZUEVfRklORCBhbmQgZ3N0X3R5cGVfZmluZF9nZXRfdHlwZSgpIHNvIGEgR1R5cGUgZ2V0cwoJICByZWdpc3RlcmVkIGZvciBHc3RUeXBlRmluZCBwb2ludGVycy4gVGhpcyBhbGxvd3Mgd3JhcHBpbmcgdGhlIHN0cnVjdHVyZQoJICBpbiBiaW5kaW5ncyAoaS5lLiBnc3QtcHl0aG9uKS4KCjIwMDYtMDUtMTggMTQ6MDE6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dGFnc2V0dGVyLmM6IERvY3MgYWRkaXRpb25zIGFuZCBmaXhlcyAoc2VlICMzMzk5MTgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkgIERvY3MgYWRkaXRpb25zIGFuZCBmaXhlcyAoc2VlICMzMzk5MTgpLgoKMjAwNi0wNS0xOCAwOTowNzo1NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogVGhlIGNhcHMgaW50ZXJzZWN0aW9uIGFsZ29yaXRobSBjYW4gcHJvZHVjZSBtdWx0aXBsZSBjb3BpZXMgb2YgdGhlIGNhcHMuIFVudGlsIHRoYXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9wcmVwYXJlX2J1Zik6CgkgIFRoZSBjYXBzIGludGVyc2VjdGlvbiBhbGdvcml0aG0gY2FuIHByb2R1Y2UgbXVsdGlwbGUgY29waWVzIG9mIHRoZQoJICBjYXBzLiBVbnRpbCB0aGF0IGlzIGZpeGVkLCB3ZSBuZWVkIHRvIHNpbXBsaWZ5IHRoZSByZXN1bHQgdG8gYmUKCSAgc3VyZSB3aGV0aGVyIHRoZSBhbGxvd2VkIGNhcHMgYXJlIGZpeGVkIG9yIG5vdC4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksCgkgIChnc3RfcXVldWVfYnVmZmVyYWxsb2MpLCAoZ3N0X3F1ZXVlX2FjY2VwdGNhcHMpLAoJICAoZ3N0X3F1ZXVlX3B1c2hfb25lKToKCSAgUHJveGllZCBidWZmZXIgYWxsb2Mgc2hvdWxkIG5vdCBzZXQgdGhlIGNhcHMgb24gdGhlIHNvdXJjZSBwYWQuCgkgIFdoZW4gcHVzaGluZyBidWZmZXJzLCB3ZSBhbHdheXMgYWNjZXB0IHRoZSBjYXBzIGNoYW5nZSB0aGF0IHRyaWdnZXJzLgoJICBUaGlzIHByZXZlbnRzIG5lZ290aWF0aW9uIGVycm9ycyBjYXVzZWQgYnkgY2FwcyBjaGFuZ2luZyBtaWQtc3RyZWFtCgkgIGFuZCB0aGVuIGJlaW5nIHJlZnVzZWQgb24gb3VyIHNvdXJjZSBwYWQgKGJlY2F1c2UgdXBzdHJlYW0gaXMgbm93CgkgIHJlZnVzaW5nIHRob3NlIGNhcHMpLgoKMjAwNi0wNS0xOCAwODo0ODoyMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOiBNdXN0IHBsdWcgYXVkaW9jb252ZXJ0IGFuZCBhdWRpb3Jlc2FtcGxlIGJldHdlZW4gZGVjb2RlciBhbmQgYXVkaW8gc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChtYWluKToKCSAgTXVzdCBwbHVnIGF1ZGlvY29udmVydCBhbmQgYXVkaW9yZXNhbXBsZSBiZXR3ZWVuIGRlY29kZXIKCSAgYW5kIGF1ZGlvIHNpbmsuCgoyMDA2LTA1LTE3IDE0OjE4OjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgTWVudGlvbiBidWcgZml4ZWQgYnkgcHJldmlvdXMgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBNZW50aW9uIGJ1ZyBmaXhlZCBieSBwcmV2aW91cyBjb21taXQKCjIwMDYtMDUtMTcgMTQ6MDE6MzMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IEFsbG93IGVtcHR5IHN0cmluZ3MgZm9yIHNvbWUgb2YgdGhlIHBsdWdpbiBmaWVsZHMgc28gd2UgZG9uJ3QgZHJvcCB2YWxpZCBwbHVnaW4gZW50cmllcyB0aGF0IHdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAocmVhZF9zdHJpbmcpLCAobG9hZF9wYWRfdGVtcGxhdGUpLAoJICAobG9hZF9mZWF0dXJlKSwgKGxvYWRfcGx1Z2luKToKCSAgQWxsb3cgZW1wdHkgc3RyaW5ncyBmb3Igc29tZSBvZiB0aGUgcGx1Z2luIGZpZWxkcyBzbyB3ZSBkb24ndAoJICBkcm9wIHZhbGlkIHBsdWdpbiBlbnRyaWVzIHRoYXQgd2VyZSB3cml0dGVuIG91dCBjb3JyZWN0bHkuCgoyMDA2LTA1LTE3IDEzOjQwOjIwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogVXNlIGdfcmVtb3ZlIGFuZCBnX3JlbmFtZSBpbnN0ZWFkIG9mIHJlbW92ZSBhbmQgcmVuYW1lIHRoYXQgZG9uJ3QgaGFuZGxlIHV0ZjggY2hhcmFjdGVycy4gcmVuYW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChnc3RfcmVnaXN0cnlfeG1sX3dyaXRlX2NhY2hlKToKCSAgVXNlIGdfcmVtb3ZlIGFuZCBnX3JlbmFtZSBpbnN0ZWFkIG9mIHJlbW92ZSBhbmQgcmVuYW1lIHRoYXQgZG9uJ3QKCSAgaGFuZGxlIHV0ZjggY2hhcmFjdGVycy4gcmVuYW1lIHdhcyBmYWlsaW5nIGZvciB1c2VycyB3aG8gaGFkIHNwZWNpZmljCgkgIGNoYXJhY3RlcnMgaW4gdGhlaXIgbmFtZSB0aGVuIHRoZSByZWdpc3RyeSB3YXMgYnVpbHQgYXQgZWFjaCBnc3RyZWFtZXIgaW5pdC4KCSAgKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIFVzZSBhIGRlYnVnIHZlcnNpb24gb2YgbGlieG1sMiAobGlieG1sMkQubGliLGxpYnhtbDJELmRsbCkgZm9yIERFQlVHIGJ1aWxkCgkgIG9mIGxpYmdzdHJlYW1lciBhbmQgY2xlYW4gdW51c2VkIGxpYnJhcmllcyBpbiBwcm9qZWN0IGxpbmtzIHNldHRpbmdzLgoKMjAwNi0wNS0xNyAwOToyNDozNCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogVGhlIHF1ZXVlIGlzIG5vdCByZXNwb25zaWJsZSBmb3IgcHVzaGluZyBhbiBFT1Mgd2hlbiByZWNlaXZpbmcgYSBmYXRhbCBmbG93IGVycm9yLiBJdCdzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBUaGUgcXVldWUgaXMgbm90IHJlc3BvbnNpYmxlIGZvciBwdXNoaW5nIGFuIEVPUyB3aGVuIHJlY2VpdmluZyBhIGZhdGFsCgkgIGZsb3cgZXJyb3IuIEl0J3MgdXAgdG8gdGhlIHJlYWwgZWxlbWVudCBkcml2aW5nIHRoZSBwaXBlbGluZSB0byBkbyB0aGF0LgoKMjAwNi0wNS0xNiAxNzoxNTowMiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogVGhlIHF1ZXVlIHdhcyBwb3N0aW5nIGEgbm9uLW5lZWRlZCBHU1RfTUVTU0FHRV9FUlJPUiB3aGVuIHB1c2hpbmcgYSBidWZmZXIgcmV0dXJuZWQgYSBmYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfcHVzaF9vbmUpOgoJICBUaGUgcXVldWUgd2FzIHBvc3RpbmcgYSBub24tbmVlZGVkIEdTVF9NRVNTQUdFX0VSUk9SIHdoZW4gcHVzaGluZyBhCgkgIGJ1ZmZlciByZXR1cm5lZCBhIGZhdGFsIGVycm9yLiBJdCBzaG91bGQganVzdCBzZW5kIGFuIEVPUyBhbmQgc3RvcAoJICBpdCdzIHRhc2suCgkgIFVwc3RyZWFtIGVsZW1lbnRzIHdpbGwgdGhlbiBwcm9wZXJseSByZWNlaXZlIHRoZSBHU1RfRkxPV19VTkVYUEVDVEVECgkgIHdoZW4gcHVzaGluZyBidWZmZXJzIG9uIHRoZSBxdWV1ZSBhbmQgd2lsbCBiZSBhYmxlIHRvIGhhbmRsZSB0aGUgZXZlbnQuCgoyMDA2LTA1LTE2IDE2OjEwOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBGaXggdHlwb3MgYW5kIG1pbm9yIGVycm9ycyBpbiBzYW1wbGUgY29kZSAoIzM0MTg1NikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkgIEZpeCB0eXBvcyBhbmQgbWlub3IgZXJyb3JzIGluIHNhbXBsZSBjb2RlICgjMzQxODU2KS4KCjIwMDYtMDUtMTYgMTM6MzE6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6IEZpeCBpbmRleGVzIGluIGZvcm11bGFzIHRvIG1ha2UgbW9yZSBzZW5zZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OgoJICBGaXggaW5kZXhlcyBpbiBmb3JtdWxhcyB0byBtYWtlIG1vcmUgc2Vuc2UuCgoyMDA2LTA1LTE1IDExOjU0OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCByZXBvcnQgUE9TSVRJT04gYmFzZWQgb24gY2xvY2sgdGltZSBpZiBzeW5jIGlzIGRpc2FibGVkIGluIGEgc2luay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBEb24ndCByZXBvcnQgUE9TSVRJT04gYmFzZWQgb24gY2xvY2sgdGltZSBpZiBzeW5jIGlzCgkgIGRpc2FibGVkIGluIGEgc2luay4KCjIwMDYtMDUtMTUgMDg6MTY6MDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0b2JqZWN0Lmg6IEFkZCBjYXN0IHRvIG1ha2UgY29tcGlsZXIgaGFwcHkgLSByZWZjb3VudCB2YXJpYWJsZSB3YXMgYSBnaW50IGluIEdzdE9iamVjdCBidXQgaXMgYSBndWludCBpbiBHT2JqZWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBBZGQgY2FzdCB0byBtYWtlIGNvbXBpbGVyIGhhcHB5IC0gcmVmY291bnQgdmFyaWFibGUgd2FzIGEgZ2ludAoJICBpbiBHc3RPYmplY3QgYnV0IGlzIGEgZ3VpbnQgaW4gR09iamVjdCBhbmQgZ19hdG9taWNfaW50X2dldCgpCgkgIHdhbnRzIGEgZ2ludCAqLgoKMjAwNi0wNS0xNCAyMzoyMzo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9wYXJzZS9NYWtlZmlsZS5hbToKCSAgZml4IHBhcmFsbGVsIG1ha2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBwYXJhbGxlbCBtYWtlCgoyMDA2LTA1LTE0IDIxOjE4OjIzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIGNvbmZpZy5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgY29uZmlnLmgKCjIwMDYtMDUtMTQgMjE6MTY6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBhZC5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA2LTA1LTE0IDIxOjE2OjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3N0cmVhbWhlYWRlcjoKCSAgc29tZSBzdHJlYW1oZWFkZXIgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSBzdHJlYW1oZWFkZXIgdXBkYXRlcwoKMjAwNi0wNS0xNCAxOToyNTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIE1pbm9yIGRvY3MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgTWlub3IgZG9jcyBmaXhlcy4KCjIwMDYtMDUtMTQgMTY6MDM6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkgIEJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCYWNrIHRvIENWUwoKPT09IHJlbGVhc2UgMC4xMC42ID09PQoKMjAwNi0wNS0xNCAxNToyMDoyNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IHJlbGVhc2luZyAwLjEwLjYsICJUYWtlIHRoZSBjYW5ub2xpIgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNS0xNCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC42LCAiVGFrZSB0aGUgY2Fubm9saSIKCjIwMDYtMDUtMTQgMTU6MTg6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICBVcGRhdGUgLnBvIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBVcGRhdGUgLnBvIGZpbGVzCgoyMDA2LTA1LTEzIDE3OjUwOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBGaXggdXNlIG9mIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgaW4gdGhlIGh5cG90aGV0aWNhbCBjYXNlIHRoYXQgc29tZSBicm9rZW4gcGx1Z2luIGNyZWF0ZXMgYSBHU1RfLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHByaW50X3RhZyk6CgkgIEZpeCB1c2Ugb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBpbiB0aGUgaHlwb3RoZXRpY2FsCgkgIGNhc2UgdGhhdCBzb21lIGJyb2tlbiBwbHVnaW4gY3JlYXRlcyBhIEdTVF9UQUdfSU1BR0UKCSAgdGFnIGNvbnRhaW5pbmcgYSBOVUxMIGJ1ZmZlciAoIzM0MTY2NykuCgoyMDA2LTA1LTEyIDE2OjUwOjM3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC5jOiBQcmludCBzb21ldGhpbmcgbW9yZSBpbnRlbGxpZ2libGUgZm9yIGltYWdlIHRhZ3Mgd2hlbiB1c2luZyB0aGUgLXQgc3dpdGNoICgjMzQxNTU2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAocHJpbnRfdGFnKToKCSAgUHJpbnQgc29tZXRoaW5nIG1vcmUgaW50ZWxsaWdpYmxlIGZvciBpbWFnZSB0YWdzIHdoZW4KCSAgdXNpbmcgdGhlIC10IHN3aXRjaCAoIzM0MTU1NikuCgoyMDA2LTA1LTEyIDE0OjUzOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiB1cGRhdGVzIGZvciB3aW4zMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBNYWtlZmlsZS5hbToKCSAgdXBkYXRlcyBmb3Igd2luMzIKCSAgKiBjb25maWd1cmUuYWM6CgkgIGRlZmluZSBHU1RfTUFKT1JNSU5PUiBzbyB3ZSBoYXZlIGl0IGF2YWlsYWJsZSBpbiB3aW4zMi9jb21tb24vY29uZmlnLmgKCSAgUG9zc2libHkgcmVtb3ZlIGl0IGZyb20gb3VyIE1ha2VmaWxlLmFtIGZpbGVzIGxhdGVyCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgYWRkZWQgR1NUX01BSk9STUlOT1IKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6IChyZWdpc3Rlcl9nc3RfcmVzb3VyY2VfZXJyb3IpOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHVwZGF0ZWQKCjIwMDYtMDUtMTIgMTM6NDI6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vc3RyZWFtaGVhZGVyOgoJICBhZGRpbmcgbm90ZXMgYWJvdXQgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBhbmQgaWRlYXMgYWJvdXQgc3RyZWFtaGVhZGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgbm90ZXMgYWJvdXQgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBhbmQgaWRlYXMgYWJvdXQgc3RyZWFtaGVhZGVyCgoyMDA2LTA1LTEyIDEwOjUwOjQyICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9NQU5JRkVTVDogVXBkYXRlIHdpbjMyIGZpbGVzIGxpc3RpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL01BTklGRVNUOgoJICBVcGRhdGUgd2luMzIgZmlsZXMgbGlzdGluZy4KCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICBBZGQgR1NUX01BSk9STUlOT1IgZGVmaW5pdGlvbi4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgQWRkIG5ldyBleHBvcnRlZCBmdW5jdGlvbnMuCgoyMDA2LTA1LTEyIDA5OjI4OjIyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IElmIGFuIHNvIGZpbGUgaGFzIG5vIHBsdWdpbiBlbnRyeSBwb2ludCwgdW5sb2FkIHRoZSBtb2R1bGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgSWYgYW4gc28gZmlsZSBoYXMgbm8gcGx1Z2luIGVudHJ5IHBvaW50LCB1bmxvYWQgdGhlIG1vZHVsZS4KCjIwMDYtMDUtMTEgMTk6MDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IERvbid0IGZvcmdldCB0byBzaWduYWwgdGhlIF9jaGFpbiBvciBfbG9vcCBmdW5jdGlvbiB3aGVuIHRoZSBxdWV1ZSBzaXplIG9yIHRocmVzaG9sZHMgY2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICBEb24ndCBmb3JnZXQgdG8gc2lnbmFsIHRoZSBfY2hhaW4gb3IgX2xvb3AgZnVuY3Rpb24KCSAgd2hlbiB0aGUgcXVldWUgc2l6ZSBvciB0aHJlc2hvbGRzIGNoYW5nZSBzaW5jZSB0aGF0IG1pZ2h0CgkgIGNhdXNlIHRoZW0gdG8gbWFrZSBwcm9ncmVzIGFnYWluLgoKMjAwNi0wNS0xMSAxODoxMDozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgR19PQkpFQ1RfQ0xBU1MgbWFjcm8gdXNhZ2UgYmF0Y2ggY2xlYW51cCwgZml4ZXMgIzMzNzc0NyBmb3IgY29yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZF9zcmNfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5jOiAoZ3N0X2V4YW1wbGVfY2xhc3NfaW5pdCk6CgkgICogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90aHJlYWRzL3NpZ25hbHMuYzogKGdzdF90ZXN0X2NsYXNzX2luaXQpOgoJICBHX09CSkVDVF9DTEFTUyBtYWNybyB1c2FnZSBiYXRjaCBjbGVhbnVwLCBmaXhlcyAjMzM3NzQ3IGZvciBjb3JlCgoyMDA2LTA1LTExIDEwOjM1OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBSZWdpc3RlciBzdWJidWZlciBhbG9uZyB3aXRoIHRoZSBidWZmZXIgdHlwZSBzbyB0aGF0IGl0IGRvZXMgbm90IGFjY2lkZW50YWxseSBnZXRzIHJlZ2lzdGVyZWQgZnJvbSBOLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2luaXRpYWxpemUpOgoJICBSZWdpc3RlciBzdWJidWZlciBhbG9uZyB3aXRoIHRoZSBidWZmZXIgdHlwZSBzbyB0aGF0CgkgIGl0IGRvZXMgbm90IGFjY2lkZW50YWxseSBnZXRzIHJlZ2lzdGVyZWQgZnJvbSBOCgkgIGRpZmZlcmVudCBzdHJlYW1pbmcgdGhyZWFkcyBpbiBhIG5vbiB0aHJlYWRzYWZlIHdheS4KCjIwMDYtMDUtMTAgMTY6NDQ6MTUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBNYWtlIGd0ay1kb2MgZ2VuZXJhdGUgZG9jcyBmb3Igb3VyIGlubGluZWQgZ3N0X2J1ZmZlcl9yZWYoKSwgZ3N0X2V2ZW50X3JlZigpIGFuZCBnc3RfbWVzc2FnZV9yZWYoKSBmdW5jdGlvbnMgYWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIE1ha2UgZ3RrLWRvYyBnZW5lcmF0ZSBkb2NzIGZvciBvdXIgaW5saW5lZCBnc3RfYnVmZmVyX3JlZigpLAoJICBnc3RfZXZlbnRfcmVmKCkgYW5kIGdzdF9tZXNzYWdlX3JlZigpIGZ1bmN0aW9ucyBhZ2FpbgoJICAodWdseSBoYWNrLCBwbGVhc2UgZG8gZml4IGlmIHRoZXJlJ3MgYSBiZXR0ZXIgd2F5IGJlc2lkZXMKCSAgb3ZlcnJpZGVzLnR4dCwgd2hpY2ggZG9lc24ndCBzZWVtIHRvIHdvcmspLgoKMjAwNi0wNS0xMCAxNTo0OTozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBsaWJzL2dzdC9jaGVjay9nc3RjaGVjay5oOiBhZGQgYW4gYXNzZXJ0IGZvciBzZXR0aW5nIHN0YXRlIHRvIGF2b2lkIGxvdHMgb2YgcmVwZXRpdGl2ZSBjb2RlIGluIHRoZSBmdXR1cmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDUtMTAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIGFuIGFzc2VydCBmb3Igc2V0dGluZyBzdGF0ZSB0byBhdm9pZCBsb3RzIG9mIHJlcGV0aXRpdmUgY29kZQoJICBpbiB0aGUgZnV0dXJlCgoyMDA2LTA1LTEwIDE1OjM4OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBmaXggYSBsZWFrIGlmIG5vIGZsYWdzIGFyZSBzZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgZml4IGEgbGVhayBpZiBubyBmbGFncyBhcmUgc2V0CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGZpeCBsZWFrIGluIHRlc3RzCgoyMDA2LTA1LTEwIDE1OjAwOjMyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOiBFeHBhbmQgYSBiaXQgb24gY2FwcyBhbmQgZmlsdGVyZWQgbGlua3MgYW5kIHVwZGF0ZSBleGFtcGxlcyB0aGF0IHdlcmUgc3RpbGwgdXNpbmcgdGhlIG5vLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgRXhwYW5kIGEgYml0IG9uIGNhcHMgYW5kIGZpbHRlcmVkIGxpbmtzIGFuZCB1cGRhdGUKCSAgZXhhbXBsZXMgdGhhdCB3ZXJlIHN0aWxsIHVzaW5nIHRoZSBubyBsb25nZXIgZXhpc3RpbmcKCSAgZ3N0X3BhZF9saW5rX2ZpbHRlcmVkKCkgKCMzMzgyMDYpLgoKMjAwNi0wNS0xMCAxNDo1MTozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogTm8gbmVlZCB0byBjYWxsIF9zdG9wIGluIF9maW5hbGl6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIE5vIG5lZWQgdG8gY2FsbCBfc3RvcCBpbiBfZmluYWxpemUuCgkgIEl0ZXJhdGUgdGhlIG1haW4gcGFkIGxpc3QgaW4gX2ZpbmFsaXplLgoJICBBZGRlZCBzb21lIG1vcmUgZGVidWcuCgkgIEZyZWUgbGlzdHMgYW5kIGRhdGEgaW4gdGhlIHJpZ2h0IG9yZGVyLgoJICBBbHNvIGZyZWUgZGF0YSB3aGVtIGRvaW5nIF9yZW1vdmVfcGFkIHdoZW4gc3RvcHBlZCBmb3IKCSAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBwcm90ZWN0IDo6c3RhcnRlZCB3aXRoIFBBRF9MT0NLIGFzCgkgIHdlbGwuCgoyMDA2LTA1LTEwIDE0OjEyOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RzdHJ1Y3R1cmUuYzogYWRkIHNvbWUgY29tbWVudHMgcmVuYW1lIGEgbWV0aG9kIHNvIHRoYXQgaXQgYWN0dWFsbHkgc2F5cyB3aGF0IGl0IGRvZXMgYmV0dGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ3R5cGVfZnJvbV9hYmJyKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfdmFsdWUpOgoJICBhZGQgc29tZSBjb21tZW50cwoJICByZW5hbWUgYSBtZXRob2Qgc28gdGhhdCBpdCBhY3R1YWxseSBzYXlzIHdoYXQgaXQgZG9lcyBiZXR0ZXIKCjIwMDYtMDUtMTAgMTQ6MDU6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogbWFrZSBzdXJlIHNvbWUgZXNzZW50aWFsIHR5cGVzIHVzZWQgYnkgZXZlbnRzIGFyZSByZWdpc3RlcmVkIGFzIHBhcnQgb2YgZ3N0X2luaXQoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKF9nc3RfZXZlbnRfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoX2dzdF9mb3JtYXRfaW5pdGlhbGl6ZSk6CgkgIG1ha2Ugc3VyZSBzb21lIGVzc2VudGlhbCB0eXBlcyB1c2VkIGJ5IGV2ZW50cyBhcmUgcmVnaXN0ZXJlZAoJICBhcyBwYXJ0IG9mIGdzdF9pbml0KCkKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICBpZiBubyBmbGFncyBhcmUgc2V0LCBzZXJpYWxpemUgdGhlbSB0byBhIHZhbHVlIHRoYXQgcmVwcmVzZW50cyBOT05FCgkgIHNvIHRoYXQgZGVzZXJpYWxpemluZyB0aGVtIHdvcmtzCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBhZGQgdGVzdHMgZm9yIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbiBvZiBmbGFncwoKMjAwNi0wNS0xMCAxMzo1Mzo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBsaW1pdCB0byA4MCBjaGFycyBhZGQgbm90ZSBhYm91dCBjaGFuZ2luZyBkaXZpZGVyIGZvciBmbGFncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbGltaXQgdG8gODAgY2hhcnMKCSAgYWRkIG5vdGUgYWJvdXQgY2hhbmdpbmcgZGl2aWRlciBmb3IgZmxhZ3MKCjIwMDYtMDUtMTAgMTE6MjQ6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IFVwZGF0ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2NvbGxlY3QpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0X3JhbmdlKSwgKGdzdF9jb2xsZWN0X3BhZHNfYXZhaWxhYmxlKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hlY2tfcGFkcyksIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX2NvbGxlY3RlZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICBVcGRhdGUgZG9jcy4KCSAgQmV0dGVyIGRlYnVnIGluZm8uCgkgIENhdGNoIGFuZCByZXR1cm4gZXJyb3JzIGZyb20gdGhlIGNvbGxlY3QgZnVuY3Rpb24KCSAgUmVmdXNlIGRhdGEgb24gZW9zIHBhZHMuCgoyMDA2LTA1LTEwIDEwOjI2OjU1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGludGVyZmFjZS5oOiBHU1RfSU1QTEVNRU5UU19JTlRFUkZBQ0UgYW5kIEdTVF9JU19JTVBMRU1FTlRTX0lOVEVSRkFDRSB1c2UgdGhlIG5vcm1hbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW50ZXJmYWNlLmg6CgkgIEdTVF9JTVBMRU1FTlRTX0lOVEVSRkFDRSBhbmQgR1NUX0lTX0lNUExFTUVOVFNfSU5URVJGQUNFIHVzZSB0aGUgbm9ybWFsCgkgIEdJbnRlcmZhY2UgdHlwZSBjaGVja2luZy4KCSAgVGhleSB3ZXJlIHByZXZpb3VzbHkgdXNpbmcgbm9uLWRlZmluZWQgbWFjcm9zLgoKMjAwNi0wNS0wOSAyMDo0NzoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuKjogQ2xlYW4gdXAgdGhlIG1lc3MgdGhhdCBpcyBjb2xsZWN0cGFkcywgYWRkIGNvbW1lbnRzIGFuZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdF9wYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2ZsdXNoaW5nKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcGVlayksIChnc3RfY29sbGVjdF9wYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2F2YWlsYWJsZSksIChnc3RfY29sbGVjdF9wYWRzX3JlYWQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19mbHVzaCksIChnc3RfY29sbGVjdF9wYWRzX2NoZWNrX3BhZHMpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgIENsZWFuIHVwIHRoZSBtZXNzIHRoYXQgaXMgY29sbGVjdHBhZHMsIGFkZCBjb21tZW50cyBhbmQKCSAgRklYTUVzIHdoZXJlIG5lZWRlZC4KCSAgTWFpbnRhaW4gYSBzZXBhcmF0ZSBwYWQgbGlzdCBzbyB3ZSBjYW4gYWRkIHBhZHMgd2hpbGUKCSAgY29sbGVjdGluZyB0aGUgb3RoZXIgb25lcy4gRm9yIHRoaXMgd2UgbmVlZCBhIG5ldyBzZXBhcmF0ZQoJICBsb2NrIChzZWUgY29taWNzKS4KCSAgRml4IG1lbW9yeSBsZWFrIGluIGZpbmFsaXplLgoJICBSZWZhY3RvciBzb21lIHdlaXJkIGNvZGUgdG8gc2V0L3Vuc2V0IHBhZCBmbHVzaGluZyBmbGFncywgbWFyawoJICB3aXRoIGNvbW1lbnRzLgoJICBEb24ndCBjcmFzaCBpbiBfYXZhaWxhYmxlLCBfcmVhZCwgX2ZsdXNoIHdoZW4gd2UncmUgRU9TLgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgSWdub3JlIGFkYXB0ZXIgY2hlY2sgYmluYXJ5LgoKMjAwNi0wNS0wOSAxOToxNDo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgZG9jIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA2LTA1LTA5IDE3OjU4OjM1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQ29uc3QtaWZ5IEdFbnVtVmFsdWUgYXJyYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9yZXNvbHZlcl9nZXRfdHlwZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAoZ3N0X2Zha2Vfc2lua19zdGF0ZV9lcnJvcl9nZXRfdHlwZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfZGF0YV9nZXRfdHlwZSksCgkgIChnc3RfZmFrZV9zcmNfc2l6ZXR5cGVfZ2V0X3R5cGUpLCAoZ3N0X2Zha2Vfc3JjX2ZpbGx0eXBlX2dldF90eXBlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChxdWV1ZV9sZWFreV9nZXRfdHlwZSk6CgkgIENvbnN0LWlmeSBHRW51bVZhbHVlIGFycmF5cy4KCjIwMDYtMDUtMDkgMTM6MjM6MDYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6IEFkZCB0ZXN0IGNhc2UgZm9yIGZsYWdzICsgZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIHRlc3QgY2FzZSBmb3IgZmxhZ3MgKyBnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUoKS4KCjIwMDYtMDUtMDkgMTI6MDE6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IGdzdF9idWZmZXJfbWFrZV9tZXRhZGF0YV93cml0YWJsZSgpIHNob3VsZCBtYWludGFpbiB0aGUgYnVmZmVyIGZsYWdzICh0aG9zZSB0aGF0IG1ha2Ugc2Vuc2UgYXQgbGVhc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKToKCSAgZ3N0X2J1ZmZlcl9tYWtlX21ldGFkYXRhX3dyaXRhYmxlKCkgc2hvdWxkIG1haW50YWluIHRoZQoJICBidWZmZXIgZmxhZ3MgKHRob3NlIHRoYXQgbWFrZSBzZW5zZSBhdCBsZWFzdCkgKHNlZSAjMzQwODU5KS4KCjIwMDYtMDUtMDkgMTA6NTM6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IEZpeCB1cCBpbmNsdWRlczogbmVlZCB0byBpbmNsdWRlIHN0ZGxpYi5oIGluIHRvb2xzLmggZm9yIGV4aXQoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgKiB0b29scy90b29scy5oOgoJICBGaXggdXAgaW5jbHVkZXM6IG5lZWQgdG8gaW5jbHVkZSBzdGRsaWIuaCBpbiB0b29scy5oIGZvciBleGl0KCkuCgoyMDA2LTA1LTA5IDEwOjAyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuKjogQVBJOiBhZGQgR1NUX1RBR19JTUFHRSB0YWcgKCMzNDA3MjEpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOiAoX2dzdF90YWdfaW5pdGlhbGl6ZSk6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgQVBJOiBhZGQgR1NUX1RBR19JTUFHRSB0YWcgKCMzNDA3MjEpLgoKMjAwNi0wNS0wOCAxNzoxMjowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWVyeS5jOiBBZGRlZCBzb21lIGRvY3MgZm9yIHRoZSBzZWdtZW50IHF1ZXJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgQWRkZWQgc29tZSBkb2NzIGZvciB0aGUgc2VnbWVudCBxdWVyeS4KCjIwMDYtMDUtMDggMTc6MDM6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWx3YXlzIHB1c2ggbm9uLWZsdXNoaW5nIHNlcmlhbGl6ZWQgZXZlbnRzIGluIHRoZSBzdHJlYW1pbmcgdGhyZWFkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEFsd2F5cyBwdXNoIG5vbi1mbHVzaGluZyBzZXJpYWxpemVkIGV2ZW50cyBpbiB0aGUgc3RyZWFtaW5nCgkgIHRocmVhZC4KCjIwMDYtMDUtMDggMTU6NTM6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICB3aGl0ZXNwYWNlLCBjb21tZW50LCBkb2MgZml4dXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UsIGNvbW1lbnQsIGRvYyBmaXh1cAoKMjAwNi0wNS0wOCAxNTo1MjoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZXJyb3IuYzogQWRkIGEgbWlzc2luZyBlcnJvciBzdHJpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9zdHJlYW1fZXJyb3JzX2luaXQpOgoJICBBZGQgYSBtaXNzaW5nIGVycm9yIHN0cmluZy4KCjIwMDYtMDUtMDggMTQ6NTU6MjYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgYXBwbGllZF9yYXRlIHRvIHRoZSBkZWJ1ZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbmZpZ3VyZV9zZWdtZW50KToKCSAgQWRkIGFwcGxpZWRfcmF0ZSB0byB0aGUgZGVidWcKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspOgoJICBDb3B5IGFwcGxpZWRfcmF0ZSBpbnRvIHRoZSBvdXRnb2luZyBORVdTRUdNRU5UIGV2ZW50CgoyMDA2LTA1LTA4IDExOjQ5OjQzICswMDAwICBQaGlsaXBwZSBSb3VxdWllciA8cGhpbGlwcGVyb0BsaWJlcnR5c3VyZi5mcj4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogY2FsbCA6OnVubG9jayBiZWZvcmUgdGFraW5nIHRoZSBQUkVST0xMX0xPQ0sgc28gd2UgY2FuIHNhZmVseSBoYW5kbGUgZWxlbWVudHMgdGhhdCBsb2NrIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFBoaWxpcHBlIFJvdXF1aWVyIDxwaGlsaXBwZXJvIGF0IGxpYmVydHlzdXJmIGRvdCBmcj4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIGNhbGwgOjp1bmxvY2sgYmVmb3JlIHRha2luZyB0aGUgUFJFUk9MTF9MT0NLIHNvIHdlIGNhbiBzYWZlbHkKCSAgaGFuZGxlIGVsZW1lbnRzIHRoYXQgbG9jayBpbiA6OnJlbmRlci4KCSAgRml4ZXMgIzM0MDE3NC4KCjIwMDYtMDUtMDggMTE6NDM6MTkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBhdXRvZ2VuLnNoOiBEYXJ3aW4ncyBsaWJ0b29saXplIGlzIGluIGZhY3QgY2FsbGVkIGdsaWJ0b29saXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBhdXRvZ2VuLnNoOiAoQ09ORklHVVJFX0RFRl9PUFQpOgoJICBEYXJ3aW4ncyBsaWJ0b29saXplIGlzIGluIGZhY3QgY2FsbGVkIGdsaWJ0b29saXplLgoJICBBZGRpbmcgZ2xpYnRvb2xpemUgdG8gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgbmFtZXMgZm9yIGxpYnRvb2xpemUuCgoyMDA2LTA1LTA4IDExOjM1OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFVuaWZ5IGVycm9yIGhhbmRsaW5nLCBkb24ndCBwb3N0IGFuIGVycm9yIG1lc3NhZ2Ugd2hlbiBhIHB1c2goKSByZXR1cm5zIEVPUyBidXQgcGVyZm9ybSBvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBVbmlmeSBlcnJvciBoYW5kbGluZywgZG9uJ3QgcG9zdCBhbiBlcnJvciBtZXNzYWdlCgkgIHdoZW4gYSBwdXNoKCkgcmV0dXJucyBFT1MgYnV0IHBlcmZvcm0gb3VyIG5vcm1hbCBFT1MKCSAgaGFuZGxpbmcgY29kZS4gRml4ZXMgIzM0MDc3Mi4KCjIwMDYtMDUtMDggMDk6NTI6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDogTWFrZSB1cHN0ZWFtL2Rvd25zdHJlYW0gY29uY2VwdHMgbW9yZSBjbGVhci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgIE1ha2UgdXBzdGVhbS9kb3duc3RyZWFtIGNvbmNlcHRzIG1vcmUgY2xlYXIuCgkgIEdpdmUgYW4gZXhhbXBsZSBvZiBzZXJpYWxpemVkL25vbi1zZXJpYWxpemVkIGV2ZW50cy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdHJlYW1zLnR4dDoKCSAgTWVudGlvbiBhcHBsaWVkX3JhdGUuCgkgICogZG9jcy9kZXNpZ24vcGFydC10cmlja21vZGVzLnR4dDoKCSAgTWVudGlvbiBhcHBsaWVkIHJhdGUsIGZsZXNoIG91dCBzb21lIG1vcmUgdXNlIGNhc2VzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnQpLCAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudF9mdWxsKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudF9mdWxsKSwgKGdzdF9ldmVudF9uZXdfdGFnKSwKCSAgKGdzdF9ldmVudF9wYXJzZV90YWcpLCAoZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSksCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyX3NpemUpLCAoZ3N0X2V2ZW50X25ld19xb3MpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksIChnc3RfZXZlbnRfcGFyc2Vfc2VlayksCgkgIChnc3RfZXZlbnRfbmV3X25hdmlnYXRpb24pOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGQgYXBwbGllZF9yYXRlIGZpZWxkIHRvIE5FV1NFR01FTlQgZXZlbnQuCgkgIEFQSTogZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudF9mdWxsKCkKCSAgQVBJOiBnc3RfZXZlbnRfcGFyc2VfbmV3X3NlZ21lbnRfZnVsbCgpCgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCksCgkgIChnc3Rfc2VnbWVudF90b19zdHJlYW1fdGltZSksIChnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUpOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIEFkZCBhcHBsaWVkX3JhdGUgdG8gR3N0U2VnbWVudCBzdHJ1Y3R1cmUuCgkgIE1ha2UgY2FsY3VsYXRpb24gb2Ygc3RyZWFtX3RpbWUgYW5kIHJ1bm5pbmdfdGltZSBtb3JlIGNvcnJlY3QKCSAgd3J0IHJhdGUvYXBwbGllZF9yYXRlLgoJICBBZGQgc29tZSBtb3JlIGRvY3MuCgkgIEFQSTogR3N0U2VnbWVudDo6YXBwbGllZF9yYXRlIGZpZWxkCgkgIEFQSTogZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnRfZnVsbCgpOwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBQYXJzZSBhbmQgdXNlIGFwcGxpZWRfcmF0ZSBpbiB0aGUgR3N0U2VnbWVudCBmaWVsZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWRkIGNoZWNrIGZvciBhcHBsaWVkX3JhdGUgZmllbGQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdHNlZ21lbnRzX3N1aXRlKToKCSAgQWRkIG1vcmUgY2hlY2tzIGZvciB2YXJpb3VzIEdzdFNlZ21lbnQgb3BlcmF0aW9ucy4KCjIwMDYtMDUtMDggMDk6MTY6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFN0b3JlIHRoZSBzeW5jIHRpbWUgb2YgdGhlIGJ1ZmZlciBlbmQgcG9zaXRpb24gc2VwYXJhdGx5IGluIGEgbmV3IHZhcmlhYmxlIGVvc19ydGltZSBzbyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFN0b3JlIHRoZSBzeW5jIHRpbWUgb2YgdGhlIGJ1ZmZlciBlbmQgcG9zaXRpb24gc2VwYXJhdGx5IGluIGEKCSAgbmV3IHZhcmlhYmxlIGVvc19ydGltZSBzbyB3ZSBjYW4gcHJvcGVybHkgc3luYyB0aGUgRU9TIGV2ZW50LgoJICBGaXhlcyAjMzQwNjk3LgoJICBGaXggdGhlIGRvY3MgZm9yIGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKCkuCgkgIERvbid0IHNldCBzZWdtZW50IHN0YXJ0IHRvIGludmFsaWQgdmFsdWUgd2hlbiB3ZSByZWNlaXZlIGEKCSAgbm9uIFRJTUUgbmV3c2VnbWVudC4KCSAgZ2V0IGNsb3NlciB0byBoYW5kbGluZyBwb3NpdGlvbiByZXBvcnRpbmcgZm9yIG5lZ2F0aXZlIHJhdGVzCgkgIGNvcnJlY3RseS4KCjIwMDYtMDUtMDcgMTk6NTc6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IERvY3MgYWJvdXQgaG93IHRvIHByaW50IGNhcHMgZm9yIGRlYnVnIHB1cnBvc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICBEb2NzIGFib3V0IGhvdyB0byBwcmludCBjYXBzIGZvciBkZWJ1ZyBwdXJwb3Nlcy4KCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCk6CgkgIHVzZSBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlIGluc3RlYWQgb2YgZ3N0X2NhcHNfY29weSwgRml4ZXMgIzM0MDYwOAoKMjAwNi0wNS0wNiAyMTo0NToyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogdXNlIGZ1bGwgZW51bSBuYW1lcyBhbmQgcHJlcHJlbmQgYSAnJScgaW4gZG9jcyBzdHJpbmdzIHRvIG1ha2UgcmVjZW50IGd0ay1kb2MgdHVybiB0aGF0IGludG8gYSBsaW5rCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIHVzZSBmdWxsIGVudW0gbmFtZXMgYW5kIHByZXByZW5kIGEgJyUnIGluIGRvY3Mgc3RyaW5ncyB0byBtYWtlIHJlY2VudAoJICBndGstZG9jIHR1cm4gdGhhdCBpbnRvIGEgbGluawoKMjAwNi0wNS0wNSAyMTo0NDo1NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsLzogU29tZSB0eXBvIGZpeGVzLCBzb21lIGFkZGl0aW9ucywgc29tZSBjbGFyaWZpY2F0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1idXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgU29tZSB0eXBvIGZpeGVzLCBzb21lIGFkZGl0aW9ucywgc29tZSBjbGFyaWZpY2F0aW9ucy4KCjIwMDYtMDUtMDUgMTc6NDU6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IFVzZSB0aGUgc3RyaW5nIHBhc3NlZCB0byBnX29wdGlvbl9jb250ZXh0X25ldygpIGZvciB3aGF0IGl0J3MgaW50ZW5kZWQgZm9yIC0gdGhlIHByb2dyYW0gbmFtZSBpcyBhbHJlYWR5IHByaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1ydW4uYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICBVc2UgdGhlIHN0cmluZyBwYXNzZWQgdG8gZ19vcHRpb25fY29udGV4dF9uZXcoKSBmb3IKCSAgd2hhdCBpdCdzIGludGVuZGVkIGZvciAtIHRoZSBwcm9ncmFtIG5hbWUgaXMgYWxyZWFkeQoJICBwcmludGVkIGVsc2V3aGVyZS4KCjIwMDYtMDUtMDUgMTc6MDc6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IEFkZCBiYWNrIC0tdmVyc2lvbiBjb21tYW5kIGxpbmUgb3B0aW9uICgjMzQwNDYwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6IChtYWluKToKCSAgKiB0b29scy90b29scy5oOgoJICBBZGQgYmFjayAtLXZlcnNpb24gY29tbWFuZCBsaW5lIG9wdGlvbiAoIzM0MDQ2MCkuCgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChoYXZlX3R5cGVfaGFuZGxlciksICh0eXBlZmluZF9maWxlKSwgKG1haW4pOgoJICBBZGQgLS12ZXJzaW9uIG9wdGlvbiBhbmQgdXNlIEdPcHRpb24gZm9yIGFyZ3VtZW50IHBhcnNpbmc7IHJlZmFjdG9yIGEKCSAgYml0OyBhY2NlcHQgZGlyZWN0b3JpZXMgYXMgYXJndW1lbnRzIGFuZCByZWN1cnNlIGludG8gdGhlbTsgbGFzdGx5LAoJICBwcmludCBhIGRlY2VudCBlcnJvciBtZXNzYWdlIHdoZW4gdGhpbmdzIGdvIHdyb25nLgoKMjAwNi0wNS0wNSAxNDozODowMSArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtYmlucy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIERvbid0IG1lbnRpb24gR3N0VGhyZWFkICgjMzQwNjExKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRG9uJ3QgbWVudGlvbiBHc3RUaHJlYWQgKCMzNDA2MTEpCgkgIFVwZGF0ZSBsaW5rIHRvIEdPYmplY3QgdHV0b3JpYWwgKCMzNDA2MDcpCgoyMDA2LTA1LTA1IDE0OjI3OjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkIG5vdGUgYWJvdXQgcmVmY291bnRpbmcgYW5kIG1pbmlvYmplY3QvYnVmZmVyIHdyaXRlYWJpbGl0eSB0byBkb2NzLiBGaXhlcyAjMzQwNjA0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBBZGQgbm90ZSBhYm91dCByZWZjb3VudGluZyBhbmQgbWluaW9iamVjdC9idWZmZXIgd3JpdGVhYmlsaXR5CgkgIHRvIGRvY3MuIEZpeGVzICMzNDA2MDQKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgQWRkZWQgc29tZSBleHBsYW5hdGlvbiBhYm91dCBAa2xhc3MuCgoyMDA2LTA1LTA1IDE0OjA5OjIxICswMDAwICBNYWNpZWogS2F0YWZpYXN6IDxtYXRocmlja0BtYXRocmljay5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvbWFudWFsL2ludHJvLW1vdGl2YXRpb24ueG1sOgoJKiBkb2NzL21hbnVhbC9tYW51YWwueG1sOgoJICBBdm9pZCBDT1JCQSAmIEJvbm9ibyByZWZlcmVuY2VzICgjMzQwNTk4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQXZvaWQgQ09SQkEgJiBCb25vYm8gcmVmZXJlbmNlcyAoIzM0MDU5OCkKCjIwMDYtMDUtMDUgMTM6NTM6MjggKzAwMDAgIE1hY2llaiBLYXRhZmlhc3ogPG1hdGhyaWNrQG1hdGhyaWNrLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9tYW51YWwvYmFzaWNzLWJ1cy54bWw6CgkqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgRml4IHVwIHNvbWUgaW5hY2N1cmFjaWVzIGFuZCBvbWlzc2lvbnMgaW4gQURNICgjMzQwNjA5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRml4IHVwIHNvbWUgaW5hY2N1cmFjaWVzIGFuZCBvbWlzc2lvbnMgaW4gQURNICgjMzQwNjA5KQoKMjAwNi0wNS0wNSAxMjo1MzozMyArMDAwMCAgTWFjaWVqIEthdGFmaWFzeiA8bWF0aHJpY2tAbWF0aHJpY2sub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgU21hbGwgdHlwbyBpbiBkb2NzICgjMzQwNjI1KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU21hbGwgdHlwbyBpbiBkb2NzICgjMzQwNjI1KQoKMjAwNi0wNS0wNSAwOTowMTo1MiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9wYXJzZS9NYWtlZmlsZS5hbTogTWFrZSAnbWFrZSAtaicgcHJvb2YgKHNlZSAjMzQwNjk4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICBNYWtlICdtYWtlIC1qJyBwcm9vZiAoc2VlICMzNDA2OTgpLgoKMjAwNi0wNS0wNSAwODo1NjozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNvbmZpZ3VyZS5hYzogUmVxdWlyZSBHTGliLTIuOCBoZXJlIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUmVxdWlyZSBHTGliLTIuOCBoZXJlIGFzIHdlbGwuCgoyMDA2LTA1LTA1IDA4OjE3OjIyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIHByZSBnbGliMi44IGNvbXBhdGliaWxpdHksIGZpeGVzICMzNDA1MDgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfaW5pdCksIChnc3Rfb2JqZWN0X3JlZiksCgkgIChnc3Rfb2JqZWN0X3VucmVmKSwgKGdzdF9vYmplY3RfcmVwbGFjZSksIChnc3Rfb2JqZWN0X2Rpc3Bvc2UpLAoJICAoZ3N0X29iamVjdF9kaXNwYXRjaF9wcm9wZXJ0aWVzX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV94bWxfcmVhZF9jYWNoZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF9kYXRlX2dldF90eXBlKSwgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6CgkgIFJlbW92ZSBwcmUgZ2xpYjIuOCBjb21wYXRpYmlsaXR5LCBmaXhlcyAjMzQwNTA4CgoyMDA2LTA1LTA0IDE4OjE0OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHRhZ2xpc3QuaDogTWVudGlvbiB0eXBlIG9mIHRhZ3MgaW4gZG9jIGJsdXJicy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRhZ2xpc3QuaDoKCSAgTWVudGlvbiB0eXBlIG9mIHRhZ3MgaW4gZG9jIGJsdXJicy4KCjIwMDYtMDUtMDQgMTY6MzQ6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXN0b3JlIGFjY2VwdGNhcHMgY2hlY2tpbmcgYmVoYXZpb3VyIG5vdyB0aGF0IGdvb2QgcGx1Z2lucyBoYXZlIGJlZW4gcmVsZWFzZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX3B1c2gpOgoJICBSZXN0b3JlIGFjY2VwdGNhcHMgY2hlY2tpbmcgYmVoYXZpb3VyIG5vdyB0aGF0IGdvb2QgcGx1Z2lucyBoYXZlCgkgIGJlZW4gcmVsZWFzZWQuCgoyMDA2LTA1LTA0IDE1OjIwOjE0ICswMDAwICBKYW1lcyBBbmRyZXdhcnRoYSA8dHJzODBAdGFydGFydXMudXdhLmVkdS5hdT4KCgkgIE1ha2Ugc3VyZSBnc3Rwcml2YXRlLmggYW5kL29yIGNvbmZpZy5oIGFyZSBhbHdheXMgaW5jbHVkZWQgZmlyc3QsIG90aGVyd2lzZSBzb21lIG9mIG91ciBkZWZpbmVzIChsaWtlIF9GSUxFX09GRlNFVF9CSS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IEphbWVzIEFuZHJld2FydGhhIDx0cnM4MCBhdCB0YXJ0YXJ1cyB1d2EgZWR1IGF1PgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdHBhcnNlLmM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L3BhcnNlL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgIE1ha2Ugc3VyZSBnc3Rwcml2YXRlLmggYW5kL29yIGNvbmZpZy5oIGFyZQoJICBhbHdheXMgaW5jbHVkZWQgZmlyc3QsIG90aGVyd2lzZSBzb21lIG9mIG91cgoJICBkZWZpbmVzIChsaWtlIF9GSUxFX09GRlNFVF9CSVRTKSBtaWdodCBiZQoJICByZWRlZmluZWQgaW4gdGhlIHN5c3RlbSBoZWFkZXJzLiBGaXhlcyBidWlsZAoJICBvbiBvcGVuc29sYXJpcyAoIzM0MDAxNikuCgoyMDA2LTA1LTA0IDE0OjE5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQVBJOiBhZGRpdGlvbjogZ3N0X2FkYXB0ZXJfdGFrZV9idWZmZXIoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBBUEk6IGFkZGl0aW9uOiBnc3RfYWRhcHRlcl90YWtlX2J1ZmZlcigpCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9wdXNoKSwKCSAgKGdzdF9hZGFwdGVyX3BlZWspLCAoZ3N0X2FkYXB0ZXJfdGFrZSksIChnc3RfYWRhcHRlcl90YWtlX2J1ZmZlciksCgkgIChnc3RfYWRhcHRlcl9hdmFpbGFibGVfZmFzdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIFByZXBhcmUgZm9yIG9wdGltaXppbmcgdGhlIGhlbGwgb3V0IG9mIHRoaXMgaHVnZWx5IGluZWZmaWNpZW50CgkgIHBpZWNlIG9mIGNvZGUuCgkgIEFkZGVkIGdzdF9hZGFwdGVyX3Rha2VfYnVmZmVyKCkgc28gd2UgY2FuIGF0IGxlYXN0IHN0YXJ0IHRoaW5raW5nCgkgIGFib3V0IHN1YmJ1ZmZlcmluZyBhbmQgbWVyZ2luZy4KCSAgQWRkZWQgc29tZSBjb21tZW50cy4KCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2FkYXB0ZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9hZGFwdGVyX3N1aXRlKSwgKG1haW4pOgoJICBBZGRlZCBHc3RBZGFwdGVyIGNoZWNrLgoKMjAwNi0wNS0wNCAxMzozMDozMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OiBGaXggc29tZSB0eXBvcywgYWRkIGJsdXJiIGFib3V0IGJ1ZmZlciBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgIEZpeCBzb21lIHR5cG9zLCBhZGQgYmx1cmIgYWJvdXQgYnVmZmVyIGZsYWdzLgoKMjAwNi0wNS0wMyAxNjo0NToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBtYWtlIHN1cmUgR3N0QmFzZVRyYW5zZm9ybUNsYXNzIHNob3dzIHVwIGluIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIG1ha2Ugc3VyZSBHc3RCYXNlVHJhbnNmb3JtQ2xhc3Mgc2hvd3MgdXAgaW4gdGhlIGRvY3MKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgbW92ZSBkb2NzIHNvIGd0ay1kb2MgcGlja3MgaXQgdXAgbm93CgoyMDA2LTA1LTAzIDE2OjQyOjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICB3aGl0ZXNwYWNlIHJlbW92YWwgYW5kIHdpZHRoIGNvZXJjaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIHJlbW92YWwgYW5kIHdpZHRoIGNvZXJjaW9uCgoyMDA2LTA1LTAzIDE2OjQwOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJICB3aGl0ZXNwYWNlIG1vdmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBtb3ZpbmcKCjIwMDYtMDUtMDIgMTc6Mjk6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IGFkZCBtaXNzaW5nIHN5bWJvbHMgdG8gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBhZGQgbWlzc2luZyBzeW1ib2xzIHRvIGRvY3MKCjIwMDYtMDUtMDIgMTc6MTc6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogYmFjayBvdXQgdGhlIG5ld3NlZ21lbnQgaGFuZGxpbmcgY2hhbmdlLCBzZWUgIzM0MDA2MCBmb3Igb25nb2luZyBkaXNjdXNzaW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBiYWNrIG91dCB0aGUgbmV3c2VnbWVudCBoYW5kbGluZyBjaGFuZ2UsIHNlZSAjMzQwMDYwIGZvciBvbmdvaW5nCgkgIGRpc2N1c3Npb24KCjIwMDYtMDQtMjkgMjM6MTU6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtcnVuLmM6IEZpeCB3cm9uZyBnX2ZpbGVfdGVzdCgpIHVzYWdlIChzZWUgZ2xpYiBkb2NzIGZvciB3aHkgaXQgZG9lc24ndCB3b3JrKTsgZml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4gRmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAoZ2V0X2NhbmRpZGF0ZXMpLCAobWFpbik6CgkgIEZpeCB3cm9uZyBnX2ZpbGVfdGVzdCgpIHVzYWdlIChzZWUgZ2xpYiBkb2NzIGZvciB3aHkgaXQgZG9lc24ndAoJICB3b3JrKTsgZml4IHR5cG8gaW4gZXJyb3IgbWVzc2FnZS4gRml4ZXMgIzM0MDA3OS4KCjIwMDYtMDQtMjkgMDA6Mzg6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL3RtcGwvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA2LTA0LTI5IDAwOjM2OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIG1vdmUgdXBsb2FkLm1hayB0byBjb21tb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvTWFrZWZpbGUuYW06CgkgICogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3NsaWRlcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL3VwbG9hZC5tYWs6CgkgICogY29tbW9uL3VwbG9hZC5tYWs6CgkgIG1vdmUgdXBsb2FkLm1hayB0byBjb21tb24KCjIwMDYtMDQtMjkgMDA6MzU6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vbW92aW5nLXBsdWdpbnM6CgkgIGFkZCBtb3JlIG5vdGVzIG9uIG1vdmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgbm90ZXMgb24gbW92aW5nCgoyMDA2LTA0LTI5IDAwOjMzOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBhZGQgbW9yZSBhc3NlcnRzIG9uIHJlZmNvdW50cyBkbyBtb3JlIGNsZWFudXAgYXQgZW5kIG9mIHRlc3RzIGZpeCB0ZXN0IGxlYWtzIHNob3dpbmcgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0yOSAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgYWRkIG1vcmUgYXNzZXJ0cyBvbiByZWZjb3VudHMKCSAgZG8gbW9yZSBjbGVhbnVwIGF0IGVuZCBvZiB0ZXN0cwoJICBmaXggdGVzdCBsZWFrcyBzaG93aW5nIGluIEZDNQoKMjAwNi0wNC0yOCAyMjo1NjoyOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogcmV2ZXJ0ZWQgd3JvbmcgY2hhbmdlIGFuZCByZWZsb3dlZCBjb2RlIHRvIGF2b2lkIG90aGVycyBmYWxsaW5nIGludG8gdGhpcyB0cmFwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgcmV2ZXJ0ZWQgd3JvbmcgY2hhbmdlIGFuZCByZWZsb3dlZCBjb2RlIHRvIGF2b2lkIG90aGVycyBmYWxsaW5nIGludG8KCSAgdGhpcyB0cmFwCgoyMDA2LTA0LTI4IDIwOjU1OjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IGZpeCBjaGFuZ2Vsb2cgZW50cnkgYWJvdXQgbGFzdCBjb2xsZWN0cGFkcyBjaGFuZ2UsIGFkZCBub3RlcyBhYm91dCBwcm9wZXIgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOgoJICBmaXggY2hhbmdlbG9nIGVudHJ5IGFib3V0IGxhc3QgY29sbGVjdHBhZHMgY2hhbmdlLAoJICBhZGQgbm90ZXMgYWJvdXQgcHJvcGVyIGZpeAoKMjAwNi0wNC0yOCAyMDo0NzoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0Lzogb25seSB3cml0ZSBvdXQgcmVnaXN0cnkgaWYgaXQgaGFzIGNoYW5nZWQsIGZpeGVzICMzMzgzMzkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgb25seSB3cml0ZSBvdXQgcmVnaXN0cnkgaWYgaXQgaGFzIGNoYW5nZWQsIGZpeGVzICMzMzgzMzkKCjIwMDYtMDQtMjggMjA6NDQ6MjEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9zY2FuX3BhdGhfbGV2ZWwpLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aCk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgIG9ubHkgd3JpdGUgb3V0IHJlZ2lzdHJ5IGlmIGl0IGhhcyBjaGFuZ2VkLCBmaXhlcyAjMzM4MzM5CgoyMDA2LTA0LTI4IDE4OjU1OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtYWtlIEdzdEVsZW1lbnREZXRhaWxzIGNvbnN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIG1ha2UgR3N0RWxlbWVudERldGFpbHMgY29uc3QKCjIwMDYtMDQtMjggMTg6NDg6MzggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBtb3JlIGRldGFpbGVkIGRlYnVnIGFuZCBmb3JtYXR0aW5nIGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19ldmVudCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCk6CgkgIG1vcmUgZGV0YWlsZWQgZGVidWcgYW5kIGZvcm1hdHRpbmcgY2xlYW51cAoKMjAwNi0wNC0yOCAxNzo1MjoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IGNsZWFudXAgZG91YmxlIGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHMpOgoJICBjbGVhbnVwIGRvdWJsZSBjb2RlCgoyMDA2LTA0LTI4IDE3OjMzOjQxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogc29tZSBsaXR0bGUgdHVuaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpOgoJICBzb21lIGxpdHRsZSB0dW5pbmcKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgYSBuZXcgdGVzdCBmb3IgbGl2ZSB2YWx1ZSBoYW5kbGluZwoKMjAwNi0wNC0yOCAxNTo1MTo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgR2l2ZSBjcmVkaXQgdG8gVGFwaSBQYWF2b2xhIGZvciBsYXN0IHBhdGNoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBHaXZlIGNyZWRpdCB0byBUYXBpIFBhYXZvbGEgZm9yIGxhc3QgcGF0Y2gKCjIwMDYtMDQtMjggMTU6NDg6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogQWRkZWQgc29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAocHVzaF9hbmRfcmVmKToKCSAgQWRkZWQgc29tZSBtb3JlIGRvY3MuCgkgIEZpeCByZWZjb3VudCBpc3N1ZSB3aGl0aCBnc3RfZWxlbWVudF9mb3VuZF90YWdzKCkgaGVscGVyCgkgIGZ1bmN0aW9uLiBGaXhlcyAjMzM4MzM1CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGRlZCB0ZXN0c3VpdGUgZm9yIGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MoKS4KCjIwMDYtMDQtMjggMTM6NTE6MDAgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBBdm9pZCBOVUxMIGRlcmVmZXJlbmNlIHdoZW4gdHJ5aW5nIHRvIHNlcmlhbGl6ZSBmbGFncyBjb250YWluaW5nIGludmFsaWQgdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfZmxhZ3MpOgoJICBBdm9pZCBOVUxMIGRlcmVmZXJlbmNlIHdoZW4gdHJ5aW5nIHRvIHNlcmlhbGl6ZSBmbGFncyBjb250YWluaW5nCgkgIGludmFsaWQgdmFsdWVzLgoKMjAwNi0wNC0yOCAxMzo0NDoyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIHNtYWxsIGRvYyBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNtYWxsIGRvYyBmaXgKCjIwMDYtMDQtMjggMTM6NDM6MDMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IElmIHdlIGdldCBFT1MgYmVmb3JlIGFueSBkYXRhIGlzIGFjY3VtdWxhdGVkLCBkb24ndCB1c2UgdW5pbml0aWFsaXNlZCBsb2NhbCB2YS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIElmIHdlIGdldCBFT1MgYmVmb3JlIGFueSBkYXRhIGlzIGFjY3VtdWxhdGVkLCBkb24ndCB1c2UKCSAgdW5pbml0aWFsaXNlZCBsb2NhbCB2YXJpYWJsZXMuCgoyMDA2LTA0LTI4IDEzOjQwOjE1ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeGVzIGluIHJlYWRpbmcvd3JpdGluZyBldmVudHMgb3ZlciBHRFAgKG5vdCBjdXJyZW50bHkgdXNlZD8pIC0gZGVyZWZlcmVuY2luZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwKCSAgKGdzdF9kcF9ldmVudF9mcm9tX3BhY2tldCk6CgkgIEZpeGVzIGluIHJlYWRpbmcvd3JpdGluZyBldmVudHMgb3ZlciBHRFAgKG5vdCBjdXJyZW50bHkgdXNlZD8pIC0KCSAgZGVyZWZlcmVuY2luZyBOVUxMIGV2ZW50cyBmb3IgdW5rbm93bi9pbnZhbGlkIGV2ZW50IHR5cGVzLCBtZW1vcnkKCSAgbGVhaywgYW5kIGNoYW5nZSBnX3dhcm5pbmcgdG8gR1NUX1dBUk5JTkcuCgoyMDA2LTA0LTI4IDEzOjI1OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXaGVuIGZyYW1lIGRyb3BwaW5nIGlzIGVuYWJsZWQsIHdlIHNob3VsZCBub3QgaWdub3JlIGZyYW1lcyB3aXRob3V0IGEgZHVyYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaXNfdG9vX2xhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19yZW5kZXJfc3RhdHMpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgV2hlbiBmcmFtZSBkcm9wcGluZyBpcyBlbmFibGVkLCB3ZSBzaG91bGQgbm90IGlnbm9yZSBmcmFtZXMKCSAgd2l0aG91dCBhIGR1cmF0aW9uLgoJICBVcGRhdGUgc29tZSBkb2N1bWVudGF0aW9uLgoKMjAwNi0wNC0yOCAxMzoxODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNi0wNC0yOCAxMzoxNjowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IGhhbmRsZSBFQUdBSU4sIEVJTlRSIGFuZCBzaG9ydCB3cml0ZXMgY29ycmVjdGx5LiBBbHNvIGNsZWFuIHVwIHNvbWUgZXJyb3IgY2FzZXMsIGF2b2lkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoZ3N0X2ZkX3NpbmtfcmVuZGVyKSwKCSAgKGdzdF9mZF9zaW5rX2NoZWNrX2ZkKSwgKGdzdF9mZF9zaW5rX3VwZGF0ZV9mZCk6CgkgIGhhbmRsZSBFQUdBSU4sIEVJTlRSIGFuZCBzaG9ydCB3cml0ZXMgY29ycmVjdGx5LiBBbHNvIGNsZWFuCgkgIHVwIHNvbWUgZXJyb3IgY2FzZXMsIGF2b2lkIGEgZGVhZGxvY2sgb24gYmFkIGZpbGUgZGVzY3JpcHRvcnMgYW5kCgkgIHVzZSBHU1RfREVCVUdfT0JKRUNULgoJICBGaXhlcyAjMzM5ODQzCgoyMDA2LTA0LTI4IDEzOjEzOjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IERvbid0IHRyeSB0byBzZXJpYWxpemUgYSBHVmFsdWUgd2l0aCBhIE5VTEwgYnVmZmVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9zZXJpYWxpemVfYnVmZmVyKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpOgoJICBEb24ndCB0cnkgdG8gc2VyaWFsaXplIGEgR1ZhbHVlIHdpdGggYSBOVUxMIGJ1ZmZlci4KCSAgRml4ZXMgIzMzOTgyMS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIEFkZGVkIGNoZWNrIGZvciBzZXJpYWxpc2F0aW9uIG9mIE5VTEwgYnVmZmVycy4KCjIwMDYtMDQtMjggMTM6MTA6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBUYWtpbmcgYSBOVUxMIG1pbmlvYmplY3QgaXMgdmFsaWQsIGZpeCB0aGUgY2FzZSB3aGVyZSB3ZSB0cnkgdG8gdW5yZWYgdGhlIE5VTEwgbWluaW9iamVjdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF92YWx1ZV90YWtlX21pbmlfb2JqZWN0KToKCSAgVGFraW5nIGEgTlVMTCBtaW5pb2JqZWN0IGlzIHZhbGlkLCBmaXggdGhlIGNhc2Ugd2hlcmUKCSAgd2UgdHJ5IHRvIHVucmVmIHRoZSBOVUxMIG1pbmlvYmplY3QuCgoyMDA2LTA0LTI4IDEzOjA1OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgd2luMzIgY29uZmlnLmgKCjIwMDYtMDQtMjggMTM6MDQ6MDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHNvbmljcHVsc2UuZGU+CgoJICBnc3QvZ3N0YmluLmM6IFVwZGF0ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IFN0ZWZhbiBLb3N0IDxlbnNvbmljIGF0IHNvbmljcHVsc2UgZG90IGRlPgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIFVwZGF0ZSBkb2NzLgoJICBEb24ndCBsZWFrIGJpbiByZWZjb3VudCB3aGVuIGEgc3RhdGUgcmVjYWxjIGlzCgkgIGluIHByb2dyZXNzIGFuZCB3ZSBkZWxheSBhbm90aGVyIG9uZSAjMzM5ODA4LgoKMjAwNi0wNC0yOCAxMjo1ODoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IE1lbnRpb24gUW9TIGFzIGFuIG9uZ29pbmcgd29yayBpdGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBNZW50aW9uIFFvUyBhcyBhbiBvbmdvaW5nIHdvcmsgaXRlbS4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWJ1ZmZlcmluZy50eHQ6CgkgIE5ldyBkb2MgYWJvdXQgYnVmZmVyaW5nIHRoYXQgbmVlZHMgdG8gYmUgZmxlc2hlZCBvdXQKCSAgYXQgc29tZSBwb2ludC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgIE1vcmUgUW9TIHBvbGljeSBmb3IgZGVjb2RlcnMvZGVtdXhlcnMvdHJhbnNmb3JtcwoJICAqIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCjIwMDYtMDQtMjggMTA6NTY6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjUgPT09CgoyMDA2LTA0LTI4IDEwOjUzOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjUKCjIwMDYtMDQtMjggMDk6NDg6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogZG9jcy91cGxvYWQubWFrOgoJICBmaXggdXBsb2FkLm1hazsgc2hvdWxkIG1vdmUgdG8gY29tbW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXBsb2FkLm1hazsgc2hvdWxkIG1vdmUgdG8gY29tbW9uCgoyMDA2LTA0LTI4IDA5OjIwOjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJICBhZGRpbmcgbWlzc2luZyBkc3AgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBtaXNzaW5nIGRzcCBmaWxlcwoKMjAwNi0wNC0yNiAxMzo1NDo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcHJlcmVsZWFzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzZQoKMjAwNi0wNC0yMiAyMTozNDoyMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBpbnRlcm5hbCBkYXRhIGZsb3cgZXJyb3JzLiAgRml4ZXMgIzMzODcxMS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBXaW0gVGF5bWFucwoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX3B1c2gpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2luaXQpOgoJICBGaXggaW50ZXJuYWwgZGF0YSBmbG93IGVycm9ycy4gIEZpeGVzICMzMzg3MTEuCgoyMDA2LTA0LTEyIDExOjU4OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogRG9uJ3QgbGVhayB0aGUgZmFjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRG9uJ3QgbGVhayB0aGUgZmFjdG9yeS4KCjIwMDYtMDQtMTIgMTE6MDY6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYmcucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlZCB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgoyMDA2LTA0LTEyIDExOjA0OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nCgoyMDA2LTA0LTEyIDEwOjU3OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2UKCjIwMDYtMDQtMTIgMTA6Mjg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogRnJlZSBhbGxvY2F0ZWQgR3N0VGltZWRWYWx1ZXMgd2hlbiBmcmVlaW5nIGxpc3Qgbm9kZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOiAoZ3N0X2NvbnRyb2xsZXJfdW5zZXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfdW5zZXRfYWxsKToKCSAgRnJlZSBhbGxvY2F0ZWQgR3N0VGltZWRWYWx1ZXMgd2hlbiBmcmVlaW5nIGxpc3Qgbm9kZXMuCgkgIFNob3VsZCBmaXggbGVha3MgJ21ha2UgY2hlY2stdmFsZ3JpbmQnIGNvbXBsYWlucyBhYm91dC4KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgIEFkZCBnc3RfY29udHJvbGxlcl91bnNldF9hbGwuCgoyMDA2LTA0LTEyIDEwOjE1OjEyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgZml4IENoYW5nZUxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IENoYW5nZUxvZwoKMjAwNi0wNC0xMSAyMTowNzoyNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgQWRkZWQgbmV3IG1ldGhvZCBfdW5zZXRfYWxsKCkgYW5kIGZpeGVkIF91bnNldCgpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl91bnNldCksCgkgIChnc3RfY29udHJvbGxlcl91bnNldF9hbGwpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICBBZGRlZCBuZXcgbWV0aG9kIF91bnNldF9hbGwoKSBhbmQgZml4ZWQgX3Vuc2V0KCkKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgQWRkZWQgdHdvIHRlc3RjYXNlcyBmb3IgbmV3IGFuZCBmaXhlZCBtZXRob2QKCjIwMDYtMDQtMTEgMTg6NDM6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOiBNU0dfRE9OVFdBSVQgaXMgbm90IGRlZmluZWQgb24gQ3lnd2luLCBzbyB3b3JrIGFyb3VuZCB0aGF0IChmaXhlcyAjMzE3MDQ4KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzogKGdzdF9uZXRfdGltZV9wYWNrZXRfc2VuZCk6CgkgIE1TR19ET05UV0FJVCBpcyBub3QgZGVmaW5lZCBvbiBDeWd3aW4sIHNvIHdvcmsKCSAgYXJvdW5kIHRoYXQgKGZpeGVzICMzMTcwNDgpLgoKMjAwNi0wNC0xMSAxNDo0ODozNCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB2ZXJzaW9uaW5nIG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdmVyc2lvbmluZyBtYWNybwoKMjAwNi0wNC0xMSAxMTo0NzozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiBTb21lIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X3JlZ2lzdGVyKSwKCSAgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKSwgKGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSk6CgkgIFNvbWUgY2xlYW51cHMuCgkgIEZpeGVkIGEgRklYTUUuCgkgIFVwZGF0ZWQgZG9jcyAoRml4ZXMgIzEzMTA3OSkKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2VsZW1lbnRfc3VpdGUpOgoJICBBZGRlZCB0ZXN0Y2FzZSBmb3IgZWxlbWVudGZhY3RvcnkgY2xhc3MgZmllbGQuCgoyMDA2LTA0LTEwIDEwOjQ2OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogQWRkZWQgc29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6CgkgIEFkZGVkIHNvbWUgbW9yZSBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpOgoJICBDYWxjdWxhdGUgbW9yZSBhY2N1cmF0ZSByYXRlIHZhbHVlcy4KCjIwMDYtMDQtMDkgMTY6NTc6MzQgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RfcHJpdmF0ZS5oOiBhZGQgYSBuZXcgI2lmZGVmIHRvIHVzZSBfX2RlY2xzcGVjKGRsbGltcG9ydCkgb25seSBmb3Igb3RoZXIgbW9kdWxlcyBhbmQgbm90IGZvciBnc3RyZWFtZXIgY29yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgYWRkIGEgbmV3ICNpZmRlZiB0byB1c2UgX19kZWNsc3BlYyhkbGxpbXBvcnQpIG9ubHkgZm9yCgkgIG90aGVyIG1vZHVsZXMgYW5kIG5vdCBmb3IgZ3N0cmVhbWVyIGNvcmUKCSAgKiBnc3QvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpOgoJICB1c2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZSBmb3IgY29udmVyc2lvbgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucwoJICAqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkgICogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGNvcmVlbGVtZW50cy5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGRhdGFwcm90b2NvbC5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdG5ldC5kc3A6CgkgIHVwZGF0ZSBwcm9qZWN0IGZpbGVzCgoyMDA2LTA0LTA4IDIwOjU3OjMxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBGaXggIzMzNzM2NSAoZ190eXBlX2NsYXNzX3JlZiA8LT4gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3Rfc3ViYnVmZmVyX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpLAoJICAoZ3N0X3NpZ25hbF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzogKGdzdF9wYWRfdGVtcGxhdGVfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfY2xhc3NfaW5pdCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKF9nc3RfY29udHJvbGxlcl9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRfc3JjX2NsYXNzX2luaXQpOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6IChnc3RfbWVtX2luZGV4X2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzogKGdzdF9leGFtcGxlX2NsYXNzX2luaXQpOgoJICAqIHRlc3RzL29sZC90ZXN0c3VpdGUvdGhyZWFkcy9zaWduYWxzLmM6IChnc3RfdGVzdF9jbGFzc19pbml0KToKCSAgRml4ICMzMzczNjUgKGdfdHlwZV9jbGFzc19yZWYgPC0+IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCkKCjIwMDYtMDQtMDggMTg6MTE6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IE11c3Qgc2V0IHBlZXIgcGFkcyBiZWZvcmUgY2FsbGluZyB0aGUgbGluayBmdW5jdGlvbiwgb3RoZXJ3aXNlIGEgdGFzayBzdGFydGVkIGZyb20gYSBsaW5rIGZ1bmN0aW9uIG1pZ2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rKToKCSAgTXVzdCBzZXQgcGVlciBwYWRzIGJlZm9yZSBjYWxsaW5nIHRoZSBsaW5rIGZ1bmN0aW9uLCBvdGhlcndpc2UKCSAgYSB0YXNrIHN0YXJ0ZWQgZnJvbSBhIGxpbmsgZnVuY3Rpb24gbWlnaHQgZ2V0IGEgZmxvdy1ub3QtbGlua2VkCgkgIHJlc3VsdCB3aGVuIHRyeWluZyB0byBwdXNoIGJlY2F1c2UgdGhlIG90aGVyIHRocmVhZCB3aGVyZSB0aGUKCSAgbGlua2luZyBoYXBwZW5zIGhhc24ndCBoYWQgYSBjaGFuY2UgdG8gc2V0IHRoZSBwZWVycyB5ZXQuIFRoaXMKCSAgbWlnaHQgaGFwcGVuIGZvciBleGFtcGxlIHdoZW4gYSBxdWV1ZSBnZXRzIGxpbmtlZCB0byBhIGRvd25zdHJlYW0KCSAgZWxlbWVudCwgYXMgcXVldWUgc3RhcnRzIGEgc3RyZWFtaW5nIHRhc2sgd2hlbiBpdHMgc291cmNlIHBhZAoJICBnZXRzIGxpbmtlZC4gSGFwcGVucyBpbiByZWFsIGxpZmUgd2hlbiBwbGF5aW5nIGJhY2sgZmxhYy9tdXNlcGFjawoJICBmaWxlcyBpbiBwbGF5YmluICgjMzMyMzkwKS4KCjIwMDYtMDQtMDggMTg6MDU6MTYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeCBicm9rZW4gR09iamVjdCBtYWNyb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdHhtbC5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgIEZpeCBicm9rZW4gR09iamVjdCBtYWNyb3MKCjIwMDYtMDQtMDcgMTU6MTk6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEluaXRpYWxpemUgc3RhcnQgYW5kIHN0b3AgdGltZXMsIHRoYW5rcyB2YWxncmluZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIEluaXRpYWxpemUgc3RhcnQgYW5kIHN0b3AgdGltZXMsIHRoYW5rcyB2YWxncmluZC4KCjIwMDYtMDQtMDcgMTQ6NTA6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEJlIGEgYml0IG5pY2VyIHRvIGJhZGx5IGJlaGF2aW5nIHVwc3RyZWFtIGVsZW1lbnRzIHRoYXQgZXhwZWN0IHVzIHRvIGRlYWwgd2l0aCBub24gVElNRSAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIEJlIGEgYml0IG5pY2VyIHRvIGJhZGx5IGJlaGF2aW5nIHVwc3RyZWFtIGVsZW1lbnRzIHRoYXQgZXhwZWN0CgkgIHVzIHRvIGRlYWwgd2l0aCBub24gVElNRSBzZWdtZW50cyBhbmQgdGltZXN0YW1wcyAoc3VjaCBhcyBmYWtlc3JjCgkgIGluIHRoZSB0ZXN0c3VpdGUpLgoKMjAwNi0wNC0wNyAxNDowMjoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogU21hbGwgZG9jdW1lbnRhdGlvbiBjbGFyaWZpY2F0aW9uIGFib3V0IHRoZSBzaWduYWwgd2F0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgU21hbGwgZG9jdW1lbnRhdGlvbiBjbGFyaWZpY2F0aW9uIGFib3V0IHRoZSBzaWduYWwgd2F0Y2guCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGVyZm9ybV9xb3MpLCAoZ3N0X2Jhc2Vfc2lua19yZXNldF9xb3MpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19yZW5kZXJfc3RhdHMpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgQ29udmVydCBhbmQgc3RvcmUgdGltZXN0YW1wcyBpbiBzdHJlYW0gdGltZSBhbmQgcnVubmluZyB0aW1lLCB0aGUKCSAgcmF3IHRpbWVzdGFtcHMgYXJlIG5vdCB1c2VmdWxsLCBhbHNvIGRvY3VtZW50IHRoaXMgYmV0dGVyLgoJICBVc2UgZGlmZmVyZW50IHdpbmRvdyBzaXplcyBmb3IgZ29vZCBhbmQgYmFkIFFvUyBvYnNlcnZhdGlvbnMgc28KCSAgd2UgcmVhY3QgdG8gYmFkbmVzcyBhIGxpdHRsZSBxdWlja2VyLgoJICBLZWVwIHRyYWNrIG9mIHRoZSBhbW91bnQgb2YgcmVuZGVyZWQgYW5kIGRyb3BwZWQgYnVmZmVycy4KCSAgU2VuZCBRb1MgdGltZXN0YW1wcyBpbiBydW5uaW5nIHRpbWUuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19ldmVudGZ1bmMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBDb21wYXJlIFFvUyB0aW1lc3RhbXBzIGFnYWluc3QgcnVubmluZyB0aW1lLgoKMjAwNi0wNC0wNiAxNzozNjoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCBnbm9ubGluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZ25vbmxpbgoKMjAwNi0wNC0wNiAxNTo0NjowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogVHlwbyBmaXhlcyBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIFR5cG8gZml4ZXMgaW4gZG9jcy4KCjIwMDYtMDQtMDYgMTU6MDc6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RwYWQuYzogVXNlIGdfdmFsdWVfZ2V0X29iamVjdCgpIGluc3RlYWQgb2YgZ192YWx1ZV9kdXBfZ3N0X29iamVjdCgpLCB0byBhdm9pZCBkb3VibGUtcmVmZmluZyB0aGUgcGFkIHRlbXBsYXRlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9wcm9wZXJ0eSk6CgkgIFVzZSBnX3ZhbHVlX2dldF9vYmplY3QoKSBpbnN0ZWFkIG9mIGdfdmFsdWVfZHVwX2dzdF9vYmplY3QoKSwKCSAgdG8gYXZvaWQgZG91YmxlLXJlZmZpbmcgdGhlIHBhZCB0ZW1wbGF0ZSAod2hpY2ggd2UgdGhlbiBzaW5rLAoJICBzbyB0aGlzIHdvcmtlZCBwcmV2aW91c2x5IGlmIChhbmQgb25seSBpZikgdGhlIHBhZCB0ZW1wbGF0ZQoJICB3YXMgZmxvYXRpbmcuCgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6IChnc3RfcGFkX3RlbXBsYXRlX2luaXQpLAoJICAoZ3N0X3BhZF90ZW1wbGF0ZV9wYWRfY3JlYXRlZCk6CgkgIE5ldmVyIHJldHVybiBmbG9hdGluZyByZWZlcmVuY2VzIHRvIHBhZCB0ZW1wbGF0ZXMsIGNyZWF0ZQoJICB0aGVtIGFzIGluaXRpYWxseS1zdW5rZW4uCgkgIERvY3VtZW50IGFuIGV4dHJhIGZ1bmN0aW9uIChhbmQgbWFrZSB0aGlzIHN0b3Agc2lua2luZyBvdXIKCSAgcGFkIHRlbXBsYXRlLCBzaW5jZSB0aGF0IGlzIG5vdyBndWFyYW50ZWVkIHRvIGRvIG5vdGhpbmcsCgkgIHNpbmNlIHdlIGNyZWF0ZWQgaXQgc3Vua2VuKS4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgRml4IGRvY3MgdHlwby4KCjIwMDYtMDQtMDYgMTE6Mjc6MjQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0aW5mby5jOiBBZGQgc29tZSBuZXdsaW5lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKF9fZ3N0X2luX3ZhbGdyaW5kKToKCSAgQWRkIHNvbWUgbmV3bGluZXMuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIERvbid0IGxlYWsgYnVmZmVyIGNhcHMuCgoyMDA2LTA0LTA2IDEwOjM4OjU0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvcGFyc2UvZ3JhbW1hci55OiBGaXggYSBsZWFrIGluIHBhcnNlLWxhdW5jaCBmb3IgYW55IHNvdXJjZS1vci1zaW5rIG5hbWVkIGVsZW1lbnQgcmVmZXJlbmNlcyB1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBGaXggYSBsZWFrIGluIHBhcnNlLWxhdW5jaCBmb3IgYW55IHNvdXJjZS1vci1zaW5rIG5hbWVkIGVsZW1lbnQKCSAgcmVmZXJlbmNlcyB1c2VkLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKGV4cGVjdGVkX2ZhaWxfcGlwZSk6CgkgIFVucmVmIHRoZSBwaXBlbGluZSBpZiBpdCBleGlzdHMgYWZ0ZXIgd2UndmUgZmFpbGVkIHBhcnNpbmcuCgoyMDA2LTA0LTA1IDE1OjQ2OjAwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogV2hlbiB3ZSBjcmVhdGUgYSBwaXBlbGluZSBidXMsIGluaXRpYWxseSBjcmVhdGUgaXQgaW4gZmx1c2hpbmcgbW9kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfaW5pdCk6CgkgIFdoZW4gd2UgY3JlYXRlIGEgcGlwZWxpbmUgYnVzLCBpbml0aWFsbHkgY3JlYXRlIGl0IGluIGZsdXNoaW5nIG1vZGUuCgkgIEZpeGVzIGxlYWtzIGluIGF0IGxlYXN0IG9uZSB0ZXN0LCBhbmQgbWFrZXMgYSBuZXcgcGlwZWxpbmUgd29yayB0aGUKCSAgc2FtZSBhcyBvbmUgdGhhdCBoYXMgZ29uZSB0byBSRUFEWSBhbmQgdGhlbiBiYWNrIHRvIE5VTEwuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgVHlwbyBmaXggaW4gZG9jcy4KCjIwMDYtMDQtMDUgMTU6MTI6MzkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBVbnJlZiBhIHBhZCB3ZSByZWZmZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbnJlZiBhIHBhZCB3ZSByZWZmZWQuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVucmVmIGJpbnMKCjIwMDYtMDQtMDUgMTM6MTg6MjkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RxdWVyeS5jOiBGaXggbGVha2luZyBHVmFsdWVzIGluIHF1ZXJpZXMsIGFzIHNob3duIGJ5IHZhbGdyaW5kL3Rlc3RzdWl0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfc2V0X2Zvcm1hdHMpLAoJICAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzdik6CgkgIEZpeCBsZWFraW5nIEdWYWx1ZXMgaW4gcXVlcmllcywgYXMgc2hvd24gYnkgdmFsZ3JpbmQvdGVzdHN1aXRlLgoKMjAwNi0wNC0wNSAxMjoxMToyMCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgdGVzdHMvY2hlY2svZ2VuZXJpYy9zaW5rcy5jOiBGaXggYSB2YXJpZXR5IG9mIG1lbWxlYWtzIGluIHNpbmtzIGNoZWNrLCB3aGljaCBhcmUgb25seSBzb21ldGltZXMgc2hvd24gYnkgcnVubmluZyB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGEgdmFyaWV0eSBvZiBtZW1sZWFrcyBpbiBzaW5rcyBjaGVjaywgd2hpY2ggYXJlIG9ubHkgc29tZXRpbWVzCgkgIHNob3duIGJ5IHJ1bm5pbmcgdGhlIHRlc3RzIHVuZGVyIHZhbGdyaW5kICh3ZWlyZD8pLgoKMjAwNi0wNC0wNSAxMTowNDoxOSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46IEZpeCB0aGUgc3Vic3RpdHV0ZWQgZW50aXR5IG5hbWUgYWZ0ZXIgdGhvbWFzJyBjaGFuZ2VzIG9uIHRoZSB3ZWVrZW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3ZlcnNpb24uZW50aXRpZXMuaW46CgkgIEZpeCB0aGUgc3Vic3RpdHV0ZWQgZW50aXR5IG5hbWUgYWZ0ZXIgdGhvbWFzJyBjaGFuZ2VzIG9uIHRoZQoJICB3ZWVrZW5kLgoKMjAwNi0wNC0wNSAxMDozMToyMCArMDAwMCAgWmFoZWVyIEFiYmFzIE1lcmFsaSA8emFoZWVyYWJiYXNAbWVyYWxpLm9yZz4KCgkgIGdzdC9nc3RpbmZvLmM6IFVzZSBwcmludGYgaW5zdGVhZCBvZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wNC0wNSAgWmFoZWVyIEFiYmFzIE1lcmFsaSAgPHphaGVlcmFiYmFzIGF0IG1lcmFsaSBkb3Qgb3JnPgoJICAqIGdzdC9nc3RpbmZvLmM6IChfX2dzdF9pbl92YWxncmluZCk6IFVzZSBwcmludGYgaW5zdGVhZCBvZgoJICBWQUxHUklORF9QUklOVEYKCjIwMDYtMDQtMDUgMTA6MjY6MjkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6IE1vcmUgZGVidWcuIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTA0LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6IE1vcmUgZGVidWcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyk6IFdoZW4gcmVzZXR0aW5nIG91ciBzZWdtZW50IG9uCgkgIEZMVVNIX1NUT1AsIGFsc28gdXBkYXRlIHRoZSBmbGFnIHNheWluZyB3ZSBoYXZlbid0IHNlZW4gYQoJICBuZXdzZWdtZW50LgoKMjAwNi0wNC0wNCAxODowMjowNyArMDAwMCAgUGFvbG8gQm9yZWxsaSA8cGJvcmVsbGlAa2F0YW1haWwuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBtaW5vciBjbGVhbi11cHM6IEdfREVGSU5FX1RZUEUgYWxyZWFkeSB0YWtlcyBjYXJlIG9mIHRoZSBwYXJlbnRfY2xhc3Mgc3R1ZmYsIG5vIG5lZWQgdG8gZG8gaXQgdHdpY2UuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogUGFvbG8gQm9yZWxsaSAgPHBib3JlbGxpIGF0IGthdGFtYWlsIGRvdCBjb20+CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9maW5hbGl6ZSksIChnc3RfcGx1Z2luX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BsdWdpbl9jaGVja19saWNlbnNlKToKCSAgbWlub3IgY2xlYW4tdXBzOiBHX0RFRklORV9UWVBFIGFscmVhZHkgdGFrZXMgY2FyZSBvZiB0aGUKCSAgcGFyZW50X2NsYXNzIHN0dWZmLCBubyBuZWVkIHRvIGRvIGl0IHR3aWNlLiBNYXJrIGFycmF5IG9mCgkgIGxpY2Vuc2Ugc3RyaW5ncyBhcyBjb25zdGFudC4gKCMzMzcxMDMpCgoyMDA2LTA0LTA0IDE3OjU0OjMwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGcmVlIHRoZSByaWdodCBwbHVnaW4gbGlzdDsgZml4ZXMgYSBtZW1vcnkgbGVhay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfbGlzdCk6CgkgIEZyZWUgdGhlIHJpZ2h0IHBsdWdpbiBsaXN0OyBmaXhlcyBhIG1lbW9yeSBsZWFrLgoKMjAwNi0wNC0wNCAxNTo0NTozNiArMDAwMCAgTWFyayBOYXV3ZWxhZXJ0cyA8bWFuYXV3QHNreW5ldC5iZT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogRG9uJ3QgZXJyb3Igb3V0IG9uIGVtcHR5IGJ1ZmZlcnMgKCMzMzY5NDUpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnk6IE1hcmsgTmF1d2VsYWVydHMgIDxtYW5hdXcgYXQgc2t5bmV0IGRvdCBiZT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX3JlbmRlcik6CgkgIERvbid0IGVycm9yIG91dCBvbiBlbXB0eSBidWZmZXJzICgjMzM2OTQ1KS4KCjIwMDYtMDQtMDQgMTQ6NTg6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLiBNYWtlIEJhc2VTaW5rIGFuZCBCYXNlU3JjIGRvY3MgY29udGFpbiB0aGUgY2xhc3Mgc3RydWN0dXJlIHNvIHRoYXQgcGVvcGxlIGNhbiBhY3R1YWxseSBzZWUgdGhlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuIE1ha2UgQmFzZVNpbmsgYW5kIEJhc2VTcmMgZG9jcyBjb250YWluIHRoZQoJICBjbGFzcyBzdHJ1Y3R1cmUgc28gdGhhdCBwZW9wbGUgY2FuIGFjdHVhbGx5IHNlZSB0aGUgcHJvdG90eXBlcyBmb3IKCSAgdmlydHVhbCBmdW5jdGlvbnMgdGhleSdyZSBzdXBwb3NlZCB0byBiZSBvdmVycmlkaW5nLgoKMjAwNi0wNC0wNCAwODo1NTo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IE1vcmUgZGVidWcgaW5mbzsgd2hlbiBza2lwcGluZyB0eXBlZmluZGluZywgc2VuZCBjYWNoZWQgZXZlbnRzIGluIGFsbCBjYXNlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIE1vcmUgZGVidWcgaW5mbzsgd2hlbiBza2lwcGluZyB0eXBlZmluZGluZywgc2VuZCBjYWNoZWQKCSAgZXZlbnRzIGluIGFsbCBjYXNlcy4KCjIwMDYtMDQtMDMgMTc6MDU6MzEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCB0eXBvIGluIGRvY3MuCgoyMDA2LTA0LTAzIDA4OjU5OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSB3aW4zMiBjb21tb24gZGlyOyB1cGRhdGUgdW5pbnN0YWxsZWQgc2NyaXB0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgd2luMzIgY29tbW9uIGRpcjsgdXBkYXRlIHVuaW5zdGFsbGVkIHNjcmlwdAoKMjAwNi0wNC0wMSAxNTozMDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgZGlzYWJsZSB1c2Ugb2YgQVNfTElCVE9PTF9UQUdTLCBpdCBkb2Vzbid0IHdvcmsgY29ycmVjdGx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIHVzZSBvZiBBU19MSUJUT09MX1RBR1MsIGl0IGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkKCjIwMDYtMDQtMDEgMDk6NDE6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiB1c2UgbmV3IEFTX1ZFUlNJT04gYW5kIEFTX05BTk8gbWFjcm9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIG5ldyBBU19WRVJTSU9OIGFuZCBBU19OQU5PIG1hY3JvcwoJICAqIGdzdC9nc3QtaTE4bi1saWIuaDoKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdGVycm9yLmM6CgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICB1cGRhdGUgYWNjb3JkaW5nbHkKCjIwMDYtMDMtMzEgMTU6MjY6MDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERvIG5vdCB0eXBlZmluZCBjb250ZW50IGlmIHRoZSBidWZmZXJzIGFscmVhZHkgaGF2ZSBjYXBzLiBhbmQgdGhlIHJpZ2h0IHRoaW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgRG8gbm90IHR5cGVmaW5kIGNvbnRlbnQgaWYgdGhlIGJ1ZmZlcnMgYWxyZWFkeSBoYXZlIGNhcHMuCgkgIE5lY2Nlc2FyeSBmb3IgaWN5ZGVtdXggKCMzMzM2NTcpLCBhbmQgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIGFueXdheS4KCjIwMDYtMDMtMzAgMTY6MzY6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1vcmUgUW9TIG1lYXN1cmVtZW50cyBhcyBkZXNjcmliZWQgaW4gdGhlIGRlc2lnbiBkb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2ZpbmFsaXplKSwgKGdzdF9iYXNlX3Npbmtfc2V0X3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfcW9zX2VuYWJsZWQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcmVjb3JkX3Fvc19vYnNlcnZhdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfdG9vX2xhdGUpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTW9yZSBRb1MgbWVhc3VyZW1lbnRzIGFzIGRlc2NyaWJlZCBpbiB0aGUgZGVzaWduIGRvYy4KCSAgR2V0IHJpZCBvZiByaW5nYnVmZmVyIHdpdGggb2JzZXJ2YXRpb25zLCBydW5uaW5nIGF2ZXJhZ2UgaXMKCSAgbW9yZSBzaW1wbGUgYW5kIGVxdWFsbHkgZ29vZC4KCSAgQ2FsY3VsYXRlcyB2YWxpZCBwcm9wb3J0aW9uIG5vdy4KCSAgQWRkZWQgYmVnaW5uaW5nIG9mIGZsb29kIG1lYXN1cmVtZW50LgoKMjAwNi0wMy0yOSAxMzo0NToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIGRvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgYWRkaXRpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXFvcy50eHQ6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgIFNtYWxsIGRvY3VtZW50YXRpb24gdXBkYXRlcyBhbmQgYWRkaXRpb25zLgoKMjAwNi0wMy0yOSAxMzozOTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBQZXJmb3JtIHRoZSBFT1MgbG9naWMgd2hlbiB3ZSByZWFjaCB0aGUgc2VnbWVudCBzdG9wIHBvc2l0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19maW5hbGl6ZSksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgUGVyZm9ybSB0aGUgRU9TIGxvZ2ljIHdoZW4gd2UgcmVhY2ggdGhlIHNlZ21lbnQgc3RvcCBwb3NpdGlvbi4KCSAgRml4IGNvbXBpbGF0aW9uIG9uIGdjYzQuMQoKMjAwNi0wMy0yOSAxMTowMjozMyArMDAwMCAgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pLm15b2hhbmVuQG5va2lhLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuKjogSW4gcXVldWUsIHdoZW4gRU9TIGlzIHJlY2VpdmVkLCBpZiBtaW5pbXVtIHRocmVzaG9sZCA+IG1heF9zaXplIC0gY3VycmVudF9sZXZlbCwgdGhlcmUgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUGF0Y2ggYnkgVG9tbWkgTXnDtmjDpG5lbiA8ZXh0LXRvbW1pIGRvdCBteW9oYW5lbiBhdCBub2tpYSBkb3QgY29tPgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9sb2NrZWRfZmx1c2gpLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgSW4gcXVldWUsIHdoZW4gRU9TIGlzIHJlY2VpdmVkLCBpZiBtaW5pbXVtIHRocmVzaG9sZCA+IG1heF9zaXplIC0KCSAgY3VycmVudF9sZXZlbCwgdGhlcmUgaXMgY2hhbmNlIHRoYXQgcXVldWUgYmxvY2tzIGZvcmV2ZXIgaW4gY29uZGl0aW9uYWwgaXRlbQoJICBkZWwgd2FpdC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBxdWV1ZSBpcyBub3QgZW1wdGllZCBjb21wbGV0ZWx5IGR1ZSB0byBtaW5pbXVtCgkgIHRocmVzaG9sZC4KCSAgSGVyZSBpcyBhbm90aGVyIGFwcHJvYWNoLiBJbnN0ZWFkIG9mIHNldHRpbmcgY3VyX2xldmVscyB0byBtYXggaW4gRU9TLCBqdXN0CgkgIHplcm8gYWxsIG1pbmltdW0gdGhyZXNob2xkIGxldmVscy4gVGhpcyBzaG91bGQgbWFrZSBzdXJlIHRoYXQgcXVldWUgZ2l2ZXMgb3V0CgkgIGFsbCBkYXRhLiBXaGVuIGdvaW5nIHRvIFJFQURZIChzdG9wKSBzdGF0ZSwganVzdCByZXNldCB0aGUgb3JpZ2luYWwgbWluaW11bQoJICB0aHJlc2hvbGQgbGV2ZWxzLgoJICBGaXhlcyAjMzM2MzM2LgoKMjAwNi0wMy0yOSAxMDozMzoxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFdoZW4gdHlwZWZpbmRpbmcgaXMgZG9uZSBpbiBwdXNoIG1vZGUsIHdlIHNob3VsZCBjYWNoZSBldmVudHMgd2UgcmVjZWl2ZSBkdXJpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9zZW5kX2NhY2hlZF9ldmVudHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgV2hlbiB0eXBlZmluZGluZyBpcyBkb25lIGluIHB1c2ggbW9kZSwgd2Ugc2hvdWxkIGNhY2hlCgkgIGV2ZW50cyB3ZSByZWNlaXZlIGR1cmluZyB0eXBlZmluZGluZyBpbnN0ZWFkIG9mIGp1c3QKCSAgZHJvcHBpbmcgdGhlbSAoZS5nLiBuZXdzZWdtZW50LCBjdXN0b20gZXZlbnRzIGZyb20KCSAgZHZkcmVhZHNyYyBldGMuKSBhbmQgdGhlbiBzZW5kIHRoZW0gb3V0IG9uY2Ugd2UndmUKCSAgZGV0ZXJtaW5lZCB0aGUgdHlwZSBvZiB0aGUgc3RyZWFtIChhbmQgZGVjb2RlYmluCgkgIGhhcyBoYWQgYSBjaGFuY2UgdG8gcGx1ZyBpbiBhIGRlY29kZXIvZGVtdXhlcikuCgoyMDA2LTAzLTI3IDE4OjM4OjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1xb3MudHh0OiBGaXJzdCBRb1MgaWRlYXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcW9zLnR4dDoKCSAgRmlyc3QgUW9TIGlkZWFzLgoKMjAwNi0wMy0yNyAxMTo0ODoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBIYW5kbGUgZWxlbWVudCBzZWVrIGNvcnJlY3RseSB3aGVuIHdlIGFyZSBzdHJlYW1pbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbnNwaXJlZCBieSBhIHBhdGNoIG9mOiBMdXR6IE11ZWxsZXIgPGx1dHogYXQgdG9wZnJvc2UgZG90IGRlPgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3NyY19zZW5kX2V2ZW50KSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBIYW5kbGUgZWxlbWVudCBzZWVrIGNvcnJlY3RseSB3aGVuIHdlIGFyZSBzdHJlYW1pbmcuCgkgIEZpeGVzICMzMjY5OTguCgoyMDA2LTAzLTI0IDE4OjM4OjEyICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IFNldCB1cCBMRF9MSUJSQVJZX1BBVEggdG8gcG9pbnQgYXQgYWxsIHRoZSBnc3RyZWFtZXIgbGlicy4gVGhpcyB3aWxsIGFsbG93IHlvdSB0byBjb3JyZWN0bHkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBTZXQgdXAgTERfTElCUkFSWV9QQVRIIHRvIHBvaW50IGF0IGFsbCB0aGUgZ3N0cmVhbWVyIGxpYnMuIFRoaXMgd2lsbAoJICBhbGxvdyB5b3UgdG8gY29ycmVjdGx5IHJ1biBpbnRhbGxlZCBhcHBsaWNhdGlvbnMgYnVpbHQgYWdhaW5zdCBvbGQgICAgICAgICAgIGNvcmUsIHVzaW5nIHBsdWdpbnMgdGhhdCByZXF1aXJlIHVwZGF0ZWQgY29yZSAoZS5nLiBydW5uaW5nCgkgIGluc3RhbGxlZCB0b3RlbSBhZ2FpbnN0IGEgZnVsbCB1bmluc3RhbGxlZCBnc3RyZWFtZXIgc3RhY2spCgoyMDA2LTAzLTI0IDE3OjI5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgYWRkIEFQSTogbWFya2VyIGluIENoYW5nZUxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIEFQSTogbWFya2VyIGluIENoYW5nZUxvZwoKMjAwNi0wMy0yNCAxNzoxMDo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBtb3JlIGRlYnVnIGRldGFpbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19pc19jb2xsZWN0ZWQpOgoJICBtb3JlIGRlYnVnIGRldGFpbHMKCjIwMDYtMDMtMjQgMTE6MDI6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZWFycmFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBtZXRob2RzIHNvIHRoYXQgcmVsYXRlZCBtZXRob2RzIGFyZSBncm91cGVkIHRvZ2V0aGVyIGluIHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgUmVhcnJhbmdlIHRoZSBvcmRlciBvZiB0aGUgbWV0aG9kcyBzbyB0aGF0IHJlbGF0ZWQgbWV0aG9kcwoJICBhcmUgZ3JvdXBlZCB0b2dldGhlciBpbiBzZWN0aW9ucy4KCjIwMDYtMDMtMjQgMTA6NDQ6MTcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IExpdHRsZSBjbGFyaWZpY2F0aW9uIGluIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIExpdHRsZSBjbGFyaWZpY2F0aW9uIGluIHRoZSBkb2NzCgoyMDA2LTAzLTI0IDEwOjM4OjIwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL1JFQURNRTogZm9ybWF0dGluZyBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgIGZvcm1hdHRpbmcgZml4CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIEdTVF9FTEVNRU5UX0RFVEFJTFMgZm9ybWF0dGluZwoKMjAwNi0wMy0yNCAwOTo0ODozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDogT25seSBhZGQgZmllbGRzLCBub3QgaW5zZXJ0IG9yIHdlIGJyZWFrIEFCSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBPbmx5IGFkZCBmaWVsZHMsIG5vdCBpbnNlcnQgb3Igd2UgYnJlYWsgQUJJLgoKMjAwNi0wMy0yMyAxODo1MTowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IFVwZGF0ZSwgYWRkIHJlY2VudGx5IGFkZGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBVcGRhdGUsIGFkZCByZWNlbnRseSBhZGRlZCBmdW5jdGlvbnMuCgoyMDA2LTAzLTIzIDE4OjQ1OjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQVBJOiBhZGQgc29tZSBuZXcgdXRpbGl0eSBmdW5jdGlvbnM6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3F1ZXJ5X3BlZXJfcG9zaXRpb24pLAoJICAoZ3N0X3BhZF9xdWVyeV9wZWVyX2R1cmF0aW9uKSwgKGdzdF9wYWRfcXVlcnlfcGVlcl9jb252ZXJ0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQVBJOiBhZGQgc29tZSBuZXcgdXRpbGl0eSBmdW5jdGlvbnM6CgkgIC0gZ3N0X3BhZF9xdWVyeV9wZWVyX3Bvc2l0aW9uCgkgIC0gZ3N0X3BhZF9xdWVyeV9wZWVyX2R1cmF0aW9uCgkgIC0gZ3N0X3BhZF9xdWVyeV9wZWVyX2NvbnZlcnQKCjIwMDYtMDMtMjMgMTY6MzI6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0byBtZW50aW9uIHRoZSBwcmV2aW91cyBjb21taXQgZml4ZWQgIzMyNjMxMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IHRvIG1lbnRpb24gdGhlIHByZXZpb3VzIGNvbW1pdCBmaXhlZCAjMzI2MzExCgoyMDA2LTAzLTIzIDE2OjIwOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEZWNvdXBsZSBtYXgtbGF0ZW5lc3MgYW5kIHRoZSBmYWN0IHRoYXQgUW9TIG1lc3NhZ2VzIGFyZSBnZW5lcmF0ZWQgd2l0aCBhIG5ldyBwcm9wZXJ0eSAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX2luaXQpLCAoZ3N0X2Jhc2Vfc2lua19maW5hbGl6ZSksCgkgIChnc3RfYmFzZV9zaW5rX3NldF9xb3NfZW5hYmxlZCksIChnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3N5bmNfdGltZXMpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2FkZF9xb3Nfb2JzZXJ2YXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19zZW5kX3FvcyksCgkgIChnc3RfYmFzZV9zaW5rX3BlcmZvcm1fcW9zKSwgKGdzdF9iYXNlX3NpbmtfcmVzZXRfcW9zKSwKCSAgKGdzdF9iYXNlX3NpbmtfaXNfdG9vX2xhdGUpLCAoZ3N0X2Jhc2Vfc2lua19yZW5kZXJfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uX2xhc3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb25fcGF1c2VkKSwgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEZWNvdXBsZSBtYXgtbGF0ZW5lc3MgYW5kIHRoZSBmYWN0IHRoYXQgUW9TIG1lc3NhZ2VzIGFyZSBnZW5lcmF0ZWQKCSAgd2l0aCBhIG5ldyBwcm9wZXJ0eSAocW9zKS4KCSAgQWRkIHZtZXRob2Qgc28gc3ViY2xhc3NlcyBjYW4gYmUgbm90aWZpZWQgb2YgQVNZTkMgcGxheWluZwoJICBzdGF0ZSBjaGFuZ2VzLgoJICBDb2xsZWN0IHRpbWVzdGFtcCBzdGFydCBhbmQgc3RvcCB0byByZXBvcnQgYmV0dGVyIGN1cnJlbnQKCSAgcG9zaXRpb24gaW4gRU9TL1BMQVlJTkcvUEFVU0VEL1JFQURZL05VTEwuCgkgIFJlZmFjdG9yIFFvUy9mcmFtZSBkcm9wcGluZyBhbmQgb3RoZXIgbWVhc3VyZW1lbnRzLgoJICBBUEk6IEdzdEJhc2VTcmM6OnFvcwoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQWRkZWQgUHJpdmF0ZSBzdHJ1Y3QuCgkgIEFQSTogZ3N0X2Jhc2Vfc2lua19zZXRfcW9zX2VuYWJsZWQKCSAgQVBJOiBnc3RfYmFzZV9zaW5rX2lzX3Fvc19lbmFibGVkCgoyMDA2LTAzLTIzIDExOjU0OjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IElmIGNvbXBpbGluZyBhZ2FpbnN0IEdMaWItMi44IG9yIG5ld2VyLCB0cnkgdG8gcmVhZCB0aGUgcmVnaXN0cnkgZmlsZSB1c2luZyBHTWFwcGVkRmlsZSBmaXJzdCBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAoZ3N0X3JlZ2lzdHJ5X3htbF9yZWFkX2NhY2hlKToKCSAgSWYgY29tcGlsaW5nIGFnYWluc3QgR0xpYi0yLjggb3IgbmV3ZXIsIHRyeSB0byByZWFkIHRoZQoJICByZWdpc3RyeSBmaWxlIHVzaW5nIEdNYXBwZWRGaWxlIGZpcnN0IGJlZm9yZSBmYWxsaW5nIGJhY2sKCSAgdG8gZm9wZW4oKSArIGZyZWFkKCkgKCMzMzIxNTEpLgoKMjAwNi0wMy0yMiAxODoyNTowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RpbmZvLmM6IERpc2FibGUgZGVidWdnaW5nIHVubGVzcyBleHBsaWNpdGx5IGFjdGl2YXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKGdzdF9kZWJ1Z19zZXRfYWN0aXZlKSwKCSAgKGdzdF9kZWJ1Z19jYXRlZ29yeV9zZXRfdGhyZXNob2xkKToKCSAgRGlzYWJsZSBkZWJ1Z2dpbmcgdW5sZXNzIGV4cGxpY2l0bHkgYWN0aXZhdGVkLgoJICBGaXhlcyAjMzM1NDgwLgoKMjAwNi0wMy0yMiAxMzoxMDoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IENsZWFudXAgdGhlIGVycm9yIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBDbGVhbnVwIHRoZSBlcnJvciBjYXNlLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfZGlzcG9zZSk6CgkgIHByaW50IGEgY3JpdGljYWwgd2hlbiBzb21lIG9iamVjdCB3YXMgZGlzcG9zZWQgd2l0aAoJICBhIHBhcmVudCwgYWxzbyByZXZpdmUgdGhlIG9iamVjdCBzaW5jZSBpdCBtaWdodAoJICBjcmFzaCB0aGUgcGFyZW50LgoKMjAwNi0wMy0yMiAwOTowMzoxMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guMS5pbjogRml4IGFub3RoZXIgdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBGaXggYW5vdGhlciB0eXBvLgoKMjAwNi0wMy0yMSAxOToyNzoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkaXNhYmxlIHNvbWUgdGVzdHMgd2hlbiB3ZSBkb24ndCBoYXZlIGEgcmVnaXN0cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkaXNhYmxlIHNvbWUgdGVzdHMgd2hlbiB3ZSBkb24ndCBoYXZlIGEgcmVnaXN0cnkKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsc19zdWl0ZSk6CgkgIGRvbid0IGJ1aWxkIHRoZSBwYXJ0IHRoYXQgbmVlZHMgcGFyc2luZwoKMjAwNi0wMy0yMSAxNzoyNToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW0KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtCgkgICogdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgIGZpeCAtLWRpc2FibGUtcGFyc2UgYnVpbGQKCjIwMDYtMDMtMjEgMTc6MjQ6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICB0aGUgLmluIGZpbGUgaXMgaW4gY3ZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aGUgLmluIGZpbGUgaXMgaW4gY3ZzCgoyMDA2LTAzLTIxIDE1OjQyOjAyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWZlZWRiYWNrLjEuaW46IEZpeCB0eXBvOiBzL2ZlZWJhY2svZmVlZGJhY2svICgjMTMzNDk0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWZlZWRiYWNrLjEuaW46CgkgIEZpeCB0eXBvOiBzL2ZlZWJhY2svZmVlZGJhY2svICgjMTMzNDk0KS4KCjIwMDYtMDMtMjEgMTU6MDQ6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy86IEFkZCBGSUxFUyBzZWN0aW9uIGFuZCBjb3JyZWN0IGVudHJ5IGFib3V0IEdTVF9SRUdJU1RSWV9QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlICgjMTMzNDk1OyAjMTMzNDk0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvTWFrZWZpbGUuYW06CgkgICogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBBZGQgRklMRVMgc2VjdGlvbiBhbmQgY29ycmVjdCBlbnRyeSBhYm91dCBHU1RfUkVHSVNUUllfUEFUSAoJICBlbnZpcm9ubWVudCB2YXJpYWJsZSAoIzEzMzQ5NTsgIzEzMzQ5NCkuCgoyMDA2LTAzLTIxIDE0OjQxOjU4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvOiBSZW1vdmUgZ3N0LW1kNXN1bSBhbmQgbWFuIHBhZ2UgKHRoZSBtZDVzaW5rIGVsZW1lbnQgcmVxdWlyZWQgd2FzIHJlbW92ZWQgYWdlcyBhZ28pCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uMS5pbjoKCSAgKiB0b29scy9nc3QtbWQ1c3VtLmM6CgkgIFJlbW92ZSBnc3QtbWQ1c3VtIGFuZCBtYW4gcGFnZSAodGhlIG1kNXNpbmsgZWxlbWVudAoJICByZXF1aXJlZCB3YXMgcmVtb3ZlZCBhZ2VzIGFnbykKCjIwMDYtMDMtMjEgMTQ6MjQ6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IE1ha2Ugc3VyZSB0aGF0IHN0cmluZyBmaWVsZHMgaW4gc3RydWN0dXJlcy90YWdsaXN0cyBjb250YWluIHZhbGlkIFVURi04IC0gd2UgZG9uJ3Qgd2FudCB0byBwYXNzIHIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9pZF9zZXRfdmFsdWUpOgoJICBNYWtlIHN1cmUgdGhhdCBzdHJpbmcgZmllbGRzIGluIHN0cnVjdHVyZXMvdGFnbGlzdHMKCSAgY29udGFpbiB2YWxpZCBVVEYtOCAtIHdlIGRvbid0IHdhbnQgdG8gcGFzcyBydWJiaXNoIHRvCgkgIGFwcGxpY2F0aW9ucyBiZWNhdXNlIG9mIGEgYnVnZ3kgcGx1Z2luIChjcC4gIzMzNDE2NykuCgoyMDA2LTAzLTIxIDE0OjE0OjQ5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgU2VyaWVzIG9mIGZpeGVzIGZvciBkZXJlZmVyZW5jZWQgcG9pbnRlcnMgdGhhdCBnY2MgNC4xIGNvbXBsYWlucyBhYm91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmlld2VkIGJ5OiA8ZGVsZXRlIGlmIG5vdCB1c2luZyBhIGJ1ZGR5PgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2Rpc3Bvc2UpLCAoZ3N0X2Nsb2NrX3NldF9tYXN0ZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfY2xvY2spLCAoZ3N0X2VsZW1lbnRfZGlzcG9zZSksCgkgIChnc3RfZWxlbWVudF9zZXRfYnVzX2Z1bmMpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKToKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCksCgkgIChnc3RfdmFsdWVfdGFrZV9taW5pX29iamVjdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfcGFkX3RlbXBsYXRlKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9kaXNwb3NlKSwKCSAgKGdzdF9waXBlbGluZV91c2VfY2xvY2spLCAoZ3N0X3BpcGVsaW5lX2F1dG9fY2xvY2spOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9zZXRfcHJvcGVydHkpOgoJICBTZXJpZXMgb2YgZml4ZXMgZm9yIGRlcmVmZXJlbmNlZCBwb2ludGVycyB0aGF0IGdjYyA0LjEgY29tcGxhaW5zIGFib3V0LgoJICBJdCdzIGluIGZhY3QgYWxsIGlzc3VlcyB3aXRoIGdzdF8qb2JqZWN0X3JlcGxhY2UoKS4KCjIwMDYtMDMtMjEgMTM6NTU6NDQgKzAwMDAgIExvw69jIE1pbmllciA8bG9vbC5nbm9tZUB2aWEuZWNwLmZyPgoKCSAgcGtnY29uZmlnLzogVXNlIEBDSEVDS19MSUJTQCBoZXJlIGluc3RlYWQgb2YgaGFyZC1jb2RpbmcgLWxjaGVjayAoIzMzNDEwOSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQYXRjaCBieTogTG/Dr2MgTWluaWVyICA8bG9vbCArIGdub21lIGF0IHZpYSBkb3QgZWNwIGRvdCBmcj4KCSAgKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkgIFVzZSBAQ0hFQ0tfTElCU0AgaGVyZSBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIC1sY2hlY2sgKCMzMzQxMDkpLgoKMjAwNi0wMy0yMSAxMzo1MDo1MiArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC86IGdzdF9bYnVmZmVyfGV2ZW50fG1lc3NhZ2VdX3JlZigpIG1hY3JvcyBhcmUgcmVwbGFjZWQgYnkgYSBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyBiZWNhdXNlIGdjYy00LjEgd2lsbCBhYm91dCBpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgZ3N0X1tidWZmZXJ8ZXZlbnR8bWVzc2FnZV1fcmVmKCkgbWFjcm9zIGFyZSByZXBsYWNlZCBieSBhIHN0YXRpYwoJICBpbmxpbmUgZnVuY3Rpb25zIGJlY2F1c2UgZ2NjLTQuMSB3aWxsIGFib3V0IGlmIHRoZSByZXR1cm4gdmFsdWUKCSAgaXNuJ3QgdXNlZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKToKCSAgZ3N0X2V2ZW50X3JlZiBub3cgaGFzIHRvIGJlIGdpdmVuIGEgR3N0RXZlbnQqICwgZml4IGNoZWNrIGFjY29yZGluZ2x5LgoKMjAwNi0wMy0yMCAxNjo0NzozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBkb2NzL3BsdWdpbnMvdG1wbC8uZ2l0aWdub3JlOgoJICBSZW1vdmUgaXJyaXRhdGluZyBmaWxlIHRoYXQga2VlcHMgYnJlYWtpbmcgbXkgY2hlY2tvdXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgaXJyaXRhdGluZyBmaWxlIHRoYXQga2VlcHMgYnJlYWtpbmcgbXkgY2hlY2tvdXRzCgoyMDA2LTAzLTIwIDE2OjQ1OjE1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5oOiBBZGQgR19VTkxJS0VMWSB0byBvdXIgYm9pbGVycGxhdGUgdG8gb3B0aW1pc2UgdGhlICdhbHJlYWR5IHJlZ2lzdGVyZWQgdGhlIHR5cGUnIGNhc2UuIChDbG9zZXM6ICMzMzUxOS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIEdfVU5MSUtFTFkgdG8gb3VyIGJvaWxlcnBsYXRlIHRvIG9wdGltaXNlIHRoZSAnYWxyZWFkeSByZWdpc3RlcmVkCgkgIHRoZSB0eXBlJyBjYXNlLiAoQ2xvc2VzOiAjMzM1MTk1IGZvciBub3cpLiBJbiB0aGUgZnV0dXJlLCB3aGVuIHdlCgkgIGRlcGVuZCBvbiBHTGliIDIuMTAsIHdlIGNvdWxkIGFsc28gaW50ZXJuIHRoZSB0eXBlIG5hbWUgdXNpbmcKCSAgZ19pbnRlcm5fc3RhdGljX3N0cmluZygpCgoyMDA2LTAzLTIwIDEwOjU2OjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBQb3NpdGlvbiBxdWVyeSBzaG91bGQgYWxzbyB0YWtlIG1heCBvZiBhbGwgc3RyZWFtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKSwKCSAgKGJpbl9xdWVyeV9tYXhfaW5pdCksIChiaW5fcXVlcnlfcG9zaXRpb25fZm9sZCksCgkgIChiaW5fcXVlcnlfcG9zaXRpb25fZG9uZSksIChnc3RfYmluX3F1ZXJ5KToKCSAgUG9zaXRpb24gcXVlcnkgc2hvdWxkIGFsc28gdGFrZSBtYXggb2YgYWxsIHN0cmVhbXMuCgoyMDA2LTAzLTIwIDA5OjI4OjQxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IEZpeCBsZWFrcyBpbiBmYWtlc3JjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19maW5hbGl6ZSk6CgkgIEZpeCBsZWFrcyBpbiBmYWtlc3JjLgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRml4IGxlYWtzIGluIHRoZSB0ZXN0Y2FzZS4KCjIwMDYtMDMtMTkgMjE6Mzk6MjEgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RfcHJpdmF0ZS5oOiBhZGQgd2luMzIgc3BlY2lmaWMgaW1wb3J0IGRlY29yYXRpb24oX19kZWNsc3BlYyhkbGxpbXBvcnQpKSBmb3IgYWxsIGV4dGVybiBHc3REZWJ1Z0NhdGVnb3J5ICogdmFyaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgYWRkIHdpbjMyIHNwZWNpZmljIGltcG9ydCBkZWNvcmF0aW9uKF9fZGVjbHNwZWMoZGxsaW1wb3J0KSkKCSAgZm9yIGFsbCBleHRlcm4gR3N0RGVidWdDYXRlZ29yeSAqIHZhcmlhYmxlcwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBzb21lIGV4cG9ydHMsIHJlbW92ZSBlbXB0eSBsaW5lcwoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RkYXRhcHJvdG9jb2wuZHNwOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RuZXQuZHNwOgoJICBuZXcgcHJvamVjdCBmaWxlcyBhbmQgZXhwb3J0YXRpb24gZmlsZXMgYWRkZWQKCjIwMDYtMDMtMTkgMTY6MDU6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogVXNlIHByb3BlciByZXR1cm4gdmFsdWUgZm9yIHByb2JlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogKGVvc19ldmVudF9jb3VudGVyKToKCSAgVXNlIHByb3BlciByZXR1cm4gdmFsdWUgZm9yIHByb2JlLgoKMjAwNi0wMy0xNyAxOToyNzo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRG9uJ3QgbGVhayBidWZmZXJzLCBjYXBzIGFuZCBwYWRzIG9uIG5lZ290aWF0aW9uIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlcl9mdWxsKSwKCSAgKGdzdF9wYWRfcHVzaCk6CgkgIERvbid0IGxlYWsgYnVmZmVycywgY2FwcyBhbmQgcGFkcyBvbiBuZWdvdGlhdGlvbiBlcnJvcnMuCgoyMDA2LTAzLTE2IDE1OjMzOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2ZhcS86IEZhcSByZXZpZXcgYW5kIHVwZGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvY3ZzLnhtbDoKCSAgKiBkb2NzL2ZhcS9kZXBlbmRlbmNpZXMueG1sOgoJICAqIGRvY3MvZmFxL2RldmVsb3BpbmcueG1sOgoJICAqIGRvY3MvZmFxL2ZhcS54bWw6CgkgICogZG9jcy9mYXEvZ2VuZXJhbC54bWw6CgkgICogZG9jcy9mYXEvZ2V0dGluZy54bWw6CgkgICogZG9jcy9mYXEvbGVnYWwueG1sOgoJICAqIGRvY3MvZmFxL3Ryb3VibGVzaG9vdGluZy54bWw6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBGYXEgcmV2aWV3IGFuZCB1cGRhdGUuCgoyMDA2LTAzLTE2IDEwOjE4OjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogRG9uJ3QgcG91bmQgdGhlIGNwdSB0byBwaWVjZXMgYnkgY2hlY2tpbmcgZ2V0X2NhcHMgd2hlbiBhY2NlcHRfY2FwcyBpcyBjYWxsZWQgd2l0aCB0aGUgc2FtZSBjYXBzIGFzIHRoZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2Z1bGwpLAoJICAoZ3N0X3BhZF9wdXNoKToKCSAgRG9uJ3QgcG91bmQgdGhlIGNwdSB0byBwaWVjZXMgYnkgY2hlY2tpbmcgZ2V0X2NhcHMgd2hlbiBhY2NlcHRfY2FwcwoJICBpcyBjYWxsZWQgd2l0aCB0aGUgc2FtZSBjYXBzIGFzIHRoZSBwYWQgYWxyZWFkeSBoYXMuCgkgIFVzZSBHU1RfREVCVUdfT0JKRUNUIHdoZW4gb3V0cHV0dGluZyBjYXBzIGNoYW5nZSBpbmZvcm1hdGlvbi4KCjIwMDYtMDMtMTUgMjA6MTc6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpOgoJICBGaXggZG9jcy4KCjIwMDYtMDMtMTUgMTY6Mjk6MDIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBEb2N1bWVudGF0aW9uIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBEb2N1bWVudGF0aW9uIGZpeC4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpLCAoZ3N0X3BhZF9hY2NlcHRjYXBzX2RlZmF1bHQpLAoJICAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwKCSAgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksIChnc3RfcGFkX2NoYWluKSwgKGdzdF9wYWRfcHVzaCk6CgkgIE1ha2UgdGhlIGRlZmF1bHQgYWNjZXB0Y2FwcyBiZWhhdmlvdXIgYmUgdG8gY2hlY2sgdGhlIHJlcXVlc3RlZAoJICBjYXBzIGFnYWluc3QgdGhlIGdzdF9wYWRfZ2V0X2NhcHMgb3V0cHV0LgoJICBFbnN1cmUgdGhhdCBnc3RfcGFkX2FjY2VwdF9jYXBzIGlzIHVzZWQgdG8gY2hlY2sgY2FwcyB3aGVuIGEgcGFkCgkgIGRvZXNuJ3QgaGF2ZSBhIHNldGNhcHMgZnVuY3Rpb24sIHNvIHRoYXQgcGFkcyBhdXRvbWF0aWNhbGx5IHJlZnVzZQoJICBjYXBzIHRoYXQgdGhleSBkb24ndCBhbGxvdyBpbiB0aGVpciBwYWQgdGVtcGxhdGUuIChGaXhlcyAjMzMyOTg2KQoJICBXaGVuIGEgYnVmZmVyIHdpdGggYXR0YWNoZWQgY2FwcyBpcyBwdXNoZWQsIGVuc3VyZSB0aGF0IHRoZSBzb3VyY2UKCSAgcGFkIHJlY2VpdmVzIHRob3NlIGNhcHMgZXZlbiBpZiB0aGUgZWxlbWVudCBkaWRuJ3QgY2FsbAoJICBnc3RfcGFkX3NldF9jYXBzIGZpcnN0LgoKMjAwNi0wMy0xNSAxNjoyMjoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiBBZGQgc29tZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgQWRkIHNvbWUgZG9jcy4KCjIwMDYtMDMtMTUgMTU6NTc6NTEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB3aW4zMi9jb21tb24vOiBBZGQgYSB3aG9sZSBidW5jaCBvZiBtaXNzaW5nIGZ1bmN0aW9ucyAoIzMzNDQzNCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0Y29udHJvbGxlci5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIEFkZCBhIHdob2xlIGJ1bmNoIG9mIG1pc3NpbmcgZnVuY3Rpb25zICgjMzM0NDM0KS4KCjIwMDYtMDMtMTQgMTk6MzY6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEJldHRlciBkZWJ1ZyBpbmZvIHdoZW4gd2UgcmVjZWl2ZSBhIHNlZ21lbnQgZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfZG9fcW9zKToKCSAgQmV0dGVyIGRlYnVnIGluZm8gd2hlbiB3ZSByZWNlaXZlIGEgc2VnbWVudCBldmVudC4KCSAgUmVvcmdhbml6ZSBhIGJpdCBzbyB3ZSBjYW4gcGFzcyB0aGUgZ2V0X3RpbWVzKCkgcmVzdWx0cyBhcm91bmQuCgkgIFVzZSB0aGUgc2VnbWVudCBmb3JtYXQgd2hlbiBjYWxjdWxhdGluZyB0aGUgcnVubmluZyB0aW1lLgoJICBEb24ndCBkbyBRb1MgaXMgc3luYyBpcyBkaXNhYmxlZCBvciB3ZSBoYXZlIG5vIGNsb2NrIG9yIHRoZQoJICBlbGVtZW50IGRvZXMgbm90IHdhbnQgdXMgdG8gc3luYyB0byB0aGUgY2xvY2suCgkgIERvbid0IGRyb3AgYnVmZmVycyBpZiBRb1MgaXMgZGlzYWJsZWQgZm9yIG5vdy4KCjIwMDYtMDMtMTQgMTk6Mjg6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Y2xvY2suYzogTWFya2VkIHRoZSBzdGF0cyBwcm9wZXJ0eSBhcyB1bmltcGxlbWVudGVkIHNvIHBlb3BsZSBkb24ndCBnZXQgd2lsZCBpZGVhcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCksIChkb19saW5lYXJfcmVncmVzc2lvbik6CgkgIE1hcmtlZCB0aGUgc3RhdHMgcHJvcGVydHkgYXMgdW5pbXBsZW1lbnRlZCBzbyBwZW9wbGUgZG9uJ3QgZ2V0CgkgIHdpbGQgaWRlYXMuCgkgIEFkZCBkZWJ1ZyBtZXNzYWdlIHdoZW4gcmVncmVzc2lvbiBnb2VzIHdyb25nLgoJICBBZGRlZCBzb21lIG1vcmUgZG9jcy4KCjIwMDYtMDMtMTQgMTk6MjY6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBSZXR1cm4gY29ycmVjdCByZXR1cm4gdHlwZSBpbiBjYXNlIG9mIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKToKCSAgUmV0dXJuIGNvcnJlY3QgcmV0dXJuIHR5cGUgaW4gY2FzZSBvZiBlcnJvcnMuCgoyMDA2LTAzLTE0IDE5OjE2OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGZvcm1hdC5jOiBEb24ndCBzZWdmYXVsdCBvbiBpbnZhbGlkIGZvcm1hdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKGdzdF9mb3JtYXRfZ2V0X25hbWUpLCAoZ3N0X2Zvcm1hdF90b19xdWFyayk6CgkgIERvbid0IHNlZ2ZhdWx0IG9uIGludmFsaWQgZm9ybWF0cy4KCjIwMDYtMDMtMTQgMTg6MjU6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IENhbid0IHVzZSBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSB3aGVuIHRoZSBzZWdtZW50IGlzIG5vdCBpbiBHU1RfVElNRV9GT1JNQVQgKGxpa2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyk6CgkgIENhbid0IHVzZSBnc3Rfc2VnbWVudF90b19ydW5uaW5nX3RpbWUoKSB3aGVuIHRoZSBzZWdtZW50CgkgIGlzIG5vdCBpbiBHU1RfVElNRV9GT1JNQVQgKGxpa2Ugd2l0aCBmaWxlc2luaywgZm9yIGV4YW1wbGUpLgoJICBTdG9wcyBmbGFjIGVuY29kaW5nIHBpcGVsaW5lcyBmcm9tIHNwZXdpbmcgY3JpdGljYWwgd2FybmluZ3MKCSAgYXQgRU9TICgjMzMxMjQ4KS4KCjIwMDYtMDMtMTQgMTY6MzI6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogQWRkICdTaW5jZTogMC4xMC41JyB0byBndGstZG9jIGJsdXJiIGZvciBhZGRlZCBwcm9wZXJ0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCk6CgkgIEFkZCAnU2luY2U6IDAuMTAuNScgdG8gZ3RrLWRvYyBibHVyYiBmb3IgYWRkZWQgcHJvcGVydHkuCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpOgoJICBEb24ndCB0cnkgdG8gdHlwZWZpbmQgZW1wdHkgc3RyZWFtcy4KCjIwMDYtMDMtMTQgMTE6MTg6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNlcGFyYXRlIFFvUyBjYWxjdWxhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fcW9zKToKCSAgU2VwYXJhdGUgUW9TIGNhbGN1bGF0aW9uLgoJICBPbmx5IGRyb3AgYnVmZmVycyB3aGVuIGxhdGVuZXNzIGlzIGJpZ2dlciB0aGFuIHRoZQoJICBkdXJhdGlvbiBvZiB0aGUgYnVmZmVyLgoKMjAwNi0wMy0xMyAxNToxNzo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBEb24ndCBkZWFkbG9jayB3aGVuIHJlYWRpbmcgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLCAoZG9fcGlwZWxpbmVfc2VlayksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9zZXRfZGVsYXkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9kZWxheSk6CgkgIERvbid0IGRlYWRsb2NrIHdoZW4gcmVhZGluZyBwcm9wZXJ0aWVzLgoKMjAwNi0wMy0xMyAxMToyNzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBNYWtlIGJhc2V0cmFuc2Zvcm0gdmlydHVhbCBtZXRob2QgZm9yIHNyYyBldmVudHMgdG9vLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zaW5rX2V2ZW50ZnVuYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9zcmNfZXZlbnRmdW5jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSksIChnc3RfYmFzZV90cmFuc2Zvcm1fdXBkYXRlX3FvcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Fvc19lbmFibGVkKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pc19xb3NfZW5hYmxlZCk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIE1ha2UgYmFzZXRyYW5zZm9ybSB2aXJ0dWFsIG1ldGhvZCBmb3Igc3JjIGV2ZW50cyB0b28uCgkgIEhhbmRsZSBRT1MgaW4gYmFzZXRyYW5zZm9ybS4KCSAgQVBJOiBnc3RfYmFzZV90cmFuc2Zvcm1fdXBkYXRlX3FvcwoJICBBUEk6IGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcW9zX2VuYWJsZWQKCSAgQVBJOiBnc3RfYmFzZV90cmFuc2Zvcm1faXNfcW9zX2VuYWJsZWQKCjIwMDYtMDMtMTMgMTE6MTY6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNtYWxsIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgU21hbGwgY2xlYW51cHMuCgkgIFVzZSBRT1MgZGVidWcgY2F0ZWdvcnkuCgoyMDA2LTAzLTEzIDExOjExOjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiBWZXJ5IHNtYWxsIGRvYyB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgVmVyeSBzbWFsbCBkb2MgdXBkYXRlLgoKMjAwNi0wMy0xMyAxMTowODoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFkZGVkIFFPUyBkZWJ1ZyBjYXRlZ29yeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19pbml0KToKCSAgQWRkZWQgUU9TIGRlYnVnIGNhdGVnb3J5CgoyMDA2LTAzLTEzIDExOjA0OjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9idXNfaGFuZGxlciksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSk6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2dldF90eXBlKSwKCSAgKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwgKGdzdF9waXBlbGluZV9pbml0KSwKCSAgKGdzdF9waXBlbGluZV9kaXNwb3NlKSwgKGdzdF9waXBlbGluZV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9wcm9wZXJ0eSksIChkb19waXBlbGluZV9zZWVrKSwKCSAgKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KSwgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyksIChnc3RfcGlwZWxpbmVfc2V0X2RlbGF5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfZGVsYXkpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBBZGRlZCBtZXRob2RzIGZvciBzZXR0aW5nIHRoZSBkZWxheS4KCSAgQVBJOiBnc3RfcGlwZWxpbmVfc2V0X2RlbGF5CgkgIEFQSTogZ3N0X3BpcGVsaW5lX2dldF9kZWxheQoJICBBZGQgcGlwZWxpbmUgZGVidWcgY2F0ZWdvcnkKCSAgVmFyaW91cyBjbGVhbnVwcy4KCSAgVXBkYXRlZCBkb2NzLgoJICBEb24ndCByZXNldCBzdHJlYW0gdGltZSB3aGVuIHNlZWsgZmFpbGVkLgoKMjAwNi0wMy0xMyAxMDozMjoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1wcmVyb2xsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA2LTAzLTEyIDIwOjQ0OjQ2ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3R0YWdsaXN0LmM6IEZpeCBydWJiaXNoIGRvY3MgdGhhdCBhcmUgZW5jb3VyYWdpbmcgdXMgdG8gbGVhayBzdHJpbmdzLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAzLTEyICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHRhZ2xpc3QuYzogRml4IHJ1YmJpc2ggZG9jcyB0aGF0IGFyZSBlbmNvdXJhZ2luZwoJICB1cyB0byBsZWFrIHN0cmluZ3MuLi4KCjIwMDYtMDMtMTIgMjA6NDA6MTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkgIGZpeCBkb2NzCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUKCjIwMDYtMDMtMTIgMTQ6MzI6MzcgKzAwMDAgIEp1bGlvIE0uIE1lcmlubyBWaWRhbCA8am1tdkBuZXRic2Qub3JnPgoKCSAgY29uZmlndXJlLmFjOiBEb24ndCBjaGVjayBmb3IgbGliZ25vbWV1aSAobGVmdG92ZXIgZnJvbSBvbGQgZXhhbXBsZXMgdGhhdCBhcmVuJ3QgYnVpbHQgb3IgZGlzdGVkIGFueSBsb25nZXIpICgjMzM0MzAzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBKdWxpbyBNLiBNZXJpbm8gVmlkYWwgPGptbXYgYXQgbmV0YnNkIG9yZz4KCSAgKiBjb25maWd1cmUuYWM6CgkgIERvbid0IGNoZWNrIGZvciBsaWJnbm9tZXVpIChsZWZ0b3ZlciBmcm9tIG9sZCBleGFtcGxlcwoJICB0aGF0IGFyZW4ndCBidWlsdCBvciBkaXN0ZWQgYW55IGxvbmdlcikgKCMzMzQzMDMpLgoKMjAwNi0wMy0xMSAxMzowMjoyOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBFbWl0IFJFU09VUkNFX05PX1NQQUNFX0xFRlQgZXJyb3IgaGVyZSBhcyB3ZWxsIHdoZW4gdGhlcmUncyBubyBzcGFjZSBsZWZ0IG9uIHRoZSBkZXZpY2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6IChnc3RfZmRfc2lua19yZW5kZXIpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgRW1pdCBSRVNPVVJDRV9OT19TUEFDRV9MRUZUIGVycm9yIGhlcmUgYXMgd2VsbCB3aGVuCgkgIHRoZXJlJ3Mgbm8gc3BhY2UgbGVmdCBvbiB0aGUgZGV2aWNlLgoKMjAwNi0wMy0xMCAyMzo0NDowMCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RjbG9jay5oOiBGaXggR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgc2lnbmVkbmVzcyBpc3N1ZXMgLSB3ZSBuZWVkIHRvIGNhc3QgdGhlIGlucHV0IHRvIEdzdENsb2NrVGltZSBiZWZvcmUgY29tcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgRml4IEdTVF9DTE9DS19USU1FX0lTX1ZBTElEIHNpZ25lZG5lc3MgaXNzdWVzIC0gd2UgbmVlZAoJICB0byBjYXN0IHRoZSBpbnB1dCB0byBHc3RDbG9ja1RpbWUgYmVmb3JlIGNvbXBhcmluZyB3aXRoCgkgIGFub3RoZXIgR3N0Q2xvY2tUaW1lIHZhbHVlLgoKMjAwNi0wMy0xMCAxOToxMjowMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgbG9nIHdoYXQgd2UncmUgd2FpdGluZyBvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9nIHdoYXQgd2UncmUgd2FpdGluZyBvbgoKMjAwNi0wMy0xMCAxOToxMTozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gaGVhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBoZWFkCgo9PT0gcmVsZWFzZSAwLjEwLjQgPT09CgoyMDA2LTAzLTEwIDE5OjAzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL21hbnVhbC9SRUFETUU6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy5hcmdzOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvdXBsb2FkLm1hazoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZWxlYXNpbmcgMC4xMC40CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC4xMC40CgoyMDA2LTAzLTEwIDE1OjMwOjI3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeCBkb2NzIGZvciBkYXRhcHJvY290b2wgdG8gbm90IGdldCB0aGUgcmV0dXJuIHR5cGVzIGNvbXBsZXRlbHkgd3JvbmcgZm9yIGEgZmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOgoJICBGaXggZG9jcyBmb3IgZGF0YXByb2NvdG9sIHRvIG5vdCBnZXQgdGhlIHJldHVybiB0eXBlcyBjb21wbGV0ZWx5CgkgIHdyb25nIGZvciBhIGZldyBmdW5jdGlvbnMuCgoyMDA2LTAzLTA5IDE5OjAwOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJlcmVsZWFzaW5nCgoyMDA2LTAzLTA5IDE2OjUzOjA1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIG5ldyBBUEk6IGdzdF9waXBlbGluZV9zZXRfYXV0b19mbHVzaF9idXMoKSBhbmQgZ3N0X3BpcGVsaW5lX2dldF9hdXRvX2ZsdXNoX2J1cygpIHRvIGRpc2FibGUgYXV0b21hdGljIGZsdXNoaW5nIG9mLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfaW5pdCksIChnc3RfcGlwZWxpbmVfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9nZXRfcHJvcGVydHkpLCAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfc2V0X2F1dG9fZmx1c2hfYnVzKSwKCSAgKGdzdF9waXBlbGluZV9nZXRfYXV0b19mbHVzaF9idXMpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBBZGQgbmV3IEFQSTogZ3N0X3BpcGVsaW5lX3NldF9hdXRvX2ZsdXNoX2J1cygpIGFuZAoJICBnc3RfcGlwZWxpbmVfZ2V0X2F1dG9fZmx1c2hfYnVzKCkgdG8gZGlzYWJsZSBhdXRvbWF0aWMKCSAgZmx1c2hpbmcgb2YgdGhlIHBpcGVsaW5lJ3MgR3N0QnVzIHdoZW4gZ29pbmcgZnJvbSBSRUFEWQoJICB0byBOVUxMIHN0YXRlICgjMzMyMDQ1KS4KCjIwMDYtMDMtMDkgMTI6MDg6NTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgbmV3IEFQSTogZ3N0X3VyaV9oYXNfcHJvdG9jb2woKSAoIzMzMzc3OSkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X3VyaV9oYXNfcHJvdG9jb2wpOgoJICAqIGdzdC9nc3R1cmkuaDoKCSAgQWRkIG5ldyBBUEk6IGdzdF91cmlfaGFzX3Byb3RvY29sKCkgKCMzMzM3NzkpLgoKMjAwNi0wMy0wOSAxMTo0NToxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjbG9jay4qOiBSZXZpZXcgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwKCSAgKGdzdF9jbG9ja19pZF9jb21wYXJlX2Z1bmMpLCAoZ3N0X2Nsb2NrX2lkX3dhaXQpLAoJICAoZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMpLCAoZ3N0X2Nsb2NrX2lkX3Vuc2NoZWR1bGUpLAoJICAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX2dldF9pbnRlcm5hbF90aW1lKSwKCSAgKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKSwKCSAgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pLCAoZ3N0X2Nsb2NrX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFJldmlldyBkb2NzLgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgRml4IGEgcG9zc2libGUgc2VnZmF1bHQgd2hlbiB0aGUgd2luZG93LXNpemUgaXMgbWFkZSBzbWFsbGVyLgoJICBDYWxjdWxhdGUgaml0dGVyIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBjbG9jayB3YWl0LiBJZGVhbGx5CgkgIHRoZSBjbG9jayBpbXBsZW1lbnRhdGlvbiBzaG91bGQgY2FsY3VsYXRlIGppdHRlciBidXQgd2UgbmVlZAoJICBBUEkgYnJlYWthZ2UgZm9yIHRoYXQuCgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpOgoJICBEb2NzIHJldmlldy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICBSZW1vdmUgbGVmdG92ZXIgZWxzZQoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3N5c3RlbWNsb2NrX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgdG8gdGVzdCBHU1RfQ0xPQ0tfRElGRi4KCjIwMDYtMDMtMDkgMTA6NDY6MzUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IElmIHdlIGFyZSBwcm92aWRlZCB3aXRoIHRoZSBzaXplLCB3ZSBzaG91bGQgaW1wbGVtZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX2dldF9sZW5ndGgpLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXJfZ2V0X3JhbmdlKToKCSAgSWYgd2UgYXJlIHByb3ZpZGVkIHdpdGggdGhlIHNpemUsIHdlIHNob3VsZCBpbXBsZW1lbnQKCSAgR3N0VHlwZUZpbmQ6OmdldF9sZW5ndGgsIHNvIHRoYXQgdHlwZWZpbmQgZnVuY3Rpb25zIHdobwoJICB3YW50IHRvIGNhbiBhY3R1YWxseSBwZWVrIGF0IHRoZSBtaWRkbGUgb2YgYSBmaWxlLgoKMjAwNi0wMy0wOCAxNDozMDo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBBZGQgc29tZSB2ZXJ5IHZlcnkgYmFzaWMgZXJyb3IgY2hlY2tpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICBBZGQgc29tZSB2ZXJ5IHZlcnkgYmFzaWMgZXJyb3IgY2hlY2tpbmcuCgkgICogZG9jcy9wd2cvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgU29tZSB1cGRhdGVzIHRvIHRoZSBsaXN0IG9mIHRoaW5ncyB0byBjaGVjayB3aGVuIHdyaXRpbmcgYW4gZWxlbWVudC4KCjIwMDYtMDMtMDggMTM6NDQ6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtdHJhbnNmb3JtLnR4dDogQWRkZWQgc29tZSBkb2NzIGFib3V0IHRoZSBkZXNpZ24gb2YgdHJhbmZvcm0gZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC10cmFuc2Zvcm0udHh0OgoJICBBZGRlZCBzb21lIGRvY3MgYWJvdXQgdGhlIGRlc2lnbiBvZiB0cmFuZm9ybSBlbGVtZW50cy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1hcmsgYnVmZmVycyB3aXRoIHRoZSBESVNDT05UIGZsYWcuCgoyMDA2LTAzLTA4IDEyOjU3OjM3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvOiBSZXdyaXRlIHJlZ2lzdHJ5LXNhdmluZyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgYW5kIGNoZWNrIGZvciBmYWlsZWQgd3JpdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGdzdF9yZWdpc3RyeV9zYXZlKSwKCSAgKGdzdF9yZWdpc3RyeV9zYXZlX2VzY2FwZWQpLCAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX2NhcHMpLAoJICAoZ3N0X3JlZ2lzdHJ5X3htbF9zYXZlX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfZmVhdHVyZSksIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfcGx1Z2luKSwKCSAgKGdzdF9yZWdpc3RyeV94bWxfd3JpdGVfY2FjaGUpOgoJICBSZXdyaXRlIHJlZ2lzdHJ5LXNhdmluZyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMgYW5kIGNoZWNrIGZvcgoJICBmYWlsZWQgd3JpdGVzLgoKMjAwNi0wMy0wOCAxMDoxNzo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBDbGVhbnVwcywgc2VwYXJhdGUgbm9ybWFsIGZsb3cgZnJvbSBlcnJvcnMsIGFkZCBzZW5zaWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhbnVwcywgc2VwYXJhdGUgbm9ybWFsIGZsb3cgZnJvbSBlcnJvcnMsIGFkZCBzZW5zaWJsZQoJICBERUJVRyBsaW5lcy4KCSAgRG9uJ3QgdHJ5IHRvIHJlbmVnb3RpYXRlIHdoZW4gYWxsb2NhdGluZyBhbiBvdXRwdXQgYnVmZmVyLgoJICBBbHNvIGNvcHkgRElTQ09OVCBidWZmZXIgZmxhZyB3aGVuIGNvcHlpbmcgYSBidWZmZXIuCgkgIFJlc2V0IHRoZSB0cmFuc2Zvcm0gYWZ0ZXIgd2UgZmluaXNoIHN0cmVhbWluZywgbm90IGR1cmluZy4KCjIwMDYtMDMtMDggMDk6NDY6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFVzZSBsYXN0IGJ1ZmZlciB0aW1lc3RhbXAgaW4gcW9zIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIFVzZSBsYXN0IGJ1ZmZlciB0aW1lc3RhbXAgaW4gcW9zIG1lc3NhZ2UuCgoyMDA2LTAzLTA3IDE3OjA2OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9wd2cvOiBBcHBsaWVkIHBhdGNoIGZyb20gQ2hyaXN0b3BoZSBGZXJnZWF1LCBmaXhlcyAjMzMzNDE2CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXRhZ2dpbmcueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICBBcHBsaWVkIHBhdGNoIGZyb20gQ2hyaXN0b3BoZSBGZXJnZWF1LCBmaXhlcyAjMzMzNDE2CgoyMDA2LTAzLTA3IDE2OjIxOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDogQWRkZWQgYmFzZXNpbmsgbmV3IG1ldGhvZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIGJhc2VzaW5rIG5ldyBtZXRob2RzLgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBEb2NzIHVwZGF0ZXMuIEZsZXNoIG91dCB0aGUgUW9TIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIFNtYWxsIGRvYyBjbGFyaWZpY2F0aW9uIGFib3V0IG93bmVyc2hpcCBhbmQgZmx1c2hpbmcuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19zZXRfc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9zeW5jKSwgKGdzdF9iYXNlX3Npbmtfc2V0X21heF9sYXRlbmVzcyksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9tYXhfbGF0ZW5lc3MpLCAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEFkZGVkIG5ldyBtZXRob2RzIHRvIGFsbG93IHN1YmNsYXNzIHRvIGNvbnRyb2wgbWF4LWxhdGVuZXNzCgkgIGFuZCBzeW5jLgoJICBHZW5lcmF0ZSB2ZXJ5IGJhc2ljIFFvUyBldmVudHMgYmFzZWQgb24gbGFzdCBzeW5jIG9ic2VydmF0aW9uLgoJICBVcGRhdGVkIGRvY3MsIGZpeCB0eXBvLCBhZGRlZCBzb21lIFFvUyBibHVyYi4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgUmVtb3ZlIG9ic29sZXRlIF9nZXRfc3RhdGUoKSBjYWxscyBmcm9tIGRvY3MuCgoyMDA2LTAzLTA3IDE1OjE0OjUxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4ICMzMzM2NjksIEFkZCBwYWQgYWNjZXNzb3IgZGVmaW5lcyBmb3IgR3N0QmFzZVRyYW5zZm9ybQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBGaXggIzMzMzY2OSwgQWRkIHBhZCBhY2Nlc3NvciBkZWZpbmVzIGZvciBHc3RCYXNlVHJhbnNmb3JtCgkgIEZpeCBkb2NzIGZvciBHc3RCYXNlU3JjLgoKMjAwNi0wMy0wNyAxNTowODo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIGRvY3VtZW50YXRpb24gZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBTbWFsbCBkb2N1bWVudGF0aW9uIGZpeGVzLgoKMjAwNi0wMy0wNyAxMTo0NzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBEb2N1bWVudCB0aHJlYWQtdW5zYWZldHkgb2YgZ3N0X3ZhbHVlX3JlZ2lzdGVyX2Zvb19mdW5jKCkgd2hlbiB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgYXMgZ3N0X3ZhbHVlX2Zvby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRG9jdW1lbnQgdGhyZWFkLXVuc2FmZXR5IG9mIGdzdF92YWx1ZV9yZWdpc3Rlcl9mb29fZnVuYygpCgkgIHdoZW4gdXNlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIGdzdF92YWx1ZV9mb28oKSAoIzMyMjYyOCkuCgoyMDA2LTAzLTA3IDEwOjE5OjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgdXBkYXRlIFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIFJFQURNRQoKMjAwNi0wMy0wNyAwOToyODo0NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOiBQdXNoIHNvdXJjZXMgZG9uJ3Qgc3VwcG9ydCBwdWxsIG1vZGUgYnkgZGVmYXVsdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmM6IChnc3RfcHVzaF9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcHVzaF9zcmNfY2hlY2tfZ2V0X3JhbmdlKToKCSAgUHVzaCBzb3VyY2VzIGRvbid0IHN1cHBvcnQgcHVsbCBtb2RlIGJ5IGRlZmF1bHQuCgoyMDA2LTAzLTA2IDE5OjU1OjA2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IEFkZCA6OmNoZWNrX2dldF9yYW5nZSgpIHZmdW5jIHRvIEdzdEJhc2VTcmMgKCMzMzI2MTEpLCBwcm92aWRlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24sIGFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3BhZF9jaGVja19nZXRfcmFuZ2UpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfY2hlY2tfZ2V0X3JhbmdlKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIDo6Y2hlY2tfZ2V0X3JhbmdlKCkgdmZ1bmMgdG8gR3N0QmFzZVNyYyAoIzMzMjYxMSksCgkgIHByb3ZpZGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiwgYW5kIHJlbmFtZQoJICBnc3RfYmFzZV9zcmNfY2hlY2tfZ2V0X3JhbmdlKCkgdG8KCSAgZ3N0X2Jhc2Vfc3JjX3BhZF9jaGVja19nZXRfcmFuZ2UoKSBmb3IgY2xhcml0eS4KCjIwMDYtMDMtMDYgMTY6MjQ6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vc3R5bGVndWlkZToKCSAgc3R5bGUgZ3VpZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHN0eWxlIGd1aWRlCgoyMDA2LTAzLTA2IDE2OjEwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBNYWtlIHByb3BlcnR5IG92ZXJyaWRhYmxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpOgoJICBNYWtlIHByb3BlcnR5IG92ZXJyaWRhYmxlLgoKMjAwNi0wMy0wNiAxNjowMjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogTWFrZSBtYXgtbGF0ZW5lc3MgYSBwcm9wZXJ0eS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCksIChnc3RfYmFzZV9zaW5rX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wcm9wZXJ0eSksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgTWFrZSBtYXgtbGF0ZW5lc3MgYSBwcm9wZXJ0eS4KCjIwMDYtMDMtMDYgMTU6MTY6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IGV2ZXIgZHJhdyBhIGZyYW1lIHRoYXQgaXMgPjEwbXMgbGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua193YWl0X2Nsb2NrKSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpOgoJICBEb24ndCBldmVyIGRyYXcgYSBmcmFtZSB0aGF0IGlzID4xMG1zIGxhdGUuCgoyMDA2LTAzLTA2IDE0OjUxOjM2ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBXaGVuIGNvcHlpbmcgYSBtZXNzYWdlLCBzZXQgdGhlIHBhcmVudF9yZWZjb3VudCBvZiB0aGUgZW5jbG9zZWQgc3RydWN0dXJlIHRvIHBvaW50IGF0IHRoZSBjb3B5LCBub3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9jb3B5KToKCSAgV2hlbiBjb3B5aW5nIGEgbWVzc2FnZSwgc2V0IHRoZSBwYXJlbnRfcmVmY291bnQgb2YgdGhlIGVuY2xvc2VkCgkgIHN0cnVjdHVyZSB0byBwb2ludCBhdCB0aGUgY29weSwgbm90IHRoZSBvcmlnaW5hbCBtZXNzYWdlLgoKMjAwNi0wMy0wNiAxNDo0NjozMSArMDAwMCAgQ2hyaXN0b3BoZSBGZXJnZWF1IDx0ZXVmQGdub21lLm9yZz4KCgkgIGdzdC9nc3R1dGlscy5oOiBEbyBwcm9wZXIgY2FzdCBoZXJlIHRvIG1ha2UgR1NUX0JPSUxFUlBMQVRFX1dJVEhfSU5URVJGQUNFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBEbyBwcm9wZXIgY2FzdCBoZXJlIHRvIG1ha2UgR1NUX0JPSUxFUlBMQVRFX1dJVEhfSU5URVJGQUNFCgkgIHVzYWJsZSBpbiBjKysgY29kZSAoIzMzMzQxNzsgcGF0Y2ggYnk6IENocmlzdG9waGUgRmVyZ2VhdSkKCjIwMDYtMDMtMDYgMTQ6MzQ6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmg6IFNob3cgR1NUX0NMT0NLX1RJTUVfTk9ORSBhcyA5OTo5OTo5OS45OTk5OTk5OTkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFNob3cgR1NUX0NMT0NLX1RJTUVfTk9ORSBhcyA5OTo5OTo5OS45OTk5OTk5OTkKCjIwMDYtMDMtMDYgMTQ6MjM6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSAgYWRkIGFub3RoZXIgcXVvdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhbm90aGVyIHF1b3RlCgoyMDA2LTAzLTA1IDIwOjU2OjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2Ugc3VyZSBjYXBzIGFyZSB3cml0YWJsZSBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIGdzdF9jYXBzX2FwcGVuZCgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgIE1ha2Ugc3VyZSBjYXBzIGFyZSB3cml0YWJsZSBiZWZvcmUgcGFzc2luZyB0aGVtIHRvCgkgIGdzdF9jYXBzX2FwcGVuZCgpLgoKMjAwNi0wMy0wNCAxNDo0NTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5oOiBGaXggc29tZSBtaW5vciBkb2NzIGVycm9ycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgIEZpeCBzb21lIG1pbm9yIGRvY3MgZXJyb3JzLgoKMjAwNi0wMy0wNCAxMzo1NDoyNiArMDAwMCAgUm9zcyBCdXJ0b24gPHJvc3NAYnVydG9uaW5pLmNvbT4KCgkgIGdzdC9nc3RlcnJvci4qOiBBZGQgR1NUX1JFU09VUkNFX0VSUk9SX05PX1NQQUNFX0xFRlQgKGZvciAjMzMzMzUyOwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3RfcmVzb3VyY2VfZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBBZGQgR1NUX1JFU09VUkNFX0VSUk9SX05PX1NQQUNFX0xFRlQgKGZvciAjMzMzMzUyOwoJICBwYXRjaCBieTogUm9zcyBCdXJ0b24gPHJvc3MgYXQgYnVydG9uaW5pIGRvdCBjb20+KS4KCjIwMDYtMDMtMDMgMTY6NTg6NTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdC5jOiBBZGQgYSBjaGVjayBhbmQgb3V0cHV0IGEgZ193YXJuaW5nIHdoZW4gR1N0cmVhbWVyIGlzIGJ1aWx0IGFnYWluc3QgR0xpYiAyLjYgYnV0IHJ1bm5pbmcgYWdhaW5zdCAyLjggb3IgaGlnLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgQWRkIGEgY2hlY2sgYW5kIG91dHB1dCBhIGdfd2FybmluZyB3aGVuIEdTdHJlYW1lciBpcyBidWlsdAoJICBhZ2FpbnN0IEdMaWIgMi42IGJ1dCBydW5uaW5nIGFnYWluc3QgMi44IG9yIGhpZ2hlciwgYW5kIHZpY2UKCSAgdmVyc2EuIChDbG9zZXM6ICMzMjM1NDIpCgoyMDA2LTAzLTAzIDE1OjMyOjMwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9wYXJzZS9wYXJzZS5sOiBDb21taXQgcGF0Y2ggZm9yIHBhcnNlX2xhdW5jaCBzeW50YXggZnJvbSAjMzMxMjU1LiBSZW1vdmVzIHN1cHBvcnQgZm9yIHF1b3RlZCBzdHJpbmdzIGFuZCBtaW1ldHlwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcGFyc2UvcGFyc2UubDoKCSAgQ29tbWl0IHBhdGNoIGZvciBwYXJzZV9sYXVuY2ggc3ludGF4IGZyb20gIzMzMTI1NS4gUmVtb3ZlcwoJICBzdXBwb3J0IGZvciBxdW90ZWQgc3RyaW5ncyBhbmQgbWltZXR5cGVzIHdoZW4gd3JpdGluZyBmaWx0ZXJlZAoJICBjYXBzLiBTZWUgdGhlIGJ1ZyByZXBvcnQgZm9yIG1vcmUgZGV0YWlscyAtIEknbSBwcmV0dHkgc3VyZSB0aGlzCgkgIG9ic2N1cmUgZmVhdHVyZSBpcyBub3QgaW4gdXNlIGJ5IF9hbnlvbmVfIGFueXdoZXJlLgoJICBXaXRoIHRoaXMgc2ltcGxlIGNoYW5nZSwgdGhlIHNpemUgb2YgdGhlIGdzdHJlYW1lci5zbyBoZXJlCgkgIGRyb3BzIGZyb20gMjE5M0tCIHRvIDE1NjVLQi4KCjIwMDYtMDMtMDMgMTQ6MTg6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBVc2UgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpIGZvciBjaGFpbi1iYXNlZCB0eXBlZmluZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NyY19ldmVudCksIChzdGFydF90eXBlZmluZGluZyksCgkgIChzdG9wX3R5cGVmaW5kaW5nKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbl9kb190eXBlZmluZGluZyk6CgkgIFVzZSBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyKCkgZm9yIGNoYWluLWJhc2VkCgkgIHR5cGVmaW5kaW5nLgoKMjAwNi0wMy0wMyAxMTo0Mjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IERlcHJlY2F0ZSAibWF4aW11bSIgcHJvcGVydHkgKG5vdCBvbmx5IHdhcyBpdCBvbmx5IHRha2VuIGludG8gYWNjb3VudCBmb3IgdHlwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0X3Byb3BlcnR5KToKCSAgRGVwcmVjYXRlICJtYXhpbXVtIiBwcm9wZXJ0eSAobm90IG9ubHkgd2FzIGl0IG9ubHkgdGFrZW4gaW50bwoJICBhY2NvdW50IGZvciB0eXBlZmluZGluZyBpbiBwdXNoLW1vZGUgYW55d2F5LCBpdCBhbHNvIHdhcyBuZXZlcgoJICBhY3R1YWxseSBwb3NzaWJsZSB0byBzZXQgaXQgaW4gdGhlIGZpcnN0IHBsYWNlIGJlY2F1c2UgdGhlCgkgIHByb3BlcnR5IHdhcyByZWdpc3RlcmVkIHdpdGggdGhlIG51bWVyaWMgcHJvcGVydHkgSUQgZm9yIHRoZQoJICAibWluaW11bSIgcHJvcGVydHkpLiBSZWdpc3RlciAibWF4aW11bSIgcHJvcGVydHkgY29ycmVjdGx5LAoJICBmb3IgdGhlIHNha2Ugb2YgZnV0dXJlIGNvcHknbidwYXN0ZXJzLiBSZW1vdmUgc29tZSBjcnVmdAoJICBmcm9tIHByb3BlcnR5IGdldC9zZXQgZnVuY3Rpb25zLgoKMjAwNi0wMy0wMyAxMToyNzowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFVzZSBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UoKSBoZXJlLCBzbyB3ZSBjYW4gaG9ub3VyIHRoZSBtaW4tcHJvYmFiaWxpdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgVXNlIGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSgpIGhlcmUsIHNvIHdlCgkgIGNhbiBob25vdXIgdGhlIG1pbi1wcm9iYWJpbGl0eSBwcm9wZXJ0eSBhbmQgYWxzbyBlbWl0CgkgIHRoZSBzaWduYWwgd2l0aCB0aGUgY29ycmVjdCBwcm9iYWJpbGl0eSBvZiB0aGUgZm91bmQgY2Fwcy4KCjIwMDYtMDMtMDIgMTM6NDU6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBOZXcgQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UoKSAoIzMzMzA0MikuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayksCgkgIChoZWxwZXJfZmluZF9zdWdnZXN0KSwgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2dldF9yYW5nZSksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJICBOZXcgQVBJOiBnc3RfdHlwZV9maW5kX2hlbHBlcl9nZXRfcmFuZ2UoKSAoIzMzMzA0MikuCgoyMDA2LTAzLTAyIDExOjA0OjU4ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQXNzZXJ0aW5nIG9uIGEgZmFpbHVyZSB0byByZWFkIHBhcnQgb2YgdGhlIHJlZ2lzdHJ5IGlzIE5vdCBDb29sLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfZmVhdHVyZSk6CgkgIEFzc2VydGluZyBvbiBhIGZhaWx1cmUgdG8gcmVhZCBwYXJ0IG9mIHRoZSByZWdpc3RyeSBpcyBOb3QgQ29vbC4KCSAgSnVzdCBsb2cgYSB3YXJuaW5nIGFuZCByZXR1cm4gTlVMTCAod2hpY2ggaXMgYWxyZWFkeSBoYW5kbGVkKQoKMjAwNi0wMi0yOCAyMDo1NzoxMCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOiBhZGRlZCBleHBvcnQgb2YgZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGFkZGVkIGV4cG9ydCBvZiBnc3RfdHlwZV9maW5kX2hlbHBlcl9mb3JfYnVmZmVyCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICBhZGRlZCBzb21lIGV4cG9ydHMgOiBnc3RfYmluX2l0ZXJhdGVfZWxlbWVudHMsIGdzdF9pdGVyYXRvcl9yZXN5bmMsCgkgIGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldAoKMjAwNi0wMi0yOCAxNzoyNDoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDogV2UgdXNlIEZpbHRlciBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgV2UgdXNlIEZpbHRlciBub3cuCgkgIEFkZGVkIENvbm5lY3RvciB0byBtYXJrIGVsZW1lbnRzIHRoYXQgYXJlIG9ubHkgdXNlZCB0bwoJICBhbGxvdyBwaXBlbGluZSBjb25uZWN0aW9ucy4KCSAgTW92ZWQgRGVidWcgdG8gZXh0cmEgZmVhdHVyZSBzaW5jZSBtb3N0IG9mIHRoZW0gYXJlCgkgIGZ1bmN0aW9uYWxseSBzb21ldGhpbmcgZWxzZS4KCjIwMDYtMDItMjggMTc6MDM6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IFNvbWUgdXBkYXRlcyBhbmQgY2xhcmlmaWNhdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgU29tZSB1cGRhdGVzIGFuZCBjbGFyaWZpY2F0aW9ucy4KCjIwMDYtMDItMjggMTU6NTQ6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9kcmFmdC1rbGFzcy50eHQ6IFByb3Bvc2FsIGZvciBrbGFzcyBmaWVsZCB2YWx1ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LWtsYXNzLnR4dDoKCSAgUHJvcG9zYWwgZm9yIGtsYXNzIGZpZWxkIHZhbHVlcy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXN0cmVhbXMudHh0OgoJICBTdGFydCBvZiBhIGRvYyBkZXNjcmliaW5nIHN0cmVhbSBhbmF0b215LgoKMjAwNi0wMi0yOCAxMDo1MjowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogSGVscCB0aGUgY29tcGlsZXIgYSBiaXQgd2l0aCB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9nZXRfdHlwZSksIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICBIZWxwIHRoZSBjb21waWxlciBhIGJpdCB3aXRoIHR5cGUgcmVnaXN0cmF0aW9uLgoJICBVc2UgZXhpc3RpbmcgZm9yd2FyZCBjb2QgcGF0aCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0IHdoZW4KCSAgaGFuZGxpbmcgYSBtZXNzYWdlLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19nZXRfdHlwZSksIChnc3Rfc3RhdGljX2NhcHNfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3R5cGUpLAoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOiAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5jOiAoZ3N0X2luZGV4X2ZhY3RvcnlfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfZ2V0X3R5cGUpLCAoZ3N0X3Rhc2tfam9pbik6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgIEhlbHAgY29tcGlsZXIgd2l0aCB0eXBlIHJlZ2lzdHJhdGlvbi4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpOgoJICBTbWFsbCBkb2MgdXBkYXRlLgoKMjAwNi0wMi0yNyAyMDowMTo1MyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFdoZW4gd2UgZ2V0IGFuIEVPUyBldmVudCBhbmQgaGF2ZSBub3QgZm91bmQgYSB0eXBlIHlldCAobW9zdCBsaWtlbHkgYmVjYXVzZSB3ZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhbmRsZV9ldmVudCk6CgkgIFdoZW4gd2UgZ2V0IGFuIEVPUyBldmVudCBhbmQgaGF2ZSBub3QgZm91bmQgYSB0eXBlIHlldAoJICAobW9zdCBsaWtlbHkgYmVjYXVzZSB3ZSBoYWQgbm90IHlldCBhY2N1bXVsYXRlZAoJICBUWVBFX0ZJTkRfTUlOX1NJWkUgb2YgZGF0YSB5ZXQpLCB0cnkgdG8gZGV0ZXJtaW5lIHRoZQoJICB0eXBlIGdpdmVuIHRoZSBkYXRhIHdlIGhhdmUgc28gZmFyLiBGaXhlcyB0eXBlZmluZGluZwoJICBmb3IgdmVyeSBzaG9ydCBzdHJlYW1zIGFnYWluLCBtb3N0IG5vdGFibHkgcXVpY2t0aW1lCgkgIHJlZGlyZWN0aW9ucyBhcyB1c2VkIG9uIEFwcGxlJ3MgdHJhaWxlciBzaXRlICgjMzMxNzAxKS4KCjIwMDYtMDItMjcgMTk6NDU6MzEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IFRyeSB0eXBlZmluZGluZyBmYWN0b3JpZXMgd2l0aCB0aGUgaGlnaGVzdCByYW5rIGZpcnN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6ICh0eXBlX2ZpbmRfZmFjdG9yeV9yYW5rX2NtcCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgIFRyeSB0eXBlZmluZGluZyBmYWN0b3JpZXMgd2l0aCB0aGUgaGlnaGVzdCByYW5rIGZpcnN0LgoKMjAwNi0wMi0yNyAxOToxOTo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBzZWN0aW9uIGZvciB0eXBlZmluZCBoZWxwZXIgYW5kIGFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgb2xkIGFuZCB0aGUgbmV3IGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJICBBZGQgc2VjdGlvbiBmb3IgdHlwZWZpbmQgaGVscGVyIGFuZCBhZGQgZG9jdW1lbnRhdGlvbgoJICBmb3IgdGhlIG9sZCBhbmQgdGhlIG5ldyBmdW5jdGlvbi4KCjIwMDYtMDItMjcgMTg6NDM6MjYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLio6IE5ldyBBUEk6IGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIoKSAoIzMzMjcyMykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGJ1Zl9oZWxwZXJfZmluZF9wZWVrKSwKCSAgKGJ1Zl9oZWxwZXJfZmluZF9zdWdnZXN0KSwgKHR5cGVfZmluZF9mYWN0b3J5X3JhbmtfY21wKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyX2Zvcl9idWZmZXIpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSAgTmV3IEFQSTogZ3N0X3R5cGVfZmluZF9oZWxwZXJfZm9yX2J1ZmZlcigpICgjMzMyNzIzKS4KCjIwMDYtMDItMjcgMTU6NDM6MTAgKzAwMDAgIExvw69jIE1pbmllciA8bG9vbC5nbm9tZUB2aWEuZWNwLmZyPgoKCSAgUGF0Y2ggZnJvbSBMb8OvYyBNaW5pZXIgdG8gcHJldmVudCBDVlMgZGlyZWN0b3JpZXMgZ2V0dGluZyBkaXN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL01ha2VmaWxlLmFtOgoJICAqIGRvY3Mvc2xpZGVzL01ha2VmaWxlLmFtOgoJICBQYXRjaCBmcm9tIExvw69jIE1pbmllciB0byBwcmV2ZW50IENWUyBkaXJlY3RvcmllcyBnZXR0aW5nIGRpc3RlZC4KCjIwMDYtMDItMjcgMTI6MTA6NDcgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZQoKMjAwNi0wMi0yNyAxMTowMTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RjYXBzLmM6IFVzZSB0aGUgUkVGQ09VTlRJTkcgY2F0ZWdvcnkgZm9yIGNhcHMgcmVmY291bnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19yZWYpLCAoZ3N0X2NhcHNfdW5yZWYpOgoJICBVc2UgdGhlIFJFRkNPVU5USU5HIGNhdGVnb3J5IGZvciBjYXBzIHJlZmNvdW50aW5nLgoKMjAwNi0wMi0yNiAxOToyMDo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IFRoaXMgc2hvdWxkIGJlIDAgbm90IEdTVF9DTE9DS19USU1FX05PTkUgKHNlZSAjMzMxNzAxKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKHN0b3BfdHlwZWZpbmRpbmcpOgoJICBUaGlzIHNob3VsZCBiZSAwIG5vdCBHU1RfQ0xPQ0tfVElNRV9OT05FIChzZWUgIzMzMTcwMSkuCgoyMDA2LTAyLTI2IDE0OjQyOjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogVXNlIGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSgpIGJlZm9yZSBfYWN0aXZhdGVfcHVsbCgpIHRvIGF2b2lkIHVubmVjZXNzYXJ5IG9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBVc2UgZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKCkgYmVmb3JlIF9hY3RpdmF0ZV9wdWxsKCkKCSAgdG8gYXZvaWQgdW5uZWNlc3Nhcnkgb3Blbi9jbG9zZSAoc2VlICMzMzE2OTApLgoKMjAwNi0wMi0yNCAxNjo1NDoyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5jOiBEb2NzIGVuaGFuY2VtZW50OiBtYWtlIGl0IGNyeXN0YWwgY2xlYXIgd2hhdCB0aGUgZ3N0X3BhZF9hZGRfKl9wcm9iZSgpIGNhbGxiYWNrcyBzaG91bGQgbG9vayBsaWtlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgRG9jcyBlbmhhbmNlbWVudDogbWFrZSBpdCBjcnlzdGFsIGNsZWFyIHdoYXQgdGhlCgkgIGdzdF9wYWRfYWRkXypfcHJvYmUoKSBjYWxsYmFja3Mgc2hvdWxkIGxvb2sgbGlrZS4KCjIwMDYtMDItMjQgMTA6NTc6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogRG9jdW1lbnQgaG93IGFwcGxpY2F0aW9ucyBjYW4gc3RvcCByZWNvcmRpbmcgZnJvbSBsaXZlIHNvdXJjZXMgKHNlZSAjMzMwOTk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIERvY3VtZW50IGhvdyBhcHBsaWNhdGlvbnMgY2FuIHN0b3AgcmVjb3JkaW5nIGZyb20KCSAgbGl2ZSBzb3VyY2VzIChzZWUgIzMzMDk5NikuCgoyMDA2LTAyLTIzIDE4OjA2OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgSWdub3JlIG1vcmUgc3R1ZmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL3BsdWdpbnMvdG1wbC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2NoZWNrL2xpYnMvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmN2c2lnbm9yZToKCSAgSWdub3JlIG1vcmUgc3R1ZmYuCgoyMDA2LTAyLTIzIDE3OjM5OjIwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svOiAuLi4gYW5kIGFkZCBzb21lIHRlc3RzIGZvciB0aGUgYmFzZSBzb3VyY2UgRU9TIHN0dWZmLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2Jhc2VzcmMuYzogKGVvc19ldmVudF9jb3VudGVyKSwKCSAgKGJhc2VzcmNfZW9zX2V2ZW50c19wdWxsKSwgKGJhc2VzcmNfZW9zX2V2ZW50c19wdXNoKSwKCSAgKGJhc2VzcmNfZW9zX2V2ZW50c19wdXNoX2xpdmVfb3ApLCAoYmFzZXNyY19lb3NfZXZlbnRzX3B1bGxfbGl2ZV9vcCksCgkgIChnc3RfYmFzZXNyY19zdWl0ZSksIChtYWluKToKCSAgLi4uIGFuZCBhZGQgc29tZSB0ZXN0cyBmb3IgdGhlIGJhc2Ugc291cmNlIEVPUyBzdHVmZi4KCjIwMDYtMDItMjMgMTY6NTY6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogVGVzdCBjYXNlIG9yaWdpbmFsbHkgc2hvd2VkIHRoZSBwcm9ibGVtIGZpeGVkIGJlbG93LCBidXQgd2FzIHRoZW4gYW1lbmRlZC4gQWRkIGNoZWNrcyBiYWMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6ICh0ZXN0X2J1ZmZlcl9wcm9iZV9uX3RpbWVzKToKCSAgVGVzdCBjYXNlIG9yaWdpbmFsbHkgc2hvd2VkIHRoZSBwcm9ibGVtIGZpeGVkIGJlbG93LAoJICBidXQgd2FzIHRoZW4gYW1lbmRlZC4gQWRkIGNoZWNrcyBiYWNrIGF0IHRoZSBwbGFjZQoJICB3aGVyZSB0aGV5IHVzZWQgdG8gYmUuCgoyMDA2LTAyLTIzIDE2OjI0OjM2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IERvbid0IHVuY29uZGl0aW9uYWxseSBzZW5kIEVPUyB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIERvbid0IHVuY29uZGl0aW9uYWxseSBzZW5kIEVPUyB3aGVuIGdvaW5nIGZyb20gUEFVU0VEIHRvCgkgIFJFQURZIHN0YXRlLCBlc3AuIG1ha2Ugc3VyZSB3ZSBkb24ndCBzZW5kIHR3byBFT1MgZXZlbnRzCgkgIGluIHNvbWUgY2FzZXMgKGUuZy4gb25lIHdoZW4gcmVhY2hpbmcgRU9TIGFuZCBvbmUgd2hlbgoJICBnb2luZyBmcm9tIFBBVVNFRCB0byBSRUFEWSkuIEFsc28sIHdlIGRvbid0IHdhbnQgdG8gc2VuZAoJICBFT1MgZXZlbnRzIHdoZW4gb3BlcmF0aW5nIGluIHB1bGwgbW9kZS4gSG93ZXZlciwgd2UgZG8KCSAgd2FudCB0byBzZW5kIGFuIEVPUyBldmVudCB3aGVuIHNodXR0aW5nIGRvd24gYSBsaXZlCgkgIHNvdXJjZSBleHBsaWNpdGx5LCBmb3IgZXhhbXBsZSAoZml4ZXMgIzMzMDk5NikuCgoyMDA2LTAyLTIzIDEwOjI0OjEzICswMDAwICBSZW5jaGkgUmFqdSA8cmVuY2hpQGdtYWlsLmNvbT4KCgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiBVcGRhdGUgc3JjLT5yZWFkX3Bvc2l0aW9uIGFmdGVyIGEgc2VlayB3aGVuIG5vdCB1c2luZyBtbWFwLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jcmVhdGVfcmVhZCk6CgkgIFVwZGF0ZSBzcmMtPnJlYWRfcG9zaXRpb24gYWZ0ZXIgYSBzZWVrIHdoZW4gbm90IHVzaW5nIG1tYXAuCgkgIEZpeGVzICMzMzIyNzcsIHBhdGNoIGJ5OiBSZW5jaGkgUmFqdSA8cmVuY2hpIGdtYWlsIGNvbT4KCjIwMDYtMDItMjAgMjM6MzQ6NDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0LzogTWFrZSB0aGluZ3Mgd29yayB3aXRoIC0tZGlzYWJsZS1wYXJzZSBhcyB0aGV5IGRvIHdpdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RwYXJzZS5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBNYWtlIHRoaW5ncyB3b3JrIHdpdGggLS1kaXNhYmxlLXBhcnNlIGFzIHRoZXkgZG8gd2l0aAoJICAtLWRpc2FibGUtbG9hZC1zYXZlIC0gdGhlIHN5bWJvbHMgaW52b2x2ZWQgZGlzYXBwZWFyLCBidXQgdGhlCgkgIGhlYWRlciBpcyBzdGlsbCBpbnN0YWxsZWQgYW5kIEdTVF9ESVNBQkxFX1BBUlNFIGlzIGluY2x1ZGVkIHZpYQoJICBnc3Rjb25maWcuaAoKMjAwNi0wMi0yMCAxNjowNzo0MiArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRml4IGEgc3R1cGlkIGJ1Zy4gSSB3YXMgc3VyZSBpIGNvbXBpbGVkIHRoYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6IEZpeCBhIHN0dXBpZCBidWcuIEkgd2FzCgkgIHN1cmUgaSBjb21waWxlZCB0aGF0LgoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCjIwMDYtMDItMjAgMTU6MDc6MzMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0LzogTWFrZSB0aG9zZSBmdW5jdGlvbiBhY3Qgb24gdGhlIGdob3N0cGFkIHRhcmdldCB3aGVuIGl0J3MgYSBnaG9zdHBhZC4gKENsb3NlcyAjMzMxNzI3KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ibG9ja2VkX2FzeW5jKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKTogTWFrZSB0aG9zZSBmdW5jdGlvbiBhY3Qgb24gdGhlCgkgIGdob3N0cGFkIHRhcmdldCB3aGVuIGl0J3MgYSBnaG9zdHBhZC4gKENsb3NlcyAjMzMxNzI3KQoJICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCjIwMDYtMDItMjAgMTU6MDE6MTQgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IE1ha2UgYmFzZXRyYW5zZm9ybSByZXVzYWJsZS4gKENsb3NlcyAjMzMxODk4KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOiBNYWtlIGJhc2V0cmFuc2Zvcm0gcmV1c2FibGUuCgkgIChDbG9zZXMgIzMzMTg5OCkKCSAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoyMDA2LTAyLTIwIDEyOjI2OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcmFuZG9tL3JlbGVhc2U6IE1vdmUgdGhlIGN1cnJlbnQgZG9jdW1lbnRhdGlvbiBvZiBob3cgdG8gZG8gYSByZWxlYXNlIHRvIHRoZSB0b3Agb2YgdGhlIGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIE1vdmUgdGhlIGN1cnJlbnQgZG9jdW1lbnRhdGlvbiBvZiBob3cgdG8gZG8gYSByZWxlYXNlIHRvIHRoZSB0b3AKCSAgb2YgdGhlIGZpbGUuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwKCSAgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyk6CgkgIEFsbG93IG11bHRpcGxlIHN0YXRlLXJlY2FsY3VsYXRpb24gdGhyZWFkcy4gKENsb3NlcyAjMzI4ODczKQoKMjAwNi0wMi0xOSAxMjoyNTowMSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBBZGQgR1NUX1NUUl9OVUxMIHRvIHRoZSBzZWNvbmQgc3RyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0xOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RpbmZvLmg6IEFkZCBHU1RfU1RSX05VTEwgdG8gdGhlIHNlY29uZCBzdHJpbmcuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfZXZlbnRfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9zZXRfcXVlcnlfZnVuY3Rpb24pLCAoZ3N0X3BhZF9zZXRfcXVlcnlfdHlwZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uKTogR1NUX0RFQlVHX1BBRF9OQU1FIGV2YWx1YXRlcyB0bwoJICAyIHN0cmluZ3MuIFlvdSBjYW4ndCB1c2UgdGhlIFNUUl9OVUxMIG1hY3JvIG9uIHRoYXQuCgoyMDA2LTAyLTE5IDEyOjAwOjM4ICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9nZXRjYXBzX2Z1bmN0aW9uKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9ldmVudF9mdW5jdGlvbiksCgkgIChnc3RfcGFkX3NldF9xdWVyeV9mdW5jdGlvbiksIChnc3RfcGFkX3NldF9xdWVyeV90eXBlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfc2V0X2dldGNhcHNfZnVuY3Rpb24pCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueTogKGdzdF9wYXJzZV9mb3VuZF9wYWQpLCAoZ3N0X3BhcnNlX3BlcmZvcm1fZGVsYXllZF9saW5rKQoJICBGaXhlZCBOVUxMIHBvaW50ZXIgdXNlZCBpbiBHU1RfQ0FUX0RFQlVHIHVzaW5nIEdTVF9TVFJfTlVMTCBtYWNybwoJICBTbyBub3csIHdlIGNhbiB1c2UgLS1nc3QtZGVidWctbGV2ZWw9NSBvbiBXaW5kb3dzCgkgICogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBBZGRlZCBleHBvcnQgb2YgZ3N0X2NvbnRyb2xsZXJfaW5pdAoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgRml4ZWQgUmVsZWFzZSBwb3N0IGJ1aWxkIGNvbmZpZ3VyYXRpb24KCjIwMDYtMDItMTcgMTU6MjU6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogQWRkZWQgYW5vdGhlciBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHF1ZXJ5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZGVkIGFub3RoZXIgY2hlY2suCgoyMDA2LTAyLTE1IDEyOjE3OjUwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogV2UgY2FuIGRvIHBlZWtzIGF0IG5vbi16ZXJvIG9mZnNldHMsIGFzIGxvbmcgYXMgdGhleSBmYWxsIHdpdGhpbiB0aGUgYnVmZmVyIHdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmaW5kX3BlZWspOgoJICBXZSBjYW4gZG8gcGVla3MgYXQgbm9uLXplcm8gb2Zmc2V0cywgYXMgbG9uZyBhcyB0aGV5CgkgIGZhbGwgd2l0aGluIHRoZSBidWZmZXIgd2UgaGF2ZS4KCjIwMDYtMDItMTUgMDE6MDI6MTEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGQgdGVzdHN1aXRlIGZvciBwYXJzZSBsYXVuY2ggc3ludGF4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL3BpcGVsaW5lcy9wYXJzZS1sYXVuY2guYzogKHNldHVwX3BpcGVsaW5lKSwKCSAgKGV4cGVjdGVkX2ZhaWxfcGlwZSksIChjaGVja19waXBlbGluZV9ydW5zKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHBhcnNlX3N1aXRlKSwgKG1haW4pOgoJICBBZGQgdGVzdHN1aXRlIGZvciBwYXJzZSBsYXVuY2ggc3ludGF4CgoyMDA2LTAyLTE0IDIwOjU3OjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogV2hlbiB0eXBlZmluZGluZyBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGNoYWluIGZ1bmN0aW9uLCBkb24ndCBlcnJvciBvdXQgaW1tZWRpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBXaGVuIHR5cGVmaW5kaW5nIGlzIHVuc3VjY2Vzc2Z1bCBpbiB0aGUgY2hhaW4gZnVuY3Rpb24sIGRvbid0CgkgIGVycm9yIG91dCBpbW1lZGlhdGVseS4gT25seSBlcnJvciBvdXQgd2l0aCBOT19DQVBTX0ZPVU5EIGlmCgkgIHRoZSBhbW91bnQgb2YgZGF0YSBpcyBhdCBsZWFzdCBNQVhfVFlQRUZJTkRfU0laRSBieXRlcywKCSAgb3RoZXJ3aXNlIHNpbXBseSB3YWl0IGZvciBtb3JlIGRhdGEgc28gd2UgY2FuIHRyeSB0eXBlZmluZGluZwoJICBhZ2FpbiB3aXRoIG1vcmUgZGF0YSBsYXRlci4gQWxzbywgZG9uJ3QgYXR0ZW1wdCB0byB0eXBlZmluZAoJICBpZiB3ZSBoYXZlIGxlc3MgdGhhbiBNSU5fVFlQRUZJTkRfU0laRSBkYXRhIGF2YWlsYWJsZS4gT3ZlcmFsbCwKCSAgdGhpcyBzaG91bGQgaW1wcm92ZSB0eXBlZmluZGluZyBmcm9tIG5ldHdvcmsgc291cmNlcyB3aGVyZSB0aGUKCSAgc2l6ZSBvZiB0aGUgZmlyc3QgYnVmZmVyIGNhbiBiZSBzb21ld2hhdCByYW5kb20uCgoyMDA2LTAyLTE0IDE4OjI2OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IHBhZHRlbXBsYXRlIGRvY3MsIGZpeGVzICMzMjg4MDUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkgICogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkgIEZpeCBwYWR0ZW1wbGF0ZSBkb2NzLCBmaXhlcyAjMzI4ODA1LgoKMjAwNi0wMi0xNCAxNzoyNToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogTk9fUFJFUk9MTCBpcyBub3QgYW4gRVJST1Igc28gZG9uJ3Qgc2VuZCBjb25mdXNpbmcgbWVzc2FnZXMgdG8gdGhlIHVzZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBOT19QUkVST0xMIGlzIG5vdCBhbiBFUlJPUiBzbyBkb24ndCBzZW5kIGNvbmZ1c2luZyBtZXNzYWdlcwoJICB0byB0aGUgdXNlci4KCjIwMDYtMDItMTQgMTY6MTU6MDUgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5LmM6IFByb3RlY3QgZGVmYXVsdCByZWdpc3RyeSB3aXRoIGxvY2sgYW5kIHJlZi9zaW5rIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9yZWdpc3RyeV9nZXRfZGVmYXVsdCksCgkgIChfZ3N0X3JlZ2lzdHJ5X2NsZWFudXApOgoJICBQcm90ZWN0IGRlZmF1bHQgcmVnaXN0cnkgd2l0aCBsb2NrIGFuZCByZWYvc2luayBpdC4KCSAgRml4ZXMgIzMyNDgxOCwgcGF0Y2ggYnkgVG9yc3RlbiBTY2hvZW5mZWxkLgoKMjAwNi0wMi0xNCAxMzowNzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9saXN0X2FkZF9mb3JtYXQpLAoJICAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzdiksIChnc3RfcXVlcnlfcGFyc2VfZm9ybWF0c19sZW5ndGgpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX2Zvcm1hdHNfbnRoKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9zeW5jX3RpbWVzKToKCSAgRG9jcyBmaXhlcy4KCjIwMDYtMDItMTQgMTI6MDc6MTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBSZXdvcmtlZCBxdWVyeSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBSZXdvcmtlZCBxdWVyeSBkb2NzLgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X25ld19mb3JtYXRzKSwKCSAgKGdzdF9xdWVyeV9saXN0X2FkZF9mb3JtYXQpLCAoZ3N0X3F1ZXJ5X3NldF9mb3JtYXRzKSwKCSAgKGdzdF9xdWVyeV9zZXRfZm9ybWF0c3YpLCAoZ3N0X3F1ZXJ5X3BhcnNlX2Zvcm1hdHNfbGVuZ3RoKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9mb3JtYXRzX250aCk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEZsZXNoIG91dCBmb3JtYXRzIHF1ZXJ5LCBhZGRlZCBzb21lIG5ldyBtZXRob2RzLgoJICBGaXggcGFydCBvZiAjMzI0Mzk4LgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RxdWVyeS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0cXVlcnlfc3VpdGUpOgoJICBBZGRlZCBxdWVyeSBjcmVhdGlvbiB0ZXN0cy4KCjIwMDYtMDItMTQgMTE6Mzg6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBBZGQgYSBkZWZhdWx0IGZpeGF0aW9uIGZvciBmcmFjdGlvbiBsaXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZml4YXRlX3ZhbHVlKToKCSAgQWRkIGEgZGVmYXVsdCBmaXhhdGlvbiBmb3IgZnJhY3Rpb24gbGlzdHMuCgoyMDA2LTAyLTEzIDE3OjAzOjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHRhc2suKjogRGV0ZWN0IGFuZCB3YXJuIGZvciBvYnZpb3VzIGRlYWRsb2Nrcy4gZml4ZXMgIzMyMDM0MAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfaW5pdCksIChnc3RfdGFza19mdW5jKSwKCSAgKGdzdF90YXNrX3NldF9sb2NrKSwgKGdzdF90YXNrX3N0YXJ0KSwgKGdzdF90YXNrX3BhdXNlKSwKCSAgKGdzdF90YXNrX2pvaW4pOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIERldGVjdCBhbmQgd2FybiBmb3Igb2J2aW91cyBkZWFkbG9ja3MuIGZpeGVzICMzMjAzNDAKCSAgRml4IGVycm9yIGNhc2Ugd2hlcmUgbG9jayB3YXMgbm90IHJlbGVhc2VkLgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YXNrLmM6ICh0YXNrX2Z1bmMyKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKHRhc2tfZnVuYyksIChnc3RfZWxlbWVudF9zdWl0ZSksIChtYWluKToKCSAgQWRkIHRhc2sgY2hlY2suCgoyMDA2LTAyLTEzIDE0OjAwOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBGb3Jnb3QgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgY2hhbmdlbG9nCgoyMDA2LTAyLTEzIDEzOjU3OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIG5ldyBmdW5jdGlvbnMgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIEFkZCBuZXcgZnVuY3Rpb25zIHRvIGRvY3MuCgoyMDA2LTAyLTEzIDExOjUyOjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlZCBUT0RPIGxpc3QsIGJhc2VzcmMgc3VwcG9ydHMgc2Vla2luZyB0byBub24tYnl0ZXMgZm9ybWF0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCBUT0RPIGxpc3QsIGJhc2VzcmMgc3VwcG9ydHMgc2Vla2luZyB0byBub24tYnl0ZXMKCSAgZm9ybWF0cy4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIFVwZGF0ZSBkb2NzLgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19wb3ApOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2ZpbmFsaXplKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgVXNlIHNoaW55IG5ldyBfVFlQRV9OQU1FIG1hY3Jvcy4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19nZXRfcmFuZ2UpOgoJICBNb3ZlIGRlYnVnIHN0YXRlbWVudCB1cC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2xvY2tlZF9zdGF0ZSk6CgkgIEFkZCBzb21lIGRlYnVnZ2luZy4KCjIwMDYtMDItMTMgMTE6MTk6MzIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBOZXcgQVBJOiBhZGQgR1NUX01FU1NBR0VfVFlQRV9OQU1FIGFuZCBHU1RfUVVFUllfVFlQRV9OQU1FIG1hY3JvcyAoIzMzMDkwNikuIEFsc28sIGRvY3VtZW50IHRoZSBhbHJlYWR5IGV4aXN0aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgTmV3IEFQSTogYWRkIEdTVF9NRVNTQUdFX1RZUEVfTkFNRSBhbmQgR1NUX1FVRVJZX1RZUEVfTkFNRQoJICBtYWNyb3MgKCMzMzA5MDYpLiBBbHNvLCBkb2N1bWVudCB0aGUgYWxyZWFkeSBleGlzdGluZwoJICBHU1RfUVVFUllfVFlQRSBtYWNyby4KCjIwMDYtMDItMTMgMTA6NTQ6MDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogT25seSBldmVudHMgdXAgdG8gdGhlIHBpcGVsaW5lIEVPUyBhcmUgY291bnRlZCwgdGhlcmUgYXJlIHNvbWUgbW9yZSB3aGVuIGdvaW5nIHRvIE5VTEwgY3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChkYXRhX3Byb2JlKSwgKGJ1ZmZlcl9wcm9iZSksCgkgIChldmVudF9wcm9iZSksIChHU1RfU1RBUlRfVEVTVCk6CgkgIE9ubHkgZXZlbnRzIHVwIHRvIHRoZSBwaXBlbGluZSBFT1MgYXJlIGNvdW50ZWQsIHRoZXJlIGFyZQoJICBzb21lIG1vcmUgd2hlbiBnb2luZyB0byBOVUxMIGN1cnJlbnRseSB3aGljaCB3ZSBkb24ndCBjYXJlCgkgIGFib3V0IGZvciBub3cuCgoyMDA2LTAyLTEzIDA5OjU5OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBDb3JyZWN0bHkgY2hlY2sgZmx1c2hpbmcgYW5kIGVtaXQgcHJvYmVzLiBmaXhlcyAjMzMwMTI1CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIENvcnJlY3RseSBjaGVjayBmbHVzaGluZyBhbmQgZW1pdCBwcm9iZXMuIGZpeGVzICMzMzAxMjUKCjIwMDYtMDItMTIgMTM6MTE6NTMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICByZXZlcnQgd3JvbmcgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZXZlcnQgd3JvbmcgY29tbWl0CgoyMDA2LTAyLTEwIDE2OjA0OjU5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfY2xhc3NfaW5pdCk6IERlY2xhcmUgb3VyIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19jbGFzc19pbml0KTogRGVjbGFyZSBvdXIgcHJpdmF0ZSBkYXRhCgkgIHN0cnVjdHVyZS4KCSAgKGdzdF9idXNfaW5pdCk6IENhY2hlIHRoZSBsb2NhdGlvbiBvZiB0aGUgcHJpdmF0ZSBkYXRhIGluIHRoZQoJICBpbnN0YW5jZSBzdHJ1Y3R1cmUuCgkgIChnc3RfYnVzX2VuYWJsZV9zeW5jX21lc3NhZ2VfZW1pc3Npb24pCgkgIChnc3RfYnVzX2Rpc2FibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKTogSW1wbGVtZW50IG5ldyBwdWJsaWMKCSAgZnVuY3Rpb25zLgoJICAoZ3N0X2J1c19wb3N0KTogRW1pdCB0aGUgc3luYy1tZXNzYWdlIHNpZ25hbCBpZiB0aGUgdXNlciBhc2tlZCBmb3IKCSAgaXQuIEZpeGVzICMzMzA2ODQuCgkgICogZ3N0L2dzdGJ1cy5oIChHc3RCdXMpOiBVc2UgYSBwYWRkaW5nIHBvaW50ZXIgdG8gY2FjaGUgdGhlCgkgIGxvY2F0aW9uIG9mIHRoZSBidXMtcHJpdmF0ZSBzdHJ1Y3R1dXJlLgoJICAoZ3N0X2J1c19lbmFibGVfc3luY19tZXNzYWdlX2VtaXNzaW9uKQoJICAoZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbik6IE5ldyBwdWJsaWMgZnVuY3Rpb25zLgoKMjAwNi0wMi0wOSAyMzo0MDo0MyArMDAwMCAgVmluY2VudCBUb3JyaSA8dnRvcnJpQHVuaXYtZXZyeS5mcj4KCgkgIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgIFBXRyBwYXRjaCBmcm9tICMzMjY4MDAgKFBhdGNoIGJ5IFZpbmNlbnQgVG9ycmkpCgoyMDA2LTAyLTA5IDE4OjMwOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbToKCSAgQ2hhbmdlTG9nIHN1cmdlcnkgYW5kIGFkZCBtaXNzaW5nIG5ldyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDaGFuZ2VMb2cgc3VyZ2VyeSBhbmQgYWRkIG1pc3NpbmcgbmV3IGZpbGUKCjIwMDYtMDItMDkgMTg6Mjg6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2Rlc2lnbi9NYWtlZmlsZS5hbQoJICBEaXN0IGRlc2lnbiBkb2NzLgoKMjAwNi0wMi0wOCAxNzozNDo0MyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IGJhY2sgdG8gQ1ZTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBDVlMKCj09PSByZWxlYXNlIDAuMTAuMyA9PT0KCjIwMDYtMDItMDggMTc6MzE6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiByZWxlYXNpbmcgMC4xMC4zLCAiTGlrZSBhIHZpcmdpbiIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgID09PSByZWxlYXNlIDAuMTAuMyA9PT0KCSAgMjAwNi0wMi0wOCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICByZWxlYXNpbmcgMC4xMC4zLCAiTGlrZSBhIHZpcmdpbiIKCjIwMDYtMDItMDggMTE6MTI6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY29uZmlndXJlLmFjOiAybmQgcHJlcmVsZWFzZSBvZiAwLjEwLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDggIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgIDJuZCBwcmVyZWxlYXNlIG9mIDAuMTAuMwoJICBCdW1wIGxpYnRvb2wgdmVyc2lvbmluZy4KCjIwMDYtMDItMDcgMTU6NDk6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6IE9ubHkgdXBkYXRlIGxhc3Rfc3RvcCBpZiB3ZSdyZSBpbiBUSU1FIGZvcm1hdCBhbmQgdGhlIHRpbWVzdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMi0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOiBPbmx5CgkgIHVwZGF0ZSBsYXN0X3N0b3AgaWYgd2UncmUgaW4gVElNRSBmb3JtYXQgYW5kIHRoZSB0aW1lc3RhbXAgaXMKCSAgdmFsaWQuCgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KQoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnRmdW5jKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpOgoJICBJZiB3ZSBnZXQgYSBuZXcgbmV3c2VnbWVudCB3aXRoIGEgZGlmZmVyZW50IGZvcm1hdCwgYWRhcHQKCSAgYWNjb3JkaW5nbHkuCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pOiBBY2NlcHQgYSBudW1lcmF0b3IKCSAgb2YgMC4gTm90IGEgcHJvYmxlbSwgcmVhbGx5LgoKMjAwNi0wMi0wNyAxMzoyMDoxNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKTogT25seSB3YXJuIGlmIHN5bmM9dHJ1ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDItMDcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2NoYWluX3VubG9ja2VkKTogT25seQoJICB3YXJuIGlmIHN5bmM9dHJ1ZS4KCjIwMDYtMDItMDcgMTA6NTE6MjQgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgc3BlYyBmaWxlCgoyMDA2LTAyLTA2IDIyOjAxOjIzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogUHJlbGVhc2Ugb2YgMC4xMC4zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgUHJlbGVhc2Ugb2YgMC4xMC4zCgoyMDA2LTAyLTA2IDIxOjUzOjA1ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNi0wMi0wNiAyMToyOTowNCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM3OiBwcm9qZWN0IGZpbGVzIHVwZGF0ZWQgdG8gdGhlIGRlZmF1bHQgdnM3IGNvbmZpZ3VyYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM3OgoJICBwcm9qZWN0IGZpbGVzIHVwZGF0ZWQgdG8gdGhlIGRlZmF1bHQgdnM3IGNvbmZpZ3VyYXRpb24KCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGFkZGVkIG5ldyBzeW1ib2xzLAoJICByZW1vdmVkIGVtcHR5IGxpbmVzLAoJICBzb3J0ZWQgYWxsIGV4cG9ydGVkIHN5bWJvbHMgYWxwaGFiZXRpY2FsbHkKCSAgKiB3aW4zMi9jb21tb24vZGlyZW50LmM6CgkgICogd2luMzIvY29tbW9uL2RpcmVudC5oOgoJICAqIHdpbjMyL2NvbW1vbi9nY2hhci5oOgoJICB1c2Ugd2luZG93cyBsaW5lIGVuZC4KCjIwMDYtMDItMDYgMTU6MjU6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZG9jIHN1YjgwIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2Mgc3ViODAgZml4ZXMKCjIwMDYtMDItMDYgMTQ6NTc6NDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzogU2VuZCBFT1MgZXZlbnQgd2hlbiBzdG9wcGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2hhbmdlX3N0YXRlKToKCSAgU2VuZCBFT1MgZXZlbnQgd2hlbiBzdG9wcGluZy4KCjIwMDYtMDItMDYgMTA6NDI6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL1JFQURNRTogVGVsbCBmb2xrcyB3aGF0IHRvIGRvIGlmIHRoZSBwbHVnaW4tZm9vYmFyLnhtbCBmaWxlIGhhc24ndCBiZWVuIGdlbmVyYXRlZCBmb3IgYSBuZXdseS1hZGRlZCBwbHVnaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICBUZWxsIGZvbGtzIHdoYXQgdG8gZG8gaWYgdGhlIHBsdWdpbi1mb29iYXIueG1sIGZpbGUKCSAgaGFzbid0IGJlZW4gZ2VuZXJhdGVkIGZvciBhIG5ld2x5LWFkZGVkIHBsdWdpbi4KCjIwMDYtMDItMDUgMTg6MTM6MjggKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBDb2xsZWN0cGFkcyBub3cgaG9sZHMgYSByZWZlcmVuY2UgdG8gdGhlIEdzdFBhZCB0aGF0IHdhcyBhZGRlZC4gSW5kZWVkIHdlIGRvbid0IHdhbnQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19maW5hbGl6ZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZW1vdmVfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpOiBDb2xsZWN0cGFkcyBub3cgaG9sZHMgYSByZWZlcmVuY2UKCSAgdG8gdGhlIEdzdFBhZCB0aGF0IHdhcyBhZGRlZC4gSW5kZWVkIHdlIGRvbid0IHdhbnQgdG8gbG9vawoJICBhdCBwYWRzIHRoYXQgbWlnaHQganVzdCBnbyBhd2F5IHdpdGggbm8gd2FybmluZy4uLgoKMjAwNi0wMi0wNSAxNjoxODozNyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IEhhbmRsZSBmbHVzaC4gQWRhcHRlZCBmcm9tCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAyLTA1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19hZGRfcGFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc3RhcnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19zdG9wKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RfcGFkc19jaGFpbik6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOiBIYW5kbGUgZmx1c2guIEFkYXB0ZWQgZnJvbQoJICBNYXJrIE5hdXdlbGFlcnRzJ3MgcGF0Y2ggb24gYnVnICMzMjg0OTEuCgoyMDA2LTAyLTA0IDEyOjQ5OjUzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6IEFkZCBzb21lIHNpbXBsZSB0ZXN0cyBmb3IgZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgYW5kIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3R1dGlscy5jOiAodGVzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbiksCgkgIChnc3RfdXRpbHNfc3VpdGUpOgoJICBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIGdzdF9wYXJzZV9iaW5fZnJvbV9kZXNjcmlwdGlvbigpIGFuZAoJICBnc3RfYmluX2ZpbmRfdW5jb25uZWN0ZWRfcGFkKCkgKCMzMjkwNjkpLgoKMjAwNi0wMi0wNCAxMTo1NjoxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQ2F0Y2ggZXJyb3JzIGR1cmluZyBwcmVyb2xsICgjMzIwMDg0KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgQ2F0Y2ggZXJyb3JzIGR1cmluZyBwcmVyb2xsICgjMzIwMDg0KS4KCjIwMDYtMDItMDMgMjE6MTQ6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBQb3N0IFRZUEVfTk9UX0ZPVU5EIGVycm9yIG1lc3NhZ2Ugd2hlbiB0eXBlZmluZGluZyBpcyB1bnN1Y2Nlc3NmdWwgaW4gdGhlIGFjdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9hY3RpdmF0ZSk6CgkgIFBvc3QgVFlQRV9OT1RfRk9VTkQgZXJyb3IgbWVzc2FnZSB3aGVuIHR5cGVmaW5kaW5nCgkgIGlzIHVuc3VjY2Vzc2Z1bCBpbiB0aGUgYWN0aXZhdGUgZnVuY3Rpb24gYXMgd2VsbC4KCjIwMDYtMDItMDIgMTY6MTU6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6IFVwZGF0ZWQgZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIFVwZGF0ZWQgZG9jLgoKMjAwNi0wMi0wMiAxNjoxMjozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogT25seSBrZWVwIHRyYWNrIG9mIHByZXJvbGxhYmxlIGl0ZW1zIHdoZW4gd2UgYXJlIHByZXJvbGxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX3JlbmRlcl9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWV1ZV9vYmplY3RfdW5sb2NrZWQpOgoJICBPbmx5IGtlZXAgdHJhY2sgb2YgcHJlcm9sbGFibGUgaXRlbXMgd2hlbiB3ZSBhcmUKCSAgcHJlcm9sbGluZy4KCSAgQmVmb3JlIHJlbmRlcmluZyBhZnRlciBwcmVyb2xsLCBhbHdheXMgY2hlY2sgaWYgd2UKCSAgaGF2ZSBxdWV1ZWQgaXRlbXMuCgkgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgoyMDA2LTAyLTAyIDEzOjU4OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogRml4ZWQgIzMyNjU3NiwgYmVlbiBydW5uaW5nIHRoaXMgZm9yIHF1aXRlIHNvbWUgdGltZSB3aXRoIG5vIHJlZ3Jlc3Npb25zIGF0IGFsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIEZpeGVkICMzMjY1NzYsIGJlZW4gcnVubmluZyB0aGlzIGZvciBxdWl0ZSBzb21lIHRpbWUgd2l0aAoJICBubyByZWdyZXNzaW9ucyBhdCBhbGwuCgoyMDA2LTAyLTAyIDEzOjQ0OjA0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY29tbW9uL2dzdC5zdXBwOiBBZGRlZCBtb3JlIHN1cHByZXNzaW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3N0LnN1cHA6CgkgIEFkZGVkIG1vcmUgc3VwcHJlc3Npb25zCgoyMDA2LTAyLTAyIDEyOjA3OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OiBVcGRhdGVkIGRvY3VtZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgIFVwZGF0ZWQgZG9jdW1lbnQuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZmluYWxpemUpLCAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwKCSAgKGdzdF9iYXNlX3NpbmtfY29uZmlndXJlX3NlZ21lbnQpLCAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfc3luY190aW1lcyksIChnc3RfYmFzZV9zaW5rX3dhaXRfY2xvY2spLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfcmVuZGVyX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0X3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVldWVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbl91bmxvY2tlZCksIChnc3RfYmFzZV9zaW5rX2NoYWluKSwKCSAgKGdzdF9iYXNlX3NpbmtfbG9vcCksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgVG90YWxseSByZWZhY3RvcmVkIG1hdGNoaW5nIHRoZSBkZXNpZ24gZG9jLgoJICBVc2UgdHdvIHNlZ21lbnRzLCBvbmUgdG8gY2xpcCBpbmNvbW1pbmcgYnVmZmVycyBhbmQgYW5vdGhlciB0bwoJICBwZXJmb3JtIHN5bmMuCgkgIEhhbmRsZSBxdWV1ZWluZyBjb3JyZWN0bHksIGJ5cGFzcyB0aGUgcXVldWUgd2hlbiBwbGF5aW5nLgoJICBNYWtlIEVPUyBjYW5jZWxhYmxlLgoJICBIYW5kbGUgZXJyb3JzIGNvcnJlY3RseSB3aGVuIG9wZXJhdGluZyBpbiBwdWxsIGJhc2VkIG1vZGUuCgkgICogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNpbmsuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKToKCSAgQWRkZWQgbmV3IGNoZWNrIGZvciBzaW5rcy4KCjIwMDYtMDItMDIgMTE6NTk6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jOiBObyByZWFzb24gdG8gcmVmdXNlIHRvIGNsaXAgd2hlbiBzdGFydCA9PSAtMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfY2xpcCk6CgkgIE5vIHJlYXNvbiB0byByZWZ1c2UgdG8gY2xpcCB3aGVuIHN0YXJ0ID09IC0xCgoyMDA2LTAyLTAyIDExOjI0OjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogZGVzY3JpYmUgZHBhcmFtcyAoY29udHJvbGxlcikgZm9yIHBsdWdpbnMgdW5pZnkgZG9jcyBhIGxpdHRsZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICAqIGRvY3MvbWFudWFsL2ludHJvLWJhc2ljcy54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tcHJlZmFjZS54bWw6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1iYXNpY3MueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgIGRlc2NyaWJlIGRwYXJhbXMgKGNvbnRyb2xsZXIpIGZvciBwbHVnaW5zCgkgIHVuaWZ5IGRvY3MgYSBsaXR0bGUgbW9yZQoKMjAwNi0wMi0wMiAwOTo1MToxOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZCBuZXcgQVBJOiBnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24oKSBhbmQgZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCgpICgjMzI5MDY5KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGVsZW1lbnRfZmluZF91bmNvbm5lY3RlZF9wYWQpLAoJICAoZ3N0X2Jpbl9maW5kX3VuY29ubmVjdGVkX3BhZCksIChnc3RfcGFyc2VfYmluX2Zyb21fZGVzY3JpcHRpb24pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgbmV3IEFQSTogZ3N0X3BhcnNlX2Jpbl9mcm9tX2Rlc2NyaXB0aW9uKCkgYW5kCgkgIGdzdF9iaW5fZmluZF91bmNvbm5lY3RlZF9wYWQoKSAoIzMyOTA2OSkuCgoyMDA2LTAyLTAxIDIyOjQzOjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9SRUFETUU6IHVuY292ZXIgYSBuYXN0eSBkZXRhaWwgb2YgdGhlIGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvUkVBRE1FOgoJICB1bmNvdmVyIGEgbmFzdHkgZGV0YWlsIG9mIHRoZSBkb2NzIGJ1aWxkCgoyMDA2LTAyLTAxIDA4OjI3OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvUkVBRE1FOgoJICB1cGRhdGVzIGZvciBwbHVnaW4gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlcyBmb3IgcGx1Z2luIGRvY3MKCjIwMDYtMDEtMzEgMTg6NDY6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvbid0IGNhY2hlIGR1cmF0aW9uIG1lc3NhZ2VzIGlmIHdlJ3JlIG5vdCBnb2luZyB0byB1c2Ugb3IgZnJlZSB0aGVtLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fcmVtb3ZlX21lc3NhZ2VzKSwgKGJpbl9xdWVyeV9kdXJhdGlvbl9kb25lKToKCSAgRG9uJ3QgY2FjaGUgZHVyYXRpb24gbWVzc2FnZXMgaWYgd2UncmUgbm90IGdvaW5nIHRvIHVzZSBvcgoJICBmcmVlIHRoZW0uCgoyMDA2LTAxLTMxIDE2OjU2OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzLzogbW9yZSBkcGFyYW0gZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgbW9yZSBkcGFyYW0gZG9jcwoJICAqIGdzdC9nc3RpbmRleC5jOgoJICBmaXggZG9jcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6IChnc3RfY29udHJvbGxlcl9pbml0KToKCSAgaW5pdCBqdXN0IG9uY2UKCjIwMDYtMDEtMzEgMTA6MTY6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogYWxzbyBzaG93IGZpbGUvbGluZS9mdW5jIGlmIG5vIGFkZGl0aW9uYWwgZGVidWcgd2FzIGdpdmVuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9tZXNzYWdlX2Z1bGwpOgoJICBhbHNvIHNob3cgZmlsZS9saW5lL2Z1bmMgaWYgbm8gYWRkaXRpb25hbCBkZWJ1ZyB3YXMgZ2l2ZW4KCjIwMDYtMDEtMzAgMjM6NTI6NTIgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNy9ncmFtbWFyLnZjcHJvajogYWN0aXZhdGUgY29weSBvZiBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZvciBSZWxlYXNlIG1vZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM3L2dyYW1tYXIudmNwcm9qOgoJICBhY3RpdmF0ZSBjb3B5IG9mIGF1dG9nZW5lcmF0ZWQgZmlsZXMgZm9yIFJlbGVhc2UgbW9kZQoKMjAwNi0wMS0zMCAyMjoyOTowMyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6IGV4cG9ydCBnc3RfdmFsdWVfY29tcGFyZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgZXhwb3J0IGdzdF92YWx1ZV9jb21wYXJlCgoyMDA2LTAxLTMwIDIxOjU3OjAwICswMDAwICBQaGlsaXBwZSBSb3VxdWllciA8Ym9uZmlyZS1hcHBAd2FuYWRvby5mcj4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOiAoX2RvX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfYmFzZV9pbml0KSwgKGdzdF9mZF9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfaW5pdCksIChnc3RfZmRfc2lua19kaXNwb3NlKSwgKGdzdF9mZF9zaW5rX3F1ZXJ5KSwKCSAgKGdzdF9mZF9zaW5rX3JlbmRlciksIChnc3RfZmRfc2lua19jaGVja19mZCksIChnc3RfZmRfc2lua19zdGFydCksCgkgIChnc3RfZmRfc2lua19zdG9wKSwgKGdzdF9mZF9zaW5rX3VubG9jayksIChnc3RfZmRfc2lua191cGRhdGVfZmQpLAoJICAoZ3N0X2ZkX3Npbmtfc2V0X3Byb3BlcnR5KSwgKGdzdF9mZF9zaW5rX3VyaV9nZXRfdHlwZSksCgkgIChnc3RfZmRfc2lua191cmlfZ2V0X3Byb3RvY29scyksIChnc3RfZmRfc2lua191cmlfZ2V0X3VyaSksCgkgIChnc3RfZmRfc2lua191cmlfc2V0X3VyaSksIChnc3RfZmRfc2lua191cmlfaGFuZGxlcl9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBQb3J0IGZkc2luayB0byAwLjEwIChwYXRjaCBieSBQaGlsaXBwZSBSb3VxdWllcikgKEZpeGVzICMzMjU0OTApCgoyMDA2LTAxLTMwIDIxOjExOjM4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDogZGVzY3JpYmUgY29udHJvbGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kcGFyYW1zLnhtbDoKCSAgZGVzY3JpYmUgY29udHJvbGxlcgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaW5pdC54bWw6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgKiBkb2NzL21hbnVhbC90aXRsZXBhZ2UueG1sOgoJICAqIGRvY3MvcHdnL3B3Zy54bWw6CgkgICogZG9jcy9wd2cvdGl0bGVwYWdlLnhtbDoKCSAgY2xlYW51cCB4bWwgKG1vcmUgdG8gY29tZSkKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZml4IHR5cG8KCjIwMDYtMDEtMzAgMjA6MzY6NTEgKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDogYWRkIGF1dG9nZW4gb2YgZ3N0bWFyc2hhbC5jLGggZm9yIFJlbGVhc2UgbW9kZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgIGFkZCBhdXRvZ2VuIG9mIGdzdG1hcnNoYWwuYyxoIGZvciBSZWxlYXNlIG1vZGUKCjIwMDYtMDEtMzAgMTY6MDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEJhc2VzaW5rIGNsZWFudXBzLCByZW1vdmUgc29tZSBvbGQgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksIChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19ldmVudCksCgkgIChnc3RfYmFzZV9zaW5rX2lzX3ByZXJvbGxlZCksIChnc3RfYmFzZV9zaW5rX3dhaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV9zaW5rX3NldF9mbHVzaGluZyksCgkgIChnc3RfYmFzZV9zaW5rX2RlYWN0aXZhdGUpLCAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIEJhc2VzaW5rIGNsZWFudXBzLCByZW1vdmUgc29tZSBvbGQgY29kZS4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGEgc3ViY2xhc3MgY2FuIHByZXJvbGwgaW4gdGhlIHJlbmRlcgoJICBtZXRob2QgKG1vc3RseSBhdWRpb3NpbmtzKS4KCSAgSGFuZGxlIG1vcmUgZXZlbnRzLgoJICBSZW1vdmUgc29tZSBsb2NrcyBhcm91bmQgdmFyaWFibGVzIHRoYXQgYXJlIG5vdyBwcm90ZWN0ZWQKCSAgd2l0aCB0aGUgUFJFUk9MTF9MT0NLIChjbG9ja19pZCwgZmx1c2hpbmcsIC4uKS4KCSAgT3B0aW1pemUgcG9zaXRpb24gcXVlcnkgc29tZSBtb3JlLCBkbyBjb3JyZWN0IGxvY2tpbmcuCgkgIFJlbW92ZSBvbGQgY29kZSB0byBwdXNoIHF1ZXVlIGluIHN0YXRlIGNoYW5nZSwgdGhpcyBpcyBub3QKCSAgbmVlZGVkIGFueW1vcmUgc2luY2UgcHJlcm9sbCBibG9ja3Mgb24gYWxsIHByZXJvbGxhYmxlIGl0ZW1zCgkgIG5vdy4KCSAgQWxtb3N0IGltcGxlbWVudGVkIGFzIGRlc2NyaWJlZCBpbiBkZXNpZ24gZG9jLgoKMjAwNi0wMS0zMCAxNTo1Nzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogV2FpdCBmb3IgcmVmY291bnQgdG8gc2V0dGxlIGRvd24gYmVmb3JlIGNoZWNraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFdhaXQgZm9yIHJlZmNvdW50IHRvIHNldHRsZSBkb3duIGJlZm9yZSBjaGVja2luZy4KCjIwMDYtMDEtMzAgMTU6MTU6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6IFBzZXVkbyBjb2RlIG92ZXJ2aWV3IG9mIGRlc2lyZWQgc2luayBiZWhhdmlvdXIgcmVnYXJkaW5nIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZWxlbWVudC1zaW5rLnR4dDoKCSAgUHNldWRvIGNvZGUgb3ZlcnZpZXcgb2YgZGVzaXJlZCBzaW5rIGJlaGF2aW91ciByZWdhcmRpbmcKCSAgcHJlcm9sbC4KCjIwMDYtMDEtMzAgMTQ6Mjg6MDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBCbGVoLCBmb3Jnb3QgdG8gY29tbWl0IHRoZSBjaGFuZ2Vsb2cgZW50cnkgb24gU2F0dXJkYXkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBCbGVoLCBmb3Jnb3QgdG8gY29tbWl0IHRoZSBjaGFuZ2Vsb2cgZW50cnkgb24gU2F0dXJkYXkuCgoyMDA2LTAxLTI5IDIxOjU2OjAwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czYvZ3JhbW1hci5kc3A6IGZpeCBzb21lIGJ1Z3MgaW4gYXV0b2dlbmVyYXRlZCBmaWxlcyBmb3IgUmVsZWFzZSBtb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgZml4IHNvbWUgYnVncyBpbiBhdXRvZ2VuZXJhdGVkIGZpbGVzIGZvciBSZWxlYXNlIG1vZGUKCjIwMDYtMDEtMjkgMTk6MjQ6MTggKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyL2NvbW1vbi86IGV4cG9ydCBzb21lIG5ldyBzeW1ib2xzOiBnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCwgZ3N0X2l0ZXJhdG9yX25leHQsIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV4cG9ydCBzb21lIG5ldyBzeW1ib2xzOiBnc3RfYmFzZV9zcmNfc2V0X2Zvcm1hdCwKCSAgZ3N0X2l0ZXJhdG9yX25leHQsIGdzdF9zdHJ1Y3R1cmVfc2V0X3ZhbGlzdAoKMjAwNi0wMS0yOSAxNzozNzowOCArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogU2V0IHBhZCBmdW5jdGlvbnMgdW5jb25kaXRpb25hbGx5LiBGaXhlcyAjMzI5MTA1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0yOSAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0X3VubG9ja2VkKToKCSAgU2V0IHBhZCBmdW5jdGlvbnMgdW5jb25kaXRpb25hbGx5LiBGaXhlcyAjMzI5MTA1LgoKMjAwNi0wMS0yOSAxNjo1NDo0MCArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM4OiBhZGQgdnM4IHByb2plY3QgZmlsZXMgY3JlYXRlZCBieSBTZXJnZXkgU2NvYmljaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB3aW4zMi92czg6CgkgIGFkZCB2czggcHJvamVjdCBmaWxlcyBjcmVhdGVkIGJ5IFNlcmdleSBTY29iaWNoCgoyMDA2LTAxLTI4IDAwOjU5OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jOiBEb24ndCBsZWFrIHBhZCByZWZlcmVuY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGlua19wYWRzKToKCSAgRG9uJ3QgbGVhayBwYWQgcmVmZXJlbmNlcy4KCSAgKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9mYWtlc2luay5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEZpeCBhIGJ1bmNoIG9mIGxlYWtzLiBNYWtlIGdlbmVyaWMvc2lua3MuYwoJICB1c2UgYSBiaXQgbGVzcyBjcHUgYnkgc2xvd2luZyB0aGUgYnVmZmVyIHJhdGUKCSAgYmV0d2VlbiBmYWtlc3JjIGFuZCBmYWtlc2luay4KCjIwMDYtMDEtMjcgMjI6MzQ6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvYyBmaXhlcywgdG8gbGluayB0byBmdW5jdGlvbiwganVzdCB3cml0ZSBnc3RfY29vbF9mdW5jdGlvbigpLCBkb24ndCBwcmVmaXggd2l0aCAnIycKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgIGRvYyBmaXhlcywgdG8gbGluayB0byBmdW5jdGlvbiwganVzdCB3cml0ZSBnc3RfY29vbF9mdW5jdGlvbigpLCBkb24ndAoJICBwcmVmaXggd2l0aCAnIycKCjIwMDYtMDEtMjcgMTY6NTk6NTcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzogQWx3YXlzIHByZWZlciBhbiBhY3R1YWwgcmV0dXJuIHZhbHVlIGZyb20gYSBzcmMgcGFkIGluIHBsYWNlIG9mIE5PVF9MSU5LRUQuIFRoaXMgbWVhbnMgd2UgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX2RvX3B1c2gpLAoJICAoZ3N0X3RlZV9oYW5kbGVfYnVmZmVyKToKCSAgQWx3YXlzIHByZWZlciBhbiBhY3R1YWwgcmV0dXJuIHZhbHVlIGZyb20gYSBzcmMKCSAgcGFkIGluIHBsYWNlIG9mIE5PVF9MSU5LRUQuIFRoaXMgbWVhbnMgd2UgcmV0dXJuCgkgIFdST05HX1NUQVRFIHdoZW4gYWxsIHNyYyBwYWRzIGFyZSBXUk9OR19TVEFURQoJICBpbnN0ZWFkIG9mIE5PVF9MSU5LRUQuCgkgIExvY2sgd2hlbiByZXBsYWNpbmcgdGhlIGxhc3QgbWVzc2FnZSB0byBwcmV2ZW50CgkgIHJhY2luZyB3aXRoIHRoZSBnZXRfcHJvcGVydHkgbWV0aG9kLgoJICBBZGQgZGVidWcgb3V0cHV0CgoyMDA2LTAxLTI3IDExOjUzOjIwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkIGEgdmVyeSBzaW1wbGUgY2hlY2sgdGhhdCBzaG91bGQgaGF2ZSBjYXVnaHQgdGhlIG1lbWxlYWsgSSBmaXhlZCBsYXN0IG5pZ2h0IChpZiBub3QgZm9yIHRoZSBzbGljZSBhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cXVlcnkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdHF1ZXJ5X3N1aXRlKSwKCSAgKG1haW4pOgoJICBBZGQgYSB2ZXJ5IHNpbXBsZSBjaGVjayB0aGF0IHNob3VsZCBoYXZlIGNhdWdodCB0aGUgbWVtbGVhayBJIGZpeGVkCgkgIGxhc3QgbmlnaHQgKGlmIG5vdCBmb3IgdGhlIHNsaWNlIGFsbG9jYXRvciBoaWRpbmcgaXQpCgoyMDA2LTAxLTI3IDAxOjQ4OjM3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQ2xlYW4gdXAgcmVmZXJlbmNlcyB0byB0aGUgY2xvY2sgcHJvdmlkZXIgd2hlbiBkaXNwb3NlZCBvciB3aGVuIGhhbmRsaW5nIGEgY2xvY2stbG9zdCBtZXNzYWdlIGZyb20gaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5faGFuZGxlX21lc3NhZ2VfZnVuYyksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25fZm9sZCksIChiaW5fcXVlcnlfZ2VuZXJpY19mb2xkKToKCSAgQ2xlYW4gdXAgcmVmZXJlbmNlcyB0byB0aGUgY2xvY2sgcHJvdmlkZXIgd2hlbiBkaXNwb3NlZCBvciB3aGVuCgkgIGhhbmRsaW5nIGEgY2xvY2stbG9zdCBtZXNzYWdlIGZyb20gaXQuCgkgIFVucmVmIHNpbmtzIHdoZW4gcGVyZm9ybWluZyBhIHF1ZXJ5IHZpYSBnc3RfaXRlcmF0b3JfZm9sZCwgYXMgdGhlCgkgIGdzdF9iaW5faXRlcmF0ZV9zaW5rcyBpdGVyYXRvciByZWZzIGVhY2ggaXRlbS4gKEZpeGVzICMzMjM4NzQpCgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfY2xhc3NfaW5pdCksIChnc3RfY2xvY2tfZGlzcG9zZSksCgkgIChnc3RfY2xvY2tfc2V0X21hc3Rlcik6CgkgIERyb3Agb3VyIHJlZmVyZW5jZSB0byB0aGUgbWFzdGVyIGNsb2NrLCBpZiBhbnksIHdoZW4gd2UgYXJlIGRpc3Bvc2VkLgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9kaXNwb3NlKToKCSAgQ2hhaW4gdXAgaW4gZGlzcG9zZS4KCjIwMDYtMDEtMjcgMDE6MTM6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vaTE4bjoKCSAgYWRkIG5vdGVzIG9uIGkxOG4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBub3RlcyBvbiBpMThuCgoyMDA2LTAxLTI2IDEyOjU5OjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFkZCBzb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgQWRkIHNvbWUgZGVidWdnaW5nLgoKMjAwNi0wMS0yNiAxMjo0MDoxNyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiBBcHBseSBwYXRjaCBmcm9tICMzMjg3MTUuIFRlZSBub3cgaGFuZGxlcyBwYWQgYmVpbmcgTk9UX0xJTktFRCBvciBpbiBXUk9OR19TVEFURS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDYtMDEtMjYgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9kb19wdXNoKSwKCSAgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6IEFwcGx5IHBhdGNoIGZyb20gIzMyODcxNS4gVGVlIG5vdwoJICBoYW5kbGVzIHBhZCBiZWluZyBOT1RfTElOS0VEIG9yIGluIFdST05HX1NUQVRFLgoKMjAwNi0wMS0yNiAwODo1Nzo0MCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgd2luMzIvTUFOSUZFU1Q6IG1vcmUgdXBkYXRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1Q6CgkgIG1vcmUgdXBkYXRpbmcKCjIwMDYtMDEtMjYgMDg6Mzk6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHdpbjMyL01BTklGRVNUOiByZW1vdmUgb2Jzb2xldGUgZW50cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1Q6CgkgIHJlbW92ZSBvYnNvbGV0ZSBlbnRyeQoKMjAwNi0wMS0yNiAwNjo1NzoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgY29kZSBmb3IgZG93bnN0cmVhbSBldmVudHMsIHJldmlld2VkIGRvY3MgaW4gZ3N0ZXZlbnQuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9lbGVtZW50X2lzX3NyYyksIChzcmNfaXRlcmF0b3JfZmlsdGVyKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3VyY2VzKSwgKGdzdF9iaW5fc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBhZGRlZCBjb2RlIGZvciBkb3duc3RyZWFtIGV2ZW50cywgcmV2aWV3ZWQgZG9jcyBpbiBnc3RldmVudC5jCgoyMDA2LTAxLTI1IDE4OjA3OjAyICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogV2Ugb25seSBxdWVyeSBwb3NpdGlvbiB1c2luZyB0aGUgY2xvY2sgaW4gdGhlIHBsYXlpbmcgc3RhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTI1ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBXZSBvbmx5IHF1ZXJ5IHBvc2l0aW9uIHVzaW5nIHRoZSBjbG9jayBpbiB0aGUgcGxheWluZyBzdGF0ZS4KCSAgUXVlcnkgcGVlciBpbiB0aGUgb3RoZXIgY2FzZXMuCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOiBVcGRhdGVzLgoKMjAwNi0wMS0yNCAxNjoyMzoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiBBIGNsb2NrIGVudHJ5IHRoYXQgaXMgc2NoZWR1bGVkIGZvciB0aGUgZXhhY3QgdGltZSBvZiB0aGUgY2xvY2sgaXMgc3RpbGwgaW4gdGltZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfdW5sb2NrZWQpOgoJICBBIGNsb2NrIGVudHJ5IHRoYXQgaXMgc2NoZWR1bGVkIGZvciB0aGUgZXhhY3QgdGltZSBvZiB0aGUKCSAgY2xvY2sgaXMgc3RpbGwgaW4gdGltZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoKMjAwNi0wMS0yMyAxMjozNzozMyArMDAwMCAgU8OpYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgd2luMzIvdnM3OiBBZGQgbmV3IHZzNyBwcm9qZWN0IGZpbGVzIGFuZCBzb2x1dGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvdnM3IDoKCSAgQWRkIG5ldyB2czcgcHJvamVjdCBmaWxlcyBhbmQgc29sdXRpb24uCgoyMDA2LTAxLTIzIDEyOjIzOjAwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi92czc6IGFsbCBmaWxlcyByZW1vdmVkIGFzIHRoZXkgd2VyZSBvdXQtZGF0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNzoKCSAgYWxsIGZpbGVzIHJlbW92ZWQgYXMgdGhleSB3ZXJlIG91dC1kYXRlZC4KCjIwMDYtMDEtMjAgMTk6MDE6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9yYW5kb20vcmVsZWFzZTogdXBkYXRlIG5vdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkgIHVwZGF0ZSBub3RlcwoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faW5pdCk6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19uZXcpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KToKCSAgdXNlIGdzdF9idXNfbmV3KCksIGltcHJvdmUgbG9nZ2luZywgZml4IGRvY3MKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBmb3IgY3ZzIGJ1aWxkCgoyMDA2LTAxLTIwIDE4OjU5OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGF1dG9nZW4uc2g6IHVwIHJlcXVpcmVkIHZlcnNpb24gb2YgYXV0b21ha2UgdG8gMS43CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGF1dG9nZW4uc2g6CgkgIHVwIHJlcXVpcmVkIHZlcnNpb24gb2YgYXV0b21ha2UgdG8gMS43CgoyMDA2LTAxLTIwIDEyOjUzOjQwICswMDAwICBTw6liYXN0aWVuIE1vdXR0ZSA8c2ViYXN0aWVuQG1vdXR0ZS5uZXQ+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogZXhwb3J0IGdzdF9idWZmZXJfaXNfbWV0YWRhdGFfd3JpdGFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGV4cG9ydCBnc3RfYnVmZmVyX2lzX21ldGFkYXRhX3dyaXRhYmxlCgoyMDA2LTAxLTIwIDExOjQ2OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIGdzdF9ldmVudF9yZXBsYWNlKCkgKCMzMjcwMDEpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEFkZCBnc3RfZXZlbnRfcmVwbGFjZSgpICgjMzI3MDAxKQoKMjAwNi0wMS0yMCAwOTo1NjozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogTWFrZSBpdCBhY3R1YWxseSBjb21waWxlIHRvby4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKToKCSAgTWFrZSBpdCBhY3R1YWxseSBjb21waWxlIHRvby4uCgoyMDA2LTAxLTIwIDA5OjUzOjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQ2xhcmlmeSBiZWhhdmlvdXIgb2YgX2lzX2VxdWFsKCkgd2hlbiBwYXNzaW5nIE5VTEwgcGFyYW1ldGVycy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgQ2xhcmlmeSBiZWhhdmlvdXIgb2YgX2lzX2VxdWFsKCkgd2hlbiBwYXNzaW5nIE5VTEwgcGFyYW1ldGVycy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksCgkgIChnc3RfcGFkX3NldF9jYXBzKToKCSAgQ2xlYW51cHMuIERvbid0IHVucmVmIE5VTEwgY2Fwcy4KCSAgV2hlbiBzZXR0aW5nIHRoZSBzYW1lIGNhcHMsIHByb3RlY3QgY2FwcyBvZiB0aGUgcGFkIHdpdGgKCSAgcHJvcGVyIGxvY2suCgkgIFVzZSBmdWxsIGZ1bmN0aW9uYWxpdHkgb2YgX2lzX2VxdWFsKCkgd2hlbiBjb21wYXJpbmcgY2Fwcy4KCjIwMDYtMDEtMjAgMDk6MjY6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBEb24ndCBsb29wIGluZmluaXRlbHkgaWYgdGhlcmUgYXJlIG5vIGJ1ZmZlcnMgdG8gcHJlc2VudC4gUGFydGlhbGx5IGZpeGVzICMzMjcxOTcsIGJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfaXNfY29sbGVjdGVkKToKCSAgRG9uJ3QgbG9vcCBpbmZpbml0ZWx5IGlmIHRoZXJlIGFyZSBubyBidWZmZXJzIHRvIHByZXNlbnQuIFBhcnRpYWxseQoJICBmaXhlcyAjMzI3MTk3LCBidXQgY29sbGVjdHBhZHMgaXMganVzdCBicm9rZW4gZm9yIHJldXNpbmcgZWxlbWVudHMKCSAgdG8gZG8gbXVsdGlwbGUgZW5jb2RlcyBhdG0uCgoyMDA2LTAxLTIwIDA5OjEyOjEwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIHRvb2xzLzogVVJMX0hBTkRMRVIgaXMgbm90IGEgcGx1Z2luIGZlYXR1cmUgd2UgY2FuIHNlYXJjaCBmb3IgaW4gdGhlIHJlZ2lzdHJ5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9mZWF0dXJlcyk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICBVUkxfSEFORExFUiBpcyBub3QgYSBwbHVnaW4gZmVhdHVyZSB3ZSBjYW4gc2VhcmNoIGZvciBpbgoJICB0aGUgcmVnaXN0cnkuCgoyMDA2LTAxLTE5IDE4OjA2OjE4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogV2hlbiBhY3RpdmF0aW5nLCBkbyBzcmMgcGFkcyBmaXJzdCwgdGhlbiBzaW5rIHBhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgV2hlbiBhY3RpdmF0aW5nLCBkbyBzcmMgcGFkcyBmaXJzdCwgdGhlbiBzaW5rIHBhZHMuCgkgIFdoZW4gZGUtYWN0aXZhdGluZywgZG8gc2luayBwYWRzIGZpcnN0LCB0aGVuIHNyYyBwYWRzLgoKMjAwNi0wMS0xOSAxNDowMjowNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgZ3N0X2luZGV4X2FkZF9hc3NvY2lhdGlvbnYgdG8gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252IHRvIHRoZSBkb2NzCgoyMDA2LTAxLTE5IDEzOjMwOjMxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RldmVudC5jOiBGaXggZG9jcyB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBGaXggZG9jcyB0eXBvCgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9jaGFpbiksIChnc3RfcXVldWVfcHVzaF9vbmUpLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBEbyBzb21lIHJlZmFjdG9yaW5nLiBEb2Vzbid0IGFjdHVhbGx5IGNoYW5nZSBmdW5jdGlvbmFsaXR5LAoJICBidXQgbWFrZXMgbGFuZGluZyB0aGUgRFJBSU4gZXZlbnQgZWFzaWVyIGxhdGVyLgoKMjAwNi0wMS0xOSAxMDozOToyNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOiBVcGRhdGUgZnJvbSAwLjkueCB0byAwLjEwIEFQSSBhbmQgbWFrZSBleGFtcGxlIGEgYml0IGNsZWFyZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXNjaGVkdWxpbmcueG1sOgoJICBVcGRhdGUgZnJvbSAwLjkueCB0byAwLjEwIEFQSSBhbmQgbWFrZSBleGFtcGxlIGEgYml0CgkgIGNsZWFyZXIuCgoyMDA2LTAxLTE5IDA5OjI0OjAzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBtZXRob2RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBBZGQgZ3N0X2J1ZmZlcl8oaXN8bWFrZSlfbWV0YWRhdGFfd3JpdGFibGUgbWV0aG9kcy4KCjIwMDYtMDEtMTkgMDk6MDg6MTUgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDogVXBkYXRlIHNwYXJzZSBzdHJlYW1zIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJICBVcGRhdGUgc3BhcnNlIHN0cmVhbXMgZG9jCgoyMDA2LTAxLTE5IDA5OjAyOjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogUmVtb3ZlIG1lbnRpb24gb2YgRklMTEVSIGV2ZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBSZW1vdmUgbWVudGlvbiBvZiBGSUxMRVIgZXZlbnRzLgoJICBBZGQgRFJBSU4gZXZlbnQuCgkgICogZG9jcy9kZXNpZ24vcGFydC1zcGFyc2VzdHJlYW1zLnR4dDoKCSAgV3JpdGUgc29tZSB0aGluZ3MgYWJvdXQgdXNpbmcgTkVXU0VHTUVOVCB0byBrZWVwIHNwYXJzZSBzdHJlYW1zCgkgIGZsb3dpbmcuCgoyMDA2LTAxLTE4IDE4OjU2OjQ0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBHdWFyZCBnc3Rfb2JqZWN0X3VucmVmIGNhbGwgYWdhaW5zdCBhIE5VTEwgb2JqZWN0IChkaXNwb3NlIGNhbiB0aGVvcmV0aWNhbGx5IGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZGlzcG9zZSk6CgkgIEd1YXJkIGdzdF9vYmplY3RfdW5yZWYgY2FsbCBhZ2FpbnN0IGEgTlVMTCBvYmplY3QgKGRpc3Bvc2UKCSAgY2FuIHRoZW9yZXRpY2FsbHkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzKS4KCjIwMDYtMDEtMTggMTg6MDU6NDMgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OiBSZW1vdmUgbWVudGlvbiBvZiBGSUxMRVIgZXZlbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFJlbW92ZSBtZW50aW9uIG9mIEZJTExFUiBldmVudHMuCgkgIEFkZCBEUkFJTiBldmVudC4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNwYXJzZXN0cmVhbXMudHh0OgoJICBXcml0ZSBzb21lIHRoaW5ncyBhYm91dCB1c2luZyBORVdTRUdNRU5UIHRvIGtlZXAgc3BhcnNlIHN0cmVhbXMKCSAgZmxvd2luZy4KCjIwMDYtMDEtMTggMTg6MDE6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfd2FpdCk6CgkgIEFkZGVkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBBZGRlZCBtb3JlIGRvY3MuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2NoYWluKToKCSAgQWRkZWQgc29tZSBjb21tZW50cy4KCjIwMDYtMDEtMTggMTc6NTk6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJICBJZ25vcmUgZmFrZXNpbmsgdGVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIElnbm9yZSBmYWtlc2luayB0ZXN0LgoKMjAwNi0wMS0xOCAxNzo1Nzo1NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgZmFrZXNpbmsgdGVzdCB0aGF0IGNoZWNrcyBwcmVyb2xsaW5nIGFuZCBjbGlwcGluZyBiZWhhdmlvdXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2Zha2VzaW5rLmM6IChjaGFpbl9hc3luY19idWZmZXIpLAoJICAoY2hhaW5fYXN5bmMpLCAoY2hhaW5fYXN5bmNfcmV0dXJuKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGZha2VzaW5rX3N1aXRlKSwgKG1haW4pOgoJICBBZGRlZCBmYWtlc2luayB0ZXN0IHRoYXQgY2hlY2tzIHByZXJvbGxpbmcgYW5kIGNsaXBwaW5nCgkgIGJlaGF2aW91ci4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgTWFrZSBjaGVjayBydW4gZmFzdGVyIHNvIHRoYXQgYnVpbGRib3RzIGRvbid0IHRpbWVvdXQuCgoyMDA2LTAxLTE4IDE3OjE4OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTb21lIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgU29tZSBjbGVhbnVwcy4KCSAgV2hlbiB0aGUgc2luayBmaW5pc2hlcyBibG9ja2luZyBvbiB0aGUgcHJlcm9sbCBidWZmZXIsIGl0IGNhbgoJICBpbW1lZGlhdGx5IHJlbmRlciBpdCBpbnN0ZWFkIG9mIHJlbmRlcmluZyB3aGVuIHRoZSBuZXh0IGJ1ZmZlcgoJICBhcnJpdmVzLgoKMjAwNi0wMS0xOCAxNjo0MDoxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgY2xlYW51cHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3Npbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYWluKToKCSAgU21hbGwgY2xlYW51cHMuCgkgIEdTVF9FTEVNRU5UX0NMT0NLIGFuZCBzeW5jIGFyZSBwcm90ZWN0ZWQgd2l0aCBMT0NLLgoJICBEb24ndCBzdG9yZSBfbGFzdF9zdG9wIGlmIHRoZSBidWZmZXIgaXMgZHJvcHBlZC4KCjIwMDYtMDEtMTggMTY6MzE6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAnaGF2ZS10eXBlJyBzaWduYWwgbmVlZHMgdG8gYmUgR19TSUdOQUxfUlVOX0ZJUlNULCBhcyBpdCBpcyB0aGUgb2JqZWN0IG1ldGhvZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgJ2hhdmUtdHlwZScgc2lnbmFsIG5lZWRzIHRvIGJlIEdfU0lHTkFMX1JVTl9GSVJTVCwgYXMgaXQgaXMgdGhlCgkgIG9iamVjdCBtZXRob2QgaGFuZGxlciB0aGF0IHNldHMgdGhlIGNhcHMgb24gdGhlIHBhZCBhbmQgd2Ugd2FudAoJICB0aGF0IHRvIGhhcHBlbiBiZWZvcmUgd2UgZW1pdCB0aGUgc2lnbmFsIChmaXhlcyBlLmcuIGZlZWRpbmcgYQoJICBwbGFpbiB0ZXh0IGZpbGUgdG8gZGVjb2RlYmluKS4KCjIwMDYtMDEtMTggMTE6NDQ6NTUgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJICBhZGQgTVBMIGFuZCBQcm9wZXJpZXRhcnQgdG8gbGlzdCBvZiBsaWNlbnNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIE1QTCBhbmQgUHJvcGVyaWV0YXJ0IHRvIGxpc3Qgb2YgbGljZW5zZXMKCjIwMDYtMDEtMTggMDk6NDI6MTIgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgZ3N0L2dzdGluZGV4LmggKGdzdF9pbmRleF9hZGRfYXNzb2NpYXRpb252KTogQWRkIHRvIGhlYWRlci4gVGhlIHN5bWJvbCB3YXMgZXhwb3J0ZWQgYmVmb3JlLCBpdCBhcHBlYXJzIHRoaXMgd2FzIGp1c3QgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5oIChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udik6IEFkZCB0byBoZWFkZXIuIFRoZQoJICBzeW1ib2wgd2FzIGV4cG9ydGVkIGJlZm9yZSwgaXQgYXBwZWFycyB0aGlzIHdhcyBqdXN0IGFuIG92ZXJzaWdodC4KCSAgRml4ZXMgIzE2ODcwMy4KCSAgUGF0Y2ggYnk6IFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2ggYXQgZ214LmRlPgoJICAqIGdzdC9nc3RpbmRleC5jIChnc3RfaW5kZXhfYWRkX2Fzc29jaWF0aW9udik6IENoYW5nZWQgaW50IGluCgkgIHByb3RvdHlwZSB0byBnaW50LiBPSyBzaW5jZSB0aGlzIHByb3RvdHlwZSB3YXMgbm90IGluIHRoZSBoZWFkZXIuCgoyMDA2LTAxLTE3IDE2OjM5OjIzICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1saWNlbnNpbmcueG1sOgoJICBzbWFsbCBmaXggdG8gdGhlIHByb3Bvc2VkIGxpY2Vuc2UgY2xhdXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzbWFsbCBmaXggdG8gdGhlIHByb3Bvc2VkIGxpY2Vuc2UgY2xhdXNlCgoyMDA2LTAxLTE3IDEyOjUzOjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYyAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyk6IExvY2sgdGhlIHJlZ2lzdHJ5IHdoaWxlIHdlIHJlbW92ZSBwbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNi0wMS0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucyk6IExvY2sgdGhlCgkgIHJlZ2lzdHJ5IHdoaWxlIHdlIHJlbW92ZSBwbHVnaW5zLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmMgKHByaW50X2VsZW1lbnRfaW5mbyk6IERvbid0IHVucmVmIHRoZQoJICBmYWN0b3J5IGFyZywgdGhhdCBzaG91bGQgYmUgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHdoYXRldmVyIGNvZGUKCSAgcmVjZWl2ZWQgdGhlIHJlZi4gRml4ZXMgYSBkb3VibGUtZnJlZSB3aGVuIGNhbGxlZCBmcm9tCgkgIHByaW50X2VsZW1lbnRfbGlzdCB2aWEgZ3N0LWluc3BlY3QtMC4xMCAtYS4gRml4ZXMgIzMyNzMyNC4KCSAgKG1haW4pOiBVbnJlZiB0aGUgZmFjdG9yeSBpZiB3ZSBoYXZlIG9uZS4KCSAgKHByaW50X2VsZW1lbnRfbGlzdCk6IE5vIGNoYW5nZSAtLSByZWxpZXMgb24gdGhlCgkgIHBsdWdpbl9mZWF0dXJlX2xpc3RfZnJlZSB0byBmcmVlIHRoZSBsaXN0IG9mIGZlYXR1cmVzLgoKMjAwNi0wMS0xNyAxMjoxNDoyMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBSZXBsYWNlIGdzdF9idWZmZXJfKG1ha2V8aXMpX21ldGFkYXRhX3dyaXRhYmxlIHBhdGNoIG5vdyB0aGF0IHRoZSByZWxlYXNlIGlzIG91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF90ZXN0X3N1aXRlKToKCSAgUmVwbGFjZSBnc3RfYnVmZmVyXyhtYWtlfGlzKV9tZXRhZGF0YV93cml0YWJsZSBwYXRjaCBub3cKCSAgdGhhdCB0aGUgcmVsZWFzZSBpcyBvdXQuCgoyMDA2LTAxLTE3IDEyOjA4OjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cmVnaXN0cnkuYzogUmVmbG93IGRlc2lnbiBjb21tZW50LiBVcGRhdGUgc28gYXMgdG8gc3BlYWsgaW4gdGhlIHByZXNlbnQgdGVuc2Ugd2l0aG91dCByZWZlcmVuY2UgdG8gdmVyc2lvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA2LTAxLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiBSZWZsb3cgZGVzaWduIGNvbW1lbnQuIFVwZGF0ZSBzbyBhcyB0byBzcGVhawoJICBpbiB0aGUgcHJlc2VudCB0ZW5zZSB3aXRob3V0IHJlZmVyZW5jZSB0byB2ZXJzaW9ucy4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYyAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4pCgkgIChnc3RfcmVnaXN0cnlfcmVtb3ZlX3BsdWdpbiwgZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9mZWF0dXJlKQoJICAoZ3N0X3JlZ2lzdHJ5X2ZpbmRfZmVhdHVyZSwgZ3N0X3JlZ2lzdHJ5X2dldF9mZWF0dXJlX2xpc3QpCgkgIChnc3RfcmVnaXN0cnlfZ2V0X3BsdWdpbl9saXN0LCBnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmUpCgkgIChnc3RfcmVnaXN0cnlfbG9va3VwLCBnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKQoJICAoX2dzdF9yZWdpc3RyeV9yZW1vdmVfY2FjaGVfcGx1Z2lucykKCSAgKGdzdF9yZWdpc3RyeV9nZXRfZmVhdHVyZV9saXN0X2J5X3BsdWdpbik6IEFkZCBhcmd1bWVudAoJICB2YWxpZGF0aW9uLgoKMjAwNi0wMS0xNiAyMTowMDo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjIgPT09CgoyMDA2LTAxLTE2IDIwOjU5OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuMgoKMjAwNi0wMS0xNiAxNTo0MjowOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBCYWNrIG91dCBwYXRjaCB1bnRpbCBhZnRlciB0aGUgcmVsZWFzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICAqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzogKGdzdF90ZXN0X3N1aXRlKToKCSAgQmFjayBvdXQgcGF0Y2ggdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UuCgoyMDA2LTAxLTE2IDE0OjM3OjU0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0LmM6IFNwZWxsaW5nIGZpeCBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICBTcGVsbGluZyBmaXggaW4gZG9jcy4KCSAgKiBDaGFuZ2VMb2cgLSByZW1vdmUgY29uZmxpY3QgaW5kaWNhdG9yCgoyMDA2LTAxLTE2IDE0OjM3OjAxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIChNaXNzZWQgcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmMgaW4gcHJldmlvdXMgY29tbWl0KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKE1pc3NlZCBwbHVnaW5zL2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYyBpbiBwcmV2aW91cyBjb21taXQpCgkgIFJldmlld2VkIEJ5OiBBbmR5IFdpbmdvCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGFzIGFuYWxvZ3VlcyBvZgoJICBnc3RfYnVmZmVyXyhpc3xtYWtlKV93cml0YWJsZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBVc2UgbmFtZSBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBmdW5jdGlvbnMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBUZXN0IGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlCgkgIChDbG9zZXM6ICMzMjQxNjIpCgoyMDA2LTAxLTE2IDE0OjMyOjMzICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuKjogQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGFzIGFuYWxvZ3VlcyBvZiBnc3RfYnVmZmVyXyhpc3xtYWtlKV93cml0YWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIEJ5OiBBbmR5IFdpbmdvCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9pc19tZXRhZGF0YV93cml0YWJsZSksCgkgIChnc3RfYnVmZmVyX21ha2VfbWV0YWRhdGFfd3JpdGFibGUpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgQWRkIGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlIGFzIGFuYWxvZ3VlcyBvZgoJICBnc3RfYnVmZmVyXyhpc3xtYWtlKV93cml0YWJsZS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfcHJlcGFyZV9idWYpOgoJICBVc2UgbmFtZSBnc3RfYnVmZmVyXyhpc3xtYWtlKV9tZXRhZGF0YV93cml0YWJsZSBmdW5jdGlvbnMuCgkgICogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3Rlc3Rfc3VpdGUpOgoJICBUZXN0IGdzdF9idWZmZXJfKGlzfG1ha2UpX21ldGFkYXRhX3dyaXRhYmxlCgkgIChDbG9zZXM6ICMzMjQxNjIpCgoyMDA2LTAxLTE0IDIyOjU5OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkqIHBvL3poX1RXLnBvOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2UKCjIwMDYtMDEtMTQgMTQ6MTI6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJICBhZGQgdW5saW5rIGFuZCBzb21lIGFzc2VydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB1bmxpbmsgYW5kIHNvbWUgYXNzZXJ0cwoKMjAwNi0wMS0xNCAxMToyMDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbTogZG9uJ3QgZG8gcGFyYWxsZWwgbWFrZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgZG8gcGFyYWxsZWwgbWFrZQoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgQUNfU1VCU1QgSE9TVF9DUFUKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGFkZCBnZW5lcmF0aW9ucyBmb3IgSE9TVF9DUFUgYW5kIEdTVF9NQUpPUk1JTk9SCgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOiAgICAgICAgICAgY29tbWl0IGdlbmVyYXRlZCByZXN1bHQKCjIwMDYtMDEtMTMgMTk6NTE6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSAgdXBkYXRlcyB0byByZWxlYXNlIGRvYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlcyB0byByZWxlYXNlIGRvYwoKMjAwNi0wMS0xMyAxOToxNzowNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FwcGVuZGl4LWludGVncmF0aW9uLnhtbDogVXBkYXRlIEdOT01FIGludGVncmF0aW9uIHNlY3Rpb24gdG8gdXNlIGdzdF9pbml0X2dldF9vcHRpb25fZ3JvdXAoKSBpbnN0ZWFkIG9mIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgIFVwZGF0ZSBHTk9NRSBpbnRlZ3JhdGlvbiBzZWN0aW9uIHRvIHVzZSBnc3RfaW5pdF9nZXRfb3B0aW9uX2dyb3VwKCkKCSAgaW5zdGVhZCBvZiB0aGUgb2xkIHBvcHQgc3R1ZmYgKCMzMjI5MTEpLiBBbHNvLCBHTk9NRSBhcHBsaWNhdGlvbnMKCSAgc2hvdWxkICBub3cgdXNlIGdjb25mKnNpbmsgYW5kIGdjb25mKnNyYyBpbnN0ZWFkIG9mIHRoZSBvbGQgZ2NvbmYKCSAgaGVscGVyIGxpYiB3ZSBoYWQuCgoyMDA2LTAxLTEzIDE2OjE2OjI0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgcmVtb3ZpbmcgMDEwIHN1ZmZpeGluZyBvZiBwYWNrYWdlIG5hbWUgYXMgRmVkb3JhIG9ubHkgdXNlIGl0IGZvciAwLjgsIHdhbnQgdG8gaGF2ZSB0aGUgcGFja2FnZXMgYmUgaW50ZXJjaGFuZ2VhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmluZyAwMTAgc3VmZml4aW5nIG9mIHBhY2thZ2UgbmFtZSBhcyBGZWRvcmEgb25seSB1c2UgaXQgZm9yIDAuOCwgd2FudAoJICB0byBoYXZlIHRoZSBwYWNrYWdlcyBiZSBpbnRlcmNoYW5nZWFibGUKCjIwMDYtMDEtMTMgMTQ6NTk6MDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiBwby9MSU5HVUFTOgoJICByZWFkZCB6aF9UVyBhbmQgZm9yY2UgYW4gYXV0b2dlbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVhZGQgemhfVFcgYW5kIGZvcmNlIGFuIGF1dG9nZW4KCjIwMDYtMDEtMTMgMTQ6MjE6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvOiBhZGQgbmV3IEFQSSBlbnRyaWVzIHRvIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICBhZGQgbmV3IEFQSSBlbnRyaWVzIHRvIHRoZSBkb2NzCgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXJwcml2YXRlLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgbW92ZSBwcml2YXRlIHN0cnVjdHMgdG8gcHJpdmF0ZSBoZWFkZXIKCSAgKiBwby9SRUFETUU6CgkgIGdzdHJlYW1lci0wLjcgLT4gZ3N0cmVhbWVyLTAuMTAKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIHJlbW92ZSBwcml2YXRlIHN0cnVjdHMKCjIwMDYtMDEtMTMgMTQ6MTk6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vUE9URklMRVMuaW46CgkgIHRyaWdnZXIgYSByZWJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0cmlnZ2VyIGEgcmVidWlsZAoKMjAwNi0wMS0xMyAxNDoxOToxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9MSU5HVUFTOgoJICB0cmlnZ2VyIGEgcmVidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJpZ2dlciBhIHJlYnVpbGQKCjIwMDYtMDEtMTMgMTQ6MTI6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcGx1Z2lucy9pbmRleGVycy9NYWtlZmlsZS5hbTogRml4ZXMgYXMgcGFydCBvZiAjMzE3MDQ4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIEZpeGVzIGFzIHBhcnQgb2YgIzMxNzA0OAoKMjAwNi0wMS0xMyAxMzo0MTo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOiBmaXggIzMxNjA4NiAtIGNvbXBpbGF0aW9uIHdoZW4gbW1hcCBpcyBtaXNzaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkgIGZpeCAjMzE2MDg2IC0gY29tcGlsYXRpb24gd2hlbiBtbWFwIGlzIG1pc3NpbmcKCjIwMDYtMDEtMTIgMjI6MDQ6NTggKzAwMDAgIFPDqWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKmN1ciA9IChub3cgLSBiYXNlKSAqIGJhc2VzaW5rLT5zZWdtZW50LmFic19yYXRlICsgdGltZTsgcmVwbGFjZWQgYnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqY3VyID0gKG5vdyAtIGJhc2UpICogYmFzZXNpbmstPnNlZ21lbnQuYWJzX3JhdGUgKyB0aW1lOyByZXBsYWNlZCBieQoJICAqY3VyID0gZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZShub3cgLSBiYXNlKSAqIGJhc2VzaW5rLT5zZWdtZW50LmFic19yYXRlICsgdGltZTsgZm9yIHZzNgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgYWRkZWQgc29tZSBkZWZpbmVzIEdTVF9NQUpPUk1JTk9SIGFuZCBIT1NUX0NQVQoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkZWQgc29tZSBleHBvcnRlZCBmdW5jdGlvbnMKCjIwMDYtMDEtMTIgMjE6NTU6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvOiBtYWtlIEdfVFlQRV9TVFJJTkcgY29udHJvbGFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9zdHJpbmdfdmFsdWVfYXJyYXkpOgoJICBtYWtlIEdfVFlQRV9TVFJJTkcgY29udHJvbGFibGUKCjIwMDYtMDEtMTIgMTY6MzE6MzUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHRvb2xzLzogY2xlYW51cCBtYW4tcGFnZXMsIHJlbW92ZSByZWZlcmVuY2UgdG8gZ3N0LXJlZ2lzdGVyLCBkb2N1bWVudCBlbnYtdmFycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9SRUFETUU6CgkgICogdG9vbHMvZ3N0LWZlZWRiYWNrLjEuaW46CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuMS5pbjoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgICogdG9vbHMvZ3N0LW1kNXN1bS4xLmluOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC4xLmluOgoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LjEuaW46CgkgICogdG9vbHMvZ3N0LXhtbGxhdW5jaC4xLmluOgoJICBjbGVhbnVwIG1hbi1wYWdlcywgcmVtb3ZlIHJlZmVyZW5jZSB0byBnc3QtcmVnaXN0ZXIsIGRvY3VtZW50IGVudi12YXJzCgoyMDA2LTAxLTEyIDE2OjA3OjUwICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYzogZ3N0X2J1ZmZlcl9zcGFuIHNob3VsZCBjb3B5IHRoZSB0aW1lc3RhbXAgb2YgdGhlIGZpcnN0IGJ1ZmZlciBpZiB0aGV5IHdlcmUgYm90aCBvcmlnaW5hbGx5IG92ZXJsYXBwaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX3NwYW4pOgoJICBnc3RfYnVmZmVyX3NwYW4gc2hvdWxkIGNvcHkgdGhlIHRpbWVzdGFtcCBvZiB0aGUgZmlyc3QgYnVmZmVyCgkgIGlmIHRoZXkgd2VyZSBib3RoIG9yaWdpbmFsbHkgb3ZlcmxhcHBpbmcgc3ViYnVmZmVycyBvZiB0aGUKCSAgc2FtZSBwYXJlbnQsIHVzaW5nIHRoZSBzYW1lIGxvZ2ljIGFzIHRoZSAnc2xvdyBjb3B5JyBjYXNlLgoKMjAwNi0wMS0xMSAyMTozMjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IE5lZWQgdG8gYXdha2VuIEFMTCB0aGUgcGFkcyB3aGVuIHdlIHBvcCBhIGJ1ZmZlciwgb3RoZXJ3aXNlIGNvbGxlY3RwYWRzIG9ubHkgd29ya3Mgd2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApOgoJICBOZWVkIHRvIGF3YWtlbiBBTEwgdGhlIHBhZHMgd2hlbiB3ZSBwb3AgYSBidWZmZXIsIG90aGVyd2lzZQoJICBjb2xsZWN0cGFkcyBvbmx5IHdvcmtzIHdoZW4gdGhlcmUgaXMgMiBpbnB1dCBzdHJlYW1zLgoKMjAwNi0wMS0xMSAxOToxODoyNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDogbW9yZSBpZGVhcyAoZGJ1cykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDoKCSAgbW9yZSBpZGVhcyAoZGJ1cykKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGZpeCBkb2MgZXhhbXBsZSwgYWRkIGNsYXJpZmljYXRpb24KCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGFkZCBpbml0aWFsIGluZm8gYWJvdXQgR1NUX1BMVUdJTl9QQVRILCBuZWVkcyBtb3JlIHdvcmsKCjIwMDYtMDEtMTEgMTA6Mzg6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFNvbWUgbW9yZSBtaW5vciBkb2NzIGFkZGl0aW9ucyBhbmQgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvaW50cm8tYmFzaWNzLnhtbDoKCSAgU29tZSBtb3JlIG1pbm9yIGRvY3MgYWRkaXRpb25zIGFuZCB1cGRhdGVzLgoKMjAwNi0wMS0xMSAxMDoyMDowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbWFudWFsLzogU29tZSBzbWFsbCBmaXhlcyBhcyBwb2ludGVkIG91dCBieSBTZXItdmVyIG9uIElSQy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWJpbnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1lbGVtZW50cy54bWw6CgkgIFNvbWUgc21hbGwgZml4ZXMgYXMgcG9pbnRlZCBvdXQgYnkgU2VyLXZlciBvbiBJUkMuCgoyMDA2LTAxLTEwIDE1OjQyOjI5ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBTZXQgdGhlIGJ1ZmZlciBvZmZzZXQvb2Zmc2V0X2VuZCB0byBHU1RfQ0xPQ0tfVElNRV9OT05FIHdoZW4gdXNpbmcgdGhlIHNpbmdsZS1zZWdtZW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBTZXQgdGhlIGJ1ZmZlciBvZmZzZXQvb2Zmc2V0X2VuZCB0byBHU1RfQ0xPQ0tfVElNRV9OT05FIHdoZW4gdXNpbmcKCSAgdGhlIHNpbmdsZS1zZWdtZW50IG1vZGUuCgoyMDA2LTAxLTEwIDA5OjIzOjExICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLio6IE5hbWUgKHByaXZhdGUpIHVuaW9uOyBtYWtlcyBTdW4ncyBGb3J0ZSBjb21waWxlciBoYXBweSAoIzMyNDkwMCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTmFtZSAocHJpdmF0ZSkgdW5pb247IG1ha2VzIFN1bidzIEZvcnRlIGNvbXBpbGVyIGhhcHB5ICgjMzI0OTAwKS4KCjIwMDYtMDEtMDkgMTA6NDc6MTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBSRUFETUU6IGdzdC1yZWdpc3RlciBpcyBnb25lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBSRUFETUU6CgkgIGdzdC1yZWdpc3RlciBpcyBnb25lLgoKMjAwNi0wMS0wNyAxMTowNzo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9MSU5HVUFTOgoJICByZW1vdmUgYW5kIHJlYWRkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYW5kIHJlYWRkCgoyMDA2LTAxLTA3IDExOjA3OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogcG8vTElOR1VBUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFuZCByZWFkZAoKMjAwNi0wMS0wNyAxMDowNDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogbWFrZSB0aGUgR19UWVBFX0RBVEUgaW5zdGFudGlhdGlvbiB3b3JrIGlmIGRlYnVnIGlzIGRpc2FibGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgbWFrZSB0aGUgR19UWVBFX0RBVEUgaW5zdGFudGlhdGlvbiB3b3JrIGlmIGRlYnVnIGlzIGRpc2FibGVkCgoyMDA2LTAxLTA3IDA5OjU2OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHBvL3poX0NOLnBvOgoJKiBwby96aF9UVy5wbzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAwNi0wMS0wNiAxNzoxNjo0MCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IERvbid0IGNyYXNoIHdoZW4gcmV0dXJuIGxvY2F0aW9uIGZvciBlcnJvci93YXJuaW5nIGRlYnVnIHN0cmluZyBpcyBOVUxMOyBhZGQgZmFjdCB0aGF0IHJldHVybiBsb2NhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfdGFnKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX2Vycm9yKSwgKGdzdF9tZXNzYWdlX3BhcnNlX3dhcm5pbmcpOgoJICBEb24ndCBjcmFzaCB3aGVuIHJldHVybiBsb2NhdGlvbiBmb3IgZXJyb3Ivd2FybmluZyBkZWJ1ZwoJICBzdHJpbmcgaXMgTlVMTDsgYWRkIGZhY3QgdGhhdCByZXR1cm4gbG9jYXRpb25zIGNhbiBiZQoJICBOVUxMIHRvIGRvY3Mgd2hlcmUgYXBwcm9wcmlhdGUuCgoyMDA2LTAxLTA1IDEwOjQzOjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBSZXBsYWNlIHN0cmR1cCBieSBnX3N0cmR1cCBhcyBzdWdnZXN0ZWQgYnkgU2VyLXZlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOgoJICBSZXBsYWNlIHN0cmR1cCBieSBnX3N0cmR1cCBhcyBzdWdnZXN0ZWQgYnkgU2VyLXZlci4KCjIwMDYtMDEtMDQgMjM6NTM6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGUgY29uZmlnIGZvciAuMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGNvbmZpZyBmb3IgLjEKCjIwMDYtMDEtMDQgMjM6NTI6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOiBmaXggZG9jIGJvcmthZ2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBmaXggZG9jIGJvcmthZ2UKCjIwMDYtMDEtMDQgMjM6NTA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgc3VibWl0dGVkIGJ5OiBBYmVsIENoZXVuZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3VibWl0dGVkIGJ5OiBBYmVsIENoZXVuZwoJICAqIHBvL0xJTkdVQVM6CgkgICogcG8vemhfVFcucG86CgkgIEFkZGVkIENoaW5lc2UgKHRyYWRpdGlvbmFsKSB0cmFuc2xhdGlvbgoKMjAwNi0wMS0wNCAxMjo0MTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNtYWxsIHVwZGF0ZXMgdG8gdmFyaW91cyBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkgICogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1jbG9jay54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtc2NoZWR1bGluZy54bWw6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jbGFzc19pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBTbWFsbCB1cGRhdGVzIHRvIHZhcmlvdXMgZG9jcy4KCSAgQWRkZWQgY29yZSBwbHVnaW5zIHRvIGRvY3MuCgoyMDA2LTAxLTAzIDE4OjA4OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbW1vbi9nc3Quc3VwcDogYWRkIGEgc3VwcHJlc3Npb24gZm9yIGxpYm9pbCdzIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2dzdC5zdXBwOgoJICBhZGQgYSBzdXBwcmVzc2lvbiBmb3IgbGlib2lsJ3MgdW5pbml0aWFsaXplZCB2YXJpYWJsZQoKMjAwNi0wMS0wMiAyMDoyNjowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R1dGlscy5oOiBBZGQgcHJvdG90eXBlIGZvciBfZ2V0X3R5cGUoKSBmdW5jdGlvbiB0byBHU1RfQk9JTEVSUExBVEVfRlVMTCBtYWNybywgc28gdGhhdCBnY2MgZG9lc24ndCBjb21wbGFpbiBpZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIHByb3RvdHlwZSBmb3IgX2dldF90eXBlKCkgZnVuY3Rpb24gdG8gR1NUX0JPSUxFUlBMQVRFX0ZVTEwKCSAgbWFjcm8sIHNvIHRoYXQgZ2NjIGRvZXNuJ3QgY29tcGxhaW4gaWYgdGhlIC1XbWlzc2luZy1wcm90b3R5cGVzCgkgIGNvbXBpbGVyIHN3aXRjaCBpcyBiZWluZyB1c2VkICgjMzI1NDI5KS4KCjIwMDUtMTItMjkgMTY6NDc6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IERpc2FibGUgZHVyYXRpb24gcXVlcnkgY2FjaGluZyBpbiBiaW5zIHVudGlsIGl0IGdldHMgZml4ZWQgKHNlZSAjMzI0ODA3KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9xdWVyeSk6CgkgIERpc2FibGUgZHVyYXRpb24gcXVlcnkgY2FjaGluZyBpbiBiaW5zIHVudGlsIGl0IGdldHMKCSAgZml4ZWQgKHNlZSAjMzI0ODA3KS4KCjIwMDUtMTItMjcgMTg6MDQ6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBIYW5kbGUgcHJvcGVydGllcyBvZiBQT0lOVEVSIGFuZCBCT1hFRCB0eXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBIYW5kbGUgcHJvcGVydGllcyBvZiBQT0lOVEVSIGFuZCBCT1hFRCB0eXBlLgoKMjAwNS0xMi0yNyAxMjoxMToxOSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3QuYzogSW5pdCB0YWdzIHN0dWZmIGFuZCBzb21lIG90aGVyIHRoaW5ncyBiZWZvcmUgbG9hZGluZyBhbnkgc3RhdGljIHBsdWdpbnMgKHRoZXJlIG1heSBiZSBvdGhlciBzdGF0aWMgcGx1Z2lucy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBJbml0IHRhZ3Mgc3R1ZmYgYW5kIHNvbWUgb3RoZXIgdGhpbmdzIGJlZm9yZSBsb2FkaW5nCgkgIGFueSBzdGF0aWMgcGx1Z2lucyAodGhlcmUgbWF5IGJlIG90aGVyIHN0YXRpYyBwbHVnaW5zCgkgIHRoYW4ganVzdCB0aGUgR1N0cmVhbWVyIG9uZXMsIGFuZCB0aGV5IG1heSB3YW50IHRvCgkgIHJlZ2lzdGVyIHRoZWlyIG93biB0YWdzIG9yIGZvcm1hdHMgb3Igd2hhdGV2ZXIsIGFuZAoJICBwcmVmZXJhYmx5IHdpdGhvdXQgc2VnZmF1bHRpbmcpLgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgUHJpbnQgYXQgbGVhc3QgYSB3YXJuaW5nIGluIHRoZSBkZWJ1ZyBsb2dzIGlmIHdlIGRyb3AgYQoJICBxdWVyeSBqdXN0IGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyBob3cgdG8gYWRqdXN0IHRoZSB2YWx1ZQoJICBpbiB0aGUgcGFydGljdWxhciBmb3JtYXQuCgoyMDA1LTEyLTI1IDAzOjQ1OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHRvb2xzL2dzdHJlYW1lci1jb21wbGV0aW9uOiBSZXBsYWNlbWVudCBmb3IgZ3N0LWNvbXBsZXRlIHdyaXR0ZW4gaW4gc2ggYW5kIHNlZC4gIE9ubHkgY29tcGxldGVzIG5hbWVzIG9mIGZlYXR1cmVzLCBidS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3RyZWFtZXItY29tcGxldGlvbjoKCSAgUmVwbGFjZW1lbnQgZm9yIGdzdC1jb21wbGV0ZSB3cml0dGVuIGluIHNoIGFuZCBzZWQuICBPbmx5CgkgIGNvbXBsZXRlcyBuYW1lcyBvZiBmZWF0dXJlcywgYnV0IHRoYXQncyA5MCUgb2Ygd2hhdCBJIHdhbnQKCSAgaXQgZm9yLiAgUHJvcGVydGllcyBhcmUgbm90IGF2YWlsYWJsZSBpbiByZWdpc3RyeS54bWwuICAoTWF5YmUKCSAgdGhleSBzaG91bGQgYmUuLi4pCgoyMDA1LTEyLTIzIDE4OjE1OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgYmFjayB0byBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIEhFQUQKCj09PSByZWxlYXNlIDAuMTAuMSA9PT0KCjIwMDUtMTItMjMgMTg6MDQ6NDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlZWxlbWVudHMueG1sOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWluZGV4ZXJzLnhtbDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuMTAuMQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuMTAuMQoKMjAwNS0xMi0yMyAxNDo1MzoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMi0yMyAxMzo0NToyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMi0yMiAxNDo0ODoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvZmFxL2N2cy54bWw6IEFkZCBtaXNzaW5nIHF1b3RlLCBzaG91bGQgYmUgbWFrZSBFUlJPUl9DRkxBR1M9IiIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgIEFkZCBtaXNzaW5nIHF1b3RlLCBzaG91bGQgYmUgbWFrZSBFUlJPUl9DRkxBR1M9IiIuCgoyMDA1LTEyLTIwIDE2OjAxOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2JnLnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJKiBwby96aF9DTi5wbzoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICBwcmVyZWxlYXNpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXJlbGVhc2luZwoKMjAwNS0xMi0yMCAxMjo1MDo1NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtdHJpY2ttb2Rlcy50eHQ6IE1vcmUgZG9jdW1lbnRhdGlvbiBvbiB0cmlja21vZGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICBNb3JlIGRvY3VtZW50YXRpb24gb24gdHJpY2ttb2Rlcy4KCjIwMDUtMTItMjAgMTE6MTI6NTMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0Y2Fwcy4qOiBBZGRlZCBncG9pbnRlciBHVHlwZSBmb3IgR3N0U3RhdGljQ2FwcyBzbyB3ZSBjYW4gd3JhcCB0aGVtIGluIGJpbmRpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X3N0YXRpY19jYXBzX2dldF90eXBlKToKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBBZGRlZCBncG9pbnRlciBHVHlwZSBmb3IgR3N0U3RhdGljQ2FwcyBzbyB3ZSBjYW4gd3JhcCB0aGVtIGluIGJpbmRpbmdzLgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBBZGRlZCBncG9pbnRlciBHVHlwZSBmb3IgR3N0U3RhdGljUGFkVGVtcGxhdGUgc28gd2UgY2FuIHdyYXAgdGhlbSBpbgoJICBiaW5kaW5ncy4KCjIwMDUtMTItMTggMTY6MDQ6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC86IERvY3VtZW50YXRpb24gdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9xdWVyeSksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19wZXJmb3JtX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSAgRG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKMjAwNS0xMi0xOCAxNDoyODoyNSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDogUmVtb3ZlIHN1cGVyZmx1b3VzIGNsb3NpbmcgYnJhY2tldCBpbiBoZWxsb3dvcmxkIGV4YW1wbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgUmVtb3ZlIHN1cGVyZmx1b3VzIGNsb3NpbmcgYnJhY2tldCBpbiBoZWxsb3dvcmxkIGV4YW1wbGUuCgoyMDA1LTEyLTE3IDE0OjE5OjI3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWxhdW5jaC4xLmluOiBVcGRhdGUgZ3N0LWxhdW5jaCBtYW4gcGFnZTsgYWRkIGEgc2VjdGlvbiB3aXRoIHVzZWZ1bCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIEZpeGVzICMzMjM4ODIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guMS5pbjoKCSAgVXBkYXRlIGdzdC1sYXVuY2ggbWFuIHBhZ2U7IGFkZCBhIHNlY3Rpb24gd2l0aCB1c2VmdWwKCSAgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBGaXhlcyAjMzIzODgyLgoKMjAwNS0xMi0xNiAyMTo1OToxMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0LzogY2hhbmdlIHNvbWUgY2hhciogaW50byBjaGFyW10KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RfcHJpdmF0ZS5oOgoJICBjaGFuZ2Ugc29tZSBjaGFyKiBpbnRvIGNoYXJbXQoKMjAwNS0xMi0xNiAxOToyNDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBDbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX2ZlYXR1cmUpOgoJICBDbGVhbnVwcy4KCSAgRG9uJ3QgdXNlIGdfb2JqZWN0X3VucmVmIG9uIEdzdE9iamVjdHMgc28gdGhhdCB3ZSBhdm9pZAoJICBsZWFrcyBvbiB1bnNhZmUgZ2xpYnMuCgoyMDA1LTEyLTE2IDE4OjIwOjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBTbWFsbCBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpOgoJICBTbWFsbCBkb2MgdXBkYXRlcy4KCjIwMDUtMTItMTYgMTg6MTA6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjb21tb24vY2hlY2subWFrOiBBZGRlZCBtYWtlIGZvcmV2ZXIgdGFyZ2V0IGZvciBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgQWRkZWQgbWFrZSBmb3JldmVyIHRhcmdldCBmb3IgY2hlY2suCgoyMDA1LTEyLTE2IDE3OjM0OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuYzogbWFrZSB0aGUgcmVnaXN0cnkgY2FjaGUgZmlsZSBIT1NUX0NQVS1kZXBlbmRlbnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgbWFrZSB0aGUgcmVnaXN0cnkgY2FjaGUgZmlsZSBIT1NUX0NQVS1kZXBlbmRlbnQKCjIwMDUtMTItMTYgMTQ6NDQ6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkgIHBsdWdpbnMvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmMKCSAgKGdzdF9idWZmZXJfc3RvcmVfY2xlYXJlZF9mdW5jKTogUGF5IGF0dGVudGlvbiB0byBnX2xpc3RfYXBwZW5kCgkgIHJldHVybiB2YWx1ZS4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0b2JqZWN0LmMKCSAgKHRlc3RfZmFrZV9vYmplY3RfbmFtZV90aHJlYWRlZF91bmlxdWUpOiBQYXkgYXR0ZW50aW9uIHRvCgkgIGdfbGlzdF9zb3J0IHJldHVybiB2YWx1ZS4KCjIwMDUtMTItMTYgMTE6NTI6MDAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtZmVlZGJhY2stbS5tOiBVcGRhdGUgZm9yIDAuOS8wLjEwIChmaXhlcyAjMzIzODcwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWZlZWRiYWNrLW0ubToKCSAgVXBkYXRlIGZvciAwLjkvMC4xMCAoZml4ZXMgIzMyMzg3MCkuCgoyMDA1LTEyLTE1IDEyOjIyOjM4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogRml4IGxjb3B5IGZvciBtaW5pIG9iamVjdHMsIHRoZSBtaW5pIG9iamVjdCBuZWVkcyB0byBiZSByZWYnZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfbWluaV9vYmplY3RfbGNvcHkpOgoJICBGaXggbGNvcHkgZm9yIG1pbmkgb2JqZWN0cywgdGhlIG1pbmkgb2JqZWN0IG5lZWRzIHRvIGJlIHJlZidlZC4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOiAobXlfZm9vX2luaXQpLAoJICAobXlfZm9vX2dldF9wcm9wZXJ0eSksIChteV9mb29fc2V0X3Byb3BlcnR5KSwgKG15X2Zvb19jbGFzc19pbml0KSwKCSAgKHRlc3RfdmFsdWVfY29sbGVjdGlvbiksIChnc3RfbWluaV9vYmplY3Rfc3VpdGUpOgoJICBBZGQgdGVzdCB0byBlbnN1cmUgcmVmY291bnRzIGVuZCB1cCBhcyBleHBlY3RlZCB3aGVuIHBhc3NpbmcKCSAgR3N0TWluaU9iamVjdHMgdGhyb3VnaCBnX29iamVjdF9nZXQoKSBhbmQgZ19vYmplY3Rfc2V0KCkuCgoyMDA1LTEyLTE0IDE3OjA4OjM2ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogUmVmYWN0b3Jpbmcgb2YgY29sbGVjdHBhZHMuIFRoaXMgdmVyc2lvbiByZW1vdmVzIGEgbG90IG9mIHJhY2VzIHdpdGhvdXQgdG91Y2hpbmcgQVBJLy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0xNCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYmFzZV9pbml0KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfcmVtb3ZlX3BhZCksIChnc3RfY29sbGVjdF9wYWRzX2lzX2NvbGxlY3RlZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KSwgKGdzdF9jb2xsZWN0X3BhZHNfY2hhaW4pOiBSZWZhY3RvcmluZwoJICBvZiBjb2xsZWN0cGFkcy4gVGhpcyB2ZXJzaW9uIHJlbW92ZXMgYSBsb3Qgb2YgcmFjZXMgd2l0aG91dAoJICB0b3VjaGluZyBBUEkvQUJJLiBZYXkgIQoKMjAwNS0xMi0xNCAxMDowOTozNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERvbid0IGFsbG93IGFjdGl2YXRpb24gb2YgYSBzcmNwYWQgaW4gcHVsbF9yYW5nZSBpZiBpdCBoYXMgbm8gZ2V0cmFuZ2UgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWN0aXZhdGVfcHVsbCksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSk6CgkgIERvbid0IGFsbG93IGFjdGl2YXRpb24gb2YgYSBzcmNwYWQgaW4gcHVsbF9yYW5nZSBpZiBpdCBoYXMgbm8KCSAgZ2V0cmFuZ2UgZnVuY3Rpb24uCgkgIENoYW5nZSBzb21lIGRlYnVnIHN0YXRlbWVudHMgdG8gYmUgYSBsaXR0bGUgY2xlYXJlcgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBDaGVjayB0aGF0IHdlIGhhdmUgYSBwZWVyIGJlZm9yZSBleGVjdXRpbmcgcXVlcmllcyB0aGVyZXVwb24uCgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvcmVhZC1tZXRhZGF0YS5jOiAobWVzc2FnZV9sb29wKToKCSAgVXNlIGdzdF9idXNfcG9wIGluc3RlYWQgb2YgZ3N0X2J1c19wb2xsIHdoZW4gd2UganVzdCB3YW50IGl0IHRvCgkgIGltbWVkaWF0ZWx5IHJldHVybiB1cyBhbnkgYXZhaWxhYmxlIG1lc3NhZ2Ugd2l0aCAwIHRpbWVvdXQuCgoyMDA1LTEyLTEyIDE5OjA5OjQ5ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IERvbid0IHVucmVmIGZhY3RvcmllcyBhZnRlciBjYWxsaW5nIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jYWxsX2Z1bmN0aW9uKToKCSAgRG9uJ3QgdW5yZWYgZmFjdG9yaWVzIGFmdGVyIGNhbGxpbmcgdGhlbS4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbik6CgkgIEZyZWUgbGlzdHMgb2YgZmFjdG9yaWVzIGFmdGVyIHVzaW5nIHRoZW0uIEZpeGluZyB0eXBlZmluZGluZyBtZW1vcnkKCSAgbGVha3MuCgoyMDA1LTEyLTEyIDE4OjEyOjEzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiBtb3JlIG1lYW5pbmdmdWwgZGVidWcgb3V0cHV0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfZmluYWxpemUpLAoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOgoJICBtb3JlIG1lYW5pbmdmdWwgZGVidWcgb3V0cHV0CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgbWFrZSBtYWtlIGRpc3RjaGVjayBoYXBweSBhZ2FpbgoKMjAwNS0xMi0xMiAxNzozNzoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZSBhbGwgdGVzdHMvb2xkIE1ha2VmaWxlcyBmcm9tIHRoZSBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGFsbCB0ZXN0cy9vbGQgTWFrZWZpbGVzIGZyb20gdGhlIGJ1aWxkCgoyMDA1LTEyLTEyIDE3OjA5OjA0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogQ2F0Y2ggdGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB3ZSBhcmUgb3BlcmF0aW5nIGNoYWluLWJhc2VkLCBidXQgdGhlIGRvd25zdHJlYW0gLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChzdG9wX3R5cGVmaW5kaW5nKToKCSAgQ2F0Y2ggdGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB3ZSBhcmUgb3BlcmF0aW5nIGNoYWluLWJhc2VkLAoJICBidXQgdGhlIGRvd25zdHJlYW0gcGVlciBwYWQgaGFzIG5vIGNoYWluIGZ1bmN0aW9uLiBFbWl0IGEKCSAgY3VzdG9tIGVycm9yIG1lc3NhZ2UgaW4gdGhpcyBjYXNlIGluc3RlYWQgb2YgbGV0dGluZyB0aGUKCSAgY29yZSBnZW5lcmF0ZSBvbmUgaW1wbHlpbmcgdGhhdCB0aGlzIGlzIHNvbWUgc29ydCBvZiBjb3JlCgkgIGJ1Zy4gSXQncyBub3QsIGl0IGp1c3QgbWVhbnMgdGhhdCB3aGF0ZXZlciBnb3QgcGx1Z2dlZAoJICBpbnRvIHRoZSBwaXBlbGluZSBkb3duc3RyZWFtIHdoZW4gd2UgYW5ub3VuY2VkIHRoZSB0eXBlCgkgIGNhbiBvbmx5IG9wZXJhdGUgcHVsbC1iYXNlZCwgd2hpbGUgb3VyIHNvdXJjZSBjYW4gb25seQoJICBvcGVyYXRlIHB1c2gtYmFzZWQgKGUuZy4gaHR0cDovL2Zvby9iYXIubW92ICEgcXRkZW11eCAhIC4uLikKCSAgRXJyb3Igc3RyaW5nIGhhcyBub3QgYmVlbiBtYXJrZWQgZm9yIHRyYW5zbGF0aW9uIHlldCwgYXMKCSAgaXQgcHJvYmFibHkgbmVlZHMgc29tZSBtb3JlIHdvcmsgZmlyc3QuCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0X2Jlc3RfcG9zc2liaWxpdHkpOgoJICBBZGQgaGVscGVyIGZ1bmN0aW9uIHRvIGZpbmQgdGhlIGJlc3Qgb2YgYWxsIGF2YWlsYWJsZQoJICBmb3VuZCBwb3NzaWJpbGl0aWVzIHRoYXQgcXVhbGlmeSBnaXZlbiB0aGUgbWluLiB0aHJlc2hvbGQuCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgRml4IHRoZSBjYXNlIHdoZXJlIHdlIGdldCBhbiBFT1Mgd2hpbGUgc3RpbGwgaW4gVFlQRUZJTkQKCSAgbW9kZSAod2Ugd2FudCB0byBjaG9zZSB0aGUgYmVzdCBvZiBhbGwgcG9zc2libGUgdHlwZXMsCgkgIG5vdCBqdXN0IHRoZSBmaXJzdCB0eXBlIHRoYXQgaGFwcGVucyB0byBiZSBpbiBvdXIgdW5zb3J0ZWQKCSAgbGlzdCBvZiBwb3NzaWJsZSB0eXBlcykuCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pOgoJICBNYWtlIHN1cmUgd2UgcmV0dXJuIEdTVF9GTE9XX0VSUk9SIHdoZW4gd2UgZXJyb3JlZCBvdXQKCSAgaW4gc3RvcF90eXBlZmluZGluZygpOyBhbHNvLCBkb24ndCBqdXN0IGZpbmQgdGhlIGJlc3Qgb2YKCSAgYWxsIGZvdW5kIHR5cGUgZW50cmllcyBhbmQgdGhlbiB1c2UgdGhlIGxhc3QgZXhhbWluZWQKCSAgdHlwZSBlbnRyeSwgYnV0IGFjdHVhbGx5IHVzZSB0aGUgYmVzdCBlbnRyeS4KCjIwMDUtMTItMTIgMTc6MDc6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy86IE1vcmUgZ2NjNCBmaXhlcyBhbmQgYSBtZW0gbGVhayBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6ICh0eXBlX2ZvdW5kKToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6ICh4bWxfbG9hZGVkKToKCSAgTW9yZSBnY2M0IGZpeGVzIGFuZCBhIG1lbSBsZWFrIGZpeC4KCjIwMDUtMTItMTIgMTY6MjA6NDcgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSAgbW9yZSBnY2MgNCB3YXJuaW5nIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGdjYyA0IHdhcm5pbmcgZml4ZXMKCjIwMDUtMTItMTIgMTY6MDQ6NDUgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzoKCSAgYW5vdGhlciBnY2M0IGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBnY2M0IGZpeAoKMjAwNS0xMi0xMiAxNTo1OTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMveG1sL2NyZWF0ZXhtbC5jOiBnY2MgNCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6IChvYmplY3Rfc2F2ZWQpOgoJICBnY2MgNCBmaXhlcwoKMjAwNS0xMi0xMiAxNTo0NjoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvTWFrZWZpbGUuYW06IGVuYWJsZSB0aGUgZXhhbXBsZXMgZXZlbiBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICBlbmFibGUgdGhlIGV4YW1wbGVzIGV2ZW4gbW9yZQoKMjAwNS0xMi0xMiAxNTowMjowMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jIChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfY2xhc3NfaW5pdCwgZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2luaXQpIChnc3RfbmV0X3RpbWVfcHJvdmlkLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYwoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX2NsYXNzX2luaXQsIGdzdF9uZXRfdGltZV9wcm92aWRlcl9pbml0KQoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3NldF9wcm9wZXJ0eSkKCSAgKGdzdF9uZXRfdGltZV9wcm92aWRlcl9nZXRfcHJvcGVydHkpOiBFeHBvcnQgImFjdGl2ZSIgYXMgYSBHT2JqZWN0CgkgIHByb3BlcnR5LgoJICAoZ3N0X25ldF90aW1lX3Byb3ZpZGVyX3RocmVhZCk6IE9ubHkgcmVzcG9uZCB0byB0aW1lIHF1ZXJpZXMgaWYKCSAgdGhlIHRpbWUgcHJvdmlkZXIgaXMgYWN0aXZlLgoJICAqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDogQWRkIGFuICJhY3RpdmUiIGJvb2xlYW4gdG8KCSAgTmV0VGltZVByb3ZpZGVyLCBwcmVzZXJ2aW5nIGJpbmFyeSBjb21wYXQuCgoyMDA1LTEyLTEyIDE0OjQ2OjA2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICB0ZXN0cy9leGFtcGxlcy86IGNvbnZlcnQgY29tbWVudHMgYWdhaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvZXhhbXBsZXMvY29udHJvbGxlci9hdWRpby1leGFtcGxlLmM6IChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkgIGNvbnZlcnQgY29tbWVudHMgYWdhaW4KCjIwMDUtMTItMTIgMTQ6NDM6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzogRml4IHR5cG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJICBGaXggdHlwby4KCjIwMDUtMTItMTIgMTQ6NDI6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZvcmdvdCB0aGUgQ2hhbmdlbG9nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgdGhlIENoYW5nZWxvZy4uLgoKMjAwNS0xMi0xMiAxNDo0MTowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBzeW1ib2wgdG8gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgQWRkZWQgbmV3IHN5bWJvbCB0byBkb2NzLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfcXVlcnkpLCAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX3BlcmZvcm1fc2VlayksIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9ldmVudCksIChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZV9zcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlX3NyY19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc3JjX3dhaXQpLCAoZ3N0X2Jhc2Vfc3JjX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc3JjX3VwZGF0ZV9sZW5ndGgpLCAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSksIChnc3RfYmFzZV9zcmNfc3RhcnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIEltcGxlbWVudCBzZWVraW5nIHRvIG90aGVyIGZvcm1hdHMgdGhhbiBfQllURVMuCgkgIEltcGxlbWVudCBtb3JlIHNlZWtpbmcgbWV0aG9kcyBjb3JyZWN0bHkuCgkgIERvYyB1cGRhdGVzLgoJICBBZGRlZCBxdWVyeSB2bWV0aG9kLgoJICBBZGRlZCBkb19zZWVrIHZtZXRob2QgdG8gbWFrZSBsaWZlIGVhc2llciBmb3Igc3ViY2xhc3NlcwoJICB3aGVuIHNlZWtpbmcuCgkgIEFQSSBhZGRpdGlvbjogZ3N0X2Jhc2Vfc3JjX3NldF9mb3JtYXQoKQoKMjAwNS0xMi0xMiAxNDowODowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgdGVzdHMvZXhhbXBsZXMvTWFrZWZpbGUuYW06IGFkZGVkIHRoYXQgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICBhZGRlZCB0aGF0IHRvbwoKMjAwNS0xMi0xMiAxNDowMjoxOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYXBwbGllZCBzb21lIHNpbXBsZSBmaXhpbmcgdG8gc29tZSBleGFtcGxlcyByZS1lbmFibGVkIHRoZSB3b3JraW5nIGV4YW1wbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBkb2NzL3JhbmRvbS9lbnNvbmljL21lZGlhLWRldmljZS1kYWVtb24udHh0OgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOiAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL2hlbGxvd29ybGQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL2xhdW5jaC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzogKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvbWV0YWRhdGEvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6IChtZXNzYWdlX2xvb3ApLAoJICAobWFrZV9waXBlbGluZSksIChwcmludF90YWcpLCAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMvcXVldWUvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9leGFtcGxlcy9xdWV1ZS9xdWV1ZS5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy90eXBlZmluZC8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL3R5cGVmaW5kL3R5cGVmaW5kLmM6ICh0eXBlX2ZvdW5kKSwgKGV2ZW50X2xvb3ApLAoJICAobWFpbik6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2V4YW1wbGVzL3htbC9jcmVhdGV4bWwuYzogKG9iamVjdF9zYXZlZCksIChtYWluKToKCSAgKiB0ZXN0cy9leGFtcGxlcy94bWwvcnVueG1sLmM6ICh4bWxfbG9hZGVkKSwgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9UT0RPOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9oZWxsb3dvcmxkLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL2hlbGxvd29ybGQvaGVsbG93b3JsZC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9sYXVuY2gvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy9sYXVuY2gvbXAzcGFyc2VsYXVuY2guYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbGF1bmNoL21wM3BsYXk6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWV0YWRhdGEvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzoKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcXVldWUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3R5cGVmaW5kLy5jdnNpZ25vcmU6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3R5cGVmaW5kL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL29sZC9leGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkgICogdGVzdHMvb2xkL2V4YW1wbGVzL3htbC9ydW54bWwuYzoKCSAgYXBwbGllZCBzb21lIHNpbXBsZSBmaXhpbmcgdG8gc29tZSBleGFtcGxlcwoJICByZS1lbmFibGVkIHRoZSB3b3JraW5nIGV4YW1wbGVzCgoyMDA1LTEyLTEyIDEyOjQ4OjM1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuYzogQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0c2VnbWVudC5jOiAoZ3N0X3NlZ21lbnRfaW5pdCksCgkgIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSk6CgkgIEFkZGVkIG1vcmUgZG9jdW1lbnRhdGlvbi4KCSAgTWFrZSBzdXJlIHRoZSBsYXN0X3BvcyB2YWx1ZSBpcyB1cGRhdGVkIHByb3Blcmx5LgoJICBNYWtlIHN1cmUgdG9fc3RyZWFtX3RpbWUgYW5kIHRvX3J1bm5pbmdfdGltZSBkb24ndAoJICBvcGVyYXRlIG9uIHdyb25nIHZhbHVlcy4KCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVcGRhdGUgY2hlY2suCgoyMDA1LTEyLTEyIDEyOjMyOjA0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBOb3cgdGhhdCB3ZSdyZSBub3QgbGVha2luZyBmYWN0b3JpZXMsIG1ha2Ugc3VyZSB3ZSBrZWVwIHJlZmVyZW5jZXMgdG8gdGhlbSB3aGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZyZWVfZW50cnkpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgTm93IHRoYXQgd2UncmUgbm90IGxlYWtpbmcgZmFjdG9yaWVzLCBtYWtlIHN1cmUgd2Uga2VlcCByZWZlcmVuY2VzCgkgIHRvIHRoZW0gd2hpbGUgd2UgbmVlZCB0aGVtLgoKMjAwNS0xMi0xMiAxMTo0MDoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDogaWZkZWYgb3V0IHRoZSBYTUwgc3RydWN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9nc3Qvc3RydWN0X2kzODYuaDoKCSAgaWZkZWYgb3V0IHRoZSBYTUwgc3RydWN0cwoKMjAwNS0xMi0xMiAxMDo1OToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYzogZmxvb3IgaXMgbm90IG5lZWRlZCwgRiBpcyBhbHdheXMgcG9zaXRpdmU7IHRoaXMgb2J2aWF0ZXMgdGhlIG5lZWQgZm9yIGFkZGluZyAtbG0gd2hlbiBidWlsZGluZyB3aXRob3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfdHJhbnNmb3JtX2RvdWJsZV9mcmFjdGlvbik6CgkgIGZsb29yIGlzIG5vdCBuZWVkZWQsIEYgaXMgYWx3YXlzIHBvc2l0aXZlOyB0aGlzIG9idmlhdGVzIHRoZQoJICBuZWVkIGZvciBhZGRpbmcgLWxtIHdoZW4gYnVpbGRpbmcgd2l0aG91dCBsaWJ4bWwKCjIwMDUtMTItMTIgMTA6NTc6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vYXNwZWN0cmF0aW86CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidXMuYzoKCSAgYWRkIGEgOyBhbmQgYW4gZXhhbXBsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgOyBhbmQgYW4gZXhhbXBsZQoKMjAwNS0xMi0xMiAxMDoxNjoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVGFrZSBjdXJyZW50IHBsYXliYWNrIHJhdGUgaW50byBhY2NvdW50IHdoZW4gcmVwb3J0aW5nIHRoZSBwb3NpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBUYWtlIGN1cnJlbnQgcGxheWJhY2sgcmF0ZSBpbnRvIGFjY291bnQgd2hlbiByZXBvcnRpbmcKCSAgdGhlIHBvc2l0aW9uLgoKMjAwNS0xMi0xMSAxOTozNTowMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOiBMZXQncyB0cnkgdGhpcyBhZ2FpbiwgdGhpcyB0aW1lIHdpdGggYSBmaWxlIHRoYXQgaXMgYWN0dWFsbHkgaW4gWEZpZyBmb3JtYXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOgoJICBMZXQncyB0cnkgdGhpcyBhZ2FpbiwgdGhpcyB0aW1lIHdpdGggYSBmaWxlIHRoYXQgaXMKCSAgYWN0dWFsbHkgaW4gWEZpZyBmb3JtYXQuCgoyMDA1LTEyLTExIDE5OjE5OjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6IEFkZCBhdWRpb2NvbnZlcnQgZWxlbWVudCB0byBkaWFncmFtIHNvIHRoYXQgaXQgbWF0Y2hlcyB0aGUgdGV4dCBhbmQgdGhlIGNvZGUgKGZpeGVzICMzMTk1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL21pbWUtd29ybGQuZmlnOgoJICBBZGQgYXVkaW9jb252ZXJ0IGVsZW1lbnQgdG8gZGlhZ3JhbSBzbyB0aGF0IGl0CgkgIG1hdGNoZXMgdGhlIHRleHQgYW5kIHRoZSBjb2RlIChmaXhlcyAjMzE5NTI2KS4KCjIwMDUtMTItMTEgMTg6MjQ6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL3B3Zy86IFVwZGF0ZSBzdGF0ZSBjaGFuZ2Ugc3R1ZmYgZm9yIDAuMTAgKGZpeGVzICMzMjI5NjkpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1jaGFpbmZuLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgICogZG9jcy9wd2cvb3RoZXItc291cmNlLnhtbDoKCSAgVXBkYXRlIHN0YXRlIGNoYW5nZSBzdHVmZiBmb3IgMC4xMCAoZml4ZXMgIzMyMjk2OSkuCgoyMDA1LTEyLTExIDE3OjQ5OjEwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBVcGRhdGUgZm9yIDAuMTA6IHMvMC45LzAuMTAvOyBzL2F1ZGlvc2NhbGUvYXVkaW9yc2FtcGxlLzsgYWRkIGNvbnZlcnRlcnMgaW4gZnJvbnQgb2YgcGlwZWxpbmVzOyByZW1vdmUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtcHJvZ3JhbXMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9oaWdobGV2ZWwtY29tcG9uZW50cy54bWw6CgkgICogZG9jcy9tYW51YWwvbWFudWFsLnhtbDoKCSAgVXBkYXRlIGZvciAwLjEwOiBzLzAuOS8wLjEwLzsgcy9hdWRpb3NjYWxlL2F1ZGlvcnNhbXBsZS87CgkgIGFkZCBjb252ZXJ0ZXJzIGluIGZyb250IG9mIHBpcGVsaW5lczsgcmVtb3ZlIGN1cmx5CgkgIGJyYWNrZXRzIGZvciB0aHJlYWRzIHN0dWZmLCB0aGV5IG5vIGxvbmdlciBleGlzdDsgdXNlCgkgIEdTVF9UWVBFX0ZSQUNUSU9OIGZvciBmcmFtZXJhdGVzOyB1cGRhdGUgc29tZSBwaWVjZXMgb2YKCSAgY29kZSB0byAwLjEwLCBidXQgdGhlcmUncyBwbGVudHkgbW9yZSB0byBkby4KCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgRXhwYW5kIG9uIGFzeW5jaHJvbmVvdXMgc3RhdGUgY2hhbmdlczsgcy8wLjkvMC4xMC87CgkgIG1lbnRpb24gZGlzYXBwZWFyYW5jZSBvZiBnc3RfaW5pdF9nZXRfcG9wdF90YWJsZSgpCgkgIChmaXhlcyAjMzIyOTE2KS4KCjIwMDUtMTItMTEgMTE6NTM6NTYgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2ZhcS91c2luZy54bWw6IFNwaWRlciBubyBsb25nZXIgZXhpc3RzLCBhbmQgbmVpdGhlciBkb2VzIGdzdC1sYXVuY2gtZXh0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS91c2luZy54bWw6CgkgIFNwaWRlciBubyBsb25nZXIgZXhpc3RzLCBhbmQgbmVpdGhlciBkb2VzIGdzdC1sYXVuY2gtZXh0LgoJICBVcGRhdGUgZXhhbXBsZXMgdG8gdXNlIGRlY29kZWJpbiBhbmQgcGxheWJpbiBhbmQgcHV0CgkgIGNvbnZlcnRlcnMgaW4gZnJvbnQgb2Ygc2lua3MgKGZpeGVzICMzMjM3MjYpLgoKMjAwNS0xMi0wOSAxNzoyNjozMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogRml4IGxlYWtpbmcgZWxlbWVudCBmYWN0b3JpZXMgaW4gdHlwZWZpbmRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmaW5kX3BlZWspLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKToKCSAgRml4IGxlYWtpbmcgZWxlbWVudCBmYWN0b3JpZXMgaW4gdHlwZWZpbmRpbmcuCgkgIEZpeCBwcm9ibGVtIHdoZXJlIHdlIGZvcmdvdCBhYm91dCBhIHByb2JhYmxlIHR5cGUgb24gbm9uLXNlZWthYmxlCgkgIGZpbGVzLCBhbmQgdGh1cyBsYXRlciBtaXMtdHlwZWZvdW5kIGl0LgoKMjAwNS0xMi0wOSAxNTowOTo0MiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgUmVtb3ZlIG1ha2Vjb250ZXh0IHN0dWZmOyBub3QgdXNlZCBpbiAwLjEwIGFuZCBjYXVzZXMgcHJvYmxlbXMgb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL200L2dzdC1tYWtlY29udGV4dC5tNDoKCSAgKiBjb21tb24vbTQvZ3N0LW1jc2MubTQ6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIFJlbW92ZSBtYWtlY29udGV4dCBzdHVmZjsgbm90IHVzZWQgaW4gMC4xMCBhbmQgY2F1c2VzIHByb2JsZW1zIG9uCgkgIEhQVVggYWNjb3JkaW5nIHRvIGJ1ZyAjMzIyNDQxCgoyMDA1LTEyLTA3IDE5OjAzOjU0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGRlZCBBQkkgY2hlY2sgZm9yIGxpYnMsIHRoaXMgdGltZSBmb3IgcmVhbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL2xpYnNhYmkuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdGFiaV9zdWl0ZSksCgkgIChtYWluKToKCSAgKiB0ZXN0cy9jaGVjay9saWJzL3N0cnVjdF9pMzg2Lmg6CgkgIEFkZGVkIEFCSSBjaGVjayBmb3IgbGlicywgdGhpcyB0aW1lIGZvciByZWFsCgoyMDA1LTEyLTA3IDE5OjAzOjA4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvY2hlY2svOiBBZGRlZCBBQkkgY2hlY2sgZm9yIGxpYnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgICogdGVzdHMvY2hlY2svbGlicy9saWJzYWJpLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RhYmlfc3VpdGUpLAoJICAobWFpbik6CgkgICogdGVzdHMvY2hlY2svbGlicy9zdHJ1Y3RfaTM4Ni5oOgoJICBBZGRlZCBBQkkgY2hlY2sgZm9yIGxpYnMKCjIwMDUtMTItMDcgMTc6NTk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbTogQW5kIGFkZCB0aGUgc3RydWN0X2kzODYuaCB0byBkaXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgQW5kIGFkZCB0aGUgc3RydWN0X2kzODYuaCB0byBkaXN0LgoKMjAwNS0xMi0wNyAxNzozNjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRlc3RzL2NoZWNrLzogQWRkZWQgY2hlY2sgZm9yIEFCSSBjb21wYXRpYmlsaXR5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YWJpLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RhYmlfc3VpdGUpLAoJICAobWFpbik6CgkgICogdGVzdHMvY2hlY2svZ3N0L3N0cnVjdF9pMzg2Lmg6CgkgIEFkZGVkIGNoZWNrIGZvciBBQkkgY29tcGF0aWJpbGl0eS4KCjIwMDUtMTItMDcgMTU6MzM6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogRml4IGJyb2tlbiBzeW5jIG9wdGlvbiwgZml4ZXMgIzMyMzI1OQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19nZXRfdGltZXMpLCAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgIEZpeCBicm9rZW4gc3luYyBvcHRpb24sIGZpeGVzICMzMjMyNTkKCjIwMDUtMTItMDcgMTU6MTY6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFNtYWxsIGRvY3MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIFNtYWxsIGRvY3MgdXBkYXRlLgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgIERvbid0IGFzc2VydCBvbiBOVUxMIDwtLT4gWC4gRml4ZXMgIzMyMzI2MAoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVwbGFjZSk6CgkgIElmIHdlJ3JlIGRvaW5nIGF0b21pYyBvcGVyYXRpb25zLCB3ZSBtaWdodCBqdXN0IGFzIHdlbGwgdXNlCgkgIHRoZSBwcm9wZXIgd2F5IHRvIGdldCBhbiBhdG9taWMgcG9pbnRlci4KCSAgKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIENsZWFuIHVwIGRlYnVnZ2luZy4KCjIwMDUtMTItMDcgMTE6NTI6MDUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IFJlbW92ZSBoYW5kbGluZyBvZiB7IH0gZm9yIHRocmVhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIFJlbW92ZSBoYW5kbGluZyBvZiB7IH0gZm9yIHRocmVhZHMuCgoyMDA1LTEyLTA2IDIzOjMyOjAxICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBzcGVsaW5nIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IHNwZWxpbmcgZml4LgoKMjAwNS0xMi0wNiAxOToyOToxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJKiBkb2NzL3JhbmRvbS9vbWVnYS90ZXN0aW5nL2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0eXBlZmluZC5jOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RmaWxlaW5kZXguYzoKCSogcGx1Z2lucy9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9taXhlci9taXhlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMveG1sL3J1bnhtbC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvbm9ybWFsaXNhdGlvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2RlYnVnL2dsb2JhbC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhcnNlL3BhcnNlMS5jOgoJKiB0b29scy9nc3QteG1saW5zcGVjdC5jOgoJKiB3aW4zMi9jb21tb24vZGlyZW50LmM6CgkgIGV4cGFuZCB0YWJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBleHBhbmQgdGFicwoKMjAwNS0xMi0wNiAxOTowNDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGJhY2sgdG8gY3ZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBiYWNrIHRvIGN2cwoKMjAwNS0xMi0wNSAxODoxMzowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjEwLjAgPT09CgoyMDA1LTEyLTA1IDE4OjA1OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVlbGVtZW50cy54bWw6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0L3BsdWdpbi1jb3JlaW5kZXhlcnMueG1sOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjEwLjAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbGVhc2luZyAwLjEwLjAKCjIwMDUtMTItMDUgMTU6NTc6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9iZy5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogcG8vemhfQ04ucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTItMDUgMTQ6MzY6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcG8vOiBhZGRlZCBDaGluZXNlIChUcmFkaXRpb25hbCkgdHJhbnNsYXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHN1Ym1pdHRlZCBieTogRnVuZGEgV2FuZyA8ZnVuZGF3YW5nQGxpbnV4Lm5ldC5jbj4KCSAgKiBwby9MSU5HVUFTOgoJICAqIHBvL3poX0NOLnBvOgoJICBhZGRlZCBDaGluZXNlIChUcmFkaXRpb25hbCkgdHJhbnNsYXRpb24KCjIwMDUtMTItMDUgMTQ6MTQ6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkgIHVwZGF0ZWQgQWZyaWthYW5zIHRyYW5zbGF0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIEFmcmlrYWFucyB0cmFuc2xhdGlvbgoKMjAwNS0xMi0wNSAxNDoxNDowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHJlbW92ZSBkZXByZWNhdGlvbiBndWFyZCBmcm9tIGRvY3N0cmluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGRlcHJlY2F0aW9uIGd1YXJkIGZyb20gZG9jc3RyaW5nCgoyMDA1LTEyLTA1IDEzOjEwOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0cmFuc2xhdGlvbnMKCjIwMDUtMTItMDUgMTM6MDY6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL3JhbmRvbS90aG9tYXN2cy9UT0RPOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkgIGZpeCBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcwoKMjAwNS0xMi0wNSAxMzowMTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbUBmbHVlbmRvLmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMi0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgcGF0Y2ggYnk6IFdpbSBUYXltYW5zIDx3aW1AZmx1ZW5kby5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9wcmVwYXJlX291dHB1dF9idWYpCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmMgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyk6IENhbGwKCSAgYWxsb2NfYnVmZmVyX2FuZF9zZXRfY2Fwcy4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKTogQ2hhbmdlZCB0byBub3QgY2FsbAoJICBzZXRfY2FwcyBvbiB0aGUgc291cmNlIHBhZC4KCSAgKGdzdF9wYWRfYWxsb2NfYnVmZmVyX2FuZF9zZXRfY2Fwcyk6IE5ldyBmdW5jdGlvbiwgZG9lcyB3aGF0CgkgIGFsbG9jX2J1ZmZlciB1c2VkIHRvIGRvLiBGaXhlcyAjMzIyODc0LgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtbmVnb3RpYXRpb24ueG1sOiBVcGRhdGUgZm9yIHRoZSBhbGxvY19idWZmZXIKCSAgY2hhbmdlcy4KCjIwMDUtMTItMDUgMTI6MzM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHV0aWxzLmM6CgkgIHJlYWxseSBhZGQgdGhlIHRlc3RzIGZvciB0aGUgNjQvZG91YmxlIGNvbnZlcnNpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlYWxseSBhZGQgdGhlIHRlc3RzIGZvciB0aGUgNjQvZG91YmxlIGNvbnZlcnNpb24KCjIwMDUtMTItMDUgMTI6MDk6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdGNvbnRyb2xsZXIuZGVmOgoJICBhZGQgZGVmIGZvciBjb250cm9sbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgZGVmIGZvciBjb250cm9sbGVyCgoyMDA1LTEyLTA1IDEyOjA5OjAxICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIHdpbjMyLzogd2luMzIgYnVpbGQgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBTZWJhc3RpZW4gTW91dHRlCgkgICogd2luMzIvTUFOSUZFU1Q6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb250cm9sbGVyLmRzcDoKCSAgd2luMzIgYnVpbGQgZml4ZXMKCjIwMDUtMTItMDUgMTA6NTk6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBCYWNrIG91dCBwcmV2aW91cyBjb2RlIGNoYW5nZXMsIGxlYXZlIGRvYyB1cGRhdGVzLCBmaWxlIGJ1Z3MgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2lzX2VxdWFsKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlX3NyY19jcmVhdGUpOgoJICBCYWNrIG91dCBwcmV2aW91cyBjb2RlIGNoYW5nZXMsIGxlYXZlIGRvYyB1cGRhdGVzLCBmaWxlIGJ1Z3MKCSAgaW5zdGVhZC4KCjIwMDUtMTItMDUgMTA6Mjc6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuKjogRml4IGJyb2tlbiBzeW5jIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2Vfc3JjX2dldF90aW1lcyksIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgRml4IGJyb2tlbiBzeW5jIGNvZGUuCgoyMDA1LTEyLTA1IDEwOjIyOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNhcHMuYzogQ29tcGFyaW5nIE5VTEwgYWdhaW5zdCAhTlVMTCB5aWVsZHMgZGlmZmVyZW50IGNhcHMsIG5vdCBhIGZhaWx1cmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pc19lcXVhbCk6CgkgIENvbXBhcmluZyBOVUxMIGFnYWluc3QgIU5VTEwgeWllbGRzIGRpZmZlcmVudCBjYXBzLCBub3QgYQoJICBmYWlsdXJlLgoKMjAwNS0xMi0wNSAxMDoxODoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBGaXggc21hbGwgdHlwbyBpbiBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgRml4IHNtYWxsIHR5cG8gaW4gZG9jcy4KCjIwMDUtMTItMDUgMDk6NTM6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jIChpbml0X3Bvc3QpOiByZW1vdmUgaGFyZC1jb2RlZCAwLjkgbG9jYXRpb24gZm9yIHJlZ2lzdHJpZXMvcGx1Z2lucyB3aXRoIGEgTUFKT1JNSU5PUiBvbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEyLTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBwYXRjaCBieTogVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0LmMgKGluaXRfcG9zdCk6IHJlbW92ZSBoYXJkLWNvZGVkIDAuOSBsb2NhdGlvbiBmb3IKCSAgcmVnaXN0cmllcy9wbHVnaW5zIHdpdGggYSBNQUpPUk1JTk9SIG9uZS4KCSAgKHBsdWdpbl9kZXNjKTogUmVuYW1lIGxpYnJhcnkgZnJvbSBnc3Rjb3JlbGVlbWVudHMgdG8KCSAgc3RhdGljZWxlbWVudHMuIEZpeGVzICMzMjMyMjIuCgoyMDA1LTEyLTA1IDA5OjQ1OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBDaGFuZ2UgZGVidWcgY2F0ZWdvcnkgdG8gJ2NvbGxlY3RwYWRzJyBmcm9tICdjb2xsZWN0X3BhZHMnIChmaXhlcyAjMzIzMjUwKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpOgoJICBDaGFuZ2UgZGVidWcgY2F0ZWdvcnkgdG8gJ2NvbGxlY3RwYWRzJyBmcm9tICdjb2xsZWN0X3BhZHMnCgkgIChmaXhlcyAjMzIzMjUwKS4KCjIwMDUtMTItMDQgMTk6NTc6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHJlbmFtZSB0d28gZXhwb3J0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVuYW1lIHR3byBleHBvcnRzCgoyMDA1LTEyLTA0IDE4OjU0OjE5ICswMDAwICBTZWJhc3RpZW4gTW91dHRlIDxzZWJhc3RpZW5AbW91dHRlLm5ldD4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiB1c2UgY29udmVydCBmdW5jdGlvbiBmb3IgdWludDY0L2RvdWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcGF0Y2ggYnk6IFNlYmFzdGllbiBNb3V0dGUKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgdXNlIGNvbnZlcnQgZnVuY3Rpb24gZm9yIHVpbnQ2NC9kb3VibGUKCSAgKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIGxpbmsgdG8gR0xpYgoKMjAwNS0xMi0wNCAwOTo1NzoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgdGVzdHMgdGhhdCBzZWVtIHRvIHNob3cgdGhhdCB0aGUgZ3VpbnQ2NC9nZG91YmxlIGNvbnZlcnNpb25zIGFyZSBjb3JyZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2d1aW50NjRfdG9fZ2RvdWJsZSksCgkgIChnc3RfdXRpbF9nZG91YmxlX3RvX2d1aW50NjQpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF91dGlsc19zdWl0ZSk6CgkgIGFkZCB0ZXN0cyB0aGF0IHNlZW0gdG8gc2hvdyB0aGF0IHRoZSBndWludDY0L2dkb3VibGUgY29udmVyc2lvbnMKCSAgYXJlIGNvcnJlY3QuCgoyMDA1LTEyLTAyIDEyOjQ0OjUzICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgbWFrZSB2ZXJzaW9uIG51bWJlciBhIGxpdHRsZSBsZXNzIGhvcGVmdWxsCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIHZlcnNpb24gbnVtYmVyIGEgbGl0dGxlIGxlc3MgaG9wZWZ1bGwKCjIwMDUtMTItMDIgMTI6MzQ6NDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggZG9jcyBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfYWRkX3BhdGgpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICBGaXggZG9jcyBhZ2Fpbi4KCSAgUmVtb3ZlZCBvbGQgY29kZSBmcm9tIGdzdHJlZ2lzdHJ5eG1sLmMKCjIwMDUtMTItMDIgMTI6MTk6NTUgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXBkYXRpbmcgZ3N0cmVhbWVyIHNwZWMgZmlsZSBtYWtpbmcgaXQgMC4xMCByZWFkeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwZGF0aW5nIGdzdHJlYW1lciBzcGVjIGZpbGUgbWFraW5nIGl0IDAuMTAgcmVhZHkKCjIwMDUtMTItMDIgMTE6MzY6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogU21hbGwgY2xlYW51cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIFNtYWxsIGNsZWFudXAuCgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgQWRkIGRlYnVnIGxvZyBsaW5lLgoJICAqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgQWRkIEZJWE1FLgoKMjAwNS0xMi0wMiAwOTo0ODoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi86IHJlbmFtZWQgY29yZSBlbGVtZW50cyBwbHVnaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvTUFOSUZFU1Q6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJICAqIHdpbjMyL3ZzNi9saWJnc3Rjb3JlZWxlbWVudHMuZHNwOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkgIHJlbmFtZWQgY29yZSBlbGVtZW50cyBwbHVnaW4KCjIwMDUtMTItMDIgMDE6MzU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgdG9vbHMvZ3N0LXJ1bi5jOiBkbyBwaWVjZS13aXNlIG1ham9yL21pbm9yIGNvbXBhcmlzb24gc28gMC45IDwgMC4xMCBhbHNvIGFsbG93IC5leGUgZXh0ZW5zaW9ucyBmb3IgdG9vbHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAoY29tcGFyZV9tYWpvcl9taW5vciksIChmaW5kX2hpZ2hlc3RfdmVyc2lvbiksCgkgIChnZXRfY2FuZGlkYXRlcyk6CgkgIGRvIHBpZWNlLXdpc2UgbWFqb3IvbWlub3IgY29tcGFyaXNvbiBzbyAwLjkgPCAwLjEwCgkgIGFsc28gYWxsb3cgLmV4ZSBleHRlbnNpb25zIGZvciB0b29scwoKMjAwNS0xMi0wMSAyMzo1NzowNyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2dzdC5jOiBFc2NhcGUgYSAlIHRvIG1ha2UgZ3RrZG9jIGhhcHBpZXI7IGJ1ZyAzMjI5NTguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgRXNjYXBlIGEgJSB0byBtYWtlIGd0a2RvYyBoYXBwaWVyOyBidWcgMzIyOTU4LgoKMjAwNS0xMi0wMSAxOToxODo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjkuNyA9PT0KCjIwMDUtMTItMDEgMTk6MTE6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ0hBTkdFUy0wLjk6CgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgcmVsZWFzaW5nIDAuOS43CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNpbmcgMC45LjcKCjIwMDUtMTItMDEgMTY6NTE6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvcmFuZG9tL3JlbGVhc2U6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vYmcucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJKiB3aW4zMi92czYvZ3N0X2xhdW5jaC5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkqIHdpbjMyL3ZzNy9HU3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWluc3BlY3QudmNwcm9qOgoJKiB3aW4zMi92czcvZ3N0LWxhdW5jaC52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9saWJnc3RiYXNlLnZjcHJvajoKCSAgYnVtcCBHU1RfTUFKT1JNSU5PUiB0byAwLjEwIHJlc2V0IGxpYnRvb2wgdmVyc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYnVtcCBHU1RfTUFKT1JNSU5PUiB0byAwLjEwCgkgIHJlc2V0IGxpYnRvb2wgdmVyc2lvbgoKMjAwNS0xMi0wMSAxNToyODoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0b29scy9nc3QtZmVlZGJhY2stMC43OgoJICByZW1vdmUgb2xkIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvbGQgZmlsZQoKMjAwNS0xMi0wMSAxNToxODo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTEyLTAxIDE1OjA4OjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogcG8vTElOR1VBUzoKCSogcG8vYmcucG86CgkgIEFkZGVkIEJ1bGdhcmlhbiB0cmFuc2xhdGlvbiBieSAoQWxleGFuZGVyIFNob3BvdikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIEJ1bGdhcmlhbiB0cmFuc2xhdGlvbiBieSAoQWxleGFuZGVyIFNob3BvdikKCjIwMDUtMTItMDEgMTU6MDQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QtYnVpbGQuc3RhbXA6CgkgIGNvbW1pdCBmaW5hbCBzdGFtcCBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21taXQgZmluYWwgc3RhbXAgZmlsZQoKMjAwNS0xMi0wMSAxNDo1MTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaGllcmFyY2h5OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuaW50ZXJmYWNlczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnByZXJlcXVpc2l0ZXM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgYWRkIG1vcmUgZmlsZXMgZm9yIGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgZmlsZXMgZm9yIGRpc3RjaGVjawoKMjAwNS0xMi0wMSAxNDo0MDo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMuYXJnczoKCSogZG9jcy9wbHVnaW5zL2dzdHJlYW1lci1wbHVnaW5zLnNpZ25hbHM6CgkgIGFkZCBzaWduYWxzIGFuZCBhcmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc2lnbmFscyBhbmQgYXJncwoKMjAwNS0xMi0wMSAxMjozNjoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgZml4IHRlc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB0ZXN0CgoyMDA1LTEyLTAxIDEyOjI5OjM0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlcy5pbjoKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtZG9jcy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL3BsdWdpbnMvZ3N0cmVhbWVyLXBsdWdpbnMudHlwZXM6CgkqIGRvY3MvcGx1Z2lucy9pbnNwZWN0LnN0YW1wOgoJKiBkb2NzL3BsdWdpbnMvaW5zcGVjdC9wbHVnaW4tY29yZWVsZW1lbnRzLnhtbDoKCSogZG9jcy9wbHVnaW5zL2luc3BlY3QvcGx1Z2luLWNvcmVpbmRleGVycy54bWw6CgkqIGRvY3MvcGx1Z2lucy9zY2Fub2JqLWJ1aWxkLnN0YW1wOgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzoKCSAgZG9jdW1lbnQgY29yZSBwbHVnaW5zIGluIGEgc2VwYXJhdGUgZG9jdW1lbnQganVzdCBsaWtlIGFsbCB0aGUgb3RoZXJzIHJlbmFtZSB0aGVzZSBwbHVnaW5zIHRvIHNvbWV0aGluZyBzdGFydGluZyB3aXRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2N1bWVudCBjb3JlIHBsdWdpbnMgaW4gYSBzZXBhcmF0ZSBkb2N1bWVudCBqdXN0IGxpa2UgYWxsIHRoZQoJICBvdGhlcnMKCSAgcmVuYW1lIHRoZXNlIHBsdWdpbnMgdG8gc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggY29yZQoKMjAwNS0xMi0wMSAxMjowMDo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGV2ZW50LmggKHN0cnVjdCBfR3N0RXZlbnQpOiBNZWFudCB0byByZW1vdmUgdGhlIGV4dHJhIHBhZGRpbmcgaGVyZSBiZWZvcmUsIGJ1dCBpdCBtaXNzZWQgdGhlIGNvbW1pdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTItMDEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKHN0cnVjdCBfR3N0RXZlbnQpOiBNZWFudCB0byByZW1vdmUgdGhlIGV4dHJhCgkgIHBhZGRpbmcgaGVyZSBiZWZvcmUsIGJ1dCBpdCBtaXNzZWQgdGhlIGNvbW1pdC4KCjIwMDUtMTItMDEgMTA6MDc6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkqIHdpbjMyL3ZzNi9nc3RyZWFtZXIuZHN3OgoJKiB3aW4zMi92czYvbGliZ3N0Y29udHJvbGxlci5kc3A6CgkgIGFkZCBsaWJnc3Rjb250cm9sbGVyIHRvIHRoZSBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGxpYmdzdGNvbnRyb2xsZXIgdG8gdGhlIGJ1aWxkCgoyMDA1LTEyLTAxIDA5OjU0OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOiB3aGl0ZXNwYWNlIHByaWNlcyBoYXZlIGNyYXNoZWQsIHdlIHNob3VsZCBmZWVsIGZyZWUgdG8gdXNlIHNvbWUgbm93IHVzZSBnc3RfZy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGludGVycG9sYXRpb24uYzoKCSAgd2hpdGVzcGFjZSBwcmljZXMgaGF2ZSBjcmFzaGVkLCB3ZSBzaG91bGQgZmVlbCBmcmVlIHRvIHVzZSBzb21lIG5vdwoJICB1c2UgZ3N0X2d1aW50NjRfdG9fZ2RvdWJsZQoKMjAwNS0xMi0wMSAwOTozMjoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc2luay5oOgoJICBmaXggdHlwbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHR5cG8KCjIwMDUtMTItMDEgMDk6MjM6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkgIHdyYXAgY29uZmlnLmggaW5jbHVkZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd3JhcCBjb25maWcuaCBpbmNsdWRlCgoyMDA1LTEyLTAxIDAyOjA4OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgdXBkYXRlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkb2NzCgoyMDA1LTEyLTAxIDAwOjU0OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBsdWdpbnMvZWxlbWVudHMvOiBtb3JlIGFuYWwgY2xlYW51cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzogKGdzdF9mZF9zaW5rX19iYXNlX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfX2NsYXNzX2luaXQpLCAoZ3N0X2ZkX3NpbmtfX2luaXQpLAoJICAoZ3N0X2ZkX3NpbmtfX2NoYWluKSwgKGdzdF9mZF9zaW5rX19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2ZkX3NpbmtfX2dldF9wcm9wZXJ0eSk6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6IChfZG9faW5pdCksIChnc3RfZmRfc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmRfc3JjX2NsYXNzX2luaXQpLCAoZ3N0X2ZkX3NyY19pbml0KSwgKGdzdF9mZF9zcmNfZGlzcG9zZSksCgkgIChnc3RfZmRfc3JjX3VwZGF0ZV9mZCksIChnc3RfZmRfc3JjX3N0YXJ0KSwgKGdzdF9mZF9zcmNfc3RvcCksCgkgIChnc3RfZmRfc3JjX3VubG9jayksIChnc3RfZmRfc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRfc3JjX2dldF9wcm9wZXJ0eSksIChnc3RfZmRfc3JjX2NyZWF0ZSksCgkgIChnc3RfZmRfc3JjX2lzX3NlZWthYmxlKSwgKGdzdF9mZF9zcmNfZ2V0X3NpemUpLAoJICAoZ3N0X2ZkX3NyY191cmlfZ2V0X3R5cGUpLCAoZ3N0X2ZkX3NyY191cmlfZ2V0X3Byb3RvY29scyksCgkgIChnc3RfZmRfc3JjX3VyaV9nZXRfdXJpKSwgKGdzdF9mZF9zcmNfdXJpX3NldF91cmkpLAoJICAoZ3N0X2ZkX3NyY191cmlfaGFuZGxlcl9pbml0KToKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2dldF90eXBlKToKCSAgbW9yZSBhbmFsIGNsZWFudXAKCjIwMDUtMTEtMzAgMTk6MzY6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgZml4IHRoZSBkb2NzIGJ1aWxkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdGhlIGRvY3MgYnVpbGQKCjIwMDUtMTEtMzAgMTk6MDM6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzLmluOgoJICBhZGQgbmV3IGlucHV0IHR5cGVzIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBuZXcgaW5wdXQgdHlwZXMgZmlsZQoKMjAwNS0xMS0zMCAxOTowMTo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB2YXJpb3VzIGZpeGVzIHRvIG1ha2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0LmM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJICAqIHRlc3RzL2JlbmNobWFya3MvbWFzcy1lbGVtZW50cy5jOgoJICAqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgdmFyaW91cyBmaXhlcyB0byBtYWtlCgkgIC0tZGlzYWJsZS1ubHMgLS1kaXNhYmxlLXJlZ2lzdHJ5IC0tZGlzYWJsZS1sb2Fkc2F2ZSAgICAgICAgICAgLS1kaXNhYmxlLXBhcnNlIC0tZGlzYWJsZS1nc3QtZGVidWcKCSAgd29yayBhbmQgZ2V0IHRoZSBjb3JlIC5zbyBkb3duIHRvIDM2MDQ0NCBieXRlcyBhZnRlciBzdHJpcHBpbmcKCjIwMDUtMTEtMzAgMTc6MDU6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBtb3ZlIGxvY2F0aW9uIG9mIHRlc3QgcmVnaXN0cnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgbG9jYXRpb24gb2YgdGVzdCByZWdpc3RyeQoKMjAwNS0xMS0zMCAxNjo0NTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTMwIDE2OjQ1OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL21pc2MvTWFrZWZpbGUuYW06CgkgIG1pc3NpbmcgbWFrZWZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1pc3NpbmcgbWFrZWZpbGUKCjIwMDUtMTEtMzAgMTY6NDM6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJICBwcnVuZSBlbXB0eSBkaXJzIHdoZW4gdXBkYXRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBydW5lIGVtcHR5IGRpcnMgd2hlbiB1cGRhdGluZwoKMjAwNS0xMS0zMCAxNjo0MjoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBET0NCVUlMRElORzoKCSogZG9jcy9SRUFETUU6CgkgIHJlbW92ZSBlbXB0eSBkaXJzOyBtb3ZlIGRvY2J1aWxkaW5nIG5vdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZW1wdHkgZGlyczsgbW92ZSBkb2NidWlsZGluZyBub3RlcwoKMjAwNS0xMS0zMCAxNjozOTowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkZXNjZW5kIGludG8gdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjOgoJICBkZXNjZW5kIGludG8gdGVzdHMKCSAgKiBkb2NzL3JhbmRvbS90aG9tYXN2cy9UT0RPOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL1JFQURNRToKCSAgYWRkIGEgUkVBRE1FCgoyMDA1LTExLTMwIDE2OjMyOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ2VuZXJpYy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9saWJzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0zMCAxNjozMDo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBSRUFETUU6CgkgIHVwZGF0ZSBSRUFETUUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBSRUFETUUKCjIwMDUtMTEtMzAgMTY6Mjk6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgZmFpbCBvbiBtaXNzaW5nIHJlZ2lzdHJ5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBmYWlsIG9uIG1pc3NpbmcgcmVnaXN0cnkKCjIwMDUtMTEtMzAgMTY6Mjg6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvUkVBRE1FLnR4dDoKCSAgYWRkIGEgUkVBRE1FCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBSRUFETUUKCjIwMDUtMTEtMzAgMTY6MjY6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB3aW4zMi9HU3RyZWFtZXIudmNwcm9qOgoJKiB3aW4zMi9NQU5JRkVTVDoKCSogd2luMzIvTWFrZWZpbGU6CgkqIHdpbjMyL01ha2VmaWxlLmluc3BlY3Q6CgkqIHdpbjMyL01ha2VmaWxlLmxhdW5jaDoKCSogd2luMzIvTWFrZWZpbGUucmVnaXN0ZXI6CgkqIHdpbjMyL1JFQURNRS50eHQ6CgkqIHdpbjMyL2dzdC1pbnNwZWN0LnZjcHJvajoKCSogd2luMzIvZ3N0LWxhdW5jaC52Y3Byb2o6CgkqIHdpbjMyL2dzdC1yZWdpc3Rlci52Y3Byb2o6CgkqIHdpbjMyL2dzdGVsZW1lbnRzLnZjcHJvajoKCSogd2luMzIvZ3N0Z2V0Yml0cy5kZWY6CgkqIHdpbjMyL2dzdGdldGJpdHMudmNwcm9qOgoJKiB3aW4zMi9nc3RyZWFtZXItZGJnLmRlZjoKCSogd2luMzIvZ3N0cmVhbWVyLmRlZjoKCSogd2luMzIvbGliZ3N0YmFzZS5kZWY6CgkqIHdpbjMyL2xpYmdzdGJhc2UudmNwcm9qOgoJKiB3aW4zMi9saW5rX29sZHJ1bnRpbWUuYzoKCSogd2luMzIvbW1hbi5jOgoJKiB3aW4zMi9tbWFuLmg6CgkqIHdpbjMyL21tYW4uaW5sOgoJKiB3aW4zMi9tc3ZjNzEuc2xuOgoJICBtb3ZlIGV2ZW4gbW9yZSBzdHVmZiwgd2luMzIvIGlzIG5pY2UgYW5kIGNsZWFuIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBldmVuIG1vcmUgc3R1ZmYsIHdpbjMyLyBpcyBuaWNlIGFuZCBjbGVhbiBub3cKCjIwMDUtMTEtMzAgMTY6MTc6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBsaWJzL2dzdC9jb250cm9sLy5naXRpZ25vcmU6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL2NvbmZpZy5oOgoJKiB3aW4zMi9kaXJlbnQuYzoKCSogd2luMzIvZGlyZW50Lmg6CgkqIHdpbjMyL2dzdGJ5dGVzdHJlYW0uZGVmOgoJKiB3aW4zMi9nc3RieXRlc3RyZWFtLnZjcHJvajoKCSogd2luMzIvZ3N0Y29uZmlnLmg6CgkqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9nc3RlbnVtdHlwZXMuaDoKCSogd2luMzIvZ3N0b3B0aW1hbHNjaGVkdWxlci52Y3Byb2o6CgkqIHdpbjMyL2dzdHZlcnNpb24uaDoKCSogd2luMzIvZ3RjaGFyLmg6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9iaW5zLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2J5dGVzdHJlYW0udmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvY2Fwcy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9jbGVhbnVwLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2Nsb2NrLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2RlYnVnLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2Rsb3Blbi52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9keW5wYXJhbXMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZWxlbWVudHMudmNwcm9qOgoJKiB3aW4zMi90ZXN0c3VpdGUvZ2hvc3RwYWRzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL2luZGV4ZXJzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL25lZ290aWF0aW9uLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3BhcnNlLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3BsdWdpbi52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9yZWZjb3VudGluZy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3N0YXRlcy52Y3Byb2o6CgkqIHdpbjMyL3Rlc3RzdWl0ZS90YWdzLnZjcHJvajoKCSogd2luMzIvdGVzdHN1aXRlL3RocmVhZHMudmNwcm9qOgoJICByZW1vdmUgb2xkIHdpbjMyIHN0dWZmIHRoYXQgaXNuJ3QgbWFpbnRhaW5lZCBhbmQgc2hvdWxkIGJlIHJlb3JnYW5pemVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIHdpbjMyIHN0dWZmIHRoYXQgaXNuJ3QgbWFpbnRhaW5lZCBhbmQgc2hvdWxkIGJlCgkgIHJlb3JnYW5pemVkCgoyMDA1LTExLTMwIDE2OjEyOjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZ3N0L2dldGJpdHMvLmdpdGlnbm9yZToKCSAgcmVtb3ZlIGdldGJpdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBnZXRiaXRzCgoyMDA1LTExLTMwIDE2OjEwOjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFJldmVydCBwcmV2aW91cyBwYXRjaCwgbWFrZXMgbG9hZGluZyB0aGUgZ3N0LmludGVyZmFjZXMgcHl0aG9uIG1vZHVsZSBib3JrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0zMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWMgKEdTVF9QS0dfREVQUyk6IFJldmVydCBwcmV2aW91cyBwYXRjaCwgbWFrZXMKCSAgbG9hZGluZyB0aGUgZ3N0LmludGVyZmFjZXMgcHl0aG9uIG1vZHVsZSBib3JrLgoJICAqIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogVXNlIGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYywKCSAgYXZhaWxhYmxlIHNpbmNlIEdMaWIgMi4yLiBGaXhlcyAjMzE4MDMxLgoKMjAwNS0xMS0zMCAxNjowODozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBjaGVjay8uZ2l0aWdub3JlOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiBjaGVjay9lbGVtZW50cy9mZHNyYy5jOgoJKiBjaGVjay9lbGVtZW50cy9pZGVudGl0eS5jOgoJKiBjaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIGNoZWNrL2dlbmVyaWMvc3RhdGVzLmM6CgkqIGNoZWNrL2dzdC1saWJzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogY2hlY2svZ3N0LWxpYnMvZ2RwLmM6CgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0b2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSogY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBjaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGNoZWNrL25ldC8uZ2l0aWdub3JlOgoJKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBjaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzoKCSogY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOgoJKiBjaGVjay9zdGF0ZXMvLmdpdGlnbm9yZToKCSogY2hlY2svc3RhdGVzL3NpbmtzLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2FwcHJlYWRlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2FwcHJlYWRlci9hcHByZWFkZXIuYzoKCSogZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogZXhhbXBsZXMvY3V0dGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL2N1dHRlci9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiBleGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmg6CgkqIGV4YW1wbGVzL2V2ZW50cy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvZXZlbnRzL3NlZWsuYzoKCSogZXhhbXBsZXMvaGVsbG93b3JsZC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9oZWxsb3dvcmxkL2hlbGxvd29ybGQuYzoKCSogZXhhbXBsZXMvaGVsbG93b3JsZDIvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvaGVsbG93b3JsZDIvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2hlbGxvd29ybGQyL2hlbGxvd29ybGQyLmM6CgkqIGV4YW1wbGVzL2xhdW5jaC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9sYXVuY2gvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL2xhdW5jaC9tcDNwYXJzZWxhdW5jaC5jOgoJKiBleGFtcGxlcy9sYXVuY2gvbXAzcGxheToKCSogZXhhbXBsZXMvbWFudWFsLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvbWFudWFsL2V4dHJhY3QucGw6CgkqIGV4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9tZXRhZGF0YS9yZWFkLW1ldGFkYXRhLmM6CgkqIGV4YW1wbGVzL21peGVyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL21peGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9taXhlci9taXhlci5jOgoJKiBleGFtcGxlcy9taXhlci9taXhlci5oOgoJKiBleGFtcGxlcy9waW5ncG9uZy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9waW5ncG9uZy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcGluZ3BvbmcvcGluZ3BvbmcuYzoKCSogZXhhbXBsZXMvcGx1Z2lucy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkqIGV4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3B3Zy9leHRyYWN0LnBsOgoJKiBleGFtcGxlcy9xdWV1ZS8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9xdWV1ZS9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcXVldWUvcXVldWUuYzoKCSogZXhhbXBsZXMvcXVldWUyLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3F1ZXVlMi9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvcXVldWUyL3F1ZXVlMi5jOgoJKiBleGFtcGxlcy9xdWV1ZTMvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcXVldWUzL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9xdWV1ZTMvcXVldWUzLmM6CgkqIGV4YW1wbGVzL3F1ZXVlNC8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9xdWV1ZTQvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3F1ZXVlNC9xdWV1ZTQuYzoKCSogZXhhbXBsZXMvcmV0YWcvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvcmV0YWcvTWFrZWZpbGUuYW06CgkqIGV4YW1wbGVzL3JldGFnL3JldGFnLmM6CgkqIGV4YW1wbGVzL3JldGFnL3RyYW5zY29kZS5jOgoJKiBleGFtcGxlcy90aHJlYWQvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMvdGhyZWFkL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy90aHJlYWQvdGhyZWFkLmM6CgkqIGV4YW1wbGVzL3R5cGVmaW5kLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL3R5cGVmaW5kL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy90eXBlZmluZC90eXBlZmluZC5jOgoJKiBleGFtcGxlcy94bWwvLmdpdGlnbm9yZToKCSogZXhhbXBsZXMveG1sL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy94bWwvY3JlYXRleG1sLmM6CgkqIGV4YW1wbGVzL3htbC9ydW54bWwuYzoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvUnVsZXM6CgkqIHRlc3RzdWl0ZS9jYXBzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2Fwcy9hcHBfZml4YXRlLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2F1ZGlvc2NhbGUuYzoKCSogdGVzdHN1aXRlL2NhcHMvY2Fwcy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzLmg6CgkqIHRlc3RzdWl0ZS9jYXBzL2NhcHNfc3RyaW5nczoKCSogdGVzdHN1aXRlL2NhcHMvY29tcGF0aWJpbGl0eS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9kZXNlcmlhbGl6ZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9lbnVtY2Fwcy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9lcmF0b3N0aGVuZXMuYzoKCSogdGVzdHN1aXRlL2NhcHMvZmlsdGVyY2Fwcy5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9maXhlZC5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9mcmFjdGlvbi1jb252ZXJ0LmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ZyYWN0aW9uLW11bHRpcGx5LWFuZC16ZXJvLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdDIuYzoKCSogdGVzdHN1aXRlL2NhcHMvaW50ZXJzZWN0aW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3JlbmVnb3RpYXRlLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3NldHMuYzoKCSogdGVzdHN1aXRlL2NhcHMvc2ltcGxpZnkuYzoKCSogdGVzdHN1aXRlL2NhcHMvc3RyaW5nLWNvbnZlcnNpb25zLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL3N0cnVjdHVyZS5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy9zdWJ0cmFjdC5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy91bmlvbi5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2RlYnVnL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZGVidWcvY2F0ZWdvcnkuYzoKCSogdGVzdHN1aXRlL2RlYnVnL2NvbW1hbmRsaW5lLmM6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9nbG9iYWwuYzoKCSogdGVzdHN1aXRlL2RlYnVnL291dHB1dC5jOgoJKiB0ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0c3VpdGUvZGxvcGVuLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9kbG9wZW4vTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9kbG9wZW4vZGxvcGVuX2dzdC5jOgoJKiB0ZXN0c3VpdGUvZGxvcGVuL2xvYWRnc3QuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2VsZW1lbnRzL2dzdC1pbnNwZWN0LWNoZWNrLmluOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvc3RydWN0X2kzODYuaDoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3N0cnVjdF9zaXplLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvaW5kZXhlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2luZGV4ZHVtcC5jOgoJKiB0ZXN0c3VpdGUvcGFyc2UvLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL3BhcnNlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcGFyc2UvcGFyc2UxLmM6CgkqIHRlc3RzdWl0ZS9wYXJzZS9wYXJzZTIuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL1JFQURNRToKCSogdGVzdHN1aXRlL3BsdWdpbi9keW5hbWljLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vbGlua2VkLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vbG9hZGluZy5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3JlZ2lzdHJ5LmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vc3RhdGljLmM6CgkqIHRlc3RzdWl0ZS9wbHVnaW4vc3RhdGljMi5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4uYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luMi5jOgoJKiB0ZXN0c3VpdGUvcGx1Z2luL3Rlc3RwbHVnaW4yX3MuYzoKCSogdGVzdHN1aXRlL3BsdWdpbi90ZXN0cGx1Z2luX3MuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2Jpbi5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudC5jOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudF9wYWQuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL21haW5sb29wLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9tZW0uYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL21lbS5oOgoJKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvb2JqZWN0LmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9wYWQuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3NjaGVkLmM6CgkqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy90aHJlYWQuYzoKCSogdGVzdHN1aXRlL3N0YXRlcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL2Jpbi5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOgoJKiB0ZXN0c3VpdGUvc3RhdGVzL3BhcmVudC5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy8xNTk1NjYuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvMTU5ODUyLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9xdWV1ZS5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy9zaWduYWxzLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3N0YXRpY3JlYy5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWQuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkYi5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRjLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGQuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkZS5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRmLmM6CgkqIHRlc3RzdWl0ZS90aHJlYWRzL3RocmVhZGcuYzoKCSogdGVzdHN1aXRlL3RocmVhZHMvdGhyZWFkaC5jOgoJKiB0ZXN0c3VpdGUvdGhyZWFkcy90aHJlYWRpLmM6CgkgIG1vdmUgYWxsIG9mIHRoZXNlIHVuZGVyIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGFsbCBvZiB0aGVzZSB1bmRlciB0ZXN0cwoKMjAwNS0xMS0zMCAxNTozNzozNiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBhZnRlciB0aG9tYXMncyBDVlMgc3VyZ2VyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGFmdGVyIHRob21hcydzIENWUyBzdXJnZXJ5CgoyMDA1LTExLTMwIDE1OjM0OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL2JlbmNobWFya3MvLmdpdGlnbm9yZToKCSogdGVzdHMvYmVuY2htYXJrcy9NYWtlZmlsZS5hbToKCSAgYWRkIE1ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgTWFrZWZpbGUuYW0KCjIwMDUtMTEtMzAgMTU6Mjk6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvTWFrZWZpbGUuYW06CgkgIGZpeCBkaXN0Y2hlY2sKCjIwMDUtMTEtMzAgMTU6MjA6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3Rpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jYXBzL3VuaW9uLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2Rlc2VyaWFsaXplLmM6CgkqIHRlc3RzdWl0ZS9jYXBzL2ludGVyc2VjdGlvbi5jOgoJKiB0ZXN0c3VpdGUvY2Fwcy91bmlvbi5jOgoJICBjb21waWxlIHdhcm5pbmcgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvbXBpbGUgd2FybmluZyBmaXhlcwoKMjAwNS0xMS0zMCAxMzoyODoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL2dzdC1jb21wcHJlcC1jaGVjay5pbjoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvZ3N0LWNvbXBwcmVwLWNoZWNrLmluOgoJICByZW1vdmUgY29tcHByZXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBjb21wcHJlcAoKMjAwNS0xMS0zMCAxMzoyNTowNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY29uZmlndXJlLmFjIChHU1RfUEtHX0RFUFMpOiBVc2UgZ21vZHVsZS1uby1leHBvcnQtMi4wLnBjLCBhdmFpbGFibGUgc2luY2UgR0xpYiAyLjIuIEZpeGVzICMzMTgwMzEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTMwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNvbmZpZ3VyZS5hYyAoR1NUX1BLR19ERVBTKTogVXNlIGdtb2R1bGUtbm8tZXhwb3J0LTIuMC5wYywKCSAgYXZhaWxhYmxlIHNpbmNlIEdMaWIgMi4yLiBGaXhlcyAjMzE4MDMxLgoKMjAwNS0xMS0zMCAxMzowODowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBGaXJzdCBwYXNzIGF0IGNsZWFuaW5nIHVwIHRlc3RzLyBkaXIgYmVmb3JlIG1vdmluZyB0aGUgcmVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogdGVzdHMvYmVuY2gtY29tcGxleGl0eS5zY206CgkgICogdGVzdHMvYmVuY2gtbWFzc19lbGVtZW50cy5zY206CgkgICogdGVzdHMvY29tcGxleGl0eS5jOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuZ251cGxvdDoKCSAgKiB0ZXN0cy9pbnN0YW50aWF0ZS8uY3ZzaWdub3JlOgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL2NhcHMuYzoKCSAgKiB0ZXN0cy9tYXNzX2VsZW1lbnRzLmM6CgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY206CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206CgkgICogdGVzdHMvcGxvdC1kYXRhOgoJICBGaXJzdCBwYXNzIGF0IGNsZWFuaW5nIHVwIHRlc3RzLyBkaXIgYmVmb3JlIG1vdmluZyB0aGUgcmVzdAoJICBDb21iaW5lZCB3aXRoIENWUyBzdXJnZXJ5CgoyMDA1LTExLTMwIDEzOjA3OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1vdmUgaW5jbHVkZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vdmUgaW5jbHVkZXMKCjIwMDUtMTEtMzAgMTE6NTU6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogUkVBRE1FOgoJICByZW1vdmUgbm9yd2VnaWFuaXNtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbm9yd2VnaWFuaXNtCgoyMDA1LTExLTMwIDEwOjUwOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJICBtYWtlIG5vdCBoYXZpbmcgY2hlY2sgbm9uLWZhdGFsIGZvciBleHRyYSB0YXJnZXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIG5vdCBoYXZpbmcgY2hlY2sgbm9uLWZhdGFsIGZvciBleHRyYSB0YXJnZXRzCgoyMDA1LTExLTMwIDEwOjE1OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHBvL1BPVEZJTEVTLmluOiBxdWV1ZSBoYXMgbW92ZWQsIHVwZGF0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwby9QT1RGSUxFUy5pbjoKCSAgcXVldWUgaGFzIG1vdmVkLCB1cGRhdGUKCjIwMDUtMTEtMzAgMTA6MTM6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSogd2luMzIvdnM2L2dzdF9pbnNwZWN0LmRzcDoKCSogd2luMzIvdnM2L2dzdF9sYXVuY2guZHNwOgoJKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RlbGVtZW50cy5kc3A6CgkqIHdpbjMyL3ZzNi9saWJnc3RyZWFtZXIuZHNwOgoJICBhZGQgc29tZSBleHBsaWNpdCBjYXN0cyB1cGRhdGUgZHNwIGZpbGVzOyBhbHNvIGluc3RhbGxzIHRoZSBkZWJ1ZyBidWlsZCBpbiBcZ3N0cmVhbWVyXGRlYnVnIHRvIHNlcGFyYXRlIGl0IGZyb20gdGhlIG4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzb21lIGV4cGxpY2l0IGNhc3RzCgkgIHVwZGF0ZSBkc3AgZmlsZXM7IGFsc28gaW5zdGFsbHMgdGhlIGRlYnVnIGJ1aWxkIGluIFxnc3RyZWFtZXJcZGVidWcgdG8gc2VwYXJhdGUgaXQgZnJvbSB0aGUgbm9uLWRlYnVnIGJ1aWxkCgoyMDA1LTExLTMwIDEwOjAzOjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgoyMDA1LTExLTMwIDA5OjU5OjA0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IHJlbW92ZSBkb3VibGUgZW50cmllcyBmcm9tIHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHJlbW92ZSBkb3VibGUgZW50cmllcyBmcm9tIHRoZSBkb2NzCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfaW5pdCk6CgkgIHJlbW92ZSB0aGUgVEhSRUFEIGRlYnVnIGNhdGVnb3J5CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3RxdWV1ZS5jOgoJICAqIGdzdC9nc3RxdWV1ZS5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfZ2V0X3R5cGUpLAoJICAoZ3N0X3F1ZXVlX2luaXQpLCAoZ3N0X3F1ZXVlX2ZpbmFsaXplKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpOgoJICBjb21wbGV0ZWx5IG1vdmUgcXVldWUgYW5kIGZpeCB1cCBkZWJ1Z2dpbmcgY2F0ZWdvcmllcwoKMjAwNS0xMS0zMCAwOTozODo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IG1ha2UgaW5pdGlhbGl6YXRpb24gcG9ydGFibGUsIHVzaW5nIExMIGlzIG5vdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgbWFrZSBpbml0aWFsaXphdGlvbiBwb3J0YWJsZSwgdXNpbmcgTEwgaXMgbm90CgoyMDA1LTExLTMwIDA5OjM2OjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgoyMDA1LTExLTMwIDA5OjMwOjUwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBzeW1ib2xzIHRvIGRlZiBmaWxlCgoyMDA1LTExLTMwIDA5OjI3OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDogYWRkIGxhcmdlIHBhZGRpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvY29tbW9uL2dzdGNvbmZpZy5oOgoJICBhZGQgbGFyZ2UgcGFkZGluZwoKMjAwNS0xMS0zMCAwOToyMjo0NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjogcmVuYW1lIHN5bWJvbHM7IHNvcnQgYmFzZSBzZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICByZW5hbWUgc3ltYm9sczsgc29ydCBiYXNlIHNlY3Rpb24KCjIwMDUtMTEtMzAgMDk6MTg6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IHJlbW92ZSBjcmFjayBub24tcG9ydGFibGUgaGFuZHJvbGxlZCBERUJVRyBtYWNybwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0zMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGRvX2xpbmVhcl9yZWdyZXNzaW9uKToKCSAgcmVtb3ZlIGNyYWNrIG5vbi1wb3J0YWJsZSBoYW5kcm9sbGVkIERFQlVHIG1hY3JvCgoyMDA1LTExLTMwIDA5OjEyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9yYW5kb20vcmVsZWFzZToKCSogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5jOgoJKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmg6CgkqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIHVwZGF0ZSB2aXN1YWwgc3R1ZGlvIGdlbmVyYXRlZCBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHZpc3VhbCBzdHVkaW8gZ2VuZXJhdGVkIGZpbGVzCgoyMDA1LTExLTMwIDA4OjU2OjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyL3ZzNi86IHVwZGF0ZSBwcm9qZWN0IGZpbGVzIGZvciBuZXcgbG9jYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0ZWxlbWVudHMuZHNwOgoJICB1cGRhdGUgcHJvamVjdCBmaWxlcyBmb3IgbmV3IGxvY2F0aW9ucwoKMjAwNS0xMS0zMCAwODo1Mjo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogcmVtb3ZlIHNvbWUgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIHJlbW92ZSBzb21lIGZpbGVzCgkgICogUkVBRE1FOgoJICByZWluc3RhdGUgYW5kIHVwZGF0ZQoJICAqIERFVkVMOgoJICAqIFJFUVVJUkVNRU5UUzoKCSAgcmVtb3ZlZAoJICAqIExJQ0VOU0U6CgkgICogZG9jcy9yYW5kb20vTElDRU5TRToKCSAgbW92ZWQgdG8gcmFuZG9tCgoyMDA1LTExLTMwIDA4OjM2OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgcHV0IHRoZSBSRUFETUUgYmFjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHV0IHRoZSBSRUFETUUgYmFjawoKMjAwNS0xMS0zMCAwODozMzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBUT0RPOgoJICBjbGVhbiB1cCBUT0RPCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBUT0RPCgoyMDA1LTExLTMwIDA4OjI5OjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGxpYnMvZXh0L01ha2VmaWxlLmFtOgoJICByZW1vdmluZyBleHQsIHdhcyBub3QgdXNlZCBhbnltb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmluZyBleHQsIHdhcyBub3QgdXNlZCBhbnltb3JlCgoyMDA1LTExLTI5IDIzOjU2OjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogRml4IG1lbW9yeSBsZWFrIGluIEdzdFR5cGVGaW5kRmFjdG9yeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6IChnc3RfdHlwZV9maW5kX3JlZ2lzdGVyKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6IChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfaW5pdCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZGlzcG9zZSk6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJICBGaXggbWVtb3J5IGxlYWsgaW4gR3N0VHlwZUZpbmRGYWN0b3J5LgoKMjAwNS0xMS0yOSAyMDoxNjo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZWQgdHJhbnNsYXRpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIHRyYW5zbGF0aW9ucwoKMjAwNS0xMS0yOSAxOTo0NzowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBtb3ZlIHF1ZXVlIGZyb20gY29yZSB0byB0aGUgZWxlbWVudHMgcGx1Z2luIMOnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIG1vdmUgcXVldWUgZnJvbSBjb3JlIHRvIHRoZSBlbGVtZW50cyBwbHVnaW4KCSAgw6cKCjIwMDUtMTEtMjkgMTk6NDQ6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLW5ldC11bmluc3RhbGxlZC5wYy5pbjoKCSAgdXBkYXRlIHVuaW5zdGFsbGVkIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdW5pbnN0YWxsZWQgcGMgZmlsZXMKCjIwMDUtMTEtMjkgMTk6Mzc6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2Jhc2UvOiBlbi1MQVJHRSB0aGUgcGFkZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOiBlbi1MQVJHRSB0aGUgcGFkZGluZy4KCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW4gKEdTVF9QQURESU5HX0xBUkdFKTogTmV3IGRlZmluZSwgdGhlIG51bWJlcgoJICBvZiBwb2ludGVycyBieSB3aGljaCB0byBwYWQgdmVyeSBleHRlbnNpYmxlIGJhc2UgY2xhc3NlcyAobGlrZSB0aGUKCSAgb25lcyBpbiBsaWJzL2dzdC9iYXNlKS4KCjIwMDUtMTEtMjkgMTk6MzQ6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IG1vdmluZyBkb2N1bWVudGF0aW9uIGZyb20gY29yZSB0byBsaWIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgbW92aW5nIGRvY3VtZW50YXRpb24gZnJvbSBjb3JlIHRvIGxpYgoKMjAwNS0xMS0yOSAxOToxMjozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9SRUFETUU6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogZ3N0L25ldC9nc3RuZXQuaDoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuaDoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcG8vUE9URklMRVMuaW46CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBDVlMgc3VyZ2VyeSArIHN1cHBvcnQgdG8gbW92ZSBiYXNlLCBjaGVjaywgYW5kIG5ldCBvdXQgb2YgZ3N0IGFuZCBpbnRvIGxpYnMvZ3N0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDVlMgc3VyZ2VyeSArIHN1cHBvcnQgdG8gbW92ZSBiYXNlLCBjaGVjaywgYW5kIG5ldCBvdXQgb2YgZ3N0CgkgIGFuZCBpbnRvIGxpYnMvZ3N0CgoyMDA1LTExLTI5IDE4OjU3OjU5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuaCAoc3RydWN0IF9Hc3RFdmVudCk6IE9ubHkgb25lIHBvaW50ZXIgb2YgcGFkZGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGV2ZW50LmggKHN0cnVjdCBfR3N0RXZlbnQpOiBPbmx5IG9uZSBwb2ludGVyIG9mIHBhZGRpbmcuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oIChzdHJ1Y3QgX0dzdFN0cnVjdHVyZSk6IE9ubHkgb25lIHBvaW50ZXIgb2YKCSAgcGFkZGluZy4KCSAgKiBnc3QvZ3N0cXVlcnkuaCAoc3RydWN0IF9Hc3RRdWVyeSk6IE9ubHkgb25lIHBvaW50ZXIgb2YgcGFkZGluZy4KCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOiBSZW1vdmUgYSBjb21tZW50IGluIFBsdWdpbkZlYXR1cmUuCgkgICogZ3N0L2dzdHBsdWdpbi5oIChzdHJ1Y3QgX0dzdFBsdWdpbkNsYXNzKTogQWRkIHNvbWUgcGFkZGluZy4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6IChzdHJ1Y3QgX0dzdE9iamVjdCk6IE9ubHkgb25lIHBvaW50ZXIgb2YKCSAgcGFkZGluZzsgcmVkdWNlcyBvYmplY3Qgc2l6ZSBieSBhYm91dCAzMCUuIFdlIGRvbid0IGV4cGVjdAoJICBhbnl0aGluZyBlbHNlIHRvIGdvIGludG8gZ3N0b2JqZWN0LgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmggKHN0cnVjdCBfR3N0TWluaU9iamVjdCkKCSAgKHN0cnVjdCBfR3N0TWluaU9iamVjdENsYXNzKTogT25seSBvbmUgcG9pbnRlciBvZiBwYWRkaW5nOyB0aGUKCSAgcGF5bG9hZCBpcyBvbmx5IGEgcG9pbnRlciBhbmQgdHdvIGludHMgYW55d2F5LiBGb3IgdGhlIGNsYXNzIHRoZXJlCgkgIGFyZSBvbmx5IHR3byBtZXRob2RzIGFzIHdlbGwuCgkgICogZ3N0L2dzdGVsZW1lbnQuaCAoc3RydWN0IF9Hc3RFbGVtZW50Q2xhc3MpOiBSZW1vdmVkCgkgIHRoZSBzdGF0ZV9jaGFuZ2VkIHNpZ25hbCBjYWxsYmFjaywgaXQgaXMgbm90IHVzZWQuCgoyMDA1LTExLTI5IDE4OjQ5OjE5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvLmdpdGlnbm9yZToKCSogY29tcG9uZW50cy9ib25vYm8tZ3N0bWVkaWFwbGF5L01ha2VmaWxlLmFtOgoJKiBjb21wb25lbnRzL2Jvbm9iby1nc3RtZWRpYXBsYXkvYm9ub2JvLWdzdG1lZGlhcGxheS11aS54bWw6CgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS9ib25vYm8tZ3N0bWVkaWFwbGF5LmM6CgkqIGNvbXBvbmVudHMvYm9ub2JvLWdzdG1lZGlhcGxheS9nc3RtZWRpYXBsYXkub2FmaW5mbzoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvTWFrZWZpbGUuYW06CgkqIGNvbXBvbmVudHMvYm9ub2JvLW1lZGlhL2Jvbm9iby1tZWRpYS1nc3RyZWFtZXItZmFjdG9yeS5jOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9ib25vYm8tbWVkaWEtZ3N0cmVhbWVyLmdvYjoKCSogY29tcG9uZW50cy9ib25vYm8tbWVkaWEvYm9ub2JvLW1lZGlhLWdzdHJlYW1lci5vYWZpbmZvOgoJKiBjb21wb25lbnRzL2Jvbm9iby1tZWRpYS9ib25vYm8tbWVkaWEtZ3N0cmVhbWVydmlkZW8uZ29iOgoJICB3aGFjayBhIG1vbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoYWNrIGEgbW9sZQoKMjAwNS0xMS0yOSAxODozODo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgdGhlc2UgZmlsZXMgd2VyZSBtb3ZlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdGhlc2UgZmlsZXMgd2VyZSBtb3ZlZAoKMjAwNS0xMS0yOSAxODoyMToxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6IGZpeCBpbmNsdWRlcywgdGhvdWdoIHRoZXkgYXJlIGEgbGl0dGxlIGRpbmt5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgZml4IGluY2x1ZGVzLCB0aG91Z2ggdGhleSBhcmUgYSBsaXR0bGUgZGlua3kKCjIwMDUtMTEtMjkgMTg6MTQ6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGxvb2sgaW4gdGhlIHJpZ2h0IHBsYWNlIGZvciBlbGVtZW50cywgYSBsb3QgbW9yZSBjaGFuY2Ugb2Ygc3VjY2VzcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgbG9vayBpbiB0aGUgcmlnaHQgcGxhY2UgZm9yIGVsZW1lbnRzLCBhIGxvdCBtb3JlIGNoYW5jZSBvZgoJICBzdWNjZXNzCgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICByZW1vdmUgaW5kZXhlcnMgYW5kIGVsZW1lbnRzIHN1YmRpcnMKCSAgKiBwbHVnaW5zL01ha2VmaWxlLmFtOgoJICBtYWtlIGluZGV4ZXJzIGNvbmRpdGlvbmFsCgoyMDA1LTExLTI5IDE4OjA4OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBsdWdpbnMvTWFrZWZpbGUuYW06CgkgIGFkZCBtaXNzaW5nIE1ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzc2luZyBNYWtlZmlsZS5hbQoKMjAwNS0xMS0yOSAxODowNDoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgZml4IGRvYyBidWlsZCBmb3Igc3R1ZmYgbW92ZWQgYXJvdW5kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jIGJ1aWxkIGZvciBzdHVmZiBtb3ZlZCBhcm91bmQKCjIwMDUtMTEtMjkgMTg6MDM6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBnc3QvaW5kZXhlcnMvLmdpdGlnbm9yZToKCSogZ3N0L2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIGdzdC9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJKiBnc3QvaW5kZXhlcnMvZ3N0bWVtaW5kZXguYzoKCSAgcmVtb3ZlIG1vdmVkIGRpcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBtb3ZlZCBkaXJzCgoyMDA1LTExLTI5IDE4OjAyOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9yZWdpc3RyaWVzLy5naXRpZ25vcmU6CgkqIGdzdC9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkgIHJlbW92ZSBlbXB0eSBkaXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZW1wdHkgZGlycwoKMjAwNS0xMS0yOSAxODowMDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkbyBDVlMgc3VyZ2VyeSBhbmQgcmVsYXRlZCBidWlsZCBmaXhlcnkgdG8gbW92ZSBlbGVtZW50cyBhbmQgaW5kZXhlcnMgaW4gYSBuZXcgZ3N0cmVhbWVyL3BsdWdpbnMgZGlyZWN0b3J5LCBvdXQgb2YgdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgICogY29uZmlndXJlLmFjOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkgICogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICAqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSAgKiBwbHVnaW5zL2luZGV4ZXJzL01ha2VmaWxlLmFtOgoJICBkbyBDVlMgc3VyZ2VyeSBhbmQgcmVsYXRlZCBidWlsZCBmaXhlcnkgdG8gbW92ZSBlbGVtZW50cwoJICBhbmQgaW5kZXhlcnMgaW4gYSBuZXcgZ3N0cmVhbWVyL3BsdWdpbnMgZGlyZWN0b3J5LCBvdXQgb2YgdGhlCgkgIGdzdC8gZGlyZWN0b3J5CgoyMDA1LTExLTI5IDE3OjQ3OjA2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBSZW5hbWUgZ3N0bmV0LXRlbXBuYW1lIHRvIGdzdG5ldC4gRml4ZXMgIzMyMjI1Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbTogUmVuYW1lIGdzdG5ldC10ZW1wbmFtZSB0byBnc3RuZXQuIEZpeGVzCgkgICMzMjIyNTcuCgoyMDA1LTExLTI5IDE3OjM1OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0xMS0yOSAxNzozMzo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgcmVtb3ZlIHNvbWUgbW9yZSBjb21wbGV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHNvbWUgbW9yZSBjb21wbGV0ZQoKMjAwNS0xMS0yOSAxNzozMjozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB0b29scy86IHJlbW92aW5nIC1jb21wcHJlcCBhbmQgLWNvbXBsZXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1jb21wbGV0ZS4xLmluOgoJICAqIHRvb2xzL2dzdC1jb21wbGV0ZS5jOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC4xLmluOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOgoJICByZW1vdmluZyAtY29tcHByZXAgYW5kIC1jb21wbGV0ZQoKMjAwNS0xMS0yOSAxNzoyMzo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZXZlbnQuKjogZml4ICMzMjA1MjkgLSBjbGVhbiB1cCBuZXdfc2VnbWVudCBBUEkgYW5kIHN0cnVjdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50KSwKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudCk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIGZpeCAjMzIwNTI5IC0gY2xlYW4gdXAgbmV3X3NlZ21lbnQgQVBJIGFuZCBzdHJ1Y3R1cmUuCgkgIExldCdzIGhvcGUgZXZlcnlvbmUgd2FzIHVzaW5nIHRoZSBtZXRob2RzLCBhbmQgbm90IHRoZSBzdHJ1Y3R1cmUuCgoyMDA1LTExLTI5IDE3OjEzOjQ0ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUHJvcGVybHkgaGFuZGxlIG5vbiBHU1RfRk9STUFUX1RJTUUgc2VnbWVudAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFByb3Blcmx5IGhhbmRsZSBub24gR1NUX0ZPUk1BVF9USU1FIHNlZ21lbnQKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV90cmFuc2Zvcm1faXApOgoJICBQcm9wZXJseSBoYW5kbGUgbm9uIEdTVF9GT1JNQVRfVElNRSBzZWdtZW50CgkgICogZ3N0L2dzdHNlZ21lbnQuYzoKCSAgVGhpcyBmdW5jdGlvbiBpcyB2YWxpZCBpZiB0aGUgYWNjdW11bGF0b3IgaXMgMCBhbmQgdGhlIGZvcm1hdAoJICBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcmVxdWVzdGVkIGZvcm1hdC4KCjIwMDUtMTEtMjkgMTU6NTA6NTAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogQWRkIGdzdF9xdWVyeV9uZXdfc2Vla2luZyBhbmQgZ3N0X3F1ZXJ5X3BhcnNlX3NlZWtpbmcgdG8gdGhlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZCBnc3RfcXVlcnlfbmV3X3NlZWtpbmcgYW5kIGdzdF9xdWVyeV9wYXJzZV9zZWVraW5nIHRvIHRoZQoJICBkb2NzLgoKMjAwNS0xMS0yOSAxNToxNTozOCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIEZpeCBjb25mbGljdCBtYXJrZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBjb25mbGljdCBtYXJrZXIKCjIwMDUtMTEtMjkgMTU6MTI6MjIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBUcmVhdCBhIHBhZCBhbGxvYyB3aXRoIG5ldyBjYXBzIHRoZSBzYW1lIGFzIGlmIHdlIHdlcmUgbm90IG5lZ290aWF0ZWQsIGluIG9yZGVyIHRvIGFsbG93Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBUcmVhdCBhIHBhZCBhbGxvYyB3aXRoIG5ldyBjYXBzIHRoZSBzYW1lIGFzIGlmIHdlIHdlcmUgbm90CgkgIG5lZ290aWF0ZWQsIGluIG9yZGVyIHRvIGFsbG93IGEgY2hhbmdpbmcgdXBzdHJlYW0gb3V0cHV0CgkgIHRvIHByb2R1Y2UgYSBuZXcgZm9ybWF0IG9mIGRhdGEuCgoyMDA1LTExLTI5IDE0OjQ3OjA3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBUaGUgZXZlbnQgdmlydHVhbCBtZXRob2QgaXMgbm93IHByb3Blcmx5IGltcGxlbWVudGVkLCB3aXRoIGEgZGVmYXVsdCBoYW5kbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnRmdW5jKToKCSAgVGhlIGV2ZW50IHZpcnR1YWwgbWV0aG9kIGlzIG5vdyBwcm9wZXJseSBpbXBsZW1lbnRlZCwgd2l0aCBhIGRlZmF1bHQKCSAgaGFuZGxlcgoJICBTdWIgY2xhc3NlcyBzaG91bGQgY2FsbCB0aGUgcGFyZW50X2NsYXNzIGV2ZW50IG1ldGhvZC4gVGhleSBzaG91bGQKCSAgcmV0dXJuIEZBTFNFIGlmIHRoZXkgaGFkIGEgcHJvYmxlbSBoYW5kbGluZyB0aGUgZ2l2ZW4gZXZlbnQsIG9yIGRvbid0CgkgIHdhbnQgR3N0QmFzZVRyYW5zZm9ybSB0byBzZW5kIHRoYXQgZXZlbiBkb3duc3RyZWFtCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfaW5pdCksIChnc3RfaWRlbnRpdHlfZXZlbnQpLAoJICAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCksIChnc3RfaWRlbnRpdHlfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9pZGVudGl0eV9nZXRfcHJvcGVydHkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICBBZGRlZCB0aGUgc2luZ2xlLXNlZ21lbnQgYm9vbGVhbiBwcm9wZXJ0eS4KCSAgSWYgc2V0IHRvIFRSVUUsIGl0IHdpbGwgb3V0cHV0IGEgc2luZ2xlIHNlZ21lbnQgb2YgZGF0YSwgc3RhcnRpbmcgZnJvbQoJICAwLCB3aWxsIGVhdCB1cCBhbGwgaW5jb21pbmcgbmV3c2VnbWVudCwgYW5kIG1vZGlmeSB0aGUgdGltZXN0YW1wIG9mIHRoZQoJICBidWZmZXJzIGFjY29yZGluZ2x5CgoyMDA1LTExLTI5IDE0OjQzOjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL3Rob21hc3ZzLzAuMTA6CgkgIGZ1cnRoZXIgcmV2aWV3CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmdXJ0aGVyIHJldmlldwoKMjAwNS0xMS0yOSAxMzoxMDozOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBEb24ndCByZWYgTlVMTCB0YXJnZXQgcGFkICgjMzIyNzUxKS4gSW1wcm92ZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZ2V0X3RhcmdldCk6CgkgIERvbid0IHJlZiBOVUxMIHRhcmdldCBwYWQgKCMzMjI3NTEpLiBJbXByb3ZlIGRvY3MuCgoyMDA1LTExLTI5IDExOjA3OjU0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogRG9uJ3QgY3Jhc2ggaWYgd2UgZmFpbGVkIHRvIGxvYWQgYSBmZWF0dXJlIGZyb20gYSBwbHVnaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiAobG9hZF9wbHVnaW4pOgoJICBEb24ndCBjcmFzaCBpZiB3ZSBmYWlsZWQgdG8gbG9hZCBhIGZlYXR1cmUgZnJvbSBhIHBsdWdpbi4KCjIwMDUtMTEtMjkgMDA6NTE6NTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vdGhvbWFzdnMvMC4xMDoKCSAgYWRkIG15IHRvZG9zIGZvciAwLjEwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbXkgdG9kb3MgZm9yIDAuMTAKCjIwMDUtMTEtMjggMjE6NTE6MzcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogdXNlIG1vcmUgY2hlY2sgQVBJIGFuZCBsZXNzIEdMaWIgQVBJCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChzZXR1cF9waXBlbGluZSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIHVzZSBtb3JlIGNoZWNrIEFQSSBhbmQgbGVzcyBHTGliIEFQSQoKMjAwNS0xMS0yOCAyMTo0ODoxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBjb3NtZXRpYyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb3NtZXRpYyBjaGFuZ2VzCgoyMDA1LTExLTI4IDE5OjU4OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIE1ha2VmaWxlLmFtOiBkb24ndCBydW4gY2hlY2tzIGlmIHdlIGRvbid0IGhhdmUgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogTWFrZWZpbGUuYW06CgkgIGRvbid0IHJ1biBjaGVja3MgaWYgd2UgZG9uJ3QgaGF2ZSBjaGVjawoJICAqIGNvbW1vbi9jaGVjay5tYWs6CgkgIHJlbW92ZSB0aGUgcmVnaXN0cnkgd2hlbiBydW5uaW5nIG1ha2UgdG9ydHVyZQoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHJlbW92ZSBzZWNvbmQgbXVsdGlwbHkKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb29wKToKCSAgZml4IGEgY29tcGlsZSB3YXJuaW5nIHdoZW4gZGlzYWJsaW5nIGRlYnVnCgoyMDA1LTExLTI4IDE5OjQzOjI3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RpbmZvLmg6IEhleSEgTGV0J3MgcHJpbnQgdGhlIHBhZCBuYW1lIGlmIHRoZSBwb2ludGVyICE9IE5VTEwgaW5zdGVhZCBvZiB3aGVuIGl0ID09IE5VTEwgOi0pCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIEhleSEgTGV0J3MgcHJpbnQgdGhlIHBhZCBuYW1lIGlmIHRoZSBwb2ludGVyICE9IE5VTEwgaW5zdGVhZAoJICBvZiB3aGVuIGl0ID09IE5VTEwgOi0pCgoyMDA1LTExLTI4IDE4OjQ0OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IFVwZGF0ZWQgY2hlY2ssIGFkZCBzb21lIHNjYWxpbmcgYWNjdXJhY3kgY2hlY2tpbmcgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVwZGF0ZWQgY2hlY2ssIGFkZCBzb21lIHNjYWxpbmcgYWNjdXJhY3kgY2hlY2tpbmcgY29kZS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2RpdjEyOF82NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBGaXggNiB0aW1lcyBmYXN0ZXIgZGl2aXNpb24gY29kZS4gT3B0aW1pemUgZm9yIGNvbW1vbgoJICAxLzEgYW5kIGxlc3MgY29tbW9uIFgvMSBjYXNlcy4KCjIwMDUtMTEtMjggMTc6NTk6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGNsb2NrLmM6CgkgIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgdXBkYXRlcwoKMjAwNS0xMS0yOCAxNjowNTozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBNb3JlIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdXRpbHNfc3VpdGUpOgoJICBNb3JlIGNoZWNrcy4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19maW5hbGl6ZSksIChnc3RfY2xvY2tfc2V0X21hc3RlciksCgkgIChkb19saW5lYXJfcmVncmVzc2lvbiksIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKToKCSAgQ2xlYW51cHMuCgkgIFJlbGVhc2UgbG9jayB3aGVuIHRoZSBjbG9jayBjYW5ub3QgYmUgc2xhdmVkLgoJICBDYXRjaCB0aGUgY2FzZSB3aGVyZSB0aGUgcmVncmVzc2lvbiByZXR1cm5lZCBhbiBpbnZhbGlkIGRlbm9taW5hdG9yLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfZGl2MTI4XzY0X2l0ZXJhdGUpLAoJICAoZ3N0X3V0aWxfZGl2MTI4XzY0KSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQ2NCksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGUpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludCk6CgkgIEFkZCBwcm90ZW50aWFsbHkgbW9yZSBwZXJmb3JtYW50IG5vbi1pdGVyYXRpdmUgMTI4LzY0IGRpdmlkZSBmdW5jdGlvbgoJICB0aGF0IHVuZm9ydHVuYXRseSBkb2VzIG5vdCB3b3JrIHlldC4KCSAgU2hvcnRjdXQgdGhlIHRyaXZpYWwgMC9YID0gMCBjYXNlLgoJICBSZW1vdmUgdGhlIHdhcm5pbmdzIG9uIG92ZXJmbG93LgoKMjAwNS0xMS0yOCAxNDoxODoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGx1Z2luLmM6IGV2ZXJ5dGhpbmcgY2F1c2luZyBhIHBsdWdpbiBub3QgdG8gbG9hZCBzaG91bGQgYmUgYXQgbGVhc3QgYSBXQVJOSU5HCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fcmVnaXN0ZXJfZnVuYyk6CgkgIGV2ZXJ5dGhpbmcgY2F1c2luZyBhIHBsdWdpbiBub3QgdG8gbG9hZCBzaG91bGQgYmUgYXQgbGVhc3QgYSBXQVJOSU5HCgoyMDA1LTExLTI4IDE0OjAyOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICBsb2cgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9nIGNhcHMKCjIwMDUtMTEtMjggMTQ6MDE6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgZml4IGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkb2NzCgoyMDA1LTExLTI4IDEzOjI1OjE0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL3JhbmRvbS9lbnNvbmljL2RwYXJhbXMudHh0OiBzb21lIFRPRE9zIGZvciB0aGUgbmV4dCBkZXYgY3ljbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9kcGFyYW1zLnR4dDoKCSAgc29tZSBUT0RPcyBmb3IgdGhlIG5leHQgZGV2IGN5Y2xlCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9zZXRfaW50ZXJwb2xhdGlvbl9tb2RlKSwKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X25ldyk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgIHVzZSBiYXNlIHR5cGUgdG8gYXNzaWduIGFjY2Nlc3NvciBmdW5jdGlvbnMKCjIwMDUtMTEtMjggMTE6MzE6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IE9vcHMsIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiB0b3Bfc3JjZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBPb3BzLCB0aGF0IHNob3VsZCBoYXZlIGJlZW4gdG9wX3NyY2RpcgoKMjAwNS0xMS0yOCAxMDoyOTozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgZGlzYWJsZSBwaXBlbGluZSB0ZXN0IHVudGlsIHNvbWVvbmUgZml4ZXMgdGhlIHVucmVsaWFibGUgZXJyb3JzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIHBpcGVsaW5lIHRlc3QgdW50aWwgc29tZW9uZSBmaXhlcyB0aGUgdW5yZWxpYWJsZSBlcnJvcnMKCjIwMDUtMTEtMjggMTA6MDc6MzggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svOiBVc2UgYSBjbWRsaW5lIGRlZmluZSB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhIGZpbGUgdG8gdXNlIGZvciB0ZXN0aW5nLCB0byBhdm9pZCBicmVha2luZyBkaXN0Y2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVzZSBhIGNtZGxpbmUgZGVmaW5lIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIGEgZmlsZSB0byB1c2UgZm9yCgkgIHRlc3RpbmcsIHRvIGF2b2lkIGJyZWFraW5nIGRpc3RjaGVjay4KCjIwMDUtMTEtMjggMTA6MDQ6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZml4YXRlX3ZhbHVlKTogVXNlIGFycmF5IGZ1bmN0aW9ucyBmb3IgYXJyYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGZpeGF0ZV92YWx1ZSk6IFVzZSBhcnJheSBmdW5jdGlvbnMgZm9yIGFycmF5cy4KCjIwMDUtMTEtMjggMDk6NTU6MTkgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IENsYXJpZnkgdGhlIG91dHB1dCBzdHJpbmdzLCBtYWtlcyBpdCBlYXNpZXIgdG8gdHJhbnNsYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChtYWluKToKCSAgQ2xhcmlmeSB0aGUgb3V0cHV0IHN0cmluZ3MsIG1ha2VzIGl0IGVhc2llciB0byB0cmFuc2xhdGUuCgkgIEZpeGVzICMzMjI2MjYKCjIwMDUtMTEtMjggMDg6MjA6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBkb24ndCB0cnkgYW5kIGJ1aWxkIG5ldCBpZiB3ZSBkb24ndCBldmVuIGhhdmUgPHN5cy9zb2NrZXQuaD4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBkb24ndCB0cnkgYW5kIGJ1aWxkIG5ldCBpZiB3ZSBkb24ndCBldmVuIGhhdmUgPHN5cy9zb2NrZXQuaD4KCjIwMDUtMTEtMjcgMjI6NTA6MDkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svOiBBZGQgdGVzdHMgZm9yIGZkc3JjIHNlZWthYmlsaXR5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zkc3JjLmM6IChldmVudF9mdW5jKSwgKHNldHVwX2Zkc3JjKSwKCSAgKGNsZWFudXBfZmRzcmMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZmRzcmNfc3VpdGUpLCAobWFpbik6CgkgIEFkZCB0ZXN0cyBmb3IgZmRzcmMgc2Vla2FiaWxpdHkKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9mZHNyY19pbml0KSwgKGdzdF9mZHNyY191cGRhdGVfZmQpLCAoZ3N0X2Zkc3JjX3N0YXJ0KSwKCSAgKGdzdF9mZHNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2Zkc3JjX2lzX3NlZWthYmxlKSwKCSAgKGdzdF9mZHNyY19nZXRfc2l6ZSksIChnc3RfZmRzcmNfdXJpX3NldF91cmkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5oOgoJICBmZHNyYyBzaG91bGQgbm90IGJlIGEgJ2xpdmUnIHNvdXJjZS4KCSAgSW1wbGVtZW50IHNlZWtpbmcgb24gc2Vla2FibGUgZmQncy4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfc2Vla2luZyksCgkgIChnc3RfcXVlcnlfcGFyc2Vfc2Vla2luZyk6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEltcGxlbWVudCBTRUVLSU5HIHF1ZXJ5IGZ1bmN0aW9uczoKCSAgKl9uZXdfc2Vla2luZyBhbmQgKl9wYXJzZV9zZWVraW5nCgoyMDA1LTExLTI3IDIyOjQzOjA4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBkb24ndCBsb29wIGZvcmV2ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBkb24ndCBsb29wIGZvcmV2ZXIKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGRvYyBmaXhlcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgIChpbnRlcnBvbGF0ZV9ub25lX2dldF9lbnVtX3ZhbHVlX2FycmF5KToKCSAgc3VwcG9ydCBjb250cm9sbGluZyBlbnVtcwoKMjAwNS0xMS0yNyAxOTo1Mjo0OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBJbXByb3ZlIGRvY3VtZW50YXRpb24gZm9yIGdzdF92YWx1ZV91bmlvbigpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgSW1wcm92ZSBkb2N1bWVudGF0aW9uIGZvciBnc3RfdmFsdWVfdW5pb24oKS4KCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgQ2hhbmdlIHJldHVybiB2YWx1ZSBmb3IgdW5pb24sIGludGVyc2VjdCBhbmQgc3VidHJhY3QgZnVuY3Rpb25zCgkgIGZyb20gZ2ludCB0byBnYm9vbGVhbi4KCjIwMDUtMTEtMjcgMTg6MTE6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuKjogVXNlIGdpbnQsIGdkb3VibGUgYW5kIGdjaGFyIGluIG91ciBBUEkgaW5zdGVhZCBvZiBpbnQsIGRvdWJsZSBhbmQgY2hhciAoYW5kIG1ha2UgdXNhZ2UgaW4gZ3N0dmFsdWUuYyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfc2VyaWFsaXplX2FueV9saXN0KSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fYW55X2xpc3Rfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9saXN0KSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9hcnJheSksCgkgIChnc3RfdmFsdWVfc2V0X2ludF9yYW5nZSksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9zZXRfZG91YmxlX3JhbmdlKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3NldF9mcmFjdGlvbl9yYW5nZV9mdWxsKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfY2FwcyksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfYnVmZmVyKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9ib29sZWFuKSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9kb3VibGUpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbG9hdCksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxvYXQpLAoJICAoZ3N0X3N0cmluZ193cmFwKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2VudW0pLCAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZsYWdzKSwKCSAgKGdzdF92YWx1ZV91bmlvbl9pbnRfcmFuZ2VfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfaW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2RvdWJsZV9yYW5nZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2NyZWF0ZV9uZXdfcmFuZ2UpLCAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ludF9yYW5nZV9pbnQpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2RvdWJsZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2RvdWJsZV9yYW5nZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgVXNlIGdpbnQsIGdkb3VibGUgYW5kIGdjaGFyIGluIG91ciBBUEkgaW5zdGVhZCBvZiBpbnQsIGRvdWJsZSBhbmQKCSAgY2hhciAoYW5kIG1ha2UgdXNhZ2UgaW4gZ3N0dmFsdWUuYyBtb3JlIGNvbnNpc3RlbnQpLgoKMjAwNS0xMS0yNyAxNzowNTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGFkZCB1bmRlZmluZWQgZm9yIGNvcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCB1bmRlZmluZWQgZm9yIGNvcmUKCjIwMDUtMTEtMjcgMTY6NDY6NDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IHVwIE1ha2VmaWxlLmFtIGFuZCByZW1vdmUgR1NUX0VOQUJMRV9ORVcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCB1cCBNYWtlZmlsZS5hbSBhbmQgcmVtb3ZlIEdTVF9FTkFCTEVfTkVXCgoyMDA1LTExLTI3IDE1OjE1OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHVwZGF0ZSBMREZMQUdTIHVzZSBzb21lIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkgIHVwZGF0ZSBMREZMQUdTIHVzZSBzb21lIG1vcmUKCjIwMDUtMTEtMjcgMTQ6MTk6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkgIEZpeGVzICMzMTI1ODkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeGVzICMzMTI1ODkKCjIwMDUtMTEtMjcgMTQ6MDM6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBhZGQgc29tZSBhZGRpdGlvbmFsIGZhaWxfaWYncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNvbWUgYWRkaXRpb25hbCBmYWlsX2lmJ3MKCjIwMDUtMTEtMjYgMTE6Mjg6MzIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOiBUaGlzIHNob3VsZG4ndCBpc3N1ZSBhIGdfd2FybmluZyBzaW5jZSBpdCByZXR1cm5zIE5VTEwgaWYgaXQgY291bGRuJ3QgZmluZCB0aGUgcGx1Z2luLCBhbmQgYWwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgVGhpcyBzaG91bGRuJ3QgaXNzdWUgYSBnX3dhcm5pbmcgc2luY2UgaXQgcmV0dXJucyBOVUxMIGlmIGl0CgkgIGNvdWxkbid0IGZpbmQgdGhlIHBsdWdpbiwgYW5kIGFsbCBmdW5jdGlvbnMgdXNpbmcgdGhpcyBiZWhhdmUKCSAgcHJvcGVybHkgb24gYSBOVUxMIHJldHVybi4gU3dpdGNoaW5nIHRvIGEgR1NUX1dBUk5JTkcuCgoyMDA1LTExLTI1IDE3OjA2OjM2ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRG9uJ3QgbGVhayBjbG9jayBtZXNzYWdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9oYW5kbGVfbWVzc2FnZV9mdW5jKToKCSAgRG9uJ3QgbGVhayBjbG9jayBtZXNzYWdlcy4KCjIwMDUtMTEtMjUgMTE6Mzg6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuYzogT3B0aW1pc2F0aW9ucywgcmVtb3ZlIHVubmVlZGVkIHZhcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludDY0KSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBPcHRpbWlzYXRpb25zLCByZW1vdmUgdW5uZWVkZWQgdmFycy4KCjIwMDUtMTEtMjUgMDA6MDI6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogQWRkZWQgbW9yZSBjaGVja3MgZm9yIHRoZSBoaWdoIHByZWNpc2lvbiB1aW50NjQgY2FzZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkZWQgbW9yZSBjaGVja3MgZm9yIHRoZSBoaWdoIHByZWNpc2lvbiB1aW50NjQgY2FzZXMuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50NjQpLAoJICAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBJbXBsZW1lbnQgaGlnaCBwcmVjaXNzaW9uIChndWludDY0ICogZ3VpbnQ2NCkgLyBndWludDY0LgoKMjAwNS0xMS0yNCAxOTowNjo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRml4IHdyb25nIHBlcmNlbnRhZ2UgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSk6CgkgIEZpeCB3cm9uZyBwZXJjZW50YWdlIHF1ZXJ5LgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKSwKCSAgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBBZGQgc29tZSBtb3JlIGNvbW1vbiBjYXNlcyB0aGF0IGNhbiBiZSBoYW5kbGVkCgkgIGVmZmljaWVudGx5IHRvIF9zY2FsZS4KCjIwMDUtMTEtMjQgMTg6NDQ6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgcmVtb3ZlIHdyb25nbHkgY29tbWl0ZWQgY29tbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB3cm9uZ2x5IGNvbW1pdGVkIGNvbW1lbnRzCgoyMDA1LTExLTI0IDE4OjQwOjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6IGRvbid0IHVzZSBjaGVjayBjYWxscyBmcm9tIHRocmVhZHM7IGNoZWNrIHByb2JhYmx5IGlzbid0IHRocmVhZHNhZmUgYW5kIHVzaW5nIGEgbG9jayB0byBtYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOiAodGhyZWFkX3JlZiksIChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3RfbWluaV9vYmplY3Rfc3VpdGUpOgoJICBkb24ndCB1c2UgY2hlY2sgY2FsbHMgZnJvbSB0aHJlYWRzOyBjaGVjayBwcm9iYWJseSBpc24ndAoJICB0aHJlYWRzYWZlIGFuZCB1c2luZyBhIGxvY2sgdG8gbWFrZSBpdCB0aHJlYWRzYWZlIHdvdWxkCgkgIGRlZmVhdCB0aGUgcHVycG9zZSBvZiB0aGlzIGNoZWNrCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIHVzZSBHU1RfREVCVUcgc29tZSBtb3JlCgoyMDA1LTExLTI0IDE4OjAzOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IENoYWluIHRyaXZpYWwgY2FzZSB0byBfc2NhbGVfaW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSksCgkgIChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgQ2hhaW4gdHJpdmlhbCBjYXNlIHRvIF9zY2FsZV9pbnQuCgoyMDA1LTExLTI0IDE3OjQ0OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHV0aWxzLmM6IEFkZGVkIHRlc3QgZm9yIHNjYWxpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3V0aWxzX3N1aXRlKToKCSAgQWRkZWQgdGVzdCBmb3Igc2NhbGluZy4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgU21hbGwgZG9jIGZpeC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQpOgoJICBJbXBsZW1lbnRlZCBoaWdoIHByZWNpc2lvbiBzY2FsaW5nIGNvZGUuCgoyMDA1LTExLTI0IDE2OjU2OjI4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0aW5mby5oOiBkbyBub3QgY3Jhc2ggb24gcGFkPT1OVUxMCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIGRvIG5vdCBjcmFzaCBvbiBwYWQ9PU5VTEwKCjIwMDUtMTEtMjQgMTY6MzI6MjYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNmLm5ldD4KCgkgIEZpeCBkaXN0Y2hlY2sgaXNzdWVzIGZvciB0aGUgbGlicmFyaWVzIGRvY3MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFBhdGNoIGJ5OiBTdGVmYW4gS29zdAoJICAqIGNvbW1vbi9ndGstZG9jLm1hazoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIEZpeCBkaXN0Y2hlY2sgaXNzdWVzIGZvciB0aGUgbGlicmFyaWVzIGRvY3MgYnVpbGQKCSAgQ2xvc2VzICMzMTk1OTkKCjIwMDUtMTEtMjQgMTQ6Mzk6NTkgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDogRml4IGJ1ZyAjMzE1MDI3OiBtZW1vcnkgbGVhayBpbiBleGFtcGxlIGNvZGUgaW4gZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBGaXggYnVnICMzMTUwMjc6IG1lbW9yeSBsZWFrIGluIGV4YW1wbGUgY29kZSBpbiBkb2NzLgoKMjAwNS0xMS0yNCAxMjo0NDoyNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogVW5sb2NrIHRoZSBQUkVST0xMX0xPQ0sgaW4gYSBmYWlsdXJlIGNhc2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTI0ICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAZmx1ZW5kby5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIFVubG9jayB0aGUgUFJFUk9MTF9MT0NLIGluIGEgZmFpbHVyZSBjYXNlLgoKMjAwNS0xMS0yNCAxMToxNjozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY2hlY2svbmV0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMTEtMjQgMDk6NDQ6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1ZmZlci5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0Z2hvc3RwYWQuaDoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RpbnRlcmZhY2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWV1ZS5oOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5oOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCSogZ3N0L2dzdHVyaS5oOgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOgoJKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmg6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6CgkqIGxpYnMvZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSogbGlicy9nc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJICBEb2MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEb2MgZml4ZXMuCgoyMDA1LTExLTIzIDIyOjU0OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVtb3ZlZCBkaXJlY3RvcmllcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBkaXJlY3RvcmllcwoKMjAwNS0xMS0yMyAyMjoyMToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9pbnN0YW50aWF0ZS9NYWtlZmlsZS5hbToKCSAgZml4IGRpc3QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBkaXN0CgoyMDA1LTExLTIzIDIxOjI0OjQ2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIGFkZCBhIHRvcnR1cmUgdGFyZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSB0b3J0dXJlIHRhcmdldAoKMjAwNS0xMS0yMyAyMToxODo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9pbnN0YW50aWF0ZS9jcmVhdGUuYzoKCSogdGVzdHMvbmVnb3RpYXRpb24vLmdpdGlnbm9yZToKCSogdGVzdHMvbmVnb3RpYXRpb24vTWFrZWZpbGUuYW06CgkqIHRlc3RzL25lZ290aWF0aW9uL2NhcHNuZWdvMS5jOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoKMjAwNS0xMS0yMyAyMToxNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvbGF0LmM6CgkqIHRlc3RzL211eGluZy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9tdXhpbmcvTWFrZWZpbGUuYW06CgkqIHRlc3RzL211eGluZy9jYXNlMS5jOgoJKiB0ZXN0cy9wcm9iZXMvLmdpdGlnbm9yZToKCSogdGVzdHMvcHJvYmVzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9wcm9iZXMvcHJvYmV0ZXN0LmM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIG9ic29sZXRlIHRlc3RzCgoyMDA1LTExLTIzIDIxOjEzOjU5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvdHJpZ2dlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90cmlnZ2VyL1JFQURNRToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90cmlnZ2VyL3RyaWdnZXIuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvdHJpZ2dlci9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3RyaWdnZXIvUkVBRE1FOgoJKiB0ZXN0c3VpdGUvdHJpZ2dlci90cmlnZ2VyLmM6CgkgIHJlbW92ZSB0cmlnZ2VyIHN1YmRpcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIHRyaWdnZXIgc3ViZGlyCgoyMDA1LTExLTIzIDIxOjEyOjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvZmFrZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL25hbWUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZWxlbWVudHMvdGVlLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2VsZW1lbnRzL2Zha2UuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL25hbWUuYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5LmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJKiB0ZXN0c3VpdGUvZWxlbWVudHMvdGVlLmM6CgkgIHJlbW92ZSB0ZXN0cyByZXBsYWNlZCBieSBjaGVja3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0ZXN0cyByZXBsYWNlZCBieSBjaGVja3MKCjIwMDUtMTEtMjMgMjA6MDQ6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkgIGJhY2sgdG8gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmFjayB0byBIRUFECgo9PT0gcmVsZWFzZSAwLjkuNiA9PT0KCjIwMDUtMTEtMjMgMTk6NTU6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBORVdTOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjkuNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS42CgoyMDA1LTExLTIzIDE4OjA3OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgVXBkYXRlIC5wbyBmaWxlcwoKMjAwNS0xMS0yMyAxNzo1OTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkgIENocmlzdGlhbiwgbGVhcm4gdG8gY29uZmlndXJlIHlvdXIgLnNzaC9jb25maWcgZmlsZSwgYW5kIFNUT1AgY29tbWl0dGluZyB0byB0aGlzZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hyaXN0aWFuLCBsZWFybiB0byBjb25maWd1cmUgeW91ciAuc3NoL2NvbmZpZyBmaWxlLCBhbmQgU1RPUCBjb21taXR0aW5nIHRvIHRoaXNmaWxlCgoyMDA1LTExLTIzIDE2OjEwOjM4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuaDoKCSAgRG9jIHVwZGF0ZXMuCgoyMDA1LTExLTIzIDE1OjQ5OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9mYXEvdXNpbmcueG1sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3Rjb250cm9sLnNnbWw6CgkqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRwYXJhbXMueG1sOgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1jaGVja2xpc3QueG1sOgoJKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJKiBkb2NzL3B3Zy9vdGhlci1zb3VyY2UueG1sOgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSogZ3N0L2dzdHBhZC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIHJlbW92ZSBtZW50aW9ucyBvZiBzaW5lc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgbWVudGlvbnMgb2Ygc2luZXNyYwoKMjAwNS0xMS0yMyAxNDo1MjozMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogVXBkYXRlIGZvciBuZXcgQVBJIGFuZCBBUEkgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgVXBkYXRlIGZvciBuZXcgQVBJIGFuZCBBUEkgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIERvY3VtZW50YXRpb24gZml4OiBHU1RfVFJZTE9DSyAtPiBHU1RfT0JKRUNUX1RSWUxPQ0sKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRG9jdW1lbnRhdGlvbiB0eXBvIGZpeC4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYzoKCSAgRG9jdW1lbnRhdGlvbiBmaXhlcyBmb3IgYXJndW1lbnRzLgoKMjAwNS0xMS0yMyAxMzoyMjoyMSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBBUEkgQ2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9nZXRfZnJhY3Rpb24pLAoJICAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSksCgkgIChnc3Rfc3RydWN0dXJlX2ZpeGF0ZV9maWVsZF9uZWFyZXN0X2ZyYWN0aW9uKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50KToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6CgkgIEFQSSBDaGFuZ2VzLgoJICBSZW5hbWUgZ3N0X3V0aWxfY2xvY2tfdGltZV9zY2FsZSB0byBnc3RfdXRpbF91aW50NjRfc2NhbGVfaW50CgkgIE1ha2UgZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbiB0YWtlIGEgbnVtZXJhdG9yCgkgIGFuZCBkZW5vbWluYXRvciBhcmd1bWVudCBpbnN0ZWFkIG9mIGEgR1ZhbHVlCgkgIGFkZCBnc3Rfc3RydWN0dXJlX2dldF9mcmFjdGlvbiBoZWxwZXIgZnVuY3Rpb24uCgoyMDA1LTExLTIzIDEzOjE0OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgIFVwZGF0ZSBUT0RPLgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICBVc2UgcGFyZW50IGZpZWxkcyBmb3IgdGltZW91dCBhbmQgd2luZG93X3NpemUuCgoyMDA1LTExLTIzIDEyOjM5OjM2ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBkb2NzL3VwbG9hZC5tYWs6CgkqIGdzdC9yZWdpc3RyaWVzLy5naXRpZ25vcmU6CgkqIGdzdC9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJICBhZGQgbWlzc2luZyBjdnNpZ25vcmVzIHNvIENWUyBzaHV0cyB1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1pc3NpbmcgY3ZzaWdub3JlcyBzbyBDVlMgc2h1dHMgdXAKCjIwMDUtMTEtMjMgMTI6MzY6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogQWRqdXN0IHRvIHJhdGVfbnVtL3JhdGVfZGVub20gY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAodGVzdF9mdW5jdGlvbmluZyk6IEFkanVzdCB0bwoJICByYXRlX251bS9yYXRlX2Rlbm9tIGNoYW5nZS4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOiBUYWtlIHRoZSBTTEFWRV9MT0NLIG5vdCB0aGUKCSAgT0JKRUNUX0xPQ0suIERvbid0IGNhbGwgYWRkX29ic2VydmF0aW9uIHdpdGggdGhlIGxvY2suCgkgICogZ3N0L2dzdGNsb2NrLmMgKGdzdF9jbG9ja19pbml0KTogSW5pdGlhbGl6ZSB0aGUgcmF0ZSBhcyBhCgkgIGZyYWN0aW9uLgoJICAoZ3N0X2Nsb2NrX2FkanVzdF91bmxvY2tlZCk6IEFkanVzdCB1c2luZyB1aW50NjRfc2NhbGUgYW5kIHRoZQoJICByYXRlIGZyYWN0aW9uLgoJICAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbiwgZ3N0X2Nsb2NrX2dldF9jYWxpYnJhdGlvbik6IENoYW5nZSB0bwoJICBkZWFsIHdpdGggcmF0ZSBhcyBhIGZyYWN0aW9uIHdob3NlIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IgYXJlCgkgIEdzdENsb2NrVGltZSB2YWx1ZXMuCgkgIChnc3RfY2xvY2tfc2V0X21hc3Rlcik6IE9ubHkgdXNlIHRoZSBPQkpFQ1RfTE9DSyB0byBzZXQgdGhlCgkgIG1hc3RlcjsgdGhlIG90aGVyIGZpZWxkcyBhcmUgcHJvdGVjdGVkIGJ5IHRoZSBTTEFWRV9MT0NLLgoJICAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOiBOb3RlIHRoYXQgdGhpcyBtdXN0IGJlIGNhbGxlZCB3aXRoIHRoZQoJICBTTEFWRV9MT0NLLgoJICAoZ3N0X2Nsb2NrX2FkZF9vYnNlcnZhdGlvbik6IFRha2UgdGhlIFNMQVZFX0xPQ0ssIG5vdCB0aGUKCSAgT0JKRUNUX0xPQ0suIENhbGwgc2V0X2NhbGlicmF0aW9uIGluc3RlYWQgb2YgdG91Y2hpbmcgdGhlCgkgIHZhcmlhYmxlcyBkaXJlY3RseS4KCSAgKGdzdF9jbG9ja19zZXRfcHJvcGVydHksIGdzdF9jbG9ja19nZXRfcHJvcGVydHkpOiBQcm90ZWN0CgkgIG1hc3Rlci9zbGF2ZSBwYXJhbWV0ZXJzIHdpdGggdGhlIFNMQVZFX0xPQ0suCgkgICogZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogUmVtb3ZlIHJhdGUsIGFkZCByYXRlX251bWVyYXRvciBhbmQKCSAgcmF0ZV9kZW5vbWluYXRvci4gUFIzQzFTMy4gQWRkIGEgbmV3IGxvY2ssIHRoZSBTTEFWRV9MT0NLLCBhbmQKCSAgbm90ZSB0aGF0IGFsbCBvZiB0aGUgaW5zdGFuY2UgdmFyaWFibGVzIHRoYXQgYWRkX29ic2VydmF0aW9uIGFuZAoJICB0aGUgc2V0X21hc3RlciBmdW5jdGlvbnMgdXNlIGFyZSBwcm90ZWN0ZWQgYnkgdGhhdCBsb2NrIGFuZCBub3QKCSAgdGhlIE9CSkVDVF9MT0NLLgoJICAoR1NUX0NMT0NLX1NMQVZFX0xPQ0ssIEdTVF9DTE9DS19TTEFWRV9VTkxPQ0spOiBOZXcgbWFjcm9zLgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfYWRkX29ic2VydmF0aW9uKTogTm8gbG9uZ2VyIHJlcXVpcmVzCgkgIHRoZSBjYWxsZXIgdG8gdGFrZSB0aGUgb2JqZWN0IGxvY2suCgoyMDA1LTExLTIzIDExOjIyOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGVycm9yLio6IEFkZCBlcnJvciBmb3IgY2xvY2sgc3R1ZmYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOiAoX2dzdF9jb3JlX2Vycm9yc19pbml0KToKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgQWRkIGVycm9yIGZvciBjbG9jayBzdHVmZi4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9jbG9jayk6CgkgIFBvc3QgY2xvY2sgZXJyb3Igd2hlbiBjbG9jayBjYW5ub3QgYmUgdXNlZCBpbiBhIHBpcGVsaW5lLgoKMjAwNS0xMS0yMyAxMTowNTozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogbWFrZSB0d28gc3ltYm9scyBmcm9tIGdzdGluZm8gcHJpdmF0ZSBmb3IgdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbWFrZSB0d28gc3ltYm9scyBmcm9tIGdzdGluZm8gcHJpdmF0ZSBmb3IgdGhlIGRvY3MKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBmaXggZG9jIHR5cG9zLCB1cGRhdGUgZG9jcwoKMjAwNS0xMS0yMiAxODoyODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLio6IE5vIG5lZWQgdG8gc3RvcmUgdGhlIGNsb2NrLCB0aGUgcGFyZW50IGVsZW1lbnQgY2xhc3MgYWxyZWFkeSBoYXMgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0KSwgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9ldmVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgTm8gbmVlZCB0byBzdG9yZSB0aGUgY2xvY2ssIHRoZSBwYXJlbnQgZWxlbWVudCBjbGFzcyBhbHJlYWR5CgkgIGhhcyBpdC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3NldF9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpOgoJICBVcGRhdGVzIGZvciBjbG9ja19zZXQgcmV0dXJuaW5nIGEgZ2Jvb2xlYW4KCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19lbnRyeV9uZXcpLCAoZ3N0X2Nsb2NrX2lkX3dhaXQpLAoJICAoZ3N0X2Nsb2NrX2lkX3dhaXRfYXN5bmMpLCAoZ3N0X2Nsb2NrX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Nsb2NrX2luaXQpLCAoZ3N0X2Nsb2NrX2ZpbmFsaXplKSwKCSAgKGdzdF9jbG9ja19nZXRfaW50ZXJuYWxfdGltZSksIChnc3RfY2xvY2tfZ2V0X3RpbWUpLAoJICAoZ3N0X2Nsb2NrX3NsYXZlX2NhbGxiYWNrKSwgKGdzdF9jbG9ja19zZXRfbWFzdGVyKSwKCSAgKGdzdF9jbG9ja19nZXRfbWFzdGVyKSwgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKSwKCSAgKGdzdF9jbG9ja19hZGRfb2JzZXJ2YXRpb24pLCAoZ3N0X2Nsb2NrX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfY2xvY2tfZ2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgSW1wbGVtZW50IG1hc3Rlci9zbGF2ZS4gV2hlbiBzZXR0aW5nIGEgY2xvY2sgYXMgYSBzbGF2ZSwgYQoJICBwZXJpb2RpYyB0aW1lb3V0IGlzIHNjaGVkdWxlZCB0byBzYW1wbGUgbWFzdGVyIGFuZCBzbGF2ZSB0aW1lcy4KCSAgVGhlbiB0aGUgc2xhdmUgY2xvY2sgaXMgcmVjYWxpYnJhdGVkIHRvIG1hdGNoIG9mZnNldCBhbmQgcmF0ZQoJICBvZiB0aGUgbWFzdGVyIGNsb2NrLgoJICBVcGRhdGUgbG9nZ2luZyBhIGJpdC4KCSAgQWRkIGZsYWcgc28gdGhhdCBhIGNsb2NrIGNhbiBzdGF0ZSB0aGF0IGlzIGNhbm5vdCBiZSBzbGF2ZWQgdG8KCSAgYW5vdGhlciBjbG9jay4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Nsb2NrKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBUaGUgc2V0X2Nsb2NrIHJldHVybnMgYSBnYm9vbGVhbiBmb3Igd2hlbiBhbiBlbGVtZW50IGNhbm5vdAoJICBkZWFsIHdpdGggdGhlIHNlbGVjdGVkIGNsb2NrIGluIHRoZSBwaXBlbGluZS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9jbG9jayk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmg6CgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgc2VsZWN0ZWQgY2xvY2sgY2Fubm90IGJlIHNldCBvbgoJICB0aGUgcGlwZWxpbmUuCgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19pbml0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX2ZpbmFsaXplKSwKCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfb2JzZXJ2ZV90aW1lcyk6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5oOgoJICBVc2UgcmVncmVzc2lvbiBjb2RlIGluIEdzdENsb2NrIHBhcmVudCwgcmVtb3ZlIGR1cGxpY2F0ZWQKCSAgZnVuY3Rpb25hbGl0eS4KCjIwMDUtMTEtMjIgMTY6MzE6MDggKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgdW5kZXJzY29yZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZCB1bmRlcnNjb3JlcwoKMjAwNS0xMS0yMiAxNTo1MjowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBjb3JyZWN0bHkgZml4IEdFbnVtVmFsdWVzIHNvIHRoYXQgbmljayBpcyB0aGUgc2hvcnQgbG93ZXJjYXNlIGRhc2hlZCB0YWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19zdGF0ZV9lcnJvcl9nZXRfdHlwZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19kYXRhX2dldF90eXBlKSwKCSAgKGdzdF9mYWtlX3NyY19zaXpldHlwZV9nZXRfdHlwZSksIChnc3RfZmFrZV9zcmNfZmlsbHR5cGVfZ2V0X3R5cGUpLAoJICAoZ3N0X2Zha2Vfc3JjX2luaXQpLCAoZ3N0X2Zha2Vfc3JjX3ByZXBhcmVfYnVmZmVyKSwKCSAgKGdzdF9mYWtlX3NyY19hbGxvY19idWZmZXIpLCAoZ3N0X2Zha2Vfc3JjX2dldF9zaXplKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAocXVldWVfbGVha3lfZ2V0X3R5cGUpOgoJICBjb3JyZWN0bHkgZml4IEdFbnVtVmFsdWVzIHNvIHRoYXQgbmljayBpcyB0aGUgc2hvcnQgbG93ZXJjYXNlCgkgIGRhc2hlZCB0YWcKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pOgoJICBhbHNvIHNob3cgdGhlIG5pY2ssIHNpbmNlIGl0J3MgdXNlZnVsIHRvIHVzZSBmcm9tIHBhcnNlX2xhdW5jaAoJICBzeW50YXgKCSAgRml4ZXMgIzMyMjEzOQoKMjAwNS0xMS0yMiAxNToxNTo1MyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgQWRkIHV0aWwgbWV0aG9kIGZvciBzY2FsaW5nIGEgY2xvY2t0aW1lIGJ5IGEgZnJhY3Rpb24uIFVzZWZ1bCBpbXBsZW1lbnRhdGlvbiBpcyBsZWZ0IGFzIGFuIGV4ZXJjaXNlIGZvciB0aGUgcmVhZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX2Nsb2NrdGltZV9zY2FsZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIHV0aWwgbWV0aG9kIGZvciBzY2FsaW5nIGEgY2xvY2t0aW1lIGJ5IGEgZnJhY3Rpb24uIFVzZWZ1bAoJICBpbXBsZW1lbnRhdGlvbiBpcyBsZWZ0IGFzIGFuIGV4ZXJjaXNlIGZvciB0aGUgcmVhZGVyLgoKMjAwNS0xMS0yMiAxNDoyOToxMCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuYzogSWYgbmVlZGVkLCBhbGxvY2F0ZSBzdG9yYWdlIGluIHRoZSBkZXN0aW5hdGlvbiB2YWx1ZSBkdXJpbmcgY29sbGVjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29sbGVjdF9mcmFjdGlvbl9yYW5nZSk6CgkgIElmIG5lZWRlZCwgYWxsb2NhdGUgc3RvcmFnZSBpbiB0aGUgZGVzdGluYXRpb24gdmFsdWUgZHVyaW5nCgkgIGNvbGxlY3Rpb24uCgoyMDA1LTExLTIyIDEzOjU4OjAwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgUmVtb3ZlZCBHc3RVUkkgLCBjbG9zZXMgYnVnICMzMjEwNjEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3R1cml0eXBlLmM6CgkgICogZ3N0L2dzdHVyaXR5cGUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF9vYmplY3RfYXJnKToKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIFJlbW92ZWQgR3N0VVJJICwgY2xvc2VzIGJ1ZyAjMzIxMDYxCgoyMDA1LTExLTIyIDEzOjE0OjUxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIE9vcHMsIGJyb2tlIGF1dG9tYXRpYyBzdHJpbmcgdHlwZSBwYXJzaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9wYXJzZV92YWx1ZSk6CgkgIE9vcHMsIGJyb2tlIGF1dG9tYXRpYyBzdHJpbmcgdHlwZSBwYXJzaW5nLgoJICBBZGQgYSB0ZXN0IHRvIGNhdGNoIGl0IGluIGZ1dHVyZS4KCjIwMDUtMTEtMjIgMTM6MDI6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICBnc3QvZ3N0dGFnc2V0dGVyLmMgKGdzdF90YWdfc2V0dGVyX2dldF90YWdfbWVyZ2VfbW9kZSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjIgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jIChnc3RfdGFnX3NldHRlcl9nZXRfdGFnX21lcmdlX21vZGUpCgkgIChnc3RfdGFnX3NldHRlcl9zZXRfdGFnX21lcmdlX21vZGUsIGdzdF90YWdfc2V0dGVyX2dldF90YWdfbGlzdCk6CgkgIEFjdHVhbGx5IHJlbmFtZSB0aGUgZnVuY3Rpb24gaW1wbGVtZW50YXRpb25zLiBHcnIuCgoyMDA1LTExLTIyIDEyOjUxOjE4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBzY3JpcHRzL3VwZGF0ZS1mdW5jbmFtZXM6CgkgIGZpeCBib3JrZWQgY29tbWl0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYm9ya2VkIGNvbW1pdAoKMjAwNS0xMS0yMiAxMjozNTo0MiArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvY2Fwc2xpc3QuaDogQ29tbWVudCB0ZXN0IGNhc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICBDb21tZW50IHRlc3QgY2FzZXMKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChnc3Rfc3RydWN0dXJlX3N1aXRlKToKCSAgVGVzdCBhdXRvbWF0aWMgdmFsdWUgdHlwZSBkZXRlY3Rpb24gaW4gZ3N0X3N0cnVjdHVyZV9mcm9tX3N0cmluZy4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgQWRkIGZyYWN0aW9uIGFzIGEgdHlwZSB3ZSB0cnkgYW5kIGd1ZXNzIGF1dG9tYXRpY2FsbHkgaW4KCSAgY2Fwcy9zdHJ1Y3R1cmUgc3RyaW5ncy4KCjIwMDUtMTEtMjIgMTI6MzU6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHNjcmlwdHMvdXBkYXRlLWZ1bmNuYW1lczoKCSAgdXBkYXRlIHVwZGF0ZS1mdW5jcyBmb3IgdGFnc2V0dGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdXBkYXRlLWZ1bmNzIGZvciB0YWdzZXR0ZXIKCjIwMDUtMTEtMjIgMTI6MjA6MDQgKzAwMDAgIFRvcnN0ZW4gU2Nob2VuZmVsZCA8a2FmZmVldGlzY2hAZ214LmRlPgoKCSAgZ3N0L2dzdHRhZ3NldHRlci4qOiAoZ3N0X3RhZ19zZXR0ZXJfbWVyZ2VfdGFncykgKGdzdF90YWdfc2V0dGVyX2FkZF90YWdzLCBnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbHVlcykgKGdzdF90YWdfc2V0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBwYXRjaCBieTogVG9yc3RlbiBTY2hvZW5mZWxkIDxrYWZmZWV0aXNjaCBnbXggZGU+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuYzogKGdzdF90YWdfc2V0dGVyX21lcmdlX3RhZ3MpCgkgIChnc3RfdGFnX3NldHRlcl9hZGRfdGFncywgZ3N0X3RhZ19zZXR0ZXJfYWRkX3RhZ192YWx1ZXMpCgkgIChnc3RfdGFnX3NldHRlcl9hZGRfdGFnX3ZhbGlzdCkKCSAgKGdzdF90YWdfc2V0dGVyX2FkZF90YWdfdmFsaXN0X3ZhbHVlcyk6IFJlbmFtZWQgZnJvbSBfbWVyZ2UsIF9hZGQsCgkgIF9hZGRfdmFsdWVzLCBfYWRkX3ZhbGlzdCwgYW5kIF9hZGRfdmFsaXN0X3ZhbHVlcy4gU2luY2UgdGhpcyBpcyBhbgoJICBpbnRlcmZhY2UgdGhlIGZ1bmN0aW9uIHN1ZmZpeGVzIHNob3VsZCBiZSBtb3JlIGV4cGxpY2l0IHNvCgkgIGxhbmd1YWdlIGJpbmRpbmcgZG9uJ3QgZW5kIHVwIHdpdGggZWxlbWVudC5hZGRfdmFsaXN0IC0+CgkgIGdzdF90YWdfc2V0dGVyX2FkZF92YWxpc3QsIGZvciBleGFtcGxlLiBGaXhlcyAjMzIyMDY5LgoKMjAwNS0xMS0yMiAxMjoxNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IHZhbGdyaW5kIHRoZSBzdHJlc3MgdGVzdCwgdGFrZXMgdG9vIGxvbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IHZhbGdyaW5kIHRoZSBzdHJlc3MgdGVzdCwgdGFrZXMgdG9vIGxvbmcKCjIwMDUtMTEtMjIgMTE6NTY6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGNhcHMuYzogRXh0ZW5kIGNhcHMgc3RyaW5nIHRlc3RzIHRvIGNoZWNrIHRoYXQgYSBjYXBzIHRvIHN0cmluZyBjb252ZXJzaW9uIGlzIHJldmVyc2libGUgYW5kIHByb2R1Y2VzIHRoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEV4dGVuZCBjYXBzIHN0cmluZyB0ZXN0cyB0byBjaGVjayB0aGF0IGEgY2FwcyB0byBzdHJpbmcKCSAgY29udmVyc2lvbiBpcyByZXZlcnNpYmxlIGFuZCBwcm9kdWNlcyB0aGUgc2FtZSBjYXBzLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfdmFsdWVfZ2V0X2dlbmVyaWNfdHlwZSk6CgkgIE91dHB1dCAiZnJhY3Rpb24iIGFzIHRoZSBnZW5lcmljIHR5cGUgZnJhY3Rpb24gcmFuZ2UsIHNvIGNhcHMKCSAgc2VyaWFsaXNhdGlvbiBhbmQgZGVzZXJpYWxpc2F0aW9uIHdvcmtzLgoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uKToKCSAgU3VwcG9ydCAnTUlOJyBhbmQgJ01BWCcgZm9yIGRlc2VyaWFsaXNpbmcgZnJhY3Rpb25zLgoKMjAwNS0xMS0yMiAxMTo1MDoxMiArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICBNaW5vciBkb2MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWlub3IgZG9jIGZpeC4KCjIwMDUtMTEtMjIgMTE6NDg6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChnc3RfZXZlbnRfbmV3X25ld19zZWdtZW50KSAoZ3N0X2V2ZW50X3BhcnNlX25ld19zZWdtZW50LCBnc3RfZXZlbnRfbmV3X2J1ZmZlcl9zaXplKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoZ3N0X2V2ZW50X25ld19uZXdfc2VnbWVudCkKCSAgKGdzdF9ldmVudF9wYXJzZV9uZXdfc2VnbWVudCwgZ3N0X2V2ZW50X25ld19idWZmZXJfc2l6ZSkKCSAgKGdzdF9ldmVudF9wYXJzZV9idWZmZXJfc2l6ZSwgZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0KToKCSAgUmVuYW1lZCBmcm9tICpfbmV3c2VnbWVudCwgKl9idWZmZXJzaXplLCAqX25vdGFyZ2V0LgoJICAqIHNjcmlwdHMvdXBkYXRlLWZ1bmNuYW1lczogTmV3IHNjcmlwdCwgcGVyZm9ybXMgdGhlIGNoYW5nZXMKCSAgbGlzdGVkIGFib3ZlLgoKMjAwNS0xMS0yMiAxMToyNTowMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1ha2Ugc3VyZSB0aGUgR3N0Rmxvd1JldHVybiBpcyByZXR1cm5lZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIE1ha2Ugc3VyZSB0aGUgR3N0Rmxvd1JldHVybiBpcyByZXR1cm5lZC4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2hfZnVsbCksCgkgIChnc3RfYnVzX2FkZF9zaWduYWxfd2F0Y2gpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgYWRkIGdzdF9idXNfYWRkX3NpZ25hbF93YXRjaF9mdWxsLgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgU21hbGwgc3R5bGUgY2xlYW51cC4KCjIwMDUtMTEtMjIgMTA6MjQ6MzEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50LmM6IEJsb2NrIHRoZSBmYWtlc3JjIHNyY3BhZCB3aGVuIHdlIHNlbmQgYW4gZXZlbnQsIHRvIGF2b2lkIGNvbnRlbnRpb24gb24gdGhlIHN0cmVhbV9sb2NrIGNhdXNpbmcgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAodGVzdF9ldmVudCksIChHU1RfU1RBUlRfVEVTVCk6CgkgIEJsb2NrIHRoZSBmYWtlc3JjIHNyY3BhZCB3aGVuIHdlIHNlbmQgYW4gZXZlbnQsIHRvIGF2b2lkCgkgIGNvbnRlbnRpb24gb24gdGhlIHN0cmVhbV9sb2NrIGNhdXNpbmcgcmFuZG9tIHRlc3QgZmFpbHVyZXMuCgoyMDA1LTExLTIyIDA5OjQyOjE3ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIEZpeCBzdWJ0cmFjdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZnJhY3Rpb25fc3VidHJhY3QpOgoJICBGaXggc3VidHJhY3Rpb24uCgoyMDA1LTExLTIyIDA5OjM1OjI1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0Lmg6IGluY2x1ZGUgImdzdGNoaWxkcHJveHkuaCIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5oOgoJICBpbmNsdWRlICJnc3RjaGlsZHByb3h5LmgiCgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgdXNlIEdfR05VQ19OVUxMX1RFUk1JTkFURUQKCjIwMDUtMTEtMjEgMjM6NTQ6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgSW1wbGVtZW50IGZyYWN0aW9uIHJhbmdlcyBhbmQgZXh0ZW5kIEdzdEZyYWN0aW9uIHRvIHN1cHBvcnQgYXJpdGhtZXRpYyBzdWJ0cmFjdGlvbiwgYXMgd2VsbCBhcyBkZXNlcmlhbGl6YXRpb24gZnJvbSBpLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfcGFyc2VfcmFuZ2UpLAoJICAoZ3N0X3N0cnVjdHVyZV9maXhhdGVfZmllbGRfbmVhcmVzdF9mcmFjdGlvbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2luaXRfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ZyZWVfZnJhY3Rpb25fcmFuZ2UpLCAoZ3N0X3ZhbHVlX2NvcHlfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2xjb3B5X2ZyYWN0aW9uX3JhbmdlKSwgKGdzdF92YWx1ZV9zZXRfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3NldF9mcmFjdGlvbl9yYW5nZV9mdWxsKSwKCSAgKGdzdF92YWx1ZV9nZXRfZnJhY3Rpb25fcmFuZ2VfbWluKSwKCSAgKGdzdF92YWx1ZV9nZXRfZnJhY3Rpb25fcmFuZ2VfbWF4KSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9mcmFjdGlvbl9yYW5nZV9zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ZyYWN0aW9uX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJhY3Rpb25fZnJhY3Rpb25fcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3N1YnRyYWN0X2ZyYWN0aW9uX3JhbmdlX2ZyYWN0aW9uKSwKCSAgKGdzdF92YWx1ZV9zdWJ0cmFjdF9mcmFjdGlvbl9yYW5nZV9mcmFjdGlvbl9yYW5nZSksCgkgIChnc3RfdmFsdWVfY29sbGVjdF9mcmFjdGlvbiksIChnc3RfdmFsdWVfZnJhY3Rpb25fbXVsdGlwbHkpLAoJICAoZ3N0X3ZhbHVlX2ZyYWN0aW9uX3N1YnRyYWN0KSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9mcmFjdGlvbiksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX3N0cmluZ19mcmFjdGlvbiksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBJbXBsZW1lbnQgZnJhY3Rpb24gcmFuZ2VzIGFuZCBleHRlbmQgR3N0RnJhY3Rpb24gdG8gc3VwcG9ydAoJICBhcml0aG1ldGljIHN1YnRyYWN0aW9uLCBhcyB3ZWxsIGFzIGRlc2VyaWFsaXphdGlvbiBmcm9tIGludGVnZXIKCSAgc3RyaW5ncyBzdWNoIGFzICIxMDAiCgkgIEFkZCBhIHRlc3RzdWl0ZSBhcyBmb3IgaW50IGFuZCBkb3VibGUgcmFuZ2Ugc2V0IG9wZXJhdGlvbnMKCjIwMDUtMTEtMjEgMTk6NTg6MjMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC86IEFkZCBnbGliLWNvbXBhdC5oLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOiBBZGQgZ2xpYi1jb21wYXQuaC4KCjIwMDUtMTEtMjEgMTk6MTM6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBmb3IgIzMyMTU5NQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgRml4IGZvciAjMzIxNTk1CgoyMDA1LTExLTIxIDE5OjAwOjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHNlZ21lbnQuaDogQW5kIGFkZCBhIG5pY2UgZGVmaW5lIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHNlZ21lbnQuaDoKCSAgQW5kIGFkZCBhIG5pY2UgZGVmaW5lIHRvby4KCjIwMDUtMTEtMjEgMTg6NTM6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC4qOiBNYWtlIGJpbmRpbmcgZnJpZW5kbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9jb3B5KSwgKGdzdF9zZWdtZW50X2dldF90eXBlKSwKCSAgKGdzdF9zZWdtZW50X25ldyksIChnc3Rfc2VnbWVudF9mcmVlKSwgKGdzdF9zZWdtZW50X2luaXQpLAoJICAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLAoJICAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLCAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLAoJICAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLCAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwKCSAgKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIE1ha2UgYmluZGluZyBmcmllbmRseS4KCjIwMDUtMTEtMjEgMTg6NDE6MzkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC86IFNwcmlua2xlIE5VTExfVEVSTUlOQVRFRCB0byB0YXN0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHRhZ3NldHRlci5oOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6IFNwcmlua2xlIE5VTExfVEVSTUlOQVRFRCB0byB0YXN0ZS4KCjIwMDUtMTEtMjEgMTg6Mjc6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlcnJvci4qOiBOZXcgZXJyb3IgY2F0ZWdvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlcnJvci5jIChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOgoJICAqIGdzdC9nc3RlcnJvci5oIChHU1RfQ09SRV9FUlJPUl9NSVNTSU5HX1BMVUdJTik6IE5ldyBlcnJvcgoJICBjYXRlZ29yeS4KCjIwMDUtMTEtMjEgMTg6MTY6MDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbSAoZ3N0X2hlYWRlcnMpOiBBZGQgZ2xpYi1jb21wYXQuaC4gbm9pbnN0IHRoZSAtcHJpdmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L01ha2VmaWxlLmFtIChnc3RfaGVhZGVycyk6IEFkZCBnbGliLWNvbXBhdC5oLgoJICAobm9pbnN0X0hFQURFUlMpOiBub2luc3QgdGhlIC1wcml2YXRlLgoKMjAwNS0xMS0yMSAxODoxMDoxMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSAgZ3N0LzogUmVtb3ZlIHVuaW1wbGVtZW50ZWQgZGVjbGFyYXRpb25zIGZvciB3aGljaCB3ZSBjYW4gc2VlIG5vIHNlbnNpYmxlIHVzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICBSZW1vdmUgdW5pbXBsZW1lbnRlZCBkZWNsYXJhdGlvbnMgZm9yIHdoaWNoIHdlIGNhbiBzZWUgbm8gc2Vuc2libGUKCSAgdXNlLgoKMjAwNS0xMS0yMSAxODowMzoyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5oOiBJbmNsdWRlIGdsaWItY29tcGF0LmguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuaDogSW5jbHVkZSBnbGliLWNvbXBhdC5oLgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOiBBZGQgR19HTlVDX05VTExfVEVSTUlOQVRFRC4KCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogSW5jbHVkZSB0aGUgcHVibGljIGFuZCB0aGUgcHJpdmF0ZSBoZWFkZXIuCgkgICogZ3N0L2dsaWItY29tcGF0LXByaXZhdGUuaDogQ29waWVkIGhlcmUgZnJvbSBnbGliLWNvbXBhdC5oLgoJICAqIGdzdC9nc3R2YWx1ZS5jOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogcy9nbGliLWNvbXBhdC9nbGliLWNvbXBhdC1wcml2YXRlLy4KCjIwMDUtMTEtMjEgMTc6MjE6MTUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudC5jIChjcmVhdGVfY3VzdG9tX2V2ZW50cyk6IENoZWNrIHRoYXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50LmMgKGNyZWF0ZV9jdXN0b21fZXZlbnRzKTogQ2hlY2sgdGhhdAoJICBGTFVTSF9TVE9QIGlzIHNlcmlhbGl6ZWQuCgkgICogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYyAoZXZlbnRfZnVuYyk6CgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jIChldmVudF9mdW5jKTogTm8gc3RyZWFtIGxvY2ssIHRoZSBjb3JlCgkgIHRha2VzIGl0LgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KTogTm8gbW9yZQoJICBzdHJlYW0gbG9jayB0YWtpbmcsIHlheS4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoR1NUX0VWRU5UX0ZMVVNIX1NUT1ApOiBNYXJrZWQgYXMgc2VyaWFsaXplZCB0bwoJICBlbnN1cmUgdGhhdCBjb3JlIHRha2VzIHRoZSBzdHJlYW0gbG9jay4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19kb19zZWVrKTogVXBkYXRlIGZvciBzdHJlYW0KCSAgbG9jayBuYW1lIGNoYW5nZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2V2ZW50KTogTm8gbmVlZCB0byB0YWtlCgkgIHRoZSBzdHJlYW0gbG9jayBmb3IgRU9TLCBORVdTRUdNRU5ULCBvciBGTFVTSF9TVE9QLCB0aGUgY29yZSBkb2VzCgkgIGl0IGFscmVhZHkuIEZvciB0aGUgZmx1c2ggc3RhcnQgd2UgZG8gdGFrZSBpdCB0aG91Z2ggc28gd2UgZ2V0IHRoZQoJICByaWdodCBwcmVyb2xsIHN0YXRlIGNoYW5nZSBtZXNzYWdlcy4KCSAgKiBnc3QvZ3N0cXVldWUuYyAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCk6IE5vIG5lZWQgdG8gdGFrZQoJICB0aGUgc3RyZWFtIGxvY2sgaGVyZSwgdGhlIGNvcmUgZG9lcyBpdCBmb3IgdXMuCgkgICogZ3N0L2dzdHBhZC5oIChHU1RfUEFEX0dFVF9TVFJFQU1fTE9DSyk6IFJlbmFtZWQgZnJvbQoJICBHU1RfU1RSRUFNX0dFVF9MT0NLLgoJICAoR1NUX1BBRF9TVFJFQU1fTE9DSywgR1NUX1BBRF9TVFJFQU1fVFJZTE9DSykKCSAgKEdTVF9QQURfU1RSRUFNX1VOTE9DSywgR1NUX1BBRF9TVFJFQU1fVU5MT0NLX0ZVTEwpCgkgIChHU1RfUEFEX1NUUkVBTV9MT0NLX0ZVTEwpOiBSZW5hbWVkIGZyb20gR1NUX1NUUkVBTV8qLgoJICAoR1NUX1BBRF9HRVRfUFJFUk9MTF9MT0NLKTogUmVuYW1lZCBmcm9tIEdTVF9QUkVST0xMX0dFVF9MT0NLLgoJICAoR1NUX1BBRF9QUkVST0xMX0xPQ0ssIEdTVF9QQURfUFJFUk9MTF9UUllMT0NLKQoJICAoR1NUX1BBRF9QUkVST0xMX1VOTE9DSyk6IFJlbmFtZWQgZnJvbSBHU1RfUFJFUk9MTF8qLgoJICAqIGdzdC9nc3RwYWQuYzogVXBkYXRlIGZvciBzdHJlYW0gbG9jayBuYW1lIGNoYW5nZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBVcGRhdGUgZm9yIHByZXJvbGwgbG9jayBuYW1lIGNoYW5nZS4KCjIwMDUtMTEtMjEgMTc6MTI6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBDb252ZXJ0IENsb2NrIGZsYWdzIHRvIG9iamVjdCBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaW5pdCksIChnc3RfY2xvY2tfc2V0X21hc3RlciksCgkgIChnc3RfY2xvY2tfZ2V0X21hc3Rlcik6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2luaXQpOgoJICBDb252ZXJ0IENsb2NrIGZsYWdzIHRvIG9iamVjdCBmbGFncy4KCSAgQWRkZWQgbWV0aG9kcyB0byBtYW5hZ2UgbWFzdGVyL3NsYXZlIGNsb2Nrcy4KCjIwMDUtMTEtMjEgMTc6MDk6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcywgcmVwbGFjZSBjb2RlIGluIHBsdWdpbnMgd2l0aCBzZWdtZW50IGhlbHBlciBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RzZWdtZW50LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbiksCgkgIChnc3RfYmFzZV9zaW5rX3F1ZXJ5KSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NyY19jb25maWd1cmVfc2VnbWVudCksIChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2V2ZW50KToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLCAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9zZWdtZW50X3NldF9sYXN0X3N0b3ApLCAoZ3N0X3NlZ21lbnRfc2V0X3NlZWspLAoJICAoZ3N0X3NlZ21lbnRfc2V0X25ld3NlZ21lbnQpLCAoZ3N0X3NlZ21lbnRfdG9fc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3NlZ21lbnRfdG9fcnVubmluZ190aW1lKSwgKGdzdF9zZWdtZW50X2NsaXApOgoJICAqIGdzdC9nc3RzZWdtZW50Lmg6CgkgIE1vcmUgc2VnbWVudCB1cGRhdGVzLCByZXBsYWNlIGNvZGUgaW4gcGx1Z2lucyB3aXRoIHNlZ21lbnQKCSAgaGVscGVyIGZ1bmN0aW9ucy4KCjIwMDUtMTEtMjEgMTY6NDY6MDcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IERvbid0IGlnbm9yZSBzc2NhbmYgcmVzdWx0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzogKGdzdF9mZHNyY191cmlfc2V0X3VyaSk6CgkgIERvbid0IGlnbm9yZSBzc2NhbmYgcmVzdWx0cwoKMjAwNS0xMS0yMSAxNjo0MToxNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5oIChHU1RfSVNfUEFEX0ZBU1QpOiBSZW1vdmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmggKEdTVF9JU19QQURfRkFTVCk6IFJlbW92ZWQuCgoyMDA1LTExLTIxIDE2OjM0OjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICAqLio6IFJhbiBzY3JpcHRzL3VwZGF0ZS1tYWNyb3MuIE9oIHllcy4gZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX0dFVF9MT0NLLCBHU1RfT0JKRUNUX0xPQ0spCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqICouaDoKCSAgKiAqLmM6IFJhbiBzY3JpcHRzL3VwZGF0ZS1tYWNyb3MuIE9oIHllcy4KCSAgKiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfR0VUX0xPQ0ssIEdTVF9PQkpFQ1RfTE9DSykKCSAgKEdTVF9PQkpFQ1RfVFJZTE9DSywgR1NUX09CSkVDVF9VTkxPQ0spOiBSZW5hbWVkIGZyb20KCSAgR1NUX0dFVF9MT0NLLCBldGMuCgkgICogc2NyaXB0cy91cGRhdGUtbWFjcm9zOiBOZXcgc2NyaXB0LiBSdW4gaXQgb24geW91ciBmaWxlcyB0bwoJICBjaGFuZ2UgR1NUX0xPQ0sgdG8gR1NUX09CSkVDVF9MT0NLLCBhbmQgdGhlIHNhbWUgZm9yIFVOTE9DSyBhcwoJICB3ZWxsLgoKMjAwNS0xMS0yMSAxNTo0NzowOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGZpeGVzLCBhZGQgbmV3IGFwaSB0byB0aGUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgIG1vcmUgZG9jcyBmaXhlcywgYWRkIG5ldyBhcGkgdG8gdGhlIGRvY3MKCjIwMDUtMTEtMjEgMTU6MDE6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6IFdpbSBjbGFpbXMgSSBjYW4gcmVtb3ZlIHRoaXMgc3RhdGVfYnJvYWRjYXN0IGNhbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6IFdpbSBjbGFpbXMgSSBjYW4gcmVtb3ZlIHRoaXMKCSAgc3RhdGVfYnJvYWRjYXN0IGNhbGwuCgoyMDA1LTExLTIxIDE0OjUzOjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0c2VnbWVudC5jIChnc3Rfc2VnbWVudF9pbml0KTogSW5pdGlhbGl6ZSBhYnNfcmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHNlZ21lbnQuYyAoZ3N0X3NlZ21lbnRfaW5pdCk6IEluaXRpYWxpemUgYWJzX3JhdGUuCgoyMDA1LTExLTIxIDE0OjUyOjU2ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBGaXggd3JvbmcgZnVuY3Rpb24gY2FsbHMgZm9yIGFycmF5cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pbnRlcnNlY3RfYXJyYXkpOiBGaXggd3JvbmcKCSAgZnVuY3Rpb24gY2FsbHMgZm9yIGFycmF5cy4KCjIwMDUtMTEtMjEgMTQ6NTA6MjIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvcmFuZG9tL2Vuc29uaWMvbWVkaWEtZGV2aWNlLWRhZW1vbi50eHQ6IHdpbGQgaWRlYSwgY2FuIHRoaXMgYmUgZG9uZT8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vZW5zb25pYy9tZWRpYS1kZXZpY2UtZGFlbW9uLnR4dDoKCSAgd2lsZCBpZGVhLCBjYW4gdGhpcyBiZSBkb25lPwoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVycm9yLmg6CgkgICogZ3N0L2dzdGZpbHRlci5jOgoJICAqIGdzdC9nc3RmaWx0ZXIuaDoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jIGZpeGVzIGFuZCBhZGRpdGlvbnMKCjIwMDUtMTEtMjEgMTQ6NDE6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChHU1RfTElWRV9CUk9BRENBU1QsIEdTVF9MSVZFX1NJR05BTCkgKEdTVF9MSVZFX1RJTUVEX1dBSVQsIEdTVF9MSVZFX1dBSVQsIEdTVF9MSVZFX0dFVF9DT05EKSAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoR1NUX0xJVkVfQlJPQURDQVNULCBHU1RfTElWRV9TSUdOQUwpCgkgIChHU1RfTElWRV9USU1FRF9XQUlULCBHU1RfTElWRV9XQUlULCBHU1RfTElWRV9HRVRfQ09ORCkKCSAgKEdTVF9MSVZFX1VOTE9DSywgR1NUX0xJVkVfVFJZTE9DSywgR1NUX0xJVkVfTE9DSykKCSAgKEdTVF9MSVZFX0dFVF9MT0NLKTogTW92ZWQgaGVyZSBmcm9tIGdzdGJhc2VzcmMuaC4gVGhleSBhcmUKCSAgcHJpdmF0ZSB0byB0aGUgYmFzZXNyYyBpbXBsZW1lbnRhdGlvbi4KCjIwMDUtMTEtMjEgMTQ6MzQ6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZW5kX2V2ZW50KTogRG9jIG1vcmUuIFRha2Ugc3RyZWFtIGxvY2sgb24gYmVoYWxmIG9mIGV2ZW50IGZ1bmN0aW9uIGlmIG5lY2Vzc2FyeS4gSXQgc2hvdWxkIG5vIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfc2VuZF9ldmVudCk6IERvYyBtb3JlLiBUYWtlIHN0cmVhbSBsb2NrIG9uCgkgIGJlaGFsZiBvZiBldmVudCBmdW5jdGlvbiBpZiBuZWNlc3NhcnkuIEl0IHNob3VsZCBubyBsb25nZXIgYmUKCSAgbmVjZXNzYXJ5IHRvIHRha2UgdGhlIHN0cmVhbSBsb2NrIGluIHBhZCdzIGV2ZW50IGZ1bmN0aW9ucy4gRml4ZXMKCSAgIzMyMDI5OS4KCjIwMDUtMTEtMjEgMTQ6Mjg6MjEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgUmVuYW1lIGdzdF9jYXBzX3N0cnVjdHVyZV9maXhhdGVfKiB0byBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV8qICgjMzIyMDI3KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfaW50KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX25lYXJlc3RfZG91YmxlKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX2Jvb2xlYW4pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgKiB3aW4zMi9nc3RyZWFtZXIuZGVmOgoJICBSZW5hbWUgZ3N0X2NhcHNfc3RydWN0dXJlX2ZpeGF0ZV8qIHRvIGdzdF9zdHJ1Y3R1cmVfZml4YXRlXyoKCSAgKCMzMjIwMjcpCgoyMDA1LTExLTIxIDE0OjI1OjIxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmZHNyYy4qOiBQb3J0IGZkOi8vIFVSSSBoYW5kbGVyIGZyb20gMC44IHRvIGZkc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOiAoX2RvX2luaXQpLCAoZ3N0X2Zkc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zkc3JjX2luaXQpLCAoZ3N0X2Zkc3JjX2Rpc3Bvc2UpLCAoZ3N0X2Zkc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfZmRzcmNfdXJpX2dldF90eXBlKSwgKGdzdF9mZHNyY191cmlfZ2V0X3Byb3RvY29scyksCgkgIChnc3RfZmRzcmNfdXJpX2dldF91cmkpLCAoZ3N0X2Zkc3JjX3VyaV9zZXRfdXJpKSwKCSAgKGdzdF9mZHNyY191cmlfaGFuZGxlcl9pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgUG9ydCBmZDovLyBVUkkgaGFuZGxlciBmcm9tIDAuOCB0byBmZHNyYwoKMjAwNS0xMS0yMSAxMzoyNjo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1vcmUgc2VnbWVudCB1cGRhdGVzIGFuZCBtb3JlIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHNlZ21lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdHNlZ21lbnRzX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIGdzdC9nc3RzZWdtZW50LmM6IChnc3Rfc2VnbWVudF9pbml0KSwgKGdzdF9zZWdtZW50X3NldF9kdXJhdGlvbiksCgkgIChnc3Rfc2VnbWVudF9zZXRfbGFzdF9zdG9wKSwgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwKCSAgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwKCSAgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBNb3JlIHNlZ21lbnQgdXBkYXRlcyBhbmQgbW9yZSBjaGVja3MuCgoyMDA1LTExLTIxIDEzOjI2OjQwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLio6IERyb3AgbGVhZGluZyAnJScgZnJvbSBHU1RfRk9VUkNDX0ZPUk1BVCwgdGh1cyBtYWtpbmcgaXQgY29uc2lzdGVudCB3aXRoIG91ciBvdGhlciBmb3JtYXQgZGVmaW5lcyAoIzMyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9mb3VyY2Nfc3RyaW5nKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfZm91cmNjKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgRHJvcCBsZWFkaW5nICclJyBmcm9tIEdTVF9GT1VSQ0NfRk9STUFULCB0aHVzIG1ha2luZyBpdAoJICBjb25zaXN0ZW50IHdpdGggb3VyIG90aGVyIGZvcm1hdCBkZWZpbmVzICgjMzIwMzI0KS4KCjIwMDUtMTEtMjEgMTM6MTI6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogUmV2ZXJ0IHByZXZpb3VzIGNvbW1pdC4gVmFsdWUgbGlzdHMgYXJlIGJ5IGRlZmluaXRpb24gbm90IGZpeGVkLCBhcyB0aGV5IGFyZSBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pc19maXhlZCk6CgkgIFJldmVydCBwcmV2aW91cyBjb21taXQuIFZhbHVlIGxpc3RzIGFyZSBieSBkZWZpbml0aW9uCgkgIG5vdCBmaXhlZCwgYXMgdGhleSBhcmUgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcy4KCjIwMDUtMTEtMjEgMTM6MDM6MzYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChHU1RfRVZFTlRfRklMTEVSKTogUmVtb3ZlZC4gQ2FuIGJlIGFkZGVkIGJhY2sgZHVyaW5nIHRoZSBzdGFibGUgc2VyaWVzIGlmIHdlIG5lZWQgaXQuIEZpeGVzICMzMTkxNzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RldmVudC5oIChHU1RfRVZFTlRfRklMTEVSKTogUmVtb3ZlZC4gQ2FuIGJlIGFkZGVkIGJhY2sKCSAgZHVyaW5nIHRoZSBzdGFibGUgc2VyaWVzIGlmIHdlIG5lZWQgaXQuIEZpeGVzICMzMTkxNzguCgkgICogZ3N0L2dzdGV2ZW50LmMgKGdzdF9ldmVudF9uZXdfZmlsbGVyKTogUmVtb3ZlZC4KCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogVXBkYXRlIGNvbW1lbnQgYWJvdXQgZmlsbGVyIGV2ZW50cy4KCjIwMDUtMTEtMjEgMTI6NDI6NDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuYzogU2hvdWxkIGhhbmRsZSBib3RoIHZhbHVlIGFycmF5cyBhbmQgdmFsdWUgbGlzdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKToKCSAgU2hvdWxkIGhhbmRsZSBib3RoIHZhbHVlIGFycmF5cyBhbmQgdmFsdWUgbGlzdHMuCgoyMDA1LTExLTIxIDEyOjI3OjAxICswMDAwICBBbGVzc2FuZHJvIERlc3NpbmEgPGFsZXNzYW5kcm9Abm52YS5vcmc+CgoJICBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2lzX2ZpeGVkKTogVXNlIGdzdF92YWx1ZV9hcnJheSBmdW5jdGlvbnMgdG8gYWNjZXNzIGFycmF5cy4gRml4ZXMgIzMyMTk2Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIHBhdGNoIGJ5OiBBbGVzc2FuZHJvIERlc3NpbmEgPGFsZXNzYW5kcm8gbm52YSBvcmc+CgkgICogZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9pc19maXhlZCk6IFVzZSBnc3RfdmFsdWVfYXJyYXkKCSAgZnVuY3Rpb25zIHRvIGFjY2VzcyBhcnJheXMuIEZpeGVzICMzMjE5NjIuCgoyMDA1LTExLTIxIDExOjI2OjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOiBnc3RfY29sbGVjdHBhZHNfZ2V0X3R5cGUgPT4gZ3N0X2NvbGxlY3RfcGFkc19nZXRfdHlwZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBnc3RfY29sbGVjdHBhZHNfZ2V0X3R5cGUgPT4gZ3N0X2NvbGxlY3RfcGFkc19nZXRfdHlwZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIFJlbW92ZSB1bnVzZWQgU0lHTkFMX0hBTkRPRkYgZW51bS4KCjIwMDUtMTEtMjEgMTE6MDY6NDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RldmVudC5oIChHc3RFdmVudFR5cGVGbGFncyk6IE5ldyBkYXRhIHR5cGUsIHRoZSBmbGFncyBvZiB0aGUgZXZlbnQgdHlwZSAodXBzdHJlYW0sIGRvd25zdHJlYW0sIHNlcmlhbGl6ZWQpLiBSZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXZlbnQuaCAoR3N0RXZlbnRUeXBlRmxhZ3MpOiBOZXcgZGF0YSB0eXBlLCB0aGUgZmxhZ3Mgb2YKCSAgdGhlIGV2ZW50IHR5cGUgKHVwc3RyZWFtLCBkb3duc3RyZWFtLCBzZXJpYWxpemVkKS4gUmVuYW1lZAoJICBHU1RfRVZESVJfKiBhbmQgR1NUX0VWU0VSIHRvIEdTVF9FVkVOVF9UWVBFXyouCgkgIChHc3RFdmVudFR5cGUpOiBVc2UgR3N0RXZlbnRUeXBlRmxhZ3MuIFJlbmFtZSBDVVNUT01fVVAgdG8KCSAgQ1VTVE9NX1VQU1RSRUFNLCBDVVNUT01fRFMgdG8gQ1VTVE9NX0RPV05TVFJFQU0sIGV0Yy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogVXBkYXRlIGZvciBuZXcgQ1VTVE9NIGV2ZW50IG5hbWVzLgoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiBVcGRhdGUgY2hlY2sgZm9yIG5ldyBDVVNUT00gZXZlbnQgbmFtZXMuCgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50LmMgKGdzdF9ldmVudF90eXBlX2dldF9mbGFncyk6IE5ldyBmdW5jdGlvbi4gRml4ZXMKCSAgYnVnICMzMTkzOTIuCgoyMDA1LTExLTIxIDExOjAwOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUmVuYW1lIGdzdF9jb2xsZWNwYWRzX2ZvbygpID0+IGdzdF9jb2xsZWN0X3BhZHNfZm9vKCkuIERvY3VtZW50IHVuaW1wbGVtZW50ZWQgZnVuY3Rpb25zIGFzIHVuaW1wbGVtZW50ZWQgKCMzMjA3NjYpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RiYXNlLmRlZjoKCSAgKiB3aW4zMi9saWJnc3RiYXNlLmRlZjoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RfcGFkc19iYXNlX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jbGFzc19pbml0KSwgKGdzdF9jb2xsZWN0X3BhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2ZpbmFsaXplKSwgKGdzdF9jb2xsZWN0X3BhZHNfbmV3KSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfc2V0X2Z1bmN0aW9uKSwgKGdzdF9jb2xsZWN0X3BhZHNfYWRkX3BhZCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3JlbW92ZV9wYWQpLCAoZ3N0X2NvbGxlY3RfcGFkc19pc19hY3RpdmUpLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19jb2xsZWN0KSwgKGdzdF9jb2xsZWN0X3BhZHNfY29sbGVjdF9yYW5nZSksCgkgIChnc3RfY29sbGVjdF9wYWRzX3N0YXJ0KSwgKGdzdF9jb2xsZWN0X3BhZHNfc3RvcCksCgkgIChnc3RfY29sbGVjdF9wYWRzX3BlZWspLCAoZ3N0X2NvbGxlY3RfcGFkc19wb3ApLAoJICAoZ3N0X2NvbGxlY3RfcGFkc19hdmFpbGFibGUpLCAoZ3N0X2NvbGxlY3RfcGFkc19yZWFkKSwKCSAgKGdzdF9jb2xsZWN0X3BhZHNfZmx1c2gpLCAoZ3N0X2NvbGxlY3RfcGFkc19ldmVudCksCgkgIChnc3RfY29sbGVjdF9wYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBSZW5hbWUgZ3N0X2NvbGxlY3BhZHNfZm9vKCkgPT4gZ3N0X2NvbGxlY3RfcGFkc19mb28oKS4gRG9jdW1lbnQKCSAgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMgYXMgdW5pbXBsZW1lbnRlZCAoIzMyMDc2NikuCgoyMDA1LTExLTIxIDEwOjQxOjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdG1lc3NhZ2UuYzogSW1wcm92ZSBkb2NzIGZvciBEVVJBVElPTiBtZXNzYWdlICh1c2FnZSBvZiBkdXJhdGlvbiBwYXJhbWV0ZXIpICgjMzIwMTEzKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBJbXByb3ZlIGRvY3MgZm9yIERVUkFUSU9OIG1lc3NhZ2UgKHVzYWdlIG9mIGR1cmF0aW9uIHBhcmFtZXRlcikKCSAgKCMzMjAxMTMpCgoyMDA1LTExLTIxIDEwOjA0OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvcmFuZG9tL21vdmluZy1wbHVnaW5zOgoJICB1cGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZQoKMjAwNS0xMS0yMSAwOTo0NDo0NiArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBsYXRlc3QgLnBjIGZpbGUgdG8gc3BlYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGxhdGVzdCAucGMgZmlsZSB0byBzcGVjCgoyMDA1LTExLTIwIDE5OjExOjA5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgc2VnbWVudCBoZWxwZXIgc3RydWN0dXJlIGFuZCBtZXRob2RzLiBOb3QgZnVsbHkgaW1wbGVtZW50ZWQgeWV0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0c2VnbWVudC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0ZXZlbnRzX3N1aXRlKSwKCSAgKG1haW4pOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHNlZ21lbnQuYzogKGdzdF9zZWdtZW50X2luaXQpLCAoZ3N0X3NlZ21lbnRfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9zZWdtZW50X3NldF9zZWVrKSwgKGdzdF9zZWdtZW50X3NldF9uZXdzZWdtZW50KSwKCSAgKGdzdF9zZWdtZW50X3RvX3N0cmVhbV90aW1lKSwgKGdzdF9zZWdtZW50X3RvX3J1bm5pbmdfdGltZSksCgkgIChnc3Rfc2VnbWVudF9jbGlwKToKCSAgKiBnc3QvZ3N0c2VnbWVudC5oOgoJICBBZGRlZCBzZWdtZW50IGhlbHBlciBzdHJ1Y3R1cmUgYW5kIG1ldGhvZHMuIE5vdCBmdWxseSBpbXBsZW1lbnRlZAoJICB5ZXQuCgkgIEFkZGVkIHNlZ21lbnQgY2hlY2suCgoyMDA1LTExLTIwIDE3OjEyOjQ5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiBBZGQgYSBkZXNlcmlhbGlzYXRpb24gdGVzdCBmb3IgZnJhY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgQWRkIGEgZGVzZXJpYWxpc2F0aW9uIHRlc3QgZm9yIGZyYWN0aW9ucwoJICAqIGV4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCksCgkgIChtYWtlX3BpcGVsaW5lKSwgKG1haW4pOgoJICBGaXggdXAgbWV0YWRhdGEgcmVhZGluZyBzYW1wbGUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIERlYnVnIGZvcm1hdCBmaXgKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBEb24ndCB0cnkgYW5kIGZpeGF0ZSBlbXB0eSBjYXBzCgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgIFdyYXAgaW4gR19CRUdJTl9ERUNMUy9HX0VORF9ERUNMUwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbGxlY3RfZnJhY3Rpb24pLAoJICAoZ3N0X3ZhbHVlX3NldF9mcmFjdGlvbiksIChnc3RfdmFsdWVfZ2V0X2ZyYWN0aW9uX2Rlbm9taW5hdG9yKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fc3RyaW5nX2ZyYWN0aW9uKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2ZyYWN0aW9uKToKCSAgQWRkIHNvbWUgZXh0cmEgZ3VhcmRzIHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGVuZCB1cAoJICB3aXRoIGFuIGludmFsaWQgZGVub21pbmF0b3Igb2YgMCBpbiBhIGdzdGZyYWN0aW9uIGFuZAoJICB0aGF0IGZyYWN0aW9ucyBhbHdheXMgZ2V0IHJlZHVjZWQuCgoyMDA1LTExLTIwIDE0OjU2OjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJICBTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIGNoYW5nZWxvZyBpbiBsYXN0IGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgU29tZXRoaW5nIHdlbnQgd3Jvbmcgd2l0aCBjaGFuZ2Vsb2cgaW4gbGFzdCBjb21taXQKCjIwMDUtMTEtMjAgMTQ6NTA6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdGZvcm1hdC5jOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgRG9jIGZpeGVzLgoKMjAwNS0xMS0yMCAxMzoyODoxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1ha2UgYSBwcm9wZXIgZW51bSBvZiB0aGUgZmxhZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBNYWtlIGEgcHJvcGVyIGVudW0gb2YgdGhlIGZsYWcuCgoyMDA1LTExLTE5IDE4OjU3OjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkIHR5cGUgdG8gcXVhcmsgYW5kIHR5cGUgdG8gc3RyaW5nIGNvbnZlcnNpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGdzdC9nc3Rmb3JtYXQuYzogKF9nc3RfZm9ybWF0X2luaXRpYWxpemUpLCAoZ3N0X2Zvcm1hdF9nZXRfbmFtZSksCgkgIChnc3RfZm9ybWF0X3RvX3F1YXJrKSwgKGdzdF9mb3JtYXRfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKF9nc3RfcXVlcnlfaW5pdGlhbGl6ZSksCgkgIChnc3RfcXVlcnlfdHlwZV9nZXRfbmFtZSksIChnc3RfcXVlcnlfdHlwZV90b19xdWFyayksCgkgIChnc3RfcXVlcnlfdHlwZV9yZWdpc3Rlcik6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIEFkZCB0eXBlIHRvIHF1YXJrIGFuZCB0eXBlIHRvIHN0cmluZyBjb252ZXJzaW9ucy4KCjIwMDUtMTEtMTkgMTg6MzI6MDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaCAoR1NUX0JVRkZFUl9GTEFHX09SSUdJTkFMKTogUmVtb3ZlZC4gRml4ZXMgIzMyMDA5Ny4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1ZmZlci5oIChHU1RfQlVGRkVSX0ZMQUdfT1JJR0lOQUwpOiBSZW1vdmVkLiBGaXhlcwoJICAjMzIwMDk3LgoKMjAwNS0xMS0xOSAxODoyODo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIE1ha2UgbWVzc2FnZSBoYW5kbGluZyBvdmVycmlkYWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChnc3RfYmluX2hhbmRsZV9tZXNzYWdlX2Z1bmMpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgTWFrZSBtZXNzYWdlIGhhbmRsaW5nIG92ZXJyaWRhYmxlLgoKMjAwNS0xMS0xOSAxODoyNjozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5oIChHU1RfUEFEX0lTX1VTQUJMRSk6IFJlbW92ZWQuIEZpeGVzICMzMjEyMzUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuaCAoR1NUX1BBRF9JU19VU0FCTEUpOiBSZW1vdmVkLiBGaXhlcyAjMzIxMjM1LgoKMjAwNS0xMS0xOSAxODoxNzoyOSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNsb2NrLio6IENoYW5nZSByZXNvbHV0aW9uIHRvIGJlIGEgR3N0Q2xvY2tUaW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0Y2xvY2suYyAoR3N0Q2xvY2ssIEdzdENsb2NrQ2xhc3MpOiBDaGFuZ2UgcmVzb2x1dGlvbiB0bwoJICBiZSBhIEdzdENsb2NrVGltZS4KCSAgKGdzdF9jbG9ja19zZXRfcmVzb2x1dGlvbiwgZ3N0X2Nsb2NrX2dldF9yZXNvbHV0aW9uKTogUmVzb2x1dGlvbgoJICBpcyBhIEdzdENsb2NrVGltZS4gRml4ZXMgIzMyMTcxMC4KCjIwMDUtMTEtMTkgMTg6MDY6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IFJlbW92ZSBvZmZzZXQgcHJvcGVydHkuIEFkZCBpbnRlcm5hbF9jYWxpYnJhdGlvbiBhbmQgZXh0ZXJuYWxfY2FsaWJyYXRpb24uIEZpeCBwYWRkaW5nLiBQYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y2xvY2suaCAoR3N0Q2xvY2spOiBSZW1vdmUgb2Zmc2V0IHByb3BlcnR5LiBBZGQKCSAgaW50ZXJuYWxfY2FsaWJyYXRpb24gYW5kIGV4dGVybmFsX2NhbGlicmF0aW9uLiBGaXggcGFkZGluZy4gUGFkCgkgIGFsc28gYnkgR3N0Q2xvY2tUaW1lIHNvIHdlIGRvbid0IHJ1biBpbnRvIHByb2JsZW1zLgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfc2V0X3JhdGVfb2Zmc2V0KTogUmVtb3ZlLgoJICAoZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCk6IFJlbW92ZS4KCSAgKGdzdF9jbG9ja19zZXRfdGltZV9hZGp1c3QpOiBSZW1vdmUuIEZpeGVzICMzMjE3MTIuCgoyMDA1LTExLTE5IDE3OjUwOjUyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuaDogZ3N0L2dzdHV0aWxzLmMgKGdfc3RhdGljX3JlY19jb25kX3dhaXQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICAqIGdzdC9nc3R1dGlscy5jIChnX3N0YXRpY19yZWNfY29uZF93YWl0KQoJICAoZ19zdGF0aWNfcmVjX2NvbmRfdGltZWRfd2FpdCk6IFJlbW92ZWQsIG5vIGxvbmdlciBuZWVkZWQuCgkgICogZ3N0L2dzdGJpbi5jOiBSZW1vdmUgdGVycmlibGUgY29udGludWVfc3RhdGUgcHJvdG90eXBlLgoJICAqIGdzdC9nc3RlbGVtZW50LmggKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKTogTWFrZSBwdWJsaWMuCgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpOiBSZW1vdmVkLCByZXBsYWNlZAoJICBieSBjb250aW51ZV9zdGF0ZS4gRml4ZXMgIzMxOTM4OS4KCjIwMDUtMTEtMTkgMTc6Mjg6NTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RpbmRleC5oIChHc3RJbmRleEZpbHRlcik6IEFjdHVhbGx5IHBhc3Mgb24gdGhlIHVzZXJfZGF0YS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGluZGV4LmggKEdzdEluZGV4RmlsdGVyKTogQWN0dWFsbHkgcGFzcyBvbiB0aGUgdXNlcl9kYXRhLgoJICBSZWFsbHkgZml4ZXMgIzE2ODQzOC4gSG93ZXZlciBJIGRvbid0IHNlZSBhbnl3aGVyZSB3aGVyZSB0aGUKCSAgZmlsdGVyIGZ1bmN0aW9uIGlzIGNhbGxlZC4uLiBzdHVwaWQgR1N0cmVhbWVyLi4uCgoyMDA1LTExLTE5IDE3OjI2OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aW5kZXguaCAoR3N0SW5kZXgpOiBBZGQgZmllbGQgZm9yIHVzZXJfZGF0YV9kZXN0cm95LiBXZSBkb24ndCBoYXZlIGEgZGlzcG9zZSBmdW5jdGlvbiwgc28gaXQgd29uJ3QgZ2V0IGNhbGxlZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGluZGV4LmggKEdzdEluZGV4KTogQWRkIGZpZWxkIGZvciB1c2VyX2RhdGFfZGVzdHJveS4gV2UKCSAgZG9uJ3QgaGF2ZSBhIGRpc3Bvc2UgZnVuY3Rpb24sIHNvIGl0IHdvbid0IGdldCBjYWxsZWQgd2hlbiB0aGUKCSAgb2JqZWN0IGlzIHVucmVmZmVkLCBidXQgb2ggd2VsbCEKCSAgKiBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X3NldF9maWx0ZXJfZnVsbCk6IE5ldyBBUEkgZnVuY3Rpb24sCgkgIGFsbG93cyBhIGRlc3Ryb3kgZnVuY3Rpb24gdG8gYmUgc2V0IHNvIHVzZXJfZGF0YSBjYW4gYmUgZnJlZWQuCgkgIEZpeGVzICMxNjg0MzguCgkgIChnc3RfaW5kZXhfc2V0X2ZpbHRlcik6IENhbGwgZ3N0X2luZGV4X3NldF9maWx0ZXJfZnVsbC4KCjIwMDUtMTEtMTkgMTc6MDg6MjMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3R2YWx1ZS5jICh0ZXN0X3N0cmluZyk6IEFkZCB0ZXN0IGZvciBidWcgIzE2NTY1MC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmMgKHRlc3Rfc3RyaW5nKTogQWRkIHRlc3QgZm9yIGJ1ZyAjMTY1NjUwLgoJICAqIGdzdC9nc3R2YWx1ZS5jIChnc3Rfc3RyaW5nX3dyYXApOiBUcnlpbmcgdG8gc2VyaWFsaXplIGEgTlVMTAoJICBzdHJpbmcgc2hvdWxkIHByb2R1Y2UgYW4gZXJyb3IsIGdpdmVuIHRoZSBsYWNrIG9mIGEgd2F5IHRvCgkgIHJlcHJlc2VudCBOVUxMIHN0cmluZ3MuIEZpeGVzICMxNjU2NTAuCgoyMDA1LTExLTE5IDE2OjQ2OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dmFsdWUuaDogZ3N0L2dzdHZhbHVlLmMgKGdzdF92YWx1ZV9hcnJheV9hcHBlbmRfdmFsdWUpIChnc3RfdmFsdWVfYXJyYXlfcHJlcGVuZF92YWx1ZSwgZ3N0X3ZhbHVlX2FycmF5X2dldF9zaXplKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYyAoZ3N0X3ZhbHVlX2FycmF5X2FwcGVuZF92YWx1ZSkKCSAgKGdzdF92YWx1ZV9hcnJheV9wcmVwZW5kX3ZhbHVlLCBnc3RfdmFsdWVfYXJyYXlfZ2V0X3NpemUpCgkgIChnc3RfdmFsdWVfYXJyYXlfZ2V0X3ZhbHVlKTogTmV3IEFQSSwgY29waWVkIGZyb20KCSAgZ3N0X3ZhbHVlX2xpc3RfKiwgb25seSBvcGVyYXRlcyBvbiBhcnJheXMuCgkgIChnc3RfdmFsdWVfbGlzdF9hcHBlbmRfdmFsdWUsIGdzdF92YWx1ZV9saXN0X3ByZXBlbmRfdmFsdWUpCgkgIChnc3RfdmFsdWVfbGlzdF9jb25jYXQsIGdzdF92YWx1ZV9saXN0X2dldF9zaXplKQoJICAoZ3N0X3ZhbHVlX2xpc3RfZ2V0X3ZhbHVlKTogT25seSBvcGVyYXRlIG9uIGxpc3RzLiBGaXhlcyAjMTU2NjMzLgoJICAqIGdzdC9nc3R2YWx1ZS5jIChnc3RfdmFsdWVfaW5pdF9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tCgkgIGluaXRfbGlzdCwgYmVjYXVzZSBpdCB3b3JrcyBvbiBib3RoLgoJICAoY29weV9nYXJyYXlfb2ZfZ3N0dmFsdWUpOiBSZW5hbWVkIGZyb20gZ3N0X3ZhbHVlX2xpc3RfY29weV9hcnJheS4KCSAgKGdzdF92YWx1ZV9jb3B5X2xpc3Rfb3JfYXJyYXkpOiBSZW5hbWVkIGZyb20gY29weV9saXN0LgoJICAoZ3N0X3ZhbHVlX2ZyZWVfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBmcmVlX2xpc3QuCgkgIChnc3RfdmFsdWVfY29sbGVjdF9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGNvbGxlY3RfbGlzdC4KCSAgKGdzdF92YWx1ZV9sY29weV9saXN0X29yX2FycmF5KTogUmVuYW1lZCBmcm9tIGxjb3B5X2xpc3QuCgkgIChnc3RfdmFsdWVfbGlzdF9vcl9hcnJheV9wZWVrX3BvaW50ZXIpOiBSZW5hbWVkIGZyb20KCSAgbGlzdF9wZWVrX3BvaW50ZXIuCgkgIChfZ3N0X3ZhbHVlX2FycmF5X3ZhbHVlX3RhYmxlLCBfZ3N0X3ZhbHVlX2xpc3RfdmFsdWVfdGFibGUpOgoJICBVcGRhdGUgdmFsdWUgdGFibGUgZnVuY3Rpb25zLgoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfbGlzdF9vcl9hcnJheSk6IFJlbmFtZWQgZnJvbSBjb21wYXJlX2xpc3QuCgoyMDA1LTExLTE5IDE2OjA1OjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3R0YWdsaXN0Lmg6IFdob29wcywgZm9yZWFjaCBmdW5jdGlvbiByZXR1cm5zIHZvaWQuIEFsc28gZml4IHNvbWUgY29uc3RuZXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3R0YWdsaXN0Lmg6IFdob29wcywgZm9yZWFjaCBmdW5jdGlvbiByZXR1cm5zIHZvaWQuIEFsc28gZml4CgkgIHNvbWUgY29uc3RuZXNzLgoKMjAwNS0xMS0xOSAxNTo1MTo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHRhZ2xpc3QuKjogT3BlcmF0ZXMgb24gYSBjb25zdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0LmggKGdzdF90YWdfbGlzdF9mb3JlYWNoKTogT3BlcmF0ZXMgb24gYSBjb25zdAoJICBHc3RUYWdMaXN0Ki4gRml4ZXMgIzE0MzQ3Mi4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6IENsYXJpZnkgd2hhdCB0aGUgZm9yZWFjaC9tYXAgZnVuY3Rpb25zIGNhbgoJICBvciBjYW4ndCBkbyB0byB0aGVpciBhcmd1bWVudHMuCgoyMDA1LTExLTE4IDE5OjIxOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmM6IERvYyBhbmQgQVBJIGZpeGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24pLAoJICAoZ3N0X2Nsb2NrX2dldF9jYWxpYnJhdGlvbik6CgkgIERvYyBhbmQgQVBJIGZpeGVzLgoJICBDYWxsaWJyYXRpb24gY2FuIGJlIHNldCB3aXRoIGludGVybmFsIHRpbWUgZXF1YWwgdG8gY3VycmVudAoJICBpbnRlcm5hbCB0aW1lIHRvby4KCjIwMDUtMTEtMTggMTg6NTU6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVycm9yLio6IGRvY3VtZW50CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBkb2N1bWVudAoKMjAwNS0xMS0xOCAxODozODo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3JhbmRvbS9tb3ZpbmctcGx1Z2luczoKCSAgZG9jdW1lbnQgb24gcmVxdWlyZW1lbnRzIGZvciBtb3ZpbmcgcGx1Z2lucyB0byBnb29kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2N1bWVudCBvbiByZXF1aXJlbWVudHMgZm9yIG1vdmluZyBwbHVnaW5zIHRvIGdvb2QKCjIwMDUtMTEtMTggMTY6MjQ6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEFkZCBuZXQgcGtnY29uZmlnIGZpbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjb25maWd1cmUuYWM6CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1uZXQtdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL01ha2VmaWxlLmFtOiBBZGQgbmV0IHBrZ2NvbmZpZyBmaWxlcy4KCjIwMDUtMTEtMTggMTY6MDQ6MjggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IGRvY3MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuYzoKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZG9jcyBmaXhlcwoKMjAwNS0xMS0xOCAxNTo1MjoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiBUdXJuIG9mZiBkZWJ1Z2dpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogVHVybiBvZmYgZGVidWdnaW5nLgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogQXNzZXJ0IHRoYXQgdGhlCgkgIHRpbWVzIGNvbm52ZXJnZSBzb21ld2hhdC4gQ2FuJ3QgbWFrZSBhIHJlYWwgdGVzdC4KCjIwMDUtMTEtMTggMTU6MzA6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pOiBVc2UgYWxsIGludGVnZXIgYXJpdGhtZXRpYy4gUmV0dXJuIHRoZSBtaW5pbXVtIG9mIHRoZSBkb21haW4sIHdoaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogVXNlIGFsbAoJICBpbnRlZ2VyIGFyaXRobWV0aWMuIFJldHVybiB0aGUgbWluaW11bSBvZiB0aGUgZG9tYWluLCB3aGljaCBjYW4gYmUKCSAgc2V0IGFzICJpbnRlcm5hbCIgZm9yIGdzdF9jbG9ja19zZXRfY2FsaWJyYXRpb24uCgkgIChnc3RfbmV0X2NsaWVudF9jbG9ja19vYnNlcnZlX3RpbWVzKTogQ2FsbCBfc2V0X2NhbGlicmF0aW9uLgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KTogQ2FsbCBfc2V0X2NhbGlicmF0aW9uIGluc3RlYWQgb2YKCSAgcmF0ZV9vZmZzZXQuCgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKHRlc3RfZnVuY3Rpb25pbmcpOiBVc2UgdGhlIHJpZ2h0CgkgIGFkanVzdG1lbnQgYXBpLgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfZ2V0X2NhbGlicmF0aW9uKQoJICAoZ3N0X2Nsb2NrX3NldF9jYWxpYnJhdGlvbik6IE5ldyBmdW5jdGlvbnMsIG9ic29sZXRlIHRoZSBvbmVzIEkKCSAgYWRkZWQgeWVzdGVyZGF5LiBEb2guIFByZWNpc2lvbiBpc3N1ZXMgbWVhbiB3ZSBoYXZlIHRvIGV4dHJhcG9sYXRlCgkgIGZyb20gYSBwb2ludCBpbiB0aGUgbW9yZSByZWNlbnQgcGFzdCB0aGFuIDE5NzAuCgkgIChnc3RfY2xvY2tfZ2V0X3JhdGVfb2Zmc2V0LCBnc3RfY2xvY2tfc2V0X3JhdGVfb2Zmc2V0KTogTWFyayBhcwoJICBvYnNvbGV0ZS4KCSAgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpOiBVc2UgdGhlIHJpZ2h0IGNhbGlicmF0aW9uIGRhdGEuCgoyMDA1LTExLTE4IDE0OjQ5OjI4ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogQWxzbyByZXNldCB0aGUgLT5jdXJyZW50XyogdmFsdWVzIGluIFJFQURZLT5QQVVTRUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgQWxzbyByZXNldCB0aGUgLT5jdXJyZW50XyogdmFsdWVzIGluIFJFQURZLT5QQVVTRUQKCjIwMDUtMTEtMTggMTQ6MTM6MjggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKTogV2hvb3BzLCBjaGVjayB0aGUgcmlnaHQgZmQuIEFsc28gYWRkIHNvbWUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmMgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgIFdob29wcywgY2hlY2sgdGhlIHJpZ2h0IGZkLiBBbHNvIGFkZCBzb21lIGRlYnVnZ2luZy4KCSAgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX29ic2VydmVfdGltZXMpOiBBZGp1c3QgZm9yIGludDY0IG9mZnNldC4KCSAgKGRvX2xpbmVhcl9yZWdyZXNzaW9uKTogQWRkIGEgY3JhcGxvYWQgb2YgZGVidWdnaW5nLiBTdWJ0cmFjdCBvZmYKCSAgdGhlIG1pbmltdW0gdmFsdWVzIGZyb20gdGhlIGlucHV0IHNlcmllcyB0byBkaXNjYXJkIHVubmVlZGVkIGJpdHMuCgkgIFVzZSBvbmx5IGludCBhcml0aG1ldGljLiBUaGVyZSBpcyBzdGlsbCBkb3VibGUgYXJpdGhtZXRpYyB3aGVuCgkgIGNhbGN1bGF0aW5nIHRoZSBpbnRlcmNlcHQgdGhhdCBuZWVkcyBmaXhpbmcuIFJldHVybiBib29sZWFuIHRvCgkgIGluZGljYXRlIHN1Y2Nlc3M7IEZBTFNFIHdvdWxkIG1lYW4gdGhlIGRvbWFpbiBvciByYW5nZSBpcyB0b28KCSAgZ3JlYXQuIFN0aWxsIG5lZWRzIGZpeGVzLgoKMjAwNS0xMS0xOCAxMzoxODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEZvciB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiBzdHJlYW0gdGltZSwgd2UgbmVlZCB0byBzdWJ0cmFjdCBhY2N1bXVsYXRlZCB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBGb3IgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gc3RyZWFtIHRpbWUsIHdlIG5lZWQgdG8gc3VidHJhY3QKCSAgYWNjdW11bGF0ZWQgdGltZS4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKToKCSAgUmVsZWFzZSBsb2NrIGJlZm9yZSBjYWxsaW5nIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBvZiBhc3luYwoJICBlbnRyaWVzLgoKMjAwNS0xMS0xOCAxMTo1NzozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KTogUG9ydCBnb2VzIGFsbCB0aGUgd2F5IHRvIE1BWFVJTlQxNi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja19jbGFzc19pbml0KToKCSAgUG9ydCBnb2VzIGFsbCB0aGUgd2F5IHRvIE1BWFVJTlQxNi4KCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBNYWtlIHRoZSBwb3J0IHJhbmdlIHRoZSBzYW1lIGFzCgkgIGZvciB0aGUga2VybmVsOiAwIGFzc2lnbnMsIG90aGVyd2lzZSBwb3J0cyBhcmUgbGVzcyB0aGFuCgkgIE1BWFVJTlQxNi4KCSAgKiBjaGVjay9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IEFkYXB0IGZvciAwID09IGtlcm5lbCBhc3NpZ25zCgkgIHBvcnQgY2hhbmdlLgoJICAqIGNoZWNrL25ldC9nc3RuZXRjbGllbnRjbG9jay5jICh0ZXN0X2Z1bmN0aW9uaW5nKTogQWRkIHRoZSBzdGFydAoJICBvZiBhbm90aGVyIHRlc3QuCgoyMDA1LTExLTE4IDExOjAzOjEwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi4qOiBSZW1vdmluZyBhIGNsb2NrIHByb3ZpZGVyIGZyb20gYSBiaW4sIHRyaWdnZXJzIGEgY2xvY2sgbG9zdCBtZXNzYWdlIHNvIHRoYXQgYSBuZXcgY2xvY2sgd2lsbCBiZSBzZWxlY3RlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgICogZ3N0L2dzdGJpbi5oOgoJICBSZW1vdmluZyBhIGNsb2NrIHByb3ZpZGVyIGZyb20gYSBiaW4sIHRyaWdnZXJzIGEgY2xvY2sgbG9zdCBtZXNzYWdlCgkgIHNvIHRoYXQgYSBuZXcgY2xvY2sgd2lsbCBiZSBzZWxlY3RlZC4KCSAgQWRkaW5nIGEgY2xvY2sgdG8gYSBiaW4gdHJpZ2dlcnMgYSBjbG9jayBwcm92aWRlciBtZXNzYWdlLgoJICBNYWtlIHN1cmUgd2UgcmVzZWxlY3QgYSBjbG9jayB3aGVuIHdlIHJlY2VpdmVkIGEgY2xvY2sgbG9zdCBtZXNzYWdlLgoJICBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IHRoYXQgcHJvdmlkZWQgdGhlIGNsb2NrLgoKMjAwNS0xMS0xOCAxMDo1NDo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jIChnc3RfbmV0X2NsaWVudF9jbG9ja19uZXcpOiBBZGp1c3QgdGhlIGNsb2NrIGluaXRpYWxseSBzbyBpdCBwcm9kdWNlcyB2YWx1ZXMgYXJvdW5kIHRoZSBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYyAoZ3N0X25ldF9jbGllbnRfY2xvY2tfbmV3KTogQWRqdXN0CgkgIHRoZSBjbG9jayBpbml0aWFsbHkgc28gaXQgcHJvZHVjZXMgdmFsdWVzIGFyb3VuZCB0aGUgYmFzZSB0aW1lLgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfY2xhc3NfaW5pdCk6IFR5cG8gZml4LgoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfdGhyZWFkKTogQWRkIG5vdGUgb24gd2hlbiB0aGUgc29ja2V0IGdldHMKCSAgY2xvc2VkLgoKMjAwNS0xMS0xNyAxODo1MDoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suYzogRnJlZSByZW1vdGUgYW5kIGxvY2FsIHRpbWUgYXJyYXlzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IChnc3RfbmV0X2NsaWVudF9jbG9ja19maW5hbGl6ZSk6CgkgIEZyZWUgcmVtb3RlIGFuZCBsb2NhbCB0aW1lIGFycmF5cy4KCjIwMDUtMTEtMTcgMTg6MTg6NDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IEZpeCBjb21waWxhdGlvbiwgdW5pbml0aWFsaXplZCB2YXJzIGFuZCBhIGZvcmdvdHRlbiBjb250aW51ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L25ldC9nc3RuZXRjbGllbnRjbG9jay5jOiAoZG9fbGluZWFyX3JlZ3Jlc3Npb24pLAoJICAoZ3N0X25ldF9jbGllbnRfY2xvY2tfZG9fc2VsZWN0KSwgKGdzdF9uZXRfY2xpZW50X2Nsb2NrX3RocmVhZCk6CgkgIEZpeCBjb21waWxhdGlvbiwgdW5pbml0aWFsaXplZCB2YXJzIGFuZCBhIGZvcmdvdHRlbiBjb250aW51ZS4KCjIwMDUtMTEtMTcgMTc6NTU6MTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrLzogQWRkIGEgbW9zdCBtaW5pbWFsIHRlc3QgZm9yIHRoZSBuZXQgY2xpZW50IGNsb2NrLiBNb3JlIHRvIGNvbWUgbGF0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtIChjaGVja19QUk9HUkFNUyk6CgkgICogY2hlY2svbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IEFkZCBhIG1vc3QgbWluaW1hbCB0ZXN0IGZvciB0aGUKCSAgbmV0IGNsaWVudCBjbG9jay4gTW9yZSB0byBjb21lIGxhdGVyLgoJICAqIGdzdC9uZXQvZ3N0bmV0Lmg6CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbTogQWRkIG5ldGNsaWVudGNsb2NrLgoJICAqIGdzdC9uZXQvZ3N0bmV0Y2xpZW50Y2xvY2suaDoKCSAgKiBnc3QvbmV0L2dzdG5ldGNsaWVudGNsb2NrLmM6IE5ldyBmaWxlcywgaW1wbGVtZW50IGFuIHVudGVzdGVkCgkgIEdzdENsb2NrIHRoYXQgdGFrZXMgaXRzIHRpbWUgZnJvbSBhIG5ldHdvcmsgdGltZSBwcm92aWRlci4KCSAgSW1wbGVtZW50cyB0aGUgYWxnb3JpdGhtIGluIG5ldHdvcmstY2xvY2suc2NtLgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtICgqd2luZG93LXNpemUqKTogUmVuYW1lIGZyb20KCSAgKnF1ZXVlLWxlbmd0aCouCgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKG5ldHdvcmstdGltZSk6CgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY20gKHEtcHVzaCk6IFVwZGF0ZSBjYWxsZXJzLgoKMjAwNS0xMS0xNyAxNjowMjo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQW5kIHVucmVmIHRoZSBjaGlsZCB0b28uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV3KToKCSAgQW5kIHVucmVmIHRoZSBjaGlsZCB0b28uLgoKMjAwNS0xMS0xNyAxNDo1MToxMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogUmVmYWN0b3IgdGhlIHNvcnQgaXRlcmF0b3Igc28gaXQgY2FuIGJlIHVzZWQgd2hpbGUgaG9sZGluZyB0aGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXcpLCAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCk6CgkgIFJlZmFjdG9yIHRoZSBzb3J0IGl0ZXJhdG9yIHNvIGl0IGNhbiBiZSB1c2VkIHdoaWxlIGhvbGRpbmcgdGhlCgkgIExPQ0sgdG9vLgoJICBNYWtlIGNsb2NrIHNlbGVjdGlvbiBzZWxlY3QgYSBjbG9jayBjbG9zZXN0IHRvIHRoZSBzb3VyY2UuCgoyMDA1LTExLTE3IDEyOjM2OjMwICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvZ3N0Y2xvY2suKjogQW5vbnltb3VzIHN0cnVjdHMgYXJlIGEgZ2NjIChhbmQgc29tZSBvdGhlciBjb21waWxlcnMpIGV4dGVuc2lvbiwgc28gZG9uJ3QgdXNlIHRoZW0uIFNpbmNlIHRoaXMgaXMgb24uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaW5pdCksIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKSwKCSAgKGdzdF9jbG9ja19zZXRfcmF0ZV9vZmZzZXQpLCAoZ3N0X2Nsb2NrX2dldF9yYXRlX29mZnNldCk6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIEFub255bW91cyBzdHJ1Y3RzIGFyZSBhIGdjYyAoYW5kIHNvbWUgb3RoZXIgY29tcGlsZXJzKSBleHRlbnNpb24sIHNvCgkgIGRvbid0IHVzZSB0aGVtLiBTaW5jZSB0aGlzIGlzIG9ubHkgZm9yIEFCSS1jb21wYXRpYmlsaXR5LCBhbmQgb3VyCgkgIEFQSS9BQkkgZnJlZXplIGlzIG92ZXIgaW4gYSBmZXcgZGF5cywgdGhpcyB3aG9sZSB0aGluZyB3aWxsIG9ubHkKCSAgbGFzdCBhIGZldyBkYXlzLCBzbyBkb24ndCBib3RoZXIgdHJ5aW5nIHRvIHRoaW5rIHVwIGEgbWVhbmluZ2Z1bAoJICBuYW1lIGZvciB0aGUgc3RydWN0LgoKMjAwNS0xMS0xNyAxMTo1MTo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNsb2NrLmggKEdzdENsb2NrKTogQWRkIHJhdGUgYW5kIG9mZnNldCBwcm9wZXJ0aWVzLCBwcmVzZXJ2aW5nIEFCSSBzdGFiaWxpdHkuIEFkZCByYXRlL29mZnNldCBhY2Nlc3NvcnMuIFdpbGwgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RjbG9jay5oIChHc3RDbG9jayk6IEFkZCByYXRlIGFuZCBvZmZzZXQgcHJvcGVydGllcywKCSAgcHJlc2VydmluZyBBQkkgc3RhYmlsaXR5LiBBZGQgcmF0ZS9vZmZzZXQgYWNjZXNzb3JzLiBXaWxsIGZpbGUgYnVnCgkgIGZvciB0aGUgZnJlZXplIGJyZWFrLgoJICAqIGdzdC9nc3RjbG9jay5jIChnc3RfY2xvY2tfYWRqdXN0X3VubG9ja2VkKTogSW1wbGVtZW50IHVzaW5nIHJhdGUKCSAgYW5kIG9mZnNldCwgdHJ5aW5nIHRvIGtlZXAgcHJlY2lzaW9uIGFuZCBhdm9pZGluZwoJICB1bmRlcmZsb3cvb3ZlcmZsb3cuCgkgIChnc3RfY2xvY2tfc2V0X3JhdGVfb2Zmc2V0LCBnc3RfY2xvY2tfZ2V0X3JhdGVfb2Zmc2V0KTogTmV3CgkgIGZ1bmN0aW9ucy4gTWFrZSBnc3RfY2xvY2tfc2V0X3RpbWVfYWRqdXN0IG9ic29sZXRlLgoJICAoZ3N0X2Nsb2NrX3NldF90aW1lX2FkanVzdCk6IE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIG9ic29sZXRlLgoJICBXaWxsIGZpbGUgYnVnIHNvb24uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOiBNYWtlIHRoZSBBQkktc3RhYmlsaXR5IGhhY2sKCSAgZ3JlcHBhYmxlIGJ5IHVzaW5nIEdTVF9QQURESU5HLTErMS4KCjIwMDUtMTEtMTcgMTE6MjU6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9yYW5kb20vTk9URVMtMC4xLjE6CgkqIGRvY3MvcmFuZG9tL05PVEVTLTAuMi4wOgoJKiBkb2NzL3JhbmRvbS9UT0RPLXBvc3QtMC4xLjA6CgkqIGRvY3MvcmFuZG9tL2FyY2g6CgkqIGRvY3MvcmFuZG9tL2Nvcm91dGluZXM6CgkqIGRvY3MvcmFuZG9tL2Rlc2lnbjoKCSogZG9jcy9yYW5kb20vZmFjdG9yeWluZm86CgkqIGRvY3MvcmFuZG9tL2dib29sZWFuOgoJKiBkb2NzL3JhbmRvbS9wYWRhcmNoOgoJKiBkb2NzL3JhbmRvbS9zZXF1ZW5jZToKCSogZG9jcy9yYW5kb20vc3RhdGUtdHJhbnNpdGlvbnM6CgkqIGRvY3MvcmFuZG9tL3N0YXRlczoKCSogZG9jcy9yYW5kb20vc3RhdGVzLm5ldzoKCSogZG9jcy9yYW5kb20vc3RhdGVzLm9sZDoKCSogZG9jcy9yYW5kb20vd2Fsa3Rocm91Z2g6CgkgIHJlbW92ZSBjb21wbGV0ZWx5IG91dGRhdGVkIHJhbmRvbSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY29tcGxldGVseSBvdXRkYXRlZCByYW5kb20gZG9jcwoKMjAwNS0xMS0xNyAwOTozNzo1NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLmM6IEFzc2VydGlvbiBzaG91bGQgY2hlY2sgZm9yIENMT0NLX0xPU1QsIG5vdCBORVdfQ0xPQ0sgKCMzMjE2NDgpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfbG9zdCk6CgkgIEFzc2VydGlvbiBzaG91bGQgY2hlY2sgZm9yIENMT0NLX0xPU1QsIG5vdCBORVdfQ0xPQ0sgKCMzMjE2NDgpLgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkgIERvbid0IHVzZSBjKysgc3R5bGUgY29tbWVudHMgaW4gaGVhZGVycyAoIzMyMTYzOCkuCgoyMDA1LTExLTE2IDE4OjM3OjU3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldHRpbWVwYWNrZXQuYyAoZ3N0X25ldF90aW1lX3BhY2tldF9zZW5kKTogRnJlZSBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXBhY2tldC5jIChnc3RfbmV0X3RpbWVfcGFja2V0X3NlbmQpOiBGcmVlCgkgIGJ1ZmZlci4KCjIwMDUtMTEtMTYgMTg6MTY6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHRpbWUgcHJvdmlkZXIgYWN0dWFsbHkgcHJvdmlkZXMgdGltZXMuIFdvcmtzLCB5byEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBDaGVjayB0byBzZWUgdGhhdCB0aGUgdGltZQoJICBwcm92aWRlciBhY3R1YWxseSBwcm92aWRlcyB0aW1lcy4gV29ya3MsIHlvIQoKMjAwNS0xMS0xNiAxODowOTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBFbmFibGUgbW9yZSB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIEVuYWJsZSBtb3JlIHRlc3RzLgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgU2V0IGVsZW1lbnQgdG8gTlVMTCBiZWZvcmUgZGlzcG9zaW5nIGl0LgoKMjAwNS0xMS0xNiAxNzo1Mzo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvbmV0L01ha2VmaWxlLmFtOgoJICBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeAoKMjAwNS0xMS0xNiAxNzo1MjowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L25ldC86IFVzZSB0aGUgdGltZXBhY2tldCBzdHVmZiBpbiB0aGUgcHJvdmlkZXIsIGluY2x1ZGUgaXQgZnJvbSBnc3RuZXQuaCwgYW5kIGFkZCBpdCB0byB0aGUgYnVpbGQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9uZXQvTWFrZWZpbGUuYW06CgkgICogZ3N0L25ldC9nc3RuZXQuaDoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmg6IFVzZSB0aGUgdGltZXBhY2tldCBzdHVmZiBpbiB0aGUKCSAgcHJvdmlkZXIsIGluY2x1ZGUgaXQgZnJvbSBnc3RuZXQuaCwgYW5kIGFkZCBpdCB0byB0aGUgYnVpbGQuCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0Lmg6CgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcGFja2V0LmM6IE5ldyBmaWxlcywgYWJzdHJhY3RzIG91dCB0aGUgcGFja2V0CgkgIHNlbmRpbmcgYW5kIHJlY2VpdmluZy4KCjIwMDUtMTEtMTYgMTc6MzU6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogRW5hYmxlIHZhbGdyaW5kIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgRW5hYmxlIHZhbGdyaW5kIGNoZWNrLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfYWxsb2NfcGFyZW50KSwKCSAgKGdzdF9mYWtlX3NyY19hbGxvY19idWZmZXIpOgoJICBGaXggbWVtbGVhay4KCjIwMDUtMTEtMTYgMTc6MjI6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5jOiBDYWxsIHBhcmVudCBmaW5hbGl6ZSB0b28uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9uZXQvZ3N0bmV0dGltZXByb3ZpZGVyLmM6IChnc3RfbmV0X3RpbWVfcHJvdmlkZXJfZmluYWxpemUpOgoJICBDYWxsIHBhcmVudCBmaW5hbGl6ZSB0b28uCgoyMDA1LTExLTE2IDE3OjE4OjM0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IEVuYWJsZSB2YWxncmluZCBjaGVjayB0aGF0IHNob3VsZCB3b3JrIGZpbmUgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgRW5hYmxlIHZhbGdyaW5kIGNoZWNrIHRoYXQgc2hvdWxkIHdvcmsgZmluZSBub3cuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpOgoJICBGaXggbWVtbGVha3MgaW4gcGFkIGFsbG9jYXRpb24uCgoyMDA1LTExLTE2IDE2OjQ5OjQ5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvbmV0LzogTmV3IHBhcnQgb2YgY29yZSB0byBob2xkIG5ldHdvcmsgZWxlbWVudHMgYW5kIG9iamVjdHMuIFB1dCBpbiBjb3JlIGJlY2F1c2UgaXQgZXhwb3NlcyBBUEkgdGhhdCBhcHBsaWNhdGlvbnMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L25ldC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvbmV0L2dzdG5ldC5oOiBOZXcgcGFydCBvZiBjb3JlIHRvIGhvbGQgbmV0d29yayBlbGVtZW50cyBhbmQKCSAgb2JqZWN0cy4gUHV0IGluIGNvcmUgYmVjYXVzZSBpdCBleHBvc2VzIEFQSSB0aGF0IGFwcGxpY2F0aW9ucyB3YW50CgkgIHRvIHVzZS4gVGhlIGxpYnJhcnkgaXMgbmFtZWQgbGliZ3N0bmV0LXRlbXBuYW1lIHJpZ2h0IG5vdyBiZWNhdXNlCgkgIG9mIHRoZSBleGlzdGluZyBsaWJnc3RuZXQgaW4gZ3N0LXBsdWdpbnMtYmFzZS4gU29sdXRpb24gaXMKCSAgcHJvYmFibHkgdG8gcmVuYW1lIHRoZSBvbmUgaW4gcGx1Z2lucy1iYXNlOyB3aWxsIGZpbGUgYSBidWcgZm9yCgkgIHRoZSBmcmVlemUgYnJlYWsuCgkgICogZ3N0L25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzoKCSAgKiBnc3QvbmV0L2dzdG5ldHRpbWVwcm92aWRlci5oOiBOZXcgb2JqZWN0IHRvIGV4cG9ydCBhIEdzdENsb2NrJ3MKCSAgZ2V0X3RpbWUgY2FsbCBvdmVyIHRoZSBuZXR3b3JrLgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW0gKGxpYl9MVExJQlJBUklFUyk6IEFkZCBnc3RuZXQgdG8gdGhlIGJ1aWxkLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL25ldC9nc3RuZXR0aW1lcHJvdmlkZXIuYzogQSBtb3N0IG1pbmltYWwgdGVzdCBzdWl0ZS4gV2lsbAoJICBnZXQgYWRkaXRpb25zIHNob3J0bHkuCgoyMDA1LTExLTE2IDE2OjA5OjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwYWQuKjogYWRkIGdzdF9wYWRfbmV3X2Zyb21fc3RhdGljX3RlbXBsYXRlIGZ1bmN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX25ld19mcm9tX3N0YXRpY190ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBhZGQgZ3N0X3BhZF9uZXdfZnJvbV9zdGF0aWNfdGVtcGxhdGUgZnVuY3Rpb25zCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfc2V0dXBfc3JjX3BhZCksCgkgIChnc3RfY2hlY2tfc2V0dXBfc2lua19wYWQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfaW5pdCk6CgkgIGFuZCB1c2UgdGhlbQoKMjAwNS0xMS0xNiAxNjowNjowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUmVtb3ZlZCB3YXJuaW5nLCBpdCdzIG5vdCByZWFseSBhbiBlcnJvciBlaXRoZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfcGF1c2VfdGFzayk6CgkgIFJlbW92ZWQgd2FybmluZywgaXQncyBub3QgcmVhbHkgYW4gZXJyb3IgZWl0aGVyLgoKMjAwNS0xMS0xNiAxNDoyNzoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQ2hlY2sgaWYgdGhlIGNhcHMgYXJlIE5VTEwsIHRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgZWxlbWVudCBpcyBzaHV0dGluZyBkb3duIGFuZCB0aGUgcGFkIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgIENoZWNrIGlmIHRoZSBjYXBzIGFyZSBOVUxMLCB0aGlzIGNhbiBoYXBwZW4gaWYgdGhlIGVsZW1lbnQKCSAgaXMgc2h1dHRpbmcgZG93biBhbmQgdGhlIHBhZCBjYXBzIGFyZSBzZXQgdG8gTlVMTC4KCjIwMDUtMTEtMTYgMTI6NTc6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkgIGZpeCBwYWQgdGVtcGFsdGUgbGVhayBpbiB0ZWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBwYWQgdGVtcGFsdGUgbGVhayBpbiB0ZWUKCjIwMDUtMTEtMTYgMTI6NDA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogdXNlIGdzdF9vYmplY3RfcmVmIHdoZW4gc2V0dGluZyB0aGUgcGFkIHRlbXBsYXRlOyB0aGlzIHdpbGwgdHJpZ2dlciB0aGUgcGFkIHRlbXBsYXRlIGxlYWtzIG9uIEdMaWIgMi42IGFuZCB0aGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ192YWx1ZV9kdXBfZ3N0X29iamVjdCk6CgkgICogZ3N0L2dsaWItY29tcGF0Lmg6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfcHJvcGVydHkpOgoJICB1c2UgZ3N0X29iamVjdF9yZWYgd2hlbiBzZXR0aW5nIHRoZSBwYWQgdGVtcGxhdGU7IHRoaXMgd2lsbAoJICB0cmlnZ2VyIHRoZSBwYWQgdGVtcGxhdGUgbGVha3Mgb24gR0xpYiAyLjYgYW5kIHRoZSBzbGF2ZXMKCjIwMDUtMTEtMTYgMTI6MjU6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogcmVtb3ZlIGZ1bmN0aW9ucyBjb3BpZWQgZnJvbSBHTGliIDIuNgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdzdF9mbGFnc19nZXRfZmlyc3RfdmFsdWUpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICByZW1vdmUgZnVuY3Rpb25zIGNvcGllZCBmcm9tIEdMaWIgMi42CgoyMDA1LTExLTE2IDExOjI5OjU3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IERvbid0IGxpbmsgYWdhaW5zdCBWQUxHUklORF9MSUJTLiBUaGF0IHdhcyBhbHdheXMgdGhlIHdyb25nIHRoaW5nIHRvIGRvLCBidXQgb25seSBicmVha3Mgd2l0aCBuZXdlciAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICBEb24ndCBsaW5rIGFnYWluc3QgVkFMR1JJTkRfTElCUy4gVGhhdCB3YXMgYWx3YXlzIHRoZSB3cm9uZyB0aGluZyB0bwoJICBkbywgYnV0IG9ubHkgYnJlYWtzIHdpdGggbmV3ZXIgdmFsZ3JpbmQgdmVyc2lvbnMuIFdlJ3JlIG5vdCBhCgkgIHZhbGdyaW5kIHRvb2wsIHdlIGhhdmUgbm8gbGluay10aW1lIGRlcGVuZGVuY2llcyBvbiBsaWJjb3JlZ3JpbmQuCgoyMDA1LTExLTE2IDExOjA2OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogc29tZSBkZWJ1ZyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSk6CgkgIHNvbWUgZGVidWcgY2hhbmdlcwoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIHR5cG8gZml4ZXMKCjIwMDUtMTEtMTUgMjM6NTM6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICBSZXZlcnQgYWxsIHRoZXNlIHVucmVmcywgdGhleSBkb24ndCBldmVuIHBhc3MgbWFrZSBjaGVjayAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZlcnQgYWxsIHRoZXNlIHVucmVmcywgdGhleSBkb24ndCBldmVuIHBhc3MgbWFrZSBjaGVjayAhCgoyMDA1LTExLTE1IDE5OjQ4OjQwICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIEFuZCBnc3Rfb2JqZWN0X3VucmVmIGhlcmUgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBbmQgZ3N0X29iamVjdF91bnJlZiBoZXJlIHRvbwoKMjAwNS0xMS0xNSAxOTozMTowNSArMDAwMCAgSm9oYW4gRGFobGluIDxqb2hhbkBnbm9tZS5vcmc+CgoJICBnc3QvOiBGcmVlIHBhZCB0ZW1wbGF0ZXMsIGZpeGVzIGEgY291cGxlIG9mIGxlYWtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2luaXQpOgoJICBGcmVlIHBhZCB0ZW1wbGF0ZXMsIGZpeGVzIGEgY291cGxlIG9mIGxlYWtzLgoKMjAwNS0xMS0xNSAxOToyNDo0NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogR1NUX1BBRF9QQURfVEVNUExBVEUocGFkKSBnZXRzIHRoZSBwYWQgdGVtcGxhdGUsIHdoaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X3Byb3BlcnR5KToKCSAgR1NUX1BBRF9QQURfVEVNUExBVEUocGFkKSBnZXRzIHRoZSBwYWQgdGVtcGxhdGUsIHdoaWxlCgkgIEdTVF9QQURfVEVNUExBVEUocGFkKSBkb2VzIGEgY2FzdC4gV2Ugd2FudCB0aGUgZm9ybWVyIGhlcmUuCgkgICgjMzIxNDUyKQoKMjAwNS0xMS0xNSAxODozNDoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC5jOiBTbWFsbCBkb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgU21hbGwgZG9jIHVwZGF0ZS4KCjIwMDUtMTEtMTUgMTc6NTc6NTEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X3NldF9iYXNlX3RpbWUpOiBBZGQgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9zZXRfYmFzZV90aW1lKTogQWRkIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpOiBEb2N1bWVudAoJICB1c2luZyBHU1RfQ0xPQ0tfVElNRV9OT05FIHRvIGRpc2FibGUgYmFzZSB0aW1lIG1hbmFnZW1lbnQuCgkgIChkb19waXBlbGluZV9zZWVrLCBnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogRG9uJ3QgcmVzZXQgc3RyZWFtCgkgIHRpbWUgaWYgaXQgd2FzIE5PTkUgYmVmb3JlLgoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IE9ubHkgbXVuZ2UgdGhlIGJhc2UgdGltZSBpZgoJICBzdHJlYW1fdGltZSAhPSBHU1RfQ0xPQ0tfVElNRV9OT05FLgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IFB1bnQgYXJvdW5kIHRoZQoJICBwcm9ibGVtIG9mIHRoZSBwcm9iZSBub3QgYmVpbmcgY2FsbGVkLCBiZWNhdXNlIHRoYXQncyBub3QgdGhlCgkgIGlzc3VlIEknbSBsb29raW5nIGF0LiBBZGQgYSBjaGVjayB0aGF0IHNldHRpbmcgc3RyZWFtX3RpbWUgdG8gTk9ORQoJICBkaXNhYmxlcyBiYXNlIHRpbWUgbWFuYWdlbWVudC4KCjIwMDUtMTEtMTUgMTc6MTg6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBzZWdtZW50X3N0b3AgPT0gLTEgYXQgc3RhcnR1cC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgc2VnbWVudF9zdG9wID09IC0xIGF0IHN0YXJ0dXAuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICBJbml0IHNlZ21lbnQgdmFsdWVzIGF0IHN0YXJ0LgoKMjAwNS0xMS0xNSAxNjo1Mjo0NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogUHVudCBhcm91bmQgdGhlIHByb2JsZW0gb2YgdGhlIHByb2JlIG5vdCBiZWluZyBjYWxsZWQsIGJlY2F1c2UgdGhhdCdzIG5vdCB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IFB1bnQgYXJvdW5kIHRoZQoJICBwcm9ibGVtIG9mIHRoZSBwcm9iZSBub3QgYmVpbmcgY2FsbGVkLCBiZWNhdXNlIHRoYXQncyBub3QgdGhlCgkgIGlzc3VlIEknbSBsb29raW5nIGF0Li4uCgoyMDA1LTExLTE1IDE2OjQ3OjA3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogMCBzZWdtZW50IHZhbHVlcyBhcmUgMCBpbiBhbnkgZm9ybWF0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgMCBzZWdtZW50IHZhbHVlcyBhcmUgMCBpbiBhbnkgZm9ybWF0LgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBQYXJzZSBuZXdzZWdtZW50IGNvcnJlY3RseSBpbiBiYXNldHJhbnNmb3JtCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgU3luYyB0byBjbG9jayB1c2luZyB1cGRhdGVkIHNlZ21lbnQgdmFsdWVzLgoKMjAwNS0xMS0xNSAxNjoyNzowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogQWRkIGNoZWNrIHRoYXQgdGhlIGJhc2UgdGltZSBhbmQgc3RyZWFtIHRpbWUgYXJlIHJlc2V0IGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogQWRkIGNoZWNrIHRoYXQgdGhlCgkgIGJhc2UgdGltZSBhbmQgc3RyZWFtIHRpbWUgYXJlIHJlc2V0IGNvcnJlY3RseS4KCjIwMDUtMTEtMTUgMTU6NDQ6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBTb21lIG1vcmUgVE9ETyBpdGVtcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgU29tZSBtb3JlIFRPRE8gaXRlbXMuCgoyMDA1LTExLTE1IDEyOjM1OjQ1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jIChnc3RfZmFrZV9zcmNfY3JlYXRlKTogSXQncyBub3QgYW4gZXJyb3IgaWYgdGhlIHVzZXIgc2VsZWN0ZWQgIm5vIGNsb2NrIiBhcyB0aGUgY2xvY2tpbmcgbWUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYyAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6IEl0J3Mgbm90IGFuCgkgIGVycm9yIGlmIHRoZSB1c2VyIHNlbGVjdGVkICJubyBjbG9jayIgYXMgdGhlIGNsb2NraW5nIG1ldGhvZC4KCjIwMDUtMTEtMTUgMTI6Mjk6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jICh0ZXN0X2Jhc2VfdGltZSk6IE5ldyB0ZXN0IGZvciBidWZmZXIgdGltZXN0YW1wcyB3aXRoIGxpdmUgY2FwdHVyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmMgKHRlc3RfYmFzZV90aW1lKTogTmV3IHRlc3QgZm9yIGJ1ZmZlcgoJICB0aW1lc3RhbXBzIHdpdGggbGl2ZSBjYXB0dXJlLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmMgKGdzdF9mYWtlX3NyY19jcmVhdGUpOiBJZiB0aGUgZGF0YXJhdGUKCSAgaXMgMCBidXQgd2UgYXJlIGEgbGl2ZSBzb3VyY2UsIHRpbWVzdGFtcCB0aGUgYnVmZmVycyB1c2luZyB0aGUKCSAgZWxlbWVudCdzIGNsb2NrLgoKMjAwNS0xMS0xNCAxNToxNTo0MyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBzZWN0aW9uIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgICogZ3N0L2dzdHhtbC5jOgoJICBtb3JlIHNlY3Rpb24gZG9jcwoKMjAwNS0xMS0xNCAxNDo0NTo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNvbW1vbi9nc3Quc3VwcDogYWRkIHN1cHByZXNzaW9ucyBmcm9tIFdpbSdzIERlYmlhbiBtYWNoaW5lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9nc3Quc3VwcDoKCSAgYWRkIHN1cHByZXNzaW9ucyBmcm9tIFdpbSdzIERlYmlhbiBtYWNoaW5lCgoyMDA1LTExLTE0IDE0OjM2OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbW1vbi9nc3Quc3VwcDogYWRkIHN1cHByZXNzaW9ucyBmcm9tIEFuZHkncyBBTUQ2NCBVYnVudHUgbWFjaGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb21tb24vZ3N0LnN1cHA6CgkgIGFkZCBzdXBwcmVzc2lvbnMgZnJvbSBBbmR5J3MgQU1ENjQgVWJ1bnR1IG1hY2hpbmUKCjIwMDUtMTEtMTQgMTI6NDM6NDMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogQ2hhbmdlIGRvY3M7IHBhcmVudCdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfYWN0aXZlKTogQ2hhbmdlIGRvY3M7IHBhcmVudCdzCgkgIFNUQVRFX0xPQ0sgbm90IG5lY2Vzc2FyeS4gRml4ZXMgIzMxMTQ4OS4KCjIwMDUtMTEtMTQgMTI6MTc6NDYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlcnJvci5jIChGSUxFX0FfQlVHKTogQmUgcG9saXRlICphbmQqIGhlbHBmdWwuIEZpeGVzICMzMDUyOTEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlcnJvci5jIChGSUxFX0FfQlVHKTogQmUgcG9saXRlICphbmQqIGhlbHBmdWwuIEZpeGVzCgkgICMzMDUyOTEuCgoyMDA1LTExLTE0IDExOjU4OjQ0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aW5kZXguYyAoZ3N0X2luZGV4X2FkZF9vYmplY3QpOiBOb3RlIGluIHRoZSBkb2NzIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpbmRleC5jIChnc3RfaW5kZXhfYWRkX29iamVjdCk6IE5vdGUgaW4gdGhlIGRvY3MgdGhhdAoJICB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZC4KCjIwMDUtMTEtMTQgMTA6NDk6MzUgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBSZWYgdGhlIHNvdXJjZSBwYWQgY2FwcyB3aGlsZSB3ZSBuZWVkIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTE0ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3ByZXBhcmVfb3V0cHV0X2J1Zik6CgkgIFJlZiB0aGUgc291cmNlIHBhZCBjYXBzIHdoaWxlIHdlIG5lZWQgdGhlbS4KCSAgRml4ZXMgKCMzMjEzODYpCgoyMDA1LTExLTEyIDEwOjIzOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL3BpcGVsaW5lcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTExLTEyIDEwOjA0OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlIHdpbjMyIGZpbGVzIGZvciBIRUFECgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgd2luMzIgZmlsZXMgZm9yIEhFQUQKCjIwMDUtMTEtMTIgMTA6MDM6MDggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHRhc2suYzoKCSAgZGVidWcgdGFzayBqb2luCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyB0YXNrIGpvaW4KCjIwMDUtMTEtMTIgMTA6MDA6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSAgZm91bmQgYW5vdGhlciBxdW90ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZm91bmQgYW5vdGhlciBxdW90ZQoKMjAwNS0xMS0xMSAyMDoxMjo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZGVkIHNvbWUgZG9jcyBmb3IgR3N0Q29sbGVjdERhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIEFkZGVkIHNvbWUgZG9jcyBmb3IgR3N0Q29sbGVjdERhdGEuCgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJICBTb21lIHNtYWxsIGNvZGUgZXhhbXBsZSBmaXguCgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOgoJICBEb2N1bWVudCBzb21lIG1vcmUuCgoyMDA1LTExLTExIDE5OjI2OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC45LjUgPT09CgoyMDA1LTExLTExIDE5OjI0OjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHJlbGVhc2luZyAwLjkuNQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS41CgoyMDA1LTExLTExIDE4OjI1OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBDb3B5IG1vcmUgZmxhZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKF9nc3RfYnVmZmVyX2NvcHkpOgoJICBDb3B5IG1vcmUgZmxhZ3MuCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2lzX2VxdWFsKToKCSAgRml4IHNvbWUgZG9jcy4KCSAgTWFrZSBfaXNfZXF1YWwgZmFzdCBpbiB0aGUgdHJpdmlhbCBjYXNlcy4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIE1vcmUgZG9jcy4gU3BpZmlmeSAuaCBmaWxlLgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBTbWFsbCBkb2MgdXBkYXRlLgoKMjAwNS0xMS0xMSAxNzoxNjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIFVwZGF0ZSAucG8gZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSAucG8gZmlsZXMKCjIwMDUtMTEtMTEgMTY6Mzc6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IFNtYWxsIGNsZWFudXBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgU21hbGwgY2xlYW51cHMuCgkgIElmIHdlJ3JlIHByb2Nlc3NpbmcgYSBidWZmZXIgYW5kIG5lZWQgdG8gYWxsb2NhdGUgYW4gb3V0cHV0CgkgIGJ1ZmZlciwgd2UgY2Fubm90IGFjY2VwdCBhIGZvcm1hdCBjaGFuZ2UuIElmIHdlIGRpZCBnZXQgYQoJICBmb3JtYXQgY2hhbmdlLCB3ZSBoYXZlIHRvIGFsbG9jIGEgYnVmZmVyIG91cnNlbHZlcyBvZiB0aGUKCSAgcmlnaHQgc2l6ZS4KCjIwMDUtMTEtMTEgMTY6MzQ6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFdoaWxlIGNoZWNraW5nIHRoZSBmbGFnIGZvciByZWVudHJhbmN5IGluIHRoZSBnc3RjYXBzIGZ1bmN0aW9uIGlzIG5pY2UgdG8gZGV0ZWN0IHJlY3Vyc2l2ZSBpbnZvY2F0aW9ucywuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2FwcyksIChnc3RfcGFkX3BlZXJfZ2V0X2NhcHMpOgoJICBXaGlsZSBjaGVja2luZyB0aGUgZmxhZyBmb3IgcmVlbnRyYW5jeSBpbiB0aGUgZ3N0Y2FwcyBmdW5jdGlvbgoJICBpcyBuaWNlIHRvIGRldGVjdCByZWN1cnNpdmUgaW52b2NhdGlvbnMsIGl0IGFsc28gbWFrZXMgaXQKCSAgaW1wb3NzaWJsZSB0byBjYWxsIGdldGNhcHMgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLCB3aGljaCBtdXN0IGJlCgkgIHBvc3NpYmxlLiBTbywgY2hlY2tpbmcgZm9yIHJlY3Vyc2l2ZSBjYWxscyBoYXMgdG8gZ28uCgoyMDA1LTExLTExIDE1OjE5OjM3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBEb24ndCBzeW5jIG9uIGJ1ZmZlcnMgdGhhdCBmYWxsIHBhcnRpYWxseSBvdXRzaWRlIG91ciBjdXJyZW50IHNlZ21lbnQuIFByZXZlbnRzIGFuIGFzc2VydGlvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZG9fc3luYyk6CgkgIERvbid0IHN5bmMgb24gYnVmZmVycyB0aGF0IGZhbGwgcGFydGlhbGx5IG91dHNpZGUgb3VyIGN1cnJlbnQKCSAgc2VnbWVudC4gUHJldmVudHMgYW4gYXNzZXJ0aW9uIGZhaWx1cmUvYWJvcnQgcGxheWluZyBzb21lIGZpbGVzLgoKMjAwNS0xMS0xMCAxODoxNToyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jICh0ZXN0X21lc3NhZ2Vfc3RhdGVfY2hhbmdlZF9jaGlsZHJlbik6IFN0eWxlIGZpeC4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYyAodGVzdF9tZXNzYWdlX3N0YXRlX2NoYW5nZWRfY2hpbGRyZW4pOiBTdHlsZQoJICBmaXguLgoJICAqIGdzdC9nc3RidXMuYyAocG9sbF9kZXN0cm95LCBwb2xsX2Z1bmMsIGdzdF9idXNfcG9sbCk6IEltcGxlbWVudAoJICBnc3RfYnVzX3BvbGwgd2l0aCB0aGUgc2lnbmFsIHdhdGNoLiBFbnN1cmVzIHRoYXQgcG9sbCBhbmQgYSBzaWduYWwKCSAgd2F0Y2ggc2VlIHRoZSBzYW1lIG1lc3NhZ2VzLgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYyAodGVzdF93YXRjaF93aXRoX3BvbGwpOiBOZXcgdGVzdCwgY2hlY2tzIHRoYXQKCSAgYSBwb2xsIGFuZCBhIHdhdGNoIGF0IHRoZSBzYW1lIHRpbWUgZ2V0IHRoZSBzYW1lIG1lc3NhZ2VzLgoKMjAwNS0xMS0xMCAxNzozNzozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBEb24ndCBjYWxsIGdzdF9jYXBzX2RvX3NpbXBsaWZ5IC0gaXQgZG9lc24ndCByZXNwZWN0IG9yZGVyIG9mIGNhcHMgYW5kIGl0J3Mgbm90IG5lZWRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgRG9uJ3QgY2FsbCBnc3RfY2Fwc19kb19zaW1wbGlmeSAtIGl0IGRvZXNuJ3QgcmVzcGVjdCBvcmRlciBvZiBjYXBzCgkgIGFuZCBpdCdzIG5vdCBuZWVkZWQuCgoyMDA1LTExLTEwIDE1OjA3OjQ2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlZCB0b2RvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGVkIHRvZG8uCgoyMDA1LTExLTEwIDE0OjQ1OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvOiBJbXBsZW1lbnQgY2xvY2sgc3luYyBpbiBiYXNlIGNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfd2FpdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc3luYyksIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgSW1wbGVtZW50IGNsb2NrIHN5bmMgaW4gYmFzZSBjbGFzcy4KCjIwMDUtMTEtMTAgMTI6MzI6NTcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IEZvcndhcmQtcG9ydCBhIDAuOCBwYXRjaCB0byBoYW5kbGUgZXNjYXBlZCBzcGFjZXMgaW4gc3RydWN0dXJlIHN0cmluZywgICAgICAgICAgc28gdGhhdCBnc3RfcGFyc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3BhcnNlX2ZpZWxkKSwKCSAgKGdzdF9zdHJ1Y3R1cmVfZnJvbV9zdHJpbmcpOgoJICBGb3J3YXJkLXBvcnQgYSAwLjggcGF0Y2ggdG8gaGFuZGxlIGVzY2FwZWQgc3BhY2VzIGluIHN0cnVjdHVyZSBzdHJpbmcsICAgICAgICAgIHNvIHRoYXQgZ3N0X3BhcnNlX2xhdW5jaCgpIGNhbiBkZWFsIHdpdGggc3BhY2VzIGluIGZpbHRlcmVkIGxpbmsKCSAgY2FwcyAoZml4ZXMgIzE2NDQ3OSkKCSAgKiBjaGVjay9nc3QvY2Fwc2xpc3QuaDoKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIGFkZCB1bml0IHRlc3RzIGZvciB0aGlzIGNoYW5nZQoKMjAwNS0xMS0xMCAxMToxNzoyNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEZpeCBkb2NzLCBtb3ZlIHNvbWUgU1RBVEUgbWFjcm9zIHRvIHByaXZhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBGaXggZG9jcywgbW92ZSBzb21lIFNUQVRFIG1hY3JvcyB0byBwcml2YXRlLgoKMjAwNS0xMS0xMCAxMDoxNzowMSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJICBGdXJ0aGVyIGltcHJvdmUgcXVlcnkgZG9jcy4gU3RpbGwgbm90IGhhcHB5IHdpdGggdGhpcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZ1cnRoZXIgaW1wcm92ZSBxdWVyeSBkb2NzLiBTdGlsbCBub3QgaGFwcHkgd2l0aCB0aGlzLgoKMjAwNS0xMS0xMCAwOToxOToxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGRlZCBjaGVjayBmb3IgYnVnICMzMTczNDEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgZm9yIGJ1ZyAjMzE3MzQxCgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgU29tZSBtb3JlIHNwaWZmaWZ5aW5nLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X2dob3N0X3BhZF9kb19saW5rKToKCSAgQ2FsbCBwZWVyIGxpbmtmdW5jdGlvbiBpZiB3ZSBhcmUgYSBzb3VyY2UgcGFkLiBUb3RhbGx5IGZpeGVzCgkgICMzMTczNDEKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIFVwZGF0ZSBkb2NzLCBzb3VyY2UgcGFkcyBzaG91bGQgY2FsbCB0aGUgcGVlciBsaW5rZnVuY3Rpb24KCSAgc28gdGhleSBjYW4gYXRvbWljYWxseSBwZXJmb3JtIHRoZSBwYWQgbGluay4KCjIwMDUtMTEtMDkgMTk6MzI6MzIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RxdWVyeS5jOgoJICBJbXByb3ZlL2ZpeCBkb2N1bWVudGF0aW9uIGZvciBHc3RRdWVyeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEltcHJvdmUvZml4IGRvY3VtZW50YXRpb24gZm9yIEdzdFF1ZXJ5LgoJICBUaGlzIHN0aWxsIG5lZWRzIHNvbWUgbW9yZSB3b3JrIHRvIGV4cGxhaW4gd2hhdCB0aGUgcXVlcmllcyBhY3R1YWxseSBtZWFuLgoKMjAwNS0xMS0wOSAxODo0MTo1MyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgU2xpZ2h0bHkgcG9saXNoIGRvY3MgZm9yIEdzdEFkYXB0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBTbGlnaHRseSBwb2xpc2ggZG9jcyBmb3IgR3N0QWRhcHRlci4KCjIwMDUtMTEtMDkgMTg6MTA6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLio6IFViZXItc3BpZmZ5LXNwaWZmaWZ5IHNvbWUgbW9yZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgVWJlci1zcGlmZnktc3BpZmZpZnkgc29tZSBtb3JlLgoKMjAwNS0xMS0wOSAxNzo1NToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IFVzZSBHU1RfREVCVUdfRlVOQ1BUUigpIG1vcmUgZXh0ZW5zaXZlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfYWRkX3BhZCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2luaXQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9pbml0KToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfc2V0X2ludGVybmFsKSwKCSAgKGdzdF9naG9zdF9wYWRfaW5pdCksIChnc3RfZ2hvc3RfcGFkX25ld19ub3RhcmdldCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9pbml0KToKCSAgVXNlIEdTVF9ERUJVR19GVU5DUFRSKCkgbW9yZSBleHRlbnNpdmVseS4KCjIwMDUtMTEtMDkgMTc6MzI6MTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0Lio6IERvY3VtZW50YXRpb24gZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2N1bWVudGF0aW9uIGZpeGVzLgoKMjAwNS0xMS0wOSAxNzowNjoyMCArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzogRml4IGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgRml4IGRvY3MuCgoyMDA1LTExLTA5IDE2OjQ0OjQwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzoKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuaDoKCjIwMDUtMTEtMDkgMTY6MzI6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuYzogRml4IHJldmlzaW9uIGRhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOgoJICBGaXggcmV2aXNpb24gZGF0YS4KCSAgKiBnc3QvZ3N0dGFzay5jOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIEZpeCBkb2NzLgoKMjAwNS0xMS0wOSAxNjoxNjo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIEZpeCBkb2NzLgoKMjAwNS0xMS0wOSAxNjowMDowNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IE1vdmVkIHRoZSBtZXNzYWdlIGFzeW5jIGRlbGl2ZXJ5IHByaXZhdGUgbG9jayBhbmQgY29uZCB0byB0aGUgcHJpdmF0ZSBzZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICBNb3ZlZCB0aGUgbWVzc2FnZSBhc3luYyBkZWxpdmVyeSBwcml2YXRlIGxvY2sgYW5kIGNvbmQKCSAgdG8gdGhlIHByaXZhdGUgc2VjdGlvbi4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEZpeGVkIGRvY3MuCgoyMDA1LTExLTA5IDE1OjM0OjQ2ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgRG9jdW1lbnQgR3N0VVJJSGFuZGxlcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R1cmkuYzoKCSAgKiBnc3QvZ3N0dXJpLmg6CgkgIERvY3VtZW50IEdzdFVSSUhhbmRsZXIKCjIwMDUtMTEtMDkgMTU6MzE6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuKjogRml4IGl0ZXJhdG9yIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX2ZvbGQpLCAoZ3N0X2l0ZXJhdG9yX2ZvcmVhY2gpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgRml4IGl0ZXJhdG9yIGRvY3MuCgoyMDA1LTExLTA5IDE1OjEwOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5oOiBEb2N1bWVudCBhbm90aGVyIGZpZWxkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIERvY3VtZW50IGFub3RoZXIgZmllbGQuCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgRG9jdW1lbnQuCgoyMDA1LTExLTA5IDEzOjE0OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5oOiBEb2N1bWVudGVkIHN0cnVjdHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgRG9jdW1lbnRlZCBzdHJ1Y3RzLgoKMjAwNS0xMS0wOSAxMjozNjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZGVkIHNvbWUgbmV3IG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkZWQgc29tZSBuZXcgbWFjcm9zLgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgRG9jcyB1cGRhdGVzLgoKMjAwNS0xMS0wOSAxMjowMTo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6IFNvbWUgbW9yZSBpdGVtcyBmb3IgdGhlIFRPRE8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgU29tZSBtb3JlIGl0ZW1zIGZvciB0aGUgVE9ETwoJICAqIGdzdC9nc3RjYXBzLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgRG9jdW1lbnQgR3N0Q2Fwcy4KCjIwMDUtMTEtMDkgMTA6MDY6MzAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCB0aGUgYmVnaW5uaW5nIG9mIGRvY3MgaGVyZSAtLSBoYXZlIHRvIHdvcmsgb24gc29tZXRoaW5nIGVsc2Ugbm93IHRoby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMS0wOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBBZGQgdGhlIGJlZ2lubmluZyBvZiBkb2NzIGhlcmUgLS0gaGF2ZQoJICB0byB3b3JrIG9uIHNvbWV0aGluZyBlbHNlIG5vdyB0aG8uLi4KCjIwMDUtMTEtMDkgMDk6NDg6MTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlX3Npbmtfc3RhcnQpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZV9zaW5rX3N0YXJ0KQoJICAoZ3N0X2ZpbGVfc2lua19zdG9wKTogTmV3IGZ1bmN0aW9ucywgcmVwbGFjZSB0aGUgc3RhdGUgY2hhbmdlCgkgIGhhbmRsZXIuCgkgIChnc3RfZmlsZV9zaW5rX2NsYXNzX2luaXQpOiBIb29rIHVwIHRoZSBzdGFydCBhbmQgc3RvcCBmdW5jdGlvbnMuCgkgIChnc3RfZmlsZV9zaW5rX2Jhc2VfaW5pdCk6IERvbid0IHNldCB0aGUgc3RhdGUgY2hhbmdlIGhhbmRsZXIgYW55CgkgIG1vcmUuIEl0IHdhcyBhIGJpdCB1Z2x5IHRvbywgYmVpbmcgc2V0IGZyb20gaGVyZS4uLgoJICAoZ3N0X2ZpbGVfc2lua19nZXRfcHJvcGVydHksIGdzdF9maWxlX3Npbmtfc2V0X3Byb3BlcnR5KToKCSAgQ2xlYW51cHMuLi4KCSAgKGdzdF9maWxlX3Npbmtfc2V0X2xvY2F0aW9uKTogTW9yZSByb2J1c3QgY2hlY2sgdGhhdCBkb2Vzbid0IGNhbGwKCSAgR1NUX1NUQVRFLiBVZ2dnZ2dnLgoKMjAwNS0xMS0wOSAwOTo0NzoxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYyAoZ3N0X2ZpbGVfc2lua19zdGFydCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmMgKGdzdF9maWxlX3Npbmtfc3RhcnQpCgkgIChnc3RfZmlsZV9zaW5rX3N0b3ApOiBOZXcgZnVuY3Rpb25zLCByZXBsYWNlIHRoZSBzdGF0ZSBjaGFuZ2UKCSAgaGFuZGxlci4KCSAgKGdzdF9maWxlX3NpbmtfY2xhc3NfaW5pdCk6IEhvb2sgdXAgdGhlIHN0YXJ0IGFuZCBzdG9wIGZ1bmN0aW9ucy4KCSAgKGdzdF9maWxlX3NpbmtfYmFzZV9pbml0KTogRG9uJ3Qgc2V0IHRoZSBzdGF0ZSBjaGFuZ2UgaGFuZGxlciBhbnkKCSAgbW9yZS4gSXQgd2FzIGEgYml0IHVnbHkgdG9vLCBiZWluZyBzZXQgZnJvbSBoZXJlLi4uCgkgIChnc3RfZmlsZV9zaW5rX2dldF9wcm9wZXJ0eSwgZ3N0X2ZpbGVfc2lua19zZXRfcHJvcGVydHkpOgoJICBDbGVhbnVwcy4uLgoJICAoZ3N0X2ZpbGVfc2lua19zZXRfbG9jYXRpb24pOiBNb3JlIHJvYnVzdCBjaGVjayB0aGF0IGRvZXNuJ3QgY2FsbAoJICBHU1RfU1RBVEUuIFVnZ2dnZ2cuCgoyMDA1LTExLTA4IDEyOjMzOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBIb2xkIFNUUkVBTV9MT0NLIHdoaWxlIHB1c2hpbmcgbmV3c2VnbWVudCBvciB0YWcgZXZlbnRzIGFzIHdlbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9ldmVudCk6CgkgIEhvbGQgU1RSRUFNX0xPQ0sgd2hpbGUgcHVzaGluZyBuZXdzZWdtZW50IG9yIHRhZyBldmVudHMgYXMgd2VsbC4KCjIwMDUtMTEtMDggMTE6NTI6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICByZXZlcnQgcGFydCBvZiB0aGUgcGF0Y2ggc28gdGhhdCBwYXRocyBhcmUgY29ycmVjdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmV2ZXJ0IHBhcnQgb2YgdGhlIHBhdGNoIHNvIHRoYXQgcGF0aHMgYXJlIGNvcnJlY3QKCjIwMDUtMTEtMDggMTE6MTM6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBdm9pZCBleGNlc3NpdmUgdHlwZWNoZWNraW5nIGluIG1hY3Jvcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbiksIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQXZvaWQgZXhjZXNzaXZlIHR5cGVjaGVja2luZyBpbiBtYWNyb3MuCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSksCgkgIChnc3RfbWluaV9vYmplY3RfaW5pdCksIChnc3RfbWluaV9vYmplY3RfbmV3KSwKCSAgKGdzdF9taW5pX29iamVjdF9mcmVlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpLCAoZ3N0X29iamVjdF9pbml0KSwKCSAgKGdzdF9vYmplY3RfZmluYWxpemUpOgoJICBSZW1vdmUgY3J1ZnQgY29kZSwgb3B0aW1pemUgYWxsb2NfdHJhY2UuCgoyMDA1LTExLTA3IDE4OjE2OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogZml4IHVwIFBTMSBmb3Igc3lzdGVtcyB0aGF0IHRyeSB0byByZXNldCBpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGZpeCB1cCBQUzEgZm9yIHN5c3RlbXMgdGhhdCB0cnkgdG8gcmVzZXQgaXQKCjIwMDUtMTEtMDcgMTA6MzM6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNldCB0aGUgc2VnbWVudF9lbmQgdG8gLTEgaW5pdGlhbGx5LiBGaXhlZCB0eXBlZmluZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIFNldCB0aGUgc2VnbWVudF9lbmQgdG8gLTEgaW5pdGlhbGx5LiBGaXhlZCB0eXBlZmluZC4KCjIwMDUtMTEtMDcgMTA6MTM6NDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IERlYnVnIGNhdGVnb3J5IHNob3VsZCBiZSAnYWRhcHRlcicsIG5vdCAnR3N0QWRhcHRlcicuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYzoKCSAgRGVidWcgY2F0ZWdvcnkgc2hvdWxkIGJlICdhZGFwdGVyJywgbm90ICdHc3RBZGFwdGVyJy4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2Jhc2VfaW5pdCksCgkgIChnc3RfY29sbGVjdHBhZHNfY2xhc3NfaW5pdCksIChnc3RfY29sbGVjdHBhZHNfaW5pdCksCgkgIChnc3RfY29sbGVjdHBhZHNfcGVlayksIChnc3RfY29sbGVjdHBhZHNfcG9wKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19ldmVudCksIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOgoJICBBZGQgZGVidWcgY2F0ZWdvcnkgYW5kIHNvbWUgZGVidWdnaW5nIG91dHB1dC4gVXNlIGJvaWxlcnBsYXRlCgkgIG1hY3Jvcy4gUmVtb3ZlIHNvbWUgZXh0cmFuZW91cyB3b3JkcyBmcm9tIGRvY3MuCgoyMDA1LTExLTA1IDE1OjE0OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6IFNob3J0ZW4gYnkgMzAlIHZpYSB1c2Ugb2YgYm9pbGVycGxhdGUgbWFjcm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzogU2hvcnRlbiBieSAzMCUgdmlhIHVzZSBvZiBib2lsZXJwbGF0ZQoJICBtYWNyby4KCjIwMDUtMTEtMDQgMjA6MTI6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBhZGRlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGluZm8uYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgbW9yZSBkb2NzIGFkZGVkCgoyMDA1LTExLTA0IDE1OjMzOjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTbWFsbCB1cGRhdGUgdG8gc3RvcCBhdCB0aGUgY29uZmlndXJlZCBzZWdtZW50X2VuZCBwb3NpdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIFNtYWxsIHVwZGF0ZSB0byBzdG9wIGF0IHRoZSBjb25maWd1cmVkIHNlZ21lbnRfZW5kCgkgIHBvc2l0aW9uLgoKMjAwNS0xMS0wNCAxNTowMjo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2dzdHJlZ2lzdHJ5Lio6IGFkZGVkIG1pc3NpbmcgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDoKCSAgYWRkZWQgbWlzc2luZyBkb2NzCgoyMDA1LTExLTA0IDE0OjM1OjEwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBDaGVjayBpZiB3ZSBhcmUgZG9pbmcgYSBzZWdtZW50IHNlZWsgYW5kIGhhdmUgYXJyaXZlZCBhdCB0aGUgZW5kIG9mIHRoYXQgc2VnbWVudC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIENoZWNrIGlmIHdlIGFyZSBkb2luZyBhIHNlZ21lbnQgc2VlayBhbmQgaGF2ZSBhcnJpdmVkIGF0IHRoZQoJICBlbmQgb2YgdGhhdCBzZWdtZW50LgoKMjAwNS0xMS0wNCAxMjowODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogRG9uJ3QgbGVhayBhIG11dGV4IHVubG9jayBpbiBjYXNlIG9mIGFuIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19zZXRfc3luY19oYW5kbGVyKToKCSAgRG9uJ3QgbGVhayBhIG11dGV4IHVubG9jayBpbiBjYXNlIG9mIGFuIGVycm9yLgoJICAqIGdzdC9nc3RidXMuaDoKCSAgRG9jIGZpeGVzLgoKMjAwNS0xMS0wNCAxMTo0MzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidXMuYzogR2V0IHRoZSBjb250ZXh0IHRvIHdha2UgdXAgb25seSBvbmNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpLCAoZ3N0X2J1c19pbml0KSwKCSAgKGdzdF9idXNfcG9zdCk6CgkgIEdldCB0aGUgY29udGV4dCB0byB3YWtlIHVwIG9ubHkgb25jZS4KCjIwMDUtMTEtMDMgMjA6MTc6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBVbmNvbW1lbnQgZml4ZWQgY2hlY2suCgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlZCBUT0RPLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgSWYgd2UgYXJlIGdvaW5nIHRvIFBMQVlJTkcsIHBvc3QgdGhlIHJpZ2h0IHBlbmRpbmcgc3RhdGUKCSAgd2hlbiB3ZSBwb3N0IHRoZSBpbnRlcm1lZGlhdGUgcGF1c2VkIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHBvc3Qgc3RhdGUgY2hhbmdlcyB0aGF0IHdlcmUgYmV0d2VlbiB0aGUgc2FtZSBzdGF0ZQoJICBhbmQgd2VyZSBub3QgQVNZTkMuCgoyMDA1LTExLTAzIDIwOjE0OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmM6IFVuY29tbWVudCBmaXhlZCBjaGVjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIFVuY29tbWVudCBmaXhlZCBjaGVjay4KCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBVcGRhdGVkIFRPRE8uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pOgoJICBJZiB3ZSBhcmUgZ29pbmcgdG8gUExBWUlORywgcG9zdCB0aGUgcmlnaHQgcGVuZGluZyBzdGF0ZQoJICB3aGVuIHdlIHBvc3QgdGhlIGludGVybWVkaWF0ZSBwYXVzZWQgbWVzc2FnZS4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29udGludWVfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgRG9uJ3QgcG9zdCBzdGF0ZSBjaGFuZ2VzIHRoYXQgd2VyZSBiZXR3ZWVuIHRoZSBzYW1lIHN0YXRlCgkgIGFuZCB3ZXJlIG5vdCBBU1lOQy4KCjIwMDUtMTEtMDMgMTk6Mzg6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgZG9jIGZpeGVzCgoyMDA1LTExLTAzIDE3OjUzOjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9saXZlc3JjX3NpbmspOiBBZGQgY2hlY2tzIHRoYXQgdGhlIHN0YXRlLWNoYW5nZWQgbWVzc2FnZXMgYWN0dWFsbHkgaGF2ZSB0aGUgcmlnaHQgb3JkZXIgYW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTEtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3RfbGl2ZXNyY19zaW5rKTogQWRkIGNoZWNrcyB0aGF0IHRoZQoJICBzdGF0ZS1jaGFuZ2VkIG1lc3NhZ2VzIGFjdHVhbGx5IGhhdmUgdGhlIHJpZ2h0IG9yZGVyIGFuZCB0aGUgcmlnaHQKCSAgdmFsdWVzLgoKMjAwNS0xMS0wMyAxNzoxMjowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBBZGRlZCBzb21lIG1vcmUgY2hlY2tzLiBTcGVjaWZpY2FsbHkgdGhlIGNhc2Ugd2hlcmUgTk9fUFJFUk9MTCBlbGVtZW50cyBhcmUgaW4gdGhlIHBpcGVsaW5lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9vYmplY3Rfc3VpdGUpOgoJICBBZGRlZCBzb21lIG1vcmUgY2hlY2tzLiBTcGVjaWZpY2FsbHkgdGhlIGNhc2Ugd2hlcmUgTk9fUFJFUk9MTAoJICBlbGVtZW50cyBhcmUgaW4gdGhlIHBpcGVsaW5lLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKToKCSAgUG9zdCBSRUFEWS0+UEFVU0VEIHN0YXRlIGNoYW5nZSBtZXNzYWdlcyB0b28uCgkgIEZpeCBidWcgd2hlcmUgVk9JRCB3YXMgcG9zdGVkIGFzIHBlbmRpbmcgc3RhdGUuLi4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlY2FsY19zdGF0ZSk6CgkgIHVzZSBfZWxlbWVudF9jb250aW51ZV9zdGF0ZSgpIHRvIGNvbnRpbnVlIHRoZSBzdGF0ZSBjaGFuZ2UuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbnRpbnVlX3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOgoJICBMb3RzIG9mIHN0YXRlIGNoYW5nZSBjbGVhbnVwcywgYXNzaWduIHRoZSBTVEFURV9SRVRVUk4gaW4KCSAgYSBuZXcgY29udGludWVfc3RhdGUoKSBmdW5jdGlvbiB0aGF0IGFsc28gcHJvcGFnYXRlcyB0aGUKCSAgbGFzdCByZXR1cm4gdmFsdWUgZnJvbSBhIHN0YXRlIGNoYW5nZSB0byB0aGUgYXBwLgoJICBVcGRhdGUgc29tZSBkZWJ1ZyBzdGF0ZW1lbnRzIHdpdGggcHJvcGVyIGNhdGVnb3J5LgoKMjAwNS0xMS0wMyAxNDoyMjo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvOiBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXRyaWNrbW9kZXMudHh0OgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgU21hbGwgZG9jcyB1cGRhdGVzLgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgUGVvcGxlIHRoaW5rICEhIGlzIHVnbHksIHRoaXMgbG9va3MgYmV0dGVyLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpOgoJICBSZW1vdmUgISEgc2luY2UgaXQncyBmaXhlZCBlbHNld2hlcmUgbm93LgoKMjAwNS0xMS0wMyAxMzo1Mjo1OSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC86IEFkZCAhISB0byBfRkxBR19JU19TRVQgbWFjcm9zIHRvIG1ha2UgdGhlIHJlc3VsdCBib29sZWFuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgQWRkICEhIHRvIF9GTEFHX0lTX1NFVCBtYWNyb3MgdG8gbWFrZSB0aGUgcmVzdWx0IGJvb2xlYW4uCgoyMDA1LTExLTAzIDEyOjQ4OjMwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBjb21wYXJpbmcgYSBmbGFnIGFuZCBhIGdib29sZWFuIHJhcmVseSByZXR1cm5zIGNvaGVyZW50IHJlc3VsdHMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYmxvY2tlZF9hc3luYyk6CgkgIGNvbXBhcmluZyBhIGZsYWcgYW5kIGEgZ2Jvb2xlYW4gcmFyZWx5IHJldHVybnMgY29oZXJlbnQgcmVzdWx0cy4uLgoJICBBZGRlZCB0d28gY2hhcmFjdGVycyAoISEpIHRvIG1ha2UgdGhhdCB3b3JrIGNvcnJlY3RseS4KCjIwMDUtMTEtMDMgMTI6MTY6NDkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IEZpeCBzb21lIHR5cG9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX2NsYXNzX2luaXQpOgoJICBGaXggc29tZSB0eXBvcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9sb29wKToKCSAgRG9uJ3QgYXNzdW1lIGEgbWluaW9iamVjdCB0aGF0IGlzbid0IGEgYnVmZmVyIGlzIGFuCgkgIGV2ZW50IChpdCBjb3VsZCBiZSB0aGF0IHRoZXJlIGlzIGEgcmVmY291bnRpbmcKCSAgcHJvYmxlbSBzb21ld2hlcmUgYW5kIHRoZSBwb2ludGVyIGlzIHN0YWxlIGFuZAoJICByZWZlcnMgdG8gYW4gYWxyZWFkeSBkZXN0cm95ZWQgbWluaW9iamVjdCkuCgoyMDA1LTExLTAzIDEwOjU2OjIzICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRml4IHNvbWUgdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTExLTAzICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpOiBGaXggc29tZSB0eXBvcy4KCjIwMDUtMTEtMDMgMDk6MTg6NTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL21hbnVhbC9hZHZhbmNlZC1wb3NpdGlvbi54bWw6IFVwZGF0ZSBzZWVrIGV4YW1wbGUgYW5kIGV4cGxhbmF0aW9ucyB0byBjdXJyZW50IDAuOSBBUEkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXBvc2l0aW9uLnhtbDoKCSAgVXBkYXRlIHNlZWsgZXhhbXBsZSBhbmQgZXhwbGFuYXRpb25zIHRvIGN1cnJlbnQgMC45IEFQSS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBSZW1vdmUgRklYTUUgY29tbWVudCBub3cgdGhhdCB0aGUgZm91bmQgY2FwcwoJICBhcmUgdW5yZWZmZWQuCgoyMDA1LTExLTAzIDAwOjM5OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6CgkgIEFkZCBhbm90aGVyIEdTVF9TVFJfTlVMTCBpbnN0YW5jZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkIGFub3RoZXIgR1NUX1NUUl9OVUxMIGluc3RhbmNlCgoyMDA1LTExLTAyIDE5OjA0OjIwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBGb2xsb3ctdXAgdG8gV2ltJ3MgcGF0Y2gsIHNvbHZlcyBkZWFkbG9jayBmb3IgYmxvY2tlZCBhbmQgZmx1c2hpbmcgcGFkcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChoYW5kbGVfcGFkX2Jsb2NrKToKCSAgRm9sbG93LXVwIHRvIFdpbSdzIHBhdGNoLCBzb2x2ZXMgZGVhZGxvY2sgZm9yIGJsb2NrZWQgYW5kIGZsdXNoaW5nIHBhZHMKCjIwMDUtMTEtMDIgMTg6NDQ6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCB0eXBvIGluIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgRml4IHR5cG8gaW4gZG9jcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKToKCSAgUmVtb3ZlIHVudXNlZCB2YWx1ZS4KCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgTWVudGlvbiB0aGF0IHRoZSByZXR1cm5lZCBlbGVtZW50IGlzIHJlZmZlZCBpbiB0aGUgZG9jcy4KCjIwMDUtMTEtMDIgMTg6MzM6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFVubG9jayBibG9ja2VkIHBhZHMgd2hlbiB0aGV5IGFyZSBmbHVzaGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChoYW5kbGVfcGFkX2Jsb2NrKSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICBVbmxvY2sgYmxvY2tlZCBwYWRzIHdoZW4gdGhleSBhcmUgZmx1c2hlZC4KCjIwMDUtMTEtMDIgMTU6MzQ6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9SRUFETUU6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgIGRvYyB1cGRhdGVzCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgZml4IGZvciBhIG5hc3R5IGxpdHRsZSBtaXNzZWQgc2l0dWF0aW9uIHdoZXJlIGFuIGluc3RhbGxlZCBwbHVnLWluCgkgIHdoaWNoIHdhcyBpbiB0aGUgY2FjaGUgZGlkIG5vdCBnZXQgb3ZlcnJpZGRlbiBieSBhbiB1bmluc3RhbGxlZCBvbmUKCSAgd2hpY2ggd2FzIGVhcmxpZXIgaW4gdGhlIHBsdWdpbiBwYXRoIGJlY2F1c2UgdGhlIG5ld2x5IGNyZWF0ZWQgcGx1Z2luCgkgIGZvciB0aGUgdW5pbnN0YWxsZWQgb25lIChub3QgaW4gdGhlIHJlZ2lzdHJ5KSBkaWRuJ3QgZ2V0IGl0cwoJICAtPnJlZ2lzdGVyZWQgc2V0IHRvIFRSVUUKCjIwMDUtMTEtMDIgMTU6MDg6MDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBHdWFyZCBwdWJsaWMgQVBJIHdpdGggYXNzZXJ0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19zZXRfZnVuY3Rpb24pLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX3JlbW92ZV9wYWQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2lzX2FjdGl2ZSksIChnc3RfY29sbGVjdHBhZHNfY29sbGVjdCksCgkgIChnc3RfY29sbGVjdHBhZHNfY29sbGVjdF9yYW5nZSksIChnc3RfY29sbGVjdHBhZHNfc3RhcnQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3N0b3ApLCAoZ3N0X2NvbGxlY3RwYWRzX3BlZWspLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3BvcCksIChnc3RfY29sbGVjdHBhZHNfYXZhaWxhYmxlKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19yZWFkKSwgKGdzdF9jb2xsZWN0cGFkc19mbHVzaCk6CgkgIEd1YXJkIHB1YmxpYyBBUEkgd2l0aCBhc3NlcnRpb25zLgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgRml4IGRvY3MgZm9yIGdzdF9wYWRfc2V0X2xpbmtfZnVuY3Rpb24oKS4KCjIwMDUtMTEtMDIgMTQ6Mjg6MDIgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOiBVbnJlZiBmb3VuZF9jYXBzIGFmdGVyIHdlIHVzZWQgaXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgVW5yZWYgZm91bmRfY2FwcyBhZnRlciB3ZSB1c2VkIGl0LgoKMjAwNS0xMS0wMiAxMjoyMDo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IERvbid0IHRyeSB0byByZWYgTlVMTC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19wZWVrKToKCSAgRG9uJ3QgdHJ5IHRvIHJlZiBOVUxMLgoKMjAwNS0xMS0wMiAwOTozMTowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scwoKMjAwNS0xMS0wMiAwOToyNzozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIG1vcmUgc3ltYm9scwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgc3ltYm9scwoKMjAwNS0xMS0wMiAwOToyNDo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBnZW5lcmF0ZWQgY29uZmlnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZ2VuZXJhdGVkIGNvbmZpZwoKMjAwNS0xMS0wMiAwOToyNDowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgcHJvdmlkZSBhIEdTVF9GVU5DVElPTiB0aGF0IGp1c3QgZ2l2ZXMgYSBzdHJpbmcgZm9yIG5vdwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcHJvdmlkZSBhIEdTVF9GVU5DVElPTiB0aGF0IGp1c3QgZ2l2ZXMgYSBzdHJpbmcgZm9yIG5vdwoKMjAwNS0xMS0wMiAwODo1NjowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSAgdXBkYXRlIHdpbjMyIGNvcGllcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHdpbjMyIGNvcGllcwoKMjAwNS0xMS0wMSAxOToxNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YmluLmM6CgkgIG1vcmUgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgZG9jIHVwZGF0ZXMKCjIwMDUtMTEtMDEgMTc6NDU6NDYgKzAwMDAgIEx1Y2EgT2duaWJlbmUgPGx1b2duaUB0aW4uaXQ+CgoJICBnc3QvZ3N0LmM6IGZpeCBkb2NzLiBwb3B0IGlzIGRlYXRoLCBsb25nIGxpdmUgR09wdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICBmaXggZG9jcy4gcG9wdCBpcyBkZWF0aCwgbG9uZyBsaXZlIEdPcHRpb24uCgoyMDA1LTEwLTMxIDExOjQ0OjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5oOiBTbWFsbCBkb2MgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFNtYWxsIGRvYyBmaXguCgoyMDA1LTEwLTMxIDA5OjUyOjEzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBCb28hCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTMxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIEJvbyEKCSAgKiBnc3QvZ3N0cXVldWUuYyAoZ3N0X3F1ZXVlX2NoYWluKTogRml4IGRvd25zdHJlYW0gbGVha3kgbW9kZS4KCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfZGlzcGF0Y2hfcHJvcGVydGllc19jaGFuZ2VkKTogTm8KCSAgbmVlZCB0byBzZXJpYWxpemUgcHJvcGVydHkgbm90aWZpY2F0aW9ucyBvbiBHTGliIDIuOC4gR0xpYiAyLjYgaGFzCgkgIHRoZSBwb3NzaWJpbGl0eSBvZiBkZWFkbG9ja3MgaGVyZSBpZiBjb2RlIGNhbGxpbmcgbm90aWZ5KCkgb3IKCSAgc2V0KCkgaGFzIGEgbG9jayB0aGF0IGNhbiBiZSB0YWtlbiBpbiBhbm90aGVyIG5vdGlmeSBoYW5kbGVyIChBQkJBCgkgIHdpdGggY2xhc3MgbG9jayBhbmQgZS5nLiBweXRob24gR0lMIHN0YXRlIGxvY2spLgoKMjAwNS0xMC0yOCAxODoxODoyMyArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0YnVzLmM6IERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0yOCAgSnVsaWVuIE1PVVRURSAgPGp1bGllbkBtb3V0dGUubmV0PgoJICAqIGdzdC9nc3RidXMuYzogRG9jIHVwZGF0ZXMuCgoyMDA1LTEwLTI4IDE4OjE0OjI0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkgIERvYyB1cGRhdGVzLgoKMjAwNS0xMC0yOCAxODoxMDo0MSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGRvY3MvZ3N0LzogdGhlIEdzdFVSSVR5cGUgZG9jdW1lbnRhdGlvbiBwYWdlIGlzIHByaXZhdGUsIGl0IG9ubHkgZGVmaW5lcyBHc3RVUklUeXBlIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkIGluIHRoZSBHcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHRoZSBHc3RVUklUeXBlIGRvY3VtZW50YXRpb24gcGFnZSBpcyBwcml2YXRlLCBpdCBvbmx5IGRlZmluZXMgR3N0VVJJVHlwZQoJICB3aGljaCBzaG91bGQgYmUgZGVmaW5lZCBpbiB0aGUgR3N0VVJJSGFuZGxlciBwYWdlCgoyMDA1LTEwLTI4IDE3OjM1OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA1LTEwLTI4IDE3OjM1OjA1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRG9jdW1lbnRlZCB0aGUgY2xvY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RjbG9jay5jOgoJICAqIGdzdC9nc3RjbG9jay5oOgoJICBEb2N1bWVudGVkIHRoZSBjbG9ja3MuCgoyMDA1LTEwLTI4IDE3OjM0OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICB1cGRhdGVkIGNvbmZpZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlZCBjb25maWcKCjIwMDUtMTAtMjggMTc6MjA6NDUgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgV29yayBhcm91bmQgZ3RrZG9jIGRlZmljaWVuY2llcywgZG9jdW1lbnQgYSBtYWNybyBkaWZmZXJlbnRseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFdvcmsgYXJvdW5kIGd0a2RvYyBkZWZpY2llbmNpZXMsIGRvY3VtZW50IGEgbWFjcm8gZGlmZmVyZW50bHkuCgoyMDA1LTEwLTI4IDE3OjAxOjE0ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIEltcHJvdmUgR3N0QnVmZmVyIGRvY3VtZW50YXRpb24uIEl0J3Mgbm93IDEwMCUgU3BpZmZpZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbXByb3ZlIEdzdEJ1ZmZlciBkb2N1bWVudGF0aW9uLiBJdCdzIG5vdyAxMDAlIFNwaWZmaWVyLgoKMjAwNS0xMC0yOCAxNjo1NDoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL1JFQURNRToKCSAgc29tZSBzdHlsZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSBzdHlsZSBmaXhlcwoKMjAwNS0xMC0yOCAxNjo0Njo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogbW92ZSBzb21lIG1hY3JvcyB0byBwcml2YXRlIHNlY3Rpb25zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1vdmUgc29tZSBtYWNyb3MgdG8gcHJpdmF0ZSBzZWN0aW9ucwoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgYWRkIGRlc2NyaXB0aW9ucyBwcm92aWRlZCBieSBkcyBhbmQgc29tZSBtb3JlCgkgICogZ3N0L2dzdHBhZC5oOgoJICBtYXJrIG1hY3JvIGFzIHRvIGJlIHJlbW92ZWQKCjIwMDUtMTAtMjggMTY6MjE6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBBZGQgYW4gaXRlbSB0byBUT0RPLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICBBZGQgYW4gaXRlbSB0byBUT0RPLgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX2ZvbGQpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZpbmRfY3VzdG9tKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgQWRkIGl0ZXJhdG9yIGRvY3MuCgoyMDA1LTEwLTI4IDE2OjA4OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvUkVBRE1FOgoJICBhZGQgc3R5bGUgZ3VpZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBzdHlsZSBndWlkZQoKMjAwNS0xMC0yOCAxMDo0NTozMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRG9uJ3QgbGVhayBjbGFzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpOgoJICBEb24ndCBsZWFrIGNsYXNzLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9sb29wKToKCSAgQW4gRU9TIGV2ZW50IG1hcmtzIHRoZSBxdWV1ZSBhcyBjb21wbGV0ZWx5IGZpbGxlZC4KCjIwMDUtMTAtMjcgMjA6NTk6MDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTb21lIG1vcmUgZGVidWdnaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2ZpbmFsaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRyYW5nZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgRml4IGRlYnVnZ2luZywKCSAgUHJvdGVjdCB0cmFuc2Zvcm0gYW5kIGNvbmN1cnJlbnQgYnVmZmVyIGFsbG9jIHdpdGggYSBuZXcgbG9jay4KCSAgVHJ5IG5vdCB0byBicmVhayBBQkkvQVBJLgoKMjAwNS0xMC0yNyAxOTozNzoyNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogTW92ZSBzb21lIHN0dWZmIGFyb3VuZCBhbmQgY2xlYW51cCB0aGluZ3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19pbml0KSwgKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NyY19jb25maWd1cmVfc2VnbWVudCksIChnc3RfYmFzZV9zcmNfZG9fc2VlayksCgkgIChnc3RfYmFzZV9zcmNfc2VuZF9ldmVudCksIChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfbG9vcCksCgkgIChnc3RfYmFzZV9zcmNfdW5sb2NrKSwgKGdzdF9iYXNlX3NyY19kZWZhdWx0X25lZ290aWF0ZSksCgkgIChnc3RfYmFzZV9zcmNfc3RhcnQpLCAoZ3N0X2Jhc2Vfc3JjX2RlYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX2FjdGl2YXRlX3B1c2gpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIE1vdmUgc29tZSBzdHVmZiBhcm91bmQgYW5kIGNsZWFudXAgdGhpbmdzLgoKMjAwNS0xMC0yNyAxNTo0ODo1NiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogQWRkIG1pc3NpbmcgYnJlYWsgc3RhdGVtZW50cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgQWRkIG1pc3NpbmcgYnJlYWsgc3RhdGVtZW50cy4KCjIwMDUtMTAtMjcgMTM6NDc6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFuIGV4dHJhIHJlZmNvdW50IGlzIHRha2VuIGluIGJhc2VzcmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQW4gZXh0cmEgcmVmY291bnQgaXMgdGFrZW4gaW4gYmFzZXNyYy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFNtYWxsIGNsZWFudXBzLCBjaGVjayBmb3IgZmx1c2hpbmcgYWZ0ZXIgYmVpbmcgdW5sb2NrZWQgZnJvbSB0aGUKCSAgTElWRV9MT0NLLiB0YWtlIHJlZmNvdW50cyBjb3JyZWN0bHkgKG5vdCB5ZXQgZXZlcnl3aGVyZSkuCgkgIERvbid0IHNlbmQgb3V0IEVPUyB3aGVuIGdvaW5nIHRvIFJFQURZLgoKMjAwNS0xMC0yNyAwODo1NTo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFNvbWUgbW9yZSBkZWJ1Zy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIFNvbWUgbW9yZSBkZWJ1Zy4KCSAgKiBnc3QvZ3N0YmluLmM6IChtZXNzYWdlX2NoZWNrKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25faW5pdCksIChiaW5fcXVlcnlfZHVyYXRpb25fZm9sZCksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSksIChiaW5fcXVlcnlfZ2VuZXJpY19mb2xkKSwKCSAgKGdzdF9iaW5fcXVlcnkpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBSZW1vdmUgb2xkIG9wdGlvbi4KCjIwMDUtMTAtMjYgMTg6NTc6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpeGluZyBleGFtcGxlcyBmaXhpbmcgZG9jcyB0eXBvcyBjaGFuZ2luZyBsb2cgcHJpb3JpdHkgaW4gZXJyb3Igc2l0dWF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICAqIGV4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6IChldmVudF9sb29wKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIGZpeGluZyBleGFtcGxlcwoJICBmaXhpbmcgZG9jcyB0eXBvcwoJICBjaGFuZ2luZyBsb2cgcHJpb3JpdHkgaW4gZXJyb3Igc2l0dWF0aW9ucwoKMjAwNS0xMC0yNiAxMDoxMToyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBzY3JpcHRzL2N2cy11cGRhdGUuc2g6CgkgIG1ha2Ugc3VyZSBkaXJzIGdldCBjaGVja2VkIG91dAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBzdXJlIGRpcnMgZ2V0IGNoZWNrZWQgb3V0CgoyMDA1LTEwLTI2IDA5OjU2OjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL01BTklGRVNUOgoJICBmaXggZGlzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3QKCjIwMDUtMTAtMjUgMTc6NDE6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNvbWUgZG9jIGFuZCBkZWJ1ZyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChtZXNzYWdlX2NoZWNrKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwgKGJpbl9idXNfaGFuZGxlciksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25faW5pdCksIChiaW5fcXVlcnlfZHVyYXRpb25fZm9sZCksCgkgIChiaW5fcXVlcnlfZHVyYXRpb25fZG9uZSksIChiaW5fcXVlcnlfZ2VuZXJpY19mb2xkKSwKCSAgKGdzdF9iaW5fcXVlcnkpOgoJICBTb21lIGRvYyBhbmQgZGVidWcgdXBkYXRlcy4KCSAgQ2FjaGUgcHJldmlvdXNseSByZXF1ZXN0ZWQgcXVlcnkgRFVSQVRJT04gZm9yIHNwZWVkLiBpbnZhbGlkYXRlCgkgIGNhY2hlZCBkdXJhdGlvbiBpZiBlbGVtZW50IHBvc3RzIGEgRFVSQVRJT04gbWVzc2FnZS4KCjIwMDUtMTAtMjUgMTU6Mzk6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGUgVE9ETy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlIFRPRE8uCgkgICogZ3N0L2dzdGJpbi5jOiAobWVzc2FnZV9jaGVjayksIChiaW5fcmVwbGFjZV9tZXNzYWdlKSwKCSAgKGJpbl9yZW1vdmVfbWVzc2FnZXMpLCAoaXNfZW9zKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAodXBkYXRlX2RlZ3JlZSksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksIChiaW5fYnVzX2hhbmRsZXIpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2luaXQpLCAoYmluX3F1ZXJ5X2R1cmF0aW9uX2ZvbGQpLAoJICAoYmluX3F1ZXJ5X2R1cmF0aW9uX2RvbmUpLCAoYmluX3F1ZXJ5X2dlbmVyaWNfZm9sZCksCgkgIChnc3RfYmluX3F1ZXJ5KToKCSAgSGFuZGxlIFNFR01FTlRfU1RBUlQvRE9ORSBtZXNzYWdlcyBjb3JyZWN0bHkuCgkgIE1vcmUgZXZvbHZlZCBxdWVyeSBhbGdvcml0aG0gdGhhdCBoYW5kbGVzIGR1cmF0aW9uIHF1ZXJpZXMKCSAgY29ycmVjdGx5LgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZW5kX2V2ZW50KSwgKGdzdF9lbGVtZW50X3F1ZXJ5KSwKCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgU29tZSBtb3JlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGRlZCBkb2MuCgoyMDA1LTEwLTI1IDEwOjE1OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRG9uJ3QgdXNlIGludmFsaWQgc3RyZWFtX3RpbWUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2dldF9wb3NpdGlvbik6CgkgIERvbid0IHVzZSBpbnZhbGlkIHN0cmVhbV90aW1lLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KToKCSAgc3RyZWFtX3RpbWUgaW4gbmV3c2VnbWVudCBjYW5ub3QgYmUgdW5kZWZpbmVkLgoKMjAwNS0xMC0yNSAxMDoxMjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IHRoZSBjaGFuZ2Vsb2cgbGFzdCB0aW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGb3Jnb3QgdGhlIGNoYW5nZWxvZyBsYXN0IHRpbWUKCjIwMDUtMTAtMjQgMTU6NDE6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLmM6IERvYyBmaXguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgRG9jIGZpeC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBGaXggcG90ZW50aWFsIGRlYWRsb2NrIHdoZW4gUVVFVUVfTE9DSyBpcyB0YWtlbiBiZWZvcmUgU1RSRUFNX0xPQ0suCgoyMDA1LTEwLTI0IDExOjU2OjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2xpYnMvdG1wbC86IHRoZXNlIGFyZSBvYnNvbGV0ZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkcGFyYW0uc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkcGxpbmludC5zZ21sOgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRwbWFuLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0ZHBzbW9vdGguc2dtbDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3R1bml0Y29udmVydC5zZ21sOgoJICB0aGVzZSBhcmUgb2Jzb2xldGUKCjIwMDUtMTAtMjQgMDk6MTM6MjcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBGaXggc29tZSBtaW5vciBkb2N1bWVudGF0aW9uIHR5cG9zCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXggc29tZSBtaW5vciBkb2N1bWVudGF0aW9uIHR5cG9zCgoyMDA1LTEwLTIzIDIzOjA0OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIEhFQUQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gSEVBRAoKPT09IHJlbGVhc2UgMC45LjQgPT09CgoyMDA1LTEwLTIzIDIyOjMwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL3JhbmRvbS9yZWxlYXNlOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdGltZSB0byByZWxlYXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aW1lIHRvIHJlbGVhc2UKCjIwMDUtMTAtMjMgMTA6NDk6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIGFkZCBtb3JlIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSBmaWxlcwoKMjAwNS0xMC0yMyAxMDoyOTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiBVc2UgZnNlZWtvKCkgYW5kIGZ0ZWxsbygpIGlmIGF2YWlsYWJsZS4gV2hlbiBmYWxsaW5nIGJhY2sgb24gbHNlZWsoKSB0byBnZXQgdGhlIGN1cnJlbnQgby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2dldF9jdXJyZW50X29mZnNldCk6CgkgIFVzZSBmc2Vla28oKSBhbmQgZnRlbGxvKCkgaWYgYXZhaWxhYmxlLiBXaGVuIGZhbGxpbmcgYmFjayBvbgoJICBsc2VlaygpIHRvIGdldCB0aGUgY3VycmVudCBvZmZzZXQsIGZmbHVzaCgpIGZpcnN0IHRvIG1ha2Ugc3VyZQoJICBldmVyeXRoaW5nIGlzIHVwLXRvLWRhdGUgYW5kIHdlIGdldCB0aGUgcmlnaHQgb2Zmc2V0LgoKMjAwNS0xMC0yMyAwOTowODo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RlcnJvci5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgcmVtb3ZlIHByZW1hdHVyZWx5IGFkZGVkIGVycm9yIGNhdGVnb3J5IGFuZCBjbGVhbiB1cCB0aGUgaW5zdGFuY2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgcHJlbWF0dXJlbHkgYWRkZWQgZXJyb3IgY2F0ZWdvcnkgYW5kIGNsZWFuIHVwIHRoZSBpbnN0YW5jZXMKCjIwMDUtMTAtMjEgMTc6NTM6MzEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBTaW1wbHkgc2V0IHRoZSByaWdodCBmbGFnIHdoZW4gZ29pbmcgdG8gcGxheWluZywgdGhhdCdzIGFsbCB3ZSBuZWVkIHRvIGRvIGluc3RlYWQgb2YgY2FsbGluZyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBTaW1wbHkgc2V0IHRoZSByaWdodCBmbGFnIHdoZW4gZ29pbmcgdG8gcGxheWluZywgdGhhdCdzIGFsbAoJICB3ZSBuZWVkIHRvIGRvIGluc3RlYWQgb2YgY2FsbGluZyBhIGZ1bmN0aW9uIGluc2lkZSB0aGUgb2JqZWN0CgkgIGxvY2sgKHRoYXQgY291bGQgdGFrZSB0aGUgbG9jayBhcyB3ZWxsIGFuZCBkZWFkbG9jaykKCjIwMDUtMTAtMjEgMTY6MTg6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHdhcm4sIHRoZSBwZWVyIGVsZW1lbnQga25vd3Mgd2hhdCB0byBkbyBiZXN0IHdoZW4gdGhlIHNlZWsgZmFpbGVkLCBpdCBtaWdodCB0cnkgc29tZXRoaW4uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBEb24ndCB3YXJuLCB0aGUgcGVlciBlbGVtZW50IGtub3dzIHdoYXQgdG8gZG8gYmVzdCB3aGVuCgkgIHRoZSBzZWVrIGZhaWxlZCwgaXQgbWlnaHQgdHJ5IHNvbWV0aGluZyBlbHNlLgoKMjAwNS0xMC0yMSAxNjoxNDozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogRml4IHNlZWtpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KSwKCSAgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgIEZpeCBzZWVraW5nLgoKMjAwNS0xMC0yMSAxNToxMzowOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OiBNb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2VnbWVudHMudHh0OgoJICBNb3JlIGRvY3MuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgQ29ycmVjdGx5IHNldCBjYXBzLCBldmVuIG9uIHRoZSBzdWJidWZlci4KCjIwMDUtMTAtMjEgMTE6MzY6MzIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBbmQgMiUgbW9yZSBkb2MgY292ZXJhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYXJzZS5oOgoJICAqIGdzdC9nc3R0YXNrLmM6IChnc3RfdGFza19maW5hbGl6ZSksIChnc3RfdGFza19mdW5jKToKCSAgKiBnc3QvZ3N0dGFzay5oOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBbmQgMiUgbW9yZSBkb2MgY292ZXJhZ2UuCgoyMDA1LTEwLTIxIDA5OjI0OjI4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19xdWVyeSk6IENsZWFuIHVwIHBlcmNlbnQgcG9zaXRpb24gcmVwb3J0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0yMSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19xdWVyeSk6IENsZWFuIHVwIHBlcmNlbnQKCSAgcG9zaXRpb24gcmVwb3J0aW5nLgoKMjAwNS0xMC0yMCAyMTowODo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vcmUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVycm9yLmM6IChnc3RfZXJyb3JfZ2V0X21lc3NhZ2UpOgoJICAqIGdzdC9nc3RwYXJzZS5oOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgTW9yZSBkb2NzLgoKMjAwNS0xMC0yMCAyMDo0NjoxNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFub3RoZXIgMSUgbW9yZSBjb3ZlcmFnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGFyc2UuYzoKCSAgQW5vdGhlciAxJSBtb3JlIGNvdmVyYWdlLgoKMjAwNS0xMC0yMCAyMDoyNTo1NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFlheSEgMSUgbW9yZSBkb2NzIGNvdmVyYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6IChnc3RfcXVlcnlfc2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9wb3NpdGlvbiksIChnc3RfcXVlcnlfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9kdXJhdGlvbiksIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICBZYXkhIDElIG1vcmUgZG9jcyBjb3ZlcmFnZS4KCjIwMDUtMTAtMjAgMTk6NDc6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBEb2NzIGFuZCBjb25zaXN0ZW5jeSBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLCAoZ3N0X3F1ZXJ5X3NldF9kdXJhdGlvbiksCgkgIChnc3RfcXVlcnlfcGFyc2VfZHVyYXRpb24pLCAoZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KToKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3F1ZXJ5X2NvbnZlcnQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBEb2NzIGFuZCBjb25zaXN0ZW5jeSBmaXhlcy4KCjIwMDUtMTAtMjAgMTk6MzA6NTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dGFzay4qOiBNb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R0YXNrLmM6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgTW9yZSBkb2NzLgoKMjAwNS0xMC0yMCAxNzoyMjo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogUmV3b3JrZWQgdGhlIG1lc3NhZ2UgaGFuZGxpbmcgYSBiaXQsIGNhY2hlIHRoZSBtZXNzYWdlcyBpbnN0ZWFkIG9mIG9ubHkgdGhlIHNlbmRlcnMuIGFsb3dzIHVzIHRvIGRvIG1vci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChtZXNzYWdlX2NoZWNrKSwgKGJpbl9yZXBsYWNlX21lc3NhZ2UpLAoJICAoYmluX3JlbW92ZV9tZXNzYWdlcyksIChpc19lb3MpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoZ3N0X2Jpbl9kaXNwb3NlKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIFJld29ya2VkIHRoZSBtZXNzYWdlIGhhbmRsaW5nIGEgYml0LCBjYWNoZSB0aGUgbWVzc2FnZXMgaW5zdGVhZCBvZgoJICBvbmx5IHRoZSBzZW5kZXJzLiBhbG93cyB1cyB0byBkbyBtb3JlIGluIHRoZSBmdXR1cmUuCgoyMDA1LTEwLTIwIDE3OjE4OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDogVXBkYXRlIFRPRE8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlIFRPRE8KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19nZXRfcG9zaXRpb24pLAoJICAoZ3N0X2Jhc2Vfc2lua19xdWVyeSk6CgkgIERvbid0IHVzZSBjbG9jayB0aW1lIHRvIHJlcG9ydCBwb3NpdGlvbiB3aGVuIGluIEVPUy4KCjIwMDUtMTAtMjAgMTM6MTA6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBGaXggaW50ZXJmYWNlIG91dHB1dCB3aXRoIGdzdC1pbnNwZWN0IC1hOyBkb24ndCBwcmludCBuZXdsaW5lcyBhZnRlciBkb3VibGUvZmxvYXQgcHJvcGVydGllcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2ludGVyZmFjZXMpLAoJICAocHJpbnRfZWxlbWVudF9wcm9wZXJ0aWVzX2luZm8pLCAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgRml4IGludGVyZmFjZSBvdXRwdXQgd2l0aCBnc3QtaW5zcGVjdCAtYTsgZG9uJ3QgcHJpbnQKCSAgbmV3bGluZXMgYWZ0ZXIgZG91YmxlL2Zsb2F0IHByb3BlcnRpZXMuCgoyMDA1LTEwLTIwIDExOjQ4OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU3BlZWQgdXAgY3VycmVudCBwb3NpdGlvbiBjYWxjdWxhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfZ2V0X3Bvc2l0aW9uKSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBTcGVlZCB1cCBjdXJyZW50IHBvc2l0aW9uIGNhbGN1bGF0aW9uLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19xdWVyeSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KToKCSAgQ29ycmVjdGx5IHNldCBzdHJlYW0gcG9zaXRpb24gaW4gbmV3c2VnbWVudC4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGFkZF90b19xdWV1ZSksCgkgICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgQ2xlYW4gdXAgZGVidWdnaW5nIGluZm8KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9saW5rX3NyYyksIChnc3RfcXVldWVfY2hhaW4pLAoJICAoZ3N0X3F1ZXVlX2xvb3ApLCAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBQYXVzZSB0YXNrIGZhc3Rlci4KCjIwMDUtMTAtMTkgMTc6MDY6NTYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGaXggcXVlcnkgaGFuZGxpbmcgYWdhaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksIChkb19wbGF5aW5nKToKCSAgRml4IHF1ZXJ5IGhhbmRsaW5nIGFnYWluLgoKMjAwNS0xMC0xOSAxNTo1MDoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEFQSSBjaGFuZ2UgZml4LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfcXVlcnkpLCAoZG9fcGxheWluZyk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcXVlcnkpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgKGdzdF90eXBlX2ZpbmRfaGFuZGxlX3NyY19xdWVyeSksIChmaW5kX2VsZW1lbnRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICBBUEkgY2hhbmdlIGZpeC4KCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X3NldF9wb3NpdGlvbiksIChnc3RfcXVlcnlfcGFyc2VfcG9zaXRpb24pLAoJICAoZ3N0X3F1ZXJ5X25ld19kdXJhdGlvbiksIChnc3RfcXVlcnlfc2V0X2R1cmF0aW9uKSwKCSAgKGdzdF9xdWVyeV9wYXJzZV9kdXJhdGlvbiksIChnc3RfcXVlcnlfc2V0X3NlZ21lbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZ21lbnQpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBCdW5kbGluZyBxdWVyeSBwb3NpdGlvbi9kdXJhdGlvbiBpcyBub3QgYSBnb29kIGlkZWEgc2luY2UgZHVyYXRpb24KCSAgZG9lcyBub3QgY2hhbmdlIG11Y2ggYW5kIHdlIGRvbid0IHdhbnQgdG8gcmVjYWxjdWxhdGUgaXQgZm9yIGV2ZXJ5CgkgIHBvc2l0aW9uIHF1ZXJ5LCBzbyB0aGV5IGFyZSBzZXBhcmF0ZWQgYWdhaW4uLgoJICBCYXNlIHZhbHVlIGluIHNlZ21lbnQgcXVlcnkgaXMgbm90IG5lZWRlZC4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3F1ZXJ5X3Bvc2l0aW9uKSwKCSAgKGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKSwgKGdzdF9wYWRfcXVlcnlfcG9zaXRpb24pLAoJICAoZ3N0X3BhZF9xdWVyeV9kdXJhdGlvbik6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIFVwZGF0ZXMgZm9yIHF1ZXJ5IEFQSSBjaGFuZ2UuCgkgIEFkZGVkIHNvbWUgZG9jcyBoZXJlIGFuZCB0aGVyZS4KCjIwMDUtMTAtMTkgMTE6NDM6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiB3YWl0IG9uIHRocmVhZCB0byBkaWUgc28gd2UgY2FuIGNoZWNrIHJlZmNvdW50IGNvcnJlY3RseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgd2FpdCBvbiB0aHJlYWQgdG8gZGllIHNvIHdlIGNhbiBjaGVjayByZWZjb3VudCBjb3JyZWN0bHkKCjIwMDUtMTAtMTkgMTE6NDM6MTggKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB1cGRhdGUgdG9vbHMgcGFja2FnZSBuYW1pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSB0b29scyBwYWNrYWdlIG5hbWluZwoKMjAwNS0xMC0xOSAxMTo0MjozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGxvZyBhbiBpZiBicmFuY2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGxvZyBhbiBpZiBicmFuY2gKCjIwMDUtMTAtMTggMTc6MzA6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IE1ha2UgY2hlY2sgYSBsaXR0bGUgbW9yZSB0aW1lIGNvbnN1bWluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svcGlwZWxpbmVzL3N0cmVzcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGNoZWNrIGEgbGl0dGxlIG1vcmUgdGltZSBjb25zdW1pbmcuCgoyMDA1LTEwLTE4IDE3OjA2OjI5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBTbWFsbCBzdGF0ZSBjaGFuZ2UgdG9ydHVyZSB0ZXN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9waXBlbGluZXMvc3RyZXNzLmM6IChHU1RfU1RBUlRfVEVTVCksCgkgIChzaW1wbGVfbGF1bmNoX2xpbmVzX3N1aXRlKSwgKG1haW4pOgoJICBTbWFsbCBzdGF0ZSBjaGFuZ2UgdG9ydHVyZSB0ZXN0LgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jb21taXRfc3RhdGUpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLCAoZG9fcGxheWluZyksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIE5ldmVyIHRha2Ugc3RhdGUgbG9jayBmcm9tIHN0cmVhbWluZyB0aHJlYWQsIGNsZWFuIHVwIHVnbHkKCSAgaGFja3MuIFVuZm9ydHVuYXRseSBjb3JlIGRvZXMgbm90IHlldCBzdXBwb3J0IG5pY2Ugd2F5cyB0bwoJICBhc3luYyBjb21taXQgc3RhdGUuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICBTdGFydCBzdGF0ZSByZWNhbGMgaWYgYSBTVEFURV9ESVJUWSBtZXNzYWdlIGlzIHBvc3RlZCwgYnV0IG9ubHkKCSAgb24gdGhlIHRvcGxldmVsIGJpbi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCksCgkgIChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGVfZnVuYyksIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFN0YXRlIHZhcmlhYmxlcyBhcmUgbm93IHByb3RlY3RlZCB3aXRoIHRoZSBMT0NLLCB0aGUgc3RhdGUKCSAgbG9jayBpcyBvbmx5IHVzZWQgdG8gc2VyaWFsaXplIF9zZXRfc3RhdGUoKS4KCjIwMDUtMTAtMTggMTY6MjU6MzggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTZXJpb3VzbHksIHRoaXMgaXMgYmV0dGVyIHRoYW4gYSBwcmV2aW91cyBjb21taXQgYXMgd2Ugb25seSBuZWVkIHRvIG5vdGlmeSB0aGUgZmFjdCB0aGF0IGFuIGVsZW1lbnQgY2hhbmdlZCBzdGF0ZSBpbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChtZXNzYWdlX3JlY2VpdmVkKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NsYXNzX2luaXQpLCAoZ3N0X2Jpbl9yZWNhbGNfZnVuYyksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9kaXJ0eSksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19kdXJhdGlvbiksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX2R1cmF0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBTZXJpb3VzbHksIHRoaXMgaXMgYmV0dGVyIHRoYW4gYSBwcmV2aW91cyBjb21taXQgYXMgd2Ugb25seSBuZWVkCgkgIHRvIG5vdGlmeSB0aGUgZmFjdCB0aGF0IGFuIGVsZW1lbnQgY2hhbmdlZCBzdGF0ZSBpbiBhIHN0cmVhbWluZwoJICB0aHJlYWQsIG1hcmtpbmcgdGhlIHN0YXRlIG9mIHRoZSBwYXJlbnRzIGRpcnR5LCBoZW5jZSB0aGUKCSAgU1RBVEVfRElSVFkgbWVzc2FnZSBpbnN0ZWFkIG9mIGFidXNpbmcgYSBib29sZWFuIGluIGEgU1RBVEVfQ0hBTkdFCgkgIG1lc3NhZ2UuCgoyMDA1LTEwLTE4IDE1OjE1OjExICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQ2xlYW51cHMsIHByZXBhcmUgZm9yIHN0YXRlIGNoYW5nZSBmaXhlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9jbG9jayksCgkgIChnc3RfZWxlbWVudF9hYm9ydF9zdGF0ZSksIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKToKCSAgQ2xlYW51cHMsIHByZXBhcmUgZm9yIHN0YXRlIGNoYW5nZSBmaXhlcy4KCjIwMDUtMTAtMTggMTQ6Mjk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBQZW5kaW5nIEFCSSBjaGFuZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3NldF9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBQZW5kaW5nIEFCSSBjaGFuZ2VzLgoJICBHVGhyZWFkUG9vbCBpbiBHc3RCaW5DbGFzcyB0byBtb25pdG9yIGFzeW5jIHN0YXRlIGNoYW5nZXMuCgkgIHN0YXRlX2Nvb2tpZSBpbiBHc3RFbGVtZW50IHRvIGRldGVjdCBjb25jdXJyZW50IGdzdC9zZXQgc3RhdGUuCgkgIHNldF9zdGF0ZSBpcyBub3cgdmlydHVhbCB0b28gaW4gY2FzZSBhIHZlcnkgY29tcGxpY2F0ZWQgZWxlbWVudAoJICBoYXMgdG8gYmUgY29uc3RydWN0ZWQuCgoyMDA1LTEwLTE4IDEzOjE5OjE2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgTWFrZSBtZXNzYWdlcyBmdXR1cmUgcHJvb2YuIHN0YXRlLWNoYW5nZSBnZXRzIGEgZmxhZyBpZiBpdCB3YXMgYSBtZXNzYWdlIGNvbW1pbmcgZnJvbSB0aGUgc3RyZWFtaW5nIHRocmVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChtZXNzYWdlX3JlY2VpdmVkKToKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2R1cmF0aW9uKSwgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2VfZHVyYXRpb24pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgIE1ha2UgbWVzc2FnZXMgZnV0dXJlIHByb29mLgoJICBzdGF0ZS1jaGFuZ2UgZ2V0cyBhIGZsYWcgaWYgaXQgd2FzIGEgbWVzc2FnZSBjb21taW5nIGZyb20gdGhlCgkgIHN0cmVhbWluZyB0aHJlYWQuCgkgIHNlZ21lbnQtc3RhcnQvc3RvcCBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgaW4gb3RoZXIgZm9ybWF0cy4KCSAgQSBtZXNzYWdlIHRvIG5vdGlmeSBhbiBhcHAgdGhhdCBhIHBpcGVsaW5lIGNoYW5nZWQgcGxheWJhY2sKCSAgZHVyYXRpb24uCgkgIEFsc28gZml4IGEgR3N0TWVzc2FnZSBsZWFrIGluIC1sYXVuY2gKCjIwMDUtMTAtMTggMTA6MzI6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOiBNb3JlIGhlbHBmdWwgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6IE1vcmUgaGVscGZ1bCBtZXNzYWdlLgoKMjAwNS0xMC0xOCAwODoyMDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSAgcmVtb3ZlIGluZm8gbWVzc2FnZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBpbmZvIG1lc3NhZ2VzCgoyMDA1LTEwLTE4IDA3OjEzOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeS5jOiB1bnJlZiBhIHBsdWctaW4gd2UgZ2V0IHRoYXQgd2FzIGFscmVhZHkgaW5pdGlhbGl6ZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgdW5yZWYgYSBwbHVnLWluIHdlIGdldCB0aGF0IHdhcyBhbHJlYWR5IGluaXRpYWxpemVkCgoyMDA1LTEwLTE3IDIwOjE2OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBhZGQgbmV3IGFwaSBlbnRyaWVzIGhpZGUgaW50ZXJuYWwgbWFjcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIGFkZCBuZXcgYXBpIGVudHJpZXMKCSAgaGlkZSBpbnRlcm5hbCBtYWNybwoKMjAwNS0xMC0xNyAxODowOTozMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYyAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKTogU2xpZ2h0IGNsZWFudXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmMgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6IFNsaWdodAoJICBjbGVhbnVwLgoJICAqIGdzdC9NYWtlZmlsZS5hbSAoZ3N0ZW51bXR5cGVzLmMpOiBUaHJlYWRzYWZlIG5vdy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYyAoZ3N0X2V2ZW50X25ldywgZ3N0X2V2ZW50X2ZpbmFsaXplKTogTE9HLgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKTogcy9JTkZPL0RFQlVHLy4KCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKTogQmV0dGVyIGRlYnVnIG1lc3NhZ2UuCgkgIChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpOiBzL0lORk8vREVCVUcvLgoJICAoZ3N0X2VsZW1lbnRfbG9zdF9zdGF0ZSwgZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9pbml0KTogcy9JTkZPL0xPRy8uCgkgIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKTogcy9JTkZPL0xPRy8uCgoyMDA1LTEwLTE3IDE3OjQ2OjM3ICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgQ2hlY2sgdmFsaWRpdHkgb2YgZW5kIHRpbWUgYmFzZWQgb24gZW5kIHRpbWUgdmFyaWFibGUsIG5vdCBzdGFydCB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ2hlY2sgdmFsaWRpdHkgb2YgZW5kIHRpbWUgYmFzZWQgb24gZW5kIHRpbWUgdmFyaWFibGUsIG5vdCBzdGFydCB0aW1lLgoKMjAwNS0xMC0xNyAxNzowNTozOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbWVyZ2UgY29udHJvbGxlciB0ZXN0c3VpdGVzIGZpeCBicm9rZW4gdGVzdHMgcmVtb3ZlIG1lbS1jaHVuayBmcm9tIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X2NvbnRyb2xsZXJfc3VpdGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfc2V0X2ludGVycG9sYXRpb25fbW9kZSk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogdGVzdHN1aXRlL2NvbnRyb2xsZXIvLmN2c2lnbm9yZToKCSAgKiB0ZXN0c3VpdGUvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSAgbWVyZ2UgY29udHJvbGxlciB0ZXN0c3VpdGVzCgkgIGZpeCBicm9rZW4gdGVzdHMKCSAgcmVtb3ZlIG1lbS1jaHVuayBmcm9tIGRvY3MKCjIwMDUtMTAtMTcgMTQ6NDI6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0Lzogb3V0LiAgZ2V0IG91dC4gIHlvdSdyZSBmaXJlZC4gIHRvIHRoZSBBdHRpYyAhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZW1jaHVuay5jOgoJICAqIGdzdC9nc3RtZW1jaHVuay5oOgoJICAqIGdzdC9nc3R0cmFzaHN0YWNrLmM6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSAgb3V0LiAgZ2V0IG91dC4gIHlvdSdyZSBmaXJlZC4gIHRvIHRoZSBBdHRpYyAhCgoyMDA1LTEwLTE3IDE0OjM3OjA2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjYXBzLmM6IGZpeCBzaWduZWRuZXNzIGlzc3VlcyBpbiBhIChob3BlZnVsbHkpIGNvcnJlY3Qgd2F5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3RfY2Fwc19pbnRlcnNlY3QpOgoJICBmaXggc2lnbmVkbmVzcyBpc3N1ZXMgaW4gYSAoaG9wZWZ1bGx5KSBjb3JyZWN0IHdheQoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wYWRzX2FjdGl2YXRlKToKCSAgc29tZSBkZWJ1Z2dpbmcKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpOgoJICBzb21lIGRlYnVnZ2luZwoKMjAwNS0xMC0xNyAxMDozNzoxMyArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICBGaXggYSBkb2MgdHlwby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEZpeCBhIGRvYyB0eXBvLgoKMjAwNS0xMC0xNyAwOToyODozNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvZ3N0dmFsdWUuaDogRml4IHByb3RvdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE3ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdHZhbHVlLmg6IEZpeCBwcm90b3R5cGVzLgoKMjAwNS0xMC0xNiAxNDozMjo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIGdzdF92ZXJzaW9uX3N0cmluZyAoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGdzdF92ZXJzaW9uX3N0cmluZyAoKQoKMjAwNS0xMC0xNiAxMzo1NTo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgY29tbWVudDsgdXBkYXRlIHdpbjMyIGNvbmZpZy5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21tZW50OyB1cGRhdGUgd2luMzIgY29uZmlnLmgKCjIwMDUtMTAtMTYgMTI6Mzc6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogc2NyaXB0cy9jdnMtdXBkYXRlLnNoOgoJICBEZWFyIEFuZHk6IGhlcmUncyBhIHNjcmlwdCB0byB1cGRhdGUgc3R1ZmYgZnJvbSBDVlMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERlYXIgQW5keToKCSAgaGVyZSdzIGEgc2NyaXB0IHRvIHVwZGF0ZSBzdHVmZiBmcm9tIENWUwoJICBMb3ZlLAoJICBUaG9tYXMKCjIwMDUtMTAtMTYgMTI6Mjg6MjAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBjbGVhbiB1cCBmdXJ0aGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgY2xlYW4gdXAgZnVydGhlcgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICBpdCdzIFBMVUdJTkRJUiBub3cKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgdXNlIGdpbnQ2NCwgdGhlIHJhbmdlIGNvdWxkIGJlIGJpZ2dlciB0aGFuIGEgZ3VpbnQKCjIwMDUtMTAtMTYgMTE6NDg6MDkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGdzdC9nc3RjbG9jay5oOgoJICBHU3RyZWFtZXIgY29uc3VsdGFudHMgd2lsbCBtYWtlIGEgbG90IG9mIG1vbmV5IGluIDIwMzgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEdTdHJlYW1lciBjb25zdWx0YW50cyB3aWxsIG1ha2UgYSBsb3Qgb2YgbW9uZXkgaW4gMjAzOAoKMjAwNS0xMC0xNiAxMDo1ODo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0Y2Fwcy5jOiBGaXggZ3VpbnQgaiBkaXZpbmcgdW5kZXIgMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfaW50ZXJzZWN0KToKCSAgRml4IGd1aW50IGogZGl2aW5nIHVuZGVyIDAKCjIwMDUtMTAtMTYgMTA6Mzg6MDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2sgZm9yIHByb2Nlc3MuaCwgZGVjbGFyZXMgZ2V0cGlkKCkgb24gV2luZG93cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgY2hlY2sgZm9yIHByb2Nlc3MuaCwgZGVjbGFyZXMgZ2V0cGlkKCkgb24gV2luZG93cwoJICAqIGdzdC9nc3RpbmZvLmM6CgkgIGluY2x1ZGUgcHJvY2Vzcy5oIGlmIHdlIGhhdmUgaXQKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuYzogKHBvcHVsYXRlKSwgKGdzdF9tZW1fY2h1bmtfbmV3KToKCSAgKiBnc3QvZ3N0bWVtY2h1bmsuaDoKCSAgZml4IHNpZ25lZG5lc3MgaXNzdWVzCgkgICogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIGZpeCBnZXRfdHlwZSdzCgoyMDA1LTEwLTE2IDEwOjIyOjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RjYXBzLmM6CgkgIGZpeCBzaWduZWRuZXNzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggc2lnbmVkbmVzcwoKMjAwNS0xMC0xNiAxMDoxODozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgZml4IEdTVF9WRVJTSU9OCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggR1NUX1ZFUlNJT04KCjIwMDUtMTAtMTYgMTA6MTU6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGZpeCBpbmxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBpbmxpbmUKCjIwMDUtMTAtMTYgMTA6MTI6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oOgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmguaW46CgkgIGRlZmluZSBQQUNLQUdFCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWZpbmUgUEFDS0FHRQoKMjAwNS0xMC0xNiAxMDoxMDoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgdXBkYXRlIGF2YWlsYWJsZSBoZWFkZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgYXZhaWxhYmxlIGhlYWRlcnMKCjIwMDUtMTAtMTYgMDk6NTY6MzMgKzAwMDAgIEp1bGllbiBNb3V0dGUgPGp1bGllbkBtb3V0dGUubmV0PgoKCSAgZ3N0L2dzdGNhcHMuYzogRml4IGEgYmFkIGJ1ZyB3aXRoIGEgc2ltcGxlIGZpeC4gQmVjYXVzZSBvZiB1bnNpZ25lZCBpbnRzLCBjYXBzIGludGVyc2VjdGlvbiB3YXMgZ29pbmcgbnV0cyBhbmQgdHJ5aW5nLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE2ICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2ludGVyc2VjdCk6IEZpeCBhIGJhZCBidWcgd2l0aCBhCgkgIHNpbXBsZQoJICBmaXguIEJlY2F1c2Ugb2YgdW5zaWduZWQgaW50cywgY2FwcyBpbnRlcnNlY3Rpb24gd2FzIGdvaW5nIG51dHMKCSAgYW5kCgkgIHRyeWluZyB0byBhY2Nlc3Mgc3RydWN0dXJlcyB3aXRoIEdfTUFYVUlOVCBpbmRleC4gVGhhdCBmaXhlcwoJICB2aWRlb3Rlc3RzcmMgISBmZm1wZWdjb2xvcnNwYWNlICEgZmFrZXNpbmsKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6IGxvZ3MKCSAgY29uc2lzdGVuY3kuCgoyMDA1LTEwLTE2IDA5OjU1OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUKCjIwMDUtMTAtMTYgMDk6NTQ6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0eXBvCgoyMDA1LTEwLTE2IDA5OjUxOjI1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSogd2luMzIvY29tbW9uL2NvbmZpZy5oLmluOgoJICB1cGRhdGVzIGZvciAyaW4zMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlcyBmb3IgMmluMzIKCjIwMDUtMTAtMTYgMDk6NDQ6MDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBsdWdpbi5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgbW9yZSBkZWZpbmUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgZGVmaW5lIGZpeGVzCgoyMDA1LTEwLTE2IDA5OjIwOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogdXNlIHRoZSBnZXR0ZXh0IG1hY3JvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTE2ICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgdXNlIHRoZSBnZXR0ZXh0IG1hY3JvCgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9pbmRleGVycy9nc3RpbmRleGVycy5jOgoJICB1cGRhdGUgZm9yIEdTVF9QQUNLQUdFX05BTUUsIEdTVF9QQUNLQUdFX09SSUdJTgoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaDoKCSAgdXBkYXRlZCBjb25maWcuaAoJICAqIHdpbjMyL2NvbW1vbi9jb25maWcuaC5pbjoKCSAgYWRkIHRoZSB0ZW1wbGF0ZSB0byBnZW5lcmF0ZSBjb25maWcuaAoJICAqIHdpbjMyL2NvbW1vbi9nc3RlbnVtdHlwZXMuYzoKCSAgKiB3aW4zMi9jb21tb24vZ3N0dmVyc2lvbi5oOgoJICB1cGRhdGVkIGNvcGllcwoKMjAwNS0xMC0xNiAwOToxMTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWRhdGFwcm90b2NvbC11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkgIHJlbW92ZSBtb3JlIFBLR19DRkxBR1MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBtb3JlIFBLR19DRkxBR1MKCjIwMDUtMTAtMTYgMDk6MTA6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogYWRkIHRoZSBuYW5vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF92ZXJzaW9uKToKCSAgKiBnc3QvZ3N0dmVyc2lvbi5oLmluOgoJICBhZGQgdGhlIG5hbm8KCjIwMDUtMTAtMTYgMDg6NTk6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci5wYy5pbjoKCSAgcmVtb3ZlIEdTVF9QS0dfQ0ZMQUdTCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgR1NUX1BLR19DRkxBR1MKCjIwMDUtMTAtMTUgMjI6MjQ6MjAgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0ZXZlbnQuaDogT29wcywgYWRkIG1pc3NpbmcgY2xvc2luZyBicmFja2V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgT29wcywgYWRkIG1pc3NpbmcgY2xvc2luZyBicmFja2V0LgoKMjAwNS0xMC0xNSAyMTo0MToyMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSBjb21tb24gbTQncyBmb3IgYXJndW1lbnQgY2hlY2tpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICB1c2UgY29tbW9uIG00J3MgZm9yIGFyZ3VtZW50IGNoZWNraW5nCgoyMDA1LTEwLTE1IDIwOjMzOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIEdTVF9FVkVOVF9UWVBFX05BTUUoKSBtYWNyby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgQWRkIEdTVF9FVkVOVF9UWVBFX05BTUUoKSBtYWNyby4KCjIwMDUtMTAtMTUgMjA6MDA6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvY29tbW9uL2xpYmdzdHJlYW1lci5kZWY6CgkgIHVwZGF0ZSBkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgZGVmcwoKMjAwNS0xMC0xNSAxOTo1NzowMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBwcml2YXRpemUgbW9yZSBzeW1ib2xzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0dGFzay5jOgoJICBwcml2YXRpemUgbW9yZSBzeW1ib2xzCgoyMDA1LTEwLTE1IDE4OjIyOjMxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogYWRkIHNyY2RpciwgYnVpbGRkaXIgaW5jbHVkZXMgdG8gR1NUX0FMTF9DRkxBR1MsIHNpbmNlIGV2ZXJ5dGhpbmcgdGhhdCB1c2VzIEdTdHJlYW1lciBBUEkgc2hvdWxkIGhhdmUgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGFkZCBzcmNkaXIsIGJ1aWxkZGlyIGluY2x1ZGVzIHRvIEdTVF9BTExfQ0ZMQUdTLCBzaW5jZQoJICBldmVyeXRoaW5nIHRoYXQgdXNlcyBHU3RyZWFtZXIgQVBJIHNob3VsZCBoYXZlIHRoZSBpbmNsdWRlcwoKMjAwNS0xMC0xNSAxNzo1OTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnaXZlIGVhY2ggdmFsdWUgYSBfZ2V0X3R5cGUsIHJlbW92ZXMgdGhlIERBVEEgZXhwb3J0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X2RhdGVfZ2V0X3R5cGUpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgKiBnc3QvZ3N0dmFsdWUuaDoKCSAgZ2l2ZSBlYWNoIHZhbHVlIGEgX2dldF90eXBlLCByZW1vdmVzIHRoZSBEQVRBIGV4cG9ydHMKCjIwMDUtMTAtMTUgMTc6MjI6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgIGZpeCBsaW5rIGZsYWdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggbGluayBmbGFncwoKMjAwNS0xMC0xNSAxNjozOTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGRlZnMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIGRlZnMgZmlsZQoKMjAwNS0xMC0xNSAxNjozNzoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgdXBkYXRlIGRlZnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBkZWZzCgoyMDA1LTEwLTE1IDE2OjMzOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QuKjogcmVtb3ZlIF9nc3RfcmVnaXN0cnlfYXV0b19sb2FkLCBub3QgdXNlZCBhbnltb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0Lmg6CgkgIHJlbW92ZSBfZ3N0X3JlZ2lzdHJ5X2F1dG9fbG9hZCwgbm90IHVzZWQgYW55bW9yZQoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgbWFrZSBfZ2V0X3R5cGUgZnVuY3Rpb25zIHNpbWlsYXIsIGZpeGVzIGRhdGEgZXhwb3J0IGZyb20gbGlicmFyeQoKMjAwNS0xMC0xNSAxNjoxNjowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkqIGxpYnMvZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkgIEknbSB0b28gbGF6eSB0byBjb21tZW50IHRoaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGd0ay1kb2MgaW5zaXN0cyBvbiBpbnNlcnRpbmcgPFBBUkE+IGF0IGV2ZXJ5IGVtcHR5IGxpbmUsIHNpZ2gKCjIwMDUtMTAtMTUgMTY6MDE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2hpbGRwcm94eS5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVycm9yLmM6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZmlsdGVyLmM6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGdob3N0cGFkLmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmZvLmM6CgkqIGdzdC9nc3RpbnRlcmZhY2UuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RtZW1jaHVuay5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmM6CgkqIGdzdC9nc3RwYXJzZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0cmFjZS5jOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1cml0eXBlLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0eG1sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSAgdmFyaW91cyBzdHlsZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFyaW91cyBzdHlsZSBmaXhlcwoKMjAwNS0xMC0xNSAxNTo1Mzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiBleGFtcGxlcy9hcHByZWFkZXIvYXBwcmVhZGVyLmM6CgkqIGV4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiBleGFtcGxlcy9jdXR0ZXIvY3V0dGVyLmM6CgkqIGV4YW1wbGVzL2N1dHRlci9jdXR0ZXIuaDoKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuaDoKCSogZXhhbXBsZXMvcmV0YWcvcmV0YWcuYzoKCSogZXhhbXBsZXMvcmV0YWcvdHJhbnNjb2RlLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2FwcHJlYWRlci9hcHByZWFkZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvYXVkaW8tZXhhbXBsZS5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvY3V0dGVyL2N1dHRlci5oOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21peGVyL21peGVyLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9yZXRhZy9yZXRhZy5jOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvcmV0YWcvdHJhbnNjb2RlLmM6CgkqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSogd2luMzIvY29tbW9uL2dzdHZlcnNpb24uaDoKCSogd2luMzIvZGlyZW50LmM6CgkqIHdpbjMyL2dzdGNvbmZpZy5oOgoJKiB3aW4zMi9nc3R2ZXJzaW9uLmg6CgkqIHdpbjMyL2d0Y2hhci5oOgoJKiB3aW4zMi9tbWFuLmg6CgkqIHdpbjMyL3ZzNy9tbWFuLmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMTAtMTUgMTU6NTM6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL2ZpbGVwYWRzaW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS9nc3Ric3Rlc3QuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9ieXRlc3RyZWFtL3Rlc3QxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYnl0ZXN0cmVhbS90ZXN0ZmlsZTE6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9ub3JtYWxpc2F0aW9uLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXAxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NsZWFudXAvY2xlYW51cDMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbGVhbnVwL2NsZWFudXA0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwNS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NvbnRyb2xsZXIvaW50ZXJwb2xhdG9yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL25lZ290aWF0aW9uLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvbmVnb3RpYXRpb24vTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvbmVnb3RpYXRpb24vcGFkX2xpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9wYWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFkL2NoYWlubm9wdWxsLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcGFkL2dldG5vcHVzaC5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3BhZC9saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvcmVmY291bnRpbmcvc2NoZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWdpc3RyeS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9yZWdpc3RyeS9nc3QtcHJpbnQtZm9ybWF0cy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0MjE4My0yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDIxODMuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0Mzc3Ny0yLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDM3NzcuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzcxMy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODE5LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4OTQtMi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3ODk0LmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL2dyb3VwX2xpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3F1ZXVlX2xpbmsuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zY2hlZHVsZXJzL3JlbGluay5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvdW5saW5rLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvc2NoZWR1bGVycy91bnJlZi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3NjaGVkdWxlcnMvdXNlbGVzc19pdGVyYXRpb24uYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL2J5dGVzdHJlYW0vTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL2ZpbGVwYWRzaW5rLmM6CgkqIHRlc3RzdWl0ZS9ieXRlc3RyZWFtL2dzdGJzdGVzdC5jOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS90ZXN0MS5jOgoJKiB0ZXN0c3VpdGUvYnl0ZXN0cmVhbS90ZXN0ZmlsZTE6CgkqIHRlc3RzdWl0ZS9jYXBzL25vcm1hbGlzYXRpb24uYzoKCSogdGVzdHN1aXRlL2NhcHMvcmFuZG9tLmM6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jbGVhbnVwL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMS5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMi5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwMy5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwNC5jOgoJKiB0ZXN0c3VpdGUvY2xlYW51cC9jbGVhbnVwNS5jOgoJKiB0ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSogdGVzdHN1aXRlL2RlYnVnL3ByaW50Zl9leHRlbnNpb24uYzoKCSogdGVzdHN1aXRlL2VsZW1lbnRzL3RlZS5jOgoJKiB0ZXN0c3VpdGUvbmVnb3RpYXRpb24vLmdpdGlnbm9yZToKCSogdGVzdHN1aXRlL25lZ290aWF0aW9uL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvbmVnb3RpYXRpb24vcGFkX2xpbmsuYzoKCSogdGVzdHN1aXRlL3BhZC9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3BhZC9jaGFpbm5vcHVsbC5jOgoJKiB0ZXN0c3VpdGUvcGFkL2dldG5vcHVzaC5jOgoJKiB0ZXN0c3VpdGUvcGFkL2xpbmsuYzoKCSogdGVzdHN1aXRlL3JlZmNvdW50aW5nL3NjaGVkLmM6CgkqIHRlc3RzdWl0ZS9yZWdpc3RyeS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL3JlZ2lzdHJ5L2dzdC1wcmludC1mb3JtYXRzLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0MjE4My0yLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0MjE4My5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDM3NzctMi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDM3NzcuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvMTQ3NzEzLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzLzE0NzgxOS5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4OTQtMi5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy8xNDc4OTQuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL2dyb3VwX2xpbmsuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvcXVldWVfbGluay5jOgoJKiB0ZXN0c3VpdGUvc2NoZWR1bGVycy9yZWxpbmsuYzoKCSogdGVzdHN1aXRlL3NjaGVkdWxlcnMvdW5saW5rLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3VucmVmLmM6CgkqIHRlc3RzdWl0ZS9zY2hlZHVsZXJzL3VzZWxlc3NfaXRlcmF0aW9uLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvYmluLmM6CgkgIHJlbW92ZSBvYnNvbGV0ZSB0ZXN0cyB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2Jzb2xldGUgdGVzdHMKCSAgd2hpdGVzcGFjZSBmaXhlcwoKMjAwNS0xMC0xNSAxNTo1MjowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGNvcnJlY3RseSBtYWtlIGNvbmRpdGlvbmFscwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIGNvcnJlY3RseSBtYWtlIGNvbmRpdGlvbmFscwoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZml4IHR5cG8gY2F1c2luZyBmZHNyYyBub3QgdG8gYnVpbGQKCjIwMDUtMTAtMTUgMTU6MzA6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0YnVmZmVyc3RvcmUuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBnc3QvZ2xpYi1jb21wYXQuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RidWZmZXIuYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmM6CgkqIGdzdC9nc3RjaGlsZHByb3h5LmM6CgkqIGdzdC9nc3RjbG9jay5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdGZvcm1hdC5jOgoJKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZGV4Lmg6CgkqIGdzdC9nc3RpbmRleGZhY3RvcnkuYzoKCSogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJKiBnc3QvZ3N0aW5mby5jOgoJKiBnc3QvZ3N0aW5mby5oOgoJKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkqIGdzdC9nc3RpdGVyYXRvci5jOgoJKiBnc3QvZ3N0bWFjcm9zLmg6CgkqIGdzdC9nc3RtZW1jaHVuay5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOgoJKiBnc3QvZ3N0cGFkdGVtcGxhdGUuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cXVldWUuaDoKCSogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGdzdC9nc3R0YWdsaXN0LmM6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuYzoKCSogZ3N0L2dzdHRyYWNlLmM6CgkqIGdzdC9nc3R0cmFjZS5oOgoJKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoJKiBnc3QvZ3N0dXJpLmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJKiBnc3QvZ3N0dXRpbHMuaDoKCSogZ3N0L2dzdHZhbHVlLmM6CgkqIGdzdC9nc3R2YWx1ZS5oOgoJKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkqIGdzdC9pbmRleGVycy9nc3RtZW1pbmRleC5jOgoJKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSogbGlicy9nc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5Lmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdGZpbGVpbmRleC5jOgoJKiBwbHVnaW5zL2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMTAtMTUgMTU6MDE6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBjaGVjayBmb3Igc29tZSBoZWFkZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgY2hlY2sgZm9yIHNvbWUgaGVhZGVycwoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSAgZG9uJ3QgY29tcGlsZSBmZHNyYyB3aXRob3V0IHN5cy9zb2NrZXQuaAoJICAqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0aW5kZXhlcnMuYzogKHBsdWdpbl9pbml0KToKCSAgZG9uJ3QgY29tcGlsZSBmaWxlaW5kZXggd2l0aG91dCBtbWFwCgoyMDA1LTEwLTE1IDEzOjU4OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogcmVvcmdhbml6ZSBjbGVhbiB1cCBkb2N1bWVudCBtb3JlIHJlbW92ZSBjcnVmdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlb3JnYW5pemUKCSAgY2xlYW4gdXAKCSAgZG9jdW1lbnQgbW9yZQoJICByZW1vdmUgY3J1ZnQKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9oZWxsb3dvcmxkL01ha2VmaWxlLmFtOgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvY2hlY2svTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcGFyc2UvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChldmVudF9sb29wKToKCSAgY29tcGlsZSBmaXhlcywgdGhvdWdoIGl0J3Mgbm90IGJlaW5nIGNvbXBpbGVkIGN1cnJlbnRseQoKMjAwNS0xMC0xNSAxMzoyNDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWJhc2UtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXIucGMuaW46CgkgIGNsZWFuIHVwIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjbGVhbiB1cCBwYyBmaWxlcwoKMjAwNS0xMC0xNSAxMjowMzozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBsaWJzL2dzdC9nZXRiaXRzLy5naXRpZ25vcmU6CgkgIHJlbW92ZSBkaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkaXIKCjIwMDUtMTAtMTUgMTA6MzQ6MTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJICByZW1vdmUgZGlyZWN0b3J5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgZGlyZWN0b3J5CgoyMDA1LTEwLTE1IDAwOjIyOjAyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0dXJpLmM6CgkgIHNpZ25lZG5lc3MvdHlwZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2lnbmVkbmVzcy90eXBlIGZpeGVzCgoyMDA1LTEwLTE1IDAwOjIwOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBzaWduZWRuZXNzL3R5cGUgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNpZ25lZG5lc3MvdHlwZSBmaXhlcwoKMjAwNS0xMC0xNSAwMDoxNTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSAgc2lnbmVkbmVzcyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc2lnbmVkbmVzcyBmaXhlcwoKMjAwNS0xMC0xNSAwMDoxMjoyMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0Y2Fwcy5jOgoJKiBnc3QvZ3N0Y2Fwcy5oOgoJICBzaWduZWRuZXNzIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaWduZWRuZXNzIGZpeGVzCgoyMDA1LTEwLTE0IDE3OjAxOjU2ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdHRhZy5jOiBBZGQgc29tZSBzaW1wbGUgdGVzdHMgZm9yIHRoZSBuZXcgdGFnbGlzdCBkYXRlIEFQSS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHRhZy5jOiAodGVzdF9kYXRlX3RhZ3MpLCAoZ3N0X3RhZ19zdWl0ZSk6CgkgIEFkZCBzb21lIHNpbXBsZSB0ZXN0cyBmb3IgdGhlIG5ldyB0YWdsaXN0IGRhdGUgQVBJLgoKMjAwNS0xMC0xNCAxNDoxMDoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy86IEJlYXV0aWZ5ICdsYXN0LW1lc3NhZ2UnIG91dHB1dDogcHJpbnQgJ25vbmUnIGZvciBidWZmZXIgdGltZXN0YW1wcyBhbmQgZHVyYXRpb25zIGlmIG5vbmUgaXMgc2V0OyBpbXByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfcmVuZGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOiAoZ3N0X2Zha2Vfc3JjX2NyZWF0ZSk6CgkgIEJlYXV0aWZ5ICdsYXN0LW1lc3NhZ2UnIG91dHB1dDogcHJpbnQgJ25vbmUnIGZvciBidWZmZXIgdGltZXN0YW1wcwoJICBhbmQgZHVyYXRpb25zIGlmIG5vbmUgaXMgc2V0OyBpbXByb3ZlIGFsaWdubWVudCB3aXRoIG5leHQgbWVzc2FnZXMuCgoyMDA1LTEwLTE0IDExOjA5OjI5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgQWRkIG5ldyBBUEkgdG8gY2hlY2sgcGx1Z2luIGZlYXR1cmUgdmVyc2lvbiByZXF1aXJlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6IChnc3RfcGx1Z2luX2ZlYXR1cmVfY2hlY2tfdmVyc2lvbik6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogKGdzdF9kZWZhdWx0X3JlZ2lzdHJ5X2NoZWNrX2ZlYXR1cmVfdmVyc2lvbik6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgQWRkIG5ldyBBUEkgdG8gY2hlY2sgcGx1Z2luIGZlYXR1cmUgdmVyc2lvbiByZXF1aXJlbWVudHMuCgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiAodGVzdF92ZXJzaW9uX2NoZWNrcyksIChnc3RfcGx1Z2luX3N1aXRlKToKCSAgU29tZSBiYXNpYyB0ZXN0cyBmb3IgdGhlIGFib3ZlLgoKMjAwNS0xMC0xMyAyMToyNzo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0c3RydWN0dXJlLmM6IGd1YXJkIGFnYWluc3QgTlVMTCBwcmludGYgLSBoYXBwZW5zIHdoZW4gZm9yIGV4YW1wbGUgYSBtZXNzYWdlIHN0cnVjdHVyZSB3aXRoIEdzdENsb2NrIGdldHMgc2VyaWEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTMgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV90b19zdHJpbmcpOgoJICBndWFyZCBhZ2FpbnN0IE5VTEwgcHJpbnRmIC0gaGFwcGVucyB3aGVuIGZvciBleGFtcGxlCgkgIGEgbWVzc2FnZSBzdHJ1Y3R1cmUgd2l0aCBHc3RDbG9jayBnZXRzIHNlcmlhbGl6ZWQKCjIwMDUtMTAtMTMgMTg6MzM6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiBGaXggcHJlc3VtYWJsZSBjb3B5J24ncGFzdG8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZXZlbnQpOgoJICBGaXggcHJlc3VtYWJsZSBjb3B5J24ncGFzdG8uCgoyMDA1LTEwLTEzIDE3OjUxOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJICBhZGQgY29ycmVjdCBoZWFkZXIgZm9yIFdJTjMyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgY29ycmVjdCBoZWFkZXIgZm9yIFdJTjMyCgoyMDA1LTEwLTEzIDE3OjQzOjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9lbGVtZW50cy86IGZpeCBzb21lIHNpZ25lZG5lc3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVfc3JjX2NyZWF0ZV9yZWFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIGZpeCBzb21lIHNpZ25lZG5lc3MKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgSSB3b25kZXIgaWYgdGhpcyBjb3VsZCBhY3R1YWxseSB3cml0ZSArMkdCIGZpbGVzIGJlZm9yZQoKMjAwNS0xMC0xMyAxNzoyNDo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0cmVhbWVyLmRlZjoKCSAgYWRkIGFuIGV4cG9ydAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGFuIGV4cG9ydAoKMjAwNS0xMC0xMyAxNzoyMDo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSogZ3N0L2dzdHBhZC5jOgoJICBpbmNsdWRlIGhlYWRlciBjb3JyZWN0bHk7IHNob3cgbWUgdGhlIG5hbWUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluY2x1ZGUgaGVhZGVyIGNvcnJlY3RseTsgc2hvdyBtZSB0aGUgbmFtZQoKMjAwNS0xMC0xMyAxNjozNDowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBmb28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvbwoKMjAwNS0xMC0xMyAxNjoyNjoxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jIChnc3RfZHBfcGFja2V0X2Zyb21fY2Fwcyk6IEZpeCBUaW1tZWtlIFdheW1hbnMgYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmMgKGdzdF9kcF9wYWNrZXRfZnJvbV9jYXBzKToKCSAgRml4IFRpbW1la2UgV2F5bWFucyBidWcuCgkgIChnc3RfZHBfY2Fwc19mcm9tX3BhY2tldCk6IE1ha2Ugc3VyZSB3ZSBwYXNzIGEgTlVMLXRlcm1pbmF0ZWQKCSAgc3RyaW5nIG9mIHRoZSBwcm9wZXIgbGVuZ3RoIHRvIGdzdF9jYXBzX2Zyb21fc3RyaW5nLiBUaGVyZSdzIGEKCSAgcG90ZW50aWFsIGZvciwgYmVmb3JlIHRoaXMgZml4LCB0aGF0IHRoaXMgY291bGQgY2F1c2Ugc29tZW9uZQoJICBjb25uZWN0aW5nIG92ZXIgdGhlIG5ldHdvcmsgdG8gY2F1c2UgYSBzZWdmYXVsdCBpZiB0aGUgcGF5bG9hZCBpcwoJICBub3QgTlVMLXRlcm1pbmF0ZWQuCgoyMDA1LTEwLTEzIDE1OjI3OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaXhlZCB0eXBvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvcmFuZG9tL1RPRE8tcHJlLTAuOToKCSAgKiBkb2NzL3JhbmRvbS9vbGQvQ2hhbmdlTG9nLmdzdHJlYW1lcjoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgIGZpeGVkIHR5cG9zCgoyMDA1LTEwLTEzIDE1OjIzOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IEdMaWIgMi42IGdfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlIGhhcyBhIGJ1ZyB0aGF0IHRyaWdnZXJzIGFuIGluZmluaXRlIGxvb3AKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dsaWItY29tcGF0LmM6IChnc3RfZmxhZ3NfZ2V0X2ZpcnN0X3ZhbHVlKToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9pbnRfaGVscGVyKSwKCSAgKGdzdF92YWx1ZV9jb21wYXJlX2RvdWJsZSksIChnc3RfdmFsdWVfc2VyaWFsaXplX2ZsYWdzKToKCSAgR0xpYiAyLjYgZ19mbGFnc19nZXRfZmlyc3RfdmFsdWUgaGFzIGEgYnVnIHRoYXQgdHJpZ2dlcnMgYW4KCSAgaW5maW5pdGUgbG9vcAoKMjAwNS0xMC0xMyAxNToyMjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS86IGZpeCB1cCBkZWJ1Z2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTMgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgIDx0aG9tYXMgYXQgYXBlc3RhYXJ0IGRvdCBvcmc+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIGZpeCB1cCBkZWJ1Z2dpbmcKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgcHJpbnQgb3V0IGNsb2NrIG5pY2VseQoKMjAwNS0xMC0xMyAxNToxMzozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIEFkZGVkIGdzdF90YWdfbGlzdF9nZXRfZGF0ZSgpIGFuZCBnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfaW5kZXgoKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKSwgKGdzdF90YWdfbGlzdF9nZXRfZGF0ZSksCgkgIChnc3RfdGFnX2xpc3RfZ2V0X2RhdGVfaW5kZXgpOgoJICBBZGRlZCBnc3RfdGFnX2xpc3RfZ2V0X2RhdGUoKSBhbmQgZ3N0X3RhZ19saXN0X2dldF9kYXRlX2luZGV4KCkuCgkgIEdTVF9UQUdfREFURSBub3cgaGFzIGEgdGFnIHR5cGUgb2YgR1NUX1RZUEVfREFURSAoIzE3MDc3NykuCgoyMDA1LTEwLTEzIDE0OjU1OjE3ICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLio6IEhhbmRsZSBuZXdzZWdtZW50IGFuZCBzdG9yZSBpbmZvcm1hdGlvbnMgaW4gQ29sbGVjdERhdGEuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEzICBKdWxpZW4gTU9VVFRFICA8anVsaWVuQG1vdXR0ZS5uZXQ+CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogKGdzdF9jb2xsZWN0cGFkc19ldmVudCksCgkgIChnc3RfY29sbGVjdHBhZHNfY2hhaW4pOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6IEhhbmRsZSBuZXdzZWdtZW50IGFuZCBzdG9yZQoJICBpbmZvcm1hdGlvbnMKCSAgaW4gQ29sbGVjdERhdGEuCgoyMDA1LTEwLTEzIDA5OjU3OjE1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaXggR09wdGlvbiBjb250ZXh0IGxlYWtzIGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOgoJICBmaXggR09wdGlvbiBjb250ZXh0IGxlYWtzCgkgIGRvYyBmaXhlcwoKMjAwNS0xMC0xMiAyMjozNDo0NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0YnVzLmM6IHVzZSBIQVZFX1VOSVNURF9ICgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgdXNlIEhBVkVfVU5JU1REX0gKCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgIHVwZGF0ZSBjb25maWcKCSAgKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgdXBkYXRlIHZzNiBmaWxlcwoKMjAwNS0xMC0xMiAyMjowMDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9jb21tb24vbGliZ3N0YmFzZS5kZWY6CgkgIGhhZCBhIGZldyB0b28gbWFueSAwRCBieXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaGFkIGEgZmV3IHRvbyBtYW55IDBEIGJ5dGVzCgoyMDA1LTEwLTEyIDIxOjU2OjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlLzogZml4IG1vcmUgZ3VpbnQ2NDwtPmdkb3VibGUgY29udmVyc2lvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3F1ZXJ5KToKCSAgZml4IG1vcmUgZ3VpbnQ2NDwtPmdkb3VibGUgY29udmVyc2lvbnMKCjIwMDUtMTAtMTIgMjA6MjM6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgTWFrZWZpbGUuYW06IGFkZCB3aW4zMi11cGRhdGUgdGFyZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICBhZGQgd2luMzItdXBkYXRlIHRhcmdldAoJICAqIHdpbjMyL2NvbW1vbi9nc3Rjb25maWcuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvY29tbW9uL2dzdGVudW10eXBlcy5oOgoJICAqIHdpbjMyL2NvbW1vbi9nc3R2ZXJzaW9uLmg6CgkgIGFkZCBmaWxlcyB0aGF0IHZpc3VhbCBzdHVkaW8gY2FuJ3QgZ2VuZXJhdGUKCjIwMDUtMTAtMTIgMTk6Mzg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBQcm90ZWN0IGZsYWdzIHdpdGggcHJvcGVyIGxvY2suIHVucmVmIHByb3ZpZGVkIGNhY2hlZCBjbG9jayBpbiBkaXNwb3NlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAocmVzZXRfZGVncmVlKSwgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9jb21taXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgUHJvdGVjdCBmbGFncyB3aXRoIHByb3BlciBsb2NrLgoJICB1bnJlZiBwcm92aWRlZCBjYWNoZWQgY2xvY2sgaW4gZGlzcG9zZS4KCjIwMDUtMTAtMTIgMTk6MTQ6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBsYXlvdXQgY2xlYW51cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbGF5b3V0IGNsZWFudXAKCjIwMDUtMTAtMTIgMTk6MTA6NDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIHJlbW92ZWQgdW51c2VkIGZsYWdzIGZyb20gbWluaW9iamVjdCBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOiAoZ3N0X21pbmlfb2JqZWN0X2ZsYWdzX2dldF90eXBlKToKCSAgcmVtb3ZlZCB1bnVzZWQgZmxhZ3MgZnJvbSBtaW5pb2JqZWN0CgkgIGRvYyBmaXhlcwoKMjAwNS0xMC0xMiAxODowMzoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi92czYvZ3JhbW1hci5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfaW5zcGVjdC5kc3A6CgkqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSogd2luMzIvdnM2L2dzdHJlYW1lci5kc3c6CgkqIHdpbjMyL3ZzNi9saWJnc3RiYXNlLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSogd2luMzIvdnM2L2xpYmdzdHJlYW1lci5kc3A6CgkgIGNvbnZlcnQgdG8gdW5peCBsaW5lIGVuZHM7IHNpbmNlIHRoZSBzb3VyY2UgaXMgYWxzbyB1bml4LXN0eWxlIGxpbmUgZW5kcywgZGV2ZWxvcGVycyBkb24ndCBuZWVkIHRvIGZpZGRsZSBhbmQgc3BlY2lhbC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29udmVydCB0byB1bml4IGxpbmUgZW5kczsgc2luY2UgdGhlIHNvdXJjZSBpcyBhbHNvIHVuaXgtc3R5bGUgbGluZSBlbmRzLCBkZXZlbG9wZXJzIGRvbid0IG5lZWQgdG8gZmlkZGxlIGFuZCBzcGVjaWFsLWNhc2UsIGJ1dCBjYW4ganVzdCBhbGxvdyB0cmFuc2xhdGlvbiBvbiB0aGUgZmx5CgoyMDA1LTEwLTEyIDE2OjAzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IEZsdXNoIGJlZm9yZSBzZWVraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZG9fc2VlayksCgkgIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgRmx1c2ggYmVmb3JlIHNlZWtpbmcuCgoyMDA1LTEwLTEyIDE1OjU4OjI0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0LmMgKGdzdF9pbml0X2NoZWNrKTogSWdub3JlIHVua25vd24gb3B0aW9ucywgYXMgaGFzIGFsd2F5cyBiZWVuIHRoZSBjYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0LmMgKGdzdF9pbml0X2NoZWNrKTogSWdub3JlIHVua25vd24gb3B0aW9ucywgYXMgaGFzCgkgIGFsd2F5cyBiZWVuIHRoZSBjYXNlLgoKMjAwNS0xMC0xMiAxNDoyODozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcmVuYW1lZCBHU1RfRkxBR1MgbWFjcm9zIHRvIEdTVF9PQkpFQ1RfRkxBR1MgbW92ZWQgYml0c2hpZnQgZnJvbSBtYWNybyB0byBlbnVtIGRlZmluaXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaW5pdCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZV9zcmNfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlX3NyY19zdGFydCksIChnc3RfYmFzZV9zcmNfc3RvcCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfc2V0X3Byb3BlcnR5KToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoYmluX2VsZW1lbnRfaXNfc2luayksIChyZXNldF9kZWdyZWUpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KSwgKGdzdF9idXNfc2V0X2ZsdXNoaW5nKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2lzX2xvY2tlZF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfbG9ja2VkX3N0YXRlKSwgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGluZGV4LmM6IChnc3RfaW5kZXhfaW5pdCk6CgkgICogZ3N0L2dzdGluZGV4Lmg6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2luaXQpLCAoZ3N0X29iamVjdF9zaW5rKSwKCSAgKGdzdF9vYmplY3Rfc2V0X3BhcmVudCk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2Jsb2NrZWRfYXN5bmMpLCAoZ3N0X3BhZF9pc19ibG9ja2VkKSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9zZXRfY2Fwcyk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKSwgKGdzdF9waXBlbGluZV9hdXRvX2Nsb2NrKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6IChnc3RfZmlsZV9pbmRleF9sb2FkKSwKCSAgKGdzdF9maWxlX2luZGV4X2NvbW1pdCk6CgkgICogdGVzdHN1aXRlL2J5dGVzdHJlYW0vZmlsZXBhZHNpbmsuYzogKGdzdF9mcF9zaW5rX2luaXQpOgoJICAqIHRlc3RzdWl0ZS9wYWQvbGluay5jOiAoZ3N0X3Rlc3Rfc3JjX2luaXQpLAoJICAoZ3N0X3Rlc3RfZmlsdGVyX2luaXQpLCAoZ3N0X3Rlc3Rfc2lua19pbml0KToKCSAgKiB0ZXN0c3VpdGUvc3RhdGVzL2xvY2tlZC5jOiAobWFpbik6CgkgIHJlbmFtZWQgR1NUX0ZMQUdTIG1hY3JvcyB0byBHU1RfT0JKRUNUX0ZMQUdTCgkgIG1vdmVkIGJpdHNoaWZ0IGZyb20gbWFjcm8gdG8gZW51bSBkZWZpbml0aW9uCgoyMDA1LTEwLTEyIDE0OjEyOjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2ZpbGVfc2lua19yZW5kZXIpOgoJICBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgoyMDA1LTEwLTEyIDEyOjU4OjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU29tZSBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zdGF0ZXMudHh0OgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBTb21lIGRvYyB1cGRhdGVzLgoJICBSZXZlcnQgbm9uLWludGVudGlvbmFsIGNoYW5nZS4KCjIwMDUtMTAtMTIgMTI6MTg6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBVc2UgR3N0Q2xvY2tUaW1lIGluIF9nZXRfc3RhdGUoKSBpbnN0ZWFkIG9mIEdUaW1lVmFsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKHRlc3RfZXZlbnQpOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKHN0b3BfdHlwZWZpbmRpbmcpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2Fib3J0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLCAoZG9fcGlwZWxpbmVfc2VlayksCgkgIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6IChtYWluKToKCSAgVXNlIEdzdENsb2NrVGltZSBpbiBfZ2V0X3N0YXRlKCkgaW5zdGVhZCBvZiBHVGltZVZhbC4KCSAgUmVtb3ZlIG9sZCBjb2RlIGluIGdzdHV0aWxzLmMKCjIwMDUtMTAtMTIgMTE6NDk6MzUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9wYXVzZV90YXNrKTogQWN0dWFsbHkgcmV0dXJuIEZBTFNFIGlmIHRoZXJlIGlzIG5vIHRhc2suIFNob3VsZG4ndCBhZmZlY3QgYW55IGNvZGUsIGFzIG5vdGhpbmcgaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcGF1c2VfdGFzayk6IEFjdHVhbGx5IHJldHVybiBGQUxTRSBpZgoJICB0aGVyZSBpcyBubyB0YXNrLiBTaG91bGRuJ3QgYWZmZWN0IGFueSBjb2RlLCBhcyBub3RoaW5nIGluIG91cgoJICBwbHVnaW5zIGNoZWNrcyB0aGlzIHJldHVybiB2YWx1ZS4KCSAgKGdzdF9wYWRfc3RvcF90YXNrKTogQWxzbyB0YWtlIHRoZSBzdHJlYW0gbG9jayBpZiB0aGUgcGFkIGhhcyBubwoJICB0YXNrLiBEb2NzIHVwZGF0ZWQuCgoyMDA1LTEwLTEyIDEwOjA1OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBDbGVhbnVwIGFjdGl2YXRpb24gY29kZS4gUmVzZXQgb2xkIHN0YXRlIGlmIGFjdGl2YXRpb24gZmFpbGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChwcmVfYWN0aXZhdGUpLCAocG9zdF9hY3RpdmF0ZSksCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKToKCSAgQ2xlYW51cCBhY3RpdmF0aW9uIGNvZGUuIFJlc2V0IG9sZCBzdGF0ZSBpZgoJICBhY3RpdmF0aW9uIGZhaWxlZC4KCjIwMDUtMTAtMTIgMDk6MDI6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBObyBuZWVkIHRvIHByZXJvbCBhZnRlciByZWNlaXZpbmcgRU9TLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgTm8gbmVlZCB0byBwcmVyb2wgYWZ0ZXIgcmVjZWl2aW5nIEVPUy4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZXZlbnQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfZXZlbnRfaGFuZGxlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZXZlbnQpOgoJICBQcmludCBldmVudHMgbW9yZSB2ZXJib3NlbHkuCgoyMDA1LTEwLTEyIDA4OjM4OjA2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svOiBNb3ZlZCBzaW5rczIgdGVzdGNvZGUgaW4gc2lua3MgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzMi5jOgoJICBNb3ZlZCBzaW5rczIgdGVzdGNvZGUgaW4gc2lua3MgY2hlY2suCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLCAoZ3N0X2Jpbl9hZGRfZnVuYyksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRml4IHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiB3aGVuIF9nZXRfc3RhdGUoKSBpdGVyYXRlZCBvdmVyIGFuCgkgIEFTWU5DIGVsZW1lbnQgcmlnaHQgYmVmb3JlIGl0IHBvc3RlZCBhIHN0YXRlIGNvbXBsZXRpb24uCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIERvIHByb3BlciBjYXN0IGhlcmUuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpOgoJICBBIHBsYXliYWNrIHJhdGUgb2YgMC4wIGlzIG5vdCBhbGxvd2VkLgoKMjAwNS0xMC0xMiAwMjoyNjo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTIgMDI6MjU6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTEyIDAyOjIzOjI5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoKMjAwNS0xMC0xMiAwMjoxOTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBhdXRvZ2VuLnNoOgoJICBhdXRvY29uZiBmb3IgZnJlZWJzZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCjIwMDUtMTAtMTIgMDI6MTY6MjYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogYXV0b2dlbi5zaDoKCSAgYXV0b2NvbmYgZm9yIGZyZWVic2QKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGF1dG9jb25mIGZvciBmcmVlYnNkCgoyMDA1LTEwLTExIDE4OjAzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHdpbjMyLzogVmlzdWFsIFN0dWRpbyA2IHByb2plY3QgZmlsZXMsIGFuZCBhIG5ldyBjb21tb24gZGlyZWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMSAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiB3aW4zMi9jb21tb24vY29uZmlnLmg6CgkgICogd2luMzIvY29tbW9uL2RpcmVudC5jOiAoX3RvcGVuZGlyKSwgKF90cmVhZGRpciksIChfdGNsb3NlZGlyKSwKCSAgKF90cmV3aW5kZGlyKSwgKF90dGVsbGRpciksIChfdHNlZWtkaXIpOgoJICAqIHdpbjMyL2NvbW1vbi9kaXJlbnQuaDoKCSAgKiB3aW4zMi9jb21tb24vZ3RjaGFyLmg6CgkgICogd2luMzIvY29tbW9uL2xpYmdzdGJhc2UuZGVmOgoJICAqIHdpbjMyL2NvbW1vbi9saWJnc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL3ZzNi9ncmFtbWFyLmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0X2luc3BlY3QuZHNwOgoJICAqIHdpbjMyL3ZzNi9nc3RfbGF1bmNoLmRzcDoKCSAgKiB3aW4zMi92czYvZ3N0cmVhbWVyLmRzdzoKCSAgKiB3aW4zMi92czYvbGliZ3N0YmFzZS5kc3A6CgkgICogd2luMzIvdnM2L2xpYmdzdGVsZW1lbnRzLmRzcDoKCSAgKiB3aW4zMi92czYvbGliZ3N0cmVhbWVyLmRzcDoKCSAgVmlzdWFsIFN0dWRpbyA2IHByb2plY3QgZmlsZXMsIGFuZCBhIG5ldyBjb21tb24gZGlyZWN0b3J5LgoJICBQaGVhci4KCjIwMDUtMTAtMTEgMTc6MzM6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGZvcmdvdCB0aGlzIG9uZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZm9yZ290IHRoaXMgb25lCgoyMDA1LTEwLTExIDE3OjMyOjAwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogQ29ycmVjdGx5IHBhcnNlIG5ld3NlZ21lbnQgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19xdWVyeSksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgQ29ycmVjdGx5IHBhcnNlIG5ld3NlZ21lbnQgaW5mby4KCjIwMDUtMTAtMTEgMTY6NTQ6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdC5jOiBzcGxpdCBwbHVnaW4gcGF0aHMgY29ycmVjdGx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlICA8dGhvbWFzIGF0IGFwZXN0YWFydCBkb3Qgb3JnPgoJICAqIGdzdC9nc3QuYzogKGluaXRfcG9zdCk6CgkgIHNwbGl0IHBsdWdpbiBwYXRocyBjb3JyZWN0bHkKCjIwMDUtMTAtMTEgMTY6Mjg6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBleHRyYSBmbGFnIHRvIG5ld3NlZ21lbnQgZm9yIGZ1dHVyZSBBUEkgZnJlZXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19ldmVudCk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBBZGRlZCBleHRyYSBmbGFnIHRvIG5ld3NlZ21lbnQgZm9yIGZ1dHVyZSBBUEkgZnJlZXplLgoJICBVcGRhdGVkIGNoZWNrIGFuZCBiYXNlIGVsZW1lbnRzLgoKMjAwNS0xMC0xMSAxNjoyNTozNSArMDAwMCAgSnVsaWVuIE1vdXR0ZSA8anVsaWVuQG1vdXR0ZS5uZXQ+CgoJICBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy4qOiBIYW5kbGUgRU9TIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTEgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOiAoZ3N0X2NvbGxlY3RwYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2FkZF9wYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX3BvcCksCgkgIChnc3RfY29sbGVjdHBhZHNfZXZlbnQpLCAoZ3N0X2NvbGxlY3RwYWRzX2NoYWluKToKCSAgKiBnc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5oOiBIYW5kbGUgRU9TIGNvcnJlY3RseS4KCjIwMDUtMTAtMTEgMTY6MjE6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIG1vcmUgc3RyIG51bGwgcHJvdGVjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBzdHIgbnVsbCBwcm90ZWN0aW9uCgoyMDA1LTEwLTExIDE2OjA1OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3QtaTE4bi1saWIuaDogY2hlY2sgZm9yIEVOQUJMRV9OTFMsIG5vdCBHRVRURVhUX1BBQ0tBR0UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC1pMThuLWxpYi5oOgoJICBjaGVjayBmb3IgRU5BQkxFX05MUywgbm90IEdFVFRFWFRfUEFDS0FHRQoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksCgkgIChfZ3N0X3JlZ2lzdHJ5X3JlbW92ZV9jYWNoZV9wbHVnaW5zKToKCSAgcHJvdGVjdCBwb3NzaWJseSBOVUxMIHN0cmluZ3MKCSAgKiBnc3QvcGFyc2UvdHlwZXMuaDoKCSAgY29uZmlnLmggYWxyZWFkeSBpbmNsdWRlZCBiZWZvcmUKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgIHN5cy93YWl0LmggYWxzbyBkb2VzbrR0IGV4aXN0IG9uIG1pbmd3LCBzbyBjaGFuZ2UgdGhlIGlmZGVmIGNoZWNrCgkgIGNoZWNrIGZvciBFTkFCTEVfTkxTLCBub3QgR0VUVEVYVF9QQUNLQUdFCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIGNoZWNrIGZvciBFTkFCTEVfTkxTLCBub3QgR0VUVEVYVF9QQUNLQUdFCgkgIFRoaXMgY29tbWl0IGJyb3VnaHQgdG8geW91IGZyb20gbXN5cy9taW5ndwoKMjAwNS0xMC0xMSAxNToyNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IGlmIHdlIGRvbid0IGhhdmUgZ2xpYiwgZmFpbCBiZWZvcmUgdGVzdGluZyAyLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBpZiB3ZSBkb24ndCBoYXZlIGdsaWIsIGZhaWwgYmVmb3JlIHRlc3RpbmcgMi44CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgIGZpeCBhIGxlYWssIHNob3VsZCBmaXggcGx1Z2lucy1iYXNlIHRlc3RzdWl0ZQoKMjAwNS0xMC0xMSAxNToyMzoxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHBhZC5jIChwcmVfYWN0aXZhdGUpOiBSZW5hbWVkIGZyb20gcHJlX2FjdGl2YXRlX3N3aXRjaCwgdGFrZSB0aGUgbW9kZSB3ZSdyZSBnb2luZyB0byBhcyBhbiBhcmcuIEdvIGhlYWQgYW5kIHNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTExICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAocHJlX2FjdGl2YXRlKTogUmVuYW1lZCBmcm9tIHByZV9hY3RpdmF0ZV9zd2l0Y2gsCgkgIHRha2UgdGhlIG1vZGUgd2UncmUgZ29pbmcgdG8gYXMgYW4gYXJnLiBHbyBoZWFkIGFuZCBzZXQgdGhlIG1vZGUKCSAgYW5kIGZsdXNoaW5nIGZsYWdzIG5vdywgc28gdGhhdCBpZiB0aGUgYWN0aXZhdGUgZnVuY3Rpb24gc3RhcnRzIGEKCSAgdGhyZWFkIGFsbCB0aGUgZmxhZ3Mgd2lsbCBiZSBpbiB0aGUgcmlnaHQgc3RhdGUuCgkgIChwb3N0X2FjdGl2YXRlKTogUmVuYW1lZCBhbHNvLiBKdXN0IGhhbmRsZSBtYWtpbmcgc3VyZSBzdHJlYW1pbmcKCSAgZmluaXNoZXMgZm9yIHRoZSBkZWFjdGl2YXRpb24gY2FzZSwgYW5kIHNldHRpbmcgdGhlIGRlYWN0aXZhdGVkCgkgIG1vZGUuCgkgIChnc3RfcGFkX3NldF9hY3RpdmUpOiBDb21wbGFpbiBsb3VkbHkgaWYgZGVhY3RpdmF0aW9uIGZhaWxzLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9wdWxsKTogQWRhcHQgdG8gcHJlL3Bvc3RfYWN0aXZhdGUgY2hhbmdlcy4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IEFkYXB0IHRvIHByZS9wb3N0X2FjdGl2YXRlIGNoYW5nZXMsCgkgIHJlbW92ZSB0aGUgdGVycmlibGUgaGFjay4KCjIwMDUtMTAtMTEgMTU6MDU6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLio6IFByZXBhcmUgdG8gbWFrZSBjdXJyZW50IEVPUyBtZXNzYWdlIHF1ZXVlIG1vcmUgZ2VuZXJpYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fcHJvdmlkZV9jbG9ja19mdW5jKSwKCSAgKGlzX2VvcyksIChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZWNhbGNfc3RhdGUpLCAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyksCgkgIChnc3RfYmluX2Rpc3Bvc2UpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIFByZXBhcmUgdG8gbWFrZSBjdXJyZW50IEVPUyBtZXNzYWdlIHF1ZXVlIG1vcmUgZ2VuZXJpYy4KCSAgRml4IHNvbWUgdHlwb3MuCgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X25ld3NlZ21lbnQpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX25ld3NlZ21lbnQpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBSZW5hbWUgYmFzZSB0byBzdHJlYW1fdGltZS4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBGaXggdHlwbyBpbiBkb2NzLgoKMjAwNS0xMC0xMSAxMjo1ODo0NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uKjogV29yayBvbiBwcm9wZXIgY2xvY2sgc2VsZWN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpLCAoZ3N0X2Jpbl9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIFdvcmsgb24gcHJvcGVyIGNsb2NrIHNlbGVjdGlvbi4KCjIwMDUtMTAtMTEgMTI6NDI6MjMgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuKjogQWRkZWQgR0xpc3QqIHZlcnNpb24gb2YgX3JlbW92ZV9wcm9wZXJ0aWVzKCkgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byB3cmFwIGl0IGluIGIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllc19saXN0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgQWRkZWQgR0xpc3QqIHZlcnNpb24gb2YgX3JlbW92ZV9wcm9wZXJ0aWVzKCkgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byB3cmFwCgkgIGl0IGluIGJpbmRpbmdzLgoKMjAwNS0xMC0xMSAxMTowODo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDogU29tZSBtb3JlIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgU29tZSBtb3JlIGRvY3MuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZXRfY2xvY2tfZnVuYyksIChnc3RfYmluX3JlY2FsY19zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZV9mdW5jKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIERvYyB1cGRhdGVzLiBEb24ndCBkaXN0cmlidXRlIHRoZSBzYW1lIGNsb2NrIG92ZXIgYW5kIG92ZXIgYWdhaW4uCgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIERvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9mbG93X2dldF9uYW1lKSwgKGdzdF9mbG93X3RvX3F1YXJrKSwKCSAgKGdzdF9wYWRfZ2V0X3R5cGUpLCAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfcHVzaF9ldmVudCksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgTWFrZSBwcm9iZSBlbWlzc2lvbiB0aHJlYWRzYWZlIGFnYWluLgoJICBSZWdpc3RlciBxdWFya3MgYW5kIG1vdmUgX2dldF9uYW1lKCkgZnJvbSB1dGlscy4KCSAgRG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICBPbmx5IHJlZGlzdHJpYnV0ZSB0aGUgY2xvY2sgb2YgaXQgY2hhbmdlZC4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suaDoKCSAgRG9jIHVwZGF0ZXMuCgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE1vdmVkIHRoZSBfZmxvd19nZXRfbmFtZSgpIHRvIEdzdFBhZC4KCjIwMDUtMTAtMTEgMDk6MTQ6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkgIGlmIHdlIGxvZyBvdXIgaW5pdCwgc2hvdWxkIGFsc28gbG9nIGZpbmFsaXplCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZiB3ZSBsb2cgb3VyIGluaXQsIHNob3VsZCBhbHNvIGxvZyBmaW5hbGl6ZQoKMjAwNS0xMC0xMCAyMzo1NTozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjb21tb246CgkqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGNhcHMuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSAgZml4IG1vcmUgdmFsZ3JpbmQgd2FybmluZ3MgYmVmb3JlIHR1cm5pbmcgdXAgdGhlIGhlYXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBtb3JlIHZhbGdyaW5kIHdhcm5pbmdzIGJlZm9yZSB0dXJuaW5nIHVwIHRoZSBoZWF0CgoyMDA1LTEwLTEwIDIzOjExOjMzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIGRvbid0IGRlY2xhcmUgb24gdGhlIHByb3BlciBkZWZpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGRlY2xhcmUgb24gdGhlIHByb3BlciBkZWZpbmUKCjIwMDUtMTAtMTAgMjI6NTk6MjIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgdW5tYW5nbGUgdGhlIG5lc3RpbmcgYSBsaXR0bGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVubWFuZ2xlIHRoZSBuZXN0aW5nIGEgbGl0dGxlCgoyMDA1LTEwLTEwIDIyOjQ5OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9wYXJzZS9ncmFtbWFyLnk6IHNvbWUgY2xlYW51cCBiZWZvcmUgdGhlIGhhY2tpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgc29tZSBjbGVhbnVwIGJlZm9yZSB0aGUgaGFja2luZwoKMjAwNS0xMC0xMCAxODoxNjozNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IHVzZSBjb252ZXJzaW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfcXVlcnkpOgoJICB1c2UgY29udmVyc2lvbnMKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9ndWludDY0X3RvX2dkb3VibGUpLAoJICAoZ3N0X2dkb3VibGVfdG9fZ3VpbnQ2NCksIChnc3RfdXRpbF91aW50NjRfc2NhbGUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBleHRlcm5hbGl6ZSwgYmFzZXNyYyB1c2VzIGl0CgkgIG9idmlvdXNseSB0aGUgaW1wbGVtZW50YXRpb24gbmVlZHMgdGVzdGluZwoKMjAwNS0xMC0xMCAxNzowNTowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSAgYW5vdGhlciBjYXN0IGJpdGVzIHRoZSBkdXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbm90aGVyIGNhc3QgYml0ZXMgdGhlIGR1c3QKCjIwMDUtMTAtMTAgMTY6NDU6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHV0aWxzLmM6CgkgIGFub3RoZXIgY2FzdCBiaXRlcyB0aGUgZHVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBjYXN0IGJpdGVzIHRoZSBkdXN0CgoyMDA1LTEwLTEwIDE2OjQzOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgdGVzdHMvc2NoZWQvOgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0ZXN0cy9zY2hlZC9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9zY2hlZC9zb3J0LmM6IChtYWtlX3BpcGVsaW5lMSksIChtYWtlX3BpcGVsaW5lMiksCgkgIChtYWtlX3BpcGVsaW5lMyksIChtYWtlX3BpcGVsaW5lNCksIChwcmludF9lbGVtKSwgKG1haW4pOgoKMjAwNS0xMC0xMCAxNjozODo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogYXBwYXJlbnRseSBjb252ZXJ0aW5nIGZyb20gZ3VpbnQ2NCB0byBkb3VibGUgaXMgbm90IGltcGxlbWVudGVkIG9uIE1TVkMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChndWludDY0X3RvX2dkb3VibGUpLCAoZ3N0X3V0aWxfdWludDY0X3NjYWxlKToKCSAgYXBwYXJlbnRseSBjb252ZXJ0aW5nIGZyb20gZ3VpbnQ2NCB0byBkb3VibGUgaXMgbm90IGltcGxlbWVudGVkCgkgIG9uIE1TVkMKCjIwMDUtMTAtMTAgMTY6Mzg6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IENoZWNrIGZpeGVzLCB1c2UgQVBJIGFzIHN0YXRlZCBpbiBkZXNpZ24gZG9jcywgcmVtb3ZlIGhhY2tzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9waXBlbGluZV9zdWl0ZSk6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svc3RhdGVzL3NpbmtzMi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSksCgkgIChtYWluKToKCSAgQ2hlY2sgZml4ZXMsIHVzZSBBUEkgYXMgc3RhdGVkIGluIGRlc2lnbiBkb2NzLCByZW1vdmUgaGFja3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIENhdGNoIHN0b3BwaW5nIG91ciB0YXNrIHdoaWxlIHdlJ3JlIHNodXR0aW5nIGRvd24uCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9pbml0KSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyksIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9iaW5fcmVjYWxjX3N0YXRlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlX2Z1bmMpLAoJICAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRlX2Z1bmMpLCAoZ3N0X2VsZW1lbnRfYWJvcnRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGVfZnVuYyk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgTmV3IHN0YXRlIGNoYW5nZSBhbGdvcml0aG0gKHNlZSAjMzE4MTE2KQoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX2luaXQpLCAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwgKGRvX3BpcGVsaW5lX3NlZWspLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksIChnc3RfcGlwZWxpbmVfcHJvdmlkZV9jbG9ja19mdW5jKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgUmVtb3ZlIGNydWRlIHN0YXRlIGNoYW5nZSBoYWNrcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgUmVtb3ZlIGNydWRlIGhhY2tzLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBGaXhlcyBmb3Igc3RhdGUgY2hhbmdlLiBOZWVkcyBzb21lIG1vcmUgd29yayB0byBmdWxseSB1c2UgdGhlCgkgIG5ldyBzdHVmZi4KCjIwMDUtMTAtMTAgMTY6MjA6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL01ha2VmaWxlLmFtIChub2luc3RfUFJPR1JBTVMpOiBObyBtb3JlIGluaXQuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvTWFrZWZpbGUuYW0gKG5vaW5zdF9QUk9HUkFNUyk6IE5vIG1vcmUgaW5pdC5jLgoKMjAwNS0xMC0xMCAxNjowNDoyOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5jIChHX09QVElPTl9GTEFHX05PX0FSRyk6IEFwcGFyZW50bHkgR0xpYiAyLjggcmVxdWlyZXMgdGhpcyBmbGFnLCBidXQgaXQncyBub3QgZXZlbiBpbiBHTGliIDIuNi4gT2RkLiBIYWNrIGFyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3QuYyAoR19PUFRJT05fRkxBR19OT19BUkcpOiBBcHBhcmVudGx5IEdMaWIgMi44IHJlcXVpcmVzCgkgIHRoaXMgZmxhZywgYnV0IGl0J3Mgbm90IGV2ZW4gaW4gR0xpYiAyLjYuIE9kZC4gSGFjayBhcm91bmQgdGhlCgkgIGlzc3VlLgoKMjAwNS0xMC0xMCAxNTo1ODozMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpdGVyYXRvci5jOiBGaXggbXkgcHJldmlvdXMgY29tbWl0OiBHVHlwZXMgcGFzc2VkIHRvIGdzdF9pdGVyYXRvcl9uZXcoKSBjYW4gYmUgZnVuZGFtZW50YWwgdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX25ldyk6CgkgIEZpeCBteSBwcmV2aW91cyBjb21taXQ6IEdUeXBlcyBwYXNzZWQgdG8gZ3N0X2l0ZXJhdG9yX25ldygpCgkgIGNhbiBiZSBmdW5kYW1lbnRhbCB0eXBlcy4KCjIwMDUtMTAtMTAgMTU6NTU6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBVc2Ugc3JjL3NpbmsgcGFkcyBsaXN0cyBmb3IgdGhlIHJlc3BlY3RpdmUgaXRlcmF0b3JzIGluc3RlYWQgb2YgZmlsdGVyaW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9wYWRfbGlzdCksCgkgIChnc3RfZWxlbWVudF9pdGVyYXRlX3BhZHMpLCAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zcmNfcGFkcyksCgkgIChnc3RfZWxlbWVudF9pdGVyYXRlX3NpbmtfcGFkcyk6CgkgIFVzZSBzcmMvc2luayBwYWRzIGxpc3RzIGZvciB0aGUgcmVzcGVjdGl2ZSBpdGVyYXRvcnMgaW5zdGVhZAoJICBvZiBmaWx0ZXJpbmcuCgoyMDA1LTEwLTEwIDE1OjUzOjU5ICswMDAwICBSb25hbGQgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIE1lcmdlZCBpbiBwb3B0IHJlbW92YWwgKyBHT3B0aW9uIGFkZGl0aW9uIHBhdGNoIGZyb20gUm9uYWxkLCBidWcgIzE2OTc3Mi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgIE1lcmdlZCBpbiBwb3B0IHJlbW92YWwgKyBHT3B0aW9uIGFkZGl0aW9uIHBhdGNoIGZyb20gUm9uYWxkLCBidWcKCSAgIzE2OTc3Mi4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBBZGQgU1RBVEVfKFVOKUxPQ0tfRlVMTCwgbW92ZQoJICBHc3RFbGVtZW50IG1hY3JvcyBhcm91bmQsIHJlbW92ZSBwb3B0LXJlbGF0ZWQgc3ltYm9scywgYWRkIGdvcHRpb24KCSAgc3R1ZmYuCgkgICogY29uZmlndXJlLmFjOiBSZW1vdmUgcG9wdCBjaGVja3MsIHJlcXVpcmUgR0xpYiAyLjYgZm9yIEdPcHRpb24uCgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9saWJzL01ha2VmaWxlLmFtOiBObyBQT1BUX0NGTEFHUy4KCSAgKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWluaXQueG1sOiBEb2MgdXBkYXRlcyB3aXRoIGFuIGV4YW1wbGUuCgkgICogZ3N0L2dzdC5jOiAoZ3N0X2luaXRfZ2V0X29wdGlvbl9ncm91cCksIChnc3RfaW5pdF9jaGVjayksCgkgIChnc3RfaW5pdCksIChwYXJzZV9vbmVfb3B0aW9uKSwgKHBhcnNlX2dvcHRpb25fYXJnKToKCSAgKiBnc3QvZ3N0Lmg6IFJlbW92ZWQgZ3N0X2luaXRfd2l0aF9wb3B0X3RhYmxlIGFuZCBmcmllbmRzLiBUb29rIGEKCSAgYml0IG9mIGhhbmQgbWVyZ2luZyBhbmQgZGVidWdnaW5nIHRvIGdldCB0aGUgR09wdGlvbiBzdHVmZiB3b3JraW5nCgkgIHRoby4KCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9NYWtlZmlsZS5hbToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXJ1bi5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKG1haW4pOiBUaGFua3MgUm9uYWxkIQoKMjAwNS0xMC0xMCAxNTozMDo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpdGVyYXRvci5jOiBBZGQgYXNzZXJ0aW9ucyB0byBtYWtlIHN1cmUgcGFzc2VkIEdUeXBlIGlzIGxpa2VseSB0byByZWFsbHkgYmUgYSBHVHlwZSAoYXMgdGhlIGNvbXBpbGVyIHdvbid0IGNhdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9uZXcpOgoJICBBZGQgYXNzZXJ0aW9ucyB0byBtYWtlIHN1cmUgcGFzc2VkIEdUeXBlIGlzIGxpa2VseSB0byByZWFsbHkKCSAgYmUgYSBHVHlwZSAoYXMgdGhlIGNvbXBpbGVyIHdvbid0IGNhdGNoIGl0IGlmIHRoZSBzaXplIGFuZAoJICBHVHlwZSBhcmd1bWVudHMgZ2V0IG1peGVkIHVwLCBzZWUgIzMxODQ0NykuCgoyMDA1LTEwLTEwIDE1OjI3OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBQYXNzIEdUeXBlIGFuZCBzaXplIGFyZ3VtZW50cyB0byBnc3RfaXRlcmF0b3JfbmV3KCkgaW4gdGhlIHJpZ2h0IG9yZGVyIChtYXliZSB3ZSBzaG91bGQgbWFrZSBfbmV3KCkgdGFrLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogVGltLVBoaWxpcHAgTcO8bGxlciAgPHRpbSBhdCBjZW50cmljdWxhciBkb3QgbmV0PgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpOgoJICBQYXNzIEdUeXBlIGFuZCBzaXplIGFyZ3VtZW50cyB0byBnc3RfaXRlcmF0b3JfbmV3KCkgaW4gdGhlIHJpZ2h0CgkgIG9yZGVyIChtYXliZSB3ZSBzaG91bGQgbWFrZSBfbmV3KCkgdGFrZSB0aGUgR1R5cGUgYXMgZmlyc3QgYXJndW1lbnQKCSAganVzdCBsaWtlIF9uZXdfbGlzdCgpPykgKCMzMTg0NDcpLgoKMjAwNS0xMC0xMCAxNToxNzozNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IEFuZCBmcmVlIHRoZSBHU3RhdGljUmVjTXV0ZXggdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9maW5hbGl6ZSk6CgkgIEFuZCBmcmVlIHRoZSBHU3RhdGljUmVjTXV0ZXggdG9vCgoyMDA1LTEwLTEwIDE0OjMzOjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHdpbjMyL0dTdHJlYW1lci52Y3Byb2o6CgkqIHdpbjMyL3ZzNy9HU3RyZWFtZXIudmNwcm9qOgoJICBkb24ndCBlY2hvIHBhdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IGVjaG8gcGF0aAoKMjAwNS0xMC0xMCAxNDozMzoxMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfaW5pdCwgZ3N0X2VsZW1lbnRfZmluYWxpemUpOiBBbGxvY2F0ZSBhbmQgZnJlZSB0aGUgbXV0ZXggcHJvcGVybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2luaXQsIGdzdF9lbGVtZW50X2ZpbmFsaXplKToKCSAgQWxsb2NhdGUgYW5kIGZyZWUgdGhlIG11dGV4IHByb3Blcmx5LgoJICAqIGdzdC9nc3RlbGVtZW50LmggKEdTVF9TVEFURV9VTkxPQ0tfRlVMTCwgR1NUX1NUQVRFX0xPQ0tfRlVMTCk6CgkgIE5ldyBtYWNyb3MuCgkgIChHc3RFbGVtZW50KTogVGhlIHN0YXRlX2xvY2sgaXMgbm93IHJlY3Vyc2l2ZS4gUmVidWlsZCB5b3VyCgkgIHBsdWdpbnMsIHN1Y2tlcnMuIE9sZCBtYWNyb3MgYWRhcHRlZC4KCjIwMDUtMTAtMTAgMTQ6MjM6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIENoYW5nZUxvZzoKCSAgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjaGFuZ2Vsb2cKCjIwMDUtMTAtMTAgMTQ6MjM6MjYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IERvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBEb2MgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ19zdGF0aWNfcmVjX2NvbmRfdGltZWRfd2FpdCkKCSAgKGdfc3RhdGljX3JlY19jb25kX3dhaXQpOiBQb3J0ZWQgZnJvbSBzdGF0ZSBjaGFuZ2VzIHBhdGNoLCB3aGlsZQoJICB3ZSB3YWl0IG9uIGJ1ZyAjMzE3ODAyIHRvIGJlIHNvbHZlZCBpbiBhIHdlbGwtZGlzdHJpYnV0ZWQgR0xpYi4KCjIwMDUtMTAtMTAgMTQ6MTU6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkqIHdpbjMyL2xpYmdzdGJhc2UuZGVmOgoJKiB3aW4zMi9saWJnc3RiYXNlLnZjcHJvajoKCSogd2luMzIvbGlua19vbGRydW50aW1lLmM6CgkqIHdpbjMyL3ZzNy9saWJnc3RiYXNlLmRlZjoKCSogd2luMzIvdnM3L2xpYmdzdGJhc2UudmNwcm9qOgoJKiB3aW4zMi92czcvbGlua19vbGRydW50aW1lLmM6CgkgIGFkZCBtb3JlIHdpbjMyIGJ1aWxkIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbW9yZSB3aW4zMiBidWlsZCBmaWxlcwoKMjAwNS0xMC0xMCAxNDowMzoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlX2Z1bmMpOiBSZW5hbWVkIGZyb20gZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlLCB2YXJpYWJsZSBuYW1lIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50LmMgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tCgkgIGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSwgdmFyaWFibGUgbmFtZSBjaGFuZ2VzLgoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKTogU3BsaXQgb3V0IG9mIGdzdF9lbGVtZW50X3NldF9zdGF0ZSBpbgoJICBwcmVwYXJhdGlvbiBmb3IgdGhlIHN0YXRlIGNoYW5nZSBtZXJnZS4gRG9lc24ndCBwYXkgYXR0ZW50aW9uIHRvCgkgIHRoZSAndHJhbnNpdGlvbicgYXJndW1lbnQuCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOiBVcGRhdGVzLCBob3BlZnVsbHkgcHVyZWx5IGNvc21ldGljLgoJICAoZ3N0X2VsZW1lbnRfc3luY19zdGF0ZV93aXRoX3BhcmVudCk6IE1ULXNhZmV0eS4gUG9ydGVkIGZyb20gdGhlCgkgIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tIGdldF9zdGF0ZSwgY29zbWV0aWMKCSAgY2hhbmdlcy4KCjIwMDUtMTAtMTAgMTM6NTI6MTggKzAwMDAgIFNlYmFzdGllbiBNb3V0dGUgPHNlYmFzdGllbkBtb3V0dGUubmV0PgoKCSAgdXBkYXRlcyBmb3IgdGhlIHdpbjMyIGJ1aWxkIChwYXRjaCBmcm9tIFNlYmFzdGllbiBNb3V0dGUpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICAqIHdpbjMyL0dTdHJlYW1lci52Y3Byb2o6CgkgICogd2luMzIvY29uZmlnLmg6CgkgICogd2luMzIvZGlyZW50LmM6IChfdHNlZWtkaXIpOgoJICAqIHdpbjMyL2dzdC1pbnNwZWN0LnZjcHJvajoKCSAgKiB3aW4zMi9nc3QtbGF1bmNoLnZjcHJvajoKCSAgKiB3aW4zMi9nc3Rjb25maWcuaDoKCSAgKiB3aW4zMi9nc3RlbGVtZW50cy52Y3Byb2o6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmM6IChnc3Rfb2JqZWN0X2ZsYWdzX2dldF90eXBlKToKCSAgKiB3aW4zMi9nc3RyZWFtZXIuZGVmOgoJICAqIHdpbjMyL21zdmM3MS5zbG46CgkgIHVwZGF0ZXMgZm9yIHRoZSB3aW4zMiBidWlsZCAocGF0Y2ggZnJvbSBTZWJhc3RpZW4gTW91dHRlKQoKMjAwNS0xMC0xMCAxMTo1Mjo1OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX2dldF9zdGF0ZV9mdW5jKTogUmVuYW1lZCBmcm9tIGdzdF9iaW5fZ2V0X3N0YXRlLCBjbGVhbmVkIHVwIChidXQgbm8gbG9naWMgY2hhbmdlcykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9nZXRfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbQoJICBnc3RfYmluX2dldF9zdGF0ZSwgY2xlYW5lZCB1cCAoYnV0IG5vIGxvZ2ljIGNoYW5nZXMpLgoJICAoYmluX2VsZW1lbnRfaXNfc2luayk6IENvbW1lbnQgdXBkYXRlcy4KCSAgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogUmVtb3ZlIG5lZWRsZXNzIGNhc3QuCgkgIChnc3RfYmluX2l0ZXJhdGVfc2lua3MpOiBEb2MgdXBkYXRlLgoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGVfZnVuYyk6IFJlbmFtZWQgZnJvbSBnc3RfYmluX2NoYW5nZV9zdGF0ZSwKCSAgY2xlYW5lZCB1cCAoYnV0IG5vIGxvZ2ljIGNoYW5nZXMpLgoKMjAwNS0xMC0xMCAxMTowNDo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svc3RhdGVzL3NpbmtzLmMgKHRlc3Rfc3JjX3NpbmspOiBDbGVhbnVwcyBmcm9tIHRoZSBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jICh0ZXN0X3NyY19zaW5rKTogQ2xlYW51cHMgZnJvbSB0aGUgc3RhdGUKCSAgY2hhbmdlIHBhdGNoLgoJICAodGVzdF9saXZlc3JjX3NpbmspOiBTeW5jIG9uIHRoZSBzdGF0ZS4KCjIwMDUtMTAtMTAgMTA6NTk6MzMgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHJ1bl9waXBlbGluZSk6IE1lcmdlIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYyAocnVuX3BpcGVsaW5lKTogTWVyZ2UgZnJvbQoJICB0aGUgc3RhdGUgY2hhbmdlIHBhdGNoLgoKMjAwNS0xMC0xMCAxMDo1Nzo0MCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE1lcmdlIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBwYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMTAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE1lcmdlIGZyb20gdGhlIHN0YXRlCgkgIGNoYW5nZSBwYXRjaC4KCjIwMDUtMTAtMTAgMTA6NTA6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogTWVyZ2UgaW4gc29tZSBzdHlsZSBmaXhlcyBhbmQgYWRkaXRpb25hbCBjaGVja3MgZnJvbSBXaW0ncyBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogTWVyZ2UgaW4gc29tZSBzdHlsZSBmaXhlcyBhbmQgYWRkaXRpb25hbAoJICBjaGVja3MgZnJvbSBXaW0ncyBzdGF0ZSBjaGFuZ2UgcGF0Y2guCgoyMDA1LTEwLTEwIDEwOjQzOjE1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogQ2hlY2sgd2hldGhlciB3ZSBoYXZlIHRoZSByZXF1ZXN0ZWQgZGF0YSBhbHJlYWR5IGluIG91ciBsaXN0IG9mIGNhY2hlZCBidWZmZXJzIGJlZm9yZSBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGdzdF90eXBlX2ZpbmRfaGVscGVyKToKCSAgQ2hlY2sgd2hldGhlciB3ZSBoYXZlIHRoZSByZXF1ZXN0ZWQgZGF0YSBhbHJlYWR5IGluIG91ciBsaXN0IG9mCgkgIGNhY2hlZCBidWZmZXJzIGJlZm9yZSBwdWxsaW5nIGEgbmV3IGJ1ZmZlcjsgYWxzbyBtYWtlIHRoZSBidWZmZXIKCSAgbGlzdCBhIEdTTGlzdC4gU3BlZWRzIHVwIHR5cGVmaW5kaW5nIGJ5IGNhLiA1LTEwJSBhbHRvZ2V0aGVyLgoKMjAwNS0xMC0xMCAwOTo0ODoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBkb2MgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICBkb2MgdXBkYXRlcwoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2Rlc2VyaWFsaXplX2ludF9oZWxwZXIpOgoJICBkb24ndCB1c2UgbG9uZyBsb25nLCBpdCdzIG5vdCBwb3J0YWJsZS4gIFJlcGxhY2luZyB3aXRoCgkgIGdpbnQ2NCBzZWVtcyB0byB3b3JrOyBsZXQncyBob3BlIG5vIHNrZWxldG9ucyBmYWxsIG91dCBvZiB0aGUgY2xvc2V0LgoKMjAwNS0xMC0xMCAwODo1MTo1OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgYXV0b2dlbi5zaCAoQ09ORklHVVJFX0RFRl9PUFQpOiBObyBtb3JlIC0tcGx1Z2luLWJ1aWRkaXIsIHlheQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0xMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBhdXRvZ2VuLnNoIChDT05GSUdVUkVfREVGX09QVCk6IE5vIG1vcmUgLS1wbHVnaW4tYnVpZGRpciwgeWF5CgoyMDA1LTEwLTA5IDIwOjQ5OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MsIGZpeCBjb21waWxhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2Vfc3RhdGVfY2hhbmdlZCk6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgbW9yZSBkb2NzLCBmaXggY29tcGlsYXRpb24KCjIwMDUtMTAtMDkgMjA6MTk6NDggKzAwMDAgIFBoaWxpcHBlIEthbGFmIDxwaGlsaXBwZS5rYWxhZkBjb2xsYWJvcmEuY28udWs+CgoJICBnc3QvZ3N0bWVzc2FnZS5jOiBGaXhlZCBhIGZldyBmb3Jnb3R0ZW4gdmFyaWFibGVzIG9uIHByZXZpb3VzIGNvbW1pdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wOSAgUGhpbGlwcGUgS2hhbGFmIDxidXJnZXJAc3BlZWR5Lm9yZz4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICBGaXhlZCBhIGZldyBmb3Jnb3R0ZW4gdmFyaWFibGVzIG9uIHByZXZpb3VzIGNvbW1pdAoKMjAwNS0xMC0wOSAxNzo1OTowOCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IEZpeCBldmlsIHR5cGVmaW5kIGNyYXNoZXI6IGdldHJhbmdlKCkgbWlnaHQgcmV0dXJuIGEgc2hvcnQgYnVmZmVyIGF0IHRoZSBlbmQgb2YgYSBmaWxlLC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfcGVlayk6CgkgIEZpeCBldmlsIHR5cGVmaW5kIGNyYXNoZXI6IGdldHJhbmdlKCkgbWlnaHQgcmV0dXJuIGEgc2hvcnQKCSAgYnVmZmVyIGF0IHRoZSBlbmQgb2YgYSBmaWxlLCBidXQgZ3N0X3R5cGVfZmluZF9wZWVrKCkgbXVzdAoJICBlaXRoZXIgcmV0dXJuIHRoZSBmdWxsIGRhdGEgYXMgcmVxdWVzdGVkIG9yIE5VTEwsIGJ1dAoJICBuZXZlciBhIHNob3J0IGJ1ZmZlci4KCjIwMDUtMTAtMDkgMTc6NTM6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogZG9uJ3QgdXNlIG5ldywgaXQncyBhIEMrKyBrZXl3b3JkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBkb24ndCB1c2UgbmV3LCBpdCdzIGEgQysrIGtleXdvcmQKCjIwMDUtMTAtMDkgMTc6MjI6MzMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgb25jZSBpcyBlbm91Z2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG9uY2UgaXMgZW5vdWdoCgoyMDA1LTEwLTA4IDE4OjIxOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU21hbGwgZG9jcyBhbmQgZGVidWcgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoaXNfZW9zKSwgKHVwZGF0ZV9kZWdyZWUpLCAoZ3N0X2Jpbl9xdWVyeSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSk6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgZG9jcyBhbmQgZGVidWcgdXBkYXRlcy4KCjIwMDUtMTAtMDggMTg6MDc6MjAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0LmM6CgkgIG1vcmUgZG9jcwoKMjAwNS0xMC0wOCAxODowMTowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogRml4IHR5cG9zLCBhZGQgY29tbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGlzX2VvcyksICh1cGRhdGVfZGVncmVlKSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICBGaXggdHlwb3MsIGFkZCBjb21tZW50cy4KCSAgQ2xlYXIgRU9TIGxpc3Qgd2hlbiBnb2luZyB0byBQQVVTRUQgZnJvbSBhbnkgZGlyZWN0aW9uIGFuZCBkbyBpdAoJICBpbiBhIHRocmVhZHNhZmUgd2F5LgoJICBHZXQgYmFzZSB0aW1lIGluIGEgdGhyZWFkc2FmZSB3YXkgdG9vLgoJICBGaXggY29uZnVzaW5nIGRlYnVnIGluIHRoZSBjaGFuZ2Vfc3RhdGUgZnVuY3Rpb24uCgkgIFZhcmlvdXMgb3RoZXIgbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKToKCSAgRml4IHZlcnkgdmVyYm9zZSBidXMgcG9zdGluZyBjb2RlLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX3NldF9wcm9wZXJ0eSksIChnc3RfcGlwZWxpbmVfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBBUkdfIC0+IFBST1BfIGNsZWFudXAKCjIwMDUtMTAtMDggMTc6MzA6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IERvIGEgbGVzcyBDUFUgZGVtYW5kaW5nIEVPUyBjaGVjayBiZWNhdXNlIHdlIGNhbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoaXNfZW9zKSwgKGJpbl9idXNfaGFuZGxlcik6CgkgIERvIGEgbGVzcyBDUFUgZGVtYW5kaW5nIEVPUyBjaGVjayBiZWNhdXNlIHdlIGNhbi4KCjIwMDUtMTAtMDggMTc6MTc6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvOiBJdCdzIGFib3V0IHRpbWUgd2UgYnVtcCB0aGUgdmVyc2lvbiBudW1iZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzoKCSAgKGdzdF9kcF9oZWFkZXJfZnJvbV9idWZmZXIpLCAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RwLXByaXZhdGUuaDoKCSAgSXQncyBhYm91dCB0aW1lIHdlIGJ1bXAgdGhlIHZlcnNpb24gbnVtYmVyLgoJICBTaW5jZSBldmVudCB0eXBlcyBkb24ndCBmaXQgaW4gdGhlIGd1aW50OCBhbnltb3JlIGRlc2NyaWJpbmcKCSAgdGhlIHBheWxvYWQgdHlwZSwgbWFrZSBwYXlsb2FkIHR5cGUgMTYgYml0cyB3aWRlLgoKMjAwNS0xMC0wOCAxNjo0OToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogTWFueSBkb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YmluLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGVsZW1lbnQudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbGl2ZS1zb3VyY2UudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgTWFueSBkb2MgdXBkYXRlcy4KCjIwMDUtMTAtMDggMTY6MTM6NTAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuKjogRml4IGV2ZW50IHF1YXJrIHJlZ2lzdHJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIEZpeCBldmVudCBxdWFyayByZWdpc3RyYXRpb24uCgkgIEFkZCBzb21lIHNwYWNlIGJldHdlZW4gZXZlbnRzIHNvIHdlIGNhbiBpbnNlcnQgdGhlbSBpbiB0aGUKCSAgcmlnaHQgZ3JvdXBzLgoKMjAwNS0xMC0wOCAxNDo1NzowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEJldHRlciBsb2cgbWVzc2FnZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9idWZmZXIpOgoJICBCZXR0ZXIgbG9nIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE1vcmUgZG9jcy4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KSwgKGdzdF9xdWV1ZV9pbml0KSwKCSAgKGdzdF9xdWV1ZV9zZXRfcHJvcGVydHkpLCAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgIFJlbW92ZSBvbGQgdW51c2VkIHByb3BlcnRpZXMuCgoyMDA1LTEwLTA4IDE0OjQ4OjE3ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBsb3RzIG9mIG5ldyBkb2NzIGFuZCBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5oOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGxvdHMgb2YgbmV3IGRvY3MgYW5kIGRvYyBmaXhlcwoKMjAwNS0xMC0wOCAxNDo0MTo1NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgZml4IGEgbGVhayBJIGludHJvZHVjZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBhIGxlYWsgSSBpbnRyb2R1Y2VkCgoyMDA1LTEwLTA4IDEzOjU3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IE9ubHkgZXZlciBsb2FkIG9uZSBwbHVnaW4gZm9yIGEgZ2l2ZW4gcGx1Z2luIGJhc2VuYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2ZpbmFsaXplKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IChnc3RfcmVnaXN0cnlfbG9va3VwX2xvY2tlZCksCgkgIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoX2xldmVsKToKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogKGxvYWRfcGx1Z2luKToKCSAgT25seSBldmVyIGxvYWQgb25lIHBsdWdpbiBmb3IgYSBnaXZlbiBwbHVnaW4gYmFzZW5hbWUuCgkgIFRoaXMgZW5zdXJlcyBjb3JyZWN0IG92ZXJyaWRpbmcgb2YgR1NUX1BMVUdJTl9QQVRIIG92ZXIKCSAgR1NUX1BMVUdJTl9TWVNURU1fUEFUSCBhbmQgb2YgaG9tZSBkaXIgcGx1Z2lucyBvdmVyCgkgIHN5c3RlbSBpbnN0YWxsZWQgcGx1Z2lucy4KCjIwMDUtMTAtMDggMTM6Mzk6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBQcmVwYXJlIGZvciBkb2luZyBRT1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2J1ZmZlcik6CgkgIFByZXBhcmUgZm9yIGRvaW5nIFFPUy4KCjIwMDUtMTAtMDggMTM6MTA6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IEFsbG93IG5ldyBjbG9jayBtZXNzYWdlIHRvby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgQWxsb3cgbmV3IGNsb2NrIG1lc3NhZ2UgdG9vLgoKMjAwNS0xMC0wOCAxMjo1NjozNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IEFsc28gY2FycnkgdGhlIGNsb2NrIGluIHF1ZXN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX3Byb3ZpZGUpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX2xvc3QpLCAoZ3N0X21lc3NhZ2VfbmV3X25ld19jbG9jayksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfcHJvdmlkZSksIChnc3RfbWVzc2FnZV9wYXJzZV9jbG9ja19sb3N0KSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX25ld19jbG9jayk6CgkgICogZ3N0L2dzdG1lc3NhZ2UuaDoKCSAgQWxzbyBjYXJyeSB0aGUgY2xvY2sgaW4gcXVlc3Rpb24uCgoyMDA1LTEwLTA4IDEyOjM2OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQ2xlYW4gdXAuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKSwKCSAgKGdzdF9tZXNzYWdlX25ld19lb3MpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2Nsb2NrX3Byb3ZpZGUpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X25ld19jbG9jayksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2VfY2xvY2tfcHJvdmlkZSksIChnc3RfbWVzc2FnZV9wYXJzZV9uZXdfY2xvY2spOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIENsZWFuIHVwLgoJICBBZGRlZCBjbG9jayByZWxhdGVkIG1lc3NhZ2VzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFBvc3QgbWVzc2FnZSB3aGVuIHRoZSBjbG9jayBjaGFuZ2VkLgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBQcmludCBuZXcgY2xvY2suCgoyMDA1LTEwLTA4IDExOjE2OjAzICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgdG9vbHMvZ3N0LWluc3BlY3QuYzogQ2FuJ3QgcGFzcyBOVUxMIHN0cmluZ3MgdG8gZ19wcmludCgpIG9uIHdpbmRvd3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIENhbid0IHBhc3MgTlVMTCBzdHJpbmdzIHRvIGdfcHJpbnQoKSBvbiB3aW5kb3dzLgoKMjAwNS0xMC0wOCAxMToxMjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzLzogYWRkIGEgY2hhcHRlciBvbiBydW5uaW5nIEdTdHJlYW1lci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3J1bm5pbmcueG1sOgoJICAqIGRvY3MvdmVyc2lvbi5lbnRpdGllcy5pbjoKCSAgYWRkIGEgY2hhcHRlciBvbiBydW5uaW5nIEdTdHJlYW1lci4KCSAgZG9jdW1lbnQgR1NUX0RFQlVHIGFuZCBHU1RfUExVR0lOKiBlbnYgdmFycwoKMjAwNS0xMC0wOCAxMToxMDoxNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBNYWtlZmlsZS5hbTogcmVtb3ZlIGluY2x1ZGUgZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIE1ha2VmaWxlLmFtOgoJICByZW1vdmUgaW5jbHVkZSBkaXIKCSAgKiBjb25maWd1cmUuYWM6CgkgIHJlbW92ZSBQTFVHSU5TX0JVSUxERElSIHN0dWZmCgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgcmVvcmRlciBwYXJzaW5nIG9mIEdTVF9QTFVHSU5fUEFUSCBhbmQgR1NUX1BMVUdJTl9TWVNURU1fUEFUSAoJICAqIGlkaW90dGVzdC5tYWs6CgkgIHJlbW92ZSwgaXQgd2FzIGNvbmRlc2NlbmRpbmcgYW5kIG5vdCBuZWVkZWQKCjIwMDUtMTAtMDggMDk6NTg6MzAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBSZXBvc3QgRU9TIG1lc3NhZ2Ugd2hpbGUgZ29pbmcgdG8gUExBWUlORyBpZiBzdGlsbCBFT1MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X2Jhc2Vfc2lua193YWl0KSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBSZXBvc3QgRU9TIG1lc3NhZ2Ugd2hpbGUgZ29pbmcgdG8gUExBWUlORyBpZiBzdGlsbCBFT1MuCgkgIE1ha2Ugc3VyZSB0aGF0IHdoZW4gcmVjZWl2aW5nIGEgRkxVU0hfU1RBUlQgd2UgZG9uJ3QgYXR0ZW1wdAoJICB0byBzeW5jIG9uIHRoZSBjbG9jayBhbnltb3JlLgoKMjAwNS0xMC0wOCAwOTozODoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogQmV0dGVyIG1lc3NhZ2UgcHJpbnRvdXQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBCZXR0ZXIgbWVzc2FnZSBwcmludG91dC4KCjIwMDUtMTAtMDggMDk6MjQ6MjUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWtlIENoaWxkUHJveHkgdGhyZWFkc2FmZSBhbmQgZml4IG1lbSBsZWFrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfaW5kZXgpLAoJICAoZ3N0X2Jpbl9jaGlsZF9wcm94eV9nZXRfY2hpbGRyZW5fY291bnQpOgoJICAqIGdzdC9nc3RjaGlsZHByb3h5LmM6IChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X25hbWUpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X2xvb2t1cCksIChnc3RfY2hpbGRfcHJveHlfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXRfdmFsaXN0KSwgKGdzdF9jaGlsZF9wcm94eV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2NoaWxkX3Byb3h5X3NldF92YWxpc3QpOgoJICAqIGdzdC9wYXJzZS9ncmFtbWFyLnk6CgkgIE1ha2UgQ2hpbGRQcm94eSB0aHJlYWRzYWZlIGFuZCBmaXggbWVtIGxlYWtzLgoKMjAwNS0xMC0wOCAwOTowOTo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0LmM6IGRlYnVnIHRoZSBHU1RfUExVR0lOXyBlbnYgdmFycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0LmM6IChpbml0X3Bvc3QpOgoJICBkZWJ1ZyB0aGUgR1NUX1BMVUdJTl8gZW52IHZhcnMKCjIwMDUtMTAtMDggMDg6NTg6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBleHRyYSBmaWVsZCB0byBTVEFURV9DSEFOR0UgbWVzc2FnZSB3aXRoIHRoZSBwZW5kaW5nIHN0YXRlLCB3aGljaCB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBuZXcgc3RhdGUgc29vbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChHU1RfU1RBUlRfVEVTVCksIChtZXNzYWdlX3JlY2VpdmVkKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBBZGRlZCBleHRyYSBmaWVsZCB0byBTVEFURV9DSEFOR0UgbWVzc2FnZSB3aXRoIHRoZSBwZW5kaW5nCgkgIHN0YXRlLCB3aGljaCB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIHRoZSBuZXcgc3RhdGUgc29vbi4KCjIwMDUtMTAtMDggMDg6MDA6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBTbWFsbCBjbGVhbnVwcyBhbmQgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9wKToKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKToKCSAgU21hbGwgY2xlYW51cHMgYW5kIGRvYyB1cGRhdGVzLgoKMjAwNS0xMC0wOCAwNjo0OTowOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBsb2cgZGlzdHJpYnV0aW5nIGNsb2NrcyBhbmQgYmFzZSB0aW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGluaXRfcHJlKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKToKCSAgbG9nIGRpc3RyaWJ1dGluZyBjbG9ja3MgYW5kIGJhc2UgdGltZQoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wbHVnaW4pLAoJICAoZ3N0X3JlZ2lzdHJ5X3NjYW5fcGF0aF9sZXZlbCksIChnc3RfcmVnaXN0cnlfc2Nhbl9wYXRoKToKCSAgY2xlYW4gdXAgdGhlIGRlYnVnZ2luZyBvdXRwdXQgYSBsaXR0bGUKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKToKCSAgd2FybiBhYm91dCBhIG1lbWxlYWsgKEkndmUgYWN0dWFsbHkgc2VlbiB0aGlzIGJlIHVzZWQsIHRob3VnaAoJICBpdCB3YXMgcHJvYmFibHkgYSBidWcpCgoyMDA1LTEwLTA4IDA2OjQyOjMwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIGFkZCB0d28gbmV3IGZ1bmN0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHR3byBuZXcgZnVuY3Rpb25zCgoyMDA1LTEwLTA3IDE4OjE3OjIzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy4qOiBNYWtlIHRoZSBuZXdzZWdtZW50IGV2ZW50IGN1c3RvbWl6YWJsZSBieSBzdWJjbGFzc2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfaW5pdCksIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZXdzZWdtZW50KSwKCSAgKGdzdF9iYXNlX3NyY19uZXdzZWdtZW50KSwgKGdzdF9iYXNlX3NyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlX3NyY19sb29wKSwgKGdzdF9iYXNlX3NyY19zdGFydCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBNYWtlIHRoZSBuZXdzZWdtZW50IGV2ZW50IGN1c3RvbWl6YWJsZSBieSBzdWJjbGFzc2VzLgoKMjAwNS0xMC0wNyAxODowMjoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RldmVudC4qOiBOZXcgZXZlbnQgZm9yIGZ1dHVyZSBpZGVhLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9uZXdfYnVmZmVyc2l6ZSksCgkgIChnc3RfZXZlbnRfcGFyc2VfYnVmZmVyc2l6ZSk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIE5ldyBldmVudCBmb3IgZnV0dXJlIGlkZWEuCgoyMDA1LTEwLTA3IDE2OjI4OjU2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOiBEb2MgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOiBEb2MgdXBkYXRlLgoKMjAwNS0xMC0wNyAxNjoxMzo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogVXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBVcGRhdGUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKTogTWFkZSBpbnRvIGEKCSAgZnVuY3Rpb24gbGlrZSBob25lc3QgQVBJIGNhbGxzLgoJICAoZ3N0X21lc3NhZ2VfbmV3X2VsZW1lbnQpOiBOZXcgbWVzc2FnZSB0eXBlLgoJICAqIGdzdC9nc3RtZXNzYWdlLmggKGVudW0pOiBBZGQgR1NUX01FU1NBR0VfRUxFTUVOVCB0eXBlLgoKMjAwNS0xMC0wNyAxNToyNTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBmZHNyYyBkb2VzIG5vdCBidWlsZCBjdXJyZW50bHkgb24gd2luMzIgZHVlIHRvIHNvY2tldHBhaXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZkc3JjIGRvZXMgbm90IGJ1aWxkIGN1cnJlbnRseSBvbiB3aW4zMiBkdWUgdG8gc29ja2V0cGFpcgoKMjAwNS0xMC0wNyAxNToyMjozOCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jICh0ZXN0X25vX3ByZXJvbGwpOiBOZXcgY2hlY2ssIGNoZWNrcyB0aGF0IHNldHRpbmcgYSBsaXZlIGZha2VzcmMgdG8gUEFVU0VEIHJldHVybnMgTk9fUFJFUk9MLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTEwLTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2VsZW1lbnRzL2Zha2VzcmMuYyAodGVzdF9ub19wcmVyb2xsKTogTmV3IGNoZWNrLCBjaGVja3MKCSAgdGhhdCBzZXR0aW5nIGEgbGl2ZSBmYWtlc3JjIHRvIFBBVVNFRCByZXR1cm5zIE5PX1BSRVJPTEwgYm90aAoJICB0aW1lcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOiBBbGxvdyBhCgkgIE5PX1BSRVJPTEwgZnJvbSBnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUgdG8gZmFsbCB0aHJvdWdoLgoKMjAwNS0xMC0wNyAxNToxMzoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIGRvbid0IHVzZSBpZiBub3QgZGVjbGFyZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvbid0IHVzZSBpZiBub3QgZGVjbGFyZWQKCjIwMDUtMTAtMDcgMTI6NTI6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQWN0aXZhdGluZyBhIGdob3N0cGFkIHdpdGggbm8gaW50ZXJuYWwgcGFkIGluIHB1c2ggbW9kZSBpcyBvay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2dldF9pbnRlcm5hbCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOgoJICBBY3RpdmF0aW5nIGEgZ2hvc3RwYWQgd2l0aCBubyBpbnRlcm5hbCBwYWQgaW4gcHVzaCBtb2RlCgkgIGlzIG9rLgoKMjAwNS0xMC0wNyAxMjo0NTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0b2JqZWN0Lmg6IHRoZXJlJ3Mgbm8gcG9pbnQgaW4gd3JhcHBpbmcgRkxBR19TRVQvX1VOU0VUIGluIFNUTVQgbWFjcm9zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gd3JhcHBpbmcgRkxBR19TRVQvX1VOU0VUIGluIFNUTVQgbWFjcm9zLgoJICBGaXhlcyBjb21waWxhdGlvbiBvbiBXaW5kb3dzLgoKMjAwNS0xMC0wNyAxMDozMjoyNCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgIFByaW50IG91dCBmZWF0dXJlIGFuZCBwbHVnaW4gY291bnQgYXQgdGhlIGVuZCB3aGVuIHByaW50aW5nIG91dCBhbGwgZmVhdHVyZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBQcmludCBvdXQgZmVhdHVyZSBhbmQgcGx1Z2luIGNvdW50IGF0IHRoZSBlbmQgd2hlbiBwcmludGluZyBvdXQKCSAgYWxsIGZlYXR1cmVzLgoJICBBbHNvIGFkZCBhIGNoYW5nZWxvZyBlbnRyeSB3aGljaCBJJ2Qgd3JpdHRlbiBidXQgbm90IGNvbW1pdHRlZD8KCjIwMDUtMTAtMDcgMDA6MTQ6NDUgKzAwMDAgIEpvaGFuIERhaGxpbiA8am9oYW5AZ25vbWUub3JnPgoKCSAgQWRkIGEgR1R5cGUgdG8gR3N0SXRlcmF0b3IsIHVwZGF0ZSBjYWxsc2l0ZXMgYW5kIHRlc3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2l0ZXJhdGVfZWxlbWVudHMpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3JlY3Vyc2UpLCAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2l0ZXJhdGVfcGFkcyk6CgkgICogZ3N0L2dzdGZvcm1hdC5jOiAoZ3N0X2Zvcm1hdF9pdGVyYXRlX2RlZmluaXRpb25zKToKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzogKGdzdF9pdGVyYXRvcl9pbml0KSwgKGdzdF9pdGVyYXRvcl9uZXcpLAoJICAoZ3N0X2l0ZXJhdG9yX25ld19saXN0KSwgKGdzdF9pdGVyYXRvcl9maWx0ZXIpOgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoZ3N0X3F1ZXJ5X3R5cGVfaXRlcmF0ZV9kZWZpbml0aW9ucyk6CgkgIEFkZCBhIEdUeXBlIHRvIEdzdEl0ZXJhdG9yLCB1cGRhdGUgY2FsbHNpdGVzIGFuZCB0ZXN0cy4KCjIwMDUtMTAtMDYgMjE6MDk6MTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBkb2guICB1c2UgY29ycmVjdCB2YXJpYWJsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9oLiAgdXNlIGNvcnJlY3QgdmFyaWFibGUKCjIwMDUtMTAtMDYgMTc6MDA6NTAgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICB2ZXJzaW9uIGdzdHJlYW1lci10b29scyBwYWNrYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2ZXJzaW9uIGdzdHJlYW1lci10b29scyBwYWNrYWdlCgoyMDA1LTEwLTA2IDE0OjIwOjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RldmVudC5jOgoJICBpbml0aWFsaXplIHF1YXJrcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaW5pdGlhbGl6ZSBxdWFya3MKCjIwMDUtMTAtMDYgMTQ6MDE6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdHBhZC5jOiBnaXZlIGV2ZW50cyBhIGNoYW5jZSB0byBiZSBoYW5kbGVkIGJ5IGV2ZW50IHByb2JlcyB3aGVuIHRoZSBwYWQgaXMgbm90IGxpbmtlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHRfZGlzcGF0Y2gpOgoJICBnaXZlIGV2ZW50cyBhIGNoYW5jZSB0byBiZSBoYW5kbGVkIGJ5IGV2ZW50IHByb2JlcyB3aGVuIHRoZSBwYWQKCSAgaXMgbm90IGxpbmtlZAoKMjAwNS0xMC0wNiAxMzo1NTo0MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0ZXZlbnQuKjogYWRkIHN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIGV2ZW50IHR5cGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X3R5cGVfZ2V0X25hbWUpLAoJICAoZ3N0X2V2ZW50X3R5cGVfdG9fcXVhcmspLCAoZ3N0X2V2ZW50X2ZpbmFsaXplKSwgKGdzdF9ldmVudF9uZXcpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBhZGQgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBmb3IgZXZlbnQgdHlwZXMKCjIwMDUtMTAtMDYgMTM6NDI6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMTAtMDYgMTM6MjQ6MjggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogRG9uJ3QgdXNlIE5VTEwgcG9pbnRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbG9zZV9maWxlKToKCSAgRG9uJ3QgdXNlIE5VTEwgcG9pbnRlcnMuCgoyMDA1LTEwLTA2IDA5OjQ5OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC86IHdpZGVuIHRoZSBkZWJ1ZyBjYXRlZ29yeSBpbiBvdXRwdXQgdG8gZml0IHRoZSBiaWdnZXN0IG9uZSB3ZSBoYXZlIGFkZCBhIGJ1cyBjYXRlZ29yeSBhbmQgdXNlIGl0IHBsYXkgd2l0aCB0aGUgYy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHdpZGVuIHRoZSBkZWJ1ZyBjYXRlZ29yeSBpbiBvdXRwdXQgdG8gZml0IHRoZSBiaWdnZXN0IG9uZSB3ZSBoYXZlCgkgIGFkZCBhIGJ1cyBjYXRlZ29yeSBhbmQgdXNlIGl0CgkgIHBsYXkgd2l0aCB0aGUgY29sb3JzCgkgIGZpeCB1cCBzb21lIGNhdGVnb3JpZXMKCjIwMDUtMTAtMDYgMDc6NDI6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgZmlyc3Qgc3RhYiBhdCByZW9yZ2FuaXppbmcgZG9jcyBmb3IgcGFkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXJzdCBzdGFiIGF0IHJlb3JnYW5pemluZyBkb2NzIGZvciBwYWQKCjIwMDUtMTAtMDYgMDc6MTM6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmM6IGFkZCBwdXNoIGFjdGl2YXRpb24gb2Ygc2luayBnaG9zdCBwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wNiAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfaW50ZXJuYWxfZG9fYWN0aXZhdGVfcHVzaCk6CgkgIGFkZCBwdXNoIGFjdGl2YXRpb24gb2Ygc2luayBnaG9zdCBwYWRzLgoJICBBbmR5ZSwgcGxlYXNlIHZlcmlmeQoKMjAwNS0xMC0wNSAyMjozNToxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgdXBkYXRlcwoKMjAwNS0xMC0wNSAyMTozNDo0MiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogZml4IGEgYnVnIGluIHRoZSBjYXNlIHdoZXJlIG5laXRoZXIgZWxlbWVudCBoYXMgYSBwYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9saW5rX3BhZHMpOgoJICBmaXggYSBidWcgaW4gdGhlIGNhc2Ugd2hlcmUgbmVpdGhlciBlbGVtZW50IGhhcyBhIHBhZAoJICAqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIGFkZCBhIHRlc3QgZm9yIHRoYXQgY2FzZQoKMjAwNS0xMC0wNSAxNzowMTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwYWQuYzoKCSAgdW5yZWYgb3VyIHRlc3QgYnVmZmVycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdW5yZWYgb3VyIHRlc3QgYnVmZmVycwoKMjAwNS0xMC0wNSAxNjoxNjo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IGVtaXQgaGF2ZS1kYXRhIGJlZm9yZSBjaGVja2luZyBmb3IgcGVlcnMuICBUaGlzIGFsbG93cyBmb3IgcHJvYmUgaGFuZGxlcnMgdG8gY29ubmVjdCBlbGVtZW50cy4gIFRoaXMgaGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfcHVzaF9ldmVudCk6CgkgIGVtaXQgaGF2ZS1kYXRhIGJlZm9yZSBjaGVja2luZyBmb3IgcGVlcnMuICBUaGlzIGFsbG93cwoJICBmb3IgcHJvYmUgaGFuZGxlcnMgdG8gY29ubmVjdCBlbGVtZW50cy4gIFRoaXMgaGVscHMgYXV0b3BsdWdnZXJzLgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKEdTVF9TVEFSVF9URVNUKSwgKF9wcm9iZV9oYW5kbGVyKSwKCSAgKGdzdF9wYWRfc3VpdGUpOgoJICBhZGQgc2l4IGNoZWNrcywgbGlua2VkL3VubGlua2VkIHdpdGggbm8vdHJ1ZS9mYWxzZSBwcm9iZQoKMjAwNS0xMC0wNSAxMTo1MDo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGluZGVudCBpZmRlZnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluZGVudCBpZmRlZnMKCjIwMDUtMTAtMDQgMTg6NDY6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZWxlbWVudHMvOiBQcm90ZWN0IGxhc3RfbWVzc2FnZSB3aXRoIGxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2Vfc2lua19ldmVudCksIChnc3RfZmFrZV9zaW5rX3ByZXJvbGwpLAoJICAoZ3N0X2Zha2Vfc2lua19yZW5kZXIpLCAoZ3N0X2Zha2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfZmFrZV9zcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlX3NyY19jcmVhdGUpLAoJICAoZ3N0X2Zha2Vfc3JjX3N0b3ApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X3N0b3ApOgoJICBQcm90ZWN0IGxhc3RfbWVzc2FnZSB3aXRoIGxvY2suCgoyMDA1LTEwLTA0IDE1OjA0OjUwICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2dzdGZvcm1hdC5oOiBBZGRlZCBwcmVjaXNpb24gaW4gdGhlIGNvbW1lbnRzIGZvciBHU1RfRk9STUFUX0RFRkFVTFQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGZvcm1hdC5oOgoJICBBZGRlZCBwcmVjaXNpb24gaW4gdGhlIGNvbW1lbnRzIGZvciBHU1RfRk9STUFUX0RFRkFVTFQKCjIwMDUtMTAtMDQgMTM6MTk6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICB1cGRhdGUgdW5pbnN0YWxsZWQgc2NyaXB0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGUgdW5pbnN0YWxsZWQgc2NyaXB0CgoyMDA1LTEwLTA0IDEyOjAyOjM0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgcmVtb3ZlIHNvbWUgZmlsZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIHRoZXJlIGZyb20gc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc29tZSBmaWxlcyB0aGF0IGFyZSBubyBsb25nZXIgdGhlcmUgZnJvbSBzcGVjIGZpbGUKCjIwMDUtMTAtMDQgMTE6NTE6MzcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IERvbid0IHRyeSB0byBydW4gZXJyb25lb3VzIHBpcGVsaW5lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIERvbid0IHRyeSB0byBydW4gZXJyb25lb3VzIHBpcGVsaW5lcy4KCjIwMDUtMTAtMDQgMTE6MTA6MDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkgIGdzdC9nc3RlcnJvci5jOiBBZGQgYW5vdGhlciBlcnJvciBzdHJpbmcgdXNlZCBpbiBhIGZldyBleGlzdGluZyBwbHVnaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZXJyb3IuYzogKF9nc3Rfc3RyZWFtX2Vycm9yc19pbml0KToKCSAgQWRkIGFub3RoZXIgZXJyb3Igc3RyaW5nIHVzZWQgaW4gYSBmZXcgZXhpc3RpbmcgcGx1Z2lucy4KCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzogKGdzdF9wbHVnaW5fZmVhdHVyZV9sb2FkKToKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfZWxlbWVudF9pbmZvKToKCSAgV2hlbiBhIGZlYXR1cmUgZGlzYXBwZWFycyBmcm9tIGEgcGx1Z2luIChhbmQgdGhlIGZlYXR1cmUgZXhpc3RzIGluCgkgIHRoZSBjYWNoZWQgcmVnaXN0cnkgZmlsZSksIHRoaW5ncyB3ZW50IGhvcnJpYmx5IHdyb25nLiBUaGlzIGlzbid0IGEKCSAgY29tcGxldGUgZml4LCB3ZSBzaG91bGQgYWN0dWFsbHkgYmUgcmVtb3ZpbmcgdGhlICdtaXNzaW5nJyBmZWF0dXJlcwoJICBmcm9tIHRoZSBmZWF0dXJlcyBsaXN0IHdoZW4gd2UgbG9hZCB0aGUgYWN0dWFsIHBsdWdpbi4gVGhhdCdzIG5vdAoJICB5ZXQgaW1wbGVtZW50ZWQuCgoyMDA1LTEwLTA0IDExOjA5OjQxICswMDAwICBKdWxpZW4gTW91dHRlIDxqdWxpZW5AbW91dHRlLm5ldD4KCgkgIGdzdC9nc3RidXMuYzogV2UgZG9uJ3QgbmVlZCB0aGlzIGhlYWRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDQgIEp1bGllbiBNT1VUVEUgIDxqdWxpZW5AbW91dHRlLm5ldD4KCSAgKiBnc3QvZ3N0YnVzLmM6IFdlIGRvbid0IG5lZWQgdGhpcyBoZWFkZXIuCgoyMDA1LTEwLTAzIDE3OjU3OjMyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC45LjMgPT09CgoyMDA1LTEwLTAzIDE3OjQ3OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVBRE1FOgoJKiBjb25maWd1cmUuYWM6CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgcmVsZWFzZSB0aW1lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZWxlYXNlIHRpbWUKCjIwMDUtMTAtMDIgMjM6MjQ6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKTogVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbiB3aGVyZWJ5IGNhbGxpbmcgYSBwYWQncyBhY3RpdmF0ZXB1c2goKSBmdW5jdGlvbiBjYW4gcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IFRoZXJlIGlzIGEgcmFjZSBjb25kaXRpb24KCSAgd2hlcmVieSBjYWxsaW5nIGEgcGFkJ3MgYWN0aXZhdGVwdXNoKCkgZnVuY3Rpb24gY2FuIHN0YXJ0IGEgdGhyZWFkCgkgIHRoYXQgc3RhcnRzIHRvIHB1c2ggb3IgcHVsbCBiZWZvcmUgdGhlIHBhZCBnZXRzIHRoZSBGTFVTSElORyBmbGFnCgkgIHVuc2V0LiBIYWNrIGFyb3VuZCBpdCBieSBob2xkaW5nIHRoZSBzdHJlYW0gbG9jayB1bnRpbCB0aGUgZmxhZyBpcwoJICBzZXQuIE5lZWQgdG8gcmVwbGFjZSB0aGlzIHdpdGggYSBwcm9wZXIgc29sdXRpb24uIFRvZ2V0aGVyIHdpdGgKCSAgdGhlIGdob3N0IHBhZCBmaXhlcywgdGhpcyBmaXhlcyBtcDMgcGxheWluZy90YWdyZWFkaW5nLgoKMjAwNS0xMC0wMiAyMzoyMTowNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0xMC0wMiAyMzoyMDoyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IEFkZCBhIG5vdGUgYWJvdXQgYWN0aXZhdGlvbiBvZiBwcm94eSBwYWRzIG91dHNpZGUgb2YgZ2hvc3QgcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMTAtMDMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IEFkZCBhIG5vdGUgYWJvdXQgYWN0aXZhdGlvbiBvZgoJICBwcm94eSBwYWRzIG91dHNpZGUgb2YgZ2hvc3QgcGFkcy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogSW1wbGVtZW50IHRoZSBnaG9zdCBwYWQgYWN0aXZhdGlvbiBkZXNpZ24uCgoyMDA1LTEwLTAyIDE4OjU3OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfUkVGQ09VTlRfVkFMVUUpOiBKdXN0IHVzZSB0aGUgaW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0xMC0wMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0b2JqZWN0LmggKEdTVF9PQkpFQ1RfUkVGQ09VTlRfVkFMVUUpOiBKdXN0IHVzZSB0aGUgaW50LgoJICBJdCBpcyB2b2xhdGlsZSwgYWZ0ZXIgYWxsLgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0Z2hvc3RwYWQudHh0OiBGbGVzaCBvdXQgYWN0aXZhdGlvbiB3aXRoCgkgIGdob3N0IHBhZHMuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfaW5pdCk6IFVzZQoJICBHU1RfREVCVUdfRlVOQ1BUUi4KCjIwMDUtMTAtMDIgMTg6MzA6MjcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IEZpeCAodW51c2VkKSBBTV9DT05ESVRJT05BTCB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBGaXggKHVudXNlZCkgQU1fQ09ORElUSU9OQUwgdGVzdHMuCgoyMDA1LTEwLTAxIDE3OjExOjA3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IEFkZCBhc3NlcnRpb24gdGhhdCBtYWtlcyBzdXJlIHNyY192YWwgaXMgPj0wLCBqdXN0IGxpa2UgZ3N0X3F1ZXJ5X25ld19jb252ZXJ0KCkgaGFzLiAoIzMxNTg5NSkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiBUaW0tUGhpbGlwcCBNw7xsbGVyICA8dGltIGF0IGNlbnRyaWN1bGFyIGRvdCBuZXQ+CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQpOgoJICBBZGQgYXNzZXJ0aW9uIHRoYXQgbWFrZXMgc3VyZSBzcmNfdmFsIGlzID49MCwganVzdCBsaWtlCgkgIGdzdF9xdWVyeV9uZXdfY29udmVydCgpIGhhcy4gKCMzMTU4OTUpCgoyMDA1LTA5LTMwIDE1OjQzOjAzICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiBMZXQncyBub3QgaXRlcmF0ZSBwYWRzIHdlJ3JlIG5vdCBpbnRlcmVzdGVkIGluLCBpdCBhdm9pZHMgZ2V0dGluZyBza3ktaGlnaCByZWZjb3VudHMgb24gc2lua3BhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9kb19wdXNoKSwgKGdzdF90ZWVfaGFuZGxlX2J1ZmZlcik6CgkgIExldCdzIG5vdCBpdGVyYXRlIHBhZHMgd2UncmUgbm90IGludGVyZXN0ZWQgaW4sIGl0IGF2b2lkcyBnZXR0aW5nCgkgIHNreS1oaWdoIHJlZmNvdW50cyBvbiBzaW5rcGFkLgoKMjAwNS0wOS0zMCAwODoyOTowMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50LmM6IFNtYWxsIHR3ZWFrLCBlbGVtZW50IGluIEFTWU5DIHJlbWFpbnMgQVNZTkMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgU21hbGwgdHdlYWssIGVsZW1lbnQgaW4gQVNZTkMgcmVtYWlucyBBU1lOQy4KCjIwMDUtMDktMzAgMDg6MDA6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBPbmx5IGVycm9yIGlzIGFuIGVycm9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBPbmx5IGVycm9yIGlzIGFuIGVycm9yLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgQmV0dGVyIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX2NoYWluKToKCSAgQWxzbyBjYWxsIHBhZF9ibG9jayBpbiBwYWQgYWxsb2MuCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZmxvd19nZXRfbmFtZSk6CgkgIEJldHRlciBkZWJ1Z2dpbmcuCgoyMDA1LTA5LTI5IDIwOjI2OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBGaXggZG9jdW1lbnRhdGlvbiB0eXBvcy4gQWRkIHNvbWUgbW9yZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZ2V0X3JhbmdlKToKCSAgRml4IGRvY3VtZW50YXRpb24gdHlwb3MuIEFkZCBzb21lIG1vcmUgZGVidWcgaW5mby4KCjIwMDUtMDktMjkgMjA6MTY6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBkaXNhYmxlIHJlZmNvdW50IGNoZWNrcyB1bnRpbCB3ZSB0cmFjayB0aGUgZGFuZ2xpbmcgcmVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIHJlZmNvdW50IGNoZWNrcyB1bnRpbCB3ZSB0cmFjayB0aGUgZGFuZ2xpbmcgcmVmCgoyMDA1LTA5LTI5IDE5OjQ1OjI3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogTWFrZSBzb21lIGVycm9yIG1lc3NhZ2VzIG1vcmUgZW5kLXVzZXIgZnJpZW5kbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fbG9hZF9maWxlKTogTWFrZSBzb21lIGVycm9yIG1lc3NhZ2VzCgkgIG1vcmUgZW5kLXVzZXIgZnJpZW5kbHkuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKG1haW4pOiBDaGVjayBpZiBjb21tYW5kLWxpbmUgYXJndW1lbnQgaXMKCSAgYSBmaWxlIGFuZCBhdHRlbXB0IHRvIGxvYWQgdGhhdCBmaWxlIGFzIGEgcGx1Z2luLgoKMjAwNS0wOS0yOSAxODozNzo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGZpeCB0ZXN0cyBmb3IgdGhlIG5ldyB3YXJuaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSAgZml4IHRlc3RzIGZvciB0aGUgbmV3IHdhcm5pbmcKCSAgKiBjaGVjay9nc3QvZ3N0cGlwZWxpbmUuYzoKCSAgYWRkIGEgdGVzdCBmb3IgcGlwZWxpbmUgYW5kIGJ1cyBpbnRlcmFjdGlvbgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIGVsZW1lbnRzIHNob3VsZCBiZSBOVUxMIGlmIHRoZXkgZ2V0IGRpc3Bvc2VkOyBhZGQgYSB3YXJuaW5nIGlmIG5vdAoKMjAwNS0wOS0yOSAxODozNTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0b2JqZWN0LmM6IGZvciAyLjYgcmVmY291bnRpbmcsIG1ha2UgZGVidWcgbG9nIG1vcmUgY29ycmVjdCBieSBwcmludGluZyB0aGUgYWN0dWFsIHJlZmNvdW50cyBhdCB0aGUgdGltZSBvZiBzd2EuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG9iamVjdC5jOgoJICBmb3IgMi42IHJlZmNvdW50aW5nLCBtYWtlIGRlYnVnIGxvZyBtb3JlIGNvcnJlY3QgYnkgcHJpbnRpbmcKCSAgdGhlIGFjdHVhbCByZWZjb3VudHMgYXQgdGhlIHRpbWUgb2Ygc3dhcCAoV2ltKQoKMjAwNS0wOS0yOSAxODoyNTo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICB1c2UgbWVzc2FnZSB0eXBlIG5hbWVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1c2UgbWVzc2FnZSB0eXBlIG5hbWVzCgoyMDA1LTA5LTI5IDE2OjA2OjE4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIGNoYW5nZWxvZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nCgoyMDA1LTA5LTI5IDE2OjA0OjMxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaCk6IE5ldyBmdW5jdGlvbiwgcmVtb3ZlcyBzaWduYWwgd2F0Y2hlcyBwcmV2aW91c2x5IGFkZGVkIHZpYSBnc3RfYnVzX2FkZF9zaWcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJ1cy5jIChnc3RfYnVzX3JlbW92ZV9zaWduYWxfd2F0Y2gpOiBOZXcgZnVuY3Rpb24sCgkgIHJlbW92ZXMgc2lnbmFsIHdhdGNoZXMgcHJldmlvdXNseSBhZGRlZCB2aWEKCSAgZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoLgoJICAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKTogRG9uJ3QgcmV0dXJuIHRoZSBzb3VyY2UgaWQsIGp1c3Qgc3RvcmUKCSAgaXQgb24gdGhlIGJ1cyBpZiB0aGVyZSB3YXNuJ3QgYW4gaWQgYWxyZWFkeS4KCSAgKiBnc3QvZ3N0YnVzLmggKEdzdEJ1cyk6IEFkZCBhIGNvdXBsZSBuZXcgZmllbGRzLiBBUEkgY2hhbmdlcyBmb3IKCSAgYWRkX3NpZ25hbF93YXRjaCBhbmQgcmVtb3ZlX3NpZ25hbF93YXRjaC4KCjIwMDUtMDktMjkgMTU6Mzk6MjIgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogQmV0dGVyIGlmIHdlIGFjdHVhbGx5IGl0ZXJhdGUgdGhlIGxpc3QgOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCk6CgkgIEJldHRlciBpZiB3ZSBhY3R1YWxseSBpdGVyYXRlIHRoZSBsaXN0IDopCgoyMDA1LTA5LTI5IDEzOjA3OjM3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBDaGFuZ2UgZm9yIG5ldyBidXMgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIENoYW5nZSBmb3IgbmV3IGJ1cyBBUEkuCgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAobWVzc2FnZV9mdW5jX2VvcyksIChtZXNzYWdlX2Z1bmNfYXBwKSwKCSAgKHNlbmRfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0YnVzX3N1aXRlKToKCSAgQ2hhbmdlIGZvciBuZXcgYnVzIHNpZ25hbCBBUEkuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KSwgKGdzdF9idXNfaGF2ZV9wZW5kaW5nKSwKCSAgKGdzdF9idXNfc291cmNlX3ByZXBhcmUpLCAoZ3N0X2J1c19zb3VyY2VfY2hlY2spLAoJICAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpLCAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksCgkgIChnc3RfYnVzX2FkZF93YXRjaCksIChnc3RfYnVzX3BvbGwpLCAoZ3N0X2J1c19hc3luY19zaWduYWxfZnVuYyksCgkgIChnc3RfYnVzX3N5bmNfc2lnbmFsX2hhbmRsZXIpLCAoZ3N0X2J1c19hZGRfc2lnbmFsX3dhdGNoKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIFJlbW92ZSBzdXBwb3J0IGZvciBtdWx0aXBsZSBHU291cmNlcyBvcGVyYXRpbmcgb24gZGlmZmVyZW50CgkgIG1lc3NhZ2UgdHlwZXMgYXMgaXQgaXMgdG9vIGNvbXBsZXggYW5kIHVubmVlZGVkIHdoZW4gdXNpbmcKCSAgc2lnbmFscy4KCSAgQWRkZWQgc3VwcG9ydCBmb3IgcmVjZWl2aW5nIHNpZ25hbHMgZnJvbSB0aGUgYnVzLgoKMjAwNS0wOS0yOSAxMjozNzozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZW5hbWUgZmlsdGVyLWNhcHMgdG8gY2FwcyBwcm9wZXJ0eQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICByZW5hbWUgZmlsdGVyLWNhcHMgdG8gY2FwcyBwcm9wZXJ0eQoKMjAwNS0wOS0yOSAxMjowNTo1MSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3R2YWx1ZS5jOiBNb3JlIHJvYnVzdCBmcmFjdGlvbiBzdHJpbmcgcGFyc2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZnJhY3Rpb24pOgoJICBNb3JlIHJvYnVzdCBmcmFjdGlvbiBzdHJpbmcgcGFyc2luZy4KCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgTWVudGlvbiBnc3RfcGFkX3VzZV9leHBsaWNpdF9jYXBzKCkgPT4gZ3N0X3BhZF91c2VfZml4ZWRfY2FwcygpCgoyMDA1LTA5LTI5IDEwOjU2OjU3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdGNhcHMuYzogVGhvdSBzaGFsdCBub3QgZnJlZSBhIHN0cnVjdHVyZSBhbmQgdGhlbiBjb250aW51ZSB1c2luZyBpdCBpbiB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX2RvX3NpbXBsaWZ5KToKCSAgVGhvdSBzaGFsdCBub3QgZnJlZSBhIHN0cnVjdHVyZSBhbmQgdGhlbiBjb250aW51ZSB1c2luZyBpdAoJICBpbiB0aGUgbmV4dCBsb29wIGl0ZXJhdGlvbi4KCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoY2hlY2tfZm91cmNjX2xpc3QpLCAodGVzdF9zaW1wbGlmeSksCgkgIChnc3RfY2Fwc19zdWl0ZSk6CgkgIEFkZCB0ZXN0IGNhc2UgZm9yIGNhcHMgc2ltcGxpZmljYXRpb24uCgoyMDA1LTA5LTI5IDA5OjQ0OjM1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHJlbW92ZSB0d28gcmVtb3ZlZCBmdW5jdGlvbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0d28gcmVtb3ZlZCBmdW5jdGlvbnMKCjIwMDUtMDktMjkgMDk6NDI6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IE9vcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgT29wcy4KCjIwMDUtMDktMjkgMDk6Mzk6MzYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFkZCBidXMgdG8gYmluLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEFkZCBidXMgdG8gYmluLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX2luaXQpLAoJICAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X2RlZ3JlZSksICh1cGRhdGVfZGVncmVlKSwKCSAgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChnc3RfYmluX2Rpc3Bvc2UpOgoJICBBIGJpbiBkb2VzIG5vdCBoYXZlIGEgYnVzLCBpdCBnZXRzIHRoZSBidXMgZnJvbSB0aGUgcGFyZW50LgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9yZXF1aXJlc19jbG9jayksCgkgIChnc3RfZWxlbWVudF9wcm92aWRlc19jbG9jayksIChnc3RfZWxlbWVudF9pc19pbmRleGFibGUpLAoJICAoZ3N0X2VsZW1lbnRfaXNfbG9ja2VkX3N0YXRlKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfYnVzX2Z1bmMpOgoJICBTbWFsbCBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9jbGFzc19pbml0KSwKCSAgKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpOgoJICBUaGUgcGlwZWxpbmUgcHJvdmlkZXMgYSBidXMuCgoyMDA1LTA5LTI5IDAyOjMyOjM3ICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX3BhcnNlX3N0YXRlX2NoYW5nZWQpOiBVc2UgZ3N0X3N0cnVjdHVyZV9nZXRfZW51bSBpbnN0ZWFkIG9mIGdzdF9zdHJ1Y3R1cmVfZ2V0X2ludAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jIChnc3RfbWVzc2FnZV9wYXJzZV9zdGF0ZV9jaGFuZ2VkKTogVXNlCgkgIGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0gaW5zdGVhZCBvZiBnc3Rfc3RydWN0dXJlX2dldF9pbnQKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmMgKGdzdF9zdHJ1Y3R1cmVfZ2V0X2VudW0pOiBJbXBsLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaCAoZ3N0X3N0cnVjdHVyZV9nZXRfZW51bSk6IEFkZAoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IERpdHRvCgoyMDA1LTA5LTI5IDAxOjU3OjAwICswMDAwICBKb2hhbiBEYWhsaW4gPGpvaGFuQGdub21lLm9yZz4KCgkgIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKTogVXNlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKTogVXNlCgkgIEdTVF9UWVBFX1NUQVRFIGluc3RlYWQgb2YgR19UWVBFX0lOVCwgbWFpbmx5IGZvciBsYW5ndWFnZSBiaW5kaW5ncwoJICB3aGljaCBkb2VzIGludHJvc3BlY3Rpb24uCgkgIFJldmlld2VkIGJ5IENocmlzdGlhbiBTY2hhbGxlcgoKMjAwNS0wOS0yOCAxODoxNDoxMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJICBmaXhlZCB1bWxhdXRzIGluIENoYW5nZUxvZyBhZ2FpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4ZWQgdW1sYXV0cyBpbiBDaGFuZ2VMb2cgYWdhaW4KCjIwMDUtMDktMjggMTc6MzA6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IGRvbid0IGRvIGR1bW15IGdfc3RyZHVwKClzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpbmZvLmM6IChnc3RfZGVidWdfbG9nX2RlZmF1bHQpOgoJICBkb24ndCBkbyBkdW1teSBnX3N0cmR1cCgpcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAob25fb2JqZWN0X2NvbnRyb2xsZWRfcHJvcGVydHlfY2hhbmdlZCksCgkgIChnc3RfY29udHJvbGxlZF9wcm9wZXJ0eV9uZXcpLCAoZ3N0X2NvbnRyb2xsZXJfbmV3X3ZhbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9uZXdfbGlzdCksCgkgIChnc3RfY29udHJvbGxlcl9yZW1vdmVfcHJvcGVydGllc192YWxpc3QpLCAoZ3N0X2NvbnRyb2xsZXJfc2V0KSwKCSAgKGdzdF9jb250cm9sbGVyX2dldCksIChnc3RfY29udHJvbGxlcl9zeW5jX3ZhbHVlcyksCgkgIChnc3RfY29udHJvbGxlcl9nZXRfdmFsdWVfYXJyYXkpLCAoX2dzdF9jb250cm9sbGVyX2NsYXNzX2luaXQpLAoJICAoZ3N0X2NvbnRyb2xsZXJfZ2V0X3R5cGUpOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfZmluZF90aW1lZF92YWx1ZV9ub2RlKToKCSAgY29udmVydCAvLyB0byAvKiovIGNvbW1lbnRzCgoyMDA1LTA5LTI4IDE2OjQzOjIwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy4qOiBBZGRlZCBhc3luYy1tZXNzYWdlIGFuZCBzeW5jLW1lc3NhZ2Ugc2lnbmFscyB0byB0aGUgYnVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1QpLCAoZ3N0X2J1c19jbGFzc19pbml0KSwKCSAgKGdzdF9idXNfcG9zdCksIChwb2xsX2Z1bmMpLCAoZ3N0X2J1c19hc3luY19zaWduYWxfZnVuYyksCgkgIChnc3RfYnVzX3N5bmNfc2lnbmFsX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgQWRkZWQgYXN5bmMtbWVzc2FnZSBhbmQgc3luYy1tZXNzYWdlIHNpZ25hbHMgdG8gdGhlIGJ1cy4KCSAgQWRkZWQgaGVscGVyIEJ1c0Z1bmMgdG8gZW1pdCBzaWduYWxzIGZvciBhbGwgcG9zdGVkIG1lc3NhZ2VzLgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV90eXBlX2dldF9uYW1lKSwKCSAgKGdzdF9tZXNzYWdlX3R5cGVfdG9fcXVhcmspLCAoZ3N0X21lc3NhZ2VfZ2V0X3R5cGUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFJlZ2lzdGVyIHF1YXJrcyBmb3IgbWVzc2FnZSBuYW1lcy4KCjIwMDUtMDktMjggMTY6Mzk6MjkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIGFub3RoZXIgY29uc3RydWN0b3IgZm9yIGxhbmd1YWdlIGJpbmRpbmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KSwKCSAgKGdzdF9jb250cm9sbGVyX25ld19saXN0KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSAgYWRkZWQgYW5vdGhlciBjb25zdHJ1Y3RvciBmb3IgbGFuZ3VhZ2UgYmluZGluZ3MKCjIwMDUtMDktMjggMTU6NDU6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IGFkZCBhbm90aGVyIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BpcGVsaW5lX3N1aXRlKToKCSAgYWRkIGFub3RoZXIgY2hlY2sKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIGFkZCBzb21lIGRvYwoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICBzbGlnaHRseSBtb3JlIHJlYWRhYmxlIGNvbG9yIGZvciByZWZjb3VudCBkZWJ1Z2dpbmcKCjIwMDUtMDktMjggMTM6NDE6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNtYWxsIGRvYyBmaXhlcy4gZ2V0X2Nsb2NrIC0+IHByb3ZpZGVfY2xvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3Byb3ZpZGVfY2xvY2tfZnVuYyksCgkgIChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfZGVncmVlKSwgKHVwZGF0ZV9kZWdyZWUpLAoJICAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIFNtYWxsIGRvYyBmaXhlcy4gZ2V0X2Nsb2NrIC0+IHByb3ZpZGVfY2xvY2suCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfcHJvdmlkZXNfY2xvY2spLCAoZ3N0X2VsZW1lbnRfcHJvdmlkZV9jbG9jayksCgkgIChnc3RfZWxlbWVudF9nZXRfY2xvY2spLCAoZ3N0X2VsZW1lbnRfY29tbWl0X3N0YXRlKSwKCSAgKGdzdF9lbGVtZW50X2xvc3Rfc3RhdGUpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIE1ha2UgZ2V0L3NldF9jbG9jaygpIHN5bWV0cmljLiBBZGQgcHJvdmlkZV9jbG9jayB2bWV0aG9kIHNpbmNlCgkgIHRoYXQgaXMgYWN0dWFsbHkgd2hhdCB0aGlzIGZ1bmN0aW9uIGRvZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfY2xhc3NfaW5pdCksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKSwgKGdzdF9waXBlbGluZV9wcm92aWRlX2Nsb2NrX2Z1bmMpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9jbG9jayk6CgkgIGdldF9jbG9jayAtPiBwcm92aWRlX2Nsb2NrLgoKMjAwNS0wOS0yOCAxMzowNToxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfdW5sb2NrKTogQ29tbWVudCBhIGJpdCBpbiBsaWV1IG9mIHJlYWwgZG9jcy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY191bmxvY2spOiBDb21tZW50IGEgYml0IGluCgkgIGxpZXUgb2YgcmVhbCBkb2NzLi4uCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IENsZWFuZWQgdXAgYSBiaXQuCgoyMDA1LTA5LTI4IDEyOjUyOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzLzogTWFrZSBlbGVtZW50IGRldGFpbHMgc3RhdGljLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgTWFrZSBlbGVtZW50IGRldGFpbHMgc3RhdGljLgoKMjAwNS0wOS0yOCAxMTowMzo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU29tZSBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGFkZF90b19xdWV1ZSksIChjbGVhcl9xdWV1ZSksIChyZXNldF9vdXRkZWdyZWUpLAoJICAodXBkYXRlX291dGRlZ3JlZSksIChmaW5kX2VsZW1lbnQpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX25leHQpLAoJICAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX3Jlc3luYyksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfZnJlZSksCgkgIChnc3RfYmluX2l0ZXJhdGVfc29ydGVkKSwgKGdzdF9iaW5fZWxlbWVudF9zZXRfc3RhdGUpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgU29tZSBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIENsZWFuIHVwIGRpc3Bvc2UgaGFuZGxlcnMuCgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9yZWYpLCAoZ3N0X29iamVjdF91bnJlZik6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9kaXNwb3NlKToKCSAgQ2xlYW4gdXAgZGlzcG9zZSBoYW5kbGVyLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgIFJlbW92ZWQgc3B1cmlvdXMgVU5MT0NLLgoKMjAwNS0wOS0yNyAyMDo0MDozNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgdHdvIG5ldyBmdW5jdGlvbnMgdG8gdGhlIGRvY3MgZG9jdW1lbnRzIGFsbCB1bmRvY3VtZW50ZWQgR3N0WFhYRmxhZ3MgY29tcGxldGVkIHNvbWUgaW5jb21wbGV0ZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0eG1sLmg6CgkgIGFkZGVkIHR3byBuZXcgZnVuY3Rpb25zIHRvIHRoZSBkb2NzCgkgIGRvY3VtZW50cyBhbGwgdW5kb2N1bWVudGVkIEdzdFhYWEZsYWdzCgkgIGNvbXBsZXRlZCBzb21lIGluY29tcGxldGUgZG9jcwoKMjAwNS0wOS0yNyAxODozMzo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiByZW1vdmUgbm93IHVzZWxlc3MgYW5kIGxlYWt5IHJlc3VycmVjdGlvbiBjb2RlIGluIGRpc3Bvc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9kaXNwb3NlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIHJlbW92ZSBub3cgdXNlbGVzcyBhbmQgbGVha3kgcmVzdXJyZWN0aW9uIGNvZGUgaW4gZGlzcG9zZQoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X3NldF9wYXJlbnQpOgoJICBhZGQgc29tZSBkZWJ1Z2dpbmcKCjIwMDUtMDktMjcgMTc6MDA6MTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OiBVcGRhdGUgVE9ETy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgVXBkYXRlIFRPRE8uCgkgICogZ3N0L2dzdGJpbi5jOiAoYWRkX3RvX3F1ZXVlKSwgKGNsZWFyX3F1ZXVlKSwgKHJlc2V0X291dGRlZ3JlZSksCgkgICh1cGRhdGVfb3V0ZGVncmVlKSwgKGZpbmRfZWxlbWVudCksIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfbmV4dCksCgkgIChnc3RfYmluX3NvcnRfaXRlcmF0b3JfcmVzeW5jKSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9mcmVlKSwKCSAgKGdzdF9iaW5faXRlcmF0ZV9zb3J0ZWQpLCAoZ3N0X2Jpbl9lbGVtZW50X3NldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgUmVtb3ZlIGVsZW1lbnQgdmFyaWFibGUsIHdlIGtlZXAgZWxlbWVudCBpbmZvIGluIHRoZSBpdGVyYXRvciBub3cuCgoyMDA1LTA5LTI3IDE2OjMwOjI2ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeCBlcnJvci1jaGVja2luZyByZXR1cm4gdmFsdWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6IEZpeCBlcnJvci1jaGVja2luZyByZXR1cm4KCSAgdmFsdWVzLgoKMjAwNS0wOS0yNyAxNjoxNjozOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogRW5hYmxlIGNoZWNrIHRoYXQgd29ya3Mgbm93LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIEVuYWJsZSBjaGVjayB0aGF0IHdvcmtzIG5vdy4KCSAgKiBnc3QvZ3N0YmluLmM6IChhZGRfdG9fcXVldWUpLCAoY2xlYXJfcXVldWUpLCAocmVzZXRfb3V0ZGVncmVlKSwKCSAgKHVwZGF0ZV9vdXRkZWdyZWUpLCAoZmluZF9lbGVtZW50KSwgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9uZXh0KSwKCSAgKGdzdF9iaW5fc29ydF9pdGVyYXRvcl9yZXN5bmMpLCAoZ3N0X2Jpbl9zb3J0X2l0ZXJhdG9yX2ZyZWUpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX3NvcnRlZCksIChnc3RfYmluX2VsZW1lbnRfc2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0YmluLmg6CgkgIFJlZGlkIHRoZSBzdGF0ZSBjaGFuZ2UgYWxnb3JpdGhtIHVzaW5nIGEgdG9wb2xvZ2ljYWwgc29ydCBhbGdvLgoJICBIYW5kbGVzIGFsbCBjYXNlcyBjb3JyZWN0bHkuCgkgIEV4cG9zZWQgaXRlcmF0b3IgZm9yIHN0YXRlIGNoYW5nZSBvcmRlci4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBUZW1wIHN0b3JhZ2UgZm9yIHN0YXRlIGNoYW5nZXMuIE5lZWQgdG8gZ2V0IHJpZCBvZiB0aGlzIHNvb24uCgoyMDA1LTA5LTI3IDE1OjM3OjQwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTGVhayBmaXhlcywgdGhlIGZvbGQgZnVuY3Rpb25zIG5lZWQgdG8gdW5yZWYgdGhlIHBhc3NlZCBvYmplY3QgYW5kIF9nZXRfcGFyZW50XyooKSByZXR1cm5zIHJlZiB0byBwYXJlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfaW5pdCksIChnc3RfdGVlX2RvX3B1c2gpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoaW50ZXJzZWN0X2NhcHNfZnVuYyksIChnc3RfcGFkX3Byb3h5X2dldGNhcHMpLAoJICAobGlua19mb2xkX2Z1bmMpLCAoZ3N0X3BhZF9wcm94eV9zZXRjYXBzKToKCSAgTGVhayBmaXhlcywgdGhlIGZvbGQgZnVuY3Rpb25zIG5lZWQgdG8gdW5yZWYgdGhlIHBhc3NlZCBvYmplY3QgYW5kCgkgIF9nZXRfcGFyZW50XyooKSByZXR1cm5zIHJlZiB0byBwYXJlbnQuCgoyMDA1LTA5LTI3IDEzOjI1OjE4ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOiBQbHVnIGxlYWsgaW4gdGVzdCBjYXNlIGFuZCBmaXggJ21ha2UgY2hlY2stdmFsZ3JpbmQnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogKHRlc3RfbWFrZV93cml0YWJsZSk6CgkgIFBsdWcgbGVhayBpbiB0ZXN0IGNhc2UgYW5kIGZpeCAnbWFrZSBjaGVjay12YWxncmluZCcKCjIwMDUtMDktMjcgMTM6MDc6MTQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFNldCBSRUFET05MWSBmbGFnIG9uIHN1YmJ1ZmZlcnMsIHNvIHRoYXQgZ3N0X2J1ZmZlcl9tYWtlX3dyaXRhYmxlKCkgd29ya3MgY29ycmVjdGx5IGluIGFsbCBjaXJjdW1zdGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X3N1YmJ1ZmZlcl9pbml0KToKCSAgU2V0IFJFQURPTkxZIGZsYWcgb24gc3ViYnVmZmVycywgc28gdGhhdCBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKQoJICB3b3JrcyBjb3JyZWN0bHkgaW4gYWxsIGNpcmN1bXN0YW5jZXMgKHdlIGNvdWxkIGhhdmUganVzdCBjb3BpZWQKCSAgdGhlIHBhcmVudCBidWZmZXIncyByZWFkb25seSBmbGFnLCBidXQgY29uY2VwdHVhbGx5IGl0IHNlZW1zCgkgIGNsZWFuZXIgdG8gbWFyayBhbGwgc3ViYnVmZmVycyBhcyByZWFkLW9ubHkpLiAoYmFzZWQgb24gcGF0Y2gKCSAgYnkgQWxlc3NhbmRybyBEZWNpbmEsICMzMTQ3MTApLgoJICAqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzogKGNyZWF0ZV9yZWFkX29ubHlfYnVmZmVyKSwKCSAgKHRlc3RfbWFrZV93cml0YWJsZSksICh0ZXN0X3N1YmJ1ZmZlcl9tYWtlX3dyaXRhYmxlKSwKCSAgKGdzdF90ZXN0X3N1aXRlKToKCSAgQWRkIHNvbWUgdGVzdHMgZm9yIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpLgoKMjAwNS0wOS0yNyAwOTo1NzoyMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogdXNlIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9lbGVtZW50X2lzX3NlbWlfc2luayksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIHVzZSBnc3Rfb2JqZWN0X2hhc19hbmNlc3RvcigpLgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKToKCSAgKiBnc3QvZ3N0b2JqZWN0Lmg6CgkgIGdzdF9vYmplY3RfaGFzX2FuY2VzdG9yKCkgY29waWVkIGZyb20gZ3N0YmluLmMgYXMgaXQgaXMgYQoJICB1c2VmdWxsIGZ1bmN0aW9uLgoJICAqIHRlc3RzL2luc3RhbnRpYXRlL2NyZWF0ZS5jOiAoY3JlYXRlX2FsbF9lbGVtZW50cyk6CgkgICogdGVzdHMvbGF0LmM6IChoYW5kb2ZmX3NyYyksIChoYW5kb2ZmX3NpbmspOgoJICAqIHRlc3RzL3NjaGVkL3J1bnhtbC5jOiAobWFpbik6CgkgICogdGVzdHMvc2Vla2luZy9zZWVraW5nMS5jOiAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUyLmM6IChidXNfaGFuZGxlciksICh0aW1lb3V0X2Z1bmMpLAoJICAobWFpbik6CgkgIEZpeCBjb21waWxhdGlvbiBvZiBzb21lIHRlc3RzLgoKMjAwNS0wOS0yNyAwOToyOTowNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RlcnJvci5oOiBSZW1vdmUgY29tbWVudC4gR1NUX1RZUEVfR19FUlJPUiBpcyBoZXJlIHRvIHN0YXksCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICBSZW1vdmUgY29tbWVudC4gR1NUX1RZUEVfR19FUlJPUiBpcyBoZXJlIHRvIHN0YXksCgkgIEdfVFlQRV9FUlJPUiBoYXMgYmVlbiBXT05URklYJ2VkIGJ5IHRoZSBHTGliIGZvbGtzCgkgICgjMzE2OTYxLCAjMzAwNjEwKS4KCjIwMDUtMDktMjYgMTg6MjI6MDcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFkZGVkIGNoZWNrIHRoYXQgc2hvd3MgZXJyb3IgaW4gc3RhdGUgY2hhbmdlIG9yZGVyLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgdGhhdCBzaG93cyBlcnJvciBpbiBzdGF0ZSBjaGFuZ2Ugb3JkZXIuCgoyMDA1LTA5LTI2IDE3OjQ2OjI3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJpbi5jOiBNYWtlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB1c2UgMyBxdWV1ZXMgYWdhaW4sIHdlIHdlcmUgYWRkaW5nIGVsZW1lbnRzIGluIHRoZSB3cm9uZyBvcmRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB1c2UgMyBxdWV1ZXMgYWdhaW4sIHdlIHdlcmUKCSAgYWRkaW5nIGVsZW1lbnRzIGluIHRoZSB3cm9uZyBvcmRlci4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9naG9zdF9wYWRfZG9fdW5saW5rKToKCSAgU29tZSBkZWJ1ZyBpbmZvLAoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSk6CgkgIEFkZGVkIHNvbWUgZGVidWcgaW5mbyBmaXJzdC4KCjIwMDUtMDktMjYgMTc6NDA6MzkgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBkb2NzL2Rlc2lnbi86IFJlcGxhY2UgYWxsIF9wdWxsX3JlZ2lvbigpIHdpdGggX3B1bGxfcmFuZ2UoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNjaGVkdWxpbmcudHh0OgoJICBSZXBsYWNlIGFsbCBfcHVsbF9yZWdpb24oKSB3aXRoIF9wdWxsX3JhbmdlKCkKCjIwMDUtMDktMjYgMTY6MTk6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICB0cnkgdGhlIGZvdXJ0aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdHJ5IHRoZSBmb3VydGgKCjIwMDUtMDktMjYgMTY6MTI6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBmb28KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZvbwoKMjAwNS0wOS0yNiAxNjowNzo1NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmMgKF9nc3RfdmFsdWVfaW5pdGlhbGl6ZSk6IEJldHRlciBmYWtlb3V0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dmFsdWUuYyAoX2dzdF92YWx1ZV9pbml0aWFsaXplKTogQmV0dGVyIGZha2VvdXQuCgoyMDA1LTA5LTI2IDE1OjQ5OjIzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IFVwZGF0ZSBmb3IgY29udHJvbGxlciBhcGkgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IFVwZGF0ZSBmb3IgY29udHJvbGxlciBhcGkgY2hhbmdlLgoKMjAwNS0wOS0yNiAxNTo0MzozMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgUmVtb3ZlIG1lbWNodW5rIGJlbmNobWFyayBzdHVmZiwgdGhpcyBpcyB0YWtlbiBvdmVyIGJ5IEdMaWIgYnVnIDExODQzOS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzL21lbWNodW5rOiBSZW1vdmUgbWVtY2h1bmsgYmVuY2htYXJrIHN0dWZmLCB0aGlzIGlzIHRha2VuCgkgIG92ZXIgYnkgR0xpYiBidWcgMTE4NDM5LgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3Npbmtfd2FpdCk6IEZhY3RvciBvdXQgdGhlIHdhaXQKCSAgcm91dGluZXMgdG8gYSBmdW5jdGlvbi4KCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBJIGFtIGEgZ29vZCBwZXJzb24gdG9kYXkuCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaCAoZ3N0X2NvbnRyb2xsZXJfc3luY192YWx1ZXMpCgkgIChnc3Rfb2JqZWN0X3N5bmNfdmFsdWVzKTogUmVuYW1lZCBmcm9tIHNpbmtfdmFsdWVzLiBVZ2guCgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzogVXBkYXRlIGZvciBfX2dzdF9jb250cm9sbGVyX2tleS4KCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYyAoX19nc3RfY29udHJvbGxlcl9rZXkpOgoJICBSZW5hbWVkIGZyb20gY29udHJvbGxlcl9rZXksIGFzIGl0IGlzIGV4cG9ydGVkLgoJICAqIGdzdC9nc3R2YWx1ZS5jIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOiBGYWtlIG91dCB0aGUgY29tcGlsZXIuCgoyMDA1LTA5LTI2IDE1OjAzOjQzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBhZHRlbXBsYXRlLmg6CgkqIGdzdC9nc3RxdWVyeS5jOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHF1ZXJ5dXRpbHMuYzoKCSogZ3N0L2dzdHF1ZXJ5dXRpbHMuaDoKCSAgcmVtb3ZlIHF1ZXJ5dXRpbHMgaGVhZGVycyBhZnRlciBtb3ZpbmcgdGhlIHR3byB1c2VkIGZ1bmN0aW9ucyB0byBnc3RxdWVyeS4gIGFsc28gZml4ZXMgYnVpbGQgcHJvYmxlbSBmb3IgZ3N0c2lkZGVjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgcXVlcnl1dGlscyBoZWFkZXJzIGFmdGVyIG1vdmluZyB0aGUgdHdvIHVzZWQgZnVuY3Rpb25zCgkgIHRvIGdzdHF1ZXJ5LiAgYWxzbyBmaXhlcyBidWlsZCBwcm9ibGVtIGZvciBnc3RzaWRkZWMKCjIwMDUtMDktMjYgMTM6NDA6MjEgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogdG9vbHMvZ3N0LWxhdW5jaC4xLmluOgoJICBDb3JyZWN0IHN5bnRheCBmb3IgZGVidWcgb3B0aW9uIGluIGdzdC1sYXVuY2ggbWFucGFnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQ29ycmVjdCBzeW50YXggZm9yIGRlYnVnIG9wdGlvbiBpbiBnc3QtbGF1bmNoIG1hbnBhZ2UKCjIwMDUtMDktMjYgMTE6MjE6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfaXNfc2Vla2FibGUpLCAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFNvbWUgbW9yZSBkZWJ1Z2dpbmcgaW5mby4KCjIwMDUtMDktMjUgMTg6MzQ6NDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIG1vcmUgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgYWRkZWQgbW9yZSBkb2NzCgoyMDA1LTA5LTI1IDEyOjExOjM5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIHRoZSBsYXN0IHR3byBkb2NzIGZpbGVzIHJlbW92ZWQgdGhlIHRtcGwgZGlyZWN0b3J5IGZyb20gY3ZzIChubyBtb3JlIGNvbmZsaWN0cyBoZXJlISkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgaW5saW5lZCB0aGUgbGFzdCB0d28gZG9jcyBmaWxlcwoJICByZW1vdmVkIHRoZSB0bXBsIGRpcmVjdG9yeSBmcm9tIGN2cyAobm8gbW9yZSBjb25mbGljdHMgaGVyZSEpCgoyMDA1LTA5LTI1IDExOjE5OjIyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIHR3byBtb3JlIGRvY3MgZmFjdG9yZWQgZ3N0cGFkdGVtcGxhdGUgb3V0IG9mIGdzdHBhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFkdGVtcGxhdGUuc2dtbDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfZGlzcG9zZSksCgkgIChnc3RfcGFkX2ZpbmFsaXplKSwgKGdzdF9wYWRfc2V0X3BhZF90ZW1wbGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5jOiAoZ3N0X3BhZF90ZW1wbGF0ZV9nZXRfdHlwZSksCgkgIChnc3RfcGFkX3RlbXBsYXRlX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF90ZW1wbGF0ZV9pbml0KSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfZGlzcG9zZSksIChuYW1lX2lzX3ZhbGlkKSwKCSAgKGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCksIChnc3RfcGFkX3RlbXBsYXRlX25ldyksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksIChnc3RfcGFkX3RlbXBsYXRlX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfdGVtcGxhdGVfcGFkX2NyZWF0ZWQpOgoJICAqIGdzdC9nc3RwYWR0ZW1wbGF0ZS5oOgoJICBpbmxpbmVkIHR3byBtb3JlIGRvY3MKCSAgZmFjdG9yZWQgZ3N0cGFkdGVtcGxhdGUgb3V0IG9mIGdzdHBhZAoKMjAwNS0wOS0yNCAxNDozNTowNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogRml4IHRlc3QgY2FzZTogd2UgY2FuJ3QgcmVseSBvbiBhIGZpeGVkIHN0YXRlIGNoYW5nZSBvcmRlciB3aGVuIGdvaW5nIGZyb20gUkVBRFkgPT4gUEFVU0VEIGJlY2F1cy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6ICh0ZXN0X2NoaWxkcmVuX3N0YXRlX2NoYW5nZV9vcmRlcl9mbGFnZ2VkX3NpbmspLAoJICAodGVzdF9jaGlsZHJlbl9zdGF0ZV9jaGFuZ2Vfb3JkZXJfc2VtaV9zaW5rKToKCSAgRml4IHRlc3QgY2FzZTogd2UgY2FuJ3QgcmVseSBvbiBhIGZpeGVkIHN0YXRlIGNoYW5nZSBvcmRlciB3aGVuCgkgIGdvaW5nIGZyb20gUkVBRFkgPT4gUEFVU0VEIGJlY2F1c2UgdGhlIHNpbmsgbWlnaHQgY29tbWl0IGl0cwoJICBuZXcgc3RhdGUgZmlyc3Qgd2hlbiB0aGUgZmlyc3QgYnVmZmVyIGNyZWF0ZWQgYnkgdGhlIHNvdXJjZQoJICByZWFjaGVzIHRoZSBzaW5rIGJlZm9yZSB0aGUgc291cmNlIGhhcyBmaW5pc2hlZCBpdHMgY2hhbmdlIHN0YXRlLgoJICAoVGVzdCBjYXNlIHN0aWxsIGZhaWxzIGF0IHRpbWVzLCBzZWUgIzMxNjg1NiwgY29tbWVudCA1IG9ud2FyZHMpCgoyMDA1LTA5LTI0IDE0OjE0OjAzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgVmFyaW91cyBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJ1cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1tZXNzYWdlcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1zZWdtZW50cy50eHQ6CgkgICogZ3N0L2dzdGJpbi5jOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgVmFyaW91cyBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCgoyMDA1LTA5LTI0IDExOjQxOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5oOiBXZWxsLCB0aGF0J3MgZW1iYXJhc3NpbmcuICBMdWNraWx5IHdlIHdlcmVuJ3QgdXNpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIFdlbGwsIHRoYXQncyBlbWJhcmFzc2luZy4gIEx1Y2tpbHkgd2Ugd2VyZW4ndCB1c2luZwoJICBHU1RfQ0xPQ0tfRElGRiBhbnl3aGVyZS4KCjIwMDUtMDktMjMgMTg6MDg6NTkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29tbW9uL2d0ay1kb2MubWFrOiBkb24ndCBmYWlsIG9uIGJ1aWxkaW5nIFhNTCwgRkM0IHNsYXZlIHNob3dzIGEgYnVuY2ggb2YgZG9jIG1pc3NpbmcgYml0cyB0aGF0IEkgZG9uJ3QgZ2V0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbW1vbi9ndGstZG9jLm1hazoKCSAgZG9uJ3QgZmFpbCBvbiBidWlsZGluZyBYTUwsIEZDNCBzbGF2ZSBzaG93cyBhIGJ1bmNoIG9mIGRvYwoJICBtaXNzaW5nIGJpdHMgdGhhdCBJIGRvbid0IGdldAoJICAqIGdzdC9nc3RwYWQuYzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgIHNvbWUgZG9jIHVwZGF0ZXMKCjIwMDUtMDktMjMgMTg6MDI6MTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgYmx1cmIgYWJvdXQgaG93IHRoZSBidXMgZ29lcyBpbnRvIGZsdXNoaW5nIG1vZGUgYW5kIGRyb3BzIGFsbCBtZXNzYWdlcyB3aGVuIGl0cyBiaW4gZ29lcyBmcm9tIFJFQURZIGludG8gTlVMTCBzdGF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIEFkZCBibHVyYiBhYm91dCBob3cgdGhlIGJ1cyBnb2VzIGludG8gZmx1c2hpbmcgbW9kZSBhbmQKCSAgZHJvcHMgYWxsIG1lc3NhZ2VzIHdoZW4gaXRzIGJpbiBnb2VzIGZyb20gUkVBRFkgaW50byBOVUxMCgkgIHN0YXRlLgoKMjAwNS0wOS0yMyAxNzo0NjowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBhZGQgYSBtZXRob2QgdG8gZ2V0IGEgR3N0Q2xvY2tUaW1lIG91dCBvZiBhIHN0cnVjdHVyZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzogKGdzdF9zdHJ1Y3R1cmVfZ2V0X2Nsb2NrX3RpbWUpOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgYWRkIGEgbWV0aG9kIHRvIGdldCBhIEdzdENsb2NrVGltZSBvdXQgb2YgYSBzdHJ1Y3R1cmUKCjIwMDUtMDktMjMgMTc6MTc6NDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFkZGVkIHRlc3QgdG8gY2hlY2sgc3RhdGUgY2hhbmdlIG9yZGVyIGluIGJpbnMgKGNhbiBzdGlsbCBiZSBtYWRlIHRvIGZhaWwgaGVyZSB1bmRlciBoZWF2eSBkaXNrIGwuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAodGVzdF9jaGlsZHJlbl9zdGF0ZV9jaGFuZ2Vfb3JkZXJfZmxhZ2dlZF9zaW5rKSwKCSAgKHRlc3RfY2hpbGRyZW5fc3RhdGVfY2hhbmdlX29yZGVyX3NlbWlfc2luayksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkZWQgdGVzdCB0byBjaGVjayBzdGF0ZSBjaGFuZ2Ugb3JkZXIgaW4gYmlucyAoY2FuIHN0aWxsIGJlIG1hZGUKCSAgdG8gZmFpbCBoZXJlIHVuZGVyIGhlYXZ5IGRpc2sgbG9hZDsgYmFpbHMgb3V0IHdpdGggJ1B1c2ggb24gcGFkCgkgIGZha2VzaW5rOnNpbmswLCBidXQgaXQgd2FzIG5vdCBhY3RpdmF0ZWQgaW4gcHVzaCBtb2RlJykuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKToKCSAgRml4IHN0YXRlIGNoYW5nZSBvcmRlciB3aGVuIHRoZXJlIGlzIG9ubHkgYSBzZW1pIHNpbmsgKCMzMTY4NTYpCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19jbGFzc19pbml0KToKCSAgVXNlIF9jbGFzc19wZWVrX3BhcmVudCgpLCBub3QgX2NsYXNzX3JlZigpOyBmaXggZG9jcyB0byBzYXkKCSAgJ2RlZmF1bHQgbWFpbiBjb250ZXh0JyBpbnN0ZWFkIG9mICdtYWlubG9vcCcgd2hlcmUgdGhhdCBpcwoJICB3aGF0J3MgbWVhbnQuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NvbW1pdF9zdGF0ZSksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOgoJICBGaXggdHlwb3MgaW4gZGVidWcgbWVzc2FnZXMKCjIwMDUtMDktMjMgMTY6MzU6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBnc3QvZ3N0Y2xvY2suaDoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJICBmaXggZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRvY3MKCjIwMDUtMDktMjMgMTU6NDg6MTQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgZG9uJ3QgYnJlYWsgZG9jcyBidWlsZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgYnJlYWsgZG9jcyBidWlsZAoKMjAwNS0wOS0yMyAxNTozNjoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICB2YXJpb3VzIGRvYyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvUkVBRE1FOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfY2xhc3NfaW5pdCksIChnc3RfcGFkX2NoYWluKToKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jOgoJICAqIGdzdC9nc3R1dGlscy5jOgoJICB2YXJpb3VzIGRvYyB1cGRhdGVzCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIGNoYW5nZSBhbiBhc3NlcnQgaW50byBhbiBlcnJvciB1bnRpbCBpdCBnZXRzIGZpeGVkIHByb3Blcmx5CgoyMDA1LTA5LTIzIDE0OjMxOjIxICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIDMgbW9yZSBiaWlpaWcgZG9jIGZpbGVzIGFuZCBhZGRlZCBzb21lIG1pc3NpbmcgZG9jcyBvbiB0aGUgZmx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmZvLmM6CgkgICogZ3N0L2dzdGluZm8uaDoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6IChnc3Rfb2JqZWN0X2NsYXNzX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgaW5saW5lZCAzIG1vcmUgYmlpaWlnIGRvYyBmaWxlcyBhbmQgYWRkZWQgc29tZSBtaXNzaW5nIGRvY3Mgb24gdGhlIGZseQoKMjAwNS0wOS0yMyAxMTo0MTozMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBwdXQgYmFjayBzb3VyY2UgaW4gcmVnaXN0cnkuICBhZGQgY2hlY2tzIGZvciBmaW5kX3BsdWdpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X3BsdWdpbl9zdWl0ZSk6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IChsb2FkX3BsdWdpbiksCgkgIChnc3RfcmVnaXN0cnlfeG1sX3NhdmVfcGx1Z2luKToKCSAgcHV0IGJhY2sgc291cmNlIGluIHJlZ2lzdHJ5LiAgYWRkIGNoZWNrcyBmb3IgZmluZF9wbHVnaW4uCgkgICogdGVzdHN1aXRlL3N0YXRlcy9iaW4uYzogKGFzc2VydF9zdGF0ZSksIChlbXB0eV9iaW4pLAoJICAodGVzdF9hZGRpbmdfb25lX2VsZW1lbnQpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzogKG1haW4pOgoJICBzb21lIGNvbXBpbGUvcnVuIGZpeGVzCgoyMDA1LTA5LTIyIDIwOjAyOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJICBmaXggbGVhayBpbiB0aGUgdGVzdCBpdHNlbGYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBsZWFrIGluIHRoZSB0ZXN0IGl0c2VsZgoKMjAwNS0wOS0yMiAxODowNzoyMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IFByZXBhcmUgZm9yIG1vcmUgYWNjdXJhdGUgcG9zaXRpb24gcmVwb3J0aW5nIGFuZCBxdWVyeSBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zaW5rX3NlbmRfZXZlbnQpLCAoZ3N0X2Jhc2Vfc2lua19wZWVyX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlX3NpbmtfcXVlcnkpOgoJICBQcmVwYXJlIGZvciBtb3JlIGFjY3VyYXRlIHBvc2l0aW9uIHJlcG9ydGluZyBhbmQgcXVlcnkKCSAgaGFuZGxpbmcuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlbmRfZXZlbnQpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgQWRkIHNvbWUgY29tbWVudC4KCjIwMDUtMDktMjIgMTc6NDA6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuKjogTW9yZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVlcnkuYzogKGdzdF9xdWVyeV9uZXdfc2VnbWVudCksIChnc3RfcXVlcnlfc2V0X3NlZ21lbnQpLAoJICAoZ3N0X3F1ZXJ5X3BhcnNlX3NlZ21lbnQpOgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBNb3JlIGRvY3VtZW50YXRpb24uCgkgIEFkZCBzZWdtZW50IHF1ZXJ5IGZvciBmdXR1cmUgdXNlLgoKMjAwNS0wOS0yMiAxNjo1MToyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogU29tZSBtb3JlIGRlYnVnIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpOgoJICBTb21lIG1vcmUgZGVidWcgaW5mby4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2VuZF9ldmVudCk6CgkgIFNpbXBsaWZ5IHNlbmRfZXZlbnQKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBEb24ndCBrbm93IGhvdyBmbGFncyBnb3QgYnJva2VuLgoJICAqIGdzdC9nc3RxdWVyeS5oOgoJICBBZGRlZCBuZXcgcXVlcnkuCgoyMDA1LTA5LTIyIDE1OjM4OjEyICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgY2hlY2svZ3N0L2dzdHZhbHVlLmM6IEFkZCBzaW1wbGlzdGljIHRlc3Qgc3VpdGUgZm9yIEdTVF9UWVBFX0RBVEUgc2VyaWFsaXNhdGlvbiBhbmQgZGVzZXJpYWxpc2F0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKHRlc3RfZGF0ZSksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGQgc2ltcGxpc3RpYyB0ZXN0IHN1aXRlIGZvciBHU1RfVFlQRV9EQVRFIHNlcmlhbGlzYXRpb24gYW5kCgkgIGRlc2VyaWFsaXNhdGlvbi4KCjIwMDUtMDktMjIgMTU6MDg6MDIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgR1NUX1RZUEVfREFURSwgYSBib3hlZCB0eXBlIHRoYXQgd3JhcHMgR0RhdGUsIGFuZCB0aGUgdXN1YWwgYnVuY2ggb2YgdXRpbGl0eSBmdW5jdGlvbnMgYWxvbmcgd2l0aCBhIGhhY2sgdGhhdCBjaGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3NldF92YWxpc3QpLAoJICAoZ3N0X3N0cnVjdHVyZV9nZXRfZGF0ZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX3NldF9kYXRlKSwgKGdzdF92YWx1ZV9nZXRfZGF0ZSksCgkgIChnc3RfZGF0ZV9jb3B5KSwgKGdzdF92YWx1ZV9jb21wYXJlX2RhdGUpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9kYXRlKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9kYXRlKSwKCSAgKGdzdF92YWx1ZV90cmFuc2Zvcm1fZGF0ZV9zdHJpbmcpLAoJICAoZ3N0X3ZhbHVlX3RyYW5zZm9ybV9zdHJpbmdfZGF0ZSksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBBZGQgR1NUX1RZUEVfREFURSwgYSBib3hlZCB0eXBlIHRoYXQgd3JhcHMgR0RhdGUsIGFuZCB0aGUgdXN1YWwKCSAgYnVuY2ggb2YgdXRpbGl0eSBmdW5jdGlvbnMgYWxvbmcgd2l0aCBhIGhhY2sgdGhhdCBjaGVja3MgdGhhdAoJICBkZXZlbG9wZXJzIGRvbid0IGFjY2lkZW50YWxseSB1c2UgR19UWVBFX0RBVEUgd2hlcmUgR1NUX1RZUEVfREFURQoJICBpcyByZXF1aXJlZC4gUGFydCBvZiB0aGUgZ3JhbmQgc2NoZW1lIGluICMxNzA3NzcuCgoyMDA1LTA5LTIyIDEyOjA1OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Y29uZmlnLmguaW46IFBzeWNoIG91dCBndGstZG9jLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW46IFBzeWNoIG91dCBndGstZG9jLgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IEFkZCBHU1RfSEFWRV9HTElCXzJfOC4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbSAoY2hlY2tfUFJPR1JBTVMpOiBBZGQgZ3N0cGx1Z2luIHRvIHRoZSB0ZXN0cy4KCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jIChwcmludF9lbGVtZW50X2xpc3QpOiBQbHVnIHNvbWUKCSAgaW5jb25zZXF1ZW50aWFsIGxlYWtzLgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jIChnc3RfcmVnaXN0cnlfZ2V0X2RlZmF1bHQpOiBEb2MuCgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfY2FsbF9mdW5jdGlvbik6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmMgKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmMgKGdzdF9pbmRleF9mYWN0b3J5X2NyZWF0ZSk6IFVwZGF0ZSBmb3IKCSAgcmVmY291bnQgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5jIChnc3RfcGx1Z2luX2ZlYXR1cmVfbGlzdF9mcmVlKTogRG9jLgoJICAoZ3N0X3BsdWdpbl9mZWF0dXJlX2xvYWQpOiBEb2MsIGRvbid0IGVhdCByZWZzLgoJICAqIGdzdC9nc3RwbHVnaW4uYyAoZ3N0X3BsdWdpbl9sb2FkKTogRG9jLCBkb24ndCBlYXQgcmVmcy4KCSAgKGdzdF9wbHVnaW5fbGlzdF9mcmVlKTogRG9jLgoJICAoZ3N0X3BsdWdpbl9sb2FkX2ZpbGUpOiBEb2MgdXBkYXRlcy4KCjIwMDUtMDktMjIgMDk6MzA6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuYyAoZ3N0X2J1ZmZlcl9nZXRfY2Fwcyk6IExpa2UgYWxsIG91ciBfZ2V0IGFjY2Vzc29ycyByZXR1cm5pbmcgcmVmY291bnRlZCBvYmplY3RzLCByZXR1cm4gYSByZWYuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuYyAoZ3N0X2J1ZmZlcl9nZXRfY2Fwcyk6IExpa2UgYWxsIG91ciBfZ2V0CgkgIGFjY2Vzc29ycyByZXR1cm5pbmcgcmVmY291bnRlZCBvYmplY3RzLCByZXR1cm4gYSByZWYuCgkgICogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jIChHU1RfU1RBUlRfVEVTVCk6IFVzZSByZWZjb3VudC1pZGVtcG90ZW50CgkgIGFjY2Vzc29yIGZvciBjYXBzLiBJREVNUE9URU5DRS4gT2ggeWVzLgoKMjAwNS0wOS0yMSAyMTozOTowNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpbmZvLmM6IEFkZCBtdXRleCB0byBzZXJpYWxpc2UgYWNjZXNzIHRvIHRoZSBoYXNoIHRhYmxlIHdpdGggdGhlIGZ1bmN0aW9uIHBvaW50ZXIgPT4gZnVuY3Rpb24gbmFtZSBzdHJpbmcgbWFwcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmV2aWV3ZWQgYnk6IFRpbS1QaGlsaXBwIE3DvGxsZXIgIDx0aW0gYXQgY2VudHJpY3VsYXIgZG90IG5ldD4KCSAgKiBnc3QvZ3N0aW5mby5jOiAoX2dzdF9kZWJ1Z19uYW1lb2ZfZnVuY3B0ciksCgkgIChfZ3N0X2RlYnVnX3JlZ2lzdGVyX2Z1bmNwdHIpOgoJICBBZGQgbXV0ZXggdG8gc2VyaWFsaXNlIGFjY2VzcyB0byB0aGUgaGFzaCB0YWJsZSB3aXRoCgkgIHRoZSBmdW5jdGlvbiBwb2ludGVyID0+IGZ1bmN0aW9uIG5hbWUgc3RyaW5nIG1hcHBpbmc7CgkgIG1ha2UgdGhhdCBoYXNoIHRhYmxlIHN0YXRpYyBzY29wZSAoIzMxNjgwOSkuCgkgICogZ3N0L3JlZ2lzdHJpZXMvLmN2c2lnbm9yZToKCSAgUmVtb3ZlIGxlZnQtb3ZlciBmaWxlLgoKMjAwNS0wOS0yMSAxNTo1NToxMiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOiBBbmQgc29tZXRoaW5nIGFib3V0IG5ld3NlZ21lbnQgZXZlbnRzIGFuZCBjYXBzLW9uLWJ1ZmZlcnMgdG8gdGhlIHBvcnRpbmcgZ3VpZGUgKGZlZWwgZi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgQW5kIHNvbWV0aGluZyBhYm91dCBuZXdzZWdtZW50IGV2ZW50cyBhbmQgY2Fwcy1vbi1idWZmZXJzIHRvCgkgIHRoZSBwb3J0aW5nIGd1aWRlIChmZWVsIGZyZWUgdG8gaW1wcm92ZSkuCgoyMDA1LTA5LTIxIDEzOjI0OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3R1dGlscy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dXRpbHMuYzoKCSAgVGVzdCB0aGF0IHJlbW92aW5nIHByb2JlcyBmcm9tIHdpdGhpbiB0aGUgcHJvYmUgZnVuY3Rpb25zIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKHRlc3RfYnVmZmVyX3Byb2JlX29uY2UpOiBUZXN0IHRoYXQgcmVtb3ZpbmcgcHJvYmVzIGZyb20gd2l0aGluCgkgIHRoZSBwcm9iZSBmdW5jdGlvbnMgd29ya3MuCgoyMDA1LTA5LTIxIDEzOjExOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYyAodGVzdF9idWZmZXJfcHJvYmVfbl90aW1lcyk6IEFkZCB0ZXN0cyBmb3IgZGF0YSBhbmQgZXZlbnQgcHJvYmVzIG9uIHRoZSBzYW1lIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMjEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHV0aWxzLmMgKHRlc3RfYnVmZmVyX3Byb2JlX25fdGltZXMpOiBBZGQgdGVzdHMgZm9yCgkgIGRhdGEgYW5kIGV2ZW50IHByb2JlcyBvbiB0aGUgc2FtZSBwYWQuCgoyMDA1LTA5LTIxIDEyOjIxOjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0dXRpbHMuYzogTmV3IGZpbGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3R1dGlscy5jOiBOZXcgZmlsZS4KCSAgKHRlc3RfYnVmZmVyX3Byb2JlX25fdGltZXMpOiBBIHNpbXBsZSBidWZmZXIgcHJvYmUgdGVzdC4gTW9yZSB0bwoJICBjb21lLCBmb29saW9zLgoJICAqIGdzdC9nc3R1dGlscy5jIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpOiBDb25uZWN0IHRvCgkgIGhhdmUtZGF0YTo6YnVmZmVyLCBub3QgaGF2ZS1kYXRhLgoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpOiBMaWtld2lzZSBmb3IgaGF2ZS1kYXRhOjpldmVudC4KCSAgKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpOiBNb3JlIGRvY3MuIFRoZSBwYXJ0IGFib3V0ICdyZXNvbHZpbmcgdGhlCgkgIHBlZXInIGlzbid0IHF1aXRlIHJpZ2h0IHlldCB0aG91Z2guCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUsIGdzdF9wYWRfcmVtb3ZlX2V2ZW50X3Byb2JlKQoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSk6IENoYW5nZSB0byB0YWtlIHRoZSBndWludCBoYW5kbGVyX2lkCgkgIGFzIHRoZWlyIGFyZywgbm90IHRoZSBmdW5jdGlvbitkYXRhLCB3aGljaCBpcyBtb3JlIGdsaWItbGlrZS4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKTogQWRkIGEgZGV0YWlsIHRvCgkgIHRoZSBzaWduYWwgZW1pc3Npb24gdG8gaW5kaWNhdGUgaWYgdGhlIGRhdGEgaXMgYSBidWZmZXIgb3IgYW4KCSAgZXZlbnQuCgkgIChnc3RfcGFkX2dldF90eXBlKTogSW5pdGlhbGl6ZSBidWZmZXIgYW5kIGV2ZW50IHF1YXJrcy4KCSAgKGdzdF9wYWRfY2xhc3NfaW5pdCk6IGhhdmUtZGF0YSBpcyBub3cgYSBkZXRhaWxlZCBzaWduYWwsIHllcyBpdAoJICBpcy4KCjIwMDUtMDktMjEgMTE6NTI6MDQgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvOiBEb24ndCBwdXQgZnVuY3Rpb25hbCBjb2RlIGluIGdfcmV0dXJuX2lmX2ZhaWwoKSBvciBnX3JldHVybl92YWxfaWZfZmFpbCgpIHN0YXRlbWVudHMsIG90aGVyd2lzZSB0aGluZ3Mgd2lsbCBicmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKToKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF91dGlsX3NldF92YWx1ZV9mcm9tX3N0cmluZyksCgkgIChnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyk6CgkgIERvbid0IHB1dCBmdW5jdGlvbmFsIGNvZGUgaW4gZ19yZXR1cm5faWZfZmFpbCgpIG9yCgkgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCkgc3RhdGVtZW50cywgb3RoZXJ3aXNlIHRoaW5ncyB3aWxsCgkgIGJyZWFrIHdoZW4gR19ESVNBQkxFX0NIRUNLUyBpcyBkZWZpbmVkIGR1cmluZyBjb21waWxhdGlvbi4KCjIwMDUtMDktMjEgMDk6NDg6NDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGllZCBhbm90aGVyIG9uZSBhbmQgYWRkZWQgIHNvbWUgb2J2aW91cyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkgICogZ3N0L2dzdHZhbHVlLmM6CgkgICogZ3N0L2dzdHZhbHVlLmg6CgkgIGlubGllZCBhbm90aGVyIG9uZSBhbmQgYWRkZWQgIHNvbWUgb2J2aW91cyBkb2NzCgoyMDA1LTA5LTIxIDA5OjEzOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLio6IFByb3Blcmx5IGltcGxlbWVudCBmZHNyYy4gUmVtb3ZlZCBzaWduYWwgYW5kIHRpbWVvdXQsIGJldHRlciBpbXBsZW1lbnRlZCBzb21ld2hlcmUgZWxzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfc3RhcnQpLCAoZ3N0X2Zkc3JjX3N0b3ApLAoJICAoZ3N0X2Zkc3JjX3VubG9jayksIChnc3RfZmRzcmNfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9mZHNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Zkc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmg6CgkgIFByb3Blcmx5IGltcGxlbWVudCBmZHNyYy4gUmVtb3ZlZCBzaWduYWwgYW5kIHRpbWVvdXQsCgkgIGJldHRlciBpbXBsZW1lbnRlZCBzb21ld2hlcmUgZWxzZS4KCjIwMDUtMDktMjEgMDg6NTg6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGlubGluZWQgbW9yZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSAgKiBnc3QvZ3N0aW50ZXJmYWNlLmM6CgkgIGlubGluZWQgbW9yZSBkb2NzCgoyMDA1LTA5LTIxIDA4OjQwOjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC86IHJlbW92ZSBvYnNvbGV0ZSBkb2MgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJICByZW1vdmUgb2Jzb2xldGUgZG9jIGZpbGUKCjIwMDUtMDktMjEgMDc6Mzc6MDIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IERyaW5rIGEgbGl0dGxlIGJlZXIsIGZpeCBhIGxpdHRsZSBsZWFrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZSk6IERyaW5rIGEKCSAgbGl0dGxlIGJlZXIsIGZpeCBhIGxpdHRsZSBsZWFrLgoKMjAwNS0wOS0yMCAyMDo1NDozNyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZW51bXR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW1wbGVtZW50c2ludGVyZmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXhmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5mby5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2YWx1ZS5zZ21sOgoJICByZW1vdmUgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBmaWxlcwoKMjAwNS0wOS0yMCAyMDo0MDowMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbW9yZSBkb2NzIGlubGluZWQsIHNwbGl0dGVkIGdzdGluZGV4LntjLGh9CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZ3N0L01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0YmluLmM6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0aW5kZXguYzogKGdzdF9pbmRleF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0aW5kZXguaDoKCSAgKiBnc3QvZ3N0aW5kZXhmYWN0b3J5LmM6IChnc3RfaW5kZXhfZmFjdG9yeV9nZXRfdHlwZSksCgkgIChnc3RfaW5kZXhfZmFjdG9yeV9jbGFzc19pbml0KSwgKGdzdF9pbmRleF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X2luZGV4X2ZhY3RvcnlfZmluYWxpemUpLCAoZ3N0X2luZGV4X2ZhY3RvcnlfbmV3KSwKCSAgKGdzdF9pbmRleF9mYWN0b3J5X2Rlc3Ryb3kpLCAoZ3N0X2luZGV4X2ZhY3RvcnlfZmluZCksCgkgIChnc3RfaW5kZXhfZmFjdG9yeV9jcmVhdGUpLCAoZ3N0X2luZGV4X2ZhY3RvcnlfbWFrZSk6CgkgICogZ3N0L2dzdGluZGV4ZmFjdG9yeS5oOgoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuaDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzogKGdzdF9jb250cm9sbGVyX25ld192YWxpc3QpOgoJICBtb3JlIGRvY3MgaW5saW5lZCwgc3BsaXR0ZWQgZ3N0aW5kZXgue2MsaH0KCjIwMDUtMDktMjAgMjA6MTk6NTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSAgZml4IGEgbGVhayBpbiBjb250cm9sbGVyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYSBsZWFrIGluIGNvbnRyb2xsZXIKCjIwMDUtMDktMjAgMTk6MTY6NDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogU2V0IHN5bmMgdG8gRkFMU0UgYnkgZGVmYXVsdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2luaXQpOgoJICBTZXQgc3luYyB0byBGQUxTRSBieSBkZWZhdWx0LgoKMjAwNS0wOS0yMCAxNzozODo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IE1ha2Ugc3luYyBwcm9wZXJ0eSBzZXR0YWJsZSBmcm9tIHN1YmNsYXNzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlX3NpbmtfaW5pdCk6CgkgIE1ha2Ugc3luYyBwcm9wZXJ0eSBzZXR0YWJsZSBmcm9tIHN1YmNsYXNzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19pbml0KSwKCSAgKGdzdF9mYWtlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgU2V0IHN5bmMgdG8gRkFMU0UgYnkgZGVmYXVsdC4KCjIwMDUtMDktMjAgMTc6MzA6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBUaGUgdGltZW91dCBoYW5kbGVyIHNob3VsZCBoYXZlIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlIHNvdXJjZSBzbyB3ZSBkb24ndCB0aW1lb3V0IGJlZm9yZSBwb3BwaW5nIGEgbWVzc2FnZSB3aXRoIDAgdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAocG9sbF9mdW5jKSwgKHBvbGxfdGltZW91dCksIChnc3RfYnVzX3BvbGwpOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKG1haW4pOgoJICBUaGUgdGltZW91dCBoYW5kbGVyIHNob3VsZCBoYXZlIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlIHNvdXJjZQoJICBzbyB3ZSBkb24ndCB0aW1lb3V0IGJlZm9yZSBwb3BwaW5nIGEgbWVzc2FnZSB3aXRoIDAgdGltZW91dC4KCSAgRHVtcCBlcnJvciBtZXNzYWdlcyBhZnRlciBmYWlsZWQgc3RhdGUgY2hhbmdlLgoKMjAwNS0wOS0yMCAxNzoyMToxMyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHRvb2xzL2dzdC1pbnNwZWN0LmM6IEZpeCB0d28gdHlwb3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIEZpeCB0d28gdHlwb3MuCgoyMDA1LTA5LTIwIDE1OjQ1OjQyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIHJlbW92ZSB0aGUgc3luYyBwcm9wZXJ0eSBmcm9tIGZha2VzaW5rLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSAgcmVtb3ZlIHRoZSBzeW5jIHByb3BlcnR5IGZyb20gZmFrZXNpbmsuCgkgIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2Ygc2V0dGluZyBzeW5jIFRSVUUKCSAgZm9yIGZha2VzaW5rLCB3aGljaCBpcyBhIGNoYW5nZS4gIEFueW9uZSB3aG8ga25vd3MgaG93CgkgIHRvIGZpeCB0aGlzIG5pY2VseSBpbiBhIEdPYmplY3QteSB3YXksIGZlZWwgZnJlZS4KCjIwMDUtMDktMjAgMTU6MTk6MDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6IHJlbW92ZSBwcm9iZSByZWZzZWN0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIHJlbW92ZSBwcm9iZSByZWZzZWN0aW9uCgoyMDA1LTA5LTIwIDEyOjUwOjIzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogZGlzYWJsZSB2YWxncmluZGluZyB0aGUgY29udHJvbGxlciB0ZXN0IGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBkaXNhYmxlIHZhbGdyaW5kaW5nIHRoZSBjb250cm9sbGVyIHRlc3QgYWdhaW4KCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICB1cGRhdGUgZm9yIGFwaS1jaGFuZ2VzCgoyMDA1LTA5LTIwIDEyOjA1OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogQWRkZWQgc3luYyBwcm9wZXJ0eSB0byBiYXNlc2luayB0byBkaXNhYmxlIGNsb2NrIHN5bmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc2lua19zZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2Vfc2lua19nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBBZGRlZCBzeW5jIHByb3BlcnR5IHRvIGJhc2VzaW5rIHRvIGRpc2FibGUgY2xvY2sgc3luYy4KCjIwMDUtMDktMjAgMTE6MDk6NTAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6IEF2b2lkIGVhdGluZyB0aGUgY2FsbGVyJ3MgcmVmY291bnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA5LTIwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jIChnc3RfZWxlbWVudF9mYWN0b3J5X2NyZWF0ZSk6IEF2b2lkCgkgIGVhdGluZyB0aGUgY2FsbGVyJ3MgcmVmY291bnQuCgkgICogZ3N0L2dzdG9iamVjdC5oIChHU1RfT0JKRUNUX1JFRkNPVU5UKQoJICAoR1NUX09CSkVDVF9SRUZDT1VOVF9WQUxVRSk6IENvbmRpdGlvbmFsbHkgZm9uZGxlIHRoZSByaWdodAoJICByZWZjb3VudC4KCSAgKiBnc3QvZ3N0Y29uZmlnLmguaW4gKEdTVF9IQVZFX0dMSUJfMl84KToKCSAgKiBjb25maWd1cmUuYWMgKEdTVF9IQVZFX0dMSUJfMl84X0RFRklORSk6IE1ha2UgdGhlIGF2YWlsYWJpbGl0eQoJICBvZiBHTGliIDIuOCBwdWJsaWMsIHNvIHdlIGNhbiBrbm93IHdoaWNoIHJlZmNvdW50IHRvIGNoZWNrIGluCgkgIHRlc3RzLgoJICAqIGdzdC9nc3RvYmplY3QuYzogVXNlIHRoZSBHU1RfSEFWRV9HTElCXzJfOCBkZWZpbmUuCgkgIChnc3Rfb2JqZWN0X2luaXQpOiBPbmx5IHNldCB0aGUgZ3N0IHJlZmNvdW50IGlmIHdlJ3JlIGdvaW5nIGFoZWFkCgkgIHdpdGggdGhlIHJlZmNvdW50IGhhY2suCgoyMDA1LTA5LTIwIDEwOjQxOjAzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGxlYWtzIHBsdW1iZWQsIGFkZGVkIG1vcmUgZGVidWctbG9nZ2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IChwbHVnaW5faW5pdCksIChHU1RfU1RBUlRfVEVTVCk6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6IChnc3RfY29udHJvbGxlcl9uZXdfdmFsaXN0KToKCSAgbW9yZSBsZWFrcyBwbHVtYmVkLCBhZGRlZCBtb3JlIGRlYnVnLWxvZ2dpbmcKCSAgKiBnc3QvZ3N0bWFjcm9zLmg6CgkgIHdoaXRlc3BhY2UgZml4CgoyMDA1LTA5LTIwIDA5OjQ3OjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgcmVtb3ZlIGluY2x1ZGUgb2YgcmVtb3ZlZCBoZWFkZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBpbmNsdWRlIG9mIHJlbW92ZWQgaGVhZGVyCgoyMDA1LTA5LTIwIDA5OjI4OjU2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RjbG9jay5jOiBDb21taXQgZnJvbSB0aGUgUG9saXRpY2FsIFBhcnR5IEZvciBNb3JlIEF0b21pYyBDVlMgQ29tbWl0cywgc28gdGhhdCBwZW9wbGUgZG9uJ3Qgd2FzdGUgdG9vIG11Y2ggb2YgdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2xvY2suYzogKF9nc3RfY2xvY2tfaWRfZnJlZSk6CgkgIENvbW1pdCBmcm9tIHRoZSBQb2xpdGljYWwgUGFydHkgRm9yIE1vcmUgQXRvbWljIENWUyBDb21taXRzLAoJICBzbyB0aGF0IHBlb3BsZSBkb24ndCB3YXN0ZSB0b28gbXVjaCBvZiB0aGVpciBkYXkgZmlzaGluZwoJICBvdXQgb2J2aW91cyBsZWFrcyBvdXQgb2YgbWFzc2l2ZSBjb21taXRzLgoJICBPaCwgYW5kIGZpeCBhIHByZXR0eSBkYW1uIG9idmlvdXMgbGVhayBpbiB0aGUgbWVtY2h1bmsKCSAgcmVtb3ZhbCBjb2RlLgoKMjAwNS0wOS0yMCAwOToyMzozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svOiBwbHVnIG1lbS1sZWFrLCByZS1hZGQgdG8gdmFsZ3JpbmRhYmxlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKHBsdWdpbl9pbml0KSwgKEdTVF9TVEFSVF9URVNUKToKCSAgcGx1ZyBtZW0tbGVhaywgcmUtYWRkIHRvIHZhbGdyaW5kYWJsZSB0ZXN0cwoKMjAwNS0wOS0yMCAwOTowODoyNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RwbHVnaW4uaDoKCSAgdW5icmVhayB0aGUgYnVpbGQgZm9yIHRob3NlIHdobyBoYXZlIGNocm9uaWMgYXJ0aHJpdGlzIGFuZCB0eXBpbmcgIm1ha2UgY2hlY2siIGlzIGp1c3QgdG9vIHRheGluZyBvbiB0aGUgaGFuZHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVuYnJlYWsgdGhlIGJ1aWxkIGZvciB0aG9zZSB3aG8gaGF2ZSBjaHJvbmljIGFydGhyaXRpcwoJICBhbmQgdHlwaW5nICJtYWtlIGNoZWNrIiBpcyBqdXN0IHRvbyB0YXhpbmcgb24gdGhlIGhhbmRzCgoyMDA1LTA5LTIwIDA4OjI1OjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Lmg6IFJlLWFkZCBtYXJzaGFsIHRvIGdzdC5oJ3MgaW5jbHVkZSBsaXN0IC0tIGlmIHdlIHJlYWxseSB3YW50IGl0IG91dCwgeW91IHNob3VsZCBmaXggcGx1Z2lucyBhdCB0aGUgc2FtZSB0aW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0yMCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0Lmg6IFJlLWFkZCBtYXJzaGFsIHRvIGdzdC5oJ3MgaW5jbHVkZSBsaXN0IC0tIGlmIHdlCgkgIHJlYWxseSB3YW50IGl0IG91dCwgeW91IHNob3VsZCBmaXggcGx1Z2lucyBhdCB0aGUgc2FtZSB0aW1lLgoKMjAwNS0wOS0yMCAwNzozMjo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgbWlzc2luZyBzeW1ib2xzIHRvIGFwaSBkb2NzIGRpc2FibGUgcmVmLWNvdW50IGhhY2sgaWYgd2UgaGF2ZSBnbGliID49IDIuOAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIGFkZGVkIG1pc3Npbmcgc3ltYm9scyB0byBhcGkgZG9jcwoJICBkaXNhYmxlIHJlZi1jb3VudCBoYWNrIGlmIHdlIGhhdmUgZ2xpYiA+PSAyLjgKCjIwMDUtMDktMjAgMDY6Mjg6MzMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9nc3QvTWFrZWZpbGUuYW06IElnbm9yZSBhIGZldyBtb3JlIGludGVybmFsIGhlYWRlcnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06IElnbm9yZSBhIGZldyBtb3JlIGludGVybmFsIGhlYWRlcnMKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgb2xkIHNlY3Rpb25zCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogUmVtb3ZlIG9sZCBzZWN0aW9ucwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0b2JqZWN0LnNnbWw6IHVwZGF0ZQoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6IHVwZGF0ZQoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOiB1cGRhdGUKCSAgKiBkb2NzL3JhbmRvbS9kcy8wLjktc3VnZ2VzdGVkLWNoYW5nZXM6IHVwZGF0ZS4KCSAgKiBnc3QvTWFrZWZpbGUuYW06IHJlbW92ZSBtZW1jaHVuayBhbmQgdHJhc2hzdGFjaywgc2luY2UgdGhleSdyZQoJICBub3QgdXNlZC4KCSAgKiBnc3QvZ3N0LmM6IChnc3RfZGVpbml0KTogcmVuYW1lIGdzdF9yZWdpc3RyeV9kZWluaXQgdG8gX2NsZWFudXAKCSAgKiBnc3QvZ3N0Lmg6IGRvbid0IGluY2x1ZGUgc29tZSBoZWFkZXJzCgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogYWRkIGdzdG1hcnNoYWwuaAoJICAqIGdzdC9nc3RjbG9jay5jOiBEb24ndCB1c2UgbWVtY2h1bmtzCgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogQWRkIHNvbWUgZG9jcwoJICAqIGdzdC9nc3RvYmplY3QuYzogcmVtb3ZlIERFU1RST1lFRCBmbGFnLCBzaW5jZSBpdCdzIHJlZHVuZGFudAoJICAqIGdzdC9nc3RvYmplY3QuaDogc2FtZQoJICAqIGdzdC9nc3RwbHVnaW4uYzogaW5jbHVkZSBnc3RtYWNyb3MuaAoJICAqIGdzdC9nc3RwbHVnaW4uaDogZG9uJ3QgaW5jbHVkZSBnc3RtYWNyb3MuaCwgc2luY2UgaXQncyBwcml2YXRlCgkgICogZ3N0L2dzdHF1ZXJ5LmM6IGRvbid0IHVzZSBtZW1jaHVua3MKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzogcmVuYW1lIGdzdF9yZWdpc3RyeV9kZWluaXQoKQoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOiBzYW1lCgoyMDA1LTA5LTIwIDA1OjEzOjMwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6IFJlbW92ZSBkb2NzIGZvciBnZXRiaXRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6IFJlbW92ZSBkb2NzIGZvciBnZXRiaXRzCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkgICogZG9jcy9saWJzL3RtcGwvZ3N0cHV0Yml0cy5zZ21sOgoKMjAwNS0wOS0yMCAwMDoyNzozNyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiBBZGQgYSBzbGVlcCB0byBlbnN1cmUgZWxlbWVudHMgaGF2ZSBhIGNoYW5jZSB0byBzdGFydCB0aGVpciBwYWQgdGFza3MgYmVmb3JlIHNodXRkb3duLiBSZWR1Y2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKSwgKHN0YXRlc19zdWl0ZSk6CgkgIEFkZCBhIHNsZWVwIHRvIGVuc3VyZSBlbGVtZW50cyBoYXZlIGEgY2hhbmNlIHRvIHN0YXJ0IHRoZWlyCgkgIHBhZCB0YXNrcyBiZWZvcmUgc2h1dGRvd24uIFJlZHVjZXMgcmFjeSB0ZXN0IHJlc3VsdHMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfY3JlYXRlKToKCSAgVGltZSBvdXQgdGhlIHNlbGVjdCBldmVyeSBub3cgYW5kIHRoZW4gdG8gY2hlY2sgZm9yIHNodXRkb3duLgoKMjAwNS0wOS0xOSAyMDowMTo0NSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2dzdGVudW10eXBlcy4qOiBVcGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5jOgoJICAqIHdpbjMyL2dzdGVudW10eXBlcy5oOgoJICBVcGRhdGUuCgoyMDA1LTA5LTE5IDE2OjMyOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBpcGVsaW5lLmM6IEF1dG9tYXRpY2FsbHkgUEFVU0UgYW5kIFJFU1VNRSBhIHBpcGVsaW5lIHdoZW4gYSBmbHVzaGluZyBzZWVrIGlzIHBlcmZvcm1lZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChkb19waXBlbGluZV9zZWVrKSwgKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgQXV0b21hdGljYWxseSBQQVVTRSBhbmQgUkVTVU1FIGEgcGlwZWxpbmUgd2hlbiBhIGZsdXNoaW5nIHNlZWsKCSAgaXMgcGVyZm9ybWVkLgoJICBSZW1vdmVkIG9sZCBmaWxlcy4KCjIwMDUtMDktMTkgMTY6Mjg6NTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1cy5jOgoJICB3aGl0ZXNwYWNlIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBmaXgKCjIwMDUtMDktMTkgMTU6MTI6MjUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RyZWdpc3RyeS5oOiBTcGFjaW5nIGZpeGVuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cmVnaXN0cnkuaDogU3BhY2luZyBmaXhlbi4KCjIwMDUtMDktMTkgMTQ6NTU6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEhhbmRsZSBzdGF0ZSBjaGFuZ2UgZmFpbHVyZSBtb3JlIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIEhhbmRsZSBzdGF0ZSBjaGFuZ2UgZmFpbHVyZSBtb3JlIGNvcnJlY3RseS4KCjIwMDUtMDktMTkgMTQ6NDE6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBlbmFibGUgY2xlYW51cCBhZ2FpbiBhZnRlciBmaXhpbmcgdGhlIGxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKHJ1bl9waXBlbGluZSk6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHJ1bl9waXBlbGluZSksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIGVuYWJsZSBjbGVhbnVwIGFnYWluIGFmdGVyIGZpeGluZyB0aGUgbGVhawoJICAqIGRvY3MvUkVBRE1FOgoJICBzb21lIG1vcmUgaW5mbyBvbiBkb2NzCgoyMDA1LTA5LTE5IDE0OjIwOjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZG9uJ3QgY29tcGxhaW4gYWJvdXQgbXkgQVJNIC5zbyBmaWxlcy4gIEFub3RoZXIgcmVhc29uIHdoeSBpdCBkb2VzIG1ha2Ugc2Vuc2UgdG8gaGF2ZSBwbHVnaW5zIGZvbGxvdyBhIHN0YW5kYXJkIGZpbGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBjb21wbGFpbiBhYm91dCBteSBBUk0gLnNvIGZpbGVzLiAgQW5vdGhlciByZWFzb24gd2h5IGl0IGRvZXMgbWFrZSBzZW5zZQoJICB0byBoYXZlIHBsdWdpbnMgZm9sbG93IGEgc3RhbmRhcmQgZmlsZSBuYW1lIHBhdHRlcm4gbGlrZSBsaWJnc3Qod2hhdGV2ZXIpLnNvCgoyMDA1LTA5LTE5IDE0OjA5OjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiByZS1lbmFibGUgdGVzdHMgbm93IHRoYXQgbGVha3MgYXJlIHBsdWdnZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIHJlLWVuYWJsZSB0ZXN0cyBub3cgdGhhdCBsZWFrcyBhcmUgcGx1Z2dlZAoJICAqIGNoZWNrL2dzdC9nc3QuYzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkgIGFkZCBzb21lIG1vcmUgdGVzdHMgd2hpbGUgZml4aW5nIGxlYWtzCgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgbWFrZSBzdXJlIGJpbmFyaWVzIGFyZSB1cHRvZGF0ZSB3aGVuIHZhbGdyaW5kaW5nL2dkYmluZwoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgcmVtb3ZlIGEgcmVmIHRvbyBtYW55LCBhbmQgYWRkIGEgRklYTUUgZm9yIHdoZW4gd2UgZ2V0CgkgIHJvdW5kIHRvIGRpc3Bvc2luZyBvZiBjbGFzc2VzCgkgICogZ3N0L2dzdHBsdWdpbi5jOgoJICBmaXggdGhlIHJlZmNvdW50aW5nIHdoZW4gbG9hZGluZyBhIHBsdWdpbiBmcm9tIGEgZmlsZSBhbmQKCSAgdGhlIGNvZGUgcHJldGVuZHMgdGhhdCB0aGUgcG9pbnRlciBpcyB0aGUgc2FtZSBldmVuIHRob3VnaAoJICBvZiBjb3Vyc2UgaXQgY2FuIGNoYW5nZQoJICAqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkgIHVucmVmIHBsdWdpbnMgbWFya2VkIGNhY2hlZCAoYSBiaXQgY29uZnVzaW5nIGFzIGEgbmFtZSkKCSAgYXMgdGhlIGRvY3Mgc3RhdGUgc2hvdWxkIGJlIGRvbmUKCSAgdmFyaW91cyBkb2MgYWRkaXRpb25zIHRvIGV4cGxhaW4gcmVmY291bnRpbmcKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgZGVidWdnaW5nCgoyMDA1LTA5LTE5IDE0OjA5OjM3ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNS0wOS0xOSAxMToxODowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEdzdEJ1c0hhbmRsZXIgLT4gR3N0QnVzRnVuYywgcmV0dXJuIHZhbHVlIGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzIGFueSBvdGhlciBHU291cmNlIChGQUxTRSA9PSByZW1vdmUgc291cmNlKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAocG9wX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKToKCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmM6IChtZXNzYWdlX2Z1bmNfZW9zKSwgKG1lc3NhZ2VfZnVuY19hcHApLAoJICAoc2VuZF9tZXNzYWdlcyksIChHU1RfU1RBUlRfVEVTVCksIChnc3RidXNfc3VpdGUpOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6IChydW5fcGlwZWxpbmUpOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChydW5fcGlwZWxpbmUpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfaGF2ZV9wZW5kaW5nKSwgKGdzdF9idXNfc291cmNlX3ByZXBhcmUpLAoJICAoZ3N0X2J1c19zb3VyY2VfY2hlY2spLCAoZ3N0X2J1c19zb3VyY2VfZGlzcGF0Y2gpLAoJICAoZ3N0X2J1c19jcmVhdGVfd2F0Y2gpLCAoZ3N0X2J1c19hZGRfd2F0Y2hfZnVsbCksCgkgIChnc3RfYnVzX2FkZF93YXRjaCksIChwb2xsX2Z1bmMpLCAocG9sbF90aW1lb3V0KSwgKGdzdF9idXNfcG9sbCk6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICAqIHRvb2xzL2dzdC1tZDVzdW0uYzogKGV2ZW50X2xvb3ApOgoJICBHc3RCdXNIYW5kbGVyIC0+IEdzdEJ1c0Z1bmMsIHJldHVybiB2YWx1ZSBoYXMgdGhlIHNhbWUgbWVhbmluZyBhcwoJICBhbnkgb3RoZXIgR1NvdXJjZSAoRkFMU0UgPT0gcmVtb3ZlIHNvdXJjZSkuCgkgIF9hZGRfd2F0Y2goKSBhbmQgX2FkZF93YXRjaF9mdWxsKCkgbm93IHRha2UgYSBNZXNzYWdlVHlwZSBtYXNrIHRvCgkgIG9ubHkgaGFuZGxlIHNwZWNpZmljIHR5cGVzIG9mIG1lc3NhZ2VzLgoJICBfcG9sbCgpIHJldHVybnMgdGhlIEdzdE1lc3NhZ2UgaW5zdGVhZCBvZiB0aGUgbWVzc2FnZSB0eXBlIHRvIGF2b2lkCgkgIHJhY2UgY29uZGl0aW9ucy4KCSAgX2hhdmVfcGVuZGluZygpIHRha2VzIGEgTWVzc2FnZVR5cGUgbWFzayBub3cgdG9vLgoJICBBZGRlZCB0ZXN0c3VpdGUgZm9yIG11bHRpcGxlIGJ1cyB3YXRjaGVzLgoJICBGaXggdGVzdHN1aXRlcyBhbmQgYXBwbGljYXRpb25zIGZvciBuZXcgYnVzIEFQSS4KCjIwMDUtMDktMTggMjI6MTU6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG1hcmsgYSBidW5jaCBvZiB0aGUgdGVzdHMgYXMgdG8gZml4IHVudGlsIHdlIGZpeCB0aGVtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYXJrIGEgYnVuY2ggb2YgdGhlIHRlc3RzIGFzIHRvIGZpeCB1bnRpbCB3ZSBmaXggdGhlbQoKMjAwNS0wOS0xOCAyMTo0MDo1OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb21tb24vY2hlY2subWFrOiB1c2UgR1NUX1BMVUdJTiBzZXR0aW5ncyBmb3IgdmFsZ3JpbmQgdGVzdHMgYXMgd2VsbCwgc28gd2UncmUgdmFsZ3JpbmRpbmcgdGhlIGNvcnJlY3QgdGhpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29tbW9uL2NoZWNrLm1hazoKCSAgdXNlIEdTVF9QTFVHSU4gc2V0dGluZ3MgZm9yIHZhbGdyaW5kIHRlc3RzIGFzIHdlbGwsIHNvIHdlJ3JlCgkgIHZhbGdyaW5kaW5nIHRoZSBjb3JyZWN0IHRoaW5nCgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KToKCSAgcGx1ZyBhbm90aGVyIGxlYWsKCjIwMDUtMDktMTggMjE6MjQ6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkqIGdzdC9nc3RpbmRleC5jOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RwbHVnaW4uYzoKCSogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkqIGdzdC9nc3RyZWdpc3RyeS5oOgoJKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJICB2YXJpb3VzIGNsZWFudXBzIGFuZCBtZW1sZWFrIHBsdWdnaW5nLiAgbWFrZSB2YWxncmluZCBpcyBoYXBweSBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YXJpb3VzIGNsZWFudXBzIGFuZCBtZW1sZWFrIHBsdWdnaW5nLiAgbWFrZSB2YWxncmluZCBpcyBoYXBweSBub3cuCgoyMDA1LTA5LTE4IDIxOjIzOjEzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIGNvbW1vbjoKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkgIGFkZCBjaGVjay12YWxncmluZCB0YXJnZXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBjaGVjay12YWxncmluZCB0YXJnZXQKCjIwMDUtMDktMTggMDk6MTU6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgIGxvYWRpbmcgYSBwbHVnaW4gY2FuIHJldHVybiBOVUxMCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBsb2FkaW5nIGEgcGx1Z2luIGNhbiByZXR1cm4gTlVMTAoKMjAwNS0wOS0xOCAwNzo0MToyOCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBSZXZlcnQgdGhlIEdPcHRpb24gY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogUmV2ZXJ0IHRoZSBHT3B0aW9uIGNvZGUuCgoyMDA1LTA5LTE4IDA2OjU5OjI1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBGaXggZW52aXJvbm1lbnQgdmFyaWFibGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbTogRml4IGVudmlyb25tZW50IHZhcmlhYmxlcy4KCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IEZpeCBmb3IgQVBJIGNoYW5nZXMuCgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogRml4IGZvciBBUEkgY2hhbmdlcy4KCSAgKiB0b29scy9nc3QteG1saW5zcGVjdC5jOiBGaXggZm9yIEFQSSBjaGFuZ2VzLgoJICAqIGdzdC9nc3RlbGVtZW50ZmFjdG9yeS5jOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXhtbC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOgoJICAqIGdzdC9nc3R0eXBlZmluZGZhY3RvcnkuYzoKCSAgKiBnc3QvaW5kZXhlcnMvZ3N0ZmlsZWluZGV4LmM6CgkgICogZ3N0L2luZGV4ZXJzL2dzdG1lbWluZGV4LmM6CgkgICogZ3N0L3NjaGVkdWxlcnMvTWFrZWZpbGUuYW06CgkgIENoYW5nZSByZWdpc3RyeSB0byBrZWVwIHRyYWNrIG9mIGJvdGggcGx1Z2lucyBhbmQgZmVhdHVyZXMsCgkgIHJlbW92aW5nIHRoZSBmZWF0dXJlIHRyYWNraW5nIGZyb20gcGx1Z2lucyB0aGVtc2VsdmVzLgoKMjAwNS0wOS0xNyAxODoxNDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCB2YWxncmluZCB0YXJnZXQ7IGRpc2FibGUgZ3N0cGx1Z2luIHVudGlsIGl0IHBhc3NlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHZhbGdyaW5kIHRhcmdldDsgZGlzYWJsZSBnc3RwbHVnaW4gdW50aWwgaXQgcGFzc2VzCgoyMDA1LTA5LTE3IDE4OjExOjI3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIHZhbGdyaW5kIHRhcmdldDsgZGlzYWJsZSBnc3RwbHVnaW4gdW50aWwgaXQgcGFzc2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgdmFsZ3JpbmQgdGFyZ2V0OyBkaXNhYmxlIGdzdHBsdWdpbiB1bnRpbCBpdCBwYXNzZXMKCjIwMDUtMDktMTYgMTE6MjQ6MTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdHBsdWdpbi5oOgoJICBhZGQgbWlzaW5nIGluY2x1ZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBtaXNpbmcgaW5jbHVkZQoKMjAwNS0wOS0xNiAwODoxNzo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHNldCB0aGUgcmlnaHQgdmFyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzZXQgdGhlIHJpZ2h0IHZhcgoKMjAwNS0wOS0xNiAwODoxNDo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdG9vbHMvZ3N0LXJlZ2lzdGVyLjEuaW46CgkgIHJlbW92ZSBnc3QtcmVnaXN0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBnc3QtcmVnaXN0ZXIKCjIwMDUtMDktMTYgMDQ6NTQ6MjQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgR2V0dGluZyB0aXJlZCBvZiBkZWJ1Z2dpbmcuICBEaXNhYmxlZCBhbGwgdGhlIHVucmVmZmluZyBvZiBwbHVnaW5zIGFuZCBmZWF0dXJlcywgd2hpY2ggZml4ZXMgdGhlIHNlZ2ZhdWx0cywgYnV0IG9mIGNvLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnkuYzoKCSAgR2V0dGluZyB0aXJlZCBvZiBkZWJ1Z2dpbmcuICBEaXNhYmxlZCBhbGwgdGhlIHVucmVmZmluZyBvZgoJICBwbHVnaW5zIGFuZCBmZWF0dXJlcywgd2hpY2ggZml4ZXMgdGhlIHNlZ2ZhdWx0cywgYnV0IG9mCgkgIGNvdXJzZSBsZWFrcyBsaWtlIGNyYXp5LiAgQXQgbGVhc3QgcGxheWJpbiB3b3Jrcy4KCjIwMDUtMDktMTYgMDM6NDY6MTQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiBNb3JlIHRlc3RpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBsdWdpbi5jOiAocmVnaXN0ZXJfY2hlY2tfZWxlbWVudHMpLAoJICAoR1NUX1NUQVJUX1RFU1QpLCAocGVlayksIChzdWdnZXN0KSwgKGdzdF9wbHVnaW5fc3VpdGUpOgoJICBNb3JlIHRlc3RpbmcKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IEZpeCByZWZjb3VudGluZy4KCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5oOgoKMjAwNS0wOS0xNiAwMDozNzo1MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwbHVnaW4uYzoKCSAgdW52ZXJib3NpZnkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVudmVyYm9zaWZ5CgoyMDA1LTA5LTE2IDAwOjA4OjE1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIHNvbWUgd2hpdGVzcGFjZSB0byB0cmlnZ2VyIGEgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgd2hpdGVzcGFjZSB0byB0cmlnZ2VyIGEgYnVpbGQKCjIwMDUtMDktMTYgMDA6MDI6MjcgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdGluZGV4LmM6IGdldCByZWZjb3VudGluZyBjb3JyZWN0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0aW5kZXguYzogZ2V0IHJlZmNvdW50aW5nIGNvcnJlY3QuCgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6IEhhbmRsZSB0aGUgY2FzZSB3aGVyZSBhIGZlYXR1cmUvcGx1Z2luIGlzCgkgIG5vdCBmb3VuZC4KCjIwMDUtMDktMTUgMjM6NTE6MjQgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svOiBBZGQgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0cGx1Z2luLmM6IEFkZCB0ZXN0CgkgICogZ3N0L2dzdHBsdWdpbi5jOiBGaXggcHJvYmxlbXMgbm90aWNlZCBieSB0ZXN0c3VpdGUKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5LmM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5Lmg6CgoyMDA1LTA5LTE1IDIwOjU2OjMwICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogSW1wbGVtZW50IHNlbWktZGVjZW50IHJlY291bnRpbmcgYW5kIGxvY2tpbmcgaW4gcGx1Z2lucyBhbmQgcGx1Z2luIGZlYXR1cmVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IEltcGxlbWVudCBzZW1pLWRlY2VudCByZWNvdW50aW5nIGFuZCBsb2NraW5nCgkgIGluIHBsdWdpbnMgYW5kIHBsdWdpbiBmZWF0dXJlcy4KCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoKMjAwNS0wOS0xNSAxNDoyMTowOCArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICBJbXBsZW1lbnQgbWlzc2luZyBmdW5jdGlvbi4gVGhpcyBpcyBlbm91Z2ggdG8gZ2V0IHRoZSBiYXNpY3Mgb2YgdHlwZWZpbmRpbmcgd29ya2luZyAtIG9nZ2RlbXV4IHN1Y2NlZWRzIG5vdy4gZGVjb2RlYmkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEltcGxlbWVudCBtaXNzaW5nIGZ1bmN0aW9uLiBUaGlzIGlzIGVub3VnaCB0byBnZXQgdGhlIGJhc2ljcyBvZgoJICB0eXBlZmluZGluZyB3b3JraW5nIC0gb2dnZGVtdXggc3VjY2VlZHMgbm93LiBkZWNvZGViaW4gaXMgc3RpbGwgYnJva2VuLgoKMjAwNS0wOS0xNSAwNTo1ODozNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IEFkZCAtbm8tdW5kZWZpbmVkIHRvIEdTVF9QTFVHSU5fTERGTEFHUyAoYnVnICMzMTYwNzYpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzogQWRkIC1uby11bmRlZmluZWQgdG8gR1NUX1BMVUdJTl9MREZMQUdTIChidWcKCSAgIzMxNjA3NikKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbTogQWRkIC1uby11bmRlZmluZWQgdG8gTERGTEFHUyBmb3IgbGlicwoJICAqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCjIwMDUtMDktMTUgMDU6NDg6MzAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY29uZmlndXJlLmFjOiBSZW1vdmUgZ2V0Yml0cyBsaWJyYXJ5LiAgTm90aGluZyB1c2VzIGl0LCBhbmQgaXQgc2hvdWxkIGJlIGluIHNvbWV0aGluZyBsaWtlIGxpYm9pbCBpZiBzb21lb25lIGRpZCB3YW50Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGdldGJpdHMgbGlicmFyeS4gIE5vdGhpbmcgdXNlcyBpdCwgYW5kCgkgIGl0IHNob3VsZCBiZSBpbiBzb21ldGhpbmcgbGlrZSBsaWJvaWwgaWYgc29tZW9uZSBkaWQgd2FudAoJICB0byB1c2UgaXQuCgkgICogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZ2V0Yml0cy9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2didGVzdC5jOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ2V0Yml0cy5jOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ2V0Yml0cy5oOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvZ3N0Z2V0Yml0c19nZW5lcmljLmM6CgkgICogbGlicy9nc3QvZ2V0Yml0cy9nc3RnZXRiaXRzX2kzODYuczoKCSAgKiBsaWJzL2dzdC9nZXRiaXRzL2dzdGdldGJpdHNfaW5sLmg6CgoyMDA1LTA5LTE1IDA1OjQyOjEzICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9NYWtlZmlsZS5hbTogRGlzdCBnbGliLWNvbXBhdC5oCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogRGlzdCBnbGliLWNvbXBhdC5oCgoyMDA1LTA5LTE1IDAzOjIwOjQ5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGdzdC9yZWdpc3RyaWVzLCBzaW5jZSBpdCdzIG5vIGxvbmdlciB1c2VkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6IFJlbW92ZSBnc3QvcmVnaXN0cmllcywgc2luY2UgaXQncyBubyBsb25nZXIgdXNlZC4KCSAgKiBnc3QvcmVnaXN0cmllcy9NYWtlZmlsZS5hbToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuYzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL3JlZ2lzdHJ5dGVzdC5jOgoKMjAwNS0wOS0xNSAwMTozODozMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvOiBDb252ZXJnZW5jZSBpcyBuZWFyLiAgU2VyaW91c2x5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzoKCSAgQ29udmVyZ2VuY2UgaXMgbmVhci4gIFNlcmlvdXNseS4KCjIwMDUtMDktMTUgMDE6MzQ6NTIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dsaWItY29tcGF0Lio6IEF0dGVtcHQgIzQgdG8gYXBwZWFzZSB0aGUgYnVpbGRib3RzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgKiBnc3QvZ2xpYi1jb21wYXQuaDoKCSAgQXR0ZW1wdCAjNCB0byBhcHBlYXNlIHRoZSBidWlsZGJvdHMuCgoyMDA1LTA5LTE1IDAxOjI2OjQyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nbGliLWNvbXBhdC5jOiBBdHRlbXB0ICMzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ2xpYi1jb21wYXQuYzogKGdfbWtkaXJfd2l0aF9wYXJlbnRzKSwgKGdfbWtkaXIpLCAoZ19zdGF0KToKCSAgQXR0ZW1wdCAjMy4KCjIwMDUtMDktMTUgMDE6MjA6MjIgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dsaWItY29tcGF0LmM6IEF0dGVtcHQgIzIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ19ta2Rpcl93aXRoX3BhcmVudHMpLCAoZ19ta2RpciksIChnX3N0YXQpOgoJICBBdHRlbXB0ICMyLgoKMjAwNS0wOS0xNSAwMToxNDoxNyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IE9oIHllYWgsIGxpYmdzdHJlYW1lci5zbyBuZWVkcyB0byBjb250YWluIHRoZSBuZXcgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06IE9oIHllYWgsIGxpYmdzdHJlYW1lci5zbyBuZWVkcyB0byBjb250YWluCgkgIHRoZSBuZXcgZnVuY3Rpb25zLgoKMjAwNS0wOS0xNSAwMToxMDo1MiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ2xpYi1jb21wYXQuKjogQWRkIHNvbWUgZnVuY3Rpb25zIHRoYXQgYXJlIGluIG5ld2VyIHZlcnNpb25zIG9mIGdsaWIgdGhhbiB3ZSBjYXJlIHRvIHJlcXVpcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nbGliLWNvbXBhdC5jOiAoZ19ta2Rpcl93aXRoX3BhcmVudHMpLCAoZ19ta2RpciksIChnX3N0YXQpOgoJICAqIGdzdC9nbGliLWNvbXBhdC5oOiBBZGQgc29tZSBmdW5jdGlvbnMgdGhhdCBhcmUgaW4gbmV3ZXIgdmVyc2lvbnMKCSAgb2YgZ2xpYiB0aGFuIHdlIGNhcmUgdG8gcmVxdWlyZS4KCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogVXNlIHRoZW0uCgoyMDA1LTA5LTE1IDAwOjQ4OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIHBvL1BPVEZJTEVTLmluOiByZW1vdmUgZ3N0LXJlZ2lzdGVyLmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogcG8vUE9URklMRVMuaW46IHJlbW92ZSBnc3QtcmVnaXN0ZXIuYwoKMjAwNS0wOS0xNSAwMDo0MjowMyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBkb2NzL2dzdC86IERvY3VtZW50YXRpb24gdXBkYXRlcyBmb3IgcmVnaXN0cnkgY2hhbmdlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJICBEb2N1bWVudGF0aW9uIHVwZGF0ZXMgZm9yIHJlZ2lzdHJ5IGNoYW5nZXMuCgoyMDA1LTA5LTE1IDAwOjM1OjExICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RyZWdpc3RyeXhtbC5jOiBDb3B5IGdfbWtkaXJfd2l0aF9wYXJlbnQoKSBmcm9tIGdsaWIsIGJlY2F1c2Ugd2UgZG9uJ3QgcmVxdWlyZSBnbGliLTIuOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHJlZ2lzdHJ5eG1sLmM6IENvcHkgZ19ta2Rpcl93aXRoX3BhcmVudCgpIGZyb20gZ2xpYiwKCSAgYmVjYXVzZSB3ZSBkb24ndCByZXF1aXJlIGdsaWItMi44LgoKMjAwNS0wOS0xNSAwMDoyMDoxNCArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQWRkZWQuICBFc3NlbnRpYWxseSBtb3ZlZCBvdXQgb2YgdGhlIHJlZ2lzdHJpZXMgZGlyZWN0b3J5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnl4bWwuYzogQWRkZWQuICBFc3NlbnRpYWxseSBtb3ZlZCBvdXQgb2YgdGhlCgkgIHJlZ2lzdHJpZXMgZGlyZWN0b3J5LgoKMjAwNS0wOS0xNSAwMDoxMzoyNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICByZW1vdmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3QuaDoKCSAgKiBnc3QvZ3N0X3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgKiBnc3QvZ3N0aW5kZXguYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmg6CgkgICogZ3N0L2dzdHBsdWdpbmZlYXR1cmUuYzoKCSAgKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5oOgoJICAqIGdzdC9nc3RyZWdpc3RyeXBvb2wuYzogcmVtb3ZlCgkgICogZ3N0L2dzdHJlZ2lzdHJ5cG9vbC5oOiByZW1vdmUKCSAgKiBnc3QvZ3N0dHlwZWZpbmQuYzoKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHVyaS5jOgoJICAqIHRvb2xzL01ha2VmaWxlLmFtOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LXJlZ2lzdGVyLmM6IHJlbW92ZQoJICAqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFJlZ2lzdHJ5IHJld3JpdGUuICBDaGFuZ2VzIHJlZ2lzdHJ5IGZyb20gYmVpbmcgYSBmaWxlIGNyZWF0ZWQKCSAgYnkgYSB0b29sIGludG8gYSBzaW1wbGUgY2FjaGUgZmlsZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgYnkKCSAgbGliZ3N0cmVhbWVyLiAgUmVtb3ZlZCBnc3QtcmVnaXN0ZXIgKGJlY2F1c2UgaXQncyBubyBsb25nZXIKCSAgbmVlZGVkKS4gIFJlbW92ZSByZWdpc3RyeSBwb29scywgYmVjYXVzZSB3ZSBvbmx5IGhhdmUgb25lCgkgIHJlZ2lzdHJ5IGltcGxlbWVudGF0aW9uIChYTUwpLiAgRml4IHVwIG90aGVyIHN1YnN5c3RlbXMgYXMKCSAgbmVjZXNzYXJ5LgoKMjAwNS0wOS0xNCAyMjowNTo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSAgd2hvb3BzLCB3cm9uZyBjb21taXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdob29wcywgd3JvbmcgY29tbWl0CgoyMDA1LTA5LTE0IDIyOjAxOjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZG9jcy9SRUFETUU6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBpcGVsaW5lLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luZmVhdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGdldGJpdHMuc2dtbDoKCSAgbm90ZXMgb24gZG9jdW1lbnRpbmcgZWxlbWVudHMgYW5kIHBsdWdpbnMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG5vdGVzIG9uIGRvY3VtZW50aW5nIGVsZW1lbnRzIGFuZCBwbHVnaW5zCgoyMDA1LTA5LTE0IDE1OjE2OjMzICswMDAwICBNaWNoYWVsIFNtaXRoIDxtc21pdGhAeGlwaC5vcmc+CgoJKiBjb21tb246CgkqIGdzdC9NYWtlZmlsZS5hbToKCSAgUmVzdCBvZiB0aGUgZml4IGZvciAzMTYxNTU6IGRvbid0IGNvbmZ1c2UgTWluR1cgd2hlbiBydW5uaW5nIGdsaWItbWtlbnVtcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVzdCBvZiB0aGUgZml4IGZvciAzMTYxNTU6IGRvbid0IGNvbmZ1c2UgTWluR1cgd2hlbiBydW5uaW5nIGdsaWItbWtlbnVtcwoKMjAwNS0wOS0xMyAxNTowMzowNSArMDAwMCAgU3RldmUgTGhvbW1lIDxzdGV2ZS5saG9tbWVAZnJlZS5mcj4KCgkgIGZpbGUgZ3N0LXR5cGVmaW5kLnZjcHJvaiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0LXR5cGVmaW5kLnZjcHJvaiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDktMTMgMTQ6NDk6MjMgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBEb24ndCB1c2Ugd2luZG93cyBsaW5raW5nIGF0dHJpYnV0ZXMgaW4gTWluR1cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIERvbid0IHVzZSB3aW5kb3dzIGxpbmtpbmcgYXR0cmlidXRlcyBpbiBNaW5HVwoKMjAwNS0wOS0xMyAxMTowMDo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvZ3N0dXRpbHMuYzogQXBwYXJlbnRseSBwZW9wbGUgdGhpbmsgaXQncyBiZXR0ZXIgaWYgdGhpcyBmdW5jdGlvbiBkb2Vzbid0IHRyeSB0byBzZXQgdGhlIHN0YXRlIHRvIHdoYXRldmVyIHN0YXRlIHcuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChzZXRfc3RhdGVfYXN5bmNfdGhyZWFkX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2FzeW5jKToKCSAgQXBwYXJlbnRseSBwZW9wbGUgdGhpbmsgaXQncyBiZXR0ZXIgaWYgdGhpcyBmdW5jdGlvbiBkb2Vzbid0CgkgIHRyeSB0byBzZXQgdGhlIHN0YXRlIHRvIHdoYXRldmVyIHN0YXRlIHdhcyBhc2tlZCBmb3Igb24gdGhlIGZpcnN0CgkgIGNhbGwgdG8gdGhpcyBmdW5jdGlvbiBmb3IgYW55IG9iamVjdC4gIFNlcmlvdXNseS4KCjIwMDUtMDktMTIgMTg6MTQ6MDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIGEgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2FzeW5jIG1ldGhvZCB0aGF0IHNldHMgdGhlIHN0YXRlIGFuZCBzdGFydHMgYSB0aHJlYWQgdG8gbWFrZSBzdXJlIHRoZSBzdGF0ZSBjaGFuZ2UgY29tcGxlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwaXBlbGluZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChzZXRfc3RhdGVfYXN5bmNfdGhyZWFkX2Z1bmMpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2FzeW5jKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgYWRkIGEgZ3N0X2VsZW1lbnRfc2V0X3N0YXRlX2FzeW5jIG1ldGhvZCB0aGF0CgkgIHNldHMgdGhlIHN0YXRlIGFuZCBzdGFydHMgYSB0aHJlYWQgdG8gbWFrZSBzdXJlIHRoZSBzdGF0ZQoJICBjaGFuZ2UgY29tcGxldGVzIGFzIGJlc3QgYXMgaXQgY2FuCgoyMDA1LTA5LTEyIDE3OjAxOjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RwaXBlbGluZS5jOgoJICBjb2RpZnkgZGVzaWduK2JlaGF2aW91ciBpbiB0ZXN0c3VpdGUgYWZ0ZXIgZGlzY3Vzc2lvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29kaWZ5IGRlc2lnbitiZWhhdmlvdXIgaW4gdGVzdHN1aXRlIGFmdGVyIGRpc2N1c3Npb24KCjIwMDUtMDktMTIgMTY6MTA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy86IGFkZCBhIHF1b3RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXF1b3Rlcy54bWw6CgkgIGFkZCBhIHF1b3RlCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIGFkZCBzb21lIGRlYnVnCgoyMDA1LTA5LTEyIDEzOjQ1OjA0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC86IFJlbW92ZSB0aGUgcmVxdWlyZW1lbnQgZm9yIHN1Yi1jbGFzc2VzIHRvIGNhbGwgdGhlIHBhcmVudCBpbXBsZW1lbnRhdGlvbiBvZiBwcmVwYXJlX291dHB1dF9idWZmZXIgd2l0aCBhIHdyYXBwZS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJlcGFyZV9vdXRwdXRfYnVmKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgUmVtb3ZlIHRoZSByZXF1aXJlbWVudCBmb3Igc3ViLWNsYXNzZXMgdG8gY2FsbCB0aGUgcGFyZW50CgkgIGltcGxlbWVudGF0aW9uIG9mIHByZXBhcmVfb3V0cHV0X2J1ZmZlciB3aXRoIGEgd3JhcHBlciBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0dGFnbGlzdC5oOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgRml4ICNkZWZpbmUgd3JhcHBlcgoKMjAwNS0wOS0xMSAxOToyMjoyMyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDogbW9yZSBkb2MgY2xlYW51cHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgbW9yZSBkb2MgY2xlYW51cHMKCjIwMDUtMDktMTEgMTM6MDc6MjUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogZ3N0L2dzdHZhbHVlLmg6CgkgIGRvYyBidWlsZCBjbGVhbiwgaHVycmF5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb2MgYnVpbGQgY2xlYW4sIGh1cnJheQoKMjAwNS0wOS0xMSAxMjo1NzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlcy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RidXMuaDoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNsb2NrLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgIHZhcmlvdXMgZG9jIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YXJpb3VzIGRvYyBmaXhlcwoKMjAwNS0wOS0xMSAxMjowMjowMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIGZpeCBzaWxseSBidWcgdGhhdCBjYXVzZWQgYnVpbGQgdG8gZmFpbCB3aGVuIGNoZWNrIGlzIG1pc3NpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBzaWxseSBidWcgdGhhdCBjYXVzZWQgYnVpbGQgdG8gZmFpbCB3aGVuIGNoZWNrIGlzIG1pc3NpbmcKCjIwMDUtMDktMTEgMTI6MDE6MTIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZG9jcy9nc3QvOiByZWFycmFuZ2UgZ3N0dmFsdWUgc2VjdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSAgcmVhcnJhbmdlIGdzdHZhbHVlIHNlY3Rpb24KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3N0YXRlX2dldF9uYW1lKToKCSAgTk9ORSAtPiBWT0lECgkgICogZ3N0L2dzdHZhbHVlLmM6IChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBkb2MgdXBkYXRlcwoKMjAwNS0wOS0xMSAxMTo1NzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkgIGRlYnVnIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyBmaXhlcwoKMjAwNS0wOS0wOSAyMzo0NToxNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QtbGlicy9jb250cm9sbGVyLmM6IEhlYWRlciBpbmNsdWRlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJICBIZWFkZXIgaW5jbHVkZSBmaXguCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2RlZmF1bHRfcHJlcGFyZV9idWYpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgU29tZSBtb3JlIGJhc2V0cmFuc2Zvcm0gY2hhbmdlcyBhbmQgZml4ZXMgdG8gZW5hYmxlIHN1Yi1jbGFzc2VzCgkgIHRoYXQgbW9kaWZ5IGJ1ZmZlciBtZXRhZGF0YSBvbmx5LgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9jbGFzc19pbml0KSwKCSAgKGdzdF9jYXBzZmlsdGVyX2luaXQpLCAoZ3N0X2NhcHNmaWx0ZXJfdHJhbnNmb3JtX2lwKSwKCSAgKGdzdF9jYXBzZmlsdGVyX3ByZXBhcmVfYnVmKToKCSAgSWYgdGhlIG91dHB1dCBwYWQgaGFzIGZpeGVkIGFsbG93ZWQgY2FwcyBhbmQgaW5wdXQgYnVmZmVycwoJICBkb24ndCBoYXZlIGFueSwgc2V0IHRoZSBmaXhlZCBjYXBzIG9uIG91dGdvaW5nIGJ1ZmZlcnMuCgoyMDA1LTA5LTA5IDE4OjA1OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSAgb2JqZWN0IGRlYnVnZ2luZyBpcyBnb29kCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvYmplY3QgZGVidWdnaW5nIGlzIGdvb2QKCjIwMDUtMDktMDkgMTc6NDI6MjAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogTWFrZSB0aGUgZXJyb3IgYSBsaXR0bGUgY2xlYXJlciB3aGVuIHRoZSB0ZXN0IGZhaWxzIGJlY2F1c2UgaWRlbnRpdHkgbWFkZSBhIGNvcHkgb2YgdGhlIGJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIE1ha2UgdGhlIGVycm9yIGEgbGl0dGxlIGNsZWFyZXIgd2hlbiB0aGUgdGVzdCBmYWlscyBiZWNhdXNlCgkgIGlkZW50aXR5IG1hZGUgYSBjb3B5IG9mIHRoZSBidWZmZXIuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgTmV3IHN5bWJvbHMgaW4gZ3N0YmFzZXRyYW5zZm9ybS5oCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZGVmYXVsdF9wcmVwYXJlX2J1ZiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3VuaXRfc2l6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRfcGFzc3Rocm91Z2gpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9pbl9wbGFjZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfaW5fcGxhY2UpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgQ2hhbmdlIEJhc2VUcmFuc2Zvcm0gdG8gc2VwYXJhdGUgaW5fcGxhY2Ugb3BlcmF0ZSBmcm9tIHNhbWVfY2FwcwoJICBvdXRwdXQuIGluX3BsYWNlIGltcGxpZXMgdGhhdCB0aGUgZWxlbWVudCBjYW4gcGVyZm9ybSB0aGUgdHJhbnNmb3JtCgkgIG9uIGluY29taW5nIGJ1ZmZlcnMgaW4tcGxhY2UsIGV2ZW4gaWYgdGhlIGNhcHMgb24gdGhlIG91dHB1dCBhcmUKCSAgZGlmZmVyZW50LgoJICBTdWItY2xhc3MgZWxlbWVudHMgY2FuIG5vdyBpbXBsZW1lbnQgc3BlY2lhbCBidWZmZXIgYWxsb2NhdGlvbgoJICBtZXRob2RzIGZvciBvdXRnb2luZyBidWZmZXJzIGlmIHRoZXkgd2lzaCB0by4KCSAgQmlnIGRvY3VtZW50YXRpb24gYWRkaXRpb24uCgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9pcCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgIENoYW5nZXMgZm9yIGJhc2V0cmFuc2Zvcm0gbW9kaWZpY2F0aW9ucy4KCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6IChnc3RfZmRzcmNfaW5pdCksIChnc3RfZmRzcmNfY3JlYXRlKToKCSAgQ29tcGlsZSBmaXguIEV4dHJhIGRlYnVnIG91dHB1dC4KCjIwMDUtMDktMDkgMTU6MTk6MjQgKzAwMDAgIFN0ZXZlIExob21tZSA8c3RldmUubGhvbW1lQGZyZWUuZnI+CgoJICBmaWxlIGdzdGNvbnRyb2wudmNwcm9qIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBnc3Rjb250cm9sLnZjcHJvaiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDktMDkgMTQ6MzQ6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdHBhZC5jOiBhZGQgdGVzdHMgZm9yIHZhbGlkIHBhZCBuYW1pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAobmFtZV9pc192YWxpZCksCgkgIChnc3RfcGFkX3N1aXRlKToKCSAgYWRkIHRlc3RzIGZvciB2YWxpZCBwYWQgbmFtaW5nCgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6IChnc3RfY2hlY2tfbG9nX21lc3NhZ2VfZnVuYyksCgkgIChnc3RfY2hlY2tfbG9nX2NyaXRpY2FsX2Z1bmMpOgoJICBhZGQgQVNTRVJUX1dBUk5JTkcKCSAgcmVtb3ZlIHByaW50aW5nIG9mIGNvZGUsIGl0IGlzIGZyYWdpbGUgd2hlbiB0aGUgY29kZSBjb250YWlucwoJICAlIGFuZCB0aGUgbGluZSBudW1iZXIgaXMgZW5vdWdoIGluZm8KCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3RlbXBsYXRlX25ldyk6CgkgIGZpeCBtZW1sZWFrcwoKMjAwNS0wOS0wOSAxMzoyODowNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkgIGFuZCB0aGUgY2hhbmdlbG9nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhbmQgdGhlIGNoYW5nZWxvZwoKMjAwNS0wOS0wOSAxMzoyNjo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHNheSB3aGF0IENIRUNLIGZsYWdzIHdlIHVzZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHNheSB3aGF0IENIRUNLIGZsYWdzIHdlIHVzZQoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaW50ZXJwb2xhdGlvbi5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BsdWdpbl9pbmZvKToKCSAgd2UgZG9uJ3QgdXNlIGRhc2hlcyBpbiBoZWFkZXIgbmFtZXMKCjIwMDUtMDktMDkgMTI6MDI6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svOiBhZGRpbmcgYSB0ZXN0IGZvciBwaXBlbGluZXMgYW5kIHN0YXRlIGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0L2dzdHBpcGVsaW5lLmM6IChwb3BfbWVzc2FnZXMpLCAoR1NUX1NUQVJUX1RFU1QpLAoJICAoZ3N0X3BpcGVsaW5lX3N1aXRlKSwgKG1haW4pOgoJICBhZGRpbmcgYSB0ZXN0IGZvciBwaXBlbGluZXMgYW5kIHN0YXRlIGNoYW5nZXMKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdldF9zdGF0ZV9mdW5jKToKCSAgYWRkIHNvbWUgZGVidWdnaW5nCgkgICogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cCBzcGVjIGZpbGUKCjIwMDUtMDktMDggMTc6MjM6NTcgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzcmMuaDoKCSAgVmFyaW91cyBmaXhlcyBmb3IgdW5zZWVrYWJsZSwgdW5tbWFwYWJsZSwgYW5kIG5vbi1ub3JtYWwgZmlsZXMsIHNvIHRoYXQgZmFsbGJhY2sgdG8gcmVhZCgpIHJhdGhlciB0aGFuIG1tYXAoKSB3b3Jrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFZhcmlvdXMgZml4ZXMgZm9yIHVuc2Vla2FibGUsIHVubW1hcGFibGUsIGFuZCBub24tbm9ybWFsIGZpbGVzLCBzbyB0aGF0CgkgIGZhbGxiYWNrIHRvIHJlYWQoKSByYXRoZXIgdGhhbiBtbWFwKCkgd29ya3MuCgkgIEFsbG93IG5ld3NlZ21lbnQgZXZlbnRzIHdpdGggc3RhcnQgPT0gZW5kLCBzbyB0aGF0IGNhc2VzIHdoZXJlIHRoYXQncwoJICBjb3JyZWN0IHdvcmsgKGUuZy4gZmlsZXNyYyBvbiBhIHplcm8tc2l6ZSBmaWxlKS4KCjIwMDUtMDktMDggMTE6NDU6MTIgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgVXBkYXRlIHRoZSBtYW51YWwgc2VjdGlvbiBvbiBzdGF0ZSBjaGFuZ2VzIGZvciB3aW5nbydzIG5ldyBBUEkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFVwZGF0ZSB0aGUgbWFudWFsIHNlY3Rpb24gb24gc3RhdGUgY2hhbmdlcyBmb3Igd2luZ28ncyBuZXcgQVBJCgoyMDA1LTA5LTA3IDE1OjIyOjI5ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwbHVnaW4uYzogQ2FsbCBnX21vZHVsZV9jbG9zZSB3aGVuIHdlIGRvbid0IGxvYWQgdGhlIG1vZHVsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIENhbGwgZ19tb2R1bGVfY2xvc2Ugd2hlbiB3ZSBkb24ndCBsb2FkIHRoZSBtb2R1bGUKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJICAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfcHJvcGVydHkpOgoJICBQb3J0IGxlYWsgZml4IGZyb20gMC44CgoyMDA1LTA5LTA3IDE0OjA4OjQ2ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBwby9QT1RGSUxFUy5pbjoKCSAgbW9yZSByZW5hbWUgZml4aW5nIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSByZW5hbWUgZml4aW5nIC4uLgoKMjAwNS0wOS0wNyAxMzoyMjoxNiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgcmVuYW1lZCBnc3R0YWcgLT4gZ3N0dGFnbGlzdCwgZ3N0dGFnaW50ZXJmYWNlIC0+IGdzdHRhZ3NldHRlciBpbmxpbmVkIGRvY3MgZm9yIGdzdHRyYWNlLCBnc3R0cmFzaHN0YWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhY2Uuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdC5oOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3R0YWcuYzoKCSAgKiBnc3QvZ3N0dGFnLmg6CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJICAqIGdzdC9nc3R0YWdpbnRlcmZhY2UuaDoKCSAgKiBnc3QvZ3N0dGFnbGlzdC5jOgoJICAqIGdzdC9nc3R0YWdsaXN0Lmg6CgkgICogZ3N0L2dzdHRhZ3NldHRlci5jOgoJICAqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSAgKiBnc3QvZ3N0dHJhY2UuYzoKCSAgKiBnc3QvZ3N0dHJhY2UuaDoKCSAgKiBnc3QvZ3N0dHJhc2hzdGFjay5jOgoJICByZW5hbWVkIGdzdHRhZyAtPiBnc3R0YWdsaXN0LCBnc3R0YWdpbnRlcmZhY2UgLT4gZ3N0dGFnc2V0dGVyCgkgIGlubGluZWQgZG9jcyBmb3IgZ3N0dHJhY2UsIGdzdHRyYXNoc3RhY2sKCjIwMDUtMDktMDcgMTI6MzU6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC86IHNwbGl0dGVkIGdzdHR5cGVmaW5kIGludG8gZ3N0dHlwZWZpbmQsIGdzdHR5cGVmaW5kZmFjdG9yeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGJ1ZmZlcnN0b3JlLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0Lmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgICogZ3N0L2dzdHR5cGVmaW5kZmFjdG9yeS5jOiAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF90eXBlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jbGFzc19pbml0KSwgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9pbml0KSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9kaXNwb3NlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV91bmxvYWRfdGh5c2VsZiksCgkgIChnc3RfdHlwZV9maW5kX2xvYWRfcGx1Z2luKSwgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9nZXRfbGlzdCksCgkgIChnc3RfdHlwZV9maW5kX2ZhY3RvcnlfZ2V0X2NhcHMpLAoJICAoZ3N0X3R5cGVfZmluZF9mYWN0b3J5X2dldF9leHRlbnNpb25zKSwKCSAgKGdzdF90eXBlX2ZpbmRfZmFjdG9yeV9jYWxsX2Z1bmN0aW9uKToKCSAgKiBnc3QvZ3N0dHlwZWZpbmRmYWN0b3J5Lmg6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJICBzcGxpdHRlZCBnc3R0eXBlZmluZCBpbnRvIGdzdHR5cGVmaW5kLCBnc3R0eXBlZmluZGZhY3RvcnkKCjIwMDUtMDktMDcgMTA6MDY6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6IEZpeCBhIHJhY2UgY29uZGl0aW9uIHdoZXJlYnkgdGhlIHBhZCdzIHRhc2sgZnVuY3Rpb24gaXMgZW50ZXJlZC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOiBGaXggYSByYWNlCgkgIGNvbmRpdGlvbiB3aGVyZWJ5IHRoZSBwYWQncyB0YXNrIGZ1bmN0aW9uIGlzIGVudGVyZWQgYmVmb3JlIHRoZQoJICBwYWRfbW9kZSB2YXJpYWJsZSB3YXMgc2V0LgoKMjAwNS0wOS0wNiAyMjo1NzowNSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IENhdGNoIG1pc2JlaGF2aW5nIHBhZF9hbGxvYyBmdW5jdGlvbnMgdGhhdCBkb24ndCBzZXQgdXAgY2FwcyBhbmQgZG8gaXQgZm9yIHRoZW0uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKToKCSAgQ2F0Y2ggbWlzYmVoYXZpbmcgcGFkX2FsbG9jIGZ1bmN0aW9ucyB0aGF0IGRvbid0CgkgIHNldCB1cCBjYXBzIGFuZCBkbyBpdCBmb3IgdGhlbS4KCjIwMDUtMDktMDYgMjI6MDM6MDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IHRlc3QgZm9yIHBpcGUhPU5VTEwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKHJ1bl9waXBlbGluZSk6CgkgIHRlc3QgZm9yIHBpcGUhPU5VTEwKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJICAqIGdzdC9nc3RtZW1jaHVuay5jOgoJICAqIGdzdC9nc3RwYXJzZS5jOgoJICAqIGdzdC9nc3R0YWcuYzoKCSAgKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmM6CgkgICogZ3N0L2dzdHR5cGVmaW5kLmg6CgkgIGlubGluZWQgbW9yZSBkb2NzCgoyMDA1LTA5LTA2IDE4OjE4OjQ4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSAgYWRkIGEgY2hlY2sgZm9yIGEgZ2hvc3RwYWQgdGhhdCBkb2Vzbid0IGhhdmUgYSB0YXJnZXQgYmVpbmcgbGlua2VkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBjaGVjayBmb3IgYSBnaG9zdHBhZCB0aGF0IGRvZXNuJ3QgaGF2ZSBhIHRhcmdldCBiZWluZyBsaW5rZWQKCjIwMDUtMDktMDYgMTQ6MTE6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKPT09IHJlbGVhc2UgMC45LjIgPT09CgoyMDA1LTA5LTA2IDE0OjAyOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVBRE1FOgoJKiBSRUxFQVNFOgoJKiBjb25maWd1cmUuYWM6CgkgIHJlbGVhc2luZyAwLjkuMgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVsZWFzaW5nIDAuOS4yCgoyMDA1LTA5LTA2IDExOjQ1OjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSogY29tbW9uOgoJICB1cGRhdGUgcmVhZG1lIHdpdGggZXhwbGFuYXRpb24gb2YgbW9kdWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHJlYWRtZSB3aXRoIGV4cGxhbmF0aW9uIG9mIG1vZHVsZXMKCjIwMDUtMDktMDYgMDk6NTI6MjMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvcmFuZG9tL0NoYW5nZUxvZy0wLjg6CgkgIGNoYW5nZWxvZyBzcGxpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2hhbmdlbG9nIHNwbGl0CgoyMDA1LTA5LTA1IDE3OjU1OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGx1Z2luLnNnbWw6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1haW50ZW5hbmNlIHVwZGF0ZXMKCjIwMDUtMDktMDUgMTc6NTM6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGRpbmcgLWJhZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkaW5nIC1iYWQKCjIwMDUtMDktMDUgMTY6NTQ6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lio6IGFuZCB1cGRhdGUgdG8gbmV3ZXIgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6IGFuZCB1cGRhdGUgdG8gbmV3ZXIgQVBJLgoJICBJbmNpZGVudGFsbHkgdGhleSBzaG91bGQgYmUgYSBiaXQgZmFzdGVyIG5vdyB0aGF0IHRoZXkgZG9uJ3QgaGF2ZQoJICB0byBwYXJzZSB0aGUgY2Fwcy4KCjIwMDUtMDktMDUgMTY6NTI6NTYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5Lio6IFVtLi4uIHJlc3VycmVjdC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6IFVtLi4uIHJlc3VycmVjdC4uLgoKMjAwNS0wOS0wNSAxNjozNjo0NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuKjogUmVtb3ZlIGZyb20gQ1ZTLCB0aGV5IHdlcmUgcmVwbGFjZWQgYnkgdGhlIGxpYnhtbCByZWdpc3RyeSBhIHdoaWxlIGJhY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDktMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0eG1scmVnaXN0cnkuaDoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOiBSZW1vdmUgZnJvbSBDVlMsIHRoZXkgd2VyZQoJICByZXBsYWNlZCBieSB0aGUgbGlieG1sIHJlZ2lzdHJ5IGEgd2hpbGUgYmFjawoKMjAwNS0wOS0wNSAxMTo1NDo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nZW5lcmljLy5naXRpZ25vcmU6CgkqIGNoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiBkb2NzL1JFQURNRToKCSogZXhhbXBsZXMvcHdnLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZ3N0Ly5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSAgbWFpbnRlbmFuY2UgdXBkYXRlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFpbnRlbmFuY2UgdXBkYXRlcwoKMjAwNS0wOS0wNSAwOTozODozOCArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgUmV2ZXIgdG8gMS44MCB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBhcyBHc3RVdGlscyBpcyBub3QgYXMgZGVhZCBhcyBpdCBzZWVtZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmVyIHRvIDEuODAgdmVyc2lvbiBvZiB0aGlzIGZpbGUgYXMgR3N0VXRpbHMgaXMgbm90IGFzIGRlYWQgYXMgaXQgc2VlbWVkCgoyMDA1LTA5LTA1IDA5OjIzOjQ0ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIHJlbW92ZSBHc3RVdGlscyBtZW50aW9uIGFzIGl0IGlzIG5vdyBnb25lCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgR3N0VXRpbHMgbWVudGlvbiBhcyBpdCBpcyBub3cgZ29uZQoKMjAwNS0wOS0wNCAxMTowMTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2stdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY2hlY2sucGMuaW46CgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgbmVlZCB0byBhZGQgLWxjaGVjayB0byB0aGUgcGtnY29uZmlnIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG5lZWQgdG8gYWRkIC1sY2hlY2sgdG8gdGhlIHBrZ2NvbmZpZyBmaWxlCgoyMDA1LTA5LTAzIDE3OjM2OjIwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwbHVnaW4uYzoKCSAgZml4IGZvciBhIGNyaXRpY2FsIHdoZW4gYSBtb2R1bGUgcmV0dXJucyBOVUxMIG9uIG9wZW5pbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBmb3IgYSBjcml0aWNhbCB3aGVuIGEgbW9kdWxlIHJldHVybnMgTlVMTCBvbiBvcGVuaW5nCgoyMDA1LTA5LTAzIDE3OjAwOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdHBsdWdpbi5jOgoJKiBnc3QvZ3N0cGx1Z2luLmg6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSAgYWRkIGEgc291cmNlIHBsdWdpbiBkZXNjcmlwdGlvbiBmaWVsZCwgdG8gcmVwcmVzZW50IHRoZSBzb3VyY2UgbW9kdWxlIHRoaXMgcGx1Z2luIGlzIGEgcGFydCBvZi4gIEJ5IGRlZmF1bHQgR1NUX1BMVUdJLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBzb3VyY2UgcGx1Z2luIGRlc2NyaXB0aW9uIGZpZWxkLCB0byByZXByZXNlbnQgdGhlIHNvdXJjZQoJICBtb2R1bGUgdGhpcyBwbHVnaW4gaXMgYSBwYXJ0IG9mLiAgQnkgZGVmYXVsdCBHU1RfUExVR0lOX0RFRklORQoJICB3aWxsIHNldCBpdCB0byBQQUNLQUdFLCB3aGljaCBpcyBhdXRvbWFrZSdzIGlkZWEgb2YgdGhlIG5hbWUgb2YKCSAgdGhlIHNvdXJjZSBwcm9qZWN0LgoKMjAwNS0wOS0wMyAxNjoxNjoxNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb21tb246CgkqIGRvY3MvaHRtbGluc3RhbGwubWFrOgoJICBmaXggZGlzdGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZGlzdGNoZWNrCgoyMDA1LTA5LTAzIDE0OjIwOjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIE1ha2VmaWxlLmFtOgoJKiBkb2NzL2h0bWxpbnN0YWxsLm1hazoKCSAgZW5hYmxlIGRvY3MgYnVpbGQgZm9yIGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZW5hYmxlIGRvY3MgYnVpbGQgZm9yIGRpc3RjaGVjawoKMjAwNS0wOS0wMyAxMzo1NDoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL3BsdWdpbnMvLmdpdGlnbm9yZToKCSogZG9jcy9wbHVnaW5zL01ha2VmaWxlLmFtOgoJKiBkb2NzL3BsdWdpbnMvZ3N0ZG9jLW1rZGI6CgkqIGRvY3MvcGx1Z2lucy9nc3Rkb2MtbWt0bXBsOgoJKiBkb2NzL3BsdWdpbnMvZ3N0ZG9jLXNjYW5vYmo6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1kb2NzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvcGx1Z2lucy9nc3RyZWFtZXItcGx1Z2lucy50eXBlcy5pbjoKCSogZG9jcy9wbHVnaW5zL3RtcGwvYWMzZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2FjM3BhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2F1ZGlvc2NhbGUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvY29iaW4uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZHZkc3JjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2V4YW1wbGUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0YXZpZW5jb2Rlci5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RqcGVnLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdGpwZWdkZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0anBlZ2VuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnMWVuY29kZXIuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZzJlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBlZzJwbGF5LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdG1wZWdfcGxheS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3RtcGVnYXVkaW8uc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0bXBnMTIzLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHBhcnNlYXUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0cGFyc2Vhdmkuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0cGFyc2V3YXYuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0cmVhbWVyLXBsdWdpbnMtdW51c2VkLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHNwZWN0cnVtLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHY0bHNyYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R3aW5jb2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9nc3R3aW5kZWMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvZ3N0d2luZW5jLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHhhLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL2dzdHhpbmcuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbWVkaWFuLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wMXZpZGVvcGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXAydmlkZW9wYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcDNwYXJzZS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9tcGVnMXBhcnNlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL21wZWcycGFyc2Uuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvbXBlZzJzdWJ0LnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3J0anBlZ2RlYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9ydGpwZWdlbmMuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc21vb3RoLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3Ntb290aHdhdmUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc3BpbmRlbnRpdHkuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvc3RlcmVvLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3N5bmFlc3RoZXNpYS5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC9zeXN0ZW1fZW5jb2RlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZjZHNyYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92aWRlb3NjYWxlLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZpZGVvc2luay5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92b2x1bWUuc2dtbDoKCSogZG9jcy9wbHVnaW5zL3RtcGwvdm9yYmlzZGVjLnNnbWw6CgkqIGRvY3MvcGx1Z2lucy90bXBsL3ZvcmJpc2VuYy5zZ21sOgoJKiBkb2NzL3BsdWdpbnMvdG1wbC92dW1ldGVyLnNnbWw6CgkgIHJlbW92ZSBvbGQgcGx1Z2lucyBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgb2xkIHBsdWdpbnMgZG9jcwoKMjAwNS0wOS0wMyAxMzo0OTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBhdXRvZ2VuLnNoOgoJKiBjb21tb246CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9NYWtlZmlsZS5hbToKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvaHRtbGluc3RhbGwubWFrOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSogZG9jcy9wd2cvTWFrZWZpbGUuYW06CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGNsZWFuIHVwIGRvY3MgYnVpbGQgYSBsaXR0bGU7IGhhdmUgZG9jZGlyIGJlIGFuIG92ZXJyaWRhYmxlIGluc3RhbGwgbG9jYXRpb247IHNlcGFyYXRlIGd0ay1kb2MgYW5kIGRvY2Jvb2sgYml0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgZG9jcyBidWlsZCBhIGxpdHRsZTsgaGF2ZSBkb2NkaXIgYmUgYW4gb3ZlcnJpZGFibGUgaW5zdGFsbCBsb2NhdGlvbjsgc2VwYXJhdGUgZ3RrLWRvYyBhbmQgZG9jYm9vayBiaXRzCgoyMDA1LTA5LTAyIDIzOjM2OjI0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3R1cmkuaDoKCSAgd2hpdGVzcGFjZSBjbGVhbnVwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSBjbGVhbnVwcwoKMjAwNS0wOS0wMiAyMzoxNzoyNiArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFkZCBjb21tZW50LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wYWRfYnVmZmVyX2FsbG9jKToKCSAgQWRkIGNvbW1lbnQuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZV9zaW5rX2luaXQpLAoJICAoZ3N0X2Zha2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBNYWtlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiB0aHJlYWQtc2FmZS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FsbG9jX2J1ZmZlcik6CgkgIFNldCBvZmZzZXQgb24gZ2VuZXJpYyBidWZmZXIgYWxsb2NhdGVkIGJ5IGZhbGxiYWNrLgoKMjAwNS0wOS0wMiAyMzowMzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0dHJhc2hzdGFjay5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgoyMDA1LTA5LTAyIDIxOjM3OjU1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBydW4gdGhlIHdpbmdvLW1hZ2ljIHNjcmlwdCBhZ2FpbnN0IHRoZSBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KSwKCSAgKGdzdF9jb250cm9sbGVyX2ZpbmRfY29udHJvbGxlZF9wcm9wZXJ0eSk6CgkgIHJ1biB0aGUgd2luZ28tbWFnaWMgc2NyaXB0IGFnYWluc3QgdGhlIGRvY3MKCjIwMDUtMDktMDIgMTg6MzY6MDkgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSAgcmVtb3ZlZCBmaWxlIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmVkIGZpbGUgYWdhaW4KCjIwMDUtMDktMDIgMTc6MjM6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1lcmdlZCBlbGVtZW50ZGV0YWlscyBkb2NzIGludG8gZWxlbWVudGZhY3RvcnkgZG9jcyBpbmxpbmVkIGJvdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvLmN2c2lnbm9yZToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRkZXRhaWxzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJICAqIGdzdC9nc3QuYzoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkgIG1lcmdlZCBlbGVtZW50ZGV0YWlscyBkb2NzIGludG8gZWxlbWVudGZhY3RvcnkgZG9jcwoJICBpbmxpbmVkIGJvdGgKCjIwMDUtMDktMDIgMTY6NDQ6NTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlbGVtZW50Lmg6IEFkZCBtYWdpY2FsIHBpeGllIGR1c3QgdG8gbWFrZSBnbGliLW1rZW51bXMgY29uc2lkZXIgdGhpcyBlbnVtIGFuIGVudW0gYW5kIG5vdCBhIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOiBBZGQgbWFnaWNhbCBwaXhpZSBkdXN0IHRvIG1ha2UgZ2xpYi1ta2VudW1zCgkgIGNvbnNpZGVyIHRoaXMgZW51bSBhbiBlbnVtIGFuZCBub3QgYSBmbGFncy4KCjIwMDUtMDktMDIgMTY6MTc6MjMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIG1vcmUgZG9jcyBpbmxpbmVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGl0ZXJhdG9yLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtYWNyb3Muc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHJlYWxwYWQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0c3lzdGVtY2xvY2suc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6CgkgICogZ3N0L2dzdG1hY3Jvcy5oOgoJICAqIGdzdC9nc3RtZW1jaHVuay5jOgoJICAqIGdzdC9nc3RtZW1jaHVuay5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOgoJICAqIGdzdC9nc3RyZWdpc3RyeXBvb2wuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkgIG1vcmUgZG9jcyBpbmxpbmVkCgoyMDA1LTA5LTAyIDE1OjQyOjAwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5oIChHc3RTdGF0ZSk6IFJlbmFtZWQgZnJvbSBHc3RFbGVtZW50U3RhdGUsIGNoYW5nZWQgdG8gYmUgYSBub3JtYWwgZW51bSBpbnN0ZWFkIG9mIGZsYWdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOS0wMiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5oIChHc3RTdGF0ZSk6IFJlbmFtZWQgZnJvbSBHc3RFbGVtZW50U3RhdGUsCgkgIGNoYW5nZWQgdG8gYmUgYSBub3JtYWwgZW51bSBpbnN0ZWFkIG9mIGZsYWdzLgoJICAoR3N0U3RhdGVDaGFuZ2VSZXR1cm4pOiBSZW5hbWVkIGZyb20gR3N0RWxlbWVudFN0YXRlUmV0dXJuLCBuYW1lcwoJICBtdW5nZWQgdG8gYmUgR1NUX1NUQVRFX0NIQU5HRV8qLgoJICAoR1NUX1NUQVRFX0NIQU5HRSk6IFJlbmFtZWQgZnJvbSBHU1RfU1RBVEVfVFJBTlNJVElPTiwgdXBkYXRlZCB0bwoJICB3b3JrIHdpdGggdGhlIG5ldyBzdGF0ZSByZXByZXNlbnRhdGlvbi4KCSAgKEdzdFN0YXRlQ2hhbmdlKTogTmV3IGVudW1lcmF0aW9uIG9mIHBvc3NpYmxlIHN0YXRlIHRyYW5zaXRpb25zLgoJICBSZXBsYWNlcyBHU1RfU1RBVEVfRk9PX1RPX0JBUiB3aXRoIEdTVF9TVEFURV9DSEFOR0VfRk9PX1RPX0JBUi4KCSAgKEdzdEVsZW1lbnRDbGFzczo6Y2hhbmdlX3N0YXRlKTogUGFzcyB0aGUgR3N0U3RhdGVDaGFuZ2UgYWxvbmcgYXMKCSAgYW4gYXJndW1lbnQuIEhlbHBzIGxhbmd1YWdlIGJpbmRpbmdzLCBzbyB0aGV5IGRvbid0IGhhdmUgdG8gdXNlCgkgIHRyaWNreSBsb2NrLW5lZWRpbmcgbWFjcm9zIGxpa2UgR1NUX1NUQVRFX0NIQU5HRSAoKS4KCSAgKiBzY3JpcHRzL3VwZGF0ZS1zdGF0ZXMgKGZpbGUpOiBOZXcgc2NyaXB0LiBSdW4gaXQgb24gYSBmaWxlIHRvCgkgIHVwZGF0ZSBpdCBmb3Igc3RhdGUgbmFtaW5nIGFuZCBBUEkgY2hhbmdlcy4gVXBkYXRlcyBmaWxlcyBpbgoJICBwbGFjZS4KCSAgKiBBbGwgZmlsZXMgdXBkYXRlZCBmb3IgdGhlIG5ldyBBUEkuCgoyMDA1LTA5LTAyIDEyOjExOjU0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cCBzcGVjIHNvbWUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgc3BlYyBzb21lIG1vcmUKCjIwMDUtMDktMDIgMTI6MDg6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0LzogZml4IGEgYnVuY2ggb2YgdW5jaGVja2VkIHJldHVybiB2YWx1ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRyYWNlLmM6IChnc3RfdHJhY2VfZmx1c2gpLCAoZ3N0X3RyYWNlX3RleHRfZmx1c2gpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3V0aWxfc2V0X3ZhbHVlX2Zyb21fc3RyaW5nKSwKCSAgKGdzdF91dGlsX3NldF9vYmplY3RfYXJnKToKCSAgZml4IGEgYnVuY2ggb2YgdW5jaGVja2VkIHJldHVybiB2YWx1ZXMKCSAgKiB0b29scy9nc3QtY29tcGxldGUuYzogKG1haW4pOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cCBhIGxpdHRsZQoKMjAwNS0wOS0wMSAxOTowNjozOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvdG1wbC8uZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSAgdXBkYXRlZCAuY3ZzaWdub3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB1cGRhdGVkIC5jdnNpZ25vcmUKCjIwMDUtMDktMDEgMTg6MTI6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay4qOiBIYW5kbGUgbmV3c2VnbWVudHMgbW9yZSBjb3JyZWN0bHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIEhhbmRsZSBuZXdzZWdtZW50cyBtb3JlIGNvcnJlY3RseS4KCSAgKiBnc3QvZ3N0YnVzLmM6CgkgIEZpeCBkb2NzLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KToKCSAgQSBuZXdzZWdtZW50IGNhbm5vdCBoYXZlIGEgc3RhcnRfdGltZSBvZiAtMQoKMjAwNS0wOS0wMSAxNjo1MzoxNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIHdpbjMyL2dzdGVudW10eXBlcy4qOiBVcGRhdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmM6CgkgICogd2luMzIvZ3N0ZW51bXR5cGVzLmg6CgkgIFVwZGF0ZQoKMjAwNS0wOC0zMSAyMTowMTozNSArMDAwMCAgTWljaGFlbCBTbWl0aCA8bXNtaXRoQHhpcGgub3JnPgoKCSogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgUmVtb3ZlIGV4dHJhbmVvdXMgJ2NvJyBmcm9tIGN2cyBjb21tYW5kIGluIFBXRywgYXMgcmVwb3J0ZWQgb24gaXJjLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlIGV4dHJhbmVvdXMgJ2NvJyBmcm9tIGN2cyBjb21tYW5kIGluIFBXRywgYXMgcmVwb3J0ZWQgb24gaXJjLgoKMjAwNS0wOC0zMSAxODo0NTo0MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOiBmaXhlZCBib29sZWFuIGFnYWluCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgZml4ZWQgYm9vbGVhbiBhZ2FpbgoKMjAwNS0wOC0zMSAxNToyNzo1NSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6IGFkZCAtZ29vZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkgIGFkZCAtZ29vZAoJICAqIGdzdC9nc3RldmVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICByZW1vdmUgd3JvbmcgZG9jcwoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfbGlua19maWx0ZXJlZCk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIGFkZCBnc3RfZWxlbWVudF9saW5rX2ZpbHRlcmVkCgoyMDA1LTA4LTMxIDE0OjA4OjQ1ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIG1vcmUgZG9jcywgZml4ZWQgZG91YmxlIGlkLXJlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXJyb3Iuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGZpbHRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJICAqIGdzdC9nc3RlcnJvci5jOgoJICAqIGdzdC9nc3RlcnJvci5oOgoJICAqIGdzdC9nc3RmaWx0ZXIuYzoKCSAgKiBnc3QvZ3N0dXJpLmM6CgkgICogZ3N0L2dzdHVyaXR5cGUuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0eG1sLmM6CgkgIGlubGluZWQgbW9yZSBkb2NzLCBmaXhlZCBkb3VibGUgaWQtcmVmCgoyMDA1LTA4LTMxIDEzOjUzOjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBQYXNzdGhyb3VnaCBlbGVtZW50cyBkb24ndCBuZWVkIHRoZSBjYXBzIGFzIHRoZXkgZG9uJ3QgY2FyZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBQYXNzdGhyb3VnaCBlbGVtZW50cyBkb24ndCBuZWVkIHRoZSBjYXBzIGFzIHRoZXkgZG9uJ3QgY2FyZS4KCjIwMDUtMDgtMzEgMTM6NTA6NDAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERvbid0IGxlYWsgcmVmY291bnRzIG9uIGJ1ZmZlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbik6CgkgIERvbid0IGxlYWsgcmVmY291bnRzIG9uIGJ1ZmZlcnMuCgoyMDA1LTA4LTMxIDEzOjQxOjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS4qOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgd2UgYXJlIG5vdCBuZWdvdGlhdGVkIG1vcmUgZ3JhY2VmdWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUgbm90IG5lZ290aWF0ZWQgbW9yZSBncmFjZWZ1bGx5LgoKMjAwNS0wOC0zMSAxMjo1NTo1NCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IFNldCBSRUFET05MWSBmbGFnIG9uIG1tYXAnZWQgYnVmZmVycywgb3RoZXJ3aXNlIGdzdF9idWZmZXJfbWFrZV93cml0YWJsZSgpIHdvbid0IHdvcmsgcHJvcC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2luaXQpLAoJICAoZ3N0X2ZpbGVfc3JjX21hcF9yZWdpb24pOgoJICBTZXQgUkVBRE9OTFkgZmxhZyBvbiBtbWFwJ2VkIGJ1ZmZlcnMsIG90aGVyd2lzZQoJICBnc3RfYnVmZmVyX21ha2Vfd3JpdGFibGUoKSB3b24ndCB3b3JrIHByb3Blcmx5ICgjMzE0NzA4KS4KCjIwMDUtMDgtMzEgMTA6MDc6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IHBhc3N0aHJvdWdoIGVsZW1lbnRzIGNhbiBldmVuIGRvIGlucGxhY2Ugb24gbm9uIHdyaXRhYmxlIGJ1ZmZlcnMgKGFzIHRoZXkgZG9uJ3QgdG91Y2ggdGguLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBwYXNzdGhyb3VnaCBlbGVtZW50cyBjYW4gZXZlbiBkbyBpbnBsYWNlIG9uIG5vbiB3cml0YWJsZQoJICBidWZmZXJzIChhcyB0aGV5IGRvbid0IHRvdWNoIHRoZW0pLgoKMjAwNS0wOC0zMSAxMDowMDowOCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBtb3JlIHRlc3RzIChoZWhlIEkgaGF2ZSB0aGUgbW9zdCkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoZ3N0X3Rlc3RfbW9ub19zb3VyY2VfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF90ZXN0X21vbm9fc291cmNlX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfdGVzdF9tb25vX3NvdXJjZV9jbGFzc19pbml0KSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgbW9yZSB0ZXN0cyAoaGVoZSBJIGhhdmUgdGhlIG1vc3QpCgkgICogZ3N0L2dzdGJ1cy5jOgoJICBkZXNjcmliZSBwb3BwaW5nIG1lc3NhZ2VzIHdoZW51c2luZyBtdWxsdGlwbGUgc291cmNlcwoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSAgKGdzdF9jb250cm9sbGVkX3Byb3BlcnR5X3NldF9pbnRlcnBvbGF0aW9uX21vZGUpLAoJICAoZ3N0X2NvbnRyb2xsZWRfcHJvcGVydHlfbmV3KToKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkgICogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaW50ZXJwb2xhdGlvbi5jOgoJICBpbXBsZW1lbnQgYm9vbGVhbiBwcm9wZXJ0aWVzCgoyMDA1LTA4LTMxIDA4OjU3OjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYzogQ2Fubm90IGFzc2VydCB0aGF0IHRoZSByZWZjb3VudCBoYXMgdG8gYmUgcG9zaXRpdmUgc2luY2UgYSBkaXNwb3NlZCBvYmplY3QgY2FuIGJlIHJlc3VyZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfbWluaV9vYmplY3RfcmVmKToKCSAgQ2Fubm90IGFzc2VydCB0aGF0IHRoZSByZWZjb3VudCBoYXMgdG8gYmUgcG9zaXRpdmUKCSAgc2luY2UgYSBkaXNwb3NlZCBvYmplY3QgY2FuIGJlIHJlc3VyZWN0ZWQuCgoyMDA1LTA4LTMxIDA4OjM4OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBSZXZlcnQgY2hhbmdlLCBuZWVkIHRvIGZpcnN0IGZpeCBiYWRseSBiZWhhdmluZyBhcHBzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2luaXQpOgoJICBSZXZlcnQgY2hhbmdlLCBuZWVkIHRvIGZpcnN0IGZpeCBiYWRseSBiZWhhdmluZwoJICBhcHBzLgoKMjAwNS0wOC0zMCAxOTo0NTozOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2VsZW1lbnRzLzogQWN0aXZhdGUgcGFkcyBiZWZvcmUgdXNpbmcgdGhlbS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOiAoc2V0dXBfZmFrZXNyYyk6CgkgICogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKHNldHVwX2lkZW50aXR5KToKCSAgQWN0aXZhdGUgcGFkcyBiZWZvcmUgdXNpbmcgdGhlbS4KCjIwMDUtMDgtMzAgMTk6Mjk6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IEZsdXNoaW5nIG91dCAwIGJ5dGVzIGlzIG9rIGZvciB0aGlzIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9mbHVzaCk6CgkgIEZsdXNoaW5nIG91dCAwIGJ5dGVzIGlzIG9rIGZvciB0aGlzIGZ1bmN0aW9uLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBubyBuZXdzZWdtZW50IGdpdmVzIGEgd2FybmluZyBhbmQgc2V0cyB0aGUgc3RhcnQvc3RvcCB0bwoJICBpbnZhbGlkLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCk6CgkgIFNvbWUgZGVidWcgaW5mby4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiAoZ3N0X21pbmlfb2JqZWN0X3JlZik6CgkgIENoZWNrIHJlZmNvdW50IGhlcmUgdG9vLgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfaW5pdCk6CgkgIFBhZHMgYXJlIGluaXRpYWxseSBmbHVzaGluZyBhbmQgcmVmdXNpbmcgZGF0YS4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2xpbmtfcGFkc19maWx0ZXJlZCk6CgkgIFdoZW4gYWRkaW5nIGEgY2Fwc2ZpbHRlciBlbGVtZW50IG1ha2Ugc3VyZSBpdCBoYXMgdGhlCgkgIHNhbWUgc3RhdGUgYXMgdGhlIHBhcmVudCBiaW4uCgoyMDA1LTA4LTMwIDE3OjIzOjE5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBtb3JlIGRvY3MgYW5kIHR3byBtb3JlIGlubGluZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkgICogZ3N0L2dzdGJ1cy5oOgoJICAqIGdzdC9nc3Rmb3JtYXQuYzoKCSAgKiBnc3QvZ3N0Zm9ybWF0Lmg6CgkgICogZ3N0L2dzdHZlcnNpb24uaC5pbjoKCSAgbW9yZSBkb2NzIGFuZCB0d28gbW9yZSBpbmxpbmVkCgoyMDA1LTA4LTMwIDE3OjEyOjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IERvbid0IHN5bmMgdG8gY2xvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KToKCSAgRG9uJ3Qgc3luYyB0byBjbG9jay4KCjIwMDUtMDgtMzAgMDg6MTc6NDggKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6IHVsdHJhbDMzdCBmdW5jMTBucyBkZXNlcnZlIHRvIGFwcGVhciBpbiB0aGUgZG9jcyBhY3R1YWx5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIHVsdHJhbDMzdCBmdW5jMTBucyBkZXNlcnZlIHRvIGFwcGVhciBpbiB0aGUgZG9jcyBhY3R1YWx5CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSAgKiBnc3QvZ3N0Y29tcGF0Lmg6CgkgICogZ3N0L2dzdGNvbmZpZy5oLmluOgoJICBpbmxpbmVkIG1vcmUgZG9jcwoKMjAwNS0wOC0yOSAyMTo0MTowMiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCBhbmQgZXh0ZW5kZWQgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBnc3QvZ3N0cXVlcnkuYzoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgaW5saW5lZCBhbmQgZXh0ZW5kZWQgZG9jcwoKMjAwNS0wOC0yOSAxOTo1OTo1MiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiBtb3JlIHRlc3RzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgbW9yZSB0ZXN0cwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvbGlicy90bXBsL2dzdGRhdGFwcm90b2NvbC5zZ21sOgoJICBpbmNsdWRlIHBhdGggZml4ZXMKCSAgKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzogKG1haW4pOgoJICBjb250cm9sbGVyIGV4YW1wbGUgd29ya3Mgbm93CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIGRvYyBmaXhlcwoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgIHNob3cgcGFyYW0gc3BlYyBmbGFncwoKMjAwNS0wOC0yOSAxNjoxMDozNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSk6IE5ldyAzNzMzdCBmdW5jdDEwbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmMgKGdzdF91dGlsX3VpbnQ2NF9zY2FsZSk6IE5ldyAzNzMzdCBmdW5jdDEwbi4KCjIwMDUtMDgtMjkgMDk6NTI6NDQgKzAwMDAgIE1pY2hhZWwgU21pdGggPG1zbWl0aEB4aXBoLm9yZz4KCgkqIGRvY3MvZmFxL2N2cy54bWw6CgkgIE1pbm9yIHVwZGF0ZXMgdG8gZGV2ZWxvcGVyIGN2cyBpbnN0cnVjdGlvbnMsIHRvIG1vcmUgY2xvc2VseSBtYXRjaCB3aGF0IHRoZSBmcmVlZGVza3RvcCBwZW9wbGUgd2FudC4gQWxzbywgdGVzdCBteSBjdi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWlub3IgdXBkYXRlcyB0byBkZXZlbG9wZXIgY3ZzIGluc3RydWN0aW9ucywgdG8gbW9yZSBjbG9zZWx5IG1hdGNoIHdoYXQKCSAgdGhlIGZyZWVkZXNrdG9wIHBlb3BsZSB3YW50LiBBbHNvLCB0ZXN0IG15IGN2cyBjb21taXQgYWNjZXNzLi4uCgoyMDA1LTA4LTI4IDE3OjQ1OjU4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuaCAoR1NUX0JPSUxFUlBMQVRFX0ZVTEwpOiBQcm90b3R5cGUgaW5zdGFuY2VfaW5pdCBhcyBoYXZpbmcgdHdvIGFyZ3VtZW50cyBpbnN0ZWFkIG9mIGp1c3Qgb25lLiBBbGxvd3Mgc3UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmggKEdTVF9CT0lMRVJQTEFURV9GVUxMKTogUHJvdG90eXBlIGluc3RhbmNlX2luaXQKCSAgYXMgaGF2aW5nIHR3byBhcmd1bWVudHMgaW5zdGVhZCBvZiBqdXN0IG9uZS4gQWxsb3dzIHN1cGVyY2xhc3NlcwoJICB0byBhY2Nlc3MgaW5mb3JtYXRpb24gb24gc3ViY2xhc3NlcyAtLSBzZWUgdGhlIHRlcnJpYmxlIGZvcigpIGxvb3AKCSAgaW4gZ3R5cGUuYzpnX3R5cGVfY3JlYXRlX2luc3RhbmNlIGZvciB0aGUgcmVhc29uIHdoeS4gQWxsIGNhbGxlcnMKCSAgY2hhbmdlZC4KCjIwMDUtMDgtMjcgMTA6NTc6MDAgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OiB1cGRhdGUgaW5mbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgdXBkYXRlIGluZm8KCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgYWRkZWQgZGVzY3JpcHRpb25zIGZvciBidXMgYW5kIG1lc3NhZ2UKCSAgaW5saW5lIGNhcHMgYW5kIGNsb2NrIGRvY3MKCjIwMDUtMDgtMjYgMjI6MzI6NTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IGRvYyBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIGRvYyBmaXhlcwoKMjAwNS0wOC0yNiAyMToyMzo1MSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBmaXggZGl2LWJ5LXplcm8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKToKCSAgZml4IGRpdi1ieS16ZXJvCgoyMDA1LTA4LTI2IDE0OjIxOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChydW5fcGlwZWxpbmUpOiBDaGVjayBlbGVtZW50X3NldF9zdGF0ZSdzIHJldHVybiB2YWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHJ1bl9waXBlbGluZSk6IENoZWNrCgkgIGVsZW1lbnRfc2V0X3N0YXRlJ3MgcmV0dXJuIHZhbC4KCSAgKHRlc3RfMl9lbGVtZW50cyk6IEFkZCB0ZXN0IHRoYXQncyBiZWVuIGRpc2FibGVkIGZvciBtb250aHMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IENsZWFudXBzLiBBZGQgY2FuLWFjdGl2YXRlLXB1c2ggYW5kCgkgIGNhbi1hY3RpdmF0ZS1wdWxsIHByb3BlcnRpZXMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogQ2xlYW51cHMuIEFkZCBjYW4tYWN0aXZhdGUtcHVzaCBhbmQKCSAgY2FuLWFjdGl2YXRlLXB1bGwgcHJvcGVydGllcy4gSW1wbGVtZW50IGlzX3NlZWthYmxlIHNvIGZha2VzcmMgY2FuCgkgIG9wZXJhdGUgaW4gcHVsbCBtb2RlLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKEdzdEJhc2VTaW5rKTogUmVtb3ZlIGhhcy1sb29wLCBoYXMtY2hhaW4KCSAgcHJvcGVydGllcy4KCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGUsIGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCkKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCk6IE1ha2UgYWN0aXZhdGlvbiBtb2RlIGNob29zaW5nIHdvcmsuCgkgIENsZWFudXBzLgoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbiwgZ3N0X2Jhc2Vfc2lua19sb29wKTogQXNzZXJ0IGFjdGl2YXRpb24gbW9kZQoJICBpcyByaWdodC4gTWFrZSBwdWxsIG1vZGUgd29yay4gUG9zdCBhbiBlb3MgYmVmb3JlIHBhdXNpbmcgaW4gcHVsbAoJICBtb2RlLgoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOiBQYXkgYXR0ZW50aW9uIHRvIHRoZSBjb3JlJ3MKCSAgY2hhbmdlX3N0YXRlKCkgcmV0dXJuIHZhbC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKEdzdEJhc2VTcmMpOiBSZW1vdmUgaGFzLWxvb3AsCgkgIGhhcy1nZXRyYW5nZSBwcm9wZXJ0aWVzLiBDbGVhbnVwcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmggKEdzdEJhc2VTcmMpOiBSZW1vdmUgaGFzX2xvb3AsCgkgIGhhc19nZXRyYW5nZSBhbmQgcmVwbGFjZSB3aXRoIGNhbl9hY3RpdmF0ZV9wdWxsIGFuZAoJICBjYW5fYWN0aXZhdGVfcHVzaC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oIChHc3RCYXNlU2luayk6IFJlYXJyYW5nZSBmaWVsZHMsIGFkZAoJICBsb2NraW5nIGNvbW1lbnRzLiBSZW1vdmUgaGFzX2xvb3AsIGhhc19jaGFpbiBhbmQgcmVwbGFjZSB3aXRoCgkgIGNhbl9hY3RpdmF0ZV9wdWxsIGFuZCBjYW5fYWN0aXZhdGVfcHVzaC4KCjIwMDUtMDgtMjYgMTM6Mjg6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQWRkIG1ldGFkYXRhIHJlYWRpbmcgZXhhbXBsZSB0aGF0IGxvb3BzIG92ZXIgYSBsaXN0IG9mIGZpbGVuYW1lcywgZHVtcGluZyBhbnkgdGFncyBmb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIGV4YW1wbGVzL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL21ldGFkYXRhL01ha2VmaWxlLmFtOgoJICAqIGV4YW1wbGVzL21ldGFkYXRhL3JlYWQtbWV0YWRhdGEuYzogKG1lc3NhZ2VfbG9vcCksCgkgIChoYXZlX3BhZF9oYW5kbGVyKSwgKG1ha2VfcGlwZWxpbmUpLCAocHJpbnRfdGFnKSwgKG1haW4pOgoJICBBZGQgbWV0YWRhdGEgcmVhZGluZyBleGFtcGxlIHRoYXQgbG9vcHMgb3ZlciBhIGxpc3Qgb2YgZmlsZW5hbWVzLAoJICBkdW1waW5nIGFueSB0YWdzIGZvdW5kLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfZGlzcG9zZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2Rpc3Bvc2UpOgoJICBSZWxlYXNlIGEgZmV3IHBvdGVudGlhbGx5LWhlbGQgcmVmZXJlbmNlcyBpbiBkaXNwb3NlLgoKMjAwNS0wOC0yNiAxMzoyMTo0NyArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy9nc3QvdG1wbC9nc3RtaW5pb2JqZWN0LnNnbWw6IGRvICpub3QqIGFkZCB0bXBsLyouc2dtbCBmaWxlcyB0byBDVlMhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJICBkbyAqbm90KiBhZGQgdG1wbC8qLnNnbWwgZmlsZXMgdG8gQ1ZTIQoKMjAwNS0wOC0yNiAxMzoxNzo1NCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgbGlicy9nc3QvYnl0ZXN0cmVhbS86IHJlbW92aW5nIG9ic29sZXRlIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vLmN2c2lnbm9yZToKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYWRhcHRlci5jOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYWRhcHRlci5oOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5jOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5oOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vZmlsZXBhZC5jOgoJICAqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vZmlsZXBhZC5oOgoJICByZW1vdmluZyBvYnNvbGV0ZSBmaWxlcwoKMjAwNS0wOC0yNiAxMjo0ODoyOSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZG9jcy86IGRpc2FiZWQgYWRkaXRpb25hbCBpbmRleCBlbnRyaWVzIGFnYWluLCBhcyB0aGlzIG1ha2VzIGRvY3MtZ2VuIGp1c3Qgc2xvdyBhbmQgdGhleSBhcmVuJ3QgdXNlZnVsIHlldAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkgIGRpc2FiZWQgYWRkaXRpb25hbCBpbmRleCBlbnRyaWVzIGFnYWluLCBhcyB0aGlzIG1ha2VzIGRvY3MtZ2VuIGp1c3QKCSAgc2xvdyBhbmQgdGhleSBhcmVuJ3QgdXNlZnVsIHlldAoJICAqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkgIGxpdHRsZSAtc2VjdGlvbi50eHQgY2xlYW51cCBmb3IgbGlicwoKMjAwNS0wOC0yNiAxMTo1NjoxMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvYmFzZS86IGZpeCB1cCBzb21lIGRlYnVnZ2luZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICBmaXggdXAgc29tZSBkZWJ1Z2dpbmcKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGhhbmRsZSBhbmQgc3RvcmUgdGltZWQgTkVXU0VHTUVOVCBldmVudHMgc28gdGhhdCBzdWJjbGFzc2VzIHRoYXQKCSAgY2FsY3VsYXRlIHRpbWUgYnkgY291bnRpbmcgc2FtcGxlcyBoYXZlIGEgc2VnbWVudF9zdGFydCB0aW1lIHRoZXkKCSAgbmVlZCB0byBhZGQgdG8gdGhlaXIgdGltZXN0YW1wcyAtIHNlZSBhdWRpb3Jlc2FtcGxlCgoyMDA1LTA4LTI2IDExOjE5OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNvbW1vbjoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkgIHdoaXRlc3BhY2UsIGRvYyBhbmQgZGVidWcgZml4aW5nL2FkZGl0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd2hpdGVzcGFjZSwgZG9jIGFuZCBkZWJ1ZyBmaXhpbmcvYWRkaXRpb25zCgoyMDA1LTA4LTI1IDIzOjE3OjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBnc3QvZ3N0YmluLmg6IHJlbW92ZWQgJzsnIGZyb20gdGhlIGVuZCBvZiBtYWNybyBkZWZzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgcmVtb3ZlZCAnOycgZnJvbSB0aGUgZW5kIG9mIG1hY3JvIGRlZnMKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9nc3RidXMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoYWN0aXZhdGVfcGFkcyksCgkgIChnc3RfZWxlbWVudF9zYXZlX3RoeXNlbGYpOgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KToKCSAgKiBnc3QvZ3N0ZXZlbnQuaDoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgICogZ3N0L2dzdHByb2JlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBmaXhlZCBwYXJhbWV0ZXIgbmFtZSBtaXNtYXRjaGVzIGJldHdlZW4gc291cmNlLCBoZWFkZXIgYW5kIGRvY3MKCSAgYWRkZWQgc29tZSBtb3JlIGRvY3MsIHJlc29sdmVkIHRoZSBsYXN0IGJhdGNoIG9mIHVudXNlZCBlbGVtZW50cyBpbgoJICBkb2NzIChub3cgc29tZW9uZSBuZWVkcyB0byBkb2MgdGhlbSkKCjIwMDUtMDgtMjUgMjA6NTI6MDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJICByZXNwZWN0IG9yZGVyIG9mIHBsdWdpbiBkaXJzIHdoZW4gbG9hZGluZyBwbGx1Z2lucyBhbmQgcmVidWlsZGluZyByZWdpc3RyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVzcGVjdCBvcmRlciBvZiBwbHVnaW4gZGlycyB3aGVuIGxvYWRpbmcgcGxsdWdpbnMgYW5kIHJlYnVpbGRpbmcgcmVnaXN0cnkKCjIwMDUtMDgtMjUgMTk6MzY6MDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IENhY2hlIGNhcHMgdW5pdF9zaXplLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBDYWNoZSBjYXBzIHVuaXRfc2l6ZS4KCSAgTWFrZSBzdXJlIHdlIGNhbm5vdCBuZWdvdGlhdGUgdXAgYW5kIGRvd25zdHJlYW0gYXQgdGhlCgkgIHNhbWUgdGltZS4KCjIwMDUtMDgtMjUgMTg6NTU6MzQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkqIGdzdC9yZWdpc3RyaWVzL2dzdHhtbHJlZ2lzdHJ5LmM6CgkgIG1ha2UgcmVnaXN0cnkgcmVzcGVjdCBvcmRlciBvZiBHU1RfUExVR0lOX1BBVEg7IG1ha2UgdGhlIGluc3RhbGxlZCBsb2NhdGlvbiBnbyBsYXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIHJlZ2lzdHJ5IHJlc3BlY3Qgb3JkZXIgb2YgR1NUX1BMVUdJTl9QQVRIOyBtYWtlIHRoZSBpbnN0YWxsZWQgbG9jYXRpb24gZ28gbGFzdAoKMjAwNS0wOC0yNSAxODo1NDowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgYWRkIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBkb2NzCgoyMDA1LTA4LTI1IDE2OjI3OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9jaGVjay9nc3RjaGVjay5jOgoJKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIGEgdWludDY0IGNoZWNraW5nIG1ldGhvZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgdWludDY0IGNoZWNraW5nIG1ldGhvZAoKMjAwNS0wOC0yNSAxMzo1MjoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogQmUgYSBiaXQgbW9yZSBjb25zZXJ2YXRpdmUgYWJvdXQgdGhlIHBvc3RlZCBtZXNzYWdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBCZSBhIGJpdCBtb3JlIGNvbnNlcnZhdGl2ZSBhYm91dCB0aGUgcG9zdGVkIG1lc3NhZ2UuCgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19wb3N0KToKCSAgU29tZSBjbGVhbnVwcywgd2FybiB3cm9uZyByZXR1cm4gdmFsdWVzLgoKMjAwNS0wOC0yNSAxMDo1MToxNCArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBSZXZlcnQgdW5wb3B1bGFyIGNoYW5nZSBmb3IgR1NUX01FU1NBR0VfU1JDIHRvIEdPYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9maW5hbGl6ZSksIChfZ3N0X21lc3NhZ2VfY29weSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2VvcyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgICogdG9vbHMvZ3N0LW1kNXN1bS5jOiAoZXZlbnRfbG9vcCk6CgkgIFJldmVydCB1bnBvcHVsYXIgY2hhbmdlIGZvciBHU1RfTUVTU0FHRV9TUkMgdG8gR09iamVjdC4KCjIwMDUtMDgtMjUgMTA6MzU6NDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJ1ZmZlci5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBmaXggZG9jcyBieSBmaXhpbmcgZW51bSB0eXBlZGVmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggZG9jcyBieSBmaXhpbmcgZW51bSB0eXBlZGVmCgoyMDA1LTA4LTI1IDEwOjE2OjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgd2ltIGZpeGVkIHRoZSB0YXNrLCB5YXkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdpbSBmaXhlZCB0aGUgdGFzaywgeWF5CgoyMDA1LTA4LTI1IDEwOjAxOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogQ2xlYW51cCBjYW4gYmUgZG9uZSBhdCB0aGUgZW5kLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBDbGVhbnVwIGNhbiBiZSBkb25lIGF0IHRoZSBlbmQuCgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2dldF90eXBlKSwgKGdzdF90YXNrX2ZpbmFsaXplKSwKCSAgKGdzdF90YXNrX2Z1bmMpLCAoZ3N0X3Rhc2tfY2xlYW51cF9hbGwpLCAoZ3N0X3Rhc2tfc2V0X2xvY2spLAoJICAoZ3N0X3Rhc2tfZ2V0X3N0YXRlKSwgKGdzdF90YXNrX3N0YXJ0KSwgKGdzdF90YXNrX3BhdXNlKToKCSAgT2ggYm95Li4gVGhhbmtzIGZvciBmaW5kaW5nIHRoaXMsIFRob21hcy4KCjIwMDUtMDgtMjQgMjI6MDE6NDEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgZ3JtcGYsIGFub3RoZXIgdHJ5IHRvIGZpeCBpdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZ3JtcGYsIGFub3RoZXIgdHJ5IHRvIGZpeCBpdAoKMjAwNS0wOC0yNCAyMTo1NzowNSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJICBhbm90aGVyIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBmaXgKCjIwMDUtMDgtMjQgMjE6NDU6MTMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogYWRkZWQgbWlzc2luZyB0eXBlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIGFkZGVkIG1pc3NpbmcgdHlwZXMKCjIwMDUtMDgtMjQgMjE6MzU6NDMgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGFkZGVkIG1paXNzaW5nIGNsYXNzZXMgYW5kIHN5bWJvbHMgKDEyMyBtb3JlIHRvIGdvKSByZW1vdmVkIHJlbW92ZWQgc3ltYm9scyBmcm9tIHNlY3Rpb24gZmlsZSBmaXhlZCBtYW55IGRvYy1jb21tZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC8uY3ZzaWdub3JlOgoJICAqIGdzdC9nc3RiaW4uYzoKCSAgKiBnc3QvZ3N0aXRlcmF0b3IuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5oOgoJICBhZGRlZCBtaWlzc2luZyBjbGFzc2VzIGFuZCBzeW1ib2xzICgxMjMgbW9yZSB0byBnbykKCSAgcmVtb3ZlZCByZW1vdmVkIHN5bWJvbHMgZnJvbSBzZWN0aW9uIGZpbGUKCSAgZml4ZWQgbWFueSBkb2MtY29tbWVudHMKCjIwMDUtMDgtMjQgMjA6NDk6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiBNYWtlIHN1cmUgYWxsIHRhc2tzIGFyZSBzdG9wcGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nZW5lcmljL3N0YXRlcy5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIHN1cmUgYWxsIHRhc2tzIGFyZSBzdG9wcGVkLgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgVW5yZWYgYWZ0ZXIgdXNhZ2UgZm9yIHByb3BlciB2YWxncmluZGluZy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2ZpbmFsaXplKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgUmVhbGx5IHdhaXQgZm9yIHRoZSB0YXNrIHRvIHN0b3AgYmVmb3JlIGRlc3Ryb3lpbmcgdGhlCgkgIG11dGV4LgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBTbWFsbCBjbGVhbnVwcy4gRG9uJ3Qgc3RvcCB0aGUgdGFzayB3aGVuIHdlIGRpZCBub3Qgc3RhcnQKCSAgaXQuCgkgICogZ3N0L2dzdHRhc2suYzogKGdzdF90YXNrX2dldF90eXBlKSwgKGdzdF90YXNrX2luaXQpLAoJICAoZ3N0X3Rhc2tfZnVuYyksIChnc3RfdGFza19jbGVhbnVwX2FsbCksIChnc3RfdGFza19zZXRfbG9jayksCgkgIChnc3RfdGFza19nZXRfc3RhdGUpLCAoZ3N0X3Rhc2tfc3RhcnQpLCAoZ3N0X3Rhc2tfcGF1c2UpLAoJICAoZ3N0X3Rhc2tfam9pbik6CgkgICogZ3N0L2dzdHRhc2suaDoKCSAgUHJvdGVjdCB0aGUgc3RyZWFtIGxvY2sgd2l0aCB0aGUgb2JqZWN0IGxvY2suCgkgIERpc2FsbG93IHNldHRpbmcgdGhlIHN0cmVhbSBsb2NrIHdoZW4gcnVubmluZy4KCSAgQWRkIGNsZWFudXBfYWxsIHRvIHdhaXQgZm9yIHRoZSB0aHJlYWRwb29sIHRvIGZpbmlzaC4KCSAgUmVtb3ZlIGNvZGUgdG8gYXV0b2FsbG9jYXRlIGEgbXV0ZXggaWYgbm9uZSB3YXMgcHJvdmlkZWQuCgkgIEFkZCBfam9pbigpIHRvIHdhaXQgZm9yIGEgdGFzayB0byBzdG9wLgoJICBQcm90ZWN0IHRoZSB0aHJlYWQgcG9vbCB3aXRoIGEgZ2xvYmFsIGxvY2suCgoyMDA1LTA4LTI0IDE3OjU3OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogSGFuZGxlIG5ld3NlZ21lbnQgZXZlbnRzIGNvcnJlY3RseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2dldF90aW1lcyksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfYnVmZmVyKSwgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICBIYW5kbGUgbmV3c2VnbWVudCBldmVudHMgY29ycmVjdGx5LgoJICBEcm9wIGJ1ZmZlcnMgb3V0IG9mIHRoZSBzZWdtZW50IHJhbmdlLgoKMjAwNS0wOC0yNCAxNzoyNDoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRpc2FibGUgdGVzdCB3aGlsZSB3aW0gaXMgZml4aW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkaXNhYmxlIHRlc3Qgd2hpbGUgd2ltIGlzIGZpeGluZwoKMjAwNS0wOC0yNCAxNjo0NjoxMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLnBjLmluOgoJICBhZGQgcGx1Z2luc2RpciB0byBwa2djb25maWcgZmlsZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBwbHVnaW5zZGlyIHRvIHBrZ2NvbmZpZyBmaWxlcwoKMjAwNS0wOC0yNCAxNjo0MTo0NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0wOC0yNCAxNjowOTo1MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGFkZCBhIHRlc3QgdGhhdCBkb2VzIGEgYnVuY2ggb2Ygc3RhdGUgY2hhbmdlcyBvbiBlbGVtZW50cyBuZWVkcyBzb21lIGZpeGluZyBmb3IgdmFsZ3JpbmQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ2VuZXJpYy9zdGF0ZXMuYzogKEdTVF9TVEFSVF9URVNUKSwgKHN0YXRlc19zdWl0ZSksIChtYWluKToKCSAgYWRkIGEgdGVzdCB0aGF0IGRvZXMgYSBidW5jaCBvZiBzdGF0ZSBjaGFuZ2VzIG9uIGVsZW1lbnRzCgkgIG5lZWRzIHNvbWUgZml4aW5nIGZvciB2YWxncmluZAoJICAqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgIHdoaXRlc3BhY2UKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICBhZGQgcHJvdG90eXBlIGZvciBnc3RfY2Fwc19pc19lcXVhbF9maXhlZAoJICAqIGdzdC9nc3RwbHVnaW4uYzoKCSAgKiBnc3QvZ3N0cmVnaXN0cnlwb29sLmM6CgkgIGRvYyBmaXhlcwoKMjAwNS0wOC0yNCAxNTo0OTowMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5LmMgKGdzdF9xdWVyeV9uZXdfY29udmVydCk6IFNwZXcgaWYgd2UgdHJ5IHRvIGNvbnZlcnQgYSBuZWdhdGl2ZSB2YWx1ZS4gRG9lc24ndCBtYWtlIG11Y2ggc2Vuc2UuIE1vc3RseSB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RxdWVyeS5jIChnc3RfcXVlcnlfbmV3X2NvbnZlcnQpOiBTcGV3IGlmIHdlIHRyeSB0bwoJICBjb252ZXJ0IGEgbmVnYXRpdmUgdmFsdWUuIERvZXNuJ3QgbWFrZSBtdWNoIHNlbnNlLiBNb3N0bHkgdGhpcyBpcwoJICBoZXJlIHRvIGZvcmNlIGNhbGxlcnMgdG8gZW5zdXJlIC0xIG1hcHMgdG8gLTEuCgoyMDA1LTA4LTI0IDE1OjEwOjQxICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogV2VsbCBkb25lIHRvIE1pY2hhZWwgZm9yIGNhdGNoaW5nIG15IGRlbGliZXJhdGUgaW50cm9kdWN0aW9uIG9mIHRoaXMgc3BlbGxpbmcgbWlzdGFrZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtdHlwZXMueG1sOgoJICBXZWxsIGRvbmUgdG8gTWljaGFlbCBmb3IgY2F0Y2hpbmcgbXkgZGVsaWJlcmF0ZSBpbnRyb2R1Y3Rpb24KCSAgb2YgdGhpcyBzcGVsbGluZyBtaXN0YWtlLgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICBBZGQgR1NUX0VMRU1FTlRfVU5QQVJFTlRJTkcgdG8gcHJldmVudCByYWNlcyBzbyB0aGF0IHdlIGNhbgoJICB1bmxpbmsgcGFkcyBiZWZvcmUgcmVtb3ZpbmcgdGhlIGVsZW1lbnQgZnJvbSB0aGUgYmluLgoKMjAwNS0wOC0yNCAxMzo0OToyMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdC5jIChwYXJzZV9kZWJ1Z19saXN0KTogQWNjZXB0IGUuZy4gR1NUX0RFQlVHPTQgdG8gbWVhbiB0aGUgc2FtZSB0aGluZyBhcyBHU1RfREVCVUc9Kjo0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0LmMgKHBhcnNlX2RlYnVnX2xpc3QpOiBBY2NlcHQgZS5nLiBHU1RfREVCVUc9NCB0byBtZWFuCgkgIHRoZSBzYW1lIHRoaW5nIGFzIEdTVF9ERUJVRz0qOjQuCgkgIChwYXJzZV9kZWJ1Z19sZXZlbCwgcGFyc2VfZGVidWdfY2F0ZWdvcnkpOiBOZXcgaGVscGVyIHBhcnNlcnMuCgoyMDA1LTA4LTI0IDEzOjMzOjIxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogdXNlIGdib29sZWFuIHJldHVybiB2YWx1ZXMgYW5kIHBvaW50ZXJzIHRvIHNpemUgc28gd2UgY2FuIHVzZSB0aGUgZnVsbCBHU1RfQlVGRkVSX1NJWkUgci4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdW5pdF9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICB1c2UgZ2Jvb2xlYW4gcmV0dXJuIHZhbHVlcyBhbmQgcG9pbnRlcnMgdG8gc2l6ZSBzbyB3ZSBjYW4gdXNlIHRoZQoJICBmdWxsIEdTVF9CVUZGRVJfU0laRSByYW5nZSAoZ3VpbnQpIGZvciBidWZmZXIgc2l6ZXMKCSAgdXNlIEdzdFBhZERpcmVjdGlvbiBmb3IgdHJhbnNmb3JtX2NhcHMKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIHJlbmFtZSBnZXRfc2l6ZSB0byBnZXRfdW5pdF9zaXplIHNpbmNlIHRoYXQncyB3aGF0IGl0IGlzCgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogKGdzdF9jYXBzZmlsdGVyX3RyYW5zZm9ybV9jYXBzKToKCSAgdXNlIEdzdFBhZERpcmVjdGlvbiBmb3IgdHJhbnNmb3JtX2NhcHMKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3RfYnVmZmVyX25ld19hbmRfYWxsb2MpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBjbGVhbnVwIGFuZCBkZWJ1Z2dpbmcKCjIwMDUtMDgtMjQgMTM6MDQ6MzEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIEZpeGVkIGxvbmcgc3RhbmRpbmcgbWVtLWxlYWsKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2NsYXNzX2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKSwgKGFjdGl2YXRlX3BhZHMpLAoJICAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKToKCSAgKiB0b29scy9nc3QtY29tcHByZXAuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9lbGVtZW50X3Byb3BlcnRpZXNfaW5mbyk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllcyk6CgkgIEZpeGVkIGxvbmcgc3RhbmRpbmcgbWVtLWxlYWsKCjIwMDUtMDgtMjQgMTE6NTQ6MzcgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgQ2hhbmdlIEdTVF9NRVNTQUdFX1NSQyB0byBiZSBhIEdPYmplY3QgcmF0aGVyIHRoYW4gYSBHc3RPYmplY3QsIHNvIHRoYXQgYXBwbGljYXRpb25zIGNhbiBzZW5zaWJseSBwb3N0IGN1c3RvbSBtZXNzYWdlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9maW5hbGl6ZSksIChfZ3N0X21lc3NhZ2VfY29weSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2VvcyksIChnc3RfbWVzc2FnZV9uZXdfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3dhcm5pbmcpLCAoZ3N0X21lc3NhZ2VfbmV3X3RhZyksCgkgIChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCksIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9uZXdfc2VnbWVudF9kb25lKSwgKGdzdF9tZXNzYWdlX25ld19jdXN0b20pOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCk6CgkgICogdG9vbHMvZ3N0LW1kNXN1bS5jOiAoZXZlbnRfbG9vcCk6CgkgIENoYW5nZSBHU1RfTUVTU0FHRV9TUkMgdG8gYmUgYSBHT2JqZWN0IHJhdGhlciB0aGFuIGEgR3N0T2JqZWN0LCBzbwoJICB0aGF0IGFwcGxpY2F0aW9ucyBjYW4gc2Vuc2libHkgcG9zdCBjdXN0b20gbWVzc2FnZXMgd2l0aCByZWZlcmVuY2VzCgkgIHRvIHRoZWlyIG93biBvYmplY3RzLgoKMjAwNS0wOC0yNCAxMTo0NDoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogTWFueSBmaXhlcyBhbmQgbmV3IGZlYXR1cmVzIGFkZGVkIGJ5IFRob21hcy4gQ2FuIG5vdyBhbHNvIGRvIHRyYW5zZm9ybXMgd2l0aCB2YXJpYWJsZSBzaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9zaXplKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oOgoJICBNYW55IGZpeGVzIGFuZCBuZXcgZmVhdHVyZXMgYWRkZWQgYnkgVGhvbWFzLiBDYW4gbm93IGFsc28gZG8KCSAgdHJhbnNmb3JtcyB3aXRoIHZhcmlhYmxlIHNpemVzIGFuZCBhIGN1c3RvbSBmaXhhdGVfY2FwcyBmdW5jdGlvbi4KCjIwMDUtMDgtMjQgMTE6MzY6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9maXhhdGVfY2Fwcyk6IENoZWNrIGlmIHRoZSBjYXBzIGlzIGZpeGVkIGFscmVhZHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9maXhhdGVfY2Fwcyk6IENoZWNrIGlmIHRoZSBjYXBzIGlzIGZpeGVkCgkgIGFscmVhZHkuCgoyMDA1LTA4LTI0IDExOjIyOjMyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jOiBTb21lIGRlYnVnZ2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKToKCSAgU29tZSBkZWJ1Z2dpbmcuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIENhc3QgdG8gQ2xvY2tUaW1lIGJlZm9yZSBmb3JtYXR0aW5nIHRvIHRpbWUuCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIENsZWFudXBzLgoKMjAwNS0wOC0yMyAyMTozMjozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZ3JhY2VmdWxseSBoYW5kbGUgaGVscGVyIG1ldGhvZCBjYWxscyB0byBvYmplY3RzIHRoYXQgYXJlIG5vdCBiZWVpbmcgY29udHJvbGxlZCwgYWRkZWQgdGVzdCBjYXNlIGZvciB0aGF0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9jb250cm9sbGVyX3N1aXRlKToKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGdob3N0cGFkLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dXRpbHMuc2dtbDoKCSAgKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzogKGdzdF9vYmplY3Rfc2V0X2NvbnRyb2xsZXIpLAoJICAoZ3N0X29iamVjdF9zaW5rX3ZhbHVlcyksIChnc3Rfb2JqZWN0X2dldF92YWx1ZV9hcnJheXMpLAoJICAoZ3N0X29iamVjdF9nZXRfdmFsdWVfYXJyYXkpOgoJICBncmFjZWZ1bGx5IGhhbmRsZSBoZWxwZXIgbWV0aG9kIGNhbGxzIHRvIG9iamVjdHMgdGhhdCBhcmUgbm90IGJlZWluZwoJICBjb250cm9sbGVkLCBhZGRlZCB0ZXN0IGNhc2UgZm9yIHRoYXQKCjIwMDUtMDgtMjMgMTg6MTc6MDEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZXZlbnQuKjogU29tZSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQgYW5kIGRvYyBjbGVhbnVwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2NvcHkpLCAoZ3N0X2V2ZW50X25ld19jdXN0b20pLAoJICAoZ3N0X2V2ZW50X25ld19uZXdzZWdtZW50KSwgKGdzdF9ldmVudF9wYXJzZV9uZXdzZWdtZW50KSwKCSAgKGdzdF9ldmVudF9uZXdfdGFnKSwgKGdzdF9ldmVudF9wYXJzZV90YWcpLCAoZ3N0X2V2ZW50X25ld19xb3MpLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3FvcyksIChnc3RfZXZlbnRfbmV3X3NlZWspLAoJICAoZ3N0X2V2ZW50X3BhcnNlX3NlZWspOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBTb21lIG1vcmUgZGVidWdnaW5nIG91dHB1dCBhbmQgZG9jIGNsZWFudXBzLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KToKCSAgRml4IHBvc3NpYmxlIGRlYWRsb2NrLgoKMjAwNS0wOC0yMyAxNDoyNTo1NSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgYWRkZWQgYWJvdXQgMTAwIHN5bWJvbHMgZnJvbSBnc3RyZWFtZXItdW51c2VkLnR4dCB0byB0aGUgcmlnaHQgc2VjdGlvbnMgZml4ZWQgbW9yZSBicm9rZW4gY29tbWVudHMgYWRkZWQgR3N0QnVzIHRvIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZ3N0L2dzdGJpbi5oOgoJICAqIGdzdC9nc3RidXMuYzoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBhZGRlZCBhYm91dCAxMDAgc3ltYm9scyBmcm9tIGdzdHJlYW1lci11bnVzZWQudHh0IHRvIHRoZSByaWdodCBzZWN0aW9ucwoJICBmaXhlZCBtb3JlIGJyb2tlbiBjb21tZW50cwoJICBhZGRlZCBHc3RCdXMgdG8gZG9jcwoKMjAwNS0wOC0yMyAxMTo1Mzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgaW5saW5lZCBtb3JlIGRvYyBjb21tZW50cywgYWRkZWQgbWlzc2luZyBjb21tZW50cyBhbmQgZml4ZWQgY29tbWVudHMgZml4ZWQgdHlwb3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsLy5jdnNpZ25vcmU6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwgKGdzdF9iaW5fY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiB0b29scy9nc3QtbGF1bmNoLjEuaW46CgkgIGlubGluZWQgbW9yZSBkb2MgY29tbWVudHMsIGFkZGVkIG1pc3NpbmcgY29tbWVudHMgYW5kIGZpeGVkIGNvbW1lbnRzCgkgIGZpeGVkIHR5cG9zCgoyMDA1LTA4LTIzIDExOjM4OjI4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RidWZmZXIuYzogc29tZSBkZWJ1Z2dpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoZ3N0X2J1ZmZlcl9uZXdfYW5kX2FsbG9jKToKCSAgc29tZSBkZWJ1Z2dpbmcKCSAgKiBnc3QvZ3N0Y2Fwcy5oOgoJICB3aGl0ZXNwYWNlIGZpeGVzCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwgKGdzdF9wYWRfYWxsb2NfYnVmZmVyKToKCSAgbW9yZSBkZWJ1Z2dpbmcKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3RfY2Fwc19zdHJ1Y3R1cmVfZml4YXRlX2ZpZWxkX2Jvb2xlYW4pOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSAgYWRkIGEgZml4YXRlIGZ1bmN0aW9uIGZvciBib29sZWFuczsgYWRkIGEgRklYTUUgdGhhdCB0aGVzZSBmdW5jCgkgIG5hbWVzIHNob3VsZCBwcm9iYWJseSBiZSBnc3Rfc3RydWN0dXJlX2ZpeGF0ZV8qCgoyMDA1LTA4LTIyIDIxOjAzOjMzICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBwb3J0ZWQgZ3N0Y2hpbGRwcm94eSBvdmVyIGZyb20gMC44IHBvcnRlZCBnc3QtaW5zcGVjdCBmaXhlcyBhbmQgZW5oYW5jZW1lbnRzIG92ZXIgZnJvbSAwLjgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF90eXBlKSwKCSAgKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KSwKCSAgKGdzdF9iaW5fY2hpbGRfcHJveHlfZ2V0X2NoaWxkcmVuX2NvdW50KSwKCSAgKGdzdF9iaW5fY2hpbGRfcHJveHlfaW5pdCk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuYzogKGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRfYnlfbmFtZSksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X2NoaWxkX2J5X2luZGV4KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXRfY2hpbGRyZW5fY291bnQpLCAoZ3N0X2NoaWxkX3Byb3h5X2xvb2t1cCksCgkgIChnc3RfY2hpbGRfcHJveHlfZ2V0X3Byb3BlcnR5KSwgKGdzdF9jaGlsZF9wcm94eV9nZXRfdmFsaXN0KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9nZXQpLCAoZ3N0X2NoaWxkX3Byb3h5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfY2hpbGRfcHJveHlfc2V0X3ZhbGlzdCksIChnc3RfY2hpbGRfcHJveHlfc2V0KSwKCSAgKGdzdF9jaGlsZF9wcm94eV9jaGlsZF9hZGRlZCksIChnc3RfY2hpbGRfcHJveHlfY2hpbGRfcmVtb3ZlZCksCgkgIChnc3RfY2hpbGRfcHJveHlfYmFzZV9pbml0KSwgKGdzdF9jaGlsZF9wcm94eV9nZXRfdHlwZSk6CgkgICogZ3N0L2dzdGNoaWxkcHJveHkuaDoKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6IChwcmludF9pbnRlcmZhY2VzKSwKCSAgKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKSwgKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIHBvcnRlZCBnc3RjaGlsZHByb3h5IG92ZXIgZnJvbSAwLjgKCSAgcG9ydGVkIGdzdC1pbnNwZWN0IGZpeGVzIGFuZCBlbmhhbmNlbWVudHMgb3ZlciBmcm9tIDAuOAoKMjAwNS0wOC0yMiAxOTo0ODo0NiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWxzbyBjYWxsIHRoZSB0cmFuc2Zvcm0gZnVuY3Rpb24gaWYgd2UgaGF2ZSBBTlkgY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9oYW5kbGVfYnVmZmVyKToKCSAgQWxzbyBjYWxsIHRoZSB0cmFuc2Zvcm0gZnVuY3Rpb24gaWYgd2UgaGF2ZSBBTlkgY2Fwcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZXRfbmV3X3N0cmVhbV90aW1lKToKCSAgRml4IGRlYnVnIGluZm8uCgoyMDA1LTA4LTIyIDE5OjIyOjM0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19ldmVudF9oYW5kbGVyKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlcikKCSAgRG9uJ3QgcHJldGVuZCB0byBoYW5kbGUgc2VlayBldmVudHMgaWYgdGhlIHNvdXJjZSBpcyBub3Qgc2Vla2FibGUKCjIwMDUtMDgtMjIgMTg6NDg6NDggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVtb3ZlIGV4dHJhIHBhcmFtZXRlciB0byBkZWJ1ZyBvdXRwdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCk6CgkgIFJlbW92ZSBleHRyYSBwYXJhbWV0ZXIgdG8gZGVidWcgb3V0cHV0CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfYWN0aXZhdGVfcHVzaCk6CgkgIEZpeCBzZWVrIGV2ZW50IGhhbmRsaW5nLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgRG9uJ3Qgc3RhcnQgdGhlIHNyYyBwYWQgdGFzayBvbiBGTFVTSF9TVE9QIGlmIHRoZSBwYWQKCSAgaXNuJ3QgbGlua2VkLgoJICBEZWJ1ZyBjaGFuZ2VzLgoKMjAwNS0wOC0yMiAxNToxMjo1NiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmggKEdTVF9CT0lMRVJQTEFURV9XSVRIX0lOVEVSRkFDRSk6IE5ldyBnaGV0dG8gbWFjcm8sIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIGFuZCBnc3RpbXBsZW1lbnRzaW50ZXJmYWNlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTIyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3R1dGlscy5oIChHU1RfQk9JTEVSUExBVEVfV0lUSF9JTlRFUkZBQ0UpOiBOZXcgZ2hldHRvCgkgIG1hY3JvLCBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSBhbmQgZ3N0aW1wbGVtZW50c2ludGVyZmFjZSBmb3IgYQoJICBuZXcgdHlwZS4KCjIwMDUtMDgtMjIgMTU6MDg6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiBBZGRlZCBjaGVjayBmb3IgZ3N0X3N0YXRpY19jYXBzX2dldCgpIHJlZmNvdW50aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpOgoJICBBZGRlZCBjaGVjayBmb3IgZ3N0X3N0YXRpY19jYXBzX2dldCgpIHJlZmNvdW50aW5nLgoKMjAwNS0wOC0yMiAxNDozNTo0MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IE1ha2UgX3N0YXRpY19jYXBzX2dldCgpIHJlZmNvdW50aW5nIHNhbmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RjYXBzLmM6IChnc3Rfc3RhdGljX2NhcHNfZ2V0KSwgKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgIE1ha2UgX3N0YXRpY19jYXBzX2dldCgpIHJlZmNvdW50aW5nIHNhbmUuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIEFkZCBnX3JldHVybl92YWxfaWZfZmFpbCgpIHRvIHByb3RlY3QgYWdhaW5zdCBzZWdmYXVsdHMuCgoyMDA1LTA4LTIyIDEwOjM3OjAyICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBpbmxpbmVkIHJlbWFpbmluZyBkb2NzLCBhZGRlZCBtaXNzaW5nIGRvYyBjb21tZW50cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkgICogZ3N0L2dzdGV2ZW50LmM6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIGlubGluZWQgcmVtYWluaW5nIGRvY3MsIGFkZGVkIG1pc3NpbmcgZG9jIGNvbW1lbnRzCgoyMDA1LTA4LTIyIDA5OjI1OjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGVuIHByZXJvbGwgaXMgZG9uZSwgdXNlIHJlZmNvdW50IHJhbmdlIGNoZWNrIGZvciB0aGUgc2luawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHNpbmNlIHdlIGRvbid0IGtub3cgd2hlbiBwcmVyb2xsIGlzIGRvbmUsIHVzZSByZWZjb3VudCByYW5nZQoJICBjaGVjayBmb3IgdGhlIHNpbmsKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIG1hY3JvIGZvciBjaGVja2luZyByZWZjb3VudCByYW5nZQoKMjAwNS0wOC0yMSAxNjo1MzowOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgZmlndXJlIHRoaXMgb3V0IGZvciBIVCBtYWNoaW5lcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlndXJlIHRoaXMgb3V0IGZvciBIVCBtYWNoaW5lcwoKMjAwNS0wOC0yMSAxNToyMTo0OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RiaW4uYzoKCSAgc29tZSBmdW5reSBIVC9tdWx0aWNwdSB2cyBzaW5nbGUgZGlmZmVyZW5jZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc29tZSBmdW5reSBIVC9tdWx0aWNwdSB2cyBzaW5nbGUgZGlmZmVyZW5jZQoKMjAwNS0wOC0yMSAxNTowMToxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogY2xlYW4gdXAgZW52aXJvbm1lbnQgZm9yIHdoZW4gcmVnaXN0cnkgZ2V0cyBidWlsdCB2ZXJzdXMgd2hlbiBhY3R1YWwgdGVzdHMgYXJlIHJ1bjsgdmFsZ3JpbmQgc2VlbXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGNsZWFuIHVwIGVudmlyb25tZW50IGZvciB3aGVuIHJlZ2lzdHJ5IGdldHMgYnVpbHQgdmVyc3VzCgkgIHdoZW4gYWN0dWFsIHRlc3RzIGFyZSBydW47IHZhbGdyaW5kIHNlZW1zIHRvIG5vdCByZXBvcnQKCSAgbGVha3MgaWYgR1NUX1BMVUdJTl9QQVRIIGlzIHNldCB0byBzb21lIHNwZWNpZmljIHZhbHVlcwoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgYWRkIG1vcmUgcmVmY291bnRpbmcgY2hlY2tzOyBtYXliZSB0aGlzIGV4cG9zZXMgYQoJICBwcmVyb2xsIGxvY2sgYnVnID8KCSAgKiBjb21tb24vY2hlY2subWFrOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJICAqIGdzdC9nc3RiaW4uYzogKGJpbl9lbGVtZW50X2lzX3NlbWlfc2luayksIChnc3RfYmluX2dldF9zdGF0ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY3RpdmF0ZV9wdXNoKSwgKGdzdF9wYWRfY2hhaW4pOgoJICBhZGQvZml4IGRlYnVnZ2luZy93aGl0ZXNwYWNlCgoyMDA1LTA4LTIxIDExOjQwOjQ0ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RldmVudC5jOiBFciwgZG9uJ3QgY2FsbCBnc3RfYmluX3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UgeW91IGlkaW90LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnQuYzogKGV2ZW50X3Byb2JlKSwgKHRlc3RfZXZlbnQpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICBFciwgZG9uJ3QgY2FsbCBnc3RfYmluX3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UgeW91IGlkaW90LgoKMjAwNS0wOC0yMSAxMToxNTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgcnVuIHZhbGdyaW5kIHdpdGggcHJvcGVyIGVudgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcnVuIHZhbGdyaW5kIHdpdGggcHJvcGVyIGVudgoKMjAwNS0wOC0yMSAxMDo1NDo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogVXNlIENIRUNLX0NGTEFHUyBhbmQgQ0hFQ0tfTElCUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgVXNlIENIRUNLX0NGTEFHUyBhbmQgQ0hFQ0tfTElCUwoJICAqIGNoZWNrL2dzdC9nc3RldmVudC5jOiAoZXZlbnRfcHJvYmUpLCAodGVzdF9ldmVudCksCgkgIChHU1RfU1RBUlRfVEVTVCk6CgkgIERvbid0IGxlYWsgZXZlbnRzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19zdG9wKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdWxsKSwKCSAgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICBTcHJpbmtsZSBnc3RfYmFzZV9zcmNfc3RvcCBsaWJlcmFsbHkgYXJvdW5kIGVycm9yIHBhdGhzIHRvIGZpeAoJICBwcm9ibGVtcyByZXVzaW5nIGEgc291cmNlIGFmdGVyIGZhaWxlZCBzdGF0ZSBjaGFuZ2VzLgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6IChoZWxwZXJfZmluZF9wZWVrKSwKCSAgKGhlbHBlcl9maW5kX3N1Z2dlc3QpLCAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBFeHRyYSBkZWJ1ZyBvdXRwdXQuIERvbid0IHNlZ2ZhdWx0IG9uIEdTVF9QQURfR0VUUkFOR0VGVU5DID0gTlVMTAoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSAgTWlncmF0ZSBwYXJ0IG9mIHRoZSBkb2NzIGZyb20gdGhlIFNHTUwgZmlsZS4gV2FpdCBmb3IgZW5zb25pYyB0bwoJICB0ZWxsIG1lIGhvdyBJIGRpZCBpdCB3cm9uZyA7KQoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgIEV4dHJhIHJvYnVzdG5lc3MgdG8gc3RhdGUgY2hhbmdlcyBiZXR3ZWVuIGZpbGVzLgoKMjAwNS0wOC0yMSAxMDozOTozOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogZG9uJ3QgdmFsZ3JpbmQgdGhlIGNvbnRyb2xsZXIgdGVzdCAtIGl0J3MgbGVha2luZyAtIFN0ZWZhbiwgSEVMUAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgZG9uJ3QgdmFsZ3JpbmQgdGhlIGNvbnRyb2xsZXIgdGVzdCAtIGl0J3MgbGVha2luZyAtIFN0ZWZhbiwgSEVMUAoJICAqIGdzdC9jaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX21lc3NhZ2VfZXJyb3IpLAoJICAoZ3N0X2NoZWNrX2NoYWluX2Z1bmMpLCAoZ3N0X2NoZWNrX3NldHVwX2VsZW1lbnQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX2VsZW1lbnQpLCAoZ3N0X2NoZWNrX3NldHVwX3NyY19wYWQpLAoJICAoZ3N0X2NoZWNrX3RlYXJkb3duX3NyY19wYWQpLCAoZ3N0X2NoZWNrX3NldHVwX3NpbmtfcGFkKSwKCSAgKGdzdF9jaGVja190ZWFyZG93bl9zaW5rX3BhZCk6CgkgICogZ3N0L2NoZWNrL2dzdGNoZWNrLmg6CgkgIGFkZCBhIGJ1bmNoIG9mIG1ldGhvZHMgdG8gc2V0IHVwIGVsZW1lbnRzLCBhbmQgc3JjIGFuZCBzaW5rIHBhZHMKCSAgKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6IChzZXR1cF9mYWtlc3JjKSwgKGNsZWFudXBfZmFrZXNyYyk6CgkgICogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzogKHNldHVwX2lkZW50aXR5KSwgKGNsZWFudXBfaWRlbnRpdHkpLAoJICAoR1NUX1NUQVJUX1RFU1QpOgoJICB1c2UgdGhlbQoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgICogZ3N0L2dzdHRhZy5oOgoJICB3aGl0ZXNwYWNlL2RvYyBmaXhlcwoKMjAwNS0wOC0yMCAyMDozMDozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIG1ha2UgR1NUX0VMRU1FTlRfRVJST1Igbm90IGRvIEdTVF9FUlJPUl9PQkpFQ1QgLSB0aGVzZSBlcnJvcnMgc2hvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGFuZCBub3QgYWx3YXlzIHByaS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBHU1RfRUxFTUVOVF9FUlJPUiBub3QgZG8gR1NUX0VSUk9SX09CSkVDVCAtIHRoZXNlIGVycm9ycyBzaG91bGQKCSAgYmUgaGFuZGxlZCBieSB0aGUgYXBwbGljYXRpb24gYW5kIG5vdCBhbHdheXMgcHJpbnRlZCBhcyB3ZWxsCgoyMDA1LTA4LTIwIDIwOjE1OjUzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBzZXQgR1NUX1RPT0xTX0RJUgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgc2V0IEdTVF9UT09MU19ESVIKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suYzogKGdzdF9jaGVja19tZXNzYWdlX2Vycm9yKToKCSAgKiBnc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIGEgZmFpbF91bmxlc3NfZXF1YWxzX2ludAoJICBhZGQgZmFpbF91bmxlc3MgZm9yIGVycm9yIG1lc3NhZ2VzCgoyMDA1LTA4LTIwIDE0OjAwOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC5zdXBwOgoJKiBjb21tb246CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSAgZmFjdG9yIG91dCB0aGUgY29tbW9uIHN0dWZmCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmYWN0b3Igb3V0IHRoZSBjb21tb24gc3R1ZmYKCjIwMDUtMDgtMjAgMTM6MTc6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L01ha2VmaWxlLmFtOgoJICB3b3JrIG9uIGJ1aWxkcyB3aXRob3V0IGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB3b3JrIG9uIGJ1aWxkcyB3aXRob3V0IGNoZWNrCgoyMDA1LTA4LTIwIDEyOjQ3OjA4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgcmVuYW1lZCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW5hbWVkIHRlc3QKCjIwMDUtMDgtMjAgMTI6NDM6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RldmVudC5jOgoJKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZXZlbnQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGV2ZW50cy5jOgoJICBwdXQgc29tZSBtYWtlLXVwIG9uIHRoZSBnc3RldmVudCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwdXQgc29tZSBtYWtlLXVwIG9uIHRoZSBnc3RldmVudCB0ZXN0CgoyMDA1LTA4LTIwIDEyOjM5OjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC9nc3RpdGVyYXRvci5jOgoJKiBjaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogY2hlY2svZ3N0L2dzdHRhZy5jOgoJKiBnc3QvZ3N0Y2xvY2suYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R0YWcuYzoKCSAgdmFsZ3JpbmQgbW9yZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdmFsZ3JpbmQgbW9yZSB0ZXN0cwoKMjAwNS0wOC0yMCAxMjoxNDoyOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9lbGVtZW50cy8uZ2l0aWdub3JlOgoJKiBjaGVjay9lbGVtZW50cy9mYWtlc3JjLmM6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogY2hlY2svZWxlbWVudHMvaWRlbnRpdHkuYzoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiBjaGVjay9nc3QtbGlicy9nZHAuYzoKCSogY2hlY2svZ3N0L2dzdC5jOgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiBjaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGNoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIGNoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBjaGVjay9nc3QvZ3N0dGFnLmM6CgkqIGNoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiBjaGVjay9nc3RjaGVjay5jOgoJKiBjaGVjay9nc3RjaGVjay5oOgoJKiBjaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jOgoJKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkqIGdzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogZ3N0L2NoZWNrL2dzdGNoZWNrLmM6CgkqIGdzdC9jaGVjay9nc3RjaGVjay5oOgoJKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJKiBsaWJzL2dzdC9jaGVjay9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suYzoKCSogbGlicy9nc3QvY2hlY2svZ3N0Y2hlY2suaDoKCSogcGtnY29uZmlnL01ha2VmaWxlLmFtOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNoZWNrLnBjLmluOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZmFrZXNyYy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2lkZW50aXR5LmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtaW5pb2JqZWN0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3RjaGVjay5jOgoJKiB0ZXN0cy9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9nZHAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzoKCSogdGVzdHMvY2hlY2svcGlwZWxpbmVzL3NpbXBsZS1sYXVuY2gtbGluZXMuYzoKCSAgbW92ZSBjaGVjayBzdHVmZiB0byBpdHMgb3duIGxpYnJhcnkgdG8gYmUgdXNlZCBieSBvdGhlciBtb2R1bGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3ZlIGNoZWNrIHN0dWZmIHRvIGl0cyBvd24gbGlicmFyeSB0byBiZSB1c2VkIGJ5IG90aGVyIG1vZHVsZXMKCjIwMDUtMDgtMTkgMDk6NTg6NDIgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGVsaW1pbmF0ZSBhbm90aGVyIHRtcGwgZmlsZSwgZml4IHNwZWxsaW5nIGluIHRoZSBsb25nLWRlc2NyaXB0aW9uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0LnNnbWw6CgkgICogZ3N0L2dzdC5jOgoJICBlbGltaW5hdGUgYW5vdGhlciB0bXBsIGZpbGUsIGZpeCBzcGVsbGluZyBpbiB0aGUgbG9uZy1kZXNjcmlwdGlvbgoKMjAwNS0wOC0xOCAxNjo0Mjo0OSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IFNob3VsZCBmaXggYnVpbGQgb24gNjQtYml0IGFyY2gncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0ZXZlbnRzLmM6IChHU1RfU1RBUlRfVEVTVCksIChldmVudF9wcm9iZSksCgkgICh0ZXN0X2V2ZW50KSwgKHRpbWVkaWZmKSwgKGdzdGV2ZW50c19zdWl0ZSk6CgkgIFNob3VsZCBmaXggYnVpbGQgb24gNjQtYml0IGFyY2gncwoKMjAwNS0wOC0xOCAxNjoyMDoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgTWFrZSBzdXJlIHRoYXQgd2hlbiBhIHBpcGVsaW5lIGdvZXMgdG8gUExBWUlORywgdGhhdCBkYXRhIGhhcyBhY3R1YWxseSBoaXQgdGhlIHNpbmsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICBNYWtlIHN1cmUgdGhhdCB3aGVuIGEgcGlwZWxpbmUgZ29lcyB0byBQTEFZSU5HLCB0aGF0IGRhdGEgaGFzCgkgIGFjdHVhbGx5IGhpdCB0aGUgc2luay4KCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYyAodGVzdF9zaW5rKTogQSBzaW5rIHRoYXQgZG9lc24ndCBnZXQgYW55CgkgIGRhdGEgc2hvdWxkbid0IHJldHVybiBTVUNDRVNTIGZvciBnb2luZyB0byBlaXRoZXIgUExBWUlORyBvcgoJICBQQVVTRUQuIFRlc3QgYWxzbyB0aGUgcmV0dXJuIHZhbHVlcyBvbiB0aGUgd2F5IGJhY2sgZG93bi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpOiBXaGVuIGNoYW5naW5nIHRoZQoJICBzdGF0ZSBvZiBhbiBlbGVtZW50IGN1cnJlbnRseSBjaGFuZ2luZyBzdGF0ZSBhc3luY2hyb25vdXNseSwgZ28gdG8KCSAgbG9zdC1zdGF0ZSBhZnRlciBjb21taXRpbmcgdGhlIHBlbmRpbmcgc3RhdGUuIE1ha2VzIGZ1dHVyZSBjYWxscwoJICB0byBnZXRfc3RhdGUgY29udGludWUgdG8gcmV0dXJuIEFTWU5DLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlX3NpbmtfY2hhbmdlX3N0YXRlKTogUmV0dXJuCgkgIEFTWU5DIHdoZW4gZ29pbmcgdG8gUExBWUlORyBpZiB3ZSBzdGlsbCBkb24ndCBoYXZlIHByZXJvbGwsIGFzIGNhbgoJICBoYXBwZW4gd2l0aCBsaXZlIHNvdXJjZXMuCgoyMDA1LTA4LTE4IDE2OjE1OjI4ICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDogSGFjayBsb25nIHBhcmFncmFwaCBpbnRvIDIgY2h1bmtzIGFzIGEgd29ya2Fyb3VuZCBmb3IgYnVnZ3kgamFkZXRleCB2ZXJzaW9uIGluIHNpZCBhbmQgYi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkgIEhhY2sgbG9uZyBwYXJhZ3JhcGggaW50byAyIGNodW5rcyBhcyBhIHdvcmthcm91bmQgZm9yIGJ1Z2d5CgkgIGphZGV0ZXggdmVyc2lvbiBpbiBzaWQgYW5kIGJyZWV6eSB0aGF0IGxvb3BzIGluZmluaXRlbHkgYW5kCgkgIGVhdHMgYWxsIFJBTS4KCjIwMDUtMDgtMTggMTY6MDA6MzQgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiBQcm92aWRlIG1vcmUgZXJyb3IgbWFyZ2luIGluIGNsb2NrIG1lYXN1cmVtZW50cyB0byBhbGxvdyBmb3IgZ19nZXRfY3VycmVudF90aW1lIGluYWNjdXJhY2llcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpOgoJICBQcm92aWRlIG1vcmUgZXJyb3IgbWFyZ2luIGluIGNsb2NrIG1lYXN1cmVtZW50cyB0byBhbGxvdyBmb3IKCSAgZ19nZXRfY3VycmVudF90aW1lIGluYWNjdXJhY2llcy4KCjIwMDUtMDgtMTggMTU6NDc6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiBGaXggZXJyb3IgbWVzc2FnZSBvdXRwdXQgc28gSSBtaWdodCBiZSBhYmxlIHRvIHRlbGwgd2h5IHRoZSB0ZXN0IHdvcmtzIGhlcmUgYnV0IGZhaWxzIG9uIHRoZSBiLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RldmVudHMuYzogKEdTVF9TVEFSVF9URVNUKSwgKGV2ZW50X3Byb2JlKSwKCSAgKHRlc3RfZXZlbnQpLCAodGltZWRpZmYpLCAoZ3N0ZXZlbnRzX3N1aXRlKToKCSAgRml4IGVycm9yIG1lc3NhZ2Ugb3V0cHV0IHNvIEkgbWlnaHQgYmUgYWJsZSB0byB0ZWxsIHdoeSB0aGUKCSAgdGVzdCB3b3JrcyBoZXJlIGJ1dCBmYWlscyBvbiB0aGUgYnVpbGQgZmFybS4KCjIwMDUtMDgtMTggMTU6MzE6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgY2hlY2svOiBJIHdyb3RlIGEgdGVzdCEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdGV2ZW50cy5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZXZlbnRfcHJvYmUpLAoJICAodGVzdF9ldmVudCksICh0aW1lZGlmZiksIChnc3RldmVudHNfc3VpdGUpLCAobWFpbik6CgkgIEkgd3JvdGUgYSB0ZXN0IQoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNwZWxsaW5nIGNvcnJlY3Rpb24KCSAgKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkgIERvY3MgdXBkYXRlcy4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KToKCSAgVHJlYXQgYSBidWZmZXItd2l0aG91dC1uZXdzZWdtZW50IHRoZSBzYW1lIGFzIGEgcmVjZWl2aW5nCgkgIGEgbmV3c2VnbWVudCBub3QgaW4gdGltZSBmb3JtYXQsIGFuZCBkaXNhYmxlIHN5bmNpbmcgdG8gdGhlIGNsb2NrCgkgIHdpdGggYSB3YXJuaW5nLgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc2V0X3N5bmNfaGFuZGxlcik6CgkgIEFzc2VydCBpZiBhbnlvbmUgdHJpZXMgdG8gcmVwbGFjZSB0aGUgZXhpc3Rpbmcgc3luY19oYW5kbGVyIGZvciBidXMsCgkgIGFzIG9ubHkgdGhlIG93bmVyIHNob3VsZCBiZSBzZXR0aW5nIGl0LgoJICAqIGdzdC9nc3RldmVudC5oOgoJICBIYXZlIGEgZml4ZWQgc2V0IG9mIGN1c3RvbSBldmVudCBlbnVtcyB3aXRoIGV2ZW50cyBpZGVudGlmaWVkIGJ5CgkgIHRoZWlyIHN0cnVjdHVyZSBuYW1lIChhcyBpbiAwLjgpLCByYXRoZXIgdGhhbiBhIGZyZWUtZm9yLWFsbAoJICBhbGxvd2luZyBjb2xsaXNpb25zIGJldHdlZW4gZW51bSB2YWx1ZXMgZnJvbSBkaWZmZXJlbnQgcGx1Z2lucy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpOgoJICBEb2NzIGNoYW5nZS4KCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEhhbmRsZSBvdXQtb2YtYmFuZCBkb3duc3RyZWFtIGV2ZW50cyBmcm9tIHRoZSBzZW5kaW5nIHRocmVhZC4KCjIwMDUtMDgtMTcgMTY6NTc6MDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwaXBlbGluZS5jIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKTogSW50ZXJwcmV0IHBsYXktdGltZW91dD09MCB0byBtZWFuIG5vIHRpbWVvdXQgYXQgYWxsLiBJbiB0aGF0IGNhc2UsIGRvbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IEludGVycHJldAoJICBwbGF5LXRpbWVvdXQ9PTAgdG8gbWVhbiBubyB0aW1lb3V0IGF0IGFsbC4gSW4gdGhhdCBjYXNlLCBkb24ndAoJICBib3RoZXIgd2l0aCBhIGdldF9zdGF0ZSBvciBhIHdhcm5pbmcsIGp1c3QgcmV0dXJuIGRpcmVjdGx5LCBldmVuCgkgIGlmIGl0J3MgQVNZTkMuCgoyMDA1LTA4LTE3IDE2OjMzOjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IERlYnVnIGNoYW5nZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA4LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogRGVidWcgY2hhbmdlcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X2Jpbl93YXRjaF9mb3Jfc3RhdGVfY2hhbmdlKTogQWRkIGZ1bmN0aW9uIHRvCgkgIGVuc3VyZSBiaW5zIHBvc3Qgc3RhdGUgY2hhbmdlIG1lc3NhZ2VzLiBBIGJpdCBvZiBhIGhhY2sgYnV0IEkgY2FuJ3QKCSAgdGhpbmsgb2YgYSB3YXkgdG8gYXZvaWQgaXQuCgkgICogY2hlY2svZ3N0L2dzdGJpbi5jICh0ZXN0X3dhdGNoX2Zvcl9zdGF0ZV9jaGFuZ2UpOiBBZGRlZCB0ZXN0LgoKMjAwNS0wOC0xNiAxNzoyMzo1NSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci4qOiBOZXcgZnVuY3Rpb24sIGxpa2UgcGVlaygpIGJ1dCB5b3Ugb3duIHRoZSBkYXRhLiBOb3QgdGVycmlibHkgZWZmaWNpZW50IGF0bS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMTYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuYyAoZ3N0X2FkYXB0ZXJfdGFrZSk6IE5ldyBmdW5jdGlvbiwgbGlrZQoJICBwZWVrKCkgYnV0IHlvdSBvd24gdGhlIGRhdGEuIE5vdCB0ZXJyaWJseSBlZmZpY2llbnQgYXRtLgoKMjAwNS0wOC0xNiAxNjoyOTowNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLio6IEFkZCB0d28gdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHRhZyBoYW5kbGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9mb3VuZF90YWdzX2Zvcl9wYWQpLCAocHVzaF9hbmRfcmVmKSwKCSAgKGdzdF9lbGVtZW50X2ZvdW5kX3RhZ3MpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBBZGQgdHdvIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB0YWcgaGFuZGxpbmcuCgoyMDA1LTA4LTE2IDEyOjE1OjQ2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IEZpeCBkb2NzIHRvIHVzZSBfYmluX2FkZCgpIGJlZm9yZSBfbGluaygpLCB3aGljaCBmaXhlcyB0aGUgZXhhbXBsZXMgd2l0aCByZWNlbnQgY29yZSB2ZXJzaW9ucyAocmVwb3J0ZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLWhlbGxvd29ybGQueG1sOgoJICBGaXggZG9jcyB0byB1c2UgX2Jpbl9hZGQoKSBiZWZvcmUgX2xpbmsoKSwgd2hpY2ggZml4ZXMgdGhlIGV4YW1wbGVzCgkgIHdpdGggcmVjZW50IGNvcmUgdmVyc2lvbnMgKHJlcG9ydGVkIGJ5IE1hZGhhbiBSYWogTQoJICA8cmFqX21hZGFuQHJlZGlmZm1haWwuY29tPiwgIzMxMzE5OSkuCgoyMDA1LTA4LTE2IDA5OjQyOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdHZhbHVlLmM6IEFkZGVkIHN1YnRyYWN0IGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdmFsdWVfc3VpdGUpOgoJICBBZGRlZCBzdWJ0cmFjdCBjaGVja3MuCgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBTb21lIG1vcmUgZG9jcyBhYm91dCBuZXdzZWdtZW50CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpLCAoYmluX2J1c19oYW5kbGVyKToKCSAgRml4IEZJWE1FCgkgICogZ3N0L2dzdGNhcHMuYzogKGdzdF9jYXBzX3RvX3N0cmluZyk6CgkgIEFkZCBjb21tZW50cywgY2xlYW51cHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NhdmVfdGh5c2VsZik6CgkgIGNsZWFudXBzCgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfY29sbGVjdF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3N0cmluZ191bndyYXApLCAoZ3N0X3ZhbHVlX3VuaW9uX2ludF9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX3VuaW9uX2ludF9yYW5nZV9pbnRfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9pbnRfaW50X3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfaW50X3JhbmdlX2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfaW50ZXJzZWN0X2RvdWJsZV9kb3VibGVfcmFuZ2UpLAoJICAoZ3N0X3ZhbHVlX2ludGVyc2VjdF9kb3VibGVfcmFuZ2VfZG91YmxlX3JhbmdlKSwKCSAgKGdzdF92YWx1ZV9pbnRlcnNlY3RfbGlzdCksIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X2ludF9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfaW50X3JhbmdlX2ludCksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX3JhbmdlX2RvdWJsZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZG91YmxlX3JhbmdlX2RvdWJsZV9yYW5nZSksCgkgIChnc3RfdmFsdWVfc3VidHJhY3RfZnJvbV9saXN0KSwgKGdzdF92YWx1ZV9zdWJ0cmFjdF9saXN0KSwKCSAgKGdzdF92YWx1ZV9jYW5fY29tcGFyZSksIChnc3RfdmFsdWVfY29tcGFyZV9mcmFjdGlvbik6CgkgIENsZWFudXBzLCBhZGQgY29tbWVudHMsIHJlbW92ZSB1bm5lZWRlZCBhc3NlcnRzLgoKMjAwNS0wOC0xNSAxODoxNTozOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RidXMuYzoKCSogdG9vbHMvZ3N0LWxhdW5jaC5jOgoJICBkb24ndCBjb252ZXJ0IE5VTEwgc3RydWN0dXJlcyB0byBzdHJpbmdzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCBjb252ZXJ0IE5VTEwgc3RydWN0dXJlcyB0byBzdHJpbmdzCgoyMDA1LTA4LTE1IDE2OjU3OjM0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OiBtYWRlIHNvbWUgZGVmaW5lcyBwcml2YXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIG1hZGUgc29tZSBkZWZpbmVzIHByaXZhdGUKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNvbmZpZy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVldWUuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlX3NyY19jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9jbGFzc19pbml0KToKCSAgKiBnc3QvZ3N0eG1sLmM6IChnc3RfeG1sX2NsYXNzX2luaXQpOgoJICBkb2N1bWVudGVkIGFsbCB1bmRvY3VtZW50ZWQgc2lnbmFsIGlubGluZQoJICAqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSAgYWRkZWQgcGFkZGluZwoKMjAwNS0wOC0xNSAwOTo1NjoxOSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6IERvY3VtZW50IF9zZXRfbGlua19mdW5jdGlvbiAtPiBfc2V0X3NldGNhcHNfZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICBEb2N1bWVudCBfc2V0X2xpbmtfZnVuY3Rpb24gLT4gX3NldF9zZXRjYXBzX2Z1bmN0aW9uLgoKMjAwNS0wOC0xNCAyMjoyOTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogYWRkIGEgLmNoZWNrIHRhcmdldCBmb3IgcnVubmluZyB0aGUgY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBhIC5jaGVjayB0YXJnZXQgZm9yIHJ1bm5pbmcgdGhlIGNoZWNrCgkgICogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBjb3NtZXRpYyBmaXh1cHMKCSAgKiBjaGVjay9nc3QvZ3N0YnVmZmVyLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfdGVzdF9zdWl0ZSk6CgkgIGNvbXBsZXRlIGNoZWNrcyBmb3IgZ3N0YnVmZmVyOyB3b3VsZCBiZSBuaWNlIGlmIEkgY291bGQgZ2V0IHRoZQoJICBnY292IHN0dWZmIHRvIHdvcmsgc28gSSBjYW4gc2VlIGlmIEkgYWN0dWFsbHkgY29tcGxldGVkIGdzdGJ1ZmZlci5jCgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgYWRkIEFTU0VSVF9CVUZGRVJfUkVGQ09VTlQKCjIwMDUtMDgtMTMgMTE6NDU6NTAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogd2luMzIvTUFOSUZFU1Q6CgkgIHJlbW92ZSBzcGlkZXIgZnJvbSBkaXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgc3BpZGVyIGZyb20gZGlzdAoKMjAwNS0wOC0xMyAxMTo0MzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiB3aW4zMi9nc3RzcGlkZXIudmNwcm9qOgoJICByZW1vdmVkIGZyb20gSEVBRAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlZCBmcm9tIEhFQUQKCjIwMDUtMDgtMTMgMTA6MzM6MjIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBBZGQgR1NUX1RBR19MQU5HVUFHRV9DT0RFIGFzIHdlIGhhdmUgaW4gMC44LCBhbmQgZG9uJ3Qgc3BldyBvdXQgYSB3YXJuaW5nIGlmIGEgdGFnIHRoYXQgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGlzIHJlLXIuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBnc3QvZ3N0dGFnLmM6IChfZ3N0X3RhZ19pbml0aWFsaXplKSwgKGdzdF90YWdfcmVnaXN0ZXIpOgoJICAqIGdzdC9nc3R0YWcuaDoKCSAgQWRkIEdTVF9UQUdfTEFOR1VBR0VfQ09ERSBhcyB3ZSBoYXZlIGluIDAuOCwgYW5kIGRvbid0CgkgIHNwZXcgb3V0IGEgd2FybmluZyBpZiBhIHRhZyB0aGF0IGlzIGFscmVhZHkgcmVnaXN0ZXJlZAoJICBpcyByZS1yZWdpc3RlcmVkLCB1bmxlc3MgaXQgaXMgcmUtcmVnaXN0ZXJlZCB3aXRoIGEKCSAgZGlmZmVyZW50IHR5cGUgKCMzMDg0MzgpLgoKMjAwNS0wOC0xMiAxNDozMDozMSArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGRvY3MvcHdnLzogQWRkIHNvbWUgcGFyYWdyYXBocyBhYm91dCBzdGF0ZSBjaGFuZ2VzIGluIDAuOSB0byB0aGUgUFdHIGFuZCB0aGUgcG9ydGluZyBndWlkZSwgaW4gcGFydGljdWxhciBhYm91dCB0aGUgbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1zdGF0ZS54bWw6CgkgIEFkZCBzb21lIHBhcmFncmFwaHMgYWJvdXQgc3RhdGUgY2hhbmdlcyBpbiAwLjkgdG8gdGhlIFBXRwoJICBhbmQgdGhlIHBvcnRpbmcgZ3VpZGUsIGluIHBhcnRpY3VsYXIgYWJvdXQgdGhlIG5ldyBtZWFuaW5nCgkgIG9mIEdTVF9TVEFURV9QQVVTRUQgYW5kIGhvdyB0byB3cml0ZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb25zCgkgIHdpdGggY29uY3VycmVudCBhY2Nlc3MgYnkgbXVsdGlwbGUgdGhyZWFkcyBpbiBtaW5kLgoKMjAwNS0wOC0xMSAxNzozOTo0OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSAgYWRkZWQgZGVwcmVjYXRpb24gYW5kIHNpbmNlIGluZGV4ZXMgYWRkZWQgc2luY2UgdGFncwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgZGVwcmVjYXRpb24gYW5kIHNpbmNlIGluZGV4ZXMKCSAgYWRkZWQgc2luY2UgdGFncwoKMjAwNS0wOC0xMSAxNDoyNDo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBBY3R1YWxseSBpbXBsZW1lbnQgKHJlKXNldHRpbmcgdGhlIHRhcmdldCBvbiBhIGdob3N0cGFkIGFzIGRlc2NyaWJlZCBpbiB0aGUgZG9jcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX3NldF90YXJnZXRfdW5sb2NrZWQpLAoJICAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0KSwgKGdzdF9wcm94eV9wYWRfZ2V0X3RhcmdldCksCgkgIChnc3RfcHJveHlfcGFkX2Rpc3Bvc2UpLCAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKSwKCSAgKGdzdF9naG9zdF9wYWRfZG9fbGluayksIChnc3RfZ2hvc3RfcGFkX3NldF9pbnRlcm5hbCksCgkgIChnc3RfZ2hvc3RfcGFkX25ld19ub3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX2dldF90YXJnZXQpLAoJICAoZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KToKCSAgQWN0dWFsbHkgaW1wbGVtZW50IChyZSlzZXR0aW5nIHRoZSB0YXJnZXQgb24gYSBnaG9zdHBhZAoJICBhcyBkZXNjcmliZWQgaW4gdGhlIGRvY3MuCgoyMDA1LTA4LTEwIDIxOjE5OjAxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdC5jOiBDaGVjayB3aGV0aGVyIEdTVF9ERUJVR19OT19DT0xPUiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZXQgYW5kIGRpc2FibGUgY29sb3VyZWQgZGVidWcgb3V0cHV0IGlmIHRoYXQgaXMgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2NoZWNrX3dpdGhfcG9wdF90YWJsZSksIChpbml0X3ByZSk6CgkgIENoZWNrIHdoZXRoZXIgR1NUX0RFQlVHX05PX0NPTE9SIGVudmlyb25tZW50IHZhcmlhYmxlIGlzCgkgIHNldCBhbmQgZGlzYWJsZSBjb2xvdXJlZCBkZWJ1ZyBvdXRwdXQgaWYgdGhhdCBpcyB0aGUgY2FzZS4KCjIwMDUtMDgtMTAgMTU6MDg6MDMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiBUaGUgbWVtb3J5IHJldHVybmVkIGJ5IGdzdF90eXBlX2ZpbmRfcGVlaygpIG5lZWRzIHRvIHN0YXkgdmFsaWQgdW50aWwgdGhlIGVuZCBvZiBhIHR5cGUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspLAoJICAoZ3N0X3R5cGVfZmluZF9oZWxwZXIpOgoJICBUaGUgbWVtb3J5IHJldHVybmVkIGJ5IGdzdF90eXBlX2ZpbmRfcGVlaygpIG5lZWRzIHRvCgkgIHN0YXkgdmFsaWQgdW50aWwgdGhlIGVuZCBvZiBhIHR5cGVmaW5kIGZ1bmN0aW9uLCBhbmQKCSAgdHlwZWZpbmQgZnVuY3Rpb25zIG1heSBrZWVwIHJlc3VsdHMgZnJvbSBkaWZmZXJlbnQKCSAgb2Zmc2V0cyBhcm91bmQsIHNvIHdlIGNhbid0IGp1c3QgdW5yZWYgdGhlIGJ1ZmZlciBmcm9tCgkgIHRoZSBwcmV2aW91cyBfcGVlaygpLCBidXQgaGF2ZSB0byBzYXZlIGFsbCBidWZmZXJzCgkgIHJldHVybmVkIGJ5IF9wZWVrKCkgdW50aWwgdHlwZWZpbmRpbmcgaXMgZG9uZSBhbmQgb25seQoJICBmcmVlIHRoZW0gdGhlbi4KCjIwMDUtMDgtMDkgMTY6MjU6NDUgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBOZXcgbWFjcm9zOiBHU1RfUk9VTkRfVVBfMigpIHRocm91Z2ggR1NUX1JPVU5EX1VQXzY0KCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIE5ldyBtYWNyb3M6IEdTVF9ST1VORF9VUF8yKCkgdGhyb3VnaCBHU1RfUk9VTkRfVVBfNjQoKS4KCjIwMDUtMDgtMDggMTY6MDE6MTIgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggdXAgc3BlYyBmb3IgbGF0ZXN0IENWUyBjaGFuZ2VzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggdXAgc3BlYyBmb3IgbGF0ZXN0IENWUyBjaGFuZ2VzCgoyMDA1LTA4LTA4IDE1OjA4OjE0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IEZpeCBhIHByZXR0eSBnb29kIG1lbWxlYWsuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9idWZmZXJfYWxsb2MpOgoJICBGaXggYSBwcmV0dHkgZ29vZCBtZW1sZWFrLgoKMjAwNS0wOC0wOCAxMzo1NTozNyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkgIGdzdC9nc3RpdGVyYXRvci5oOiBGaXggd3JvbmcgaW5jbHVkZSBhbmQgJ21ha2UgZGlzdGNoZWNrJy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEZpeCB3cm9uZyBpbmNsdWRlIGFuZCAnbWFrZSBkaXN0Y2hlY2snLgoKMjAwNS0wOC0wOCAxMzozODozNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBVc2UgZ3N0X2VsZW1lbnRfcG9zdF9tZXNzYWdlKCkgaW5zdGVhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgVXNlIGdzdF9lbGVtZW50X3Bvc3RfbWVzc2FnZSgpIGluc3RlYWQuCgoyMDA1LTA4LTA4IDEzOjMxOjA5ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0LzogQWRkIHBhZGRpbmcgdG8gb3VyIGJhc2UgZWxlbWVudHMnIGNsYXNzIGFuZCBpbnN0YW5jZSBzdHJ1Y3RzIGFuZCB0byBHc3RJdGVyYXRvciAoeW91IHdpbGwgbmVlZCB0byByZWJ1aWxkIGFsbCBwLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGFkYXB0ZXIuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFkZCBwYWRkaW5nIHRvIG91ciBiYXNlIGVsZW1lbnRzJyBjbGFzcyBhbmQgaW5zdGFuY2Ugc3RydWN0cyBhbmQKCSAgdG8gR3N0SXRlcmF0b3IgKHlvdSB3aWxsIG5lZWQgdG8gcmVidWlsZCBhbGwgcGx1Z2lucyBhbmQgYXBwcyEpCgoyMDA1LTA4LTA4IDEzOjE3OjA3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IE1ha2UgZGVmYXVsdCBtZXNzYWdlIGZvcndhcmRpbmcgZnJvbSBjaGlsZC0+YnVzIHRvIGJpbi0+YnVzIHRocmVhZHNhZmUgYW5kIG1ha2UgaXQgbm90IGVtaXQgd2FybmluZ3MgaWYuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2J1c19oYW5kbGVyKToKCSAgTWFrZSBkZWZhdWx0IG1lc3NhZ2UgZm9yd2FyZGluZyBmcm9tIGNoaWxkLT5idXMgdG8gYmluLT5idXMKCSAgdGhyZWFkc2FmZSBhbmQgbWFrZSBpdCBub3QgZW1pdCB3YXJuaW5ncyBpZiB0aGUgcGFyZW50IGhhcyBubyBidXMuCgoyMDA1LTA4LTA4IDEyOjE0OjIwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBPbiBwYXVzZWQtPnJlYWR5LCBzZXQgcGFkLT5jYXBzIHRvIE5VTEwsIGFzIGlzIHRoZSBkb2N1bWVudGVkIGJlaGF2aW91ciBpbiB0aGlzIHN0YXRlIGNoYW5nZS4gRml4ZXMuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGFjdGl2YXRlX3BhZHMpOgoJICBPbiBwYXVzZWQtPnJlYWR5LCBzZXQgcGFkLT5jYXBzIHRvIE5VTEwsIGFzIGlzIHRoZSBkb2N1bWVudGVkCgkgIGJlaGF2aW91ciBpbiB0aGlzIHN0YXRlIGNoYW5nZS4gRml4ZXMgcGxheWJhY2sgb2Ygc2VyaWVzIG9mCgkgIG1lZGlhIGZpbGVzIHdoZW4gdmlzdWFsaXphdGlvbiBpcyBlbmFibGVkIGluIFRvdGVtLgoKMjAwNS0wOC0wNyAxMzozNzowOCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogQWxsb3cgTlVMTCBhcyBmaWx0ZXItY2FwcyAod2hpY2ggbWVhbnMgImFueSIpLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfc2V0X3Byb3BlcnR5KToKCSAgQWxsb3cgTlVMTCBhcyBmaWx0ZXItY2FwcyAod2hpY2ggbWVhbnMgImFueSIpLgoKMjAwNS0wOC0wNSAxNzoyODozMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb21tb246CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGhlbHBlci5jOgoJICBhZGRpbmcgbW9yZSBlbnRyaWVzIHRvIHRoZSBkb2NzIGFuZCBmaXggc21hbGwgZG9jLWJ1Z3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyBtb3JlIGVudHJpZXMgdG8gdGhlIGRvY3MgYW5kIGZpeCBzbWFsbCBkb2MtYnVncwoKMjAwNS0wOC0wNSAxMzo0MjoxMCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY2hlY2svZ3N0LWxpYnMvLmdpdGlnbm9yZToKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC8uZ2l0aWdub3JlOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNyYy5zZ21sOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2xpYnMvLmdpdGlnbm9yZToKCSAgbWlncmF0ZWQgc29tZSBtb3JlIGRvY3MgdG8gYmUgaW5saW5lZCBpbiB0aGUgc291cmNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWlncmF0ZWQgc29tZSBtb3JlIGRvY3MgdG8gYmUgaW5saW5lZCBpbiB0aGUgc291cmNlcwoKMjAwNS0wOC0wNSAxMjo1OTo0NiArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXRyYW5zZm9ybS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzoKCSogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3Rjb2xsZWN0cGFkcy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5oOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1oZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3Rjb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0aW50ZXJwb2xhdGlvbi5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2xpYi5jOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIGFkZGVkIGxvbmcvc2hvcnQgZGVzYyBmb3IgY29udHJvbGxlciBkb2NzIGFkZGVkIGNvbGxlY3RwYWRzIGJhc2UgY2xhc3MgZG9jcyBhZGRlZCBjb3JyZWN0IGluY2x1ZGVzIHRvIGJhc2UtY2xhc3MgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgbG9uZy9zaG9ydCBkZXNjIGZvciBjb250cm9sbGVyIGRvY3MKCSAgYWRkZWQgY29sbGVjdHBhZHMgYmFzZSBjbGFzcyBkb2NzCgkgIGFkZGVkIGNvcnJlY3QgaW5jbHVkZXMgdG8gYmFzZS1jbGFzcyBkb2NzCgoyMDA1LTA4LTA1IDEwOjAyOjQ0ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtZG9jcy5zZ21sOgoJKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogdGVzdHMvY2hlY2svbGlicy9jb250cm9sbGVyLmM6CgkgIG1vcmUgdGVzdHMgKGFuZCBmaXhlcykgZm9yIHRoZSBjb250cm9sbGVyIG1vcmUgZG9jcyBmb3IgdGhlIGNvbnRyb2xsZXIgaW50ZWdyYXRlZCBjb21wYW5pZXMgZG9jcyBmb3IgdGhlIGFkYXB0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgdGVzdHMgKGFuZCBmaXhlcykgZm9yIHRoZSBjb250cm9sbGVyCgkgIG1vcmUgZG9jcyBmb3IgdGhlIGNvbnRyb2xsZXIKCSAgaW50ZWdyYXRlZCBjb21wYW5pZXMgZG9jcyBmb3IgdGhlIGFkYXB0ZXIKCjIwMDUtMDgtMDUgMDY6NTc6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LWxpYnMvY29udHJvbGxlci5jOgoJKiB0ZXN0cy9jaGVjay9saWJzL2NvbnRyb2xsZXIuYzoKCSAgY29zbWV0aWMgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNvc21ldGljIGZpeGVzCgoyMDA1LTA4LTA1IDA2OjU1OjAzICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBkb2NzL2dzdC90bXBsL2dzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RidWZmZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RjYXBzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2xvY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb21wYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rjb25maWcuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGRldGFpbHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVycm9yLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZpbGVzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWx0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGltcGxlbWVudHNpbnRlcmZhY2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZGV4ZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGluZm8uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpdGVyYXRvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1hY3Jvcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1lbWNodW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGFyc2Uuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwaXBlbGluZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBsdWdpbmZlYXR1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWVyeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RyZWdpc3RyeXBvb2wuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzeXN0ZW1jbG9jay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ2xpc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0YWdzZXR0ZXIuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0cmFjZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYXNoc3RhY2suc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R0eXBlZmluZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpaGFuZGxlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHVyaXR5cGUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1dGlscy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmVyc2lvbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHhtbC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkYXRhcHJvdG9jb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0Z2V0Yml0cy5zZ21sOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGFkZCBzaXpldHlwZSB0ZXN0cyBmb3IgZmFrZXNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIHNpemV0eXBlIHRlc3RzIGZvciBmYWtlc3JjCgoyMDA1LTA4LTA0IDE5OjQwOjQzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBSZWltcGxlbWVudCB1c2luZyBiYXNldHJhbnNmb3JtLCBmaXhlcyBidWZmZXJfYWxsb2MgcHJveHlpbmcgYW1vbmcgb3RoZXIgdGhpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wOC0wNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiBSZWltcGxlbWVudCB1c2luZyBiYXNldHJhbnNmb3JtLAoJICBmaXhlcyBidWZmZXJfYWxsb2MgcHJveHlpbmcgYW1vbmcgb3RoZXIgdGhpbmdzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIFJldmVydCBwYXRjaCB0byBnc3RiYXNldHJhbnNmb3JtIGZyb20gNy0yOCByZW1vdmluZwoJICBkZWxheV9jb25maWd1cmUuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oIChHc3RCYXNlVHJhbnNmb3JtQ2xhc3MuZ2V0X3NpemUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9zaXplKToKCSAgU2VtYW50aWNzIGNoYW5nZWQsIHNob3VsZCByZXR1cm4gbm90IHRoZSBzaXplIG9mIHRoZSBvdXRwdXQgYnVmZmVyCgkgIGJ1dCB0aGUgYnl0ZSBzaXplIG9mIGEgYnVmZmVyIHdpdGggYSBnaXZlbiBjYXBzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpOiBCZXR0ZXIKCSAgZGVidWcgb2JqZWN0LgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NvbmZpZ3VyZV9jYXBzKTogRG9uJ3Qgc2V0IG91dF9zaXplIGhlcmU6IChpbiwKCSAgb3V0KSBhcmUgbm90IHRoZSBwYWQgY2FwcyB1bnRpbCBzZXRjYXBzIGZpbmlzaGVzLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyk6IFByb3h5IHRoZSBidWZmZXJfYWxsb2MgZm9yIHRoZQoJICBub3QtaW4tcGxhY2UgY2FzZSBhcyB3ZWxsLiBEZWFsIHdpdGggY2hhbmdpbmcgZnJvbSBpbi1wbGFjZSB0bwoJICBub3QtaW4tcGxhY2Ugd2l0aGluIGNhbGxpbmcgcGFkX2FsbG9jX2J1ZmZlci4gU3RpbGwgYSBiaXQKCSAgY29uY2VybmVkIGFib3V0IHRoZSBvdmVyaGVhZCBoZXJlLi4uCgoyMDA1LTA4LTA0IDExOjU2OjU3ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOiBBZGRlZCBnc3RfYWRhcHRlcl9nZXRfdHlwZSgpIHRvIHRoZSBoZWFkZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5oOgoJICBBZGRlZCBnc3RfYWRhcHRlcl9nZXRfdHlwZSgpIHRvIHRoZSBoZWFkZXIKCjIwMDUtMDgtMDMgMTY6MTA6MDYgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4ZWQgZGlzdGNoZWNrIGJyZWFrYWdlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXhlZCBkaXN0Y2hlY2sgYnJlYWthZ2UKCjIwMDUtMDgtMDMgMTU6NTk6MTEgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2dzdC1saWJzL2NvbnRyb2xsZXIuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2xpYnMvY29udHJvbGxlci5jOgoJICBhZGRlZCBjaGVjayB0ZXN0IHN1aXRlIGZvciB0aGUgY29udHJvbGxlciBmaXhlZCBhIGRvYyB0eXBvCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBjaGVjayB0ZXN0IHN1aXRlIGZvciB0aGUgY29udHJvbGxlcgoJICBmaXhlZCBhIGRvYyB0eXBvCgoyMDA1LTA4LTAzIDEzOjMwOjE4ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJKiBnc3QvYmFzZS9SRUFETUU6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL1JFQURNRToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSAgYWRkIHNob3J0L2xvbmcgZGVzY3JpcHRpb24gZG9jcyB0byBiYXNlIGNsYXNzZXMgYWRkIHB1c2hzcmMgdG8gdGhlIGRvY3MgcmVtb3ZlIGNvbnNvbGlkYXRlZCBkb2MgZnJhZ21lbnRzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc2hvcnQvbG9uZyBkZXNjcmlwdGlvbiBkb2NzIHRvIGJhc2UgY2xhc3NlcwoJICBhZGQgcHVzaHNyYyB0byB0aGUgZG9jcwoJICByZW1vdmUgY29uc29saWRhdGVkIGRvYyBmcmFnbWVudHMKCjIwMDUtMDgtMDIgMjE6Mzk6MzQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci11bmluc3RhbGxlZC5wYy5pbjoKCSAgdGhhdCBvbmUgdG9vCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB0aGF0IG9uZSB0b28KCjIwMDUtMDgtMDIgMjE6Mzg6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItY29udHJvbGxlci5wYy5pbjoKCSAgYWRkZWQgbWlzc2luZyBwYyBmaWxlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkZWQgbWlzc2luZyBwYyBmaWxlcwoKMjAwNS0wOC0wMiAyMTozNTozNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZXZlbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvbGlicy9NYWtlZmlsZS5hbToKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLnR5cGVzOgoJKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSogZXhhbXBsZXMvY29udHJvbGxlci8uZ2l0aWdub3JlOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiBleGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3QtY29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1jb250cm9sbGVyLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0LWhlbHBlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdC1pbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvZ3N0Y29udHJvbGxlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sbGVyL2dzdGNvbnRyb2xsZXIuaDoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RoZWxwZXIuYzoKCSogbGlicy9nc3QvY29udHJvbGxlci9nc3RpbnRlcnBvbGF0aW9uLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2xsZXIvbGliLmM6CgkqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSogcGtnY29uZmlnL2dzdHJlYW1lci1jb250cm9sLXVuaW5zdGFsbGVkLnBjLmluOgoJKiBwa2djb25maWcvZ3N0cmVhbWVyLWNvbnRyb2wucGMuaW46CgkqIHRlc3RzL29sZC9leGFtcGxlcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL2NvbnRyb2xsZXIvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC9leGFtcGxlcy9jb250cm9sbGVyL2F1ZGlvLWV4YW1wbGUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY29udHJvbGxlci9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jb250cm9sbGVyL2ludGVycG9sYXRvci5jOgoJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jb250cm9sbGVyL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvY29udHJvbGxlci9pbnRlcnBvbGF0b3IuYzoKCSAgYWRkZWQgY29udHJvbGxlciBjb2RlIHJlbW92ZWQgZHBhcmFtIHBjIGZpbGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRlZCBjb250cm9sbGVyIGNvZGUKCSAgcmVtb3ZlZCBkcGFyYW0gcGMgZmlsZXMKCjIwMDUtMDgtMDEgMjE6MTc6MDEgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuYzogQnJvYWRjYXN0IHRoZSBjb25kaXRpb24gd2hlbiBzaHV0dGluZyBkb3duLCB0byBtYWtlIHN1cmUgd2Ugd2FrZSBhbGwgdGhyZWFkcyB1cC4gU2h1dCBkb3duLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZmluYWxpemUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3N0b3ApOgoJICBCcm9hZGNhc3QgdGhlIGNvbmRpdGlvbiB3aGVuIHNodXR0aW5nIGRvd24sIHRvIG1ha2Ugc3VyZSB3ZSB3YWtlIGFsbAoJICB0aHJlYWRzIHVwLiBTaHV0IGRvd24gcGFkcyBvbiBmaW5hbGl6ZSwgZm9yIHNhZmV0eS4KCjIwMDUtMDgtMDEgMTc6MjY6MDAgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBIYW5kbGUgUEFVU0VELT5SRUFEWS0+UEFVU0VEIHRyYW5zaXRpb24gYWZ0ZXIgbmVnb3RpYXRpb24gb2NjdXJyZWQgYWxyZWFkeS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDgtMDEgIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmM6IChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgSGFuZGxlIFBBVVNFRC0+UkVBRFktPlBBVVNFRCB0cmFuc2l0aW9uIGFmdGVyIG5lZ290aWF0aW9uCgkgIG9jY3VycmVkIGFscmVhZHkuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2luaXQpOgoJICBFeHRyYSBwaWVjZSBvZiBkZWJ1ZyBmb3IgbmV3IG1lc3NhZ2VzLgoKMjAwNS0wOC0wMSAxNjo0Mzo1OCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZG9jcy9saWJzL01ha2VmaWxlLmFtOgoJICByZW1vdmUgZHBhcmFtcyBkZXBzIGZyb20gdGhlIGRvY3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBkcGFyYW1zIGRlcHMgZnJvbSB0aGUgZG9jcwoKMjAwNS0wOC0wMSAxNjoxNzozMSArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOgoJKiBjb25maWd1cmUuYWM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RldmVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3Rmb3JtYXQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RnaG9zdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHF1ZXJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c3RydWN0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHZhbHVlLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1kb2NzLnNnbWw6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvbGlicy9nc3RyZWFtZXItbGlicy50eXBlczoKCSogbGlicy9nc3QvTWFrZWZpbGUuYW06CgkqIGxpYnMvZ3N0L2NvbnRyb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvY29udHJvbC9jb250cm9sLmM6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvY29udHJvbC5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbS5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbS5oOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbV9zbW9vdGguYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1fc21vb3RoLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtY29tbW9uLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvZHBhcmFtbWFuYWdlci5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuaDoKCSogbGlicy9nc3QvY29udHJvbC9kcGxpbmVhcmludGVycC5jOgoJKiBsaWJzL2dzdC9jb250cm9sL2RwbGluZWFyaW50ZXJwLmg6CgkqIGxpYnMvZ3N0L2NvbnRyb2wvdW5pdGNvbnZlcnQuYzoKCSogbGlicy9nc3QvY29udHJvbC91bml0Y29udmVydC5oOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2R5bnBhcmFtcy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2R5bnBhcmFtcy9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9keW5wYXJhbXMvZHBhcmFtc3Rlc3QuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZHlucGFyYW1zLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9keW5wYXJhbXMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9keW5wYXJhbXMvZHBhcmFtc3Rlc3QuYzoKCSogdG9vbHMvTWFrZWZpbGUuYW06CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIGRlYWN0aXZhdGUgYW5kIHJlbW92ZSBkcGFyYW1zIChsaWJnc3Rjb250cm9sKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZGVhY3RpdmF0ZSBhbmQgcmVtb3ZlIGRwYXJhbXMgKGxpYmdzdGNvbnRyb2wpCgoyMDA1LTA4LTAxIDExOjE1OjQ3ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC4qOiBTZXQgY2FwcyBvbiBhbGwgb3V0Z29pbmcgYnVmZmVycywgbm90IGp1c3QgdGhlIGZpcnN0IG9uZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChzdG9wX3R5cGVmaW5kaW5nKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2NoYWluKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9nZXRyYW5nZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5oOgoJICBTZXQgY2FwcyBvbiBhbGwgb3V0Z29pbmcgYnVmZmVycywgbm90IGp1c3QgdGhlIGZpcnN0IG9uZS4KCjIwMDUtMDgtMDEgMDk6MTA6MDEgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lio6IFNldCBjYXBzIG9uIGZpcnN0IG91dGdvaW5nIGJ1ZmZlciB3aGVuIHdlJ3ZlIGZvdW5kIHRoZSB0eXBlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlKSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGVja19zZXRfYnVmZmVyX2NhcHMpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLCAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0cmFuZ2UpOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgU2V0IGNhcHMgb24gZmlyc3Qgb3V0Z29pbmcgYnVmZmVyIHdoZW4gd2UndmUgZm91bmQgdGhlIHR5cGUuCgoyMDA1LTA4LTAxIDA4OjUyOjMxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9nc3QvOiBSZW1vdmUgc29tZSBvbGQgY3J1ZnQgZnJvbSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RzY2hlZHVsZXIuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHNjaGVkdWxlcmZhY3Rvcnkuc2dtbDoKCSAgUmVtb3ZlIHNvbWUgb2xkIGNydWZ0IGZyb20gZG9jcy4KCjIwMDUtMDctMzEgMTE6NTk6MzMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZ3N0cGFkLmg6IEZpeCBpbmxpbmUgZG9jcyBmb3IgR3N0UGFkTGlua1JldHVybi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBGaXggaW5saW5lIGRvY3MgZm9yIEdzdFBhZExpbmtSZXR1cm4uCgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9oYXNfbmFtZSk6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkgIE5ldyBBUEk6IGdzdF9zdHJ1Y3R1cmVfaGFzX25hbWUoKS4KCjIwMDUtMDctMzAgMTU6MDA6MDcgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBjb25maWd1cmUuYWM6IFVzZSBBQ19TWVNfTEFSR0VGSUxFLCB3aGljaCB3aWxsIHNldCBfRklMRV9PRkZTRVRfQklUUz02NCBhbmQgX0xBUkdFRklMRV9TT1VSQ0UgaW4gY29uZmlnLmggYXMgcmVxdWlyZWQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBVc2UgQUNfU1lTX0xBUkdFRklMRSwgd2hpY2ggd2lsbCBzZXQgX0ZJTEVfT0ZGU0VUX0JJVFM9NjQKCSAgYW5kIF9MQVJHRUZJTEVfU09VUkNFIGluIGNvbmZpZy5oIGFzIHJlcXVpcmVkLiBEbyBub3QKCSAgZXhwb3J0IHRob3NlIGZsYWdzIGluIG91ciAucGMgZmlsZXMgYW55IGxvbmdlciAoIzE0MjIwOSkuCgkgIFJlbW92ZSB1bnVzZWQgR1NUX0RJU0FCTEVfT01FR0FfQ09USFJFQURTIHN0dWZmLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOiAoZ3N0X2ZpbGVfc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlX3NpbmtfZG9fc2VlayksIChnc3RfZmlsZV9zaW5rX2V2ZW50KSwKCSAgKGdzdF9maWxlX3NpbmtfZ2V0X2N1cnJlbnRfb2Zmc2V0KSwgKGdzdF9maWxlX3NpbmtfcmVuZGVyKToKCSAgUmVkbyBzZWVrL3RlbGwgY2FsbHMgd2l0aCBsYXJnZSBmaWxlIHN1cHBvcnQgaW4gbWluZDsgYWRkIHNvbWUKCSAgZGVidWdnaW5nIG1lc3NhZ2VzOyBhZGQgbG9nIG1lc3NhZ2UgdGhhdCB0ZWxscyB1cyB3aGVuIGxhcmdlCgkgIGZpbGUgc3VwcG9ydCBpcyB1bmF2YWlsYWJsZSBvciBub3QgZW5hYmxlZCBmb3Igc29tZSByZWFzb24uCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzogKGdzdF9maWxlX3NyY19jbGFzc19pbml0KToKCSAgQWRkIGxvZyBtZXNzYWdlIHRoYXQgdGVsbHMgdXMgd2hlbiBsYXJnZSBmaWxlIHN1cHBvcnQKCSAgaXMgdW5hdmFpbGFibGUgb3Igbm90IGVuYWJsZWQgZm9yIHNvbWUgcmVhc29uLgoKMjAwNS0wNy0yOSAxOToyMjoyOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiBBZGRlZCB0ZXN0IGZvciByZW1vdmluZyBhbiBlbGVtZW50IHdpdGggZ2hvc3RwYWQgZnJvbSBhIGJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfZ2hvc3RfcGFkX3N1aXRlKToKCSAgQWRkZWQgdGVzdCBmb3IgcmVtb3ZpbmcgYW4gZWxlbWVudCB3aXRoIGdob3N0cGFkIGZyb20gYSBiaW4uCgkgIEZpeGVkIHRlc3QgYXMgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkb2VzIHRoZSByaWdodCB0aGluZy4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5X3R5cGUpLCAoZ3N0X3Byb3h5X3BhZF9kb19ldmVudCksCgkgIChnc3RfcHJveHlfcGFkX2RvX3F1ZXJ5KSwgKGdzdF9wcm94eV9wYWRfZG9faW50ZXJuYWxfbGluayksCgkgIChnc3RfcHJveHlfcGFkX2RvX2J1ZmZlcmFsbG9jKSwgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1bGwpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1c2gpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fY2hlY2tnZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2dldGNhcHMpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX3NldGNhcHMpLCAoZ3N0X3Byb3h5X3BhZF9zZXRfdGFyZ2V0KSwKCSAgKGdzdF9wcm94eV9wYWRfZ2V0X3RhcmdldCksIChnc3RfcHJveHlfcGFkX2luaXQpLAoJICAoZ3N0X3Byb3h5X3BhZF9kaXNwb3NlKSwgKGdzdF9wcm94eV9wYWRfZmluYWxpemUpLAoJICAoZ3N0X2dob3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfZ2hvc3RfcGFkX2RvX2xpbmspLCAoZ3N0X2dob3N0X3BhZF9kb191bmxpbmspLAoJICAoZ3N0X2dob3N0X3BhZF9zZXRfaW50ZXJuYWwpLCAoZ3N0X2dob3N0X3BhZF9kaXNwb3NlKSwKCSAgKGdzdF9naG9zdF9wYWRfbmV3X25vdGFyZ2V0KSwgKGdzdF9naG9zdF9wYWRfbmV3KSwKCSAgKGdzdF9naG9zdF9wYWRfZ2V0X3RhcmdldCksIChnc3RfZ2hvc3RfcGFkX3NldF90YXJnZXQpOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICBDbGVhbiB1cCBnaG9zdHBhZHMsIHJlbW92ZSBwcm9wZXJ0aWVzIGZvciBpbnRlcm5hbCBzdHVmZi4KCSAgTWFrZSB0aHJlYWRzYWZlLgoJICBGaXggcmVmY291bnRpbmcuCgkgIFByZXBhcmUgZm9yIHN3aXRjaGluZyB0YXJnZXRzLCBub3QgYWxsIHVzZSBjYXNlcyB3b3JrIHlldC4KCjIwMDUtMDctMjkgMTk6MTk6MjkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDogU21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGdob3N0cGFkLnR4dDoKCSAgU21hbGwgdXBkYXRlLgoJICAqIGdzdC9nc3RiaW4uYzogKHVubGlua19wYWRzKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6CgkgIFVubGlua2luZyBwYWRzIHdoaWxlIGhvbGRpbmcgdGhlIGJpbiBMT0NLIGlzIG5vdCBhIGdvb2QKCSAgaWRlYS4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2hpZXJhcmNoeSksIChnc3RfcGFkX2dldF9jYXBzX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2FwcyksIChnc3RfcGFkX3NlbmRfZXZlbnQpOgoJICBObyBwcm9iIHNldHRpbmcgdGVtcGxhdGUgYWZ0ZXIgY3JlYXRpbmcgdGhlIHBhZC4KCjIwMDUtMDctMjkgMTU6MzQ6NTIgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBnc3RfYnVzX3BvbGwgbWF5IGJlIGNhbGxlZCBmcm9tIG90aGVyIHRocmVhZHMuIEhhbmRsZSB0aGlzIG5pY2VseSBieSBub3QgbWFraW5nIHBvbGxfZGF0YSBkaXNhcHBlYXIgb2ZmLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfc2V0X2ZsdXNoaW5nKSwgKGdzdF9idXNfcG9wKSwKCSAgKGdzdF9idXNfcGVlayksIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksCgkgIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKSwgKHBvbGxfaGFuZGxlciksIChwb2xsX3RpbWVvdXQpLAoJICAocG9sbF9kZXN0cm95KSwgKHBvbGxfZGVzdHJveV90aW1lb3V0KSwgKGdzdF9idXNfcG9sbCk6CgkgIGdzdF9idXNfcG9sbCBtYXkgYmUgY2FsbGVkIGZyb20gb3RoZXIgdGhyZWFkcy4gSGFuZGxlCgkgIHRoaXMgbmljZWx5IGJ5IG5vdCBtYWtpbmcgcG9sbF9kYXRhIGRpc2FwcGVhciBvZmYgdGhlCgkgIHN0YWNrIG9uY2UgZ3N0X2J1c19wb2xsIHJldHVybnMuCgkgIGdzdF9idXNfcGVlayBub3cgaW5jcmVtZW50cyB0aGUgcmVmY291bnQgb24gdGhlIHJldHVybmVkCgkgIG1lc3NhZ2UuCgoyMDA1LTA3LTI5IDExOjI5OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6IE92ZXJ2aWV3IG9mIGN1cnJlbnQgR2hvc3RQYWQgZGF0YXN0cnVjdHVyZXMgYW5kIHVzZSBjYXNlcyBmb3IgY2hhbmdpbmcgdGhlIHRhcmdldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RnaG9zdHBhZC50eHQ6CgkgIE92ZXJ2aWV3IG9mIGN1cnJlbnQgR2hvc3RQYWQgZGF0YXN0cnVjdHVyZXMgYW5kIHVzZQoJICBjYXNlcyBmb3IgY2hhbmdpbmcgdGhlIHRhcmdldC4KCjIwMDUtMDctMjggMTU6Mzg6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IEFkZGVkIGNoZWNrcyBmb3IgaGllcmFyY2h5IGNvbnNpc3RlbmN5IHdoYW4gYWRkaW5nIGxpbmtlZCBlbGVtZW50cyB0byBiaW5zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChHU1RfU1RBUlRfVEVTVCksIChnc3RfYmluX3N1aXRlKToKCSAgQWRkZWQgY2hlY2tzIGZvciBoaWVyYXJjaHkgY29uc2lzdGVuY3kgd2hhbiBhZGRpbmcgbGlua2VkCgkgIGVsZW1lbnRzIHRvIGJpbnMuCgkgICogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF9lbGVtZW50X3N1aXRlKToKCSAgQWRkZWQgY2hlY2sgdG8gdGVzdCBlbGVtZW50IHNjaGVkdWxpbmcgd2l0aG91dCBiaW4vcGlwZWxpbmUuCgkgICogY2hlY2svcGlwZWxpbmVzL3NpbXBsZV9sYXVuY2hfbGluZXMuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgRmlyc3QgYWRkIGVsZW1lbnRzIHRvIGJpbiwgdGhlbiBsaW5rLgoJICAqIGdzdC9nc3RiaW4uYzogKHVubGlua19wYWRzKSwgKGdzdF9iaW5fYWRkX2Z1bmMpLAoJICAoZ3N0X2Jpbl9yZW1vdmVfZnVuYyk6CgkgIFVubGluayBwYWRzIGZyb20gZWxlbWVudHMgYWRkZWQvcmVtb3ZlZCBmcm9tIGJpbiB0byBtYWludGFpbgoJICBoaWVyYXJjaHkgY29uc2lzdGVuY3kuCgoyMDA1LTA3LTI4IDExOjQ5OjU2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLio6IFJlbW92ZSBicm9rZW4gZGVsYXlfY29uZmlndXJlIChmaXhlcyByZW5lZ290aWF0aW9uIG9mIHNvZnR3YXJlIHNjYWxpbmcgcGlwZWxpbmVzKTsgcmVtb3YuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgUmVtb3ZlIGJyb2tlbiBkZWxheV9jb25maWd1cmUgKGZpeGVzIHJlbmVnb3RpYXRpb24gb2Ygc29mdHdhcmUKCSAgc2NhbGluZyBwaXBlbGluZXMpOyByZW1vdmUgc29tZSBsZWZ0b3ZlciBwcmludGYoKXMuCgoyMDA1LTA3LTI4IDExOjI0OjMzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgY2hlY2svZ3N0L2dzdGdob3N0cGFkLmM6IEFkZGVkIHNvbWUgbW9yZSB0ZXN0cyBmb3Igd3JvbmcgaGllcmFyY2h5CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOiAoR1NUX1NUQVJUX1RFU1QpLCAoZ3N0X2dob3N0X3BhZF9zdWl0ZSk6CgkgIEFkZGVkIHNvbWUgbW9yZSB0ZXN0cyBmb3Igd3JvbmcgaGllcmFyY2h5CgkgICogZG9jcy9kZXNpZ24vcGFydC1vdmVydmlldy50eHQ6CgkgIFNvbWUgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fZGlzcG9zZSk6CgkgIENsZWFudXBzLgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9yZW1vdmVfcGFkKSwgKGdzdF9lbGVtZW50X3NlZWspLAoJICAoZ3N0X2VsZW1lbnRfZGlzcG9zZSk6CgkgIFNvbWUgbW9yZSBjbGVhbnVwcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfaGllcmFyY2h5KSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX3NldF9jYXBzKSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgIENoZWNrIGZvciBjb3JyZWN0IGhpZXJhcmNoeSB3aGVuIGxpbmtpbmcgcGFkcy4gTW92aW5nIHRvCgkgIHN0cmljdCByZXF1aXJlbWVudCBmb3IgZ2hvc3RwYWRzIHdoZW4gbGlua2luZyBlbGVtZW50cyBpbgoJICBkaWZmZXJlbnQgYmlucy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIENsZWFuIHVwcy4gQWRkZWQgV1JPTkdfSElFUkFSQ0hZIHJldHVybiB2YWx1ZS4KCjIwMDUtMDctMjggMTA6Mzg6MDIgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQmV0dGVyIGRlYnVnIGlmIG5vIHRyYW5zZm9ybSBpcyBwb3NzaWJsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBCZXR0ZXIgZGVidWcgaWYgbm8gdHJhbnNmb3JtIGlzIHBvc3NpYmxlLgoKMjAwNS0wNy0yNyAyMDoyMjo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvcmFuZG9tL3d0YXkvbmV0d29yay10cmFuc3A6IFNvbWUgb2xkIGRvYyBJIGhhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9yYW5kb20vd3RheS9uZXR3b3JrLXRyYW5zcDoKCSAgU29tZSBvbGQgZG9jIEkgaGFkLgoKMjAwNS0wNy0yNyAxOTowMDozNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogRml4IHNlcmlhbGl6YXRpb24gb2Ygc2VlayBldmVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpOgoJICBGaXggc2VyaWFsaXphdGlvbiBvZiBzZWVrIGV2ZW50cy4KCjIwMDUtMDctMjcgMTg6NDc6NDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBGaXggY29tcGlsYXRpb24gYW5kIGZpeCBldmVudCBzZXJpYWxpemF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKEdTVF9TVEFSVF9URVNUKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlX3NpbmtfZXZlbnQpOgoJICBGaXggY29tcGlsYXRpb24gYW5kIGZpeCBldmVudCBzZXJpYWxpemF0aW9uLgoKMjAwNS0wNy0yNyAxODozMzowMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgZG9jcyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIENIQU5HRVMtMC45OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICBTb21lIGRvY3MgdXBkYXRlcwoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVsbCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX3NlbmRfZGlzY29udCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfZXZlbnRfaGFuZGxlciksCgkgIChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOiAoZ3N0X2Zha2Vfc2lua19ldmVudCk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZV9zaW5rX2V2ZW50KToKCSAgRXZlbnQgdXBkYXRlcy4KCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIFVzZSBmYXN0ZXIgY2FzdHMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NlZWspOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIFVwZGF0ZSBnc3RfZWxlbWVudF9zZWVrLgoJICAqIGdzdC9nc3RldmVudC5jOiAoZ3N0X2V2ZW50X2ZpbmFsaXplKSwgKF9nc3RfZXZlbnRfY29weSksCgkgIChnc3RfZXZlbnRfbmV3KSwgKGdzdF9ldmVudF9uZXdfY3VzdG9tKSwgKGdzdF9ldmVudF9nZXRfc3RydWN0dXJlKSwKCSAgKGdzdF9ldmVudF9uZXdfZmx1c2hfc3RhcnQpLCAoZ3N0X2V2ZW50X25ld19mbHVzaF9zdG9wKSwKCSAgKGdzdF9ldmVudF9uZXdfZW9zKSwgKGdzdF9ldmVudF9uZXdfbmV3c2VnbWVudCksCgkgIChnc3RfZXZlbnRfcGFyc2VfbmV3c2VnbWVudCksIChnc3RfZXZlbnRfbmV3X3RhZyksCgkgIChnc3RfZXZlbnRfcGFyc2VfdGFnKSwgKGdzdF9ldmVudF9uZXdfZmlsbGVyKSwgKGdzdF9ldmVudF9uZXdfcW9zKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9xb3MpLCAoZ3N0X2V2ZW50X25ld19zZWVrKSwKCSAgKGdzdF9ldmVudF9wYXJzZV9zZWVrKSwgKGdzdF9ldmVudF9uZXdfbmF2aWdhdGlvbik6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgIE1ha2UgR3N0RXZlbnQgdXNlIEdzdFN0cnVjdHVyZS4gQWRkIHBhcnNpbmcgY29kZSwgbWFrZSBzdXJlIHRoZQoJICBBUEkgaXMgc3VmZmljaWVudGx5IGdlbmVyaWMuCgkgIE1hcmsgcG9zc2libGUgZGlyZWN0aW9ucyBvZiBldmVudHMgYW5kIHNlcmlhbGl6YXRpb24uCgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX2luaXQpLCAoZ3N0X21lc3NhZ2VfZmluYWxpemUpLAoJICAoX2dzdF9tZXNzYWdlX2NvcHkpLCAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3NlZ21lbnRfZG9uZSksIChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKSwKCSAgKGdzdF9tZXNzYWdlX3BhcnNlX3NlZ21lbnRfc3RhcnQpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9kb25lKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgVXBkYXRlIGZvciBuZXcgZXZlbnRzLgoJICBDYXRjaCBldmVudHMgc2VudCBpbiB3cm9uZyBkaXJlY3Rpb25zLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xpbmtfc3JjKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAoZ3N0X3F1ZXVlX2hhbmRsZV9zcmNfcXVlcnkpOgoJICBFdmVudCB1cGRhdGVzLgoJICAqIGdzdC9nc3R0YWcuYzoKCSAgKiBnc3QvZ3N0dGFnLmg6CgkgIFJlbW92ZSBldmVudCBjb2RlIGZyb20gdGhpcyBmaWxlLgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF9wYWNrZXRfZnJvbV9ldmVudCksCgkgIChnc3RfZHBfZXZlbnRfZnJvbV9wYWNrZXQpOgoJICBFdmVudCB1cGRhdGVzLgoKMjAwNS0wNy0yNyAxNTowNTo0NSArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiBNYWtlIGRlYnVnZ2luZyBhY3R1YWxseSB1c2VmdWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpOgoJICBNYWtlIGRlYnVnZ2luZyBhY3R1YWxseSB1c2VmdWwuCgoyMDA1LTA3LTI1IDEyOjMxOjA4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0cGFkLmM6IEltcGxlbWVudCBkZWZhdWx0IGZpeGF0aW9uIG9uY2UgYWdhaW4sIHNvIHRoYXQgZ3N0X3BhZF9maXhhdGUoKSBhY3R1YWxseSBkb2VzIGFueXRoaW5nIGF0IGFsbC4gVGhpcyBwcm8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZml4YXRlX3ZhbHVlKSwgKGdzdF9wYWRfZGVmYXVsdF9maXhhdGUpLAoJICAoZ3N0X3BhZF9maXhhdGVfY2Fwcyk6CgkgIEltcGxlbWVudCBkZWZhdWx0IGZpeGF0aW9uIG9uY2UgYWdhaW4sIHNvIHRoYXQgZ3N0X3BhZF9maXhhdGUoKQoJICBhY3R1YWxseSBkb2VzIGFueXRoaW5nIGF0IGFsbC4gVGhpcyBwcm9iYWJseSBuZWVkcyB0byBiZSBzb21lCgkgIHNvcnQgb2YgYSBsYXN0IHJlc29ydCwgYW5kIHVzZSBwcm9maWxlLWJhc2VkIGZpeGF0aW9uIGZpcnN0LCBidXQKCSAgc2luY2UgdGhhdCBkb2Vzbid0IGV4aXN0IHlldCwgdGhpcyBpcyB0aGUgYmVzdCB3ZSBoYXZlLiBGaXhlcwoJICB2aXN1YWxpemF0aW9uIGluIFRvdGVtLgoKMjAwNS0wNy0yMiAxMTo0NzoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDogU21hbGwgdXBkYXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgIFNtYWxsIHVwZGF0ZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlX3NpbmtfZG9fc3luYyksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X2Jhc2Vfc2lua19hY3RpdmF0ZV9wdWxsKToKCSAgU29tZSBtb3JlIGNvbW1lbnRzLgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZV9zcmNfY3JlYXRlKToKCSAgRml4IGhhbmRvZmYgbWFyc2hhbGwuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfY2xhc3NfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtX2lwKToKCSAgV2UncmUgYSByZWFsIGlucGxhY2UgZWxlbWVudC4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpOgoJICBBZGRlZCBzb21lIGNvbW1lbnRzLgoJICAqIHRlc3RzL2xhdC5jOiAoZmFrZXNyYyksIChmYWtlc2luayksIChzaW1wbGUpLCAocXVldWUpLCAobWFpbik6CgkgICogdGVzdHMvbXV4aW5nL2Nhc2UxLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9keW5hbWljLXBpcGVsaW5lLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9pbnRlcnJ1cHQxLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9pbnRlcnJ1cHQyLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9pbnRlcnJ1cHQzLmM6IChtYWluKToKCSAgKiB0ZXN0cy9zY2hlZC9ydW54bWwuYzogKG1haW4pOgoJICAqIHRlc3RzL3NjaGVkL3NjaGVkLXN0cmVzcy5jOiAobWFpbik6CgkgICogdGVzdHMvc2Vla2luZy9zZWVraW5nMS5jOiAoZXZlbnRfcmVjZWl2ZWQpLCAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUyLmM6IChidXNfaGFuZGxlciksICh0aW1lb3V0X2Z1bmMpLAoJICAobWFpbik6CgkgICogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUzLmM6IChtYWluKToKCSAgKiB0ZXN0cy90aHJlYWRzdGF0ZS90aHJlYWRzdGF0ZTQuYzogKG1haW4pOgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlNS5jOiAobWFpbik6CgkgIEZpeCB0aGUgdGVzdHMuCgoyMDA1LTA3LTIxIDE3OjIyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1zZWVraW5nLnR4dDogU29tZSBzbWFsbCBhZGRpdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc2Vla2luZy50eHQ6CgkgIFNvbWUgc21hbGwgYWRkaXRpb25zLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19nZXRfdGltZXMpLCAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIGRpc2NvbnQgdmFsdWVzIGFyZSBnaW50NjQsIGhhbmRsZSB0aGUgbWF0aCBjb3JyZWN0bHkuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2xvb3ApOgoJICBNYWtlIHRoZSBiYXNlc3JjIHJlcG9ydCBlcnJvciBpZiB0aGUgc291cmNlIHBhZCBpcyBub3QgbGlua2VkLgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xpbmtfc3JjKSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlX3B1c2gpOgoJICBNYWtlIHF1ZXVlIGNvbGxlY3QgZGF0YSBldmVuIGlmIHRoZSBzcmNwYWQgaXMgbm90IGxpbmtlZC4KCSAgU3RhcnQgcHVzaGluZyBvdXQgZGF0YSBhcyBzb29uIGFzIGl0IGlzIGxpbmtlZC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayksIChnc3RfZmxvd19nZXRfbmFtZSk6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgIEFkZGVkIGdzdF9mbG93X2dldF9uYW1lKCkgdG8gZWFzZSBlcnJvciByZXBvcnRpbmcuCgoyMDA1LTA3LTIwIDE4OjAyOjEzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdG1lc3NhZ2UuKjogQWRkZWQgYSBidW5jaCBvZiBtZXNzYWdlcyBmb3IgYWR2YW5jZWQgc2Vla2luZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X3N0YXJ0KSwKCSAgKGdzdF9tZXNzYWdlX25ld19zZWdtZW50X2RvbmUpLCAoZ3N0X21lc3NhZ2VfcGFyc2Vfc2VnbWVudF9zdGFydCksCgkgIChnc3RfbWVzc2FnZV9wYXJzZV9zZWdtZW50X2RvbmUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIEFkZGVkIGEgYnVuY2ggb2YgbWVzc2FnZXMgZm9yIGFkdmFuY2VkIHNlZWtpbmcuCgkgICogZ3N0L3BhcnNlL2dyYW1tYXIueToKCSAgKiBsaWJzL2dzdC9jb250cm9sL2RwYXJhbW1hbmFnZXIuYzogKGdzdF9kcG1hbl9zZXRfcGFyZW50KSwKCSAgKGdzdF9kcG1hbl9zdGF0ZV9jaGFuZ2VkKToKCSAgRml4IHNvbWUgbmV3LXBhZCAtPiBwYWQtYWRkZWQgc2lnbmFscwoKMjAwNS0wNy0yMCAxNzoyMjoyNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy86IERvY3VtZW50IG5ldy1wYWQvc3RhdGUtY2hhbmdlIHNpZ25hbCByZW5hbWVzIGFuZCB0aGUgRml4ZWRMaXN0IHR5cGUgcmVuYW1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgRG9jdW1lbnQgbmV3LXBhZC9zdGF0ZS1jaGFuZ2Ugc2lnbmFsIHJlbmFtZXMgYW5kIHRoZSBGaXhlZExpc3QKCSAgdHlwZSByZW5hbWUuCgoyMDA1LTA3LTIwIDE3OjE2OjQ0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBHc3RFbGVtZW50OjpuZXctcGFkIC0+IHBhZC1hZGRlZCwgR3N0RWxlbWVudDo6c3RhdGUtY2hhbmdlIC0+IHN0YXRlLWNoYW5nZWQsIEdzdFZhbHVlRml4ZWRMaXN0IC0+IEdzdFZhbHVlQXJyYXksIGFkZCAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtaGVsbG93b3JsZC54bWw6CgkgICogZG9jcy9tYW51YWwvYmFzaWNzLXBhZHMueG1sOgoJICAqIGRvY3MvcmFuZG9tL2RzLzAuOS1zdWdnZXN0ZWQtY2hhbmdlczoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksIChnc3RfZWxlbWVudF9zZWVrKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3Rmb3JtYXQuaDoKCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX3ZhbHVlX2dldF9nZW5lcmljX3R5cGUpLAoJICAoZ3N0X3N0cnVjdHVyZV9wYXJzZV9hcnJheSksIChnc3Rfc3RydWN0dXJlX3BhcnNlX3ZhbHVlKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF90eXBlX2lzX2ZpeGVkKSwKCSAgKGdzdF92YWx1ZV9saXN0X3ByZXBlbmRfdmFsdWUpLCAoZ3N0X3ZhbHVlX2xpc3RfYXBwZW5kX3ZhbHVlKSwKCSAgKGdzdF92YWx1ZV9saXN0X2dldF9zaXplKSwgKGdzdF92YWx1ZV9saXN0X2dldF92YWx1ZSksCgkgIChnc3RfdmFsdWVfdHJhbnNmb3JtX2FycmF5X3N0cmluZyksIChnc3RfdmFsdWVfc2VyaWFsaXplX2FycmF5KSwKCSAgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9hcnJheSksIChnc3RfdmFsdWVfaW50ZXJzZWN0X2FycmF5KSwKCSAgKGdzdF92YWx1ZV9pc19maXhlZCksIChfZ3N0X3ZhbHVlX2luaXRpYWxpemUpOgoJICAqIGdzdC9nc3R2YWx1ZS5oOgoJICBHc3RFbGVtZW50OjpuZXctcGFkIC0+IHBhZC1hZGRlZCwgR3N0RWxlbWVudDo6c3RhdGUtY2hhbmdlIC0+CgkgIHN0YXRlLWNoYW5nZWQsIEdzdFZhbHVlRml4ZWRMaXN0IC0+IEdzdFZhbHVlQXJyYXksIGFkZCBmb3JtYXQgYW5kCgkgIGZsYWdzIGFzIHRoZWlyIG93biBhcmd1bWVudHMgaW4gZ3N0X2VsZW1lbnRfc2VlaygpIChzaG91bGQgaW1wcm92ZQoJICAiYmluZGVhYmlsaXR5IiksIHJlbW92ZSBmdW5jdGlvbiBnZW5lcmF0b3JzIHNpbmNlIHRoZXkgZG9uJ3Qgd29yawoJICB1bmRlciBhIHdob2xlIGJ1bmNoIG9mIGNvbXBpbGVycyAodGhleSB3ZXJlIGRlcHJlY2F0ZWQgYWxyZWFkeQoJICBhbnl3YXkpLgoKMjAwNS0wNy0yMCAxNzoxNToxOSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3Quc3VwcDoKCSogY29tbW9uOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSAgcGF0Y2ggZnJvbSBFZGdhcmQgdG8gcHJvcGVybHkgc3VwcHJlc3MgdGhlc2Ugd2FybmluZ3MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBhdGNoIGZyb20gRWRnYXJkIHRvIHByb3Blcmx5IHN1cHByZXNzIHRoZXNlIHdhcm5pbmdzCgoyMDA1LTA3LTIwIDE2OjIwOjM5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0aW5mby4qOiBGaXggaWxsZWdhbCBjYXN0IG9uIHNvbWUgcGxhdGZvcm1zICgjMzA5MjUzKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGluZm8uYzogKF9nc3RfZGVidWdfbmFtZW9mX2Z1bmNwdHIpLAoJICAoX2dzdF9kZWJ1Z19yZWdpc3Rlcl9mdW5jcHRyKToKCSAgKiBnc3QvZ3N0aW5mby5oOgoJICBGaXggaWxsZWdhbCBjYXN0IG9uIHNvbWUgcGxhdGZvcm1zICgjMzA5MjUzKS4KCjIwMDUtMDctMjAgMTE6MzU6MTggKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RtZXNzYWdlLio6IEFkZCBfbmV3X2N1c3RvbSwgbWFrZSBfbmV3X2FwcGxpY2F0aW9uIGEgbWFjcm8gdG8gX25ld19jdXN0b20uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfY3VzdG9tKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICBBZGQgX25ld19jdXN0b20sIG1ha2UgX25ld19hcHBsaWNhdGlvbiBhIG1hY3JvIHRvIF9uZXdfY3VzdG9tLgoKMjAwNS0wNy0yMCAxMDo1ODoxMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuKjogQWRkIGEgZ2Jvb2xlYW4gdG8gZGVjaWRlIHdoZW4gdG8gcHVzaCBvdXQgYSBkaXNjb250LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZG9fc2VlayksIChnc3RfYmFzZV9zcmNfbG9vcCksIChnc3RfYmFzZV9zcmNfc3RhcnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgQWRkIGEgZ2Jvb2xlYW4gdG8gZGVjaWRlIHdoZW4gdG8gcHVzaCBvdXQgYSBkaXNjb250LgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19xdWVyeSksCgkgIChnc3RfcXVldWVfc2lua19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9zcmNfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfcXVldWVfc2V0X3Byb3BlcnR5KSwgKGdzdF9xdWV1ZV9nZXRfcHJvcGVydHkpOgoJICBTb21lIGNsZWFudXBzLgoJICAqIHRlc3RzL3RocmVhZHN0YXRlL3RocmVhZHN0YXRlMS5jOiAobWFpbik6CgkgIE1ha2UgYSB0aHJlYWQgdGVzdCBjb21waWxlIGFuZCBydW4uLi4gdmVyeSBzaWxseS4uCgoyMDA1LTA3LTIwIDEwOjEzOjQ2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDogTWVudGlvbiByZW1vdmFsIG9mIGxpYmdzdGdjb25mLTAuOS5sYSBhbmQgZXhpc3RlbmNlIG9mIGdjb25mIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgTWVudGlvbiByZW1vdmFsIG9mIGxpYmdzdGdjb25mLTAuOS5sYSBhbmQgZXhpc3RlbmNlIG9mIGdjb25mCgkgIGVsZW1lbnRzLgoKMjAwNS0wNy0yMCAwODoyOTowNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9wd2cvOiBEb2N1bWVudCBiYXNlIGNsYXNzZXMsIHVwZGF0ZSBzZWN0aW9ucyBvZiBuLXRvLTEgYW5kIDEtdG8tbiAobXV4ZXIsIGZpeCBzb21lIGNvZGUgZXhhbXBsZXMgYW5kIGxpbmtzIGFuZCB1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9pbnRyby1wcmVmYWNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1iYXNlLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1tYW5hZ2VyLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1udG9uLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1udG9vbmUueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW9uZXRvbi54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgRG9jdW1lbnQgYmFzZSBjbGFzc2VzLCB1cGRhdGUgc2VjdGlvbnMgb2Ygbi10by0xIGFuZCAxLXRvLW4gKG11eGVyLAoJICBkZW11eGVyKSwgcmVtb3ZlIG4tdG8tbiAod2FzIG5ldmVyIHdyaXR0ZW4pLCBmaXggc29tZSBjb2RlIGV4YW1wbGVzCgkgIGFuZCBsaW5rcyBhbmQgdXBkYXRlIHRoZSBwb3J0aW5nIHNlY3Rpb24gdG8gaW5jbHVkZSBhbGwgdGhpcy4KCjIwMDUtMDctMTkgMTc6NDY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cXVldWUuKjogUHJvcGFnYXRlIEdzdEZsb3dSZXR1cm4gbW9yZSBpbnRlbGxpZ2VudGx5IHVwc3RyZWFtIGFuZCBvdXRwdXQgYW4gRVJST1IvRU9TIHdoZW4gc3RyZWFtaW5nIHN0b3BwZWQgZHUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX2NoYWluKSwgKGdzdF9xdWV1ZV9sb29wKSwgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX2V2ZW50KSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc3JjX3F1ZXJ5KSwgKGdzdF9xdWV1ZV9zaW5rX2FjdGl2YXRlX3B1c2gpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZV9wdXNoKSwgKGdzdF9xdWV1ZV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X3F1ZXVlX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdHF1ZXVlLmg6CgkgIFByb3BhZ2F0ZSBHc3RGbG93UmV0dXJuIG1vcmUgaW50ZWxsaWdlbnRseSB1cHN0cmVhbSBhbmQgb3V0cHV0CgkgIGFuIEVSUk9SL0VPUyB3aGVuIHN0cmVhbWluZyBzdG9wcGVkIGR1ZSB0byBmYXRhbCBlcnJvci4KCjIwMDUtMDctMTkgMTQ6NTI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IERvbid0IGJsb2NrIGZvcmV2ZXIgZm9yIHRoZSBzdGF0ZSBjaGFuZ2UgdG8gY29tcGxldGUsIHRoZSBwaXBlbGluZSBhbHJlYWR5IGRpZCB3aXRoIGEgc2Vuc2libGUgdGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoY2hlY2tfaW50ciksIChldmVudF9sb29wKSwgKG1haW4pOgoJICBEb24ndCBibG9jayBmb3JldmVyIGZvciB0aGUgc3RhdGUgY2hhbmdlIHRvIGNvbXBsZXRlLCB0aGUKCSAgcGlwZWxpbmUgYWxyZWFkeSBkaWQgd2l0aCBhIHNlbnNpYmxlIHRpbWVvdXQuCgoyMDA1LTA3LTE5IDEzOjQzOjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBNYWtlIHN1cmUgd2UgbmV2ZXIgY2FsbCB0aGUgY3JlYXRlIGZ1bmN0aW9uIGlzIHdlIGdvdCBkZWFjdGl2YXRlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSk6CgkgIE1ha2Ugc3VyZSB3ZSBuZXZlciBjYWxsIHRoZSBjcmVhdGUgZnVuY3Rpb24gaXMgd2UKCSAgZ290IGRlYWN0aXZhdGVkLgoKMjAwNS0wNy0xOSAxMToyNzowNyArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIHVwZGF0ZSBmb3IgbGF0ZXN0IGNoYW5nZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBmb3IgbGF0ZXN0IGNoYW5nZXMKCjIwMDUtMDctMTkgMTA6NDA6NDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9wYXJzZS9wYXJzZS5sOiBBdHRlbXB0IHRvIHNvbHZlIGJ1ZyAjMTcyODE1LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xOSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvcGFyc2UvcGFyc2UubDogQXR0ZW1wdCB0byBzb2x2ZSBidWcgIzE3MjgxNS4KCjIwMDUtMDctMTkgMDk6MTk6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspOgoJICBTbWFsbCBkb2NzIHVwZGF0ZXMuCgkgIE9ubHkgdXBkYXRlIHRoZSBzZWVraW5nIHZhbHVlcyB3aGVuIHdlIGFyZSBub3QKCSAgYnVzeSBzdHJlYW1pbmcuCgoyMDA1LTA3LTE4IDE3OjQzOjUyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgT29wcywgaWdub3JlIHRoZSByZXN1bHQgb2YgZ3N0X3BhZF9wdXNoX2V2ZW50IGhlcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBPb3BzLCBpZ25vcmUgdGhlIHJlc3VsdCBvZiBnc3RfcGFkX3B1c2hfZXZlbnQgaGVyZS4KCjIwMDUtMDctMTggMTc6MTI6MzYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBTZW5kIGRpc2NvbnQgZXZlbnQgZnJvbSB0aGUgbG9vcCBmdW5jdGlvbiwgYXMgcGFkcyBhcmVuJ3QgYWN0aXZhdGVkIHlldCBpbiB0aGUgYWN0aXZhdGVfcHVzaCBoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19sb29wKSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgU2VuZCBkaXNjb250IGV2ZW50IGZyb20gdGhlIGxvb3AgZnVuY3Rpb24sIGFzIHBhZHMKCSAgYXJlbid0IGFjdGl2YXRlZCB5ZXQgaW4gdGhlIGFjdGl2YXRlX3B1c2ggaGFuZGxlci4KCSAgKiBnc3QvZ3N0YmluLmM6IChiaW5fYnVzX2hhbmRsZXIpOgoJICBEb24ndCBsZWFrIGVsZW1lbnQgbmFtZS4KCjIwMDUtMDctMTggMTQ6NDc6MzkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNvbmZpZ3VyZS5hYzogVXNlIEFTX0xJQlRPT0xfVEFHUy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY29uZmlndXJlLmFjOiBVc2UgQVNfTElCVE9PTF9UQUdTLgoKMjAwNS0wNy0xOCAxMjo1ODoyNyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczogUmVtb3ZlIGRlbGV0ZWQgdHlwZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgUmVtb3ZlIGRlbGV0ZWQgdHlwZXMuCgoyMDA1LTA3LTE4IDEyOjQ5OjUzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdF9wcml2YXRlLmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3Rjb25maWcuaC5pbjoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5Lmg6CgkqIGdzdC9nc3RlcnJvci5jOgoJKiBnc3QvZ3N0ZXJyb3IuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3RnaG9zdHBhZC5jOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdG1pbmlvYmplY3QuaDoKCSogZ3N0L2dzdG9iamVjdC5jOgoJKiBnc3QvZ3N0b2JqZWN0Lmg6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBhZC5oOgoJKiBnc3QvZ3N0cGFyc2UuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luZmVhdHVyZS5oOgoJKiBnc3QvZ3N0cXVlcnkuaDoKCSogZ3N0L2dzdHNjaGVkdWxlci5jOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmg6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOgoJKiBnc3QvcmVnaXN0cmllcy9nc3R4bWxyZWdpc3RyeS5jOgoJKiBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzoKCSogbGlicy9nc3QvY29udHJvbC9kcGFyYW1tYW5hZ2VyLmg6CgkqIHRlc3RzL2NoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogdG9vbHMvZ3N0LWluc3BlY3QuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgUmVtb3ZlZCBwbHVnYWJsZSBzY2hlZHVsZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgUmVtb3ZlZCBwbHVnYWJsZSBzY2hlZHVsZXJzLgoJICBSZW1vdmVkIFNjaGVkdWxlci9NYW5hZ2VyIGZyb20gZWxlbWVudHMuCgkgIFJlbW92ZWQgZ3N0dHlwZXMuaCwgcmVhcnJhbmdlZCBpbmNsdWRlcy4KCSAgUmVtb3ZlZCBkZXBlbmRlbmN5IHBhZDwtPmVsZW1lbnQsIGVsZW1lbnQ8PnBpcGVsaW5lLCBhbmQKCSAgdmFyaW91cyBvdGhlcnMsICBmaXggaW5jbHVkZXMuCgkgIGltcGxlbWVudCBnc3RfcGFkX2dldF9wYXJlbnQoKSB3aXRoIGdzdF9vYmplY3RfZ2V0X3BhcmVudCgpCgkgIE1ha2UgR3N0VGFzayBzZWZjb250YWluZWQuCgkgIEZpeCBfZ2V0X3N0YXRlKCkgb24gR3N0QmluLCBpdCBkaWQgbm90IHJldHVybiBBU1lOQyB3aXRoIGEgMAoJICB0aW1lb3V0LgoJICBGaXggZW5kbGVzcyBsb29wIGluIGl0ZXJhdG9yX2ZvbGRfd2l0aF9yZXN5bmMuCgoyMDA1LTA3LTE4IDA5OjIyOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIG9sZCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGFyY2guaDoKCSAgUmVtb3ZlIG9sZCBmaWxlLgoKMjAwNS0wNy0xOCAwODo1MTozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogTm8gbW9yZSBjb3RocmVhZHMuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgIE5vIG1vcmUgY290aHJlYWRzLmgKCjIwMDUtMDctMTggMDg6NDM6MjcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvY290aHJlYWRzLio6IExldCdzIHJlbW92ZSB0aGVzZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2NvdGhyZWFkcy5jOgoJICAqIGdzdC9jb3RocmVhZHMuaDoKCSAgTGV0J3MgcmVtb3ZlIHRoZXNlLgoKMjAwNS0wNy0xOCAwODoyODo0OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBtb3JlIGRvY3MgaW4gdGhlIHdvcmtzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWR5bmFtaWMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXNlZWtpbmcudHh0OgoJICBTb21lIG1vcmUgZG9jcyBpbiB0aGUgd29ya3MuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlX3B1bGwpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpOgoJICBSZWZjb3VudGluZyBmaXhlcy4KCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksIChnc3RfYnVzX3BvbGwpOgoJICBDbGVhbnVwcy4KCSAgKiBnc3QvZ3N0ZXZlbnQuYzogKGdzdF9ldmVudF9maW5hbGl6ZSk6CgkgIFNldCBTUkMgdG8gTlVMTC4KCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X3VubGluayksCgkgIChnc3RfcGFkX2dldF9wYXJlbnRfZWxlbWVudCksIChnc3RfcGFkX3Byb3h5X2dldGNhcHMpLAoJICAoZ3N0X3BhZF9wcm94eV9zZXRjYXBzKToKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgQWRkIF9nZXRfcGFyZW50X2VsZW1lbnQoKSB0byBnZXQgYSBwYWRzIHBhcmVudCBhcyBhbiBlbGVtZW50LgoKMjAwNS0wNy0xNyAyMjo0NDowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL2dzdC9nc3RiaW4uYzogUmVtb3ZlIGJvZ3VzIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RiaW4uYzogKEdTVF9TVEFSVF9URVNUKToKCSAgUmVtb3ZlIGJvZ3VzIHRlc3QuCgoyMDA1LTA3LTE3IDIyOjI2OjAyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmVmY291bnRpbmcgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3BhZF9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3NpbmtfcGFkX3NldGNhcHMpLCAoZ3N0X2Jhc2Vfc2lua19wYWRfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCksIChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFpbiksIChnc3RfYmFzZV9zaW5rX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19kZWFjdGl2YXRlKSwgKGdzdF9iYXNlX3NpbmtfYWN0aXZhdGVfcHVzaCksCgkgIChnc3RfYmFzZV9zaW5rX2FjdGl2YXRlX3B1bGwpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBSZWZjb3VudGluZyBmaXhlcy4KCSAgRml4IGxvZ2ljIGZvciByZXR1cm5pbmcgQVNZTkMgd2hlbiBub3QgcHJlcm9sbGVkLgoKMjAwNS0wNy0xNyAyMjoyMjo1MiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWV1ZS5jOiBGaXggbmFzdHkgcmVmY291bnQgYnVnLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCk6CgkgIEZpeCBuYXN0eSByZWZjb3VudCBidWcuCgoyMDA1LTA3LTE2IDE5OjI1OjQxICswMDAwICBQaGlsaXBwZSBLYWxhZiA8cGhpbGlwcGUua2FsYWZAY29sbGFib3JhLmNvLnVrPgoKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJICBNb3ZlZCBmZHNyYyB0byBnc3QtcGx1Z2lucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE1vdmVkIGZkc3JjIHRvIGdzdC1wbHVnaW5zLgoKMjAwNS0wNy0xNiAxNTo0MzoxMCArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkqIENoYW5nZUxvZzoKCSAgRm9yZ290IGNoYW5nZWxvZyBlbnRyeQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgRm9yZ290IGNoYW5nZWxvZyBlbnRyeQoKMjAwNS0wNy0xNiAxNTo0MTowNCArMDAwMCAgUGhpbGlwcGUgS2FsYWYgPHBoaWxpcHBlLmthbGFmQGNvbGxhYm9yYS5jby51az4KCgkqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmRzcmMuaDoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmMgZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmggZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmMgZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE2IFBoaWxpcHBlIEtoYWxhZiA8YnVyZ2VyQHNwZWVkeS5vcmc+CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmMKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmRzcmMuaAoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtCgkgIFBvcnRlZCBmZHNyYyB0byAwLjkuCgoyMDA1LTA3LTE2IDE0OjUyOjE1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogRml4IGNvbXBpbGUgZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19kb19zeW5jKToKCSAgRml4IGNvbXBpbGUgZXJyb3IuCgoyMDA1LTA3LTE2IDE0OjQxOjI1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogU3RvcmUgYW5kIHVzZSBkaXNjb250IHZhbHVlcyB3aGVuIHN5bmNpbmcgYnVmZmVycyBhcyBkZXNjcmliZWQgaW4gZGVzaWduIGRvY3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpLAoJICAoZ3N0X2Jhc2Vfc2lua19ldmVudCksIChnc3RfYmFzZV9zaW5rX2dldF90aW1lcyksCgkgIChnc3RfYmFzZV9zaW5rX2RvX3N5bmMpLCAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgIFN0b3JlIGFuZCB1c2UgZGlzY29udCB2YWx1ZXMgd2hlbiBzeW5jaW5nIGJ1ZmZlcnMgYXMgZGVzY3JpYmVkCgkgIGluIGRlc2lnbiBkb2NzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlX3NyY19zZW5kX2Rpc2NvbnQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2RvX3NlZWspLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLCAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlX3NyY19hY3RpdmF0ZV9wdXNoKToKCSAgUHVzaCBkaXNjb250IGV2ZW50IHdoZW4gc3RhcnRpbmcuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKToKCSAgU21hbGwgY2xlYW51cHMuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBTbWFsbCBjbGVhbnVwcyBpbiBiYXNlX3RpbWUgIGRpc3RyaWJ1dGlvbi4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfc2V0X2Jhc2VfdGltZSksCgkgIChnc3RfZWxlbWVudF9nZXRfYmFzZV90aW1lKSwgKGdzdF9lbGVtZW50X2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgQWRkZWQgbWV0aG9kcyBmb3IgdGhlIGJhc2VfdGltZSBvZiB0aGUgZWxlbWVudC4KCSAgU29tZSBNVCBmaXhlcy4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X3BpcGVsaW5lX3NldF9uZXdfc3RyZWFtX3RpbWUpLAoJICAoZ3N0X3BpcGVsaW5lX2dldF9sYXN0X3N0cmVhbV90aW1lKToKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSAgTVQgZml4ZXMuCgkgIEhhbmRsZSBzZWVraW5nIGFzIGRlc2NyaWJlZCBpbiBkZXNpZ24gZG9jLCByZW1vdmUgc3RyZWFtX3RpbWUKCSAgaGFjay4KCSAgQ2xlYW51cHMgY2xvY2sgYW5kIHN0cmVhbV90aW1lIHNlbGVjdGlvbiBjb2RlLiBBZGRlZCBhY2Nlc3NvcnMKCSAgZm9yIHRoZSBzdHJlYW1fdGltZS4KCjIwMDUtMDctMTYgMTQ6MDY6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RlcnJvci5jIChfZ3N0X2NvcmVfZXJyb3JzX2luaXQpOiBVc2UgdGhlIG1hZ2ljIHdvcmQuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0ZXJyb3IuYyAoX2dzdF9jb3JlX2Vycm9yc19pbml0KTogVXNlIHRoZSBtYWdpYyB3b3JkLi4KCjIwMDUtMDctMTYgMTM6NTA6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IE1ha2UgZWxlbWVudHMgc2lsZW50IGFzIHRoZSBkZWVwX25vdGlmeSByZWZzIHRoZSBwYXJlbnQsIHdoaWNoIG1pZ2h0IG1ha2UgdGhlIHRlc3QgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBNYWtlIGVsZW1lbnRzIHNpbGVudCBhcyB0aGUgZGVlcF9ub3RpZnkgcmVmcyB0aGUKCSAgcGFyZW50LCB3aGljaCBtaWdodCBtYWtlIHRoZSB0ZXN0IGZhaWwuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfZ2hvc3RfcGFkX2RvX2FjdGl2YXRlX3B1c2gpOgoJICBEb24ndCBob2xkIHRoZSBsb2NrIGZvciB0b28gbG9uZy4KCjIwMDUtMDctMTYgMTI6MzM6MTMgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERvbid0IHVucmVmIHRoZSBjYXBzIHdlIHBhc3NlZCB0byBnc3RfY2Fwc19tYWtlX3dyaXRhYmxlKCkgYWZ0ZXIgcGFzc2luZyB0aGVtLiBnc3RfY2Fwc19tYWtlX3cuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKToKCSAgRG9uJ3QgdW5yZWYgdGhlIGNhcHMgd2UgcGFzc2VkIHRvIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUoKSBhZnRlcgoJICBwYXNzaW5nIHRoZW0uIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUoKSB3aWxsIGRvIHRoYXQgZm9yIHVzLgoKMjAwNS0wNy0xNSAxNjoxMDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGNhcHMuaCAoZ3N0X2NhcHNfaXNfc2ltcGxlKTogUmVtb3ZlZCBkZXByZWNhdGVkIG1hY3JvICgjMTU3MzExKS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMTUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGNhcHMuaCAoZ3N0X2NhcHNfaXNfc2ltcGxlKTogUmVtb3ZlZCBkZXByZWNhdGVkIG1hY3JvCgkgICgjMTU3MzExKS4KCjIwMDUtMDctMTUgMTQ6NTk6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jIChtYXJzaGFsX1ZPSURfX01JTklPQkpFQ1QpOiBXcml0ZSBvdXIgb3duIG1hcnNoYWxsaW5nIGZ1bmN0aW9uIGZvciB0aGUgaGFuZG9mZiBzaWduYWwuIFByby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAobWFyc2hhbF9WT0lEX19NSU5JT0JKRUNUKTogV3JpdGUgb3VyCgkgIG93biBtYXJzaGFsbGluZyBmdW5jdGlvbiBmb3IgdGhlIGhhbmRvZmYgc2lnbmFsLiBQcm9wZXJseSB0eXBlIHRoZQoJICBidWZmZXIgYXMgYSBidWZmZXIuIEZpeGVzIHNvbWUgd2FybmluZ3MuIFNob3VsZCBkbyBhIG1vcmUgZ2VuZXJhbAoJICBzb2x1dGlvbi4KCSAgKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KTogUGx1ZyBpbnRvIHRoZSByaWdodCBtYXJzaGFsbGVyLgoKMjAwNS0wNy0xNSAxMzo0NDoxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogVXBkYXRlZCBkb2NzLCBtb3N0bHkgRElTQ09OVCByZWxhdGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LVRPRE8udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1ldmVudHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICBVcGRhdGVkIGRvY3MsIG1vc3RseSBESVNDT05UIHJlbGF0ZWQuCgoyMDA1LTA3LTE1IDEyOjU1OjMwICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6IHMvR1NUX1BBRF9MSU5LX1JFRlVTRUQvRkFMU0UvIGluIGdzdF9teV9maWx0ZXJfc2V0Y2FwcygpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXBhZHMueG1sOgoJICBzL0dTVF9QQURfTElOS19SRUZVU0VEL0ZBTFNFLyBpbiBnc3RfbXlfZmlsdGVyX3NldGNhcHMoKQoKMjAwNS0wNy0xNSAxMTowNTo1MiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdG9vbHMvZ3N0LXR5cGVmaW5kLmM6CgkgIHJlbW92ZSBpcnJlbGV2YW50IGNvZGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBpcnJlbGV2YW50IGNvZGUKCjIwMDUtMDctMTUgMTE6MDQ6MTggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRvb2xzL2dzdC10eXBlZmluZC5jOiBVcGRhdGUsIGFkZCBjb3B5cmlnaHQgYmxvY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTE1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiBVcGRhdGUsIGFkZCBjb3B5cmlnaHQgYmxvY2suCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpOgoJICBOb3JtYWxpemUgYW5kIHRydW5jYXRlIGNhcHMgYmVmb3JlIGZpeGF0aW9uLgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGNhcHMuYyAoZ3N0X2NhcHNfdHJ1bmNhdGUpOiBOZXcgZnVuY3Rpb24sIGRlc3RydWN0aXZlbHkKCSAgZGlzY2FyZHMgYWxsIGJ1dCB0aGUgZmlyc3Qgc3RydWN0dXJlIGZyb20gaXRzIGFyZ3VtZW50LgoKMjAwNS0wNy0xNSAxMDo0MTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uKjogTWFrZSBwYXNzdGhyb3VnaCB3b3JrIHVzaW5nIHRoZSBidWZmZXJwb29scy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3RyYW5zZm9ybV9jYXBzKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jb25maWd1cmVfY2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0X3NpemUpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2J1ZmZlcl9hbGxvYyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksIChnc3RfYmFzZV90cmFuc2Zvcm1fZ2V0cmFuZ2UpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NoYWluKSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldF9wYXNzdGhyb3VnaCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faXNfcGFzc3Rocm91Z2gpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgTWFrZSBwYXNzdGhyb3VnaCB3b3JrIHVzaW5nIHRoZSBidWZmZXJwb29scy4KCSAgQ2hhbmdlZCBBUEkgYSBiaXQsIHN1YmNsYXNzZXMgaGF2ZSB0byB3cml0ZSBpbnRvIGEgYnVmZmVyCgkgIHByb3ZpZGVkIGJ5IHRoZSBiYXNlIGNsYXNzLgoJICBNb3JlIGRlYnVnIGluZm8gaW4gbmVnbyBmdW5jdGlvbnMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfaW5pdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKToKCSAgUG9ydCB0byBuZXcgYmFzZSBjbGFzcy4KCjIwMDUtMDctMTUgMTA6MzA6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBUb3RhbGx5IGR1bXAgbWVzc2FnZXMgaW4gLWxhdW5jaCB3aXRoIHRoZSAtbSBvcHRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXdfc3RhdGVfY2hhbmdlZCk6CgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoZXZlbnRfbG9vcCksIChtYWluKToKCSAgVG90YWxseSBkdW1wIG1lc3NhZ2VzIGluIC1sYXVuY2ggd2l0aCB0aGUgLW0gb3B0aW9uLgoJICBGaXggbWVzc2FnZSBuYW1lIGZvciBTdGF0ZSBtZXNzYWdlcywKCjIwMDUtMDctMTQgMTg6NDU6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IFBvc3QgZXJyb3IgbWVzc2FnZXMgb24gZXJyb3JzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfbG9vcCk6CgkgIFBvc3QgZXJyb3IgbWVzc2FnZXMgb24gZXJyb3JzLgoKMjAwNS0wNy0xNCAxODoxMDowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RjYXBzLmM6IFJlbW92ZSBkZWJ1ZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpOgoJICBSZW1vdmUgZGVidWcgaW5mby4KCSAgKiBnc3QvZ3N0ZXJyb3IuaDoKCSAgRGVmaW5lIGVycm9yIGZvciBzdHJlYW0gc3RvcHBlZC4KCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19jaGFpbiksIChnc3RfcHJveHlfcGFkX2RvX2dldHJhbmdlKToKCSAgRG8gcHJvcGVyIHJldHVybiB2YWx1ZXMuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9nZXRfY2Fwc191bmxvY2tlZCksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9jaGFpbiksIChnc3RfcGFkX3B1c2gpLAoJICAoZ3N0X3BhZF9nZXRfcmFuZ2UpOgoJICBCZXR0ZXIgcmV0dXJuIHZhbHVlcy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFJlb3JnYW5pc2UgcmV0dXJuIHZhbHVlcywgYWRkIG1hY3JvIHRvIGNoZWNrIGZvciBmYXRhbCBlcnJvcnMuCgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhaW4pOgoJICBSZXR1cm4gcHJvcGVyIEdzdEZsb3dSZXR1cm4gdmFsdWVzLAoKMjAwNS0wNy0xNCAwOTozNToxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSogZG9jcy9nc3QvdG1wbC9nc3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc2luay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNldHJhbnNmb3JtLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y2Fwcy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29uZmlnLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnRkZXRhaWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbnVtdHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlcnJvci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGV2ZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsdGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Zm9ybWF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Z2hvc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbXBsZW1lbnRzaW50ZXJmYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RpbmZvLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtYWNyb3Muc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RvYmplY3Quc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWQuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwYWR0ZW1wbGF0ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHBhcnNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cGlwZWxpbmUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW5mZWF0dXJlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cXVlcnkuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RxdWV1ZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0cmVnaXN0cnlwb29sLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0c2NoZWR1bGVyZmFjdG9yeS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN0cnVjdHVyZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHN5c3RlbWNsb2NrLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dGFnbGlzdC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRhZ3NldHRlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHRyYWNlLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHJhc2hzdGFjay5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVmaW5kLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZWZpbmRmYWN0b3J5LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dHlwZXMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R1cmloYW5kbGVyLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dXJpdHlwZS5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHV0aWxzLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0dmFsdWUuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3R2ZXJzaW9uLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0eG1sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGNvbnRyb2wuc2dtbDoKCSogZG9jcy9saWJzL3RtcGwvZ3N0ZGF0YXByb3RvY29sLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdGRwYXJhbS5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcGxpbmludC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcG1hbi5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RkcHNtb290aC5zZ21sOgoJKiBkb2NzL2xpYnMvdG1wbC9nc3RnZXRiaXRzLnNnbWw6CgkqIGRvY3MvbGlicy90bXBsL2dzdHVuaXRjb252ZXJ0LnNnbWw6CgkqIGdzdC9iYXNlL2dzdHB1c2hzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHB1c2hzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICBtb3JlIGF1dGlzdGljIGNsZWFubGluZXNzIGluIGZ1bmN0aW9ucy9uYW1lcy9kZWZpbmVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtb3JlIGF1dGlzdGljIGNsZWFubGluZXNzIGluIGZ1bmN0aW9ucy9uYW1lcy9kZWZpbmVzCgoyMDA1LTA3LTEzIDE4OjI5OjQxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkgIGZpeCBkZWJ1ZyBpZmRlZgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRlYnVnIGlmZGVmCgoyMDA1LTA3LTEzIDE2OjI2OjA3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlX3NyY19zdGFydCk6IFBvc3QgYW4gZXJyb3IgaWYgdGhlIHNvdXJjZSBjb3VsZG4ndCBuZWdvdGlhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTEzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KTogUG9zdCBhbiBlcnJvciBpZiB0aGUKCSAgc291cmNlIGNvdWxkbid0IG5lZ290aWF0ZS4KCjIwMDUtMDctMTMgMTM6MTQ6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svZ3N0LnN1cHA6CgkqIHRlc3RzL2NoZWNrL2dzdC5zdXBwOgoJICBhZGQgYSBzdXBwcmVzc2lvbiBmcm9tIEVkZ2FyZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgc3VwcHJlc3Npb24gZnJvbSBFZGdhcmQKCjIwMDUtMDctMTMgMTM6MTA6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgbW92ZSB0d28gdGVzdHN1aXRlIGFwcHMgb3ZlciB0byB0aGUgY2hlY2sgZGlyCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRlc3RzdWl0ZS9jYXBzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3ZhbHVlX2NvbXBhcmUuYzoKCSAgKiB0ZXN0c3VpdGUvY2Fwcy92YWx1ZV9pbnRlcnNlY3QuYzoKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKEdTVF9TVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgIG1vdmUgdHdvIHRlc3RzdWl0ZSBhcHBzIG92ZXIgdG8gdGhlIGNoZWNrIGRpcgoKMjAwNS0wNy0xMiAxNzoxNzozNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogQWRkZWQgbW9yZSBkZWJ1ZyBpbmZvIGluIHRoZSBuZWdvdGlhdGUgcHJvY2Vzcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBBZGRlZCBtb3JlIGRlYnVnIGluZm8gaW4gdGhlIG5lZ290aWF0ZSBwcm9jZXNzLgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgIFByZXBhcmUgZm9yIHNlZ21lbnQgcGxheWJhY2suCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3NldF9jYXBzKToKCSAgQmV0dGVyIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgU29tZSBtb3JlIGRvY3MuCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAobWFpbik6CgkgIE5VTEwgcGlwZWxpbmUgb24gZXJyb3JzLgoKMjAwNS0wNy0xMiAxNzowNDo0MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJ1ZmZlci5jIChfZ3N0X2J1ZmZlcl9jb3B5KTogQ29weSB0aGUgYnVmZmVyIHdoZXRoZXIgb3Igbm90IGl0IGNvbWVzIGZyb20gYSBtYWxsb2MgcmVnaW9uLiBNYWtlIHN1cmUgb3VyIGNvcHkgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTEyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidWZmZXIuYyAoX2dzdF9idWZmZXJfY29weSk6IENvcHkgdGhlIGJ1ZmZlciB3aGV0aGVyIG9yCgkgIG5vdCBpdCBjb21lcyBmcm9tIGEgbWFsbG9jIHJlZ2lvbi4gTWFrZSBzdXJlIG91ciBjb3B5IGdldHMgZnJlZWQuCgoyMDA1LTA3LTEyIDE2OjI4OjM2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWVzc2FnZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkgIGZpeCByZWZjb3VudGluZyBvZiB3YXJuaW5nIGFuZCBlcnJvciBtZXNzYWdlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHJlZmNvdW50aW5nIG9mIHdhcm5pbmcgYW5kIGVycm9yIG1lc3NhZ2VzCgoyMDA1LTA3LTEyIDEzOjI2OjIyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgcmUtZW5hYmxlIGxlYWsgY2hlY2tpbmcgOikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlLWVuYWJsZSBsZWFrIGNoZWNraW5nIDopCgoyMDA1LTA3LTEyIDEyOjIwOjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgcGVyLXRlc3QgdmFsZ3JpbmQgdGFyZ2V0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgYWRkIHBlci10ZXN0IHZhbGdyaW5kIHRhcmdldHMKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9kYXRhX3Byb3RvY29sX3N1aXRlKSwgKG1haW4pOgoJICBjbGVhbiB1cAoKMjAwNS0wNy0xMiAwOTo0MTowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogaW5zdGF0ZSBtb3JlIHZhbGdyaW5kYWJsZSB0ZXN0cwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0xMiAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSAgPHRob21hcyBhdCBhcGVzdGFhcnQgZG90IG9yZz4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgaW5zdGF0ZSBtb3JlIHZhbGdyaW5kYWJsZSB0ZXN0cwoJICAqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGNoYWluX2Z1bmMpLCAoZXZlbnRfZnVuYyksCgkgIChHU1RfU1RBUlRfVEVTVCksIChmYWtlc3JjX3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0cGFkLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgICogY2hlY2svZ3N0L2dzdHN0cnVjdHVyZS5jOiAoR1NUX1NUQVJUX1RFU1QpOgoJICBmaXggdGVzdCBsZWFrcwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0bWluaW9iamVjdC5zZ21sOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZmluYWxpemUpOgoJICBmaXggdGhlIHN0YXRpYyBtdXRleCBsZWFrCgoyMDA1LTA3LTExIDE4OjQxOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGNoZWNrL01ha2VmaWxlLmFtOiBhZGQgdHdvIG1vcmUgdGVzdHMgZm9yIHZhbGdyaW5kaW5nCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgdHdvIG1vcmUgdGVzdHMgZm9yIHZhbGdyaW5kaW5nCgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChHU1RfU1RBUlRfVEVTVCk6CgkgIHRlc3QgcmVmY291bnQgb2YgZGVzZXJpYWxpemVkIGJ1ZmZlciwgZm91bmQgYSBsZWFrCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdG1pbmlvYmplY3Quc2dtbDoKCSAgYWRkIG1pbmlvYmplY3QgdG8gZG9jcwoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGFkZCBzb21lIGRvY3MKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3N0cmluZ191bndyYXApOgoJICBmaXggYSBoYXJkLXRvLWZpbmQgaW52YWxpZCB3cml0ZSBmb3Igb25lIG9mIHRoZSB0ZXN0cwoJICBmaXggYSBsZWFrIGZvciBkZXNlcmlhbGl6ZWQgYnVmZmVycwoKMjAwNS0wNy0xMSAxNTo0MTowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIGRvbid0IHZhbGdyaW5kIGFzIHBhcnQgb2YgbWFrZSBjaGVjayBmb3Igbm93CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkb24ndCB2YWxncmluZCBhcyBwYXJ0IG9mIG1ha2UgY2hlY2sgZm9yIG5vdwoKMjAwNS0wNy0xMSAxNToyMjoyNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIHNwZWNpZnkgdG9vbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3BlY2lmeSB0b29sCgoyMDA1LTA3LTExIDE1OjE4OjMyICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy86IFJld3JpdGUgc2NoZWR1bGluZy1jaGFwdGVyIGZvciBzY2hlZHVsaW5nIG1vZGVsIGluIDAuOS4gQWRkIGxvdHMgb2YgZXhhbXBsZSBjb2RlIGFuZCBleHBsYW5hdGlvbiBmb3IgcGFkIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYWR2YW5jZWQtZXZlbnRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1yZXF1ZXN0LnhtbDoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1zY2hlZHVsaW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9hcHBlbmRpeC1wb3J0aW5nLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1ib2lsZXIueG1sOgoJICAqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJICAqIGRvY3MvcHdnL290aGVyLW50b29uZS54bWw6CgkgIFJld3JpdGUgc2NoZWR1bGluZy1jaGFwdGVyIGZvciBzY2hlZHVsaW5nIG1vZGVsIGluIDAuOS4gQWRkIGxvdHMKCSAgb2YgZXhhbXBsZSBjb2RlIGFuZCBleHBsYW5hdGlvbiBmb3IgcGFkIGFjdGl2YXRpb24sIGxvb3AoKSBhbmQKCSAgZ2V0cmFuZ2UoKSBmdW5jdGlvbnMgYW5kIGEgYml0IG1vcmUuIFJlbW92ZSBvbGQgY29tbWVudHMgcG9pbnRpbmcKCSAgdG8gbG9vcC1mdW5jdGlvbnMuCgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBBZGQgbG9vcC9nZXRyYW5nZSBleGFtcGxlcy4KCjIwMDUtMDctMTEgMTU6MTA6NDAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0LnN1cHA6CgkqIGNoZWNrL2dzdC9nc3QuYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOgoJKiBjaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogY2hlY2svZ3N0L2dzdG1pbmlvYmplY3QuYzoKCSogY29uZmlndXJlLmFjOgoJKiBnc3QvZ3N0LmM6CgkqIGdzdC9nc3QuaDoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nc3Quc3VwcDoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YnVmZmVyLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0bWluaW9iamVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkgIHZhbGdyaW5kIHVuaXQgdGVzdHMgYXMgY2hlY2stbG9jYWw7IGFkZCBnc3RfZGVpbml0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICB2YWxncmluZCB1bml0IHRlc3RzIGFzIGNoZWNrLWxvY2FsOyBhZGQgZ3N0X2RlaW5pdAoKMjAwNS0wNy0xMSAxNTowNjoyNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGZha2VzcmMuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGFkZCBudW0tYnVmZmVycyBwcm9wZXJ0eSB0byBiYXNlc3JjCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbnVtLWJ1ZmZlcnMgcHJvcGVydHkgdG8gYmFzZXNyYwoKMjAwNS0wNy0xMCAxMjowMzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJICBtb3JlIG1hY3JvIHNwbGl0dGluZwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBtYWNybyBzcGxpdHRpbmcKCjIwMDUtMDctMTAgMDA6MDc6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2dzdGVsZW1lbnQuYzogYWRkIGRlYnVnCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfYnVzKToKCSAgYWRkIGRlYnVnCgkgICogdG9vbHMvZ3N0LWxhdW5jaC5jOiAoY2hlY2tfaW50ciksIChldmVudF9sb29wKToKCSAgZml4IGJ1cyBsZWFrcwoKMjAwNS0wNy0wOSAyMzo1MjowNyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGZpeCBjYXBzIGxlYWsgaW4gYm90aCBjYXNlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGNhcHMgbGVhayBpbiBib3RoIGNhc2VzCgoyMDA1LTA3LTA5IDIzOjQ4OjQ1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgZHVoLCByZW1vdmUgdW51c2VkIHZhcgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZHVoLCByZW1vdmUgdW51c2VkIHZhcgoKMjAwNS0wNy0wOSAyMzo0NzoyMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9nc3RwYWQuYzoKCSAgZml4IGEgY2FwcyBsZWFrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaXggYSBjYXBzIGxlYWsKCjIwMDUtMDctMDkgMjM6MzM6MjQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBhZGQgZmluYWxpemUgbWV0aG9kIGFuZCBjbGVhbiB1cCBwcm9wZXJseQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZV9zcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZV9zcmNfZmluYWxpemUpOgoJICBhZGQgZmluYWxpemUgbWV0aG9kIGFuZCBjbGVhbiB1cCBwcm9wZXJseQoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpOgoJICBhZGQgZGVidWcKCjIwMDUtMDctMDkgMjM6MTU6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGJpbi5jOgoJICBkb24ndCBnZXQgc3JjIGZvciBhbGwgbWVzc2FnZXM7IG9ubHkgZm9yIGVvcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZG9uJ3QgZ2V0IHNyYyBmb3IgYWxsIG1lc3NhZ2VzOyBvbmx5IGZvciBlb3MKCjIwMDUtMDctMDkgMjI6NTQ6MjggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0L2dzdGJpbi5jOiBhZGQgbW9yZSB0aGluZ3MgdG8gY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJpbi5jOiAocG9wX21lc3NhZ2VzKSwgKEdTVF9TVEFSVF9URVNUKSwKCSAgKGdzdF9iaW5fc3VpdGUpOgoJICBhZGQgbW9yZSB0aGluZ3MgdG8gY2hlY2sKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2NoYW5nZV9zdGF0ZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6CgkgIG1vcmUgZGVidWcKCjIwMDUtMDctMDkgMTY6MzY6MTggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGNoZWNrL2dzdC1saWJzL2dkcC5jOgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIGNoZWNrL2dzdC9nc3RiaW4uYzoKCSogY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJKiBjaGVjay9nc3QvZ3N0YnVzLmM6CgkqIGNoZWNrL2dzdC9nc3RjYXBzLmM6CgkqIGNoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIGNoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jOgoJKiBjaGVjay9nc3QvZ3N0aXRlcmF0b3IuYzoKCSogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzoKCSogY2hlY2svZ3N0L2dzdG9iamVjdC5jOgoJKiBjaGVjay9nc3QvZ3N0cGFkLmM6CgkqIGNoZWNrL2dzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogY2hlY2svZ3N0L2dzdHN5c3RlbWNsb2NrLmM6CgkqIGNoZWNrL2dzdC9nc3R0YWcuYzoKCSogY2hlY2svZ3N0L2dzdHZhbHVlLmM6CgkqIGNoZWNrL2dzdGNoZWNrLmM6CgkqIGNoZWNrL2dzdGNoZWNrLmg6CgkqIGNoZWNrL3BpcGVsaW5lcy9jbGVhbnVwLmM6CgkqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6CgkqIGNoZWNrL3N0YXRlcy9zaW5rcy5jOgoJKiB0ZXN0cy9jaGVjay9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL2dlbmVyaWMvc2lua3MuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0YmluLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1cy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Y2Fwcy5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZGF0YS5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0ZWxlbWVudC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0Z2hvc3RwYWQuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RtZXNzYWdlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RvYmplY3QuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdHBhZC5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0dGFnLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9jaGVjay9nc3RjaGVjay5jOgoJKiB0ZXN0cy9jaGVjay9nc3RjaGVjay5oOgoJKiB0ZXN0cy9jaGVjay9saWJzL2dkcC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvY2xlYW51cC5jOgoJKiB0ZXN0cy9jaGVjay9waXBlbGluZXMvc2ltcGxlLWxhdW5jaC1saW5lcy5jOgoJICBhZGQgZGVidWdnaW5nIGNhdGVnb3J5IHVzZSBHU1RfU1RBUlRfVEVTVCBub3csIHNvIHdlIGFkZCBhIGRlYnVnIGxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBkZWJ1Z2dpbmcgY2F0ZWdvcnkKCSAgdXNlIEdTVF9TVEFSVF9URVNUIG5vdywgc28gd2UgYWRkIGEgZGVidWcgbGluZQoKMjAwNS0wNy0wOSAxNToxODo1MyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3QvZ3N0YmluLmM6IGFkZCB0ZXN0IGZvciBzdGF0ZSBjaGFuZ2UgbWVzc2FnZSBvbiBhIGJpbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6IChTVEFSVF9URVNUKSwgKGdzdF9iaW5fc3VpdGUpOgoJICBhZGQgdGVzdCBmb3Igc3RhdGUgY2hhbmdlIG1lc3NhZ2Ugb24gYSBiaW4KCSAgKiBjaGVjay9nc3QvZ3N0ZWxlbWVudC5jOiAoU1RBUlRfVEVTVCksIChnc3RfZWxlbWVudF9zdWl0ZSk6CgkgIGFkZCBhbm90aGVyIHRlc3QKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2luaXQpOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfaW5pdCksIChnc3RfYnVzX3Bvc3QpOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpLAoJICAoZ3N0X2VsZW1lbnRfc2V0X3N0YXRlKToKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzogKGdzdF9lbGVtZW50X2ZhY3RvcnlfY3JlYXRlKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfbmV3KToKCSAgKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkgIHZhcmlvdXMgZGVidWdnaW5nIGFkZGl0aW9ucyBhbmQgY2xlYW51cHMKCjIwMDUtMDctMDggMTY6NDE6NDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogY2hlY2svZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RlbGVtZW50LmM6CgkgIGFkZGluZyB0ZXN0cyBmb3IgZWxlbWVudHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGluZyB0ZXN0cyBmb3IgZWxlbWVudHMKCjIwMDUtMDctMDggMTY6MTY6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogcGx1ZyBtb3JlIGxlYWtzLiAgQSBzaW1wbGUgZ3N0X2luaXQoKSBub3cgaXMgbGVha2ZyZWUsIHlheS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGxvYWRfZmVhdHVyZSk6CgkgIHBsdWcgbW9yZSBsZWFrcy4gIEEgc2ltcGxlIGdzdF9pbml0KCkgbm93IGlzIGxlYWtmcmVlLCB5YXkuCgoyMDA1LTA3LTA4IDE2OjA4OjE2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzoKCSAgcGx1ZyBhbm90aGVyIG1lbWxlYWsgaW4gcmVnaXN0cnkgbG9hZGluZyAtIEkgaGF2ZSBOTyBpZGVhIHdoeSB0aGlzIHdhcyByZXR1cm5pbmcgYSBHc3RQbHVnaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHBsdWcgYW5vdGhlciBtZW1sZWFrIGluIHJlZ2lzdHJ5IGxvYWRpbmcgLSBJIGhhdmUgTk8gaWRlYSB3aHkgdGhpcyB3YXMgcmV0dXJuaW5nIGEgR3N0UGx1Z2luCgoyMDA1LTA3LTA4IDE0OjUwOjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6CgkgIEkgbmVlZCB0byBsZWFybiB0byBzdG9wIGRvaW5nIHRoaXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEkgbmVlZCB0byBsZWFybiB0byBzdG9wIGRvaW5nIHRoaXMKCjIwMDUtMDctMDggMTQ6Mzk6MDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJICBhZGQgcmlnaHQgdmFyaWFibGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCByaWdodCB2YXJpYWJsZQoKMjAwNS0wNy0wOCAxNDozNTo1NyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjb25maWd1cmUuYWM6IHVzZSBHU1RfU0VUX0VSUk9SX0NGTEFHUwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIHVzZSBHU1RfU0VUX0VSUk9SX0NGTEFHUwoJICAqIGRvY3MvZmFxL2N2cy54bWw6CgkgIGNoYW5nZSB0byBFUlJPUl9DRkxBR1MKCjIwMDUtMDctMDggMTQ6MDE6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY29uZmlndXJlLmFjOiBtYWtlIEdTVF9FUlJPUl9DRkxBR1Mgb3ZlcnJpZGFibGUgYW5kIHJlLWVuYWJsZSBXZXJyb3IKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICBtYWtlIEdTVF9FUlJPUl9DRkxBR1Mgb3ZlcnJpZGFibGUgYW5kIHJlLWVuYWJsZSBXZXJyb3IKCSAgKiBkb2NzL2ZhcS9jdnMueG1sOgoJICBhZGQgYSBub3RlIGFib3V0IGVycm9yIENGTEFHUwoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNyYy5zZ21sOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGNvbW1lbnQgb3V0IHNvbWUgdW51c2VkIGNvZGUKCSAgKiBnc3QvZ3N0LmM6IChzcGxpdF9hbmRfaXRlcmF0ZSk6CgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGxvYWRfcGFkX3RlbXBsYXRlKSwKCSAgKGxvYWRfZmVhdHVyZSk6CgkgIHBsdWcgc29tZSBtZW1sZWFrcwoKMjAwNS0wNy0wNyAxNTowNzoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIG1ha2UgbGlicyB1c2Ugc2FtZSBndGstZG9jLm1hawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbWFrZSBsaWJzIHVzZSBzYW1lIGd0ay1kb2MubWFrCgoyMDA1LTA3LTA3IDE0OjE2OjQwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29tbW9uOgoJKiBkb2NzL2dzdC9NYWtlZmlsZS5hbToKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBmYWN0b3Igb3V0IGd0ay1kb2MKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZhY3RvciBvdXQgZ3RrLWRvYwoKMjAwNS0wNy0wNyAxNDowMTo0NyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOiBVbmxvY2sgdGhlIFNUUkVBTV9MT0NLIGNvbXBsZXRlbHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOiAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyksCgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9kaXNwb3NlKToKCSAgVW5sb2NrIHRoZSBTVFJFQU1fTE9DSyBjb21wbGV0ZWx5LgoKMjAwNS0wNy0wNyAxMzoxNDo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBleGFtcGxlcy9wd2cvLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3B3Zy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDctMDcgMTM6MTI6NDMgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvaW5zdGFudGlhdGUvLmdpdGlnbm9yZToKCSAgaWdub3JlIG1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBtb3JlCgoyMDA1LTA3LTA3IDExOjU5OjM3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIGNoZWNrL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGNoZWNrL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJICBhZGRpbmcgYW4gZWxlbWVudCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgYW4gZWxlbWVudCB0ZXN0CgoyMDA1LTA3LTA3IDExOjA5OjMyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YnVzLmMgKGdzdF9idXNfaGF2ZV9wZW5kaW5nKTogUmVtb3ZlIGludGVuc2VseSBpcnJpdGF0aW5nIGRlYnVnIG1lc3NhZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpOiBSZW1vdmUgaW50ZW5zZWx5IGlycml0YXRpbmcKCSAgZGVidWcgbWVzc2FnZS4KCjIwMDUtMDctMDcgMTA6MDM6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgIGFub3RoZXIgZG9jIGZpeAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYW5vdGhlciBkb2MgZml4CgoyMDA1LTA3LTA3IDA5OjEwOjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvbWFudWFsL0JVSUxEOgoJKiBkb2NzL21hbnVhbC9NYWtlZmlsZS5hbToKCSAgbW9yZSBtYWNvc3ggbWFkbmVzcyBmaXhpbmcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1vcmUgbWFjb3N4IG1hZG5lc3MgZml4aW5nCgoyMDA1LTA3LTA3IDA4OjQzOjE3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHF1ZXJ5Lio6IFJlbW92ZSBvbGQgdHlwZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHF1ZXJ5LmM6CgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgIFJlbW92ZSBvbGQgdHlwZXMKCjIwMDUtMDctMDcgMDg6MTY6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IEFsbG93IHN1YmNsYXNzZXMgdG8gaW1wbGVtZW50IHRoZWlyIG93biBuZWdvdGlhdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2dldF9yYW5nZSksCgkgIChnc3RfYmFzZV9zcmNfZGVmYXVsdF9uZWdvdGlhdGUpLCAoZ3N0X2Jhc2Vfc3JjX25lZ290aWF0ZSk6CgkgIEFsbG93IHN1YmNsYXNzZXMgdG8gaW1wbGVtZW50IHRoZWlyIG93biBuZWdvdGlhdGlvbi4KCjIwMDUtMDctMDYgMTc6MTc6NTkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZG9jcy9kZXNpZ24vOiBVcGRhdGUgZGVzaWduIG5vdGVzIHRvIHJlZmxlY3QgdGhlIG1vdmVtZW50IG9mIHJlc3BvbnNpYmlsaXR5IGZvciBidXMgaGFuZGxpbmcgZnJvbSBHc3RQaXBlbGluZSB0bwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdGJpbi50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RwaXBlbGluZS50eHQ6CgkgIFVwZGF0ZSBkZXNpZ24gbm90ZXMgdG8gcmVmbGVjdCB0aGUgbW92ZW1lbnQgb2YKCSAgcmVzcG9uc2liaWxpdHkgZm9yIGJ1cyBoYW5kbGluZyBmcm9tIEdzdFBpcGVsaW5lIHRvCgkgIEdzdEJpbgoKMjAwNS0wNy0wNiAxNjo0NTo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBjb25maWd1cmUuYWM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBxdWV1ZTIvMy80IGV4YW1wbGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgIFJlbW92ZSB1bm5lY2Vzc2FyeSBxdWV1ZTIvMy80IGV4YW1wbGVzLgoKMjAwNS0wNy0wNiAxNjoyMjo0NyArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBleGFtcGxlcy86IFVwZGF0ZSBhIGNvdXBsZSBvZiB0aGUgZXhhbXBsZXMgdG8gd29yayBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvaGVsbG93b3JsZC9oZWxsb3dvcmxkLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIGV4YW1wbGVzL3F1ZXVlL3F1ZXVlLmM6IChldmVudF9sb29wKSwgKG1haW4pOgoJICAqIGV4YW1wbGVzL3F1ZXVlMi9xdWV1ZTIuYzogKG1haW4pOgoJICBVcGRhdGUgYSBjb3VwbGUgb2YgdGhlIGV4YW1wbGVzIHRvIHdvcmsgYWdhaW4uCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfcHJlcm9sbF9xdWV1ZV9lbXB0eSksCgkgIChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLCAoZ3N0X2Jhc2Vfc2lua19oYW5kbGVfZXZlbnQpOgoJICBTcGVsbGluZyBjb3JyZWN0aW9ucyBhbmQgZXh0cmEgZGVidWcuCgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9jbGFzc19pbml0KSwgKGdzdF9iaW5faW5pdCksIChpc19lb3MpLAoJICAoZ3N0X2Jpbl9hZGRfZnVuYyksIChiaW5fZWxlbWVudF9pc19zaW5rKSwgKGdzdF9iaW5fZ2V0X3N0YXRlKSwKCSAgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKSwgKGdzdF9iaW5fZGlzcG9zZSksIChiaW5fYnVzX2hhbmRsZXIpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9pbml0KSwgKGdzdF9waXBlbGluZV9kaXNwb3NlKSwKCSAgKGdzdF9waXBlbGluZV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5oOgoJICBNb3ZlIHRoZSBidXMgaGFuZGxlciBmb3IgY2hpbGRyZW4gdG8gdGhlIEdzdEJpbiwgYW5kIGNyZWF0ZSBhCgkgIHNlcGFyYXRlIGJ1cyBmb3IgcmVjZWl2aW5nIG1lc3NhZ2VzIGZyb20gY2hpbGRyZW4gdG8gdGhlIG9uZSB0aGUKCSAgYnVzIHNlbmRzICd1cHdhcmRzJyBvbi4KCjIwMDUtMDctMDYgMTM6MjU6MjYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IE1ha2UgYmFzZXNyYyBuZWdvdGlhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksIChnc3RfYmFzZV9zaW5rX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2Vfc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2Vfc3JjX2luaXQpLCAoZ3N0X2Jhc2Vfc3JjX3NldGNhcHMpLAoJICAoZ3N0X2Jhc2Vfc3JjX2dldGNhcHMpLCAoZ3N0X2Jhc2Vfc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2Vfc3JjX2RlZmF1bHRfbmVnb3RpYXRlKSwgKGdzdF9iYXNlX3NyY19uZWdvdGlhdGUpLAoJICAoZ3N0X2Jhc2Vfc3JjX3N0YXJ0KSwgKGdzdF9iYXNlX3NyY19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgTWFrZSBiYXNlc3JjIG5lZ290aWF0ZS4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHByZXJvbGwgZmFpbHMgaW4gYmFzZXNpbmsuCgkgIFVwZGF0ZSBSRUFETUUuCgoyMDA1LTA3LTA2IDEzOjIwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHBhZC5jOiBJbXBsZW1lbnQgdGhlIGZpeGF0ZSBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9maXhhdGVfY2FwcyksIChnc3RfcGFkX2FjY2VwdF9jYXBzKToKCSAgSW1wbGVtZW50IHRoZSBmaXhhdGUgZnVuY3Rpb24uCgkgIENsZWFuIHVwIGFjY2VwdGNhcHMuCgoyMDA1LTA3LTA2IDEyOjI0OjUwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy86IFJlbW92ZSBuZXZlci13cml0dGVuIGZpbHRlci1mYWN0b3J5IGNoYXB0ZXI7IEknbGwgYWRkIHRoZSB2YXJpb3VzIGJhc2UgY2xhc3NlcyB0byBwYXJ0IDQgKCJvdGhlciBlbGVtZW50IHQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctZmlsdGVyZmFjdG9yeS54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgUmVtb3ZlIG5ldmVyLXdyaXR0ZW4gZmlsdGVyLWZhY3RvcnkgY2hhcHRlcjsgSSdsbCBhZGQgdGhlIHZhcmlvdXMKCSAgYmFzZSBjbGFzc2VzIHRvIHBhcnQgNCAoIm90aGVyIGVsZW1lbnQgdHlwZXMiKSBsYXRlciBvbi4KCjIwMDUtMDctMDYgMTI6MTg6MDAgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEFkZCBhIGNoYXB0ZXIgb24gY2FwcyBuZWdvdGlhdGlvbiwgc2ltcGxpZnkgdGhlIG9yaWdpbmFsIGNvZGUgc2FtcGxlcyBhIGJpdCB3LnIudC4gY2FwcyBuZWdvdGlhdGlvbiwgYWRkIGxpbmsgdG8gdGhlIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9hZHZhbmNlZC1uZWdvdGlhdGlvbi54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctYm9pbGVyLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy1wYWRzLnhtbDoKCSAgKiBkb2NzL3B3Zy9wd2cueG1sOgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgQWRkIGEgY2hhcHRlciBvbiBjYXBzIG5lZ290aWF0aW9uLCBzaW1wbGlmeSB0aGUgb3JpZ2luYWwgY29kZQoJICBzYW1wbGVzIGEgYml0IHcuci50LiBjYXBzIG5lZ290aWF0aW9uLCBhZGQgbGluayB0byB0aGUgYWR2YW5jZWQKCSAgc2VjdGlvbi4gQWRkIGEgYnVuY2ggb2YgZXhhbXBsZXMgc2hvd2luZyBkaWZmZXJlbnQgdXNlIGNhc2VzIG9mCgkgIGRpZmZlcmVudCB0eXBlcyBvZiBjYXBzIG5lZ290aWF0aW9uLiBVcHN0cmVhbSByZW5lZ290aWF0aW9uIGlzbid0CgkgIGZ1bGx5IGRvY3VtZW50ZWQgeWV0IHNpbmNlIG5vYm9keSBrbm93cyBob3cgdGhhdCB3b3Jrcy4KCjIwMDUtMDctMDYgMTE6MzQ6MDYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkqIHBrZ2NvbmZpZy9nc3RyZWFtZXItZGF0YXByb3RvY29sLnBjLmluOgoJICBwYyBmaWxlIGNsZWFudXBzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwYyBmaWxlIGNsZWFudXBzCgoyMDA1LTA3LTA2IDExOjMxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGlmIHBhZCBoYXMgbm8gcGFyZW50LCByZXR1cm4gTlVMTCBhcyBsaXN0IG9mIGludGVybmFsIGxpbmtzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzoKCSAgKiBjaGVjay9nc3RjaGVjay5jOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZ2V0X2ludGVybmFsX2xpbmtzX2RlZmF1bHQpOgoJICBpZiBwYWQgaGFzIG5vIHBhcmVudCwgcmV0dXJuIE5VTEwgYXMgbGlzdCBvZiBpbnRlcm5hbCBsaW5rcwoKMjAwNS0wNy0wNSAxNjozODoxMyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0Lzogcy9CQVNFU1JDL0JBU0VfU1JDL2cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogcy9CQVNFU1JDL0JBU0VfU1JDL2cuCgoyMDA1LTA3LTA1IDE1OjI4OjE4ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIGdzdHJlYW1lci5zcGVjLmluOgoJKiBwby9hZi5wbzoKCSogcG8vYXoucG86CgkqIHBvL2NhLnBvOgoJKiBwby9jcy5wbzoKCSogcG8vZGUucG86CgkqIHBvL2VuX0dCLnBvOgoJKiBwby9mci5wbzoKCSogcG8vaXQucG86CgkqIHBvL25iLnBvOgoJKiBwby9ubC5wbzoKCSogcG8vcnUucG86CgkqIHBvL3NxLnBvOgoJKiBwby9zci5wbzoKCSogcG8vc3YucG86CgkqIHBvL3RyLnBvOgoJKiBwby91ay5wbzoKCSogcG8vdmkucG86CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHVwZGF0ZSBzcGVjIGZpbGUKCjIwMDUtMDctMDUgMTI6MTc6MjQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogTWFrZWZpbGUuYW06CgkgIGJldHRlciByZXBvcnQgZ2VucmF0aW9uIHRhcmdldCAobGNvdiBuZWVkcyBhIHBhdGNoKQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYmV0dGVyIHJlcG9ydCBnZW5yYXRpb24gdGFyZ2V0IChsY292IG5lZWRzIGEgcGF0Y2gpCgoyMDA1LTA3LTA1IDEwOjU4OjIxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZWxlbWVudHMsIHRlc3RzdWl0ZTogTnVsbCBpZiB3ZSBnb3QgaXQuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDUgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2VsZW1lbnRzLCB0ZXN0c3VpdGU6IE51bGwgaWYgd2UgZ290IGl0Li4uCgoyMDA1LTA3LTA1IDEwOjIwOjE0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgUG9ydGVkIGRhdGFwcm90b2wgdG8gMC45LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuYzogKGdzdF9kcF92YWxpZGF0ZV9wYWNrZXQpOgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9kYXRhcHJvdG9jb2wuaDoKCSAgKiBwa2djb25maWcvTWFrZWZpbGUuYW06CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wtdW5pbnN0YWxsZWQucGMuaW46CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1kYXRhcHJvdG9jb2wucGMuaW46CgkgIFBvcnRlZCBkYXRhcHJvdG9sIHRvIDAuOS4KCSAgQWRkZWQgcGtnY29uZmlnIGZpbGVzLgoKMjAwNS0wNy0wNSAwOTozNToyMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2Fwcyk6IERlZmF1bHQgdG8gcmV0dXJuaW5nIFRSVUUgZm9yIHRoZSBjYXNlIHdoZW4gdHJhbmZvcm1fY2FwcyByLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTA1ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOgoJICBEZWZhdWx0IHRvIHJldHVybmluZyBUUlVFIGZvciB0aGUgY2FzZSB3aGVuIHRyYW5mb3JtX2NhcHMgcmV0dXJucwoJICBhIGZpeGVkIGNhcHMsIGxpa2UgZm9yIGlkZW50aXR5IG9yIHZvbHVtZS4KCjIwMDUtMDctMDUgMDg6NDc6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrLzogQXBwbGljYXRpb24gbWVzc2FnZSBBUEkgY2hhbmdlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNy0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9nc3QvZ3N0YnVzLmMgKHBvdW5kX2J1c193aXRoX21lc3NhZ2VzKToKCSAgKiBjaGVjay9nc3QvZ3N0bWVzc2FnZS5jIChTVEFSVF9URVNUKToKCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jIChnb3RfaGFuZG9mZik6IEFwcGxpY2F0aW9uCgkgIG1lc3NhZ2UgQVBJIGNoYW5nZS4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV9zZXRjYXBzKTogTW9yZQoJICBsb2dpYyB3ZWFrcyBoZXJlOiBhbHdheXMgcnVuIHRyYW5zZm9ybV9jYXBzLCB0cnlpbmcgcGFzc3Rocm91Z2gKCSAgb3BlcmF0aW9uIG9ubHkgaWYgdGhlIG9yaWdpbmFsIGNhcHMgaW50ZXJzZWN0cyB3aXRoIHRoZSB0cmFuc2Zvcm0uCgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCk6IERlYnVnCgkgIHNvdXJjZSBhbmQgc2luayBjYXBzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldGNhcHMpOgoJICBJbnRlcnNlY3QgdGhlIHBlZXIgY2FwcyB3aXRoIHRoZSBwYWQgdGVtcGxhdGUgYmVmb3JlIGdvaW5nIGludG8KCSAgdHJhbnNmb3JtX2NhcHMuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fdHJhbnNmb3JtX2NhcHMpOiBNb3JlIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0bWVzc2FnZS5oIChnc3RfbWVzc2FnZV9uZXdfYXBwbGljYXRpb24pOiBUYWtlIGEgR3N0T2JqZWN0CgkgIHNyYyBhcmd1bWVudC4KCjIwMDUtMDctMDQgMTU6MDg6MzAgKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0dXRpbHMuKjogbm93IHJldHVybnMgdGhlIHNpZ25hbCBpZCBmb3IgYmV0dGVyIHdyYXBwaW5nIGluIGJpbmRpbmdzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0dXRpbHMuYzoKCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKGdzdF9wYWRfYWRkXypfcHJvYmUpOiBub3cgcmV0dXJucyB0aGUgc2lnbmFsIGlkIGZvciBiZXR0ZXIgd3JhcHBpbmcKCSAgaW4gYmluZGluZ3MuCgoyMDA1LTA3LTA0IDA5OjIyOjUxICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmM6IE9ubHkgc2V0IGV4cGxpY2l0IGNhcHMgb24gcGFkcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiBPbmx5IHNldCBleHBsaWNpdCBjYXBzIG9uIHBhZHMuCgoyMDA1LTA3LTAxIDE2OjQ2OjU5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbTogQ29tbWVudGFyeSB1cGRhdGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA3LTAxICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2suc2NtOiBDb21tZW50YXJ5IHVwZGF0ZS4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYyAoUFJPUF9EVVBMSUNBVEUpOiBHb25lIGRhZGR5IGdvbmUuCgkgIERpZG4ndCByZWFsbHkgbWFrZSBzZW5zZSwgbm90IGltcGxlbWVudGFibGUgd2l0aCBiYXNldHJhbnNmb3JtLAoJICBldGMuCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKTogVW5yZWYgaW5idWYgdmlhIG1ha2Vfd3JpdGFibGUuIEZlZWJsZQoJICBhdHRlbXB0IGF0IGltcGxlbWVudGluZyB0aGUgc3luYyBwcm9wZXJ0eSwgbmVlZHMgYW4gdW5sb2NrIG1ldGhvZC4KCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmMgKGdzdF9iYXNlX3RyYW5zZm9ybV90cmFuc2Zvcm1fY2Fwcyk6CgkgIE5ldyBmdW5jLCBieSBkZWZhdWx0IHJldHVybnMgdGhlIHNhbWUgY2FwcyAodGhlIGlkZW50aXR5CgkgIHRyYW5zZm9ybWF0aW9uKS4KCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRjYXBzKTogVXNlcyB0cmFuc2Zvcm1fY2FwcyB0byByZXR1cm4KCSAgc29tZXRoaW5nIHNlbnNpYmxlLgoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpOiBDb21wbGljYXRlZCBsb2dpYyB0byBnZXQgY2FwcyBvbgoJICBib3RoIHBhZHMsIGV2ZW4gaWYgdGhleSBhcmUgZGlmZmVyZW50LCBhbmQgdG8gY2FsbCBzZXRfY2FwcyBvbmNlCgkgIGZvciBldmVyeSB0aW1lIGJvdGggcGFkcyBnZXQgdGhlaXIgY2FwcyBzZXQuCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlcik6IEdpdmUgdGhlIHJlZiB0byB0aGUgdHJhbnNmb3JtCgkgIGZ1bmN0aW9uLiBBbGxvd3MgaW4tcGxhY2UgbW9kaWZpY2F0aW9uIG9mIHRoZSBidWZmZXIuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5oICh0cmFuc2Zvcm1fY2Fwcyk6IE5ldyBjbGFzcyBtZXRob2QuCgkgIEdpdmVuIGNhcHMgb24gb25lIHNpZGUsIHdoYXQgY2FuIEkgZG8gb24gdGhlIG90aGVyLgoJICAoc2V0X2NhcHMpOiBUYWtlIHR3byBjYXBzLCBvbmUgZm9yIGVhY2ggc2lkZSBvZiB0aGUgZWxlbWVudC4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX2ZpeGF0ZV9jYXBzKTogQ2hhbmdlIHByb3RvdHlwZSB0byBtb2RpZnkKCSAgY2FwcyBpbiBwbGFjZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2Ugd2UgY2FuIGNoZWNrIHRoZSBtdXRhYmlsaXR5IG9mCgkgIHRoZSBjYXBzLCBhbmQgYSBnb29kIGlkZWEgYmVjYXVzZSBmaXhhdGUgZnVuY3Rpb25zIGFyZSBqdXN0IGNhbGxlZAoJICBhcyBhIG1hdHRlciBvZiBsYXN0IHJlc29ydC4gKE5vdCBhY3R1YWxseSBpbXBsZW1lbnRlZC4pCgkgIChnc3RfcGFkX3NldF9jYXBzKTogSWYgdGhlIGNhcHMgd2UncmUgc2V0dGluZyBpcyBhY3R1YWxseSB0aGUgc2FtZQoJICBhcyB0aGUgZXhpc3RpbmcgcGFkIGNhcHMsIGp1c3QgdXBkYXRlIHRoZSBwb2ludGVyIHdpdGhvdXQgY2FsbGluZwoJICBzZXRjYXBzLiBBc3NlcnQgdGhhdCBjYXBzIGlzIGVpdGhlciBOVUxMIG9yIGZpeGVkLCBhcyBwZXIgdGhlCgkgIGRvY3MuCgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IFVwZGF0ZSBmb3IgZml4YXRlIGNoYW5nZXMuCgoyMDA1LTA3LTAxIDE0OjM2OjEyICswMDAwICBKYW4gU2NobWlkdCA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogUHV0IHRoZSBtaW5pX29iamVjdCBpbnRvIEdWYWx1ZSBhcyBhIG1pbmlfb2JqZWN0LCBub3QgYSBncG9pbnRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDctMDIgIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2VtaXRfaGF2ZV9kYXRhX3NpZ25hbCk6CgkgIFB1dCB0aGUgbWluaV9vYmplY3QgaW50byBHVmFsdWUgYXMgYSBtaW5pX29iamVjdCwKCSAgbm90IGEgZ3BvaW50ZXIuCgoyMDA1LTA3LTAxIDE0OjIwOjE5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06IEZpeCBidWlsZGJvdCBhZ2Fpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZXhhbXBsZXMvcHdnL01ha2VmaWxlLmFtOgoJICBGaXggYnVpbGRib3QgYWdhaW4uCgoyMDA1LTA3LTAxIDEzOjAxOjQ3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDogQWRkIGV4dHJhIGNoZWNrLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgQWRkIGV4dHJhIGNoZWNrLgoJICAqIGV4YW1wbGVzL3B3Zy9NYWtlZmlsZS5hbToKCSAgRml4IGJ1aWxkYm90LgoKMjAwNS0wNy0wMSAxMjo0MzowMyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgRW5hYmxlIGJ1aWxkaW5nIHRoZSBQV0cgZXhhbXBsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNvbmZpZ3VyZS5hYzoKCSAgKiBleGFtcGxlcy9NYWtlZmlsZS5hbToKCSAgKiBleGFtcGxlcy9wd2cvTWFrZWZpbGUuYW06CgkgICogZXhhbXBsZXMvcHdnL2V4dHJhY3QucGw6CgkgIEVuYWJsZSBidWlsZGluZyB0aGUgUFdHIGV4YW1wbGVzLgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLWludGVyZmFjZXMueG1sOgoJICBBZGQgVVJJIGludGVyZmFjZSBzdHViLgoJICAqIGRvY3MvcHdnL2FkdmFuY2VkLXR5cGVzLnhtbDoKCSAgKiBkb2NzL3B3Zy9vdGhlci1hdXRvcGx1Z2dlci54bWw6CgkgICogZG9jcy9wd2cvYXBwZW5kaXgtcG9ydGluZy54bWw6CgkgICogZG9jcy9wd2cvcHdnLnhtbDoKCSAgQWRkIHBvcnRpbmcgZ3VpZGUgKG1vc3RseSBzdHVicyksIHJlbW92ZSBhdXRvcGx1Z2dpbmcgKHNlZSBBRE0pLgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLWJvaWxlci54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctY2hhaW5mbi54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcGFkcy54bWw6CgkgICogZG9jcy9wd2cvYnVpbGRpbmctcHJvcHMueG1sOgoJICAqIGRvY3MvcHdnL2J1aWxkaW5nLXN0YXRlLnhtbDoKCSAgKiBkb2NzL3B3Zy9idWlsZGluZy10ZXN0YXBwLnhtbDoKCSAgVXBkYXRlIHRoZSBidWlsZGluZy0qLnhtbCBwYXJ0cyBmb3IgMC45IGNoYW5nZXMuIEFsbCBleGFtcGxlcwoJICBjb2RlIGJsb2NrcyBjb21waWxlIGluIGV4YW1wbGVzL3B3Zy8qLgoKMjAwNS0wNi0zMCAxMjozMjoxNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvOiBGaXggcGxheWJpbi9kZWNvZGViaW4gZXhhbXBsZXMsIHVwZGF0ZSBkb2NzIGEgYml0LCBtZW50aW9uIGJ1cyBpbnN0ZWFkIG9mIHNpZ25hbHMgaW4gdmFyaW91cyBwbGFjZXMsIG1lLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvYXBwZW5kaXgtY2hlY2tsaXN0LnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1pbnRlZ3JhdGlvbi54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICBGaXggcGxheWJpbi9kZWNvZGViaW4gZXhhbXBsZXMsIHVwZGF0ZSBkb2NzIGEgYml0LCBtZW50aW9uIGJ1cwoJICBpbnN0ZWFkIG9mIHNpZ25hbHMgaW4gdmFyaW91cyBwbGFjZXMsIG1lbnRpb24ga21wbGF5ZXIgYW5kCgkgIGthZmZlaW5lIHNpbmNlIHRoZXkgaGF2ZSBhIHdvcmtpbmcgR1N0cmVhbWVyIGJhY2tlbmQgaW4gdGhlIEtERQoJICBzZWN0aW9uLgoKMjAwNS0wNi0zMCAxMjoyNjoyNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJICBkZWJ1ZyBkaXNhYmxlIGZpeGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBkZWJ1ZyBkaXNhYmxlIGZpeGVzCgoyMDA1LTA2LTMwIDEyOjE4OjE5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgQWRkZWQgQ0hBTkdFUy0wLjkgZG9jLCB1cGRhdGVkIHN0YXR1cyBvZiBvdGhlciBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBDSEFOR0VTLTAuOToKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1naG9zdHBhZHMudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXB1c2gtcHVsbC50eHQ6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1xdWVyeS50eHQ6CgkgIEFkZGVkIENIQU5HRVMtMC45IGRvYywgdXBkYXRlZCBzdGF0dXMgb2Ygb3RoZXIgZG9jcy4KCSAgKiBnc3QvZ3N0cXVlcnkuaDoKCSAgUmVtb3ZlICJobW0iIG1hY3JvCgoyMDA1LTA2LTMwIDEyOjE0OjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuKjogU29tZSB0d2Vha3MsIG9ubHkgRU9TIGFuZCBhIGJ1ZmZlciBjb21wbGV0ZSBhIHByZXJvbGwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2Vfc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSAgU29tZSB0d2Vha3MsIG9ubHkgRU9TIGFuZCBhIGJ1ZmZlciBjb21wbGV0ZSBhIHByZXJvbGwuCgoyMDA1LTA2LTMwIDExOjM5OjM0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X2dob3N0X3BhZF9kb19hY3RpdmF0ZV9wdXNoKTogUHJveHkgYWN0aXZhdGVfcHVzaCBkb3duIHRvIHRoZSBpbnRlcm5hbCBwYWQgYXMgd2VsbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMzAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9naG9zdF9wYWRfZG9fYWN0aXZhdGVfcHVzaCk6IFByb3h5CgkgIGFjdGl2YXRlX3B1c2ggZG93biB0byB0aGUgaW50ZXJuYWwgcGFkIGFzIHdlbGwuCgoyMDA1LTA2LTMwIDEwOjU5OjM0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0dGFnaW50ZXJmYWNlLmM6IFNvbWUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoIzMwNzM5NCBhbmQgIzMwNzM5NykuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZXZpZXdlZCBieTogIFJvbmFsZCBTLiBCdWx0amUgIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgkgICogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJICBTb21lIGRvY3VtZW50YXRpb24gZml4ZXMgKCMzMDczOTQgYW5kICMzMDczOTcpLgoKMjAwNS0wNi0zMCAxMDoyMzoxNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogY2hlY2svc3RhdGVzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDYtMzAgMTA6MjI6MTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBnbyBiYWNrIHRvIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5IGZvciBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGdvIGJhY2sgdG8gdGhlIGNpcmN1bGFyIGRlcGVuZGVuY3kgZm9yIG5vdwoKMjAwNS0wNi0zMCAxMDoxMDowMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEZpeCBtZW1sZWFrICgjMzA5MTI1KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJldmlld2VkIGJ5OiAgUm9uYWxkIFMuIEJ1bHRqZSAgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9pbnRlcnNlY3RfbGlzdCk6CgkgIEZpeCBtZW1sZWFrICgjMzA5MTI1KS4KCjIwMDUtMDYtMzAgMDk6NTk6MjcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGRvY3MvbWFudWFsL2FkdmFuY2VkLWRhdGFhY2Nlc3MueG1sOiBGaXggZmFrZXNyYyBleGFtcGxlIHRvIGNvbXBpbGU7IGRvZXNuJ3Qgd29yaywgYnVnIHNvbWV3aGVyZS4uLj8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtZGF0YWFjY2Vzcy54bWw6CgkgIEZpeCBmYWtlc3JjIGV4YW1wbGUgdG8gY29tcGlsZTsgZG9lc24ndCB3b3JrLCBidWcgc29tZXdoZXJlLi4uPwoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1wYWRzLnhtbDoKCSAgQWRkIHJlZmVyZW5jZSBmb3IgZmlsdGVyZWQgY2FwcyB0byBhYm92ZSBjaGFwdGVyLgoKMjAwNS0wNi0zMCAwOTo0MToxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RiaW4uYzogTGFtZSBhdHRlbXB0IGF0IG1ha2luZyB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uIGEgYml0IG1vcmUgcmVhZGFibGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGNsZWFyX3F1ZXVlKSwgKHJlbW92ZV9hbGxfZnJvbV9xdWV1ZSksCgkgIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgIExhbWUgYXR0ZW1wdCBhdCBtYWtpbmcgdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhIGJpdAoJICBtb3JlIHJlYWRhYmxlLgoKMjAwNS0wNi0zMCAwOTozMzo0NSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU29tZSBtb3JlIHR3ZWVrcyBhbmQgYWRkaXRpb25zIHRvIHRoZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNsb2Nrcy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNpbmsudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZXZlbnRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSAgU29tZSBtb3JlIHR3ZWVrcyBhbmQgYWRkaXRpb25zIHRvIHRoZSBkb2NzLgoKMjAwNS0wNi0zMCAwOToyMzo1NCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IFJlbW92ZWQgYXRvbWljIG9wZXJhdGlvbnMsIHVzZSBleGlzdGluZyBMT0NLLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X2RvX3Bhc3NfZGF0YV9hY2N1bXVsYXRvciksCgkgIChkZWZhdWx0X2hhdmVfZGF0YSksIChnc3RfcGFkX2NsYXNzX2luaXQpLCAoZ3N0X3BhZF9pbml0KSwKCSAgKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX2dldF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2F0b21pY19pbnRfc2V0KSwgKGdzdF9wYWRfYWRkX2RhdGFfcHJvYmUpLAoJICAoZ3N0X3BhZF9hZGRfZXZlbnRfcHJvYmUpLCAoZ3N0X3BhZF9hZGRfYnVmZmVyX3Byb2JlKSwKCSAgKGdzdF9wYWRfcmVtb3ZlX2RhdGFfcHJvYmUpLCAoZ3N0X3BhZF9yZW1vdmVfZXZlbnRfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfYnVmZmVyX3Byb2JlKToKCSAgUmVtb3ZlZCBhdG9taWMgb3BlcmF0aW9ucywgdXNlIGV4aXN0aW5nIExPQ0suCgkgIE1vdmUgZXhjZXB0aW9uIGhhbmRsaW5nIG91dCBvZiBtYWluIGNvZGUgcGF0aC4KCjIwMDUtMDYtMzAgMDc6NDU6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBkcm9wIGNpcmN1bGFyIHJlZmVyZW5jZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZHJvcCBjaXJjdWxhciByZWZlcmVuY2UKCjIwMDUtMDYtMjkgMTk6MjA6MDcgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwYWQuYzogRml4IGFjY3VtdWxhdG9yLCBhZGQgZGVmYXVsdCB2YWx1ZSBieSB1c2luZyBfZW1pdHYoKSBpbnN0ZWFkIG9mIF9lbWl0KCkgZm9yIHNpZ25hbCBlbWlzc2lvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpLAoJICAoc2lsbHlfcmV0dXJuX3RydWVfZnVuY3Rpb24pLCAoZ3N0X3BhZF9jbGFzc19pbml0KSwKCSAgKGdzdF9wYWRfZW1pdF9oYXZlX2RhdGFfc2lnbmFsKSwgKGdzdF9wYWRfY2hhaW4pLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1c2hfZXZlbnQpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgRml4IGFjY3VtdWxhdG9yLCBhZGQgZGVmYXVsdCB2YWx1ZSBieSB1c2luZyBfZW1pdHYoKSBpbnN0ZWFkCgkgIG9mIF9lbWl0KCkgZm9yIHNpZ25hbCBlbWlzc2lvbi4KCjIwMDUtMDYtMjkgMTY6NTc6NTkgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIEFkZCBwcm9iZSBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1kYXRhYWNjZXNzLnhtbDoKCSAgKiBleGFtcGxlcy9tYW51YWwvTWFrZWZpbGUuYW06CgkgIEFkZCBwcm9iZSBleGFtcGxlLgoJICAqIGdzdC9nc3RwYWQuYzogKF9nc3RfZG9fcGFzc19kYXRhX2FjY3VtdWxhdG9yKToKCSAgTWFrZSB3b3JrICg/PykuCgoyMDA1LTA2LTI5IDE2OjQ1OjU4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9nc3RtaW5pb2JqZWN0LmM6CgkgIGZpeCBmb3IgcHBjLCBob3BlZnVsbHkKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeCBmb3IgcHBjLCBob3BlZnVsbHkKCjIwMDUtMDYtMjkgMTY6MTE6MTIgKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogU2ltcGxpZnkgY29kZSBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gaGFuZGxlIHNob3J0IHdyaXRlcyBhbmQgcmV0dXJuIEdTVF9GTE9XX0VSUk9SIGlmIGEuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6IChnc3RfZmlsZXNpbmtfcmVuZGVyKToKCSAgU2ltcGxpZnkgY29kZSBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gaGFuZGxlIHNob3J0CgkgIHdyaXRlcyBhbmQgcmV0dXJuIEdTVF9GTE9XX0VSUk9SIGlmIGFuIGVycm9yIG9jY3VyZWQuCgoyMDA1LTA2LTI5IDE2OjA1OjI2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOiBSZW1vdmUgcHJvYmVzIG1vcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci1kb2NzLnNnbWw6CgkgIFJlbW92ZSBwcm9iZXMgbW9yZS4KCjIwMDUtMDYtMjkgMTU6NTE6MjUgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIFJlbW92ZSBvbGQgcHJvYmVzLCBhZGQgbmV3IGctc2lnbmFsLWJhc2VkIHByb2JlcyBhbmQgc29tZSB1dGlsaXR5IGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0cHJvYmUuc2dtbDoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdHBhZC5jOiAoX2dzdF9kb19wYXNzX2RhdGFfYWNjdW11bGF0b3IpLAoJICAoZ3N0X3BhZF9jbGFzc19pbml0KSwgKGdzdF9wYWRfaW5pdCksIChnc3RfcGFkX2NoYWluKSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX2dldF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3BhZF9wdXNoX2V2ZW50KSwgKGdzdF9wYWRfc2VuZF9ldmVudCk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X3BhZF9hZGRfZGF0YV9wcm9iZSksCgkgIChnc3RfcGFkX2FkZF9ldmVudF9wcm9iZSksIChnc3RfcGFkX2FkZF9idWZmZXJfcHJvYmUpLAoJICAoZ3N0X3BhZF9yZW1vdmVfZGF0YV9wcm9iZSksIChnc3RfcGFkX3JlbW92ZV9ldmVudF9wcm9iZSksCgkgIChnc3RfcGFkX3JlbW92ZV9idWZmZXJfcHJvYmUpOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBSZW1vdmUgb2xkIHByb2JlcywgYWRkIG5ldyBnLXNpZ25hbC1iYXNlZCBwcm9iZXMgYW5kIHNvbWUgdXRpbGl0eQoJICBmdW5jdGlvbnMuCgoyMDA1LTA2LTI5IDE1OjE3OjI1ICswMDAwICBFZHdhcmQgSGVydmV5IDxiaWxib2VkQGJpbGJvZWQuY29tPgoKCSAgZ3N0LzogTW92ZWQgZ3N0X2VsZW1lbnRfZmFjdG9yeV9jYW5fW3Npbmt8c3JjXV9jYXBzKCkgdG8gZ3N0dXRpbHMgYW5kIGFkZGVkIHRoZSBkZWZpbml0aW9uIHRvIHRoZSBoZWFkZXIgZmlsZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6CgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6CgkgIE1vdmVkIGdzdF9lbGVtZW50X2ZhY3RvcnlfY2FuX1tzaW5rfHNyY11fY2FwcygpIHRvIGdzdHV0aWxzIGFuZCBhZGRlZAoJICB0aGUgZGVmaW5pdGlvbiB0byB0aGUgaGVhZGVyIGZpbGUuCgoyMDA1LTA2LTI5IDE0OjU2OjA4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBkb2NzL2dzdC9NYWtlZmlsZS5hbSAoc2Nhbi1idWlsZC5zdGFtcCk6IFRvdGFsbHkgb25seSBjaGVjayBwbHVnaW5zIGZyb20gdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtIChzY2FuLWJ1aWxkLnN0YW1wKTogVG90YWxseSBvbmx5IGNoZWNrCgkgIHBsdWdpbnMgZnJvbSB0aGUgc291cmNlIGRpcmVjdG9yeS4KCjIwMDUtMDYtMjkgMTQ6NTI6NDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC90bXBsLzogU29tZSBmaXhpbmdzIGZvciBibGFudGVudGx5IHdyb25nIHRleHQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YnVmZmVyLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RjbG9jay5zZ21sOgoJICBTb21lIGZpeGluZ3MgZm9yIGJsYW50ZW50bHkgd3JvbmcgdGV4dC4KCjIwMDUtMDYtMjkgMTI6NDA6MzkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdC5jOgoJICBsb2dpYyB3YXMgcmV2ZXJzZWQsIGR1aAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbG9naWMgd2FzIHJldmVyc2VkLCBkdWgKCjIwMDUtMDYtMjkgMTI6MjU6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgYWRkIEEgR1NUX1BMVUdJTl9QQVRIX09OTFkgZW52IHZhcjsgaWYgaXQgaXMgc2V0LCBpdCB3aWxsIG9ubHkgc2NhbiB0aGUgR1NUX1BMVUdJTl9QQVRIIGxvY2F0aW9ucywgYW5kIG5vdCBhZGQgc3lzdGVtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGdzdC9nc3QuYzogKGFkZF9wYXRoX2Z1bmMpLCAoaW5pdF9wcmUpOgoJICAqIGdzdC9nc3RyZWdpc3RyeS5jOiAoZ3N0X3JlZ2lzdHJ5X2FkZF9wYXRoKToKCSAgYWRkIEEgR1NUX1BMVUdJTl9QQVRIX09OTFkgZW52IHZhcjsgaWYgaXQgaXMgc2V0LCBpdCB3aWxsCgkgIG9ubHkgc2NhbiB0aGUgR1NUX1BMVUdJTl9QQVRIIGxvY2F0aW9ucywgYW5kIG5vdCBhZGQKCSAgc3lzdGVtIGxvY2F0aW9ucwoKMjAwNS0wNi0yOSAxMjoyMzozNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50eHQ6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGVsZW1lbnQuc2dtbDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50LmM6CgkqIGdzdC9nc3R1dGlscy5jOgoJICBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRvYyBmaXhlcwoKMjAwNS0wNi0yOSAxMjowMjoxMyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZG9jcy9tYW51YWwvYWR2YW5jZWQtYXV0b3BsdWdnaW5nLnhtbDogRml4IGF1dG9wbHVnZ2luZyBleGFtcGxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1hdXRvcGx1Z2dpbmcueG1sOgoJICBGaXggYXV0b3BsdWdnaW5nIGV4YW1wbGUuCgoyMDA1LTA2LTI5IDExOjQ2OjE2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFRyeSB0byBnZXQgYXV0b3BsdWdnaW5nIHdvcmtpbmcsIGZpeCB0eXBlIGRldGVjdGlvbi4gRml4IHRleHQgaW4gaGVsbG8td29ybGQgaW1hZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLWF1dG9wbHVnZ2luZy54bWw6CgkgICogZG9jcy9tYW51YWwvbWltZS13b3JsZC5maWc6CgkgIFRyeSB0byBnZXQgYXV0b3BsdWdnaW5nIHdvcmtpbmcsIGZpeCB0eXBlIGRldGVjdGlvbi4gRml4IHRleHQKCSAgaW4gaGVsbG8td29ybGQgaW1hZ2UuCgoyMDA1LTA2LTI5IDExOjEwOjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogU21hbGwgZGVidWcgbGluZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlX3NpbmtfaGFuZGxlX29iamVjdCksCgkgIChnc3RfYmFzZV9zaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFNtYWxsIGRlYnVnIGxpbmUuCgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgIG1hcCBTSUdOQUwgYW5kIEJST0FEQ0FTVCB0byB0aGUgcmlnaHQgZnVuY3Rpb24uCgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBSZW1vdmUgcmVkdW5kYW50IGJyYWNlcy4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9jYXBzKToKCSAgRG9uJ3QgY2FsbCBzZXRjYXBzIGZ1bmN0aW9uIHdoZW4gcmVzZXRpbmcgY2FwcyB0byBOVUxMLgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5jOiAoZ3N0X3N5c3RlbV9jbG9ja19kaXNwb3NlKSwKCSAgKGdzdF9zeXN0ZW1fY2xvY2tfYXN5bmNfdGhyZWFkKSwgKGdzdF9zeXN0ZW1fY2xvY2tfaWRfd2FpdF9hc3luYyksCgkgIChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3Vuc2NoZWR1bGUpOgoJICBVc2UgQlJPQURDQVNUIGFzIHRoaXMgaXMgd2hhdCB3ZSBkby4KCjIwMDUtMDYtMjkgMTA6MjQ6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBXZSBhcmUgYWN0dWFsbHkgcHJlcm9sbGluZyBiZWZvcmUgY29tbWl0aW5nIHRoZSBzdGF0ZSBjaGFuZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZV9zaW5rX2hhbmRsZV9vYmplY3QpOgoJICBXZSBhcmUgYWN0dWFsbHkgcHJlcm9sbGluZyBiZWZvcmUgY29tbWl0aW5nIHRoZSBzdGF0ZQoJICBjaGFuZ2UuCgoyMDA1LTA2LTI5IDA5OjI1OjUxICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL21hbnVhbC86IFVwZGF0ZSAodW50aWwgdGhyZWFkcy9zY2hlZHVsaW5nKSBBcHBsaWNhdGlvbiBEZXZlbG9wbWVudCBNYW51YWw7IHJlbW92ZSBHc3RUaHJlYWQsIGFkZCBHc3RCdXMsIGFkZCBzaW0uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtY2xvY2tzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1pbnRlcmZhY2VzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9hZHZhbmNlZC1tZXRhZGF0YS54bWw6CgkgICogZG9jcy9tYW51YWwvYWR2YW5jZWQtcG9zaXRpb24ueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXNjaGVkdWxlcnMueG1sOgoJICAqIGRvY3MvbWFudWFsL2FkdmFuY2VkLXRocmVhZHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2FwcGVuZGl4LXBvcnRpbmcueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1iaW5zLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtYnVzLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtZWxlbWVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL2Jhc2ljcy1oZWxsb3dvcmxkLnhtbDoKCSAgKiBkb2NzL21hbnVhbC9iYXNpY3MtcGFkcy54bWw6CgkgICogZG9jcy9tYW51YWwvaGlnaGxldmVsLWNvbXBvbmVudHMueG1sOgoJICAqIGRvY3MvbWFudWFsL21hbnVhbC54bWw6CgkgICogZG9jcy9tYW51YWwvdGhyZWFkLmZpZzoKCSAgVXBkYXRlICh1bnRpbCB0aHJlYWRzL3NjaGVkdWxpbmcpIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbDsKCSAgcmVtb3ZlIEdzdFRocmVhZCwgYWRkIEdzdEJ1cywgYWRkIHNpbXBsZSBwb3J0aW5nIGNoZWNrbGlzdCwgYWRkCgkgIGRvY3VtZW50YXRpb24gZm9yIHRhZyB3cml0aW5nLCBjbG9ja3MsIG1ha2UgYWxsIGV4YW1wbGVzIHVudGlsIHRoaXMKCSAgcGFydCBjb21waWxlIGFuZCBydW4uCgkgICogZXhhbXBsZXMvbWFudWFsL01ha2VmaWxlLmFtOgoJICBVcGRhdGUgZnJvbSBjaGFuZ2VzIHRvIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IE1hbnVhbDsgYWRkIGJ1cwoJICBleGFtcGxlLCByZW1vdmUgdGhyZWFkIGV4YW1wbGUuCgoyMDA1LTA2LTI4IDE5OjQ1OjI2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBBZGQgZGVidWdnaW5nIG1lc3NhZ2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVzLmM6IChnc3RfYnVzX3Bvc3QpLCAoZ3N0X2J1c19oYXZlX3BlbmRpbmcpLAoJICAoZ3N0X2J1c19zZXRfZmx1c2hpbmcpLCAoZ3N0X2J1c19wb3ApLCAoZ3N0X2J1c19wZWVrKSwKCSAgKGdzdF9idXNfc291cmNlX2Rpc3BhdGNoKToKCSAgQWRkIGRlYnVnZ2luZyBtZXNzYWdlcy4KCSAgTWFrZSBpbnRlcm5hbCBtZXRob2RzIHN0YXRpYy4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBidXMgaXMgZmx1c2hlZCBpbiB0aGUgaGFuZGxlci4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2J1cyk6CgkgIEZpeCByZWZjb3VudCBpbiBfZ2V0X2J1cygpOwoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSksCgkgIChnc3RfcGlwZWxpbmVfZ2V0X2Nsb2NrX2Z1bmMpOgoJICBDbG9jayByZWZjb3VudGluZyBmaXhlcy4KCSAgSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHByZXJvbGwgdGltZWQgb3V0IG1vcmUgZ3JhY2VmdWxseS4KCSAgKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzogKGdzdF9zeXN0ZW1fY2xvY2tfZGlzcG9zZSk6CgkgIENsZWFuIHVwIHRoZSBpbnRlcm5hbCB0aHJlYWQgaW4gZGlzcG9zZS4gVGhpcyBpcyBuZWVkZWQKCSAgZm9yIHN1YmNsYXNzZXMgdGhhdCBhY3R1YWxseSBnZXQgZGlzcG9zZWQuCgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl9jbGFzc19pbml0KSwgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpLAoJICAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZGlzcG9zZSk6CgkgIEZyZWUgdGhyZWFkIHBvb2wgaW4gZGlzcG9zZS4KCjIwMDUtMDYtMjggMTY6NTc6MjcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChkZWJ1ZywgcHJpbnQtZXZlbnQpOiBOZXcgdXRpbHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL25ldHdvcmstY2xvY2stdXRpbHMuc2NtIChkZWJ1ZywgcHJpbnQtZXZlbnQpOiBOZXcgdXRpbHMuCgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCpkZWJ1ZyosICp3aXRoLWdyYXBoKik6IE5ldyBwYXJhbWV0ZXJzLgoJICAoKnBhY2tldC1sb3NzKik6IFVuaWZpZWQgbG9zcyBwcm9iYWJpbGl0eS4KCSAgKG5ldHdvcmstdGltZSk6IFJlcG9ydCBvdXQtb2YtYmFuZCBldmVudHMuCgkgICogdGVzdHMvcGxvdC1kYXRhOiBBZGQgc3VwcG9ydCBmb3Igb3V0LW9mLWJhbmQgZXZlbnRzLiBIYWNrIGl0CgkgIGludG8gdGhpcyBzY3JpcHQgaW5zdGVhZCBvZiBwYXNzaW5nIGl0IGRvd24gdGhlIHBpcGU7IHNob3VsZCBmaXgKCSAgdGhpcyBsYXRlci4KCjIwMDUtMDYtMjggMTU6MzY6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2dzdC86IERvY3MgZml4ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L2dzdHJlYW1lci50eXBlczoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICBEb2NzIGZpeGVzLgoKMjAwNS0wNi0yOCAxMzo0MDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBDb3JyZWN0bHkgcHJveHkgdGhlIGNoZWNrX3B1bGxfcmFuZ2UgZnVuY3Rpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiAoZ3N0X3Byb3h5X3BhZF9kb19idWZmZXJhbGxvYyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLCAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwKCSAgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2Fwcyk6CgkgIENvcnJlY3RseSBwcm94eSB0aGUgY2hlY2tfcHVsbF9yYW5nZSBmdW5jdGlvbi4KCjIwMDUtMDYtMjggMTI6NDU6MjEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkgIGZpeCBmYWtlIGVsZW1lbnRzIHRvbwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGZha2UgZWxlbWVudHMgdG9vCgoyMDA1LTA2LTI4IDEyOjAxOjQ5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBkaWQgcy9iYXNlcyhyYy9pbmspXy9iYXNlX3MocmMvaW5rKV8vOyB3aW0gd2FudHMgdG8gcmVtb3ZlIGJhc2UgY29tcGxldGVseSwgYnV0IHRoYXQncyBmb3IgbGF0ZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpZCBzL2Jhc2VzKHJjL2luaylfL2Jhc2VfcyhyYy9pbmspXy87IHdpbSB3YW50cyB0byByZW1vdmUgYmFzZSBjb21wbGV0ZWx5LCBidXQgdGhhdCdzIGZvciBsYXRlcgoKMjAwNS0wNi0yOCAxMTo0ODo1NyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY206IFJlbW92ZWQgbmVlZCBmb3Igc2xpYi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY206IFJlbW92ZWQgbmVlZCBmb3Igc2xpYi4KCjIwMDUtMDYtMjggMTE6MzY6NDMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBUaGUgZGVwcmVjYXRlZCBwYWQgbG9vcCBmdW5jdGlvbiBpcyByZW1vdmVkIG5vdy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19zZXRfcGFkX2Z1bmN0aW9ucyksCgkgIChnc3RfYmFzZXNpbmtfcHJlcm9sbF9xdWV1ZV9mbHVzaCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfc2V0X2RhdGFmbG93X2Z1bmNzKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX3VwZGF0ZV9wYWRfZnVuY3Rpb25zKToKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY2NlcHRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fZml4YXRlY2FwcyksCgkgIChnc3RfcHJveHlfcGFkX3NldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2dzdHBhZC5jOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KToKCSAgVGhlIGRlcHJlY2F0ZWQgcGFkIGxvb3AgZnVuY3Rpb24gaXMgcmVtb3ZlZCBub3cuCgoyMDA1LTA2LTI4IDExOjMzOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbSAoKnRpbWVvdXQqLCAqc2VuZC1sb3NzKiwgKnJlY3YtbG9zcyopOiBOZXcgcGFyYW1ldGVycywgc2ltdWxhdGUgbmV0d29yayBwYWNrZXQgbG9zcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKCp0aW1lb3V0KiwgKnNlbmQtbG9zcyosICpyZWN2LWxvc3MqKToKCSAgTmV3IHBhcmFtZXRlcnMsIHNpbXVsYXRlIG5ldHdvcmsgcGFja2V0IGxvc3MuCgkgICogdGVzdHMvbmV0d29yay1jbG9jay11dGlscy5zY206IEluaXRpYWxpemUgdGhlIFJORy4KCjIwMDUtMDYtMjggMTE6MDI6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiBGbHVzaGluZyB0aGUgcHJlcm9sbCBxdWV1ZSBhbHdheXMgbmVlZHMgdG8gdW5sb2NrIHRoZSB3YWl0ZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZmx1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwgKGdzdF9iYXNlc2lua19kZWFjdGl2YXRlKToKCSAgRmx1c2hpbmcgdGhlIHByZXJvbGwgcXVldWUgYWx3YXlzIG5lZWRzIHRvIHVubG9jayB0aGUgd2FpdGVycy4KCjIwMDUtMDYtMjggMTA6NDU6NDggKzAwMDAgIEVkd2FyZCBIZXJ2ZXkgPGJpbGJvZWRAYmlsYm9lZC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogV2hlZW4gYSBzZWVrIHdhcyBzdWNjZXNzZnVsIG9uIGEgcGlwZWxpbmUsIHNldCB0aGUgc3RyZWFtX3RpbWUgdG8gdGhlIHNlZWsgb2Zmc2V0IGluIG9yZGVyIHRvIGhhdmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfc2VuZF9ldmVudCk6CgkgIFdoZWVuIGEgc2VlayB3YXMgc3VjY2Vzc2Z1bCBvbiBhIHBpcGVsaW5lLCBzZXQgdGhlIHN0cmVhbV90aW1lIHRvIHRoZQoJICBzZWVrIG9mZnNldCBpbiBvcmRlciB0byBoYXZlIGEgc3luY2hyb25pemVkIHN0cmVhbV90aW1lLgoKMjAwNS0wNi0yOCAxMDozNzoyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RnaG9zdHBhZC5jOiBDYWxsIHdyYXBwZXIgZnVuY3Rpb24gaW5zdGVhZCBvZiBqdXN0IGNhbGxpbmcgdGhlIGZ1bmN0aW9uIHBvaW50ZXJzLiBUaGlzIHRha2VzIGNhcmUgb2YgYW55IGxvY2tpbi4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0Z2hvc3RwYWQuYzogKGdzdF9wcm94eV9wYWRfZG9fYnVmZmVyYWxsb2MpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19nZXRyYW5nZSksIChnc3RfcHJveHlfcGFkX2RvX2NoZWNrZ2V0cmFuZ2UpLAoJICAoZ3N0X3Byb3h5X3BhZF9kb19nZXRjYXBzKSwgKGdzdF9wcm94eV9wYWRfZG9fYWNjZXB0Y2FwcyksCgkgIChnc3RfcHJveHlfcGFkX2RvX2ZpeGF0ZWNhcHMpOgoJICBDYWxsIHdyYXBwZXIgZnVuY3Rpb24gaW5zdGVhZCBvZiBqdXN0IGNhbGxpbmcgdGhlIGZ1bmN0aW9uCgkgIHBvaW50ZXJzLiBUaGlzIHRha2VzIGNhcmUgb2YgYW55IGxvY2tpbmcgYW5kIHdoYXRtb3JlLgoKMjAwNS0wNi0yOCAxMDoyODozMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuKjogQ09OTkVDVEVEIC0+IExJTktFRC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hbGxvY19idWZmZXIpLCAoZ3N0X3BhZF9wdXNoKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBDT05ORUNURUQgLT4gTElOS0VELgoKMjAwNS0wNi0yOCAwOTo1OTowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgKi5jOiBEb24ndCBjYXN0IHRvIEdTVF9PQkpFQ1Qgd2hlbiByZWZmaW5nIG9yIHVucmVmZmluZy4gTGFyZ2Ugc291cmNlLW11bmdpbmcgY29tbWl0ISEhCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqICouYzogRG9uJ3QgY2FzdCB0byBHU1RfT0JKRUNUIHdoZW4gcmVmZmluZyBvciB1bnJlZmZpbmcuIExhcmdlCgkgIHNvdXJjZS1tdW5naW5nIGNvbW1pdCEhIQoKMjAwNS0wNi0yOCAwOToxNzoxNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC90bXBsL2dzdG9iamVjdC5zZ21sOgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkqIGdzdC9nc3RvYmplY3QuaDoKCSAgZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X3VucmVmLCBnc3Rfb2JqZWN0X3JlZikKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdG9iamVjdC5jIChnc3Rfb2JqZWN0X3VucmVmLCBnc3Rfb2JqZWN0X3JlZikKCSAgKGdzdF9vYmplY3Rfc2luayk6IFRha2UgZ3BvaW50ZXIgYXJndW1lbnRzLCBub3QgR3N0T2JqZWN0IC0tCgkgIGF2b2lkcyBjYXN0cy4gTGlrZSBHTGliLgoKMjAwNS0wNi0yOCAwODo0MTo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpOiBEb24ndCBwcm94eSBhY3RpdmF0ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGUpOiBEb24ndCBwcm94eQoJICBhY3RpdmF0ZS4KCjIwMDUtMDYtMjcgMTg6Mzk6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgc2h1dCB1cCBnY2MzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBzaHV0IHVwIGdjYzMKCjIwMDUtMDYtMjcgMTg6MzU6MDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMgKGdzdF90eXBlX2ZpbmRfaGVscGVyKTogVW5yZWYgYW55IHJlbWFpbmluZyBidWZmZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTI3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmMgKGdzdF90eXBlX2ZpbmRfaGVscGVyKTogVW5yZWYgYW55CgkgIHJlbWFpbmluZyBidWZmZXIuCgkgICogZ3N0L2dzdHRyYWNlLmMgKGdzdF9hbGxvY190cmFjZV9saXN0X3NvcnRlZCk6IE5ldyBoZWxwZXIsCgkgIHJldHVybnMgYSBzb3J0ZWQgY29weSBvZiB0aGUgdHJhY2UgbGlzdC4KCSAgKGdzdF9hbGxvY190cmFjZV9wcmludF9saXZlKTogTmV3IEFQSSwgb25seSBwcmludHMgdHJhY2VzIHdpdGgKCSAgbGl2ZSBvYmplY3RzLiBTb3J0IHRoZSBsaXN0LgoJICAoZ3N0X2FsbG9jX3RyYWNlX3ByaW50X2FsbCk6IFNvcnQgdGhlIGxpc3QuCgkgIChnc3RfYWxsb2NfdHJhY2VfcHJpbnQpOiBBbGlnbiBjb2x1bW5zLgoJICAqIGdzdC9lbGVtZW50cy9nc3R0dHlwZWZpbmRlbGVtZW50LmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSAgKiBnc3QvZ3N0cXVldWUuYzogQWRhcHQgZm9yIHBhZCBhY3RpdmF0aW9uIGNoYW5nZXMuCgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9pbml0KTogVW5yZWYgYWZ0ZXIgcGFyZW50aW5nCgkgIHNjaGVkLgoJICAoZ3N0X3BpcGVsaW5lX2Rpc3Bvc2UpOiBEcm9wIHJlZiBvbiBzY2hlZC4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfaW5pdCk6IFNldCB0aGUgZGVmYXVsdCBhY3RpdmF0ZSBmdW5jLgoJICAoZ3N0X3BhZF9hY3RpdmF0ZV9kZWZhdWx0KTogUHVzaCBtb2RlIGJ5IGRlZmF1bHQuCgkgIChwcmVfYWN0aXZhdGVfc3dpdGNoLCBwb3N0X2FjdGl2YXRlX3N3aXRjaCk6IE5ldyBzdHVicywgdGhpbmdzIHRvCgkgIGRvIGJlZm9yZSBhbmQgYWZ0ZXIgc3dpdGNoaW5nIGFjdGl2YXRpb24gbW9kZXMgb24gcGFkcy4KCSAgKGdzdF9wYWRfc2V0X2FjdGl2ZSk6IFRha2UgYSBib29sZWFuIGFuZCBub3QgYSBtb2RlLCBkaXNwYXRjaCB0bwoJICB0aGUgcGFkJ3MgYWN0aXZhdGUgZnVuY3Rpb24gdG8gY2hvb3NlIHdoaWNoIG1vZGUgdG8gYWN0aXZhdGUuCgkgIFNob3J0Y3V0IG9uIGRlYWN0aXZhdGlvbiBhbmQgY2FsbCB0aGUgcmlnaHQgZnVuY3Rpb24gZGlyZWN0bHkuCgkgIChnc3RfcGFkX2FjdGl2YXRlX3B1bGwpOiBOZXcgQVBJLCAoZGUpYWN0aXZhdGVzIGEgcGFkIGluIHB1bGwKCSAgbW9kZS4KCSAgKGdzdF9wYWRfYWN0aXZhdGVfcHVzaCk6IE5ldyBBUEksIHNhbWUgZm9yIHB1c2ggbW9kZS4KCSAgKGdzdF9wYWRfc2V0X2FjdGl2YXRlX2Z1bmN0aW9uKQoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdWxsX2Z1bmN0aW9uKQoJICAoZ3N0X3BhZF9zZXRfYWN0aXZhdGVwdXNoX2Z1bmN0aW9uKTogU2V0dGVycyBmb3IgbmV3IEFQSS4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jIChnc3RfbWluaV9vYmplY3RfbmV3LCBnc3RfbWluaV9vYmplY3RfZnJlZSk6CgkgIFRyYWNlIGFsbCBtaW5pb2JqZWN0cy4KCSAgKGdzdF9taW5pX29iamVjdF9tYWtlX3dyaXRhYmxlKTogVW5yZWYgdGhlIGFyZyBpZiB3ZSBjb3B5LCBsaWtlCgkgIGdzdF9jYXBzX21ha2Vfd3JpdGFibGUuCgkgICogZ3N0L2dzdG1lc3NhZ2UuYyAoX2dzdF9tZXNzYWdlX2luaXRpYWxpemUpOiBObyB0cmFjZSBpbml0LgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jIChnc3RfcHJveHlfcGFkX2RvX2FjdGl2YXRlKQoJICAoZ3N0X3Byb3h5X3BhZF9kb19hY3RpdmF0ZXB1bGwsIGdzdF9wcm94eV9wYWRfZG9fYWN0aXZhdGVwdXNoKToKCSAgQWRhcHQgZm9yIG5ldyBwYWQgQVBJLgoJICAqIGdzdC9nc3RldmVudC5jIChfZ3N0X2V2ZW50X2luaXRpYWxpemUpOiBEb24ndCBpbml0aWFsaXplIHRyYWNlLgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfaXRlcmF0ZV9zcmNfcGFkcykKCSAgKGdzdF9lbGVtZW50X2l0ZXJhdGVfc2lua19wYWRzKTogTmV3IEFQSSBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoaXRlcmF0b3JfZm9sZF93aXRoX3Jlc3luYyk6IE5ldyB1dGlsaXR5LAoJICBzaG91bGQgZm9sZCBpbnRvIGdzdGl0ZXJhdG9yLmMgaW4gc29tZSBmb3JtLgoJICAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6IFNpbXBsaWZpZWQgdmlhIHVzZSBvZiBmb2xkIGFuZAoJICBkZWxlZ2F0aW9uIG9mIGRlY2lzaW9ucyB0byBnc3RwYWQtPmFjdGl2YXRlLgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19zb3VyY2VfZmluYWxpemUpOiBTZXQgdGhlIGJ1cyB0byBOVUxMLAoJICBoZWxwIGluIGRlYnVnZ2luZy4KCSAgKiBnc3QvZ3N0YnVmZmVyLmMgKF9nc3RfYnVmZmVyX2luaXRpYWxpemUpOiBSZWYgdGhlIGJ1ZmZlciB0eXBlCgkgIGNsYXNzIG9uY2UgaW4gaW5pdCwgbGlrZSBnc3RtZXNzYWdlLiBEaWRuJ3QgcnVuIGludG8gdGhpcyBpc3N1ZQoJICBidXQgaXQgc2VlbXMgY29ycmVjdC4gRG9uJ3QgaW5pdGlhbGl6ZSBhIHRyYWNlLCBnc3RtaW5pb2JqZWN0IGRvZXMKCSAgdGhhdC4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jICh0ZXN0X3N0b3BfZnJvbV9hcHApOiBOZXcKCSAgdGVzdCwgcnVucyBmYWtlc3JjICEgZmFrZXNpbmssIHN0b3BwaW5nIG9uIDo6aGFuZG9mZiB2aWEgYSBtZXNzYWdlCgkgIHRvIHRoZSBidXMuCgkgIChhc3NlcnRfbGl2ZV9jb3VudCk6IE5ldyB1dGlsIGZ1bmN0aW9uLCB1c2VzIGFsbG9jIHRyYWNlcyB0byBjaGVjawoJICBjbGVhbnVwLgoJICAqIGNoZWNrL2dzdC9nc3RnaG9zdHBhZC5jICh0ZXN0X2dob3N0X3BhZHMpOiBNb3JlIHJlZmNvdW50IGNoZWNrcy4KCSAgVG8gYmUgbW9kaWZpZWQgd2hlbiB1bmxpbmsgZHJvcHMgdGhlIGludGVybmFsIHBhZC4KCjIwMDUtMDYtMjcgMTg6MTE6MjQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IENsZWFudXAgdGhlIGdldF9zdGF0ZSgpIGZ1bmN0aW9uIGEgbGl0dGxlLCBtYWtlIHN1cmUgaXQgaXRlcmF0ZXMgdGhlIHNhbWUgc2V0IG9mIGVsZW1lbnRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2dldF9zdGF0ZSksIChnc3RfYmluX2l0ZXJhdGVfc3RhdGVfb3JkZXIpLAoJICAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOgoJICBDbGVhbnVwIHRoZSBnZXRfc3RhdGUoKSBmdW5jdGlvbiBhIGxpdHRsZSwgbWFrZSBzdXJlIGl0CgkgIGl0ZXJhdGVzIHRoZSBzYW1lIHNldCBvZiBlbGVtZW50cy4KCSAgQWRkZWQgc3R1YiBpdGVyYXRlX3N0YXRlX29yZGVyKCkuCgoyMDA1LTA2LTI3IDE0OjQwOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLnR5cGVzOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2VzaW5rLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNyYy5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJhc2V0cmFuc2Zvcm0uc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aXRlcmF0b3Iuc2dtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgIGFkZGluZyBiYXNldHJhbnNmb3JtIGFuZCBpdGVyYXRvciBkb2NzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGRpbmcgYmFzZXRyYW5zZm9ybSBhbmQgaXRlcmF0b3IgZG9jcwoKMjAwNS0wNi0yNyAxMzoyNTo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDogTm90ZXMgb24gaG93IGFjdGl2YXRpb24gc2hvdWxkIHdvcmsgLS0gbm90IHF1aXRlIGltcGxlbWVudGVkIHlldC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9kZXNpZ24vcGFydC1hY3RpdmF0aW9uLnR4dDogTm90ZXMgb24gaG93IGFjdGl2YXRpb24gc2hvdWxkCgkgIHdvcmsgLS0gbm90IHF1aXRlIGltcGxlbWVudGVkIHlldC4KCjIwMDUtMDYtMjcgMDg6NTQ6MTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHJlZ2lzdHJ5LnNnbWw6CgkgIHJlbW92ZSBzdHVmZiB0aGF0IGlzbid0IHRoZXJlIGFueW1vcmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzdHVmZiB0aGF0IGlzbid0IHRoZXJlIGFueW1vcmUKCjIwMDUtMDYtMjcgMDg6MTY6NTEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdHR5cGVzLnNnbWw6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0YmluLmg6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICBtb3JlIGRvYyBhbmQgd2hpdGVzcGFjZSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBkb2MgYW5kIHdoaXRlc3BhY2UgZml4ZXMKCjIwMDUtMDYtMjUgMTk6NTM6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYzogQXQgbGVhc3QgZ2V0IHRoZSBjaGFpbiBmdW5jdGlvbiBjb3JyZWN0LCBuZWVkcyBtb3JlIGZpeGluZy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGdob3N0cGFkLmM6IChnc3RfcHJveHlfcGFkX2RvX2NoYWluKToKCSAgQXQgbGVhc3QgZ2V0IHRoZSBjaGFpbiBmdW5jdGlvbiBjb3JyZWN0LCBuZWVkcyBtb3JlCgkgIGZpeGluZy4KCjIwMDUtMDYtMjUgMTk6Mzc6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBSaWdodCwgdHdvIHByb2JsZW1zIGhlcmU6IGdob3N0cGFkcyBkb24ndCB0YWtlIGxvY2tzIGFuZCBnbGliIF9yZWNfbXV0ZXhfbG9ja19mdWxsKCkgd2l0aCBkZXB0aD09MCBzdGlsbCBsb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19oYW5kbGVfb2JqZWN0KSwgKGdzdF9iYXNlc2lua19ldmVudCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyksIChnc3RfYmFzZXNpbmtfaGFuZGxlX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgIFJpZ2h0LCB0d28gcHJvYmxlbXMgaGVyZTogZ2hvc3RwYWRzIGRvbid0IHRha2UgbG9ja3MgYW5kCgkgIGdsaWIgX3JlY19tdXRleF9sb2NrX2Z1bGwoKSB3aXRoIGRlcHRoPT0wIHN0aWxsIGxvY2tzLgoJICBDYXRjaCBpbGxlZ2FsIGxvY2tpbmcgYW5kIGdfd2FybiB0aGVtLgoKMjAwNS0wNi0yNSAxOToxNDo1MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrL3N0YXRlcy9zaW5rcy5jOiBIYXZlIHRvIGNoZWNrIGZvciBjb21wbGV0aW9uIG5vdy4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9zdGF0ZXMvc2lua3MuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgIEhhdmUgdG8gY2hlY2sgZm9yIGNvbXBsZXRpb24gbm93Li4uCgoyMDA1LTA2LTI1IDE5OjA5OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVW5sb2NrIFNUUkVBTV9MT0NLIHdoYXRldmVyIHRoZSByZWN1cnNpb24gd2FzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9vYmplY3QpLCAoZ3N0X2Jhc2VzaW5rX2V2ZW50KSwKCSAgKGdzdF9iYXNlc2lua19kb19zeW5jKSwgKGdzdF9iYXNlc2lua19oYW5kbGVfZXZlbnQpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICBVbmxvY2sgU1RSRUFNX0xPQ0sgd2hhdGV2ZXIgdGhlIHJlY3Vyc2lvbiB3YXMuCgoyMDA1LTA2LTI1IDE3OjU0OjU4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogUmV3b3JrZWQgdGhlIGJhc2Ugc2luaywgaGFuZGxlIGV2ZW50IGFuZCBidWZmZXIgc2VyaWFsaXNhdGlvbiBjb3JyZWN0bHkgYW5kIHJlbW92ZWQgcG9zc2libGUgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2VtcHR5KSwKCSAgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX2ZsdXNoKSwgKGdzdF9iYXNlc2lua19oYW5kbGVfb2JqZWN0KSwKCSAgKGdzdF9iYXNlc2lua19ldmVudCksIChnc3RfYmFzZXNpbmtfZG9fc3luYyksCgkgIChnc3RfYmFzZXNpbmtfaGFuZGxlX2V2ZW50KSwgKGdzdF9iYXNlc2lua19oYW5kbGVfYnVmZmVyKSwKCSAgKGdzdF9iYXNlc2lua19jaGFpbiksIChnc3RfYmFzZXNpbmtfbG9vcCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYW5nZV9zdGF0ZSk6CgkgIFJld29ya2VkIHRoZSBiYXNlIHNpbmssIGhhbmRsZSBldmVudCBhbmQgYnVmZmVyIHNlcmlhbGlzYXRpb24KCSAgY29ycmVjdGx5IGFuZCByZW1vdmVkIHBvc3NpYmxlIGRlYWRsb2NrLgoJICBIYW5kbGUgRU9TIGNvcnJlY3RseS4KCjIwMDUtMDYtMjUgMTc6NTE6MTIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBbGxvdyBlbGVtZW50cyB0byBwb3N0IEVPUyBpbiB0aGUgc3RhdGUgY2hhbmdlIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGlzX2VvcyksIChwaXBlbGluZV9idXNfaGFuZGxlciksCgkgIChnc3RfcGlwZWxpbmVfY2hhbmdlX3N0YXRlKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChjaGVja19pbnRyKSwgKGV2ZW50X2xvb3ApLCAobWFpbik6CgkgIEFsbG93IGVsZW1lbnRzIHRvIHBvc3QgRU9TIGluIHRoZSBzdGF0ZSBjaGFuZ2UgZnVuY3Rpb24uCgkgIEZpeCB1cCAtbGF1bmNoLCBtYWtlIGl0IGV4aXQgdGhlIHBvbGwgbG9vcCB3aGVuIHRoZQoJICBwaXBlbGluZSBhY3R1YWxseSBjaGFuZ2VkIHN0YXRlLgoJICBGaXggdXAgd2FybmluZyBwYXJzaW5nIGluIC1sYXVuY2guCgoyMDA1LTA2LTI1IDE3OjQ0OjM5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiBDb3JlIHRha2VzIFNUUkVBTV9MT0NLIGZvciB1cyBub3cuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzogKGdzdF90ZWVfY2hhaW4pLCAoZ3N0X3RlZV9sb29wKSwKCSAgKGdzdF90ZWVfc2lua19hY3RpdmF0ZSk6CgkgIENvcmUgdGFrZXMgU1RSRUFNX0xPQ0sgZm9yIHVzIG5vdy4KCjIwMDUtMDYtMjUgMTc6NDI6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBLZWVwIHRyYWNrIG9mIGN1cnJlbnQgdGFyZ2V0IHN0YXRlIHdoaWxlIHBlcmZvcm1pbmcgYSBzdGF0ZSBjaGFuZ2Ugc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBkbyBzb21ldGhpbmcgaW50ZXJlc3QuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9zdGF0ZV9mdW5jKSwKCSAgKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfcGFyc2VfZXJyb3IpLAoJICAoZ3N0X21lc3NhZ2VfcGFyc2Vfd2FybmluZyk6CgkgIEtlZXAgdHJhY2sgb2YgY3VycmVudCB0YXJnZXQgc3RhdGUgd2hpbGUgcGVyZm9ybWluZyBhIHN0YXRlCgkgIGNoYW5nZSBzbyB0aGF0IHN1YmNsYXNzZXMgY2FuIGRvIHNvbWV0aGluZyBpbnRlcmVzdGluZy4KCSAgRml4IHBhcnNpbmcgb2Ygd2FybmluZy9lcnJvciBtZXNzYWdlcyB3aGVuIEdFcnJvciBpcyBOVUxMLgoKMjAwNS0wNi0yNCAxODoxNjoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItZG9jcy5zZ21sOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmFzZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RiYXNlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0YmluLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0Y29tcGF0LnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmFrZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmYWtlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0ZmlsZXNpbmsuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RmaWxlc3JjLnNnbWw6CgkqIGRvY3MvZ3N0L3RtcGwvZ3N0aW5kZXguc2dtbDoKCSogZG9jcy9tYW51YWwvYXBwZW5kaXgtcXVvdGVzLnhtbDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNyYy5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkgIHN0YXJ0IHB1bGxpbmcgaW4gYmFzZSBjbGFzc2VzIGFuZCBlbGVtZW50cyBmb3IgZG9jcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgc3RhcnQgcHVsbGluZyBpbiBiYXNlIGNsYXNzZXMgYW5kIGVsZW1lbnRzIGZvciBkb2NzCgoyMDA1LTA2LTI0IDA3OjQ5OjQwICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJKiBkb2NzL2xpYnMvTWFrZWZpbGUuYW06CgkgIGZpeGVkIG1ha2UgZGlzdGNoZWNrIHdpdGggZ3RrLWRvYyAxLjMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpeGVkIG1ha2UgZGlzdGNoZWNrIHdpdGggZ3RrLWRvYyAxLjMKCjIwMDUtMDYtMjMgMTc6MTE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBXaGVuIHRoZSBzdGF0ZSBkaWQgbm90IGNoYW5nZSwgYWxzbyByZXBvcnQgTk9fUFJFUk9MTCB3aGVuIGl0IG1hdHRlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9zZXRfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgV2hlbiB0aGUgc3RhdGUgZGlkIG5vdCBjaGFuZ2UsIGFsc28gcmVwb3J0IE5PX1BSRVJPTEwKCSAgd2hlbiBpdCBtYXR0ZXJzLgoKMjAwNS0wNi0yMyAxNzowOToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE5vIHVuc2FmZSB0YXNrIHBhdXNpbmcgcGxlYXNlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2xvb3ApOgoJICBObyB1bnNhZmUgdGFzayBwYXVzaW5nIHBsZWFzZS4KCjIwMDUtMDYtMjMgMTc6MDc6MDggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3Qvc2NoZWR1bGVycy90aHJlYWRzY2hlZHVsZXIuYzogUmVmIHRoZSB0YXNrIGJlZm9yZSBwdXNoaW5nIGl0IG9uIHRoZSB0aHJlYWRwb29sLiBUaGlzIG1ha2VzIHN1cmUgdGhhdCB3ZSBoYXZlIGEgcmUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl90YXNrX3N0YXJ0KSwKCSAgKGdzdF90aHJlYWRfc2NoZWR1bGVyX3Rhc2tfcGF1c2UpLCAoZ3N0X3RocmVhZF9zY2hlZHVsZXJfZnVuYyk6CgkgIFJlZiB0aGUgdGFzayBiZWZvcmUgcHVzaGluZyBpdCBvbiB0aGUgdGhyZWFkcG9vbC4gVGhpcwoJICBtYWtlcyBzdXJlIHRoYXQgd2UgaGF2ZSBhIHJlZiB3aGVuIHRoZSB0aHJlYWRmdW5jdGlvbiBpcwoJICBhY3R1YWxseSBjYWxsZWQuCgoyMDA1LTA2LTIzIDE1OjI2OjA5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSk6IENoZWNrIGlmIHRoZSBvZmZzZXQgaXMgZ3JlYXRlciB0aGFuIHRoZSBmaWxlJ3Mgc2l6ZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19nZXRfcmFuZ2UpOiBDaGVjayBpZiB0aGUKCSAgb2Zmc2V0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgZmlsZSdzIHNpemUuCgoyMDA1LTA2LTIzIDE1OjA0OjQ4ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0b2JqZWN0LmggKEdTVF9DTEFTU19MT0NLLCBHU1RfQ0xBU1NfVFJZTE9DSykgKEdTVF9DTEFTU19VTkxPQ0ssIEdTVF9DTEFTU19HRVRfTE9DSywgR3N0T2JqZWN0Q2xhc3MpCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RvYmplY3QuaCAoR1NUX0NMQVNTX0xPQ0ssIEdTVF9DTEFTU19UUllMT0NLKQoJICAoR1NUX0NMQVNTX1VOTE9DSywgR1NUX0NMQVNTX0dFVF9MT0NLLCBHc3RPYmplY3RDbGFzcykKCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6IE1ha2UgdGhlIGNsYXNzIGxvY2sKCSAgcmVjdXJzaXZlLiBXaW0gd29uJ3QgbGV0IG1lIGRyb3AgZGVlcF9ub3RpZnkuIERlY29kZWJpbiB3b3JrcwoJICBhZ2Fpbiwgd2hvb3BkeSBkb28uCgoyMDA1LTA2LTIzIDE0OjE4OjE1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAob25faW50X25vdGlmeSk6IENhdGNoZXMgbm90aWZ5OjpjYXBzIG9uIHRoZSBpbnRlcm5hbCBwYWQsIGFuZCBoYWNrcyBhY2NvcmRpbmdseS4gRG9lc24ndCBkbyBpdCBvbiAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKG9uX2ludF9ub3RpZnkpOiBDYXRjaGVzIG5vdGlmeTo6Y2FwcyBvbiB0aGUKCSAgaW50ZXJuYWwgcGFkLCBhbmQgaGFja3MgYWNjb3JkaW5nbHkuIERvZXNuJ3QgZG8gaXQgb24gdGhlIHRhcmdldAoJICBwYWQgYmVjYXVzZSB3ZSBjaGFuZ2UgaXRzIGNhcHMuIFByb2JhYmx5IGNhdGNoZXMgYWxsIGNhc2VzIG9mCgkgIGludGVyZXN0IHRoby4KCSAgKGdzdF9naG9zdF9wYWRfc2V0X3Byb3BlcnR5KTogQ29ubmVjdCB0byBub3RpZnk6OmNhcHMgYXMKCSAgYXBwcm9wcml0YXRlLgoKMjAwNS0wNi0yMyAxMzoyMDo0NCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvbmV0d29yay1jbG9jay5zY20gKHBsb3Qtc2ltdWxhdGlvbik6IFBpcGUgZGF0YSB0byB0aGUgZWxpdGUgcHl0aG9uIHNrcmlwdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvbmV0d29yay1jbG9jay5zY20gKHBsb3Qtc2ltdWxhdGlvbik6IFBpcGUgZGF0YSB0byB0aGUKCSAgZWxpdGUgcHl0aG9uIHNrcmlwdC4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbSAoZGVmaW5lLXBhcmFtZXRlcik6IE5ldyBtYWNybywKCSAgZGVmaW5lcyBhIHBhcmFtZXRlciB0aGF0IGNhbiBiZSBzZXQgdmlhIHRoZSBjb21tYW5kIGxpbmUuCgkgIChzZXQtcGFyYW1ldGVyISwgcGFyc2UtcGFyYW1ldGVyLWFyZ3VtZW50cyk6IENvbW1hbmQgbGluZSBhcmdzCgkgIHBhcnNlci4KCSAgKiB0ZXN0cy9wbG90LWRhdGE6IFNpbXBsZSBtYXRwbG90bGliLWJhc2VkIHBsb3R0ZXIsIHRha2VzIGlucHV0IG9uCgkgIHN0ZGluLgoKMjAwNS0wNi0yMyAxMzoyMDowMCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL21hbnVhbC9hcHBlbmRpeC1xdW90ZXMueG1sOgoJICBhZGQgbW9yZSBpbXBvcnRhbnQgZG9jdW1lbnRhdGlvbgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIG1vcmUgaW1wb3J0YW50IGRvY3VtZW50YXRpb24KCjIwMDUtMDYtMjMgMTE6NDM6MzkgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiBEb24ndCByZXN0YXJ0IHR5cGVmaW5kaW5nIG9uIGEgZGlzY29udC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEphbiBTY2htaWR0ICA8dGhheXRhbkBtYWQuc2NpZW50aXN0LmNvbT4KCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgRG9uJ3QgcmVzdGFydCB0eXBlZmluZGluZyBvbiBhIGRpc2NvbnQuCgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3NldF9zdGF0ZSk6CgkgIERlYnVnIHNwZWxsaW5nIGZpeC4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9zZW5kX2V2ZW50KToKCSAgQWxsb3cgY2hhbmdpbmcgbW9kZSBvZiBhbiBhY3RpdmUgcGFkLgoJICBEZWJ1ZyBvdXRwdXQgZml4ZXMuCgkgICogZ3N0L3JlZ2lzdHJpZXMvZ3N0bGlieG1scmVnaXN0cnkuYzogKGxvYWRfZmVhdHVyZSk6CgkgIERvbid0IGNhc3QgYSBzdGF0aWMgcGFkIHRlbXBsYXRlIHRvIGEgbm9ybWFsIHBhZCB0ZW1wbGF0ZS4KCjIwMDUtMDYtMjMgMTE6MjU6MjkgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVtb3ZlIGdzdF9zdHJ0b2xsIGNvbXBsZXRlbHksIHNpbmNlIGl0IGRpZG4ndCBhY3R1YWxseSBkbyBhbnl0aGluZyBtb3JlIHRoYW4gd2hhdCBnX2FzY2lpX3N0cnRvdWxsIGFscmVhZHkgZG9lcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSk6CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlcik6CgkgIHJlbW92ZSBnc3Rfc3RydG9sbCBjb21wbGV0ZWx5LCBzaW5jZSBpdCBkaWRuJ3QgYWN0dWFsbHkgZG8KCSAgYW55dGhpbmcgbW9yZSB0aGFuIHdoYXQgZ19hc2NpaV9zdHJ0b3VsbCBhbHJlYWR5IGRvZXMuCgkgIGNoZWNrIGZvciByYW5nZSBlcnJvcnMgd2hlbiBkZXNlcmlhbGl6aW5nCgkgIGRvIGEgY2FzdCBmb3IgdGhlIHVuc2lnbmVkIGNhc2VzOyBidXQgZnVydGhlciBmaXhpbmcgbmVlZHMKCSAgYSBkZWNpc2lvbiBvbiB3aGF0IHRoZSBpbnRlcnByZXRhdGlvbiBvZiAiKGludCkiIGFuZAoJICBkZXNlcmlhbGl6YXRpb24gc2hvdWxkIGJlIGZvciB2YWx1ZXMgdGhhdCBmYWxsIG91dHNpZGUgdGhlCgkgIHR5cGUncyBib3VuZGFyaWVzIChpZSwgcmVmdXNlLCBvciBpbnRlcnByZXQgYXMgY2FzdGluZykKCjIwMDUtMDYtMjMgMTA6Mzc6MDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9zdGF0ZXMvc2lua3MuYzoKCSogZG9jcy9kZXNpZ24vcGFydC1saXZlLXNvdXJjZS50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHR5cGVzLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9nZW5lcmljL3NpbmtzLmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSAgQWRkZWQgc3VwcG9ydCBmb3IgbGl2ZSBzb3VyY2VzIGFuZCBvdGhlciBlbGVtZW50cyB0aGF0IGNhbm5vdCBkbyBwcmVyb2xsLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgQWRkZWQgc3VwcG9ydCBmb3IgbGl2ZSBzb3VyY2VzIGFuZCBvdGhlciBlbGVtZW50cyB0aGF0CgkgIGNhbm5vdCBkbyBwcmVyb2xsLgoJICBVcGRhdGVkIGRlc2lnbiBkb2NzLCBhZGRlZCBsaXZlLXNvdXJjZSBkZXNpZ24gZG9jLgoJICBJbXBsZW1lbnRlZCBsaXZlIHNvdXJjZSBmdW5jdGlvbmFsaXR5IGluIGJhc2VzcmMKCSAgRml4IGVycm9yIGNvbmRpdGlvbiBpbiBfYmluX2dldF9zdGF0ZSgpCgkgIEltcGxlbWVudCBsaXZlIHNvdXJjZSBoYW5kbGluZyBpbiAtbGF1bmNoLgoJICBBZGRlZCBjaGVjayBmb3IgbGl2ZSBzb3VyY2VzLgoJICBGaXhlZCBjYXNlIGluIEdzdEJpbiB3aGVyZSBlbGVtZW50cyB3ZXJlIGNoYW5nZWQgc3RhdGUKCSAgbXVsdGlwbGUgdGltZXMuCgoyMDA1LTA2LTIzIDA5OjU5OjMzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBjaGVjay9nc3QvZ3N0cGFkLmMgKHRlc3RfZ2V0X2FsbG93ZWRfY2FwcywgdGVzdF9yZWZjb3VudCk6IEZpeCBib3JrZW4gcmVmY291bnRpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYyAodGVzdF9nZXRfYWxsb3dlZF9jYXBzLCB0ZXN0X3JlZmNvdW50KTogRml4CgkgIGJvcmtlbiByZWZjb3VudGluZy4KCjIwMDUtMDYtMjMgMDk6NDE6NDEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIGdzdC9nc3RwYWQuYzoKCSAgY29tbWl0IHRoZSBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBjb21taXQgdGhlIGZpbGUKCjIwMDUtMDYtMjMgMDk6NDE6MDkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfY2Fwcyk6IFJlbW92ZSBuZWVkbGVzcyByZWZzLCBnc3RfY2Fwc19yZXBsYWNlIHRha2VzIGNhcmUgb2YgdGhpcyBmb3IgdXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIzICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RwYWQuYyAoZ3N0X3BhZF9zZXRfY2Fwcyk6IFJlbW92ZSBuZWVkbGVzcyByZWZzLAoJICBnc3RfY2Fwc19yZXBsYWNlIHRha2VzIGNhcmUgb2YgdGhpcyBmb3IgdXMuCgoyMDA1LTA2LTIzIDA5OjI4OjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0Z2hvc3RwYWQuYyAoZ3N0X3Byb3h5X3BhZF9kb19zZXRjYXBzKTogQ2FsbCB0aGUgZnVsbCBnc3RfcGFkX3NldF9jYXBzIG9uIHRoZSB0YXJnZXQsIG5vdCBqdXN0IGl0cyBzZXRjYXBzKCkgZnUuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjMgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGdob3N0cGFkLmMgKGdzdF9wcm94eV9wYWRfZG9fc2V0Y2Fwcyk6IENhbGwgdGhlIGZ1bGwKCSAgZ3N0X3BhZF9zZXRfY2FwcyBvbiB0aGUgdGFyZ2V0LCBub3QganVzdCBpdHMgc2V0Y2FwcygpIGZ1bmN0aW9uLgoKMjAwNS0wNi0yMyAwMDozOToyNiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvOiBBIG5ldHdvcmsgY2xvY2sgc2ltdWxhdG9yLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNi0yMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLnNjbToKCSAgKiB0ZXN0cy9uZXR3b3JrLWNsb2NrLXV0aWxzLnNjbTogQSBuZXR3b3JrIGNsb2NrIHNpbXVsYXRvci4KCSAgU29tZXRoaW5nIG9mIGFuIGFsZ29yaXRobWljIHRlc3RiZWQgYmVmb3JlIGRvaW5nIHNvbWV0aGluZyBpbiBDLgoKMjAwNS0wNi0yMiAxOTo1NzoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG1ha2Ugc3VyZSBjYXBzbGlzdC5oIGdldHMgZGlzdGVkCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBtYWtlIHN1cmUgY2Fwc2xpc3QuaCBnZXRzIGRpc3RlZAoKMjAwNS0wNi0yMiAxOTo0ODo1NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBmaWxlIGZyb21zdHJpbmcuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZnJvbXN0cmluZy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNi0yMiAxOToyMjozNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGNvcHkgb3ZlciBmcm9tIDAuOCwgYW5kIGFkZCB0d28gd2l0aCBiaXRtYXNrcyBzcGVjaWZpZWQgd2l0aCAoaW50KSAweEZGLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGNoZWNrL2dzdC9jYXBzbGlzdC5oOgoJICBjb3B5IG92ZXIgZnJvbSAwLjgsIGFuZCBhZGQgdHdvIHdpdGggYml0bWFza3Mgc3BlY2lmaWVkIHdpdGgKCSAgKGludCkgMHhGRi4uLgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgYWRkIHRlc3QgdG8gcGFyc2UgZXZlcnl0aGluZyBmcm9tIGNhcHNsaXN0LmgKCSAgKiBjaGVjay9nc3QvZ3N0c3RydWN0dXJlLmM6IChTVEFSVF9URVNUKSwgKGdzdF92YWx1ZV9zdWl0ZSksCgkgIChtYWluKToKCSAgYWRkIHRlc3QgZm9yIHN0cnVjdHVyZSBkZXNlcmlhbGl6YXRpb24KCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgYWRkIHRlc3RzIGZvciBkZXNlcmlhbGl6YXRpb24gb2Ygc3RyaW5ncyB0byBpbnQgdHlwZXMKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmM6IChnc3Rfc3RydWN0dXJlX250aF9maWVsZF9uYW1lKToKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgIGFkZCBhIHdheSB0byBnZXQgdGhlIG5hbWUgb2YgYSBmaWVsZCByZWZlcmVuY2VkIGJ5IGluZGV4CgkgICogZ3N0L2dzdHZhbHVlLmM6IChnc3RfdmFsdWVfZGVzZXJpYWxpemVfaW50X2hlbHBlcik6CgkgIGluc3RlYWQgb2YgY2hlY2tpbmcgaWYgdGhlIHJlc3VsdGluZyBsb25nIGxvbmcgbGllcyBiZXR3ZWVuCgkgIG1pbiBhbmQgbWF4LCB3ZSBjaGVjayBpZiB0aGUgbG9uZyBsb25nIHdvdWxkIGZpdCBpbnRvCgkgIGEgbnVtYmVyIG9mIGJ5dGVzIGZvciB0aGUgZmluYWwgdHlwZS4KCSAgVGhpcyBmaXhlcyBjYXNlcyB3aGVyZSBhIHN0cmluZyByZXByZXNlbnRzIDJeMzIgLSAxLCB3aGljaAoJICB3aGVuIGNhc3QgdG8gaW50IHdvdWxkIGJlIHRoZSAodmFsaWQpIC0xLCBidXQgaXMgYmlnZ2VyIHRoYW4KCSAgR19NQVhJTlQKCjIwMDUtMDYtMjIgMTE6MDI6NTcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJICBhZGQgYSBsb2cgbGluZSBmb3IgdHlwZSBkZXNlcmlhbGl6YXRpb24KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIGxvZyBsaW5lIGZvciB0eXBlIGRlc2VyaWFsaXphdGlvbgoKMjAwNS0wNi0yMiAxMDo1MjoxOCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICByZXR1cm4gbG9uZyBsb25nLCBub3QgaW50LCBzbyBnaW50NjQgZGVzZXJpYWxpemF0aW9uIGFjdHVhbGx5IHdvcmtzLiAgSXMgdGhlcmUgYW55IGZsYWcgdGhhdCBtYWtlcyB0aGUgY29tcGlsZXIgY2hlY2suLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdHZhbHVlLmM6IChTVEFSVF9URVNUKToKCSAgKiBnc3QvZ3N0dmFsdWUuYzogKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZSk6CgkgIHJldHVybiBsb25nIGxvbmcsIG5vdCBpbnQsIHNvIGdpbnQ2NCBkZXNlcmlhbGl6YXRpb24gYWN0dWFsbHkKCSAgd29ya3MuICBJcyB0aGVyZSBhbnkgZmxhZyB0aGF0IG1ha2VzIHRoZSBjb21waWxlciBjaGVjayB0aGlzID8KCSAgRml4ZXMgIzMwODU1OQoKMjAwNS0wNi0yMiAwOTo1NToxNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuaDogQWRkZWQgY29udmVuaWVuY2UgbWFjcm9zIGZvciBzZXR0aW5nIGJ1ZmZlcnMgaW4gR1ZhbHVlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIEFkZGVkIGNvbnZlbmllbmNlIG1hY3JvcyBmb3Igc2V0dGluZyBidWZmZXJzIGluIEdWYWx1ZS4KCjIwMDUtMDYtMjEgMTc6NDE6MzUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svZ3N0LzogYWRkIGEgdGVzdCBkZXNlcmlhbGl6aW5nIGludDY0LCBhbmQgY29tbWVudCBwYXJ0IG91dCBiZWNhdXNlIGl0IGZhaWxzLCB5YXkgIQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3QvLmN2c2lnbm9yZToKCSAgKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3ZhbHVlX3N1aXRlKToKCSAgYWRkIGEgdGVzdCBkZXNlcmlhbGl6aW5nIGludDY0LCBhbmQgY29tbWVudCBwYXJ0IG91dCBiZWNhdXNlCgkgIGl0IGZhaWxzLCB5YXkgIQoKMjAwNS0wNi0yMSAxNjo1MzoxNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvZ3N0LmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3QuYzoKCSAgY29tbWl0IGEgZmlsZSBJIGZvcmdvdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tbWl0IGEgZmlsZSBJIGZvcmdvdAoKMjAwNS0wNi0yMSAxNjo0ODo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0dmFsdWUuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3R2YWx1ZS5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2Fwcy92YWx1ZV9zZXJpYWxpemUuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS90ZXN0X2dzdF9pbml0LmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2NhcHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9jYXBzL3ZhbHVlX3NlcmlhbGl6ZS5jOgoJKiB0ZXN0c3VpdGUvdGVzdF9nc3RfaW5pdC5jOgoJICBtb3ZlIG92ZXIgYSB2YWx1ZV9zZXJpYWxpemUgdGVzdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW92ZSBvdmVyIGEgdmFsdWVfc2VyaWFsaXplIHRlc3QKCjIwMDUtMDYtMjAgMTU6MTg6MTcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFNtYWxsIGRvYyB1cGRhdGVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6CgkgIFNtYWxsIGRvYyB1cGRhdGVzLgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfYnVmZmVyKSwKCSAgKGdzdF92YWx1ZV9zZXJpYWxpemVfYnVmZmVyKSwgKGdzdF92YWx1ZV9kZXNlcmlhbGl6ZV9idWZmZXIpLAoJICAoZ3N0X3ZhbHVlX2NvbXBhcmVfZmxhZ3MpLCAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyksCgkgIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxhZ3MpLCAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgRml4IHNlcmlhbGlzYXRpb24gb2YgYnVmZmVycywgdGhleSBhcmUgbm90IGJveGVkIHR5cGVzIGFueW1vcmUKCjIwMDUtMDYtMjAgMTU6MTQ6NTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvZ3N0Y2Fwcy5jOiBUZXN0Y2FzZSB0byBzaG93IGVycm9yIGluIGJ1ZmZlci1vbi1jYXBzIHNlcmlhbGlzYXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RjYXBzLmM6IChTVEFSVF9URVNUKSwgKGdzdF9jYXBzX3N1aXRlKToKCSAgVGVzdGNhc2UgdG8gc2hvdyBlcnJvciBpbiBidWZmZXItb24tY2FwcyBzZXJpYWxpc2F0aW9uLgoKMjAwNS0wNi0yMCAxNToxMzo0MyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy9yYW5kb20vd2luZ28vcG9ydGluZy1wbHVnaW5zLXRvLTAuOTogQSBwaXRpZnVsIGRvY3VtZW50IEkgd2lsbCBiZSBhZGRpbmcgdG8gbGF0ZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTIwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvcmFuZG9tL3dpbmdvL3BvcnRpbmctcGx1Z2lucy10by0wLjk6IEEgcGl0aWZ1bCBkb2N1bWVudCBJCgkgIHdpbGwgYmUgYWRkaW5nIHRvIGxhdGVyLgoKMjAwNS0wNi0yMCAxMTo0MToxNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHN5c3RlbWNsb2NrLmMgKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6IFVubG9jayB0aGUgY2xvY2sgaWYgaXRzIHNvY2tzIGZpbGwgd2l0aCByb2Nrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMjAgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmMgKGdzdF9zeXN0ZW1fY2xvY2tfaW5pdCk6IFVubG9jayB0aGUgY2xvY2sKCSAgaWYgaXRzIHNvY2tzIGZpbGwgd2l0aCByb2Nrcy4KCSAgKGdzdF9zeXN0ZW1fY2xvY2tfb2J0YWluKTogU2V0IHRoZSBuYW1lIG9uIG9iamVjdCBjb25zdHJ1Y3Rpb24uCgkgIEF2b2lkIGRvdWJsZS1jaGVja2VkIGxvY2tpbmcuCgoyMDA1LTA2LTIwIDExOjMyOjE0ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2dzdHVyaS5jOiBGaXggcG90ZW50aWFsIGVuZGxlc3MgbG9vcC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHVyaS5jOiAoZ3N0X2VsZW1lbnRfbWFrZV9mcm9tX3VyaSk6CgkgIEZpeCBwb3RlbnRpYWwgZW5kbGVzcyBsb29wLgoKMjAwNS0wNi0yMCAxMToyNzozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZ2hvc3RwYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZ2hvc3RwYWRzL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2dob3N0cGFkcy9naG9zdHBhZHMuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvZ2hvc3RwYWRzLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9naG9zdHBhZHMvTWFrZWZpbGUuYW06CgkqIHRlc3RzdWl0ZS9naG9zdHBhZHMvZ2hvc3RwYWRzLmM6CgkgIHJlbW92ZSBhbm90aGVyIHRlc3QgdGhhdCdzIG9ic29sZXRlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgYW5vdGhlciB0ZXN0IHRoYXQncyBvYnNvbGV0ZQoKMjAwNS0wNi0yMCAxMToyMzo1OSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvY2xvY2svLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9NYWtlZmlsZS5hbToKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9jbG9jazEuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9jbG9jazIuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9jbG9jay9zaWduZWRuZXNzLmM6CgkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2Nsb2NrLy5naXRpZ25vcmU6CgkqIHRlc3RzdWl0ZS9jbG9jay9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2Nsb2NrL2Nsb2NrMS5jOgoJKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2syLmM6CgkqIHRlc3RzdWl0ZS9jbG9jay9zaWduZWRuZXNzLmM6CgkgIHJlbW92ZSBjbG9jayB0ZXN0c3VpdGUsIGltcG9ydGFudCBzdHVmZiBhbHJlYWR5IG1vdmVkIHRvIGNoZWNrCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY2xvY2sgdGVzdHN1aXRlLCBpbXBvcnRhbnQgc3R1ZmYgYWxyZWFkeSBtb3ZlZCB0byBjaGVjawoKMjAwNS0wNi0yMCAxMToxODo0MCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy8uZ2l0aWdub3JlOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2JpbnMvTWFrZWZpbGUuYW06CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJKiB0ZXN0c3VpdGUvYmlucy8uZ2l0aWdub3JlOgoJKiB0ZXN0c3VpdGUvYmlucy9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL2JpbnMvaW50ZXJmYWNlLmM6CgkgIHJlbW92ZSB0ZXN0IHRoYXQgd2FzIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSB0ZXN0IHRoYXQgd2FzIGFscmVhZHkgbW92ZWQgdG8gY2hlY2sKCjIwMDUtMDYtMTkgMTE6MzI6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGFkZCBnc3R0YWcKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgIGFkZCBnc3R0YWcKCSAgKiBjaGVjay9nc3QvZ3N0dGFnLmM6IChjaGVja190YWdzKSwgKFNUQVJUX1RFU1QpLCAoZ3N0X3RhZ19zdWl0ZSksCgkgIChtYWluKToKCSAgbW92ZSBvdmVyIGZyb20gdGVzdHN1aXRlIGRpciBhbmQgY2xlYW4gdXAKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdHRhZy5jOgoJICAqIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0c3VpdGUvdGFncy8uY3ZzaWdub3JlOgoJICAqIHRlc3RzdWl0ZS90YWdzL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS90YWdzL21lcmdlLmM6CgkgIHJlbW92ZSB0ZXN0c3VpdGUvdGFncwoKMjAwNS0wNi0xOSAxMDo1NDoxMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGJpbi5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGJ1ZmZlci5zZ21sOgoJKiBkb2NzL2dzdC90bXBsL2dzdGNhcHMuc2dtbDoKCSogZG9jcy9nc3QvdG1wbC9nc3RzdHJ1Y3R1cmUuc2dtbDoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmg6CgkgIHNvbWUgbW9yZSBkb2NzIGNsZWFudXAKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNvbWUgbW9yZSBkb2NzIGNsZWFudXAKCjIwMDUtMDYtMTkgMTA6MzE6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogY29uZmlndXJlLmFjOgoJKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSogdGVzdHMvYnVmc3BlZWQvLmdpdGlnbm9yZToKCSogdGVzdHMvYnVmc3BlZWQvTWFrZWZpbGUuYW06CgkqIHRlc3RzL2J1ZnNwZWVkL1JFQURNRToKCSogdGVzdHMvYnVmc3BlZWQvZ3N0bWVtcG9vbC5jOgoJKiB0ZXN0cy9idWZzcGVlZC9nc3RtZW1wb29sLmg6CgkqIHRlc3RzL2J1ZnNwZWVkL3Rlc3QxLmM6CgkqIHRlc3RzL2J1ZnNwZWVkL3Rlc3QyLmM6CgkqIHRlc3RzL3NwaWRleV9iZW5jaC5jOgoJICByZW1vdmUgYnVmc3BlZWQgYW5kIHNwaWRleV9iZW5jaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgcmVtb3ZlIGJ1ZnNwZWVkIGFuZCBzcGlkZXlfYmVuY2gKCjIwMDUtMDYtMTkgMTA6MjI6NDcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJKiBkb2NzL2dzdC90bXBsL2dzdGVudW10eXBlcy5zZ21sOgoJKiB3aW4zMi9nc3RlbnVtdHlwZXMuYzoKCSAgY2xlYW4gdXAgZG9jcyBhIGxpdHRsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY2xlYW4gdXAgZG9jcyBhIGxpdHRsZQoKMjAwNS0wNi0xOSAwMDo1MjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay9nc3RjaGVjay5oOiBhZGQgbWFjcm9zIGZvciBjaGVja2luZyByZWZjb3VudHMgb24gb2JqZWN0cyBhbmQgY2FwcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICBhZGQgbWFjcm9zIGZvciBjaGVja2luZyByZWZjb3VudHMgb24gb2JqZWN0cyBhbmQgY2FwcwoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X3BhZF9zdWl0ZSk6CgkgIGFkZCBzb21lIG1vcmUgdW5pdCB0ZXN0cwoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfbGlua19jaGVja19jb21wYXRpYmxlX3VubG9ja2VkKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2dldF9hbGxvd2VkX2NhcHMpOgoJICBmaXggbGVha2VkIHJlZmNvdW50cyAoSSBob3BlIDopKSBzbyB1bml0dGVzdCB3b3JrcwoJICAqIGdzdC9nc3RwYWQuaDoKCSAgd2hpdGVzcGFjZSByZW1vdmFsCgoyMDA1LTA2LTE4IDIyOjMzOjE0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogTkVXUzoKCSogUkVMRUFTRToKCSogY29uZmlndXJlLmFjOgoJICBiYWNrIHRvIGhlYWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGJhY2sgdG8gaGVhZAoKMjAwNS0wNi0xNyAxMjowMDozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogQ2hhbmdlTG9nOgoJICBjaGFuZ2Vsb2cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGNoYW5nZWxvZwoKMjAwNS0wNi0xNyAxMTo1ODo0OCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2NoYWluKTogUmVtb3ZlIGJvZ3VzIGFzc2VydDsgaXQncyBhbHdheXMgcG9zc2libGUgdGhhdCB0aGUgcGFkIGdldHMgZGVhY3RpdmF0ZWQgLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTE3ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmMgKGdzdF9iYXNlc2lua19jaGFpbik6IFJlbW92ZSBib2d1cwoJICBhc3NlcnQ7IGl0J3MgYWx3YXlzIHBvc3NpYmxlIHRoYXQgdGhlIHBhZCBnZXRzIGRlYWN0aXZhdGVkIGluCgkgIGJldHdlZW4gdGhlIGNoZWNrcyBpbiBnc3RwYWQuYyBhbmQgdGhlIGltcGxlbWVudGF0aW9uLiBSZWx5IG9uCgkgIGZpbmlzaF9wcmVyb2xsKCkgdG8gcmV0dXJuIGEgRkxVU0hJTkcgb3Igc2ltaWxhciBpbnN0ZWFkIG9mIG9uIHRoZQoJICBhc3NlcnQuCgoyMDA1LTA2LTE3IDExOjMzOjI3ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvYmFzZS9nc3RiYXNlc2luay5jIChnc3RfYmFzZXNpbmtfZXZlbnQpOiBPbmx5IHdhaXQgZm9yIHRoZSBjbG9jayBhbmQgcG9zdCBhbiBFT1MgbWVzc2FnZSBpZiB3ZSBjb21lIG91dCBvZiBmaW5pc2guLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMTcgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYyAoZ3N0X2Jhc2VzaW5rX2V2ZW50KTogT25seSB3YWl0IGZvciB0aGUKCSAgY2xvY2sgYW5kIHBvc3QgYW4gRU9TIG1lc3NhZ2UgaWYgd2UgY29tZSBvdXQgb2YgZmluaXNoX3ByZXJvbGwgaW4KCSAgdGhlIHBsYXlpbmcgc3RhdGUuCgoyMDA1LTA2LTE3IDA5OjU4OjM4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIFJFQURNRToKCSAgaW5jb3Jwb3JhdGUgcGx1Z2lucyBzdHVmZiBhbmQgdW5pbnN0YWxsZWQgc3R1ZmYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGluY29ycG9yYXRlIHBsdWdpbnMgc3R1ZmYgYW5kIHVuaW5zdGFsbGVkIHN0dWZmCgoyMDA1LTA2LTE3IDA5OjMyOjE5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9pbmRleGVycy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2luZGV4ZXJzLy5naXRpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBpZ25vcmUgbW9yZQoKMjAwNS0wNi0xNyAwOToxMjozMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9nc3QvLmdpdGlnbm9yZToKCSogZ3N0L2Jhc2UvLmdpdGlnbm9yZToKCSogZ3N0L2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIGdzdC9wYXJzZS8uZ2l0aWdub3JlOgoJKiBnc3QvcmVnaXN0cmllcy8uZ2l0aWdub3JlOgoJKiBnc3Qvc2NoZWR1bGVycy8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9iYXNlLy5naXRpZ25vcmU6CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vLmdpdGlnbm9yZToKCSogbGlicy9nc3QvY29udHJvbC8uZ2l0aWdub3JlOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvLmdpdGlnbm9yZToKCSogbGlicy9nc3QvZ2V0Yml0cy8uZ2l0aWdub3JlOgoJKiBwbHVnaW5zL2VsZW1lbnRzLy5naXRpZ25vcmU6CgkqIHRlc3RzL2NoZWNrL2dzdC8uZ2l0aWdub3JlOgoJKiB0b29scy8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmUKCjIwMDUtMDYtMTcgMDg6NTk6NDEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogLmdpdGlnbm9yZToKCSogQ2hhbmdlTG9nOgoJKiBSRUFETUU6CgkqIGNoZWNrLy5naXRpZ25vcmU6CgkqIGV4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJKiBnc3QvLmdpdGlnbm9yZToKCSogdGVzdHMvY2hlY2svLmdpdGlnbm9yZToKCSogdGVzdHMvb2xkL2V4YW1wbGVzL21hbnVhbC8uZ2l0aWdub3JlOgoJICBpZ25vcmUgbW9yZTsgZml4IFJFQURNRQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaWdub3JlIG1vcmU7IGZpeCBSRUFETUUKCjIwMDUtMDYtMTYgMTc6NTA6MTYgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogQWxsb3cgTlVMTCBhcyBwb3NzaWJsZSB2YWx1ZSBmb3IgZmlsdGVyX2NhcHMgcHJvcGVydHksIGluZGljYXRpbmcgR1NUX0NBUFNfQU5ZLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfY2xhc3NfaW5pdCksCgkgIChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOiBBbGxvdyBOVUxMIGFzIHBvc3NpYmxlIHZhbHVlCgkgIGZvciBmaWx0ZXJfY2FwcyBwcm9wZXJ0eSwgaW5kaWNhdGluZyBHU1RfQ0FQU19BTlkuCgoyMDA1LTA2LTA5IDEzOjMzOjAwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IGZpeCBkZWJ1ZyBvdXRwdXQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2NyZWF0ZSk6CgkgIGZpeCBkZWJ1ZyBvdXRwdXQKCSAgKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSAgdXNlIGxpYmdzdCBwcmVmaXgKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgZml4IHNwZWMgZm9yIGl0CgoyMDA1LTA2LTA5IDEyOjIzOjA1ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdHJlYW1lci5zcGVjLmluOiBjbGVhbiB1cAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgY2xlYW4gdXAKCjIwMDUtMDYtMDkgMTI6MDk6NTYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZ3N0cmVhbWVyLnNwZWMuaW46IGNsZWFuIHVwCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdHJlYW1lci5zcGVjLmluOgoJICBjbGVhbiB1cAoKMjAwNS0wNi0wOSAxMjowMzowNCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBUT0RPOgoJKiBkb2NzL3JhbmRvbS9UT0RPLXByZS0wLjk6CgkgIGhhdmUgYSByZWFsIFRPRE8sIG1vdmUgb2xkIFRPRE8KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGhhdmUgYSByZWFsIFRPRE8sIG1vdmUgb2xkIFRPRE8KCjIwMDUtMDYtMDkgMTI6MDA6MjcgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogcG8vYWYucG86CgkqIHBvL2F6LnBvOgoJKiBwby9jYS5wbzoKCSogcG8vY3MucG86CgkqIHBvL2RlLnBvOgoJKiBwby9lbl9HQi5wbzoKCSogcG8vZnIucG86CgkqIHBvL2l0LnBvOgoJKiBwby9uYi5wbzoKCSogcG8vbmwucG86CgkqIHBvL3J1LnBvOgoJKiBwby9zcS5wbzoKCSogcG8vc3IucG86CgkqIHBvL3N2LnBvOgoJKiBwby90ci5wbzoKCSogcG8vdWsucG86CgkqIHBvL3ZpLnBvOgoJICBwbyB1cGRhdGVzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwbyB1cGRhdGVzCgoyMDA1LTA2LTA5IDExOjEyOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHBvL2FmLnBvOgoJKiBwby9hei5wbzoKCSogcG8vY2EucG86CgkqIHBvL2NzLnBvOgoJKiBwby9kZS5wbzoKCSogcG8vZW5fR0IucG86CgkqIHBvL2ZyLnBvOgoJKiBwby9pdC5wbzoKCSogcG8vbmIucG86CgkqIHBvL25sLnBvOgoJKiBwby9ydS5wbzoKCSogcG8vc3EucG86CgkqIHBvL3NyLnBvOgoJKiBwby9zdi5wbzoKCSogcG8vdHIucG86CgkqIHBvL3VrLnBvOgoJKiBwby92aS5wbzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHRyYW5zbGF0aW9ucwoKMjAwNS0wNi0wOCAyMjoxNjoyNyArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdHV0aWxzLmM6IFJQQUQgZml4ZXMgYWxsIGFyb3VuZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDYtMDggIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHV0aWxzLmM6IFJQQUQgZml4ZXMgYWxsIGFyb3VuZC4KCSAgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyk6IFJlZmNvdW50aW5nIGZpeGVzLgoJICAqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgKiBwYXJzZS9ncmFtbWFyLnk6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiBSUEFEIGZpeGVzLgoJICAqIGdzdC9nc3RnaG9zdHBhZC5oOgoJICAqIGdzdC9nc3RnaG9zdHBhZC5jOiBOZXcgZ2hvc3QgcGFkIGltcGxlbWVudGF0aW9uIGFzIGZ1bGwgcHJveHkKCSAgcGFkcy4gVGhlIHRyaWNreSB0aGluZyBpcyB0aGV5IHByb3ZpZGUgYm90aCBzb3VyY2UgYW5kIHNpbmsKCSAgaW50ZXJmYWNlcywgc2luY2UgdGhleSBwcm94eSB0aGUgaW50ZXJuYWwgcGFkIGZvciB0aGUgZXh0ZXJuYWwKCSAgcGFkLCBhbmQgdmljZSB2ZXJzYS4gSW1wbGVtZW50IHdpdGggbG93ZXItbGV2ZWwgUHJveHlQYWQgb2JqZWN0cywKCSAgd2l0aCB0aGUgaW50ZXJpb3IgcHJveHkgcGFkIGFzIGEgY2hpbGQgb2YgdGhlIGV4dGVyaW9yIGdob3N0IHBhZC4KCSAgU2hvdWxkIHdyaXRlIGEgZG9jIG9uIHRoaXMuCgkgICogZ3N0L2dzdHBhZC5oOiBzL1JQQUQvUEFELywgcy9SZWFsUGFkL1BhZC8uCgkgIChnc3RfcGFkX3NldF9uYW1lLCBnc3RfcGFkX3NldF9wYXJlbnQpOiBNYWNyb3MgcmVtb3ZlZCwgdXNlCgkgIGdzdF9vYmplY3QgQVBJLgoJICAqIGdzdC9nc3RwYWQuYzogQmlnIGNoYW5nZXMuIE5vIG1vcmUgc3R1YiBiYXNlIEdzdFBhZCwgbm93IGFsbAoJICBwYWRzIGFyZSByZWFsIHBhZHMuIE5vIGdob3N0IHBhZHMgaW4gdGhpcyBmaWxlLiBOb3QgZG9jdW1lbnRpbmcKCSAgdGhlIG15cmlhZCBzL1JQQUQvUEFELyBhbmQgUkVBTElaRSBmaXhlcy4KCSAgKGdzdF9wYWRfY2xhc3NfaW5pdCk6IEFkZCBwcm9wZXJ0aWVzIGZvciAiZGlyZWN0aW9uIiBhbmQKCSAgInRlbXBsYXRlIi4gQm90aCBhcmUgY29uc3RydWN0LW9ubHksIHNvIHRoZXkgY2FuJ3QgY2hhbmdlIGR1cmluZwoJICB0aGUgbGlmZSBvZiB0aGUgcGFkLiBGaXhlcyBwcm9wZXJseSBkZXJpdmluZyBmcm9tIEdzdFBhZC4KCSAgKGdzdF9wYWRfY3VzdG9tX25ldywgZ3N0X3BhZF9jdXN0b21fbmV3X2Zyb21fdGVtcGxhdGUpOiBHb25lLiBGb3IKCSAgZGVyaXZlZCBvYmplY3RzLCBqdXN0IHNldCBwcm9wZXJ0aWVzIHdoZW4gY3JlYXRpbmcgdGhlIG9iamVjdHMgdmlhCgkgIGdfb2JqZWN0X25ldy4KCSAgKGdzdF9wYWRfZ2V0X3BhcmVudCk6IEltcGxlbWVudCBhcyBhIGZ1bmN0aW9uLCByZXR1cm4gTlVMTCBpZiB0aGUKCSAgcGFyZW50IGlzIG5vdCBhbiBlbGVtZW50LgoJICAoZ3N0X3BhZF9nZXRfcmVhbF9wYXJlbnQsIGdzdF9wYWRfYWRkX2dob3N0X3BhZCkKCSAgKGdzdF9wYWRfcmVtb3ZlX2dob3N0X3BhZCwgZ3N0X3BhZF9yZWFsaXplKTogUmVtb3ZlZC4KCSAgKiBnc3QvZ3N0b2JqZWN0LmMgKGdzdF9vYmplY3RfY2xhc3NfaW5pdCk6IE1ha2UgbmFtZSBhIGNvbnN0cnVjdAoJICBwcm9wZXJ0eS4gRG9uJ3Qgc2V0IGl0IGluIHRoZSBvYmplY3QgaW5pdC4KCSAgKiBnc3QvZ3N0ZWxlbWVudC5jIChnc3RfZWxlbWVudF9hZGRfcGFkKTogRG9uJ3QgYWxsb3cgYWRkaW5nIHBhZHMKCSAgd2l0aCBVTktOT1dOIGRpcmVjdGlvbi4KCSAgKGdzdF9lbGVtZW50X2FkZF9naG9zdF9wYWQpOiBSZW1vdmUgbm9uLW9ydGhvZ29uYWwgQVBJLiBSZXBsYWNlCgkgIHdpdGggZ3N0X2VsZW1lbnRfYWRkX3BhZCAoZSwgZ3N0X2dob3N0X3BhZF9uZXcgKG5hbWUsIHBhZCkpLgoJICAoZ3N0X2VsZW1lbnRfcmVtb3ZlX3BhZCk6IFJlbW92ZSBnaG9zdC1wYWQgc3BlY2lhbCBjYXNlcy4KCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOiBSZW1vdmUgcnBhZCBjcnVmdC4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5fY2hhbmdlX3N0YXRlKTogVXNlIGdzdF9wYWRfZ2V0X3BhcmVudCB0bwoJICBjYXRjaCB0aGUgcGFkJ3MtcGFyZW50LW5vdC1hbi1lbGVtZW50IGNhc2UuCgkgICogZ3N0L2dzdC5oOiBJbmNsdWRlIGdzdGdob3N0cGFkLmguCgkgICogZ3N0L2dzdC5jIChpbml0X3Bvc3QpOiBObyBtb3JlIHJlYWwsIGdob3N0IHBhZHMuCgkgICogZ3N0L01ha2VmaWxlLmFtOiBBZGQgZ3N0Z2hvc3RwYWQuW2NoXS4KCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkgICogY2hlY2svZ3N0L2dzdGdob3N0cGFkLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IENoZWNrIHRoYXQgbGlua2luZwoJICBpbnRvIGEgYmluIGNyZWF0ZXMgZ2hvc3QgcGFkcywgYW5kIHRoYXQgdGhlIHJlZmNvdW50cyBhcmUgcmlnaHQuCgkgIFBhcnRseSBtb3ZlZCBmcm9tIGdzdGJpbi5jLgoKMjAwNS0wNi0wOCAxNDowMDoyMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBjaGVjay86IGlnbm9yZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC1saWJzLy5jdnNpZ25vcmU6CgkgICogY2hlY2svZ3N0Ly5jdnNpZ25vcmU6CgkgICogY2hlY2svcGlwZWxpbmVzLy5jdnNpZ25vcmU6CgkgIGlnbm9yZSBtb3JlCgkgICogY2hlY2svcGlwZWxpbmVzL2NsZWFudXAuYzogKHNldHVwX3BpcGVsaW5lKSwgKHJ1bl9waXBlbGluZSksCgkgIChTVEFSVF9URVNUKSwgKGNsZWFudXBfc3VpdGUpLCAobWFpbik6CgkgIGFkZCBzb21lIHRlc3RzIHJlbGF0ZWQgdG8gY2xlYW51cCBhZnRlciBydW5uaW5nIHBpcGVsaW5lcwoKMjAwNS0wNi0wOCAxMzo1NzoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL2dzdC9nc3RidWZmZXIuYzoKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJ1ZmZlci5jOgoJICBhZGQgYSBHc3RCdWZmZXIgdW5pdCB0ZXN0CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgYSBHc3RCdWZmZXIgdW5pdCB0ZXN0CgoyMDA1LTA2LTA4IDEzOjQ1OjI2ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSAgcHJldmlvdXMgY29tbWl0IGFjY2lkZW50YWxseSBhbHNvIGFkZGVkIHJlZmNvdW50IGRlZmluZXMgZm9yIGdzdG1pbmlvYmplY3QsIGxvZ2dpbmcgdGhhdCBub3cKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHByZXZpb3VzIGNvbW1pdCBhY2NpZGVudGFsbHkgYWxzbyBhZGRlZCByZWZjb3VudCBkZWZpbmVzIGZvciBnc3RtaW5pb2JqZWN0LCBsb2dnaW5nIHRoYXQgbm93CgoyMDA1LTA2LTA4IDEzOjQyOjUyICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBkb2NzL2ZhcS9nc3QtdW5pbnN0YWxsZWQ6CgkqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkqIHRlc3RzL2NoZWNrL01ha2VmaWxlLmFtOgoJICBhZGQgYSAncGx1Z2lucycgZGlyIHRvIHRoZSBQTFVHSU5fUEFUSCBpbiB0aGUgdW5pbnN0YWxsZWQgc2NyaXB0IHRvIGRyb3AgcmFuZG9tIG90aGVyIHBsdWdpbi1oYXZpbmcgcHJvamVjdHMgaW4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhICdwbHVnaW5zJyBkaXIgdG8gdGhlIFBMVUdJTl9QQVRIIGluIHRoZSB1bmluc3RhbGxlZCBzY3JpcHQgdG8gZHJvcCByYW5kb20gb3RoZXIgcGx1Z2luLWhhdmluZyBwcm9qZWN0cyBpbgoKMjAwNS0wNi0wOCAxMzo0MTo0OCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjb25maWd1cmUuYWM6CgkgIHdlIGRpZCBhIHByZXJlbGVhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdlIGRpZCBhIHByZXJlbGVhc2UKCjIwMDUtMDYtMDggMTM6NDE6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdG9iamVjdC5oOgoJICBPQkpFQ1QgYWN0cyBvbiBvYmogbm90IGNhcHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE9CSkVDVCBhY3RzIG9uIG9iaiBub3QgY2FwcwoKMjAwNS0wNi0wOCAxMzo0MTowNSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuYzoKCSAgYWRkIGEgZGVidWcgbGluZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYWRkIGEgZGVidWcgbGluZQoKMjAwNS0wNi0wOCAxMzo0MDo0NiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSAgd2hpdGUgc3BhY2UgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdoaXRlIHNwYWNlIGZpeGVzCgoyMDA1LTA2LTAzIDE4OjI2OjU5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIE1ha2VmaWxlLmFtOgoJKiBjb21tb246CgkgIGFkZGVkIHN1cHBvcnQgZm9yIGh0bWwgdW5pdCB0ZXN0IGNvdmVyYWdlIHJlcG9ydHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZGVkIHN1cHBvcnQgZm9yIGh0bWwgdW5pdCB0ZXN0IGNvdmVyYWdlIHJlcG9ydHMKCjIwMDUtMDYtMDIgMTU6NDU6MTYgKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogRnJlZSBleGlzdGluZyBjYXBzIGlmIHRoZSBjYXBzZmlsdGVyIGNoYW5nZXMuIEFkZCBhIEZJWE1FIGFib3V0IHNldHRpbmcgdGhvc2UgY2FwcyBvbiB0Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RjYXBzZmlsdGVyLmM6IChnc3RfY2Fwc2ZpbHRlcl9zZXRfcHJvcGVydHkpOgoJICBGcmVlIGV4aXN0aW5nIGNhcHMgaWYgdGhlIGNhcHNmaWx0ZXIgY2hhbmdlcy4gQWRkIGEgRklYTUUgYWJvdXQKCSAgc2V0dGluZyB0aG9zZSBjYXBzIG9uIHRoZSBwYWRzLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkKSwgKGdob3N0X3VwKToKCSAgQmVmb3JlIGFkZGluZyBhIGdob3N0IHBhZCB0byBhIHBhcmVudCBiaW4sIGNoZWNrIHRoYXQgdGhlcmUgaXNuJ3QKCSAgYWxyZWFkeSBvbmUgZm9yIHRoZSBlbGVtZW50IG9uIHRoZSBiaW4uIFByZXZlbnRzIGluZmluaXRlIHJlY3Vyc2lvbgoJICB3aGVuIHVzaW5nIGRlY29kZWJpbiBpbiBwYXJzZSBwaXBlbGluZXMuIEFuZHkgc2F5cyBoZSdsbCByZXdyaXRlIHRoZQoJICB3YXkgdGhpcyB3b3JrcyBhbnl3YXksIHNvIGlnbm9yZSB0aGUgaGFjay4KCjIwMDUtMDYtMDIgMTE6MTI6MzQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZG9fcHVsbF90eXBlZmluZCk6IFF1ZXJ5IHRoZSBmaWxlIHNpemUsIHBhc3MgaXQgb24gdG8gdGhlIHR5cGUgZmluZCBoZWxwZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA2LTAyICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyAoZG9fcHVsbF90eXBlZmluZCk6IFF1ZXJ5IHRoZQoJICBmaWxlIHNpemUsIHBhc3MgaXQgb24gdG8gdGhlIHR5cGUgZmluZCBoZWxwZXIuCgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jIChnc3RfYmFzZXNyY19kb19zZWVrKTogU2V0IHRoZQoJICBzZWdtZW50X3N0YXJ0IGFuZCBzZWdtZW50X2VuZCBwcm9wZXJseSBhY2NvcmRpbmcgdG8gdGhlIHNlZWsKCSAgbWV0aG9kLiBTZWdtZW50X2VuZCBpcyBzdGlsbCBhIGJpdCBmbGFreSBiZWNhdXNlIG9mZnNldCBjYW4gYmUKCSAgbmVnYXRpdmUgZm9yIENVUiBhbmQgRU5EIGNhc2VzLCBidXQgaXQgdGFrZXMgLTEgYXMgYW4gInVuc2V0IgoJICB2YWx1ZS4KCjIwMDUtMDYtMDIgMDk6NDI6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBCdWZmZXJhbGxvYzogcmV0dXJuIEdzdEZsb3dSZXR1cm4gdG8gbW9yZSBhY2N1cmF0bHkgcmVwb3J0IHdoeSBhbGxvY2F0aW9uIGZhaWxlZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wYWRfYnVmZmVyX2FsbG9jKSwKCSAgKGdzdF9iYXNlX3NpbmtfYnVmZmVyX2FsbG9jKSwgKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksCgkgIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2J1ZmZlcmFsbG9jKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pOgoJICBCdWZmZXJhbGxvYzogcmV0dXJuIEdzdEZsb3dSZXR1cm4gdG8gbW9yZSBhY2N1cmF0bHkgcmVwb3J0CgkgIHdoeSBhbGxvY2F0aW9uIGZhaWxlZC4KCjIwMDUtMDYtMDIgMDk6Mzk6MjEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYzogVGFrZSBzbmFwc2hvdCBvZiBzdGF0ZSB3aXRob3V0IGJsb2NraW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgVGFrZSBzbmFwc2hvdCBvZiBzdGF0ZSB3aXRob3V0IGJsb2NraW5nLgoKMjAwNS0wNi0wMiAwODoyNjo1OCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGRvY3MvZGVzaWduLzogU21hbGwgZG9jIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNhcHMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtY2xvY2tzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW5lZ290aWF0aW9uLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXByZXJvbGwudHh0OgoJICBTbWFsbCBkb2MgdXBkYXRlcwoKMjAwNS0wNS0zMCAxNjoyODo0MSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiBQcm90ZWN0IGxhc3RfbWVzc2FnZSBwcm9wZXJ0eSBhcyBpdCBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2V2ZW50KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pLCAoZ3N0X2lkZW50aXR5X2dldF9wcm9wZXJ0eSk6CgkgIFByb3RlY3QgbGFzdF9tZXNzYWdlIHByb3BlcnR5IGFzIGl0IGlzIGFjY2Vzc2VkIGZyb20KCSAgbXVsdGlwbGUgdGhyZWFkcy4KCjIwMDUtMDUtMzAgMTU6NTM6MDQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0ZWxlbWVudC5jOiBTbGlja2VyIHBhZCBhY3RpdmF0aW9uIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9pbml0KSwKCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpLCAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgU2xpY2tlciBwYWQgYWN0aXZhdGlvbiBjb2RlLgoKMjAwNS0wNS0zMCAxNTo1MTo0MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IE1vdmUgZWxlbWVudGZhY3RvcnkgbWV0aG9kcyB0byBzZXBhcmF0ZSAuaCBmaWxlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L2dzdGVsZW1lbnQuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudGZhY3RvcnkuaDoKCSAgKiBnc3QvZ3N0dHlwZXMuaDoKCSAgTW92ZSBlbGVtZW50ZmFjdG9yeSBtZXRob2RzIHRvIHNlcGFyYXRlIC5oIGZpbGUuCgoyMDA1LTA1LTMwIDE1OjQ4OjQ1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgU21hbGwgdHlwbyBmaXhlcywgZG9jIHVwZGF0ZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZGVzaWduL3BhcnQtb3ZlcnZpZXcudHh0OgoJICAqIGdzdC9nc3RzeXN0ZW1jbG9jay5oOgoJICBTbWFsbCB0eXBvIGZpeGVzLCBkb2MgdXBkYXRlcy4KCjIwMDUtMDUtMzAgMTU6NDY6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0LmM6IFJlbW92ZSBjcHUtb3B0IGZsYWcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3QuYzogKGdzdF9pbml0X2dldF9wb3B0X3RhYmxlKSwgKGluaXRfcG9zdCksCgkgIChpbml0X3BvcHRfY2FsbGJhY2spOgoJICBSZW1vdmUgY3B1LW9wdCBmbGFnLgoKMjAwNS0wNS0zMCAxNTo0NDo1MCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RidWZmZXIuKjogQXZvaWQgdHlwZWNoZWNraW5nIGluIHBsYWNlcyB3aGVyZSBub3QgbmVlZGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChnc3Rfc3ViYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF9idWZmZXJfY3JlYXRlX3N1YiksIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICBBdm9pZCB0eXBlY2hlY2tpbmcgaW4gcGxhY2VzIHdoZXJlIG5vdCBuZWVkZWQuCgkgIEFkZGVkIGFjY2Vzc29yIGZvciBtYWxsb2NfZGF0YS4KCjIwMDUtMDUtMzAgMTU6NDE6NTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IFByb3BhZ2F0ZSBlcnJvcnMgZnJvbSBfc2V0X2NhcHMoKSBpbiBjb25maWd1cmVfc3JjL3NpbmsgZnVuY3Rpb25zIGluc3RlYWQgb2YgcmV0dXJuaW5nIFRSVUUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9yZWFsX3BhZF9pbml0KSwgKGdzdF9wYWRfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksCgkgIChnc3RfcGFkX2NvbmZpZ3VyZV9zaW5rKSwgKGdzdF9wYWRfY29uZmlndXJlX3NyYyksCgkgIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfc2VuZF9ldmVudCksCgkgIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICBQcm9wYWdhdGUgZXJyb3JzIGZyb20gX3NldF9jYXBzKCkgaW4gY29uZmlndXJlX3NyYy9zaW5rCgkgIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIHJldHVybmluZyBUUlVFLgoJICBGTFVTSCBldmVudHMgY2FuIHRyYXZlbCB1cCBhbmQgZG93bnN0cmVhbQoKMjAwNS0wNS0zMCAxNTozNjowOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEhhbmRsZSBFT1MgaW4gcHJlcm9sbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19wcmVyb2xsX3F1ZXVlX3B1c2gpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgSGFuZGxlIEVPUyBpbiBwcmVyb2xsLgoKMjAwNS0wNS0zMCAxNTozNDoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RxdWV1ZS5jOiBSZW1vdmUgb2xkIHBpZWNlcyBvZiBjb2RlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfaGFuZGxlX3NyY19ldmVudCk6CgkgIFJlbW92ZSBvbGQgcGllY2VzIG9mIGNvZGUKCSAgRmx1c2hpbmcgdGhlIHF1ZXVlIGluIGFuIHVwc3RyZWFtIGV2ZW50IGlzIGEgdmVyeSBiYWQgaWRlYS4KCjIwMDUtMDUtMjkgMTM6NTY6NTUgKzAwMDAgIEJlbmphbWluIE90dGUgPG90dGVAZ25vbWUub3JnPgoKCSAgZmlsZSBnc3RzaW1wbGVzY2hlZHVsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtQ09NUEFOWS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0c2ltcGxlc2NoZWR1bGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUNPTVBBTlkuCgoyMDA1LTA1LTI3IDA5OjI4OjA1ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkgIHJlbW92ZSBjb25mbGljdCBkb29iZXJzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICByZW1vdmUgY29uZmxpY3QgZG9vYmVycwoKMjAwNS0wNS0yNyAwOToyNzozNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdG1pbmlvYmplY3QuYyAoZ3N0X3ZhbHVlX21pbmlfb2JqZWN0X2NvbGxlY3QpOiBVc2UgZ3N0X3ZhbHVlX3NldF9taW5pX29iamVjdCBzbyBhcyB0byBhZGQgYSByZWYgb24gdGhlIG9iamVjdCAoLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTI2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmMgKGdzdF92YWx1ZV9taW5pX29iamVjdF9jb2xsZWN0KTogVXNlCgkgIGdzdF92YWx1ZV9zZXRfbWluaV9vYmplY3Qgc28gYXMgdG8gYWRkIGEgcmVmIG9uIHRoZSBvYmplY3QgKHdoaWNoCgkgIHdpbGwgYmUgcmVtb3ZlZCB3aGVuIHRoZSB2YWx1ZSBpcyB1bnNldCkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmMgKGdzdF9mYWtlc2lua19jbGFzc19pbml0KTogRml4IHNpZ25hbAoJICBhcmcgdHlwZSBpbiA6OmhhbmRvZmYuCgkgICogZ3N0L2dzdGVsZW1lbnQuYyAoZ3N0X2VsZW1lbnRfY2hhbmdlX3N0YXRlKTogQWxzbyBkZWFjdGl2YXRlCgkgIHBhZHMgaW4gUkVBRFktPk5VTEwsIGp1c3QgaW4gY2FzZSB0aGUgZWxlbWVudCBkaWRuJ3QgbWFrZSBpdCB0bwoJICBQQVVTRUQuIFdpbmdvIHRlc3RlZCwgV2ltIGFwcHJvdmVkLgoKMjAwNS0wNS0yNiAxMDo1MDoxMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9nc3RwYWQuYzogQSBmbHVzaGluZyBwYWQgY2Fubm90IGJlIHVzZWQgdG8gYWxsb2NfYnVmZmVyIGZyb20uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX2xpbmtfcHJlcGFyZSksCgkgIChnc3RfcGFkX2xpbmspLCAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksCgkgIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfc2VuZF9ldmVudCksIChnc3RfcGFkX3N0YXJ0X3Rhc2spOgoJICBBIGZsdXNoaW5nIHBhZCBjYW5ub3QgYmUgdXNlZCB0byBhbGxvY19idWZmZXIgZnJvbS4KCjIwMDUtMDUtMjYgMTA6NDg6NTMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVzLio6IEltcGxlbWVudCBhIHJlYWwgR1NvdXJjZSBhbmQgdXNlIGdfbWFpbl9jb250ZXh0X3dha2V1cCgpIHRvIHNpZ25hbCBuZXcgbWVzc2FnZXMgaW5zdGVhZCBvZiB0aGUgc29ja2V0cGFpci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1cy5jOiAoZ3N0X2J1c19pbml0KSwgKGdzdF9idXNfZGlzcG9zZSksIChnc3RfYnVzX3Bvc3QpLAoJICAoZ3N0X2J1c19wb3ApLCAoZ3N0X2J1c19zb3VyY2VfcHJlcGFyZSksIChnc3RfYnVzX3NvdXJjZV9jaGVjayksCgkgIChnc3RfYnVzX3NvdXJjZV9kaXNwYXRjaCksIChnc3RfYnVzX3NvdXJjZV9maW5hbGl6ZSksCgkgIChnc3RfYnVzX2NyZWF0ZV93YXRjaCksIChnc3RfYnVzX2FkZF93YXRjaF9mdWxsKToKCSAgKiBnc3QvZ3N0YnVzLmg6CgkgIEltcGxlbWVudCBhIHJlYWwgR1NvdXJjZSBhbmQgdXNlIGdfbWFpbl9jb250ZXh0X3dha2V1cCgpIHRvCgkgIHNpZ25hbCBuZXcgbWVzc2FnZXMgaW5zdGVhZCBvZiB0aGUgc29ja2V0cGFpci4KCjIwMDUtMDUtMjUgMTk6MzM6MzkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBGaXggc3RhdGUgY2hhbmdlcyBmb3Igbm9uIHNpbmtzLiBXZSBub3cgY2hhbmdlIHNpbmtzLCB0aGVuIGVsZW1lbnRzIHdpdGggdW5jb25uZWN0ZWQgc3JjcGFkcywgdGhlbiB0aGUgcmVzdC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoYmluX2VsZW1lbnRfaXNfc2luayksIChoYXNfYW5jZXN0b3IpLAoJICAoYmluX2VsZW1lbnRfaXNfc2VtaV9zaW5rKSwgKGFwcGVuZF9jaGlsZCksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfaW5pdCksIChnc3RfcXVldWVfbG9ja2VkX2ZsdXNoKSwKCSAgKGdzdF9xdWV1ZV9oYW5kbGVfc2lua19ldmVudCksIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApLAoJICAoZ3N0X3F1ZXVlX3NpbmtfYWN0aXZhdGUpLCAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZSksCgkgIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgRml4IHN0YXRlIGNoYW5nZXMgZm9yIG5vbiBzaW5rcy4gV2Ugbm93IGNoYW5nZSBzaW5rcywgdGhlbiBlbGVtZW50cwoJICB3aXRoIHVuY29ubmVjdGVkIHNyY3BhZHMsIHRoZW4gdGhlIHJlc3QuCgkgIE1vcmUgZWZmaWNpZW50IHF1ZXVlIHVubG9ja2luZyBpbiBmbHVzaCBhbmQgc3RhdGUgY2hhbmdlcy4KCSAgU2V0IHRoZSBwYWQgYWN0aXZhdGUgbW9kZSBldmVuIGlmIGl0IGRvZXMgbm90IGhhdmUgYW4gYWN0aXZhdGUKCSAgZnVuY3Rpb24uCgoyMDA1LTA1LTI1IDE2OjA5OjM0ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuaDoKCSAgaGFwcGlmeSBidWlsZGJvdAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgaGFwcGlmeSBidWlsZGJvdAoKMjAwNS0wNS0yNSAxNTo1Nzo1NyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBEb24ndCBnbyBpbiBwdWxsIG1vZGUgZm9yIG5vbi1zZWVrYWJsZSBzb3VyY2VzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19hY3RpdmF0ZSk6CgkgIERvbid0IGdvIGluIHB1bGwgbW9kZSBmb3Igbm9uLXNlZWthYmxlIHNvdXJjZXMuCgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOiAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2luaXQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2Rpc3Bvc2UpLCAoZ3N0X3R5cGVfZmluZF9oYW5kbGVfc3JjX3F1ZXJ5KSwKCSAgKGZyZWVfZW50cnkpLCAoc3RvcF90eXBlZmluZGluZyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KSwgKGZpbmRfcGVlayksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhaW4pLCAoZG9fcHVsbF90eXBlZmluZCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hhbmdlX3N0YXRlKToKCSAgQWxsb3cgdHlwZWZpbmRpbmcgKHcvbyBzZWVraW5nKSBpbiBwdXNoLW1vZGUsIHNpbXBsaWZpZWQgdmVyc2lvbgoJICBvZiB3aGF0IHdhcyBpbiAwLjguCgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfYnVmZmVyX2pvaW4pOgoJICAqIGdzdC9nc3R1dGlscy5oOgoJICBnc3RfYnVmZmVyX2pvaW4oKSBmcm9tIDAuOC4KCjIwMDUtMDUtMjUgMTM6NTk6MTggKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IERpc2FibGUgYXR0ZW1wdCBhdCBtb2RlIHN3aXRjaGluZyB1bnRpbCBpdCBpcyBmaWd1cmVkIG91dC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwKCSAgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpLAoJICAoZ3N0X3BhZF9zZW5kX2V2ZW50KSwgKGdzdF9wYWRfc3RhcnRfdGFzayk6CgkgIERpc2FibGUgYXR0ZW1wdCBhdCBtb2RlIHN3aXRjaGluZyB1bnRpbCBpdCBpcyBmaWd1cmVkIG91dC4KCjIwMDUtMDUtMjUgMTE6NTA6MTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBJbXBsZW1lbnQgZ3N0X3BhZF9wYXVzZS9zdGFydC9zdG9wX3Rhc2soKSwgdGFrZSBTVFJFQU0gbG9jayBpbiB0YXNrIGZ1bmN0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmM6IChnc3RfYWRhcHRlcl9wZWVrKSwgKGdzdF9hZGFwdGVyX2ZsdXNoKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfcHVzaCksCgkgIChnc3RfYmFzZXNpbmtfZmluaXNoX3ByZXJvbGwpLCAoZ3N0X2Jhc2VzaW5rX2NoYWluKSwKCSAgKGdzdF9iYXNlc2lua19sb29wKSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19kb19zZWVrKSwKCSAgKGdzdF9iYXNlc3JjX2dldF9yYW5nZSksIChnc3RfYmFzZXNyY19sb29wKSwKCSAgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6IChnc3RfdGVlX3NpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfZGlzcG9zZSksIChnc3RfcmVhbF9wYWRfY2xhc3NfaW5pdCksCgkgIChnc3RfcmVhbF9wYWRfaW5pdCksIChnc3RfcmVhbF9wYWRfc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9yZWFsX3BhZF9nZXRfcHJvcGVydHkpLCAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfaXNfYWN0aXZlKSwgKGdzdF9wYWRfZ2V0X3F1ZXJ5X3R5cGVzKSwgKGdzdF9wYWRfdW5saW5rKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlKSwgKGdzdF9wYWRfbGluayksIChnc3RfcGFkX2dldF9yZWFsX3BhcmVudCksCgkgIChnc3RfcmVhbF9wYWRfZ2V0X2NhcHNfdW5sb2NrZWQpLCAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKSwKCSAgKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9nZXRfcGVlciksIChnc3RfcGFkX3JlYWxpemUpLAoJICAoZ3N0X3BhZF9ldmVudF9kZWZhdWx0X2Rpc3BhdGNoKSwgKGdzdF9wYWRfZXZlbnRfZGVmYXVsdCksCgkgIChnc3RfcGFkX2Rpc3BhdGNoZXIpLCAoZ3N0X3BhZF9xdWVyeSksIChnc3RfcmVhbF9wYWRfZGlzcG9zZSksCgkgIChnc3RfcGFkX3NhdmVfdGh5c2VsZiksIChoYW5kbGVfcGFkX2Jsb2NrKSwgKGdzdF9wYWRfY2hhaW4pLAoJICAoZ3N0X3BhZF9wdXNoKSwgKGdzdF9wYWRfZ2V0X3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3NlbmRfZXZlbnQpLCAoZ3N0X3BhZF9zdGFydF90YXNrKSwgKGdzdF9wYWRfcGF1c2VfdGFzayksCgkgIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2hhbmRsZV9zaW5rX2V2ZW50KSwgKGdzdF9xdWV1ZV9jaGFpbiksCgkgIChnc3RfcXVldWVfbG9vcCksIChnc3RfcXVldWVfc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0dGFzay5jOiAoZ3N0X3Rhc2tfaW5pdCksIChnc3RfdGFza19zZXRfbG9jayksCgkgIChnc3RfdGFza19nZXRfc3RhdGUpOgoJICAqIGdzdC9nc3R0YXNrLmg6CgkgICogZ3N0L3NjaGVkdWxlcnMvdGhyZWFkc2NoZWR1bGVyLmM6CgkgIChnc3RfdGhyZWFkX3NjaGVkdWxlcl90YXNrX3N0YXJ0KSwgKGdzdF90aHJlYWRfc2NoZWR1bGVyX2Z1bmMpOgoJICBJbXBsZW1lbnQgZ3N0X3BhZF9wYXVzZS9zdGFydC9zdG9wX3Rhc2soKSwgdGFrZSBTVFJFQU0gbG9jawoJICBpbiB0YXNrIGZ1bmN0aW9uLgoJICBSZW1vdmUgQUNUSVZFIHBhZCBmbGFnLCB1c2UgRkxVU0hJTkcgZXZlcnl3aGVyZQoJICBBZGRlZCBfcGFkX2NoYWluKCksIF9wYWRfZ2V0X3JhbmdlKCkgdG8gY2FsbCBjaGFpbi9nZXRyYW5nZQoJICBmdW5jdGlvbnMuCgkgIEFkZCBsb2NrcyBhcm91bmQgSVNfRkxVU0hJTkcgd2hlbiByZWFkaW5nLgoJICBUYWtlIFNUUkVBTSBsb2NrIGluIGNoYWluKCksIGdldF9yYW5nZSgpIGZ1bmN0aW9ucyBzbyBwbHVnaW5zCgkgIGRvbid0IG5lZWQgdG8gdGFrZSBpdCBhbnltb3JlLgoKMjAwNS0wNS0yNSAxMToyNjoxNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIHRvb2xzL2dzdC1sYXVuY2guYzogVW5yZWYgbWVzc2FnZSBhZnRlciB1c2luZyBpdHMgY29udGVudHMgaW5zdGVhZCBvZiBiZWZvcmUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKGV2ZW50X2xvb3ApOgoJICBVbnJlZiBtZXNzYWdlIGFmdGVyIHVzaW5nIGl0cyBjb250ZW50cyBpbnN0ZWFkIG9mCgkgIGJlZm9yZS4KCjIwMDUtMDUtMjQgMTY6NDc6MDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IERvY3MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vZHJhZnQtZ2hvc3RwYWRzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW92ZXJ2aWV3LnR4dDoKCSAgRG9jcyB1cGRhdGVzLgoJICBBZGRlZCBnZW5lcmFsIG92ZXJ2aWV3IGRvYy4KCSAgQWRkZWQgZHJhZnQgZ2hvc3RwYWQgcmVwbGFjZW1lbnQgaWRlYS4KCjIwMDUtMDUtMjIgMDQ6MjY6NDEgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZG9jcy9nc3QvdG1wbC9vbGQvOiBJIGRpZG4ndCBpbnRlbmQgdG8gYWRkIHRoZXNlIG9yIGNoZWNrIHRoZW0gaW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEJpbi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdEJ1ZmZlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdENhcHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RDbG9jay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdENvbXBhdC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdERhdGEuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RFbGVtZW50LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvR3N0RXZlbnQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9Hc3RJbmRleC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdFN0cnVjdHVyZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL0dzdFRhZy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2NvdGhyZWFkcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2NvdGhyZWFkc19jb21wYXQuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nZXR0ZXh0LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ29iamVjdDJndGsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9ncmFtbWFyLnRhYi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdC1pMThuLWFwcC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdC1pMThuLWxpYi5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdF9wcml2YXRlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0YWdncmVnYXRvci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGFyY2guc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RhdG9taWNfaW1wbC5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGJ1ZmZlcnN0b3JlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZGF0YV9wcml2YXRlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZGlza3Npbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RkaXNrc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZWxlbWVudGZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RleHRyYXR5cGVzLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmFrZXNpbmsuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmYWtlc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmRzaW5rLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0ZmRzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RmaWxlc2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdGZpbGVzcmMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RodHRwc3JjLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0aWRlbnRpdHkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RpbmRleGZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RtYXJzaGFsLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0bWQ1c2luay5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG11bHRpZGlza3NyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdG11bHRpZmlsZXNyYy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHBhZHRlbXBsYXRlLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0cGlwZWZpbHRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNjaGVkdWxlcmZhY3Rvcnkuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC9nc3RzZWFyY2hmdW5jcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNoYXBlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNwaWRlci5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHNwaWRlcmlkZW50aXR5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3N0c3RhdGlzdGljcy5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHRlZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHRpbWVjYWNoZS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHR5cGVmaW5kZmFjdG9yeS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvb2xkL2dzdHhtbHJlZ2lzdHJ5LnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9vbGQvZ3RocmVhZC1jb3RocmVhZHMuc2dtbDoKCSAgKiBkb2NzL2dzdC90bXBsL29sZC90eXBlcy5zZ21sOgoJICBJIGRpZG4ndCBpbnRlbmQgdG8gYWRkIHRoZXNlIG9yIGNoZWNrIHRoZW0gaW4uCgoyMDA1LTA1LTIwIDEyOjQ3OjA1ICswMDAwICBDaHJpc3RpYW4gU2NoYWxsZXIgPHVyYWV1c0Bnbm9tZS5vcmc+CgoJKiBnc3RyZWFtZXIuc3BlYy5pbjoKCSAgdXBkYXRlIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgdXBkYXRlIHNwZWMgZmlsZQoKMjAwNS0wNS0xOSAxOTo1NDowMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjb25maWd1cmUuYWM6IFVzZSAtbm8tY29tbW9uIGV2ZXJ5d2hlcmUuICBJbiBhIHNhbmUgd29ybGQsIGl0IHdvdWxkIGJlIHRoZSBkZWZhdWx0IGluIGxpYnRvb2wsIGJlY2F1c2Ugd2l0aG91dCBpdCwgeW8uLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOiBVc2UgLW5vLWNvbW1vbiBldmVyeXdoZXJlLiAgSW4gYSBzYW5lIHdvcmxkLCBpdAoJICB3b3VsZCBiZSB0aGUgZGVmYXVsdCBpbiBsaWJ0b29sLCBiZWNhdXNlIHdpdGhvdXQgaXQsIHlvdSBjYW4ndAoJICBidWlsZCBETExzIG9uIFdpbmRvd3MuCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDogUmVtb3ZlIEdzdENwdSwgR3N0RGF0YSwgR3N0VGhyZWFkCgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dDoKCSAgKiBkb2NzL2dzdC90bXBsL2dzdGNwdS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZGF0YS5zZ21sOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0dGhyZWFkLnNnbWw6CgoyMDA1LTA1LTE5IDE5OjQxOjEyICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9nc3RtaW5pb2JqZWN0Lio6IEFkZCBHVmFsdWUgc2V0L2dldCBmdW5jdGlvbnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0LmM6IChnc3RfdmFsdWVfc2V0X21pbmlfb2JqZWN0KSwKCSAgKGdzdF92YWx1ZV90YWtlX21pbmlfb2JqZWN0KSwgKGdzdF92YWx1ZV9nZXRfbWluaV9vYmplY3QpOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6IEFkZCBHVmFsdWUgc2V0L2dldCBmdW5jdGlvbnMuCgoyMDA1LTA1LTE5IDE2OjI2OjUwICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFrZSBzdWJidWZlciB1bnJlZiB0aGUgcGFyZW50IGluIGZpbmFsaXplLiBzb21lIG1vcmUgZGVidWdnaW5nIGluZm8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaW5pdCksIChnc3Rfc3ViYnVmZmVyX2dldF90eXBlKSwKCSAgKGdzdF9zdWJidWZmZXJfY2xhc3NfaW5pdCksIChnc3Rfc3ViYnVmZmVyX2ZpbmFsaXplKSwKCSAgKGdzdF9zdWJidWZmZXJfaW5pdCksIChnc3RfYnVmZmVyX2lzX3NwYW5fZmFzdCk6CgkgICogZ3N0L2dzdGJ1ZmZlci5oOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2dldF9yYW5kb21fcGFkKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5jOiAoZ3N0X21lc3NhZ2VfaW5pdCksIChnc3RfbWVzc2FnZV9maW5hbGl6ZSk6CgkgIE1ha2Ugc3ViYnVmZXIgdW5yZWYgdGhlIHBhcmVudCBpbiBmaW5hbGl6ZS4KCSAgc29tZSBtb3JlIGRlYnVnZ2luZyBpbmZvLgoKMjAwNS0wNS0xOSAxNjoyMzowNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IERvbid0IGZyZWUgcHJlcm9sbCBxdWV1ZSB0b28gZWFybHkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfaW5pdCksIChnc3RfYmFzZXNpbmtfZmluYWxpemUpLAoJICAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKSwgKGdzdF9iYXNlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICBEb24ndCBmcmVlIHByZXJvbGwgcXVldWUgdG9vIGVhcmx5LgoKMjAwNS0wNS0xOSAxNDo1MjoxNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0LzogSGksIEknbSBvdXRkYXRlZC4gUGxlYXNlIHNob290IG1lLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvTWFrZWZpbGUuYW06CgkgICogZ3N0L1JPQURNQVA6CgkgIEhpLCBJJ20gb3V0ZGF0ZWQuIFBsZWFzZSBzaG9vdCBtZS4KCjIwMDUtMDUtMTkgMTI6MDc6MzUgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBEbyBub3QgYWNjZXNzIHZhcmlhYmxlcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBkZWxldGVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYzogKGdzdF9waXBlbGluZV9zZW5kX2V2ZW50KToKCSAgRG8gbm90IGFjY2VzcyB2YXJpYWJsZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gZGVsZXRlZC4KCjIwMDUtMDUtMTkgMDg6NDE6NDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtaW5zcGVjdC5jOiBBIHBsdWdpbiBmZWF0dXJlIGRvZXMgdW5mb3J0dW5hdGx5IG5vdCB1c2UgdGhlIG9iamVjdCBuYW1lIHlldC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtaW5zcGVjdC5jOiAocHJpbnRfcGx1Z2luX2ZlYXR1cmVzKToKCSAgQSBwbHVnaW4gZmVhdHVyZSBkb2VzIHVuZm9ydHVuYXRseSBub3QgdXNlIHRoZQoJICBvYmplY3QgbmFtZSB5ZXQuLi4KCjIwMDUtMDUtMTggMTc6MzU6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IFBvcnQgX3NwYW4oKSBmdW5jdGlvbnMgdG8gbmV3IHN1YmJ1ZmZlcnMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidWZmZXIuYzogKGdzdF9idWZmZXJfaXNfc3Bhbl9mYXN0KSwgKGdzdF9idWZmZXJfc3Bhbik6CgkgIFBvcnQgX3NwYW4oKSBmdW5jdGlvbnMgdG8gbmV3IHN1YmJ1ZmZlcnMuCgoyMDA1LTA1LTE4IDEzOjQ5OjA4ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEZpeCBjbG9jayBzZXR0ZXJ5IGluIGJpbnMgd2hlbiBhZGRpbmcga2lkcyBhZnRlciB0aGUgY2xvY2sgaGFzIGJlZW4gc2VsZWN0ZWQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fYWRkX2Z1bmMpOgoJICBGaXggY2xvY2sgc2V0dGVyeSBpbiBiaW5zIHdoZW4gYWRkaW5nIGtpZHMgYWZ0ZXIgdGhlIGNsb2NrIGhhcwoJICBiZWVuIHNlbGVjdGVkLgoKMjAwNS0wNS0xOCAxMzoyMzoyNCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IFdvcmthcm91bmQgdW50aWwgc2lnbmFscyBzdXBwb3J0IEdzdE1pbmlPYmplY3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOiAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpOgoJICBXb3JrYXJvdW5kIHVudGlsIHNpZ25hbHMgc3VwcG9ydCBHc3RNaW5pT2JqZWN0LgoKMjAwNS0wNS0xOCAxMTozNDo0NSArMDAwMCAgSmFuIFNjaG1pZHQgPHRoYXl0YW5AbWFkLnNjaWVudGlzdC5jb20+CgoJICBnc3QvZ3N0YnVmZmVyLmM6IE9vcHMsIGZpeCBhIHR5cG8gR1NUX1RZUEVfQlVGRkVSIC0+IEdTVF9UWVBFX1NVQkJVRkZFUi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJ1ZmZlci5jOgoJICBPb3BzLCBmaXggYSB0eXBvIEdTVF9UWVBFX0JVRkZFUiAtPiBHU1RfVFlQRV9TVUJCVUZGRVIuCgoyMDA1LTA1LTE4IDA5OjU1OjQzICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2Jhc2UvOiBQb3J0ZWQgYW5kIGFkZGVkIGFkYXB0ZXIgdG8gdGhlIGJhc2UgY2xhc3Nlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvZ3N0YWRhcHRlci5jOiAoZ3N0X2FkYXB0ZXJfYmFzZV9pbml0KSwKCSAgKGdzdF9hZGFwdGVyX2NsYXNzX2luaXQpLCAoZ3N0X2FkYXB0ZXJfaW5pdCksCgkgIChnc3RfYWRhcHRlcl9kaXNwb3NlKSwgKGdzdF9hZGFwdGVyX2ZpbmFsaXplKSwgKGdzdF9hZGFwdGVyX25ldyksCgkgIChnc3RfYWRhcHRlcl9jbGVhciksIChnc3RfYWRhcHRlcl9wdXNoKSwgKGdzdF9hZGFwdGVyX3BlZWspLAoJICAoZ3N0X2FkYXB0ZXJfZmx1c2gpLCAoZ3N0X2FkYXB0ZXJfYXZhaWxhYmxlKSwKCSAgKGdzdF9hZGFwdGVyX2F2YWlsYWJsZV9mYXN0KToKCSAgKiBnc3QvYmFzZS9nc3RhZGFwdGVyLmg6CgkgIFBvcnRlZCBhbmQgYWRkZWQgYWRhcHRlciB0byB0aGUgYmFzZSBjbGFzc2VzLgoKMjAwNS0wNS0xNyAxNzo1MDo0MSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJICBnc3QvOiBNYWtlIHN1cmUgdGhlIGNsYXNzIGlzIHJlZmZlZC91bnJlZmZlZCBvbmNlIGJlZm9yZSB0aHJlYWRzIGNhbiBiZSB1c2VkLiAgRml4ZXMgIzMwNDU1MS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdC5jOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6CgkgIE1ha2Ugc3VyZSB0aGUgY2xhc3MgaXMgcmVmZmVkL3VucmVmZmVkIG9uY2UgYmVmb3JlIHRocmVhZHMgY2FuIGJlCgkgIHVzZWQuICBGaXhlcyAjMzA0NTUxLgoKMjAwNS0wNS0xNyAxNzozNzo0MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IERvbid0IHF1ZXVlIGJ1ZmZlcnMgaW4gYmFzZXNpbmsgd2hlbiB3ZSBhcmUgZmx1c2hpbmcuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IChnc3RfYmFzZXNpbmtfZmluaXNoX3ByZXJvbGwpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKSwgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2dzdG1pbmlvYmplY3QuYzogKGdzdF9taW5pX29iamVjdF9nZXRfdHlwZSksCgkgIChnc3RfbWluaV9vYmplY3RfZnJlZSk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9hY2NlcHRfY2FwcyksIChnc3RfcGFkX3F1ZXJ5KSwKCSAgKGdzdF9wYWRfcHVzaCksIChnc3RfcGFkX3B1c2hfZXZlbnQpOgoJICAqIGdzdC9nc3RxdWV1ZS5jOiAoZ3N0X3F1ZXVlX2NoYW5nZV9zdGF0ZSk6CgkgIERvbid0IHF1ZXVlIGJ1ZmZlcnMgaW4gYmFzZXNpbmsgd2hlbiB3ZSBhcmUgZmx1c2hpbmcuCgkgIFVucmVmIGJ1ZmZlciB3aGVuIGZsdXNoaW5nIGluIGJhc2VzaW5rLgoJICBGbHVzaCBxdWV1ZSB3aGVuIGdvaW5nIHRvIFJFQURZCgkgIFVucmVmIGJ1ZmZlciB3aGVuIF9wdXNoKCkgcmV0dXJucyBhbiBlcnJvci4KCSAgRG9uJ3QgZnJlZSBNaW5pT2JqZWN0IGluc3RhbmNlIHdoZW4gcmVmY291bnQgaXMgaW5jcmVtZW50ZWQKCSAgaW4gX2ZpbmFsaXplKCkgc28gdGhhdCB3ZSBjYW4gcmVjb3ZlciBvYmplY3RzLgoKMjAwNS0wNS0xNyAxNzoyMjozMSArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbW1vbjoKCSogZG9jcy9tYW51YWwvYWR2YW5jZWQtc2NoZWR1bGVycy54bWw6CgkqIGRvY3MvbWFudWFsL2FwcGVuZGl4LWNoZWNrbGlzdC54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLWNsb2NrLnhtbDoKCSogZG9jcy9wd2cvYWR2YW5jZWQtaW50ZXJmYWNlcy54bWw6CgkqIGRvY3MvcHdnL2FkdmFuY2VkLXJlcXVlc3QueG1sOgoJKiBkb2NzL3B3Zy9hZHZhbmNlZC10eXBlcy54bWw6CgkqIGRvY3MvcHdnL2ludHJvLXByZWZhY2UueG1sOgoJKiBleGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogZXhhbXBsZXMvcGx1Z2lucy9leGFtcGxlLmg6CgkqIHRlc3RzL29sZC9leGFtcGxlcy9wbHVnaW5zL2V4YW1wbGUuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3BsdWdpbnMvZXhhbXBsZS5oOgoJICBzbWFsbCBkb2MgZml4ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHNtYWxsIGRvYyBmaXhlcwoKMjAwNS0wNS0xNyAxNDoxMTozMiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IENsZWFyIHF1ZXVlIHdoZW4gZ29pbmcgdG8gUkVBRFkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWNjZXB0X2NhcHMpLCAoZ3N0X3BhZF9zZXRfY2FwcyksCgkgIChnc3RfcGFkX2FsbG9jX2J1ZmZlciksIChnc3RfcGFkX3F1ZXJ5KSwgKGdzdF9wYWRfcHVzaCk6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgQ2xlYXIgcXVldWUgd2hlbiBnb2luZyB0byBSRUFEWS4KCSAgUmVtb3ZlIElOX1NFVENBUFMgZmxhZyB0b28uCgoyMDA1LTA1LTE3IDE0OjAxOjUxICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiBSZW1vdmUgaW1wbGljaXQgY2FzdCBmcm9tIGdib29sZWFuIHRvIEdzdEVsZW1lbnRTdGF0ZVJldHVybjsgbWFrZSBzdXJlIHdlIHN0aWxsIHJldHVybiBmYWlsdXJlLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2NoYW5nZV9zdGF0ZSk6CgkgIFJlbW92ZSBpbXBsaWNpdCBjYXN0IGZyb20gZ2Jvb2xlYW4gdG8gR3N0RWxlbWVudFN0YXRlUmV0dXJuOwoJICBtYWtlIHN1cmUgd2Ugc3RpbGwgcmV0dXJuIGZhaWx1cmUgaW4gcGF1c2VkID0+IHJlYWR5IGNhc2UgaWYKCSAgdGhlIHBhcmVudCBjbGFzcyBmYWlscyB0byBjaGFuZ2Ugc3RhdGUgYW5kIG91ciBvd24gc3RvcAoJICB2ZnVuYyBzdWNjZWVkcy4KCjIwMDUtMDUtMTcgMTA6NDE6NTEgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICB0b29scy9nc3QtbGF1bmNoLmM6IE1lc3NhZ2Ugd2FzIHVucmVmZmVkIHRvbyBzb29uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6IChldmVudF9sb29wKToKCSAgTWVzc2FnZSB3YXMgdW5yZWZmZWQgdG9vIHNvb24uCgoyMDA1LTA1LTE2IDIxOjE3OjE0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0YmluLmMgKHNpbmtfaXRlcmF0b3JfZmlsdGVyKTogRXJyLi4uIHVtLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTE2ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RiaW4uYyAoc2lua19pdGVyYXRvcl9maWx0ZXIpOiBFcnIuLi4gdW0uLi4KCSAgKiBjaGVjay9nc3QvZ3N0YmluLmMgKHRlc3RfZ2hvc3RfcGFkcyk6IE5ldyB0ZXN0IGZvciB0aGUKCSAgZ2hvc3RpbmctaWYtZWxlbWVudHMtbm90LWluLXNhbWUtYmluIGJlaGF2aW9yLgoKMjAwNS0wNS0xNiAyMTowNToyMSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0bWluaW9iamVjdC5jOiBVc2UgZ19hdG9taWNfaW50X2dldCgpIGluc3RlYWQgb2YgYWNjZXNzaW5nIHJlZmNvdW50IGRpcmVjdGx5LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOiBVc2UgZ19hdG9taWNfaW50X2dldCgpIGluc3RlYWQgb2YKCSAgYWNjZXNzaW5nIHJlZmNvdW50IGRpcmVjdGx5LgoKMjAwNS0wNS0xNiAyMDoyMTo1NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBjaGVjay9NYWtlZmlsZS5hbTogcmVtb3ZlIEdzdERhdGEgY2hlY2tzCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOiByZW1vdmUgR3N0RGF0YSBjaGVja3MKCSAgKiBjaGVjay9nc3QtbGlicy9nZHAuYzogKFNUQVJUX1RFU1QpOiBmaXggZm9yIEFQSSBjaGFuZ2VzCgkgICogZ3N0L01ha2VmaWxlLmFtOiBhZGQgbWluaW9iamVjdCwgcmVtb3ZlIGRhdGEKCSAgKiBnc3QvZ3N0Lmg6IGFkZCBtaW5pb2JqZWN0LCByZW1vdmUgZGF0YQoJICAqIGdzdC9nc3RkYXRhLmM6IHJlbW92ZQoJICAqIGdzdC9nc3RkYXRhLmg6IHJlbW92ZQoJICAqIGdzdC9nc3RkYXRhX3ByaXZhdGUuaDogcmVtb3ZlCgkgICogZ3N0L2dzdHR5cGVzLmg6IHJlbW92ZSBHc3RFdmVudCBhbmQgR3N0TWVzc2FnZQoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9wb3N0X21lc3NhZ2UpOiBmaXggZm9yIEFQSSBjaGFuZ2VzCgkgICogZ3N0L2dzdG1hcnNoYWwubGlzdDogY2hhbmdlIEJPWEVEIC0+IE9CSkVDVAoJICBJbXBsZW1lbnQgR3N0TWluaU9iamVjdC4KCSAgKiBnc3QvZ3N0bWluaW9iamVjdC5jOgoJICAqIGdzdC9nc3RtaW5pb2JqZWN0Lmg6CgkgIE1vZGlmeSB0byBiZSBzdWJjbGFzc2VzIG9mIEdzdE1pbmlPYmplY3QuCgkgICogZ3N0L2dzdGJ1ZmZlci5jOiAoX2dzdF9idWZmZXJfaW5pdGlhbGl6ZSksIChnc3RfYnVmZmVyX2dldF90eXBlKSwKCSAgKGdzdF9idWZmZXJfY2xhc3NfaW5pdCksIChnc3RfYnVmZmVyX2ZpbmFsaXplKSwgKF9nc3RfYnVmZmVyX2NvcHkpLAoJICAoZ3N0X2J1ZmZlcl9pbml0KSwgKGdzdF9idWZmZXJfbmV3KSwgKGdzdF9idWZmZXJfbmV3X2FuZF9hbGxvYyksCgkgIChnc3Rfc3ViYnVmZmVyX2dldF90eXBlKSwgKGdzdF9zdWJidWZmZXJfaW5pdCksCgkgIChnc3RfYnVmZmVyX2NyZWF0ZV9zdWIpLCAoZ3N0X2J1ZmZlcl9pc19zcGFuX2Zhc3QpLAoJICAoZ3N0X2J1ZmZlcl9zcGFuKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChfZ3N0X2V2ZW50X2luaXRpYWxpemUpLCAoZ3N0X2V2ZW50X2dldF90eXBlKSwKCSAgKGdzdF9ldmVudF9jbGFzc19pbml0KSwgKGdzdF9ldmVudF9pbml0KSwgKGdzdF9ldmVudF9maW5hbGl6ZSksCgkgIChfZ3N0X2V2ZW50X2NvcHkpLCAoZ3N0X2V2ZW50X25ldyk6CgkgICogZ3N0L2dzdGV2ZW50Lmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzogKF9nc3RfbWVzc2FnZV9pbml0aWFsaXplKSwKCSAgKGdzdF9tZXNzYWdlX2dldF90eXBlKSwgKGdzdF9tZXNzYWdlX2NsYXNzX2luaXQpLAoJICAoZ3N0X21lc3NhZ2VfaW5pdCksIChnc3RfbWVzc2FnZV9maW5hbGl6ZSksIChfZ3N0X21lc3NhZ2VfY29weSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKToKCSAgKiBnc3QvZ3N0bWVzc2FnZS5oOgoJICAqIGdzdC9nc3Rwcm9iZS5jOiAoZ3N0X3Byb2JlX3BlcmZvcm0pLAoJICAoZ3N0X3Byb2JlX2Rpc3BhdGNoZXJfZGlzcGF0Y2gpOgoJICAqIGdzdC9nc3Rwcm9iZS5oOgoJICAqIGdzdC9nc3RxdWVyeS5jOiAoX2dzdF9xdWVyeV9pbml0aWFsaXplKSwgKGdzdF9xdWVyeV9nZXRfdHlwZSksCgkgIChnc3RfcXVlcnlfY2xhc3NfaW5pdCksIChnc3RfcXVlcnlfZmluYWxpemUpLCAoZ3N0X3F1ZXJ5X2luaXQpLAoJICAoX2dzdF9xdWVyeV9jb3B5KSwgKGdzdF9xdWVyeV9uZXcpOgoJICBVcGRhdGUgZWxlbWVudHMgZm9yIEdzdERhdGEgLT4gR3N0TWluaU9iamVjdCBjaGFuZ2VzCgkgICogZ3N0L2dzdHF1ZXJ5Lmg6CgkgICogZ3N0L2dzdHF1ZXVlLmM6IChnc3RfcXVldWVfZmluYWxpemUpLCAoZ3N0X3F1ZXVlX2xvY2tlZF9mbHVzaCksCgkgIChnc3RfcXVldWVfY2hhaW4pLCAoZ3N0X3F1ZXVlX2xvb3ApOgoJICAqIGdzdC9lbGVtZW50cy9nc3RidWZmZXJzdG9yZS5jOgoJICAoZ3N0X2J1ZmZlcl9zdG9yZV9hZGRfYnVmZmVyX2Z1bmMpLAoJICAoZ3N0X2J1ZmZlcl9zdG9yZV9jbGVhcmVkX2Z1bmMpLCAoZ3N0X2J1ZmZlcl9zdG9yZV9nZXRfYnVmZmVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzogKGdzdF9mYWtlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9mYWtlc2lua19yZW5kZXIpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IChnc3RfZmFrZXNyY19jbGFzc19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X21tYXBfYnVmZmVyX2dldF90eXBlKSwKCSAgKGdzdF9tbWFwX2J1ZmZlcl9jbGFzc19pbml0KSwgKGdzdF9tbWFwX2J1ZmZlcl9pbml0KSwKCSAgKGdzdF9tbWFwX2J1ZmZlcl9maW5hbGl6ZSksIChnc3RfZmlsZXNyY19tYXBfcmVnaW9uKSwKCSAgKGdzdF9maWxlc3JjX2NyZWF0ZV9yZWFkKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfc3JjX2V2ZW50KSwgKGZyZWVfZW50cnlfYnVmZmVycyksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGFuZGxlX2V2ZW50KToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkgIChnc3RfZHBfaGVhZGVyX2Zyb21fYnVmZmVyKToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmg6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RwLXByaXZhdGUuaDoKCjIwMDUtMDUtMTUgMjM6MTg6NDAgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6IERvbid0IGluY2x1ZGUgaGVhZGVycyB0aGF0IHdlcmUganVzdCByZW1vdmVkLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzogRG9uJ3QgaW5jbHVkZSBoZWFkZXJzIHRoYXQgd2VyZQoJICBqdXN0IHJlbW92ZWQuCgoyMDA1LTA1LTE1IDIzOjE2OjI5ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbTogUmVtb3ZlIHNvbWUgZWxlbWVudHMgdGhhdCBkb24ndCBuZWVkIHRvIGJlIGluIHRoZSBjb3JlIChvciBldmVuIGV4aXN0IGF0IGFsbCkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbTogUmVtb3ZlIHNvbWUgZWxlbWVudHMgdGhhdCBkb24ndAoJICBuZWVkIHRvIGJlIGluIHRoZSBjb3JlIChvciBldmVuIGV4aXN0IGF0IGFsbCkuCgkgICogZ3N0L2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuYzoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0YWdncmVnYXRvci5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RtZDVzaW5rLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG1kNXNpbmsuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0bXVsdGlmaWxlc3JjLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RwaXBlZmlsdGVyLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHBpcGVmaWx0ZXIuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0c2hhcGVyLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHNoYXBlci5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHN0YXRpc3RpY3MuaDoKCSAgKiBwby9QT1RGSUxFUy5pbjogUmVtb3ZlIGFib3ZlIGZpbGVzLgoKMjAwNS0wNS0xNCAxODowMToxMiArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX2l0ZXJhdGVfc2lua3MpOiBVc2Ugc2lua19pdGVyYXRvcl9maWx0ZXIgc28gYXMgdG8gZ2V0IHRoZSByZWZzIHJpZ2h0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0YmluLmMgKGdzdF9iaW5faXRlcmF0ZV9zaW5rcyk6IFVzZSBzaW5rX2l0ZXJhdG9yX2ZpbHRlcgoJICBzbyBhcyB0byBnZXQgdGhlIHJlZnMgcmlnaHQuCgkgIChzaW5rX2l0ZXJhdG9yX2ZpbHRlcik6IE5ldyBmdW5jdGlvbiwgd3JhcHMgYmluX2VsZW1lbnRfaXNfc2luaywKCSAgdW5yZWZmaW5nIG9iamVjdHMgdGhhdCBkb24ndCBwYXNzIHRoZSBmaWx0ZXIuCgoyMDA1LTA1LTE0IDE3OjEyOjExICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2luaXQpOiBEcm9wIHJlZiBvbiBidXMgYWZ0ZXIgZ3N0X2VsZW1lbnRfc2V0X2J1cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdHBpcGVsaW5lLmMgKGdzdF9waXBlbGluZV9pbml0KTogRHJvcCByZWYgb24gYnVzIGFmdGVyCgkgIGdzdF9lbGVtZW50X3NldF9idXMuCgkgIChnc3RfcGlwZWxpbmVfZGlzcG9zZSk6IFNldCB0aGUgYnVzIG9uIHRoZSBwaXBlbGluZSB0byBOVUxMLiBJbgoJICBub3JtYWwgY2FzZXMsIHRoaXMgd2lsbCBkZXN0cm95IHRoZSBidXMuCgkgICogZ3N0L2dzdHV0aWxzLmMgKHByZXBhcmVfbGlua19tYXliZV9naG9zdGluZyk6IERyb3AgcmVmIG9uIHJvb3QKCSAgb2JqZWN0LgoKMjAwNS0wNS0xNCAxNTo1NDo0OSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IEZpeCBzdGF0ZSBjaGFuZ2VzIGlmIGEgYmluIGhhcyBubyBzaW5rcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDUtMTQgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZ3N0L2dzdGJpbi5jIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6IEZpeCBzdGF0ZSBjaGFuZ2VzIGlmIGEgYmluCgkgIGhhcyBubyBzaW5rcy4KCjIwMDUtMDUtMTQgMTU6MzI6MzYgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9nc3R1dGlscy5jIChnc3RfZWxlbWVudF9saW5rX3BhZHMpOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZ3N0X3BhZF9saW5rLCBjYWxsIHBhZF9saW5rX21heWJlX2dob3N0aW5nLAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0xMyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0dXRpbHMuYyAoZ3N0X2VsZW1lbnRfbGlua19wYWRzKTogSW5zdGVhZCBvZiBjYWxsaW5nCgkgIGdzdF9wYWRfbGluaywgY2FsbCBwYWRfbGlua19tYXliZV9naG9zdGluZywKCSAgKHBhZF9saW5rX21heWJlX2dob3N0aW5nKTogTGlua3MgcGFkcywgbWFraW5nIHN1cmUgdGhhdCB0aGUKCSAgZWxlbWVudHMgYmVpbmcgbGlua2VkIGFyZSBpbiB0aGUgc2FtZSBiaW4uCgkgIChmaW5kX2NvbW1vbl9yb290LCBvYmplY3RfaGFzX2FuY2VzdG9yLCBnaG9zdF91cCwgcmVtb3ZlX3BhZCk6CgkgIEhlbHBlcnMgZm9yIHBhZF9saW5rX21heWJlX2dob3N0aW5nLgoKMjAwNS0wNS0xMyAxMjo1Mzo0NyArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBSZXF1aXJlIEdMaWIgPj0gMi40LjAgKGZvciB0aGUgZ19hdG9taWNfKiBmdW5jcykKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlcXVpcmUgR0xpYiA+PSAyLjQuMCAoZm9yIHRoZSBnX2F0b21pY18qIGZ1bmNzKQoKMjAwNS0wNS0xMyAxMDoxODo0MSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGFkZCBtaXNzaW5nIC5oIGZpbGUgdG8gc3BlYyBmaWxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgbWlzc2luZyAuaCBmaWxlIHRvIHNwZWMgZmlsZQoKMjAwNS0wNS0xMyAwOToyNzoyNCArMDAwMCAgVGltLVBoaWxpcHAgTcO8bGxlciA8dGltQGNlbnRyaWN1bGFyLm5ldD4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgIE1lbnRpb24gR3N0UHVzaFNyYwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgTWVudGlvbiBHc3RQdXNoU3JjCgoyMDA1LTA1LTEyIDE5OjQ1OjQ0ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogSWRlbnRpZnkgc2lua3MgYnkgdGhlaXIgZmxhZyB0byBhdm9pZCBvdmVybHkgY29tcGxpY2F0ZWQgY2hlY2tzIChmb3cgbm93KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfdW5sb2NrKSwKCSAgKGdzdF9iYXNlc3JjX2lzX3NlZWthYmxlKToKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLAoJICAoYmluX2VsZW1lbnRfaXNfc2luayksIChnc3RfYmluX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2FkZF9wYWQpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgIElkZW50aWZ5IHNpbmtzIGJ5IHRoZWlyIGZsYWcgdG8gYXZvaWQgb3Zlcmx5IGNvbXBsaWNhdGVkCgkgIGNoZWNrcyAoZm93IG5vdykuCgkgIERvIHN0YXRlIGNoYW5nZXMgZXZlbiBmb3IgZWxlbWVudHMgbm90IHJlYWNoYWJsZSBmcm9tIHRoZQoJICBzaW5rcy4KCSAgQmFzZVNpbmsgaXMgYSBzaW5rIG5vdyA6KQoJICBTb21lIG1vcmUgZGVidWdnaW5nIGluZm8gaW4gdGhlIGJhc2VzcmMuCgoyMDA1LTA1LTEyIDE1OjA5OjE3ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvZ3N0YmluLmM6IEltcGxlbWVudCBfcXVlcnkgb24gYSBiaW4sIHNpbWlsYXIgdG8gX3NlbmRfZXZlbnQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3F1ZXJ5KToKCSAgSW1wbGVtZW50IF9xdWVyeSBvbiBhIGJpbiwgc2ltaWxhciB0byBfc2VuZF9ldmVudC4KCjIwMDUtMDUtMTIgMTM6NTk6NTggKzAwMDAgIFRpbS1QaGlsaXBwIE3DvGxsZXIgPHRpbUBjZW50cmljdWxhci5uZXQ+CgoJICBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IERpc2NvbnQgZXZlbnQgb2Zmc2V0IGZvcm1hdCBzaG91bGQgYmUgR1NUX0ZPUk1BVF9CWVRFUywgbm90IEdTVF9GT1JNQVRfVElNRS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfZG9fc2Vlayk6CgkgIERpc2NvbnQgZXZlbnQgb2Zmc2V0IGZvcm1hdCBzaG91bGQgYmUgR1NUX0ZPUk1BVF9CWVRFUywKCSAgbm90IEdTVF9GT1JNQVRfVElNRS4KCjIwMDUtMDUtMTIgMTM6MTg6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0YmluLmM6IFNhbWUgZml4IGFzIFJvbmFsZCdzIGJ1dCB3aXRob3V0IHRoZSBzaWduYWwuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9nZXRfc3RhdGUpOgoJICBTYW1lIGZpeCBhcyBSb25hbGQncyBidXQgd2l0aG91dCB0aGUgc2lnbmFsLgoKMjAwNS0wNS0xMiAxMjoyNzowNyArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdHV0aWxzLmM6IE5vLCBhbiBlbGVtZW50IGlzIG5vdCBhIHBhZC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9xdWVyeV9wb3NpdGlvbik6CgkgIE5vLCBhbiBlbGVtZW50IGlzIG5vdCBhIHBhZC4KCjIwMDUtMDUtMTIgMTI6MTc6MjMgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RiaW4uYzogSWYgYSBjaGlsZCBpcyByZW1vdmVkIGZyb20gYSBiaW4gd2hpbGUgd2UgcmVtb3ZlIHRoZSBjaGlsZCBmcm9tIHRoZSBiaW4gYW5kIHdoaWxlIHdlJ3JlIHJldHJpZXZpbmcgaXRzIC4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGNiX3BhcmVudF91bnNldCksCgkgIChnc3RfYmluX2dldF9zdGF0ZSk6CgkgIElmIGEgY2hpbGQgaXMgcmVtb3ZlZCBmcm9tIGEgYmluIHdoaWxlIHdlIHJlbW92ZSB0aGUgY2hpbGQgZnJvbQoJICB0aGUgYmluIGFuZCB3aGlsZSB3ZSdyZSByZXRyaWV2aW5nIGl0cyBzdGF0ZSwgc2lnbmFsIHRoaXMgdG8gdGhlCgkgIGdldF9zdGF0ZSBmdW5jdGlvbiBzbyB3ZSBhYm9ydCB0aGUgd2FpdCAoaW5zdGVhZCBvZiB3YWl0aW5nIGZvcgoJICBhIHRpbWVvdXQpIGFuZCBjYW4gaW1tZWRpYXRlbHkgcmUtaXRlcmF0ZSBvdmVyIGFsbCBvdGhlciBlbGVtZW50cy4KCjIwMDUtMDUtMTIgMTA6NDM6MTQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvYmFzZS86IEFkZGVkIGlzX3NlZWthYmxlIHRvIEJhc2VTcmMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfaXNfc2Vla2FibGUpLAoJICAoZ3N0X2Jhc2VzcmNfc3RhcnQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvYmFzZS9nc3RwdXNoc3JjLmM6IChnc3RfcHVzaHNyY19nZXRfdHlwZSksCgkgIChnc3RfcHVzaHNyY19iYXNlX2luaXQpLCAoZ3N0X3B1c2hzcmNfY2xhc3NfaW5pdCksCgkgIChnc3RfcHVzaHNyY19pbml0KSwgKGdzdF9wdXNoc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2Jhc2UvZ3N0cHVzaHNyYy5oOgoJICBBZGRlZCBpc19zZWVrYWJsZSB0byBCYXNlU3JjCgkgIEFkZGVkIHNpbXBsZSBQdXNoU3JjLgoKMjAwNS0wNS0xMSAwOToyMToyNCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEZpeCByZWZjb3VudGluZyBpbiB1dGlscyBmdW5jdGlvbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X2FkZF9wYWQpLCAoZ3N0X2VsZW1lbnRfcXVlcnkpOgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfZ2V0X2NvbXBhdGlibGVfcGFkX3RlbXBsYXRlKSwKCSAgKGdzdF9lbGVtZW50X2xpbmtfcGFkcyksIChnc3RfZWxlbWVudF9xdWVyeV9wb3NpdGlvbiksCgkgIChnc3RfZWxlbWVudF9xdWVyeV9jb252ZXJ0KSwgKGludGVyc2VjdF9jYXBzX2Z1bmMpLAoJICAoZ3N0X3BhZF9xdWVyeV9wb3NpdGlvbiksIChnc3RfcGFkX3F1ZXJ5X2NvbnZlcnQpOgoJICBGaXggcmVmY291bnRpbmcgaW4gdXRpbHMgZnVuY3Rpb24uCgkgIE5vIHBvaW50IGluIHRyeWluZyB0byBhY3RpdmF0ZSBhIHBhZCB3aGVuIGl0J3MgYWRkZWQsIGl0IGNvdWxkCgkgIGJlIGFkZGVkIGZyb20gdGhlIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBhbmQgdGhlbiB3ZSBkZWFkbG9jaywgdGhlCgkgIGVsZW1lbnQgaGFzIHRvIGRlY2lkZSB3aGF0IHRvIGRvLgoKMjAwNS0wNS0xMSAwMzozNzoxMCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmMgKGdzdF9mYWtlc2lua19yZW5kZXIpOiBFciwgZW1pdCB3aXRoCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTEwICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jIChnc3RfZmFrZXNpbmtfcmVuZGVyKTogRXIsIGVtaXQgd2l0aAoJICAqYWxsKiB0aGUgYXJndW1lbnRzLgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KTogR3JhYiB0aGUKCSAgc3RyZWFtIGxvY2sgaWYgaXQncyBhIEZMVVNIX0RPTkU7IG5vcm1hbCBmbHVzaGVzIGRvbid0IGdldCB0aGUKCSAgbG9jayAoYWNjb3JkaW5nIHRvIHRoZSBkb2NzIC0tIGlmIHRoaXMgaXMgd3JvbmcgY2hhbmdlIHRoZSBkb2NzKS4KCSAgKiBnc3QvZ3N0cGlwZWxpbmUuYyAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6IFNldCB0aGUgYnVzIHRvCgkgIGZsdXNoIG1lc3NhZ2VzIGluIHRoZSBOVUxMIHN0YXRlLgoJICAqIGdzdC9nc3RidXMuYyAoZ3N0X2J1c19wb3N0KTogSWYgYSBidXMgaXMgZmx1c2hpbmcsIHVucmVmIHRoZQoJICBtZXNzYWdlIGltbWVkaWF0ZWx5IGFuZCByZXR1cm4uCgkgIChnc3RfYnVzX3NldF9mbHVzaGluZyk6IE5ldyBmdW5jdGlvbi4gSWYgYSBidXMgaXMgZmx1c2hpbmcsIGl0CgkgIGZsdXNoZXMgb3V0IGFueSBxdWV1ZWQgbWVzc2FnZXMgYW5kIGltbWVkaWF0ZWx5IHVucmVmcyBuZXcKCSAgbWVzc2FnZXMuIFRoaXMgaXMgc28gd2hlbiBhbiBlbGVtZW50IGdvZXMgdG8gTlVMTCwgYWxsIG9mIHRoZQoJICB1bmhhbmRsZWQgbWVzc2FnZXMgY29taW5nIGZyb20gaXQgY2FuIGJlIGZyZWVkLCBhbmQgdGhlaXIKCSAgcmVmZXJlbmNlcyB0byB0aGUgZWxlbWVudCBkcm9wcGVkLiBJbiBvdGhlciB3b3JkczogbWVzc2FnZSBzb3VyY2UKCSAgcmVmIGNvbnNpZGVyZWQgaGFybWZ1bCA6UAoJICAqIGdzdC9nc3RiaW4uYyAoZ3N0X2Jpbl9jaGFuZ2Vfc3RhdGUpOiBVbnJlZiBwZWVyIGVsZW1lbnQgd2hlbgoJICB3ZSdyZSBmaW5pc2hlZCB3aXRoIGl0LgoJICAqIGdzdC9nc3RtZXNzYWdlLmMgKGdzdF9tZXNzYWdlX25ld19zdGF0ZV9jaGFuZ2VkKToKCjIwMDUtMDUtMTAgMTQ6NTE6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBnc3QvZ3N0dmFsdWUuYzoKCSAgcmVtb3ZlIHN0dXBpZCBwcmludGYKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZSBzdHVwaWQgcHJpbnRmCgoyMDA1LTA1LTEwIDE0OjUwOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdHZhbHVlLmM6IEFkZGVkIGZsYWdzIHNlcmlhbGl6ZS9kZXNlcmlhbGl6ZS9jb21wYXJlIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3R2YWx1ZS5jOiAoZ3N0X3ZhbHVlX2NvbXBhcmVfZmxhZ3MpLAoJICAoZ3N0X3ZhbHVlX3NlcmlhbGl6ZV9mbGFncyksIChnc3RfdmFsdWVfZGVzZXJpYWxpemVfZmxhZ3MpLAoJICAoX2dzdF92YWx1ZV9pbml0aWFsaXplKToKCSAgQWRkZWQgZmxhZ3Mgc2VyaWFsaXplL2Rlc2VyaWFsaXplL2NvbXBhcmUgY29kZS4KCjIwMDUtMDUtMDkgMjE6Mzc6NTQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpOiBJbnRlcnNlY3QgdGhlIHBlZXIncyBjYXBzIHdpdGggb3VyIGNhcHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYyAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpOgoJICBJbnRlcnNlY3QgdGhlIHBlZXIncyBjYXBzIHdpdGggb3VyIGNhcHMuCgoyMDA1LTA1LTA5IDE1OjU0OjI2ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBnc3QvOiBIYW5kbGUgbmVnYXRpdmUgb2Zmc2V0cyBiZXR0ZXIuIEZpeGVzIGRlY29kZWJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuYzogKGhlbHBlcl9maW5kX3BlZWspOgoJICAqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzogKGZpbmRfcGVlayk6CgkgIEhhbmRsZSBuZWdhdGl2ZSBvZmZzZXRzIGJldHRlci4gRml4ZXMgZGVjb2RlYmluLgoKMjAwNS0wNS0wOSAxNDo0NzoxNSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC86IEltcGxlbWVudCBhY2NlcHRfY2Fwcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3Byb3h5X2dldGNhcHMpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2V2ZW50KToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2FjY2VwdF9jYXBzKSwgKGdzdF9wYWRfcXVlcnkpOgoJICBJbXBsZW1lbnQgYWNjZXB0X2NhcHMuCgkgIEZpeCBzaWxseSBsb2NrL3VubG9jayBtaXNtYXRjaCBpbiBiYXNlIGNsYXNzLgoKMjAwNS0wNS0wOSAxMDo1MzoxMyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9kZXNpZ24vZHJhZnQtcHVzaC1wdWxsLnR4dDoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5oOgoJKiBnc3QvZ3N0bWVzc2FnZS5jOgoJKiBnc3QvZ3N0bWVzc2FnZS5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHF1ZXJ5LmM6CgkqIGdzdC9nc3RxdWVyeS5oOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5jOgoJKiBnc3QvZ3N0cXVlcnl1dGlscy5oOgoJKiBnc3QvZ3N0cXVldWUuYzoKCSogZ3N0L2dzdHV0aWxzLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC14bWxpbnNwZWN0LmM6CgkgIFJlbW92ZSBvbGQgcXVlcnkgZnVuY3Rpb25zLiBQb3J0ZWQgb2xkIGNvZGUuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBSZW1vdmUgb2xkIHF1ZXJ5IGZ1bmN0aW9ucy4gUG9ydGVkIG9sZCBjb2RlLgoJICBBZGRlZCBwb3NpdGlvbi9jb252ZXJ0IGhlbHBlciBmdW5jdGlvbnMgdG8gZ3N0dXRpbHMuCgkgIFJlb3JkZXJlZCBnc3RwYWQuYyBjb2RlLCBncm91cGluZyByZWxldmFudCB0aGluZ3MuCgkgIFJlbW92ZSBnc3RfbWVzc2FnZV9uZXcoKSwgYWx3YXlzIG5lZWQgdG8gc3BlZmljeSBhIHNwZWNpZmljCgkgIG1lc3NhZ2UuCgoyMDA1LTA1LTA5IDA2OjIxOjEwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0aXRlcmF0b3IuaDogQWRkIHNvbWUgaW5jbHVkZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA1LTA5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9nc3RpdGVyYXRvci5oOiBBZGQgc29tZSBpbmNsdWRlcy4KCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5oOiBJbmNsdWRlIG1vcmUgaGVhZGVycy4KCSAgKiBnc3QvZ3N0cGFkLmg6CgkgICogZ3N0L2dzdHBhZC5jIChnc3RfcGFkX3F1ZXJ5X3Bvc2l0aW9uKTogTmV3IHJvdXRpbmUsIHJlcGxhY2VzCgkgIHNvbWUgdXNlcyBvZiBnc3RfcGFkX3F1ZXJ5LgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmM6IEJ1aWxkIGZpeGVzLiBNYWtlIHBhcnNlIGZ1bmN0aW9ucyBpZ25vcmUKCSAgTlVMTCBvdXQgcGFyYW1ldGVycy4KCSAgKGdzdF9xdWVyeV9uZXdfcG9zaXRpb24pOiBOZXcgcHJvYywgYWxsb2NhdGVzIGEgbmV3IHBvc2l0aW9uCgkgIHF1ZXJ5LgoJICAqIGdzdC9NYWtlZmlsZS5hbSAobGliZ3N0cmVhbWVyX0BHU1RfTUFKT1JNSU5PUkBfbGFfU09VUkNFUyk6IEFkZAoJICBnc3RxdWVyeXV0aWxzLmMgdG8gdGhlIGJ1aWxkLgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYyAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KTogSW1wbGVtZW50IHdpdGgKCSAgdGhlIGdlbmVyaWMgR19WQUxVRV9DT0xMRUNULgoKMjAwNS0wNS0wOCAxNzowNzowNSArMDAwMCAgRWR3YXJkIEhlcnZleSA8YmlsYm9lZEBiaWxib2VkLmNvbT4KCgkgIGdzdC9NYWtlZmlsZS5hbTogQWRkZWQgZ3N0cXVlcnl1dGlscy5oIHRvIHRoZSBsaXN0IG9mIGhlYWRlcnMgdG8gaW5zdGFsbCwgdGhhdCB3YXMgYSAnbmFjaHR5JyBtb3ZlIHdpbmdvIDopCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogKGdzdF9oZWFkZXJzKToKCSAgQWRkZWQgZ3N0cXVlcnl1dGlscy5oIHRvIHRoZSBsaXN0IG9mIGhlYWRlcnMgdG8gaW5zdGFsbCwgdGhhdCB3YXMKCSAgYSAnbmFjaHR5JyBtb3ZlIHdpbmdvIDopCgoyMDA1LTA1LTA2IDIxOjQxOjIyICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICBnc3QvZ3N0cXVlcnkuaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wNiAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvZ3N0cXVlcnkuaAoJICAqIGdzdC9nc3RxdWVyeS5jIChfZ3N0X3F1ZXJ5X2luaXRpYWxpemUpOiBFeHRlbmQgR3N0UXVlcnkgZnJvbQoJICBHc3REYXRhLCBpbml0IGEgbWVtY2h1bmsuCgkgIChzdGFuZGFyZF9kZWZpbml0aW9ucyk6IEFkZCBhIGZldyBxdWVyeSB0eXBlcywgZGVwcmVjYXRlIGEgZmV3LgoJICAoZ3N0X3F1ZXJ5X2dldF90eXBlKTogTmV3IHByb2MuCgkgIChfZ3N0X3F1ZXJ5X2NvcHksIF9nc3RfcXVlcnlfZnJlZSwgZ3N0X3F1ZXJ5X25ldyk6IEdzdERhdGEKCSAgaW1wbGVtZW50YXRpb24uCgkgIChnc3RfcXVlcnlfbmV3X2FwcGxpY2F0aW9uLCBnc3RfcXVlcnlfZ2V0X3N0cnVjdHVyZSk6IE5ldyBwdWJsaWMKCSAgcHJvY3MuCgkgICogZG9jcy9kZXNpZ24vZHJhZnQtcXVlcnkudHh0OiBSZW1vdmVkIExJTktTIGZyb20gdGhlIHF1ZXJ5IHR5cGVzLAoJICBiZWNhdXNlIGFsbCB0aGUgcmVzdCBjYW4gYmUgZGlzcGF0Y2hlZCB0byBvdGhlciBwYWRzIC0tIHNlZW1lZAoJICB1Z2x5IHRvIGhhdmUgYSBxdWVyeSB0aGF0IGNvdWxkbid0IGJlIGRpc3BhdGNoZWQuIGludGVybmFsX2xpbmtzCgkgIGlzIGZpbmUgYXMgYSBwYWQgbWV0aG9kLgoJICAqIGdzdC9nc3RwYWQuaDogQWRkIHF1ZXJ5MiBhcyBhIHBhZCBtZXRob2QsIGFkZCB0aGUgbmV3IGZ1bmN0aW9ucwoJICBpbiBnc3RwYWQuYywgYnV0IG1haW50YWluIGJpbmFyeSBjb21wYXRpYmlsaXR5IGZvciB0aGUgbW9tZW50LgoJICBXaWxsIGZpeCBiZWZvcmUgMC45IGlzIG91dC4KCSAgKiBnc3QvZ3N0cXVlcnl1dGlscy5jOgoJICAqIGdzdC9nc3RxdWVyeXV0aWxzLmg6IE5ldyBmaWxlcywgaW1wbGVtZW50IDMgbWV0aG9kcyBmb3IgZWFjaAoJICBxdWVyeSB0eXBlOiBwYXJzZV9xdWVyeSwgcGFyc2VfcmVzcG9uc2UsIGFuZCBzZXQuIFByb2JhYmx5IG5lZWQgYW4KCSAgYWxsb2NhdG9yIGFzIHdlbGwuCgkgICogZ3N0L2dzdC5oOiBBZGQgZ3N0cXVlcnkuaCBhbmQgZ3N0cXVlcnl1dGlscy5oIHRvIHRoZSBsaXN0LgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jIChnc3RfZmlsZXNpbmtfcXVlcnkyKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX3F1ZXJ5Mik6IFJlcGxhY2Ugb2xkIHF1ZXJ5LAoJICBxdWVyeV90eXBlcywgYW5kIGZvcm1hdHMgbWV0aG9kcy4KCSAgKiBnc3QvZ3N0cGFkLmMgKGdzdF9wYWRfcXVlcnkyLCBnc3RfcGFkX3F1ZXJ5Ml9kZWZhdWx0KQoJICAoZ3N0X3BhZF9zZXRfcXVlcnkyX2Z1bmN0aW9uKTogTmV3IGZ1bmN0aW9ucy4KCSAgKGdzdF9yZWFsX3BhZF9pbml0KTogU2V0IHF1ZXJ5Ml9kZWZhdWx0IGFzIHRoZSBkZWZhdWx0IHF1ZXJ5MgoJICBmdW5jdGlvbi4gQmFzaWNhbGx5IGp1c3QgZGlzcGF0Y2hlcyB0byBpbnRlcm5hbGx5IGxpbmtlZCBwYWRzLgoJICBOZWVkcyByZXZpZXchCgkgICogZ3N0L2dzdGRhdGFfcHJpdmF0ZS5oIChfR1NUX0RBVEFfSU5JVCk6IFNldCBkYXRhLT5yZWZjb3VudCB0byAxCgkgIHdpdGhvdXQgdXNpbmcgdGhlIGF0b21pYyBvcGVyYXRpb25zLiBPbmx5IG9uZSB0aHJlYWQgY2FuIHBvc3NpYmx5CgkgIGJlIGFjY2Vzc2luZyB0aGUgZGF0YSBhdCB0aGlzIHBvaW50LiBDaGFuZ2VkIHNvIGFzIHRvIGF2b2lkCgkgIGdzdF9hdG9taWMgb3BlcmF0aW9ucy4KCjIwMDUtMDUtMDYgMTk6NTA6MjMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLmM6IEFsc28gc2V0IGNhcHMgaWYgd2UgdXNlIHRoZSBmYWxsYmFjayBidWZmZXIgYWxsb2MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfYWxsb2NfYnVmZmVyKSwgKGdzdF9wYWRfcHVzaCk6CgkgIEFsc28gc2V0IGNhcHMgaWYgd2UgdXNlIHRoZSBmYWxsYmFjayBidWZmZXIgYWxsb2MuCgoyMDA1LTA1LTA2IDE3OjMzOjU1ICswMDAwICBUaW0tUGhpbGlwcCBNw7xsbGVyIDx0aW1AY2VudHJpY3VsYXIubmV0PgoKCSAgUHVyZ2UgR3N0QXRvbWljIHN0dWZmIGZyb20gZG9jcyBhbmQgd2luMzIgbWFrZWZpbGVzIGFzIHdlbGwKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvTWFrZWZpbGUuYW06CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXItc2VjdGlvbnMudHh0OgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YXRvbWljLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RtZW1jaHVuay5zZ21sOgoJICAqIHRlc3RzdWl0ZS9lbGVtZW50cy9zdHJ1Y3RfaTM4Ni5oOgoJICAqIHdpbjMyL0dTdHJlYW1lci52Y3Byb2o6CgkgICogd2luMzIvTWFrZWZpbGU6CgkgIFB1cmdlIEdzdEF0b21pYyBzdHVmZiBmcm9tIGRvY3MgYW5kIHdpbjMyIG1ha2VmaWxlcyBhcyB3ZWxsCgoyMDA1LTA1LTA2IDE3OjEwOjQ5ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IGdzdF9wYWRfcGVlcl9nZXRfY2FwcygpLCBtYWtlIGl0IHJldHVybiBOVUxMIGlmIG5vIHBlZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9wcm94eV9nZXRjYXBzKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0Y2Fwc2ZpbHRlci5jOiAoZ3N0X2NhcHNmaWx0ZXJfZ2V0Y2Fwcyk6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9wZWVyX2dldF9jYXBzKToKCSAgKiBnc3QvZ3N0cXVldWUuYzogKGdzdF9xdWV1ZV9pbml0KSwgKGdzdF9xdWV1ZV9nZXRjYXBzKSwKCSAgKGdzdF9xdWV1ZV9idWZmZXJhbGxvYyksIChnc3RfcXVldWVfaGFuZGxlX3NpbmtfZXZlbnQpLAoJICAoZ3N0X3F1ZXVlX3NyY19hY3RpdmF0ZSksIChnc3RfcXVldWVfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvZ3N0cXVldWUuaDoKCSAgKiBnc3QvZ3N0dXRpbHMuYzogKGdzdF9lbGVtZW50X2dldF9jb21wYXRpYmxlX3BhZF90ZW1wbGF0ZSksCgkgIChpbnRlcnNlY3RfY2Fwc19mdW5jKToKCSAgRml4IGdzdF9wYWRfcGVlcl9nZXRfY2FwcygpLCBtYWtlIGl0IHJldHVybiBOVUxMIGlmIG5vIHBlZXIuCgkgIEFsd2F5cyB0YWtlIFFVRVVFX0xPQ0sgYWZ0ZXIgU1RSRUFNX0xPQ0sgb3Igd2UgbWlnaHQgZGVhZGxvY2suCgkgIFNvbWUgZml4ZXMgZm9yIHRoZSBwZWVyX2dldF9jYXBzKCkgY2hhbmdlLgoKMjAwNS0wNS0wNiAxNjoxOTo1OSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmM6IEFjdHVhbGx5IGRvIHNvbWV0aGluZyB3aXRoIGVycm9yIGNvZGVzIHJldHVybmVkIGZyb20gdGhlIHB1c2ggZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX3ByZXJvbGxfcXVldWVfZW1wdHkpLAoJICAoZ3N0X2Jhc2VzaW5rX2hhbmRsZV9idWZmZXIpLCAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSk6CgkgIEFjdHVhbGx5IGRvIHNvbWV0aGluZyB3aXRoIGVycm9yIGNvZGVzIHJldHVybmVkIGZyb20gdGhlIHB1c2gKCSAgZnVuY3Rpb25zLgoKMjAwNS0wNS0wNiAwODoyNToxOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIFNvbWUgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWVsZW1lbnQtc2luay50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1lbGVtZW50LXNvdXJjZS50eHQ6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19ldmVudCksIChnc3RfYmFzZXNpbmtfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfaW5pdCksIChnc3RfYmFzZXNyY191bmxvY2spLAoJICAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfcGFkc19hY3RpdmF0ZSk6CgkgIFNvbWUgbW9yZSBkb2N1bWVudGF0aW9uLgoJICBGaXhlZCBzY2hlZHVsaW5nIGRlY2lzaW9uIGluIF9wYWRzX2FjdGl2YXRlKCkuCgoyMDA1LTA1LTA1IDIxOjU5OjUzICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkgIGZpbmFsIGNydWZ0IGZpeGFnZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmluYWwgY3J1ZnQgZml4YWdlCgoyMDA1LTA1LTA1IDIxOjQ1OjU0ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSAgY3J1ZnQgcmVtb3ZhbAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY3J1ZnQgcmVtb3ZhbAoKMjAwNS0wNS0wNSAyMTo0MjoyNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOgoJICByZXZlcnQgY3J1ZnQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCBjcnVmdAoKMjAwNS0wNS0wNSAyMTozNzozNCArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkgIHJldmVydCBhY2NpZGVudGFsIGNvbW1pdCBvZiBjcnVmdCAtLSBkb2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJldmVydCBhY2NpZGVudGFsIGNvbW1pdCBvZiBjcnVmdCAtLSBkb2gKCjIwMDUtMDUtMDUgMTU6MDI6NDAgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmMgKHRlc3RfMl9lbGVtZW50cyk6ICJGaXgiIHRoZSB0ZXN0IHN1aXRlLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wNSAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBjaGVjay9waXBlbGluZXMvc2ltcGxlX2xhdW5jaF9saW5lcy5jICh0ZXN0XzJfZWxlbWVudHMpOiAiRml4IgoJICB0aGUgdGVzdCBzdWl0ZS4KCjIwMDUtMDUtMDUgMTE6NDM6MDYgKzAwMDAgIENocmlzdGlhbiBTY2hhbGxlciA8dXJhZXVzQGdub21lLm9yZz4KCgkqIGdzdHJlYW1lci5zcGVjLmluOgoJICBmaXggYnJva2VuIHNwZWMgZmlsZQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGJyb2tlbiBzcGVjIGZpbGUKCjIwMDUtMDUtMDUgMDk6MzE6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBvYmplY3QgdG8gaGVscCBpbiBtYWtpbmcgY29sbGVjdCBwYWQgYmFzZWQgZWxlbWVudHMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOiAoZ3N0X2Jhc2VzcmNfaW5pdCksCgkgIChnc3RfYmFzZXNyY19zZXRfZGF0YWZsb3dfZnVuY3MpLCAoZ3N0X2Jhc2VzcmNfcXVlcnkpOgoJICAqIGdzdC9iYXNlL2dzdGNvbGxlY3RwYWRzLmM6IChnc3RfY29sbGVjdHBhZHNfZ2V0X3R5cGUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2NsYXNzX2luaXQpLCAoZ3N0X2NvbGxlY3RwYWRzX2luaXQpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX2ZpbmFsaXplKSwgKGdzdF9jb2xsZWN0cGFkc19uZXcpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3NldF9mdW5jdGlvbiksIChnc3RfY29sbGVjdHBhZHNfYWRkX3BhZCksCgkgIChmaW5kX3BhZCksIChnc3RfY29sbGVjdHBhZHNfcmVtb3ZlX3BhZCksCgkgIChnc3RfY29sbGVjdHBhZHNfaXNfYWN0aXZlKSwgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0KSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jb2xsZWN0X3JhbmdlKSwgKGdzdF9jb2xsZWN0cGFkc19zdGFydCksCgkgIChnc3RfY29sbGVjdHBhZHNfc3RvcCksIChnc3RfY29sbGVjdHBhZHNfcGVlayksCgkgIChnc3RfY29sbGVjdHBhZHNfcG9wKSwgKGdzdF9jb2xsZWN0cGFkc19hdmFpbGFibGUpLAoJICAoZ3N0X2NvbGxlY3RwYWRzX3JlYWQpLCAoZ3N0X2NvbGxlY3RwYWRzX2ZsdXNoKSwKCSAgKGdzdF9jb2xsZWN0cGFkc19jaGFpbik6CgkgICogZ3N0L2Jhc2UvZ3N0Y29sbGVjdHBhZHMuaDoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6IChnc3RfZmFrZXNpbmtfY2xhc3NfaW5pdCksCgkgIChnc3RfZmFrZXNpbmtfZ2V0X3RpbWVzKSwgKGdzdF9mYWtlc2lua19ldmVudCksCgkgIChnc3RfZmFrZXNpbmtfcHJlcm9sbCksIChnc3RfZmFrZXNpbmtfcmVuZGVyKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNpbmsuYzogKGdzdF9maWxlc2lua19jbGFzc19pbml0KSwKCSAgKGdzdF9maWxlc2lua19pbml0KSwgKGdzdF9maWxlc2lua19zZXRfbG9jYXRpb24pLAoJICAoZ3N0X2ZpbGVzaW5rX29wZW5fZmlsZSksIChnc3RfZmlsZXNpbmtfY2xvc2VfZmlsZSksCgkgIChnc3RfZmlsZXNpbmtfcGFkX3F1ZXJ5KSwgKGdzdF9maWxlc2lua19ldmVudCksCgkgIChnc3RfZmlsZXNpbmtfcmVuZGVyKSwgKGdzdF9maWxlc2lua19jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5oOgoJICBBZGRlZCBvYmplY3QgdG8gaGVscCBpbiBtYWtpbmcgY29sbGVjdCBwYWQgYmFzZWQgZWxlbWVudHMuCgkgIFBvcnRlZCBmaWxlc2luay4KCSAgTWFrZSBldmVudCBmdW5jdGlvbiBpbiBzaW5rIGJhc2VjbGFzcyByZXR1cm4gZ2Jvb2xlYW4uCgoyMDA1LTA1LTA1IDA5OjI4OjAxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogRml4IG5hbWUgbG9va3VwIGluIEdzdEJpbi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9zZW5kX2V2ZW50KSwgKGNvbXBhcmVfbmFtZSksCgkgIChnc3RfYmluX2dldF9ieV9uYW1lKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfZW50cnlfbmV3KSwgKGdzdF9jbG9ja19jbGFzc19pbml0KSwKCSAgKGdzdF9jbG9ja19maW5hbGl6ZSk6CgkgICogZ3N0L2dzdGRhdGEuYzogKGdzdF9kYXRhX3JlcGxhY2UpOgoJICAqIGdzdC9nc3RkYXRhLmg6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3JlcXVlc3RfcGFkKSwKCSAgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RvYmplY3QuYzogKGdzdF9vYmplY3RfaW5pdCksIChnc3Rfb2JqZWN0X3JlZiksCgkgIChnc3Rfb2JqZWN0X3VucmVmKToKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX3NldF9hY3RpdmUpLCAoZ3N0X3BhZF9wZWVyX3NldF9hY3RpdmUpLAoJICAoZ3N0X3BhZF9zZXRfY2hlY2tnZXRyYW5nZV9mdW5jdGlvbiksCgkgIChnc3RfcGFkX2xpbmtfY2hlY2tfY29tcGF0aWJsZV91bmxvY2tlZCksIChnc3RfcGFkX3NldF9jYXBzKSwKCSAgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksIChnc3RfcGFkX3B1bGxfcmFuZ2UpLAoJICAoZ3N0X3N0YXRpY19wYWRfdGVtcGxhdGVfZ2V0X2NhcHMpLCAoZ3N0X3BhZF9zdGFydF90YXNrKSwKCSAgKGdzdF9wYWRfcGF1c2VfdGFzayksIChnc3RfcGFkX3N0b3BfdGFzayk6CgkgICogZ3N0L2dzdHV0aWxzLmM6IChnc3RfZWxlbWVudF9nZXRfY29tcGF0aWJsZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X2VsZW1lbnRfcmVxdWVzdF9wYWQpLCAoZ3N0X3BhZF9wcm94eV9nZXRjYXBzKToKCSAgRml4IG5hbWUgbG9va3VwIGluIEdzdEJpbi4KCSAgQWRkZWQgX2RhdGFfcmVwbGFjZSgpIGZ1bmN0aW9uIGFuZCBfYnVmZmVyX3JlcGxhY2UoKQoJICBVc2UgZmluYWxpemUgbWV0aG9kIHRvIGNsZWFuIHVwIGNsb2NrLgoJICBGaXggcmVmY291bnRpbmcgb24gcmVxdWVzdCBwYWRzLgoJICBGaXggcGFkIHNjaGVkdWxlIG1vZGUgZXJyb3IuCgkgIFNvbWUgbW9yZSBvYmplY3QgcmVmY291bnRpbmcgZGVidWcgaW5mbywKCjIwMDUtMDUtMDQgMjE6Mjk6NDQgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIEdDQyA0IGZpeGVuLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNS0wNCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0YXRvbWljLnNnbWw6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RwbHVnaW4uc2dtbDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfc2V0X2RhdGFmbG93X2Z1bmNzKSwKCSAgKGdzdF9iYXNlc3JjX3F1ZXJ5KSwgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZXNyY19nZXRfcHJvcGVydHkpLCAoZ3N0X2Jhc2VzcmNfY2hlY2tfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlc3JjX2FjdGl2YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXRyYW5zZm9ybS5jOiAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGVsZW1lbnRzLmM6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Zha2VzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlc3JjX2dldF9wcm9wZXJ0eSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOiAoZ3N0X3RlZV9zaW5rX2FjdGl2YXRlKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6IChmaW5kX2VsZW1lbnRfZ2V0X2xlbmd0aCksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fc2F2ZV90aHlzZWxmKSwgKGdzdF9iaW5fcmVzdG9yZV90aHlzZWxmKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfZG9fc2ltcGxpZnkpLCAoZ3N0X2NhcHNfc2F2ZV90aHlzZWxmKSwKCSAgKGdzdF9jYXBzX2xvYWRfdGh5c2VsZik6CgkgICogZ3N0L2dzdGVsZW1lbnQuYzogKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpLAoJICAoZ3N0X2VsZW1lbnRfc2F2ZV90aHlzZWxmKSwgKGdzdF9lbGVtZW50X3Jlc3RvcmVfdGh5c2VsZik6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9sb2FkX2FuZF9saW5rKSwgKGdzdF9wYWRfc2F2ZV90aHlzZWxmKSwKCSAgKGdzdF9naG9zdF9wYWRfc2F2ZV90aHlzZWxmKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R4bWwuYzogKGdzdF94bWxfd3JpdGUpLCAoZ3N0X3htbF9wYXJzZV9kb2MpLAoJICAoZ3N0X3htbF9wYXJzZV9maWxlKSwgKGdzdF94bWxfcGFyc2VfbWVtb3J5KSwKCSAgKGdzdF94bWxfZ2V0X2VsZW1lbnQpLCAoZ3N0X3htbF9tYWtlX2VsZW1lbnQpOgoJICAqIGdzdC9pbmRleGVycy9nc3RmaWxlaW5kZXguYzogKGdzdF9maWxlX2luZGV4X2xvYWQpLAoJICAoX2ZpbGVfaW5kZXhfaWRfc2F2ZV94bWwpLCAoZ3N0X2ZpbGVfaW5kZXhfY29tbWl0KToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5jOiAocmVhZF9zdHJpbmcpLCAocmVhZF91aW50KSwKCSAgKHJlYWRfZW51bSksIChsb2FkX3BhZF90ZW1wbGF0ZSksIChsb2FkX2ZlYXR1cmUpLCAobG9hZF9wbHVnaW4pLAoJICAobG9hZF9wYXRocyk6CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL2RhdGFwcm90b2NvbC5jOiAoZ3N0X2RwX3BhY2tldF9mcm9tX2NhcHMpLAoJICAoZ3N0X2RwX3BhY2tldF9mcm9tX2V2ZW50KSwgKGdzdF9kcF9jYXBzX2Zyb21fcGFja2V0KToKCSAgKiB0b29scy9nc3QtY29tcGxldGUuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllc19pbmZvKToKCSAgKiB0b29scy9nc3QtbGF1bmNoLmM6ICh4bWxsYXVuY2hfcGFyc2VfY21kbGluZSk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfcHJvcGVydGllcyk6CgkgIEdDQyA0IGZpeGVuLgoKMjAwNS0wNS0wNCAxOTo0MTowNSArMDAwMCAgQ2hyaXN0aWFuIFNjaGFsbGVyIDx1cmFldXNAZ25vbWUub3JnPgoKCSogZ3N0cmVhbWVyLnNwZWMuaW46CgkgIGZpeCB1cCBzcGVjIGZpbGUgdG8gd29yayBmb3IgMC45IGJyYW5jaAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IHVwIHNwZWMgZmlsZSB0byB3b3JrIGZvciAwLjkgYnJhbmNoCgoyMDA1LTA1LTAzIDEyOjQ2OjQ3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGdzdC9nc3RwbHVnaW4uYzogYXBwbHkgcGF0Y2ggZnJvbSAjMTcyNTI2IHRvIG1ha2UgcmVnaXN0ZXIgd29yayBvbiBNYWNPU1gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBsdWdpbi5jOiAoZ3N0X3BsdWdpbl9jaGVja19tb2R1bGUpLAoJICAoZ3N0X3BsdWdpbl9jaGVja19maWxlKSwgKGdzdF9wbHVnaW5fbG9hZF9maWxlKToKCSAgYXBwbHkgcGF0Y2ggZnJvbSAjMTcyNTI2IHRvIG1ha2UgcmVnaXN0ZXIgd29yayBvbiBNYWNPU1gKCjIwMDUtMDUtMDIgMTY6NTA6MzEgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNS0wMiAxNTozMTozNiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBDaGFuZ2VMb2c6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvY2FjaGUxLmM6CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvaW5kZXhlcnMvaW5kZXhkdW1wLmM6CgkqIHRlc3RzdWl0ZS9pbmRleGVycy9jYWNoZTEuYzoKCSogdGVzdHN1aXRlL2luZGV4ZXJzL2luZGV4ZHVtcC5jOgoJICBtb3JlIHByaW50IGZvcm1hdCBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgbW9yZSBwcmludCBmb3JtYXQgZml4ZXMKCjIwMDUtMDUtMDIgMTU6MjA6MzAgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvZ3N0Y29uZmlnLmguaW46CgkqIHRlc3RzL29sZC90ZXN0c3VpdGUvZGVidWcvcHJpbnRmX2V4dGVuc2lvbi5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL2VsZW1lbnRzL3Byb3BlcnR5Lmg6CgkqIHRlc3RzdWl0ZS9kZWJ1Zy9wcmludGZfZXh0ZW5zaW9uLmM6CgkqIHRlc3RzdWl0ZS9lbGVtZW50cy9wcm9wZXJ0eS5oOgoJICBtZXJnZXMgZnJvbSAwLjggZm9yIDY0IGJpdCBpc3N1ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIG1lcmdlcyBmcm9tIDAuOCBmb3IgNjQgYml0IGlzc3VlcwoKMjAwNS0wNS0wMiAxMzo1NToyMSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEFkZGVkIGRyYWZ0IGZvciBuZXcgcXVlcnkgQVBJLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL2RyYWZ0LXF1ZXJ5LnR4dDoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19nZXRfcmFuZ2VfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2VzcmNfc3RhcnQpOgoJICBBZGRlZCBkcmFmdCBmb3IgbmV3IHF1ZXJ5IEFQSS4KCSAgQWRkZWQgZHJhZnQgZm9yIGJldHRlciBzZWxlY3Rpbmcgc2NoZWR1bGluZyBtZXRob2RzLgoJICBNYWtlIGJhc2VzcmMgaWdub3JlIGxlbmd0aCBpZiB0aGUgc3ViY2xhc3MgZG9lcyBub3Qgc3VwcG9ydAoJICBpdC4KCjIwMDUtMDUtMDIgMTE6NTQ6MzIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvTWFrZWZpbGUuYW06CgkgIGF1dG9tYWtlIDEuNSBmaXhlcwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgYXV0b21ha2UgMS41IGZpeGVzCgoyMDA1LTA1LTAyIDExOjQ3OjE3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogZG9jcy9mYXEvTWFrZWZpbGUuYW06CgkqIGRvY3MvbWFudWFsL01ha2VmaWxlLmFtOgoJKiBkb2NzL21hbnVhbHMubWFrOgoJKiBkb2NzL3B3Zy9NYWtlZmlsZS5hbToKCSogZ3N0L01ha2VmaWxlLmFtOgoJICBwb3NzaWJsZSBmaXhlcyBmb3IgYXV0b21ha2UtMS41CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBwb3NzaWJsZSBmaXhlcyBmb3IgYXV0b21ha2UtMS41CgoyMDA1LTA0LTI4IDE2OjI4OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQmV0dGVyIGRlYnVnZ2luZyBvZiBjbG9ja2luZyBpbmZvLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2RvX3N5bmMpOgoJICAqIGdzdC9nc3RjbG9jay5jOiAoZ3N0X2Nsb2NrX2VudHJ5X25ldyk6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfZGlzY29udF9nZXRfdmFsdWUpOgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAocGlwZWxpbmVfYnVzX2hhbmRsZXIpLAoJICAoZ3N0X3BpcGVsaW5lX2NoYW5nZV9zdGF0ZSk6CgkgICogZ3N0L2dzdHN5c3RlbWNsb2NrLmM6IChnc3Rfc3lzdGVtX2Nsb2NrX2lkX3dhaXRfdW5sb2NrZWQpOgoJICBCZXR0ZXIgZGVidWdnaW5nIG9mIGNsb2NraW5nIGluZm8uCgkgIEFsbG93IE5VTEwgdmFsdWVzIHdoZW4gZ2V0dGluZyBkaXNjb250IHZhbHVlcy4KCjIwMDUtMDQtMjcgMTQ6MTk6NDYgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay9nc3QvOiBJbmNyZWFzZSB0aW1lb3V0IGZvciBjaGVja3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zdWl0ZSk6CgkgIEluY3JlYXNlIHRpbWVvdXQgZm9yIGNoZWNrcy4KCjIwMDUtMDQtMjcgMTM6NTI6NDIgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgY2hlY2svTWFrZWZpbGUuYW06IGZpeCB0aGUgYnJva2VuIHJ1bGUgZm9yIGNsZWFudXAuICBBcHBhcmVudGx5IHRoaXMgcnVsZSBpcyBvbmx5IG5lZWRlZCBvbiBGQzIsIHNvIG1heWJlIHRoaXMgd2FycmFuLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL01ha2VmaWxlLmFtOgoJICBmaXggdGhlIGJyb2tlbiBydWxlIGZvciBjbGVhbnVwLiAgQXBwYXJlbnRseSB0aGlzIHJ1bGUgaXMKCSAgb25seSBuZWVkZWQgb24gRkMyLCBzbyBtYXliZSB0aGlzIHdhcnJhbnRzIGZ1cnRoZXIgYXV0b3Rvb2wKCSAgaW5zcGVjdGlvbi4KCjIwMDUtMDQtMjYgMTg6MDc6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0dHJhc2hzdGFjay5oOiBPb29oaC4gYSBuYXN0eSBvbmUhIEFmdGVyIGhhdmluZyBhIGZhaWxlZCBwb3AoKSBmcm9tIHRoZSBzdGFjaywgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBzdGFjayBpcyAuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSAgT29vaGguIGEgbmFzdHkgb25lISBBZnRlciBoYXZpbmcgYSBmYWlsZWQgcG9wKCkgZnJvbSB0aGUgc3RhY2ssCgkgIGl0J3MgcG9zc2libGUgdGhhdCB0aGUgc3RhY2sgaXMgZW1wdHkuIEluIHRoYXQgY2FzZSwgZG9uJ3QKCSAgZm9sbG93IHRoZSBOVUxMIHBvaW50ZXIuCgoyMDA1LTA0LTI1IDEzOjAwOjQ3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogUmVtb3ZlIGdzdF9saWJyYXJ5X2xvYWQgYXMgaXQgZG9lcyBtb3JlIGhhcm0gdGhhbiBnb29kIHdpdGggdGhlIG5ldyBnX21vZHVsZSBmbGFncy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLAoJICAoZ3N0X3BhZF9saW5rX2NoZWNrX2NvbXBhdGlibGVfdW5sb2NrZWQpLCAoZ3N0X3BhZF9saW5rX3ByZXBhcmUpLAoJICAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwgKGdzdF9wYWRfcHVsbF9yYW5nZSksCgkgIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksIChnc3RfcGFkX3N0YXJ0X3Rhc2spLAoJICAoZ3N0X3BhZF9wYXVzZV90YXNrKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0cGx1Z2luLmM6IChnc3RfcGx1Z2luX2xvYWQpOgoJICAqIGdzdC9nc3RwbHVnaW4uaDoKCSAgUmVtb3ZlIGdzdF9saWJyYXJ5X2xvYWQgYXMgaXQgZG9lcyBtb3JlIGhhcm0gdGhhbiBnb29kIHdpdGgKCSAgdGhlIG5ldyBnX21vZHVsZSBmbGFncy4KCSAgUmV2ZXJ0IGJvZ3VzIGNhcHMgdGVtcGxhdGUgY2hlY2sgaW4gcGFkIGxpbmtpbmcsIHBhZCBjYXBzCgkgIGFyZSBpbXBvcnRhbnQgd2hlbiBsaW5raW5nIG5vdCB0aGUgdGVtcGxhdGUsIHdoaWNoIGlzIG1vcmUKCSAgZ2VuZXJhbCB0aGFuIHRoZSBjdXJyZW50IGNhcHMuCgoyMDA1LTA0LTI1IDExOjUxOjA5ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIHRlc3RzL01ha2VmaWxlLmFtOgoJICB0aGVyZSBpcyBubyBzcGVlZC4gIHJlYWxseS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHRoZXJlIGlzIG5vIHNwZWVkLiAgcmVhbGx5LgoKMjAwNS0wNC0yNSAwOTo1MTowNiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2F1dG9wbHVnLzogRGllLCBzcGlkZXIsIGRpZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2F1dG9wbHVnLy5jdnNpZ25vcmU6CgkgICogZ3N0L2F1dG9wbHVnL01ha2VmaWxlLmFtOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzZWFyY2hmdW5jcy5jOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzZWFyY2hmdW5jcy5oOgoJICAqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXIuYzoKCSAgKiBnc3QvYXV0b3BsdWcvZ3N0c3BpZGVyLmg6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlcmlkZW50aXR5LmM6CgkgICogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlcmlkZW50aXR5Lmg6CgkgICogZ3N0L2F1dG9wbHVnL3NwaWRlcnRlc3QuYzoKCSAgRGllLCBzcGlkZXIsIGRpZS4KCjIwMDUtMDQtMjUgMDk6NDU6MzUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvZ3N0cGFkLio6IEFkZGVkIHN0dWJzIGZvciB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9zZXRfYWN0aXZlKSwgKGdzdF9wYWRfcGVlcl9zZXRfYWN0aXZlKSwKCSAgKGdzdF9wYWRfc2V0X2NoZWNrZ2V0cmFuZ2VfZnVuY3Rpb24pLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2FwcyksCgkgIChnc3RfcGFkX3N0YXJ0X3Rhc2spLCAoZ3N0X3BhZF9wYXVzZV90YXNrKSwgKGdzdF9wYWRfc3RvcF90YXNrKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEFkZGVkIHN0dWJzIGZvciB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4KCjIwMDUtMDQtMjUgMDM6NTQ6MjggKzAwMDAgIEphbiBTY2htaWR0IDx0aGF5dGFuQG1hZC5zY2llbnRpc3QuY29tPgoKCSAgZmlsZSBweXRob24tZWxlbWVudHMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBweXRob24tZWxlbWVudHMudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0yNCAyMzo1MzowNiArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGFkLmg6IERpc2FibGUgc29tZSB1bmltcGxlbWVudGVkIGZ1bmN0aW9ucy4gIFdpbSwgcGxlYXNlIGZpeC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5oOiBEaXNhYmxlIHNvbWUgdW5pbXBsZW1lbnRlZCBmdW5jdGlvbnMuICBXaW0sCgkgIHBsZWFzZSBmaXguCgoyMDA1LTA0LTI0IDIyOjQ5OjQ1ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIENvbnZlcnQgZXZlcnl0aGluZyBmcm9tIEdzdEF0b21pY0ludCB0byBnX2F0b21pY19pbnRfKiwgYW5kIHJlbW92ZSBnc3RhdG9taWMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBDb252ZXJ0IGV2ZXJ5dGhpbmcgZnJvbSBHc3RBdG9taWNJbnQgdG8gZ19hdG9taWNfaW50XyosIGFuZAoJICByZW1vdmUgZ3N0YXRvbWljLgoJICAqIGdzdC9NYWtlZmlsZS5hbToKCSAgKiBnc3QvZ3N0YXRvbWljLmM6CgkgICogZ3N0L2dzdGF0b21pYy5oOgoJICAqIGdzdC9nc3RhdG9taWNfaW1wbC5oOgoJICAqIGdzdC9nc3RidWZmZXIuYzoKCSAgKiBnc3QvZ3N0Y2Fwcy5jOgoJICAqIGdzdC9nc3RjYXBzLmg6CgkgICogZ3N0L2dzdGNsb2NrLmM6CgkgICogZ3N0L2dzdGNsb2NrLmg6CgkgICogZ3N0L2dzdGRhdGEuYzoKCSAgKiBnc3QvZ3N0ZGF0YS5oOgoJICAqIGdzdC9nc3RkYXRhX3ByaXZhdGUuaDoKCSAgKiBnc3QvZ3N0ZXZlbnQuYzoKCSAgKiBnc3QvZ3N0aW5mby5jOgoJICAqIGdzdC9nc3RpbmZvLmg6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgKiBnc3QvZ3N0b2JqZWN0LmM6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICAqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSAgKiBnc3QvZ3N0c3RydWN0dXJlLmg6CgkgICogZ3N0L2dzdHV0aWxzLmM6IEFkZCBnc3RfYXRvbWljX2ludF9zZXQoKSBjb21wYWl0aWJpbGl0eSBmdW5jdGlvbi4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCjIwMDUtMDQtMjQgMjI6NDQ6MTMgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgY2hlY2svZ3N0L2dzdHBhZC5jOiBPaCB5ZWFoLCBpdCdzIGFsd2F5cyBuaWNlIHRvIG1ha2UgdGhlIHJlZ3Jlc3Npb25zIHRlc3RzIHdvcmsuICBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgbm8gbG9uZ2VyLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RwYWQuYzogKFNUQVJUX1RFU1QpOiBPaCB5ZWFoLCBpdCdzIGFsd2F5cyBuaWNlIHRvCgkgIG1ha2UgdGhlIHJlZ3Jlc3Npb25zIHRlc3RzIHdvcmsuICBSZW1vdmUgc29tZSBjb2RlIHRoYXQgaXMgbm8KCSAgbG9uZ2VyIHRydWUuCgkgICogZ3N0L2dzdHBhZC5jOiAoZ3N0X3BhZF9saW5rX2NoZWNrX3RlbXBsYXRlc19jb21wYXRpYmxlX3VubG9ja2VkKToKCSAgRGlzYWJsZSB3YXJuaW5nIGZvciBwYWRzIHdpdGhvdXQgdGVtcGxhdGVzLgoKMjAwNS0wNC0yNCAyMToxNjo0NSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvZ3N0cGFkLmM6IFJlbW92ZSBoYW5kbGluZyBvZiBmaWx0ZXJlZCBjYXBzLiAgRml4L21lcmdlIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBmaWx0ZXJlZCBsaW5rcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBhZC5jOiBSZW1vdmUgaGFuZGxpbmcgb2YgZmlsdGVyZWQgY2Fwcy4gIEZpeC9tZXJnZQoJICBmdW5jdGlvbnMgdGhhdCBoYW5kbGUgZmlsdGVyZWQgbGlua3MuCgkgICogZ3N0L2dzdHBhZC5oOiBSZW1vdmUgJ2FwcGZpbHRlcicgZmllbGQgYW5kIHByb3RvdHlwZXMgb2YKCSAgcmVtb3ZlZCBmdW5jdGlvbnMuCgkgICogZ3N0L2dzdHV0aWxzLmM6IEZpeC9yZW1vdmUgdXRpbGl0eSBmdW5jdGlvbnMgdGhhdCBoYW5kbGUKCSAgZmlsdGVyZWQgY2Fwcy4KCSAgKiBnc3QvZ3N0dXRpbHMuaDoKCSAgKiBnc3QvZ3N0dmFsdWUuYzogQWRkIHNlcmlhbGl6YXRpb24vZGVzZXJpYWxpemF0aW9uIG9mIGNhcHMKCSAgKiBnc3QvcGFyc2UvZ3JhbW1hci55OiBJZ25vcmUgZmlsdGVyZWQgY2FwcyB3aGVuIGxpbmtpbmcuICBUaGlzCgkgIHJlcXVpcmVzIGZpeGluZyBzbyB0aGF0IHRoZSBmaWx0ZXIgY2FwcyBub3RhdGlvbiBjcmVhdGVzCgkgIGEgY2Fwc2ZpbHRlciBlbGVtZW50IGFuZCBzZXRzIHRoZSBmaWx0ZXJfY2FwcyBwcm9wZXJ0eS4gIEkKCSAgdGhpbmsgZXZlcnlvbmUgcHJvYmFibHkgd2FudHMgdG8ga2VlcCB0aGUgc2hvcnRoYW5kIG5vdGF0aW9uLgoJICAqIGRvY3MvZ3N0L3RtcGwvZ3N0ZWxlbWVudC5zZ21sOiB1cGRhdGVzIGZvciBBUEkgY2hhbmdlcy4KCSAgKiBkb2NzL2dzdC90bXBsL2dzdHBhZC5zZ21sOgoJICAqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOiBSZWdpc3RlciBjYXBzZmlsdGVyIGVsZW1lbnQuCgkgICogZ3N0L01ha2VmaWxlLmFtOiBmaXggc3BhY2luZwoJICAqIGRvY3MvcmFuZG9tL2RzLzAuOS1zdWdnZXN0ZWQtY2hhbmdlczogcmFuZG9tCgoyMDA1LTA0LTIzIDIzOjI5OjQ3ICswMDAwICBEYXZpZCBTY2hsZWVmIDxkc0BzY2hsZWVmLm9yZz4KCgkgIGdzdC9lbGVtZW50cy86IE5ldyBlbGVtZW50IHRoYXQgYWN0cyBsaWtlIGFuIGlkZW50aXR5LCBidXQgZmlsdGVycyBjYXBzLiAgV2lsbCBldmVudHVhbGx5IHJlcGxhY2UgZmlsdGVyZWQgY2FwcyBpbiBwYS4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL2dzdGNhcHNmaWx0ZXIuYzogTmV3IGVsZW1lbnQgdGhhdCBhY3RzIGxpa2UgYW4KCSAgaWRlbnRpdHksIGJ1dCBmaWx0ZXJzIGNhcHMuICBXaWxsIGV2ZW50dWFsbHkgcmVwbGFjZSBmaWx0ZXJlZAoJICBjYXBzIGluIHBhZCBsaW5raW5nLgoJICAqIGdzdC9nc3R1dGlscy5jOiAoZ3N0X2VsZW1lbnRfY3JlYXRlX2FsbF9wYWRzKTogTmV3IGZ1bmN0aW9uCgkgIHRvIGNyZWF0ZSBhbGwgdGhlIEFMV0FZUyBwYWRzIHRoYXQgYXJlIHJlZ2lzdGVyZWQgd2l0aCBhbgoJICBlbGVtZW50IGNsYXNzLiAgVGhpcyBmdW5jdGlvbmFsaXR5IHNob3VsZCBldmVudHVhbGx5IGJlCgkgIG1lcmdlZCBpbiB3aXRoIEdzdEVsZW1lbnQgaW5pdGlhbGl6YXRpb24uCgkgICogZ3N0L2dzdHV0aWxzLmg6CgkgICogdGVzdHN1aXRlL3RyaWdnZXIvUkVBRE1FOiBwYXJ0IG9mIHRyaWdnZXIgdGVzdCBjb2RlIHRoYXQgc2hvdWxkCgkgIGhhdmUgYmVlbiBjaGVja2VkIGluIGEgbG9uZyB0aW1lIGFnby4KCjIwMDUtMDQtMjMgMjM6MjU6MDggKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L01ha2VmaWxlLmFtOiBSZW1vdmUgYXMtbGlidG9vbCBzdHVmZi4gIEl0J3MgbGlrZWx5IG5vdCBhbmQgaGFyZCB0byBjYXJyeSBhcm91bmQuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9NYWtlZmlsZS5hbTogUmVtb3ZlIGFzLWxpYnRvb2wgc3R1ZmYuICBJdCdzIGxpa2VseSBub3QKCSAgbmVlZGVkIHdpdGggbmV3IHZlcnNpb25zIG9mIGxpYnRvb2wgKG5vYm9keSB3aWxsIGNvbmZpcm0gdGhpcyksCgkgIGFuZCBoYXJkIHRvIGNhcnJ5IGFyb3VuZC4KCSAgKiBnc3QvYXV0b3BsdWcvTWFrZWZpbGUuYW06CgkgICogZ3N0L2Jhc2UvTWFrZWZpbGUuYW06CgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9pbmRleGVycy9NYWtlZmlsZS5hbToKCSAgKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9ieXRlc3RyZWFtL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2NvbnRyb2wvTWFrZWZpbGUuYW06CgkgICogbGlicy9nc3QvZGF0YXByb3RvY29sL01ha2VmaWxlLmFtOgoJICAqIGxpYnMvZ3N0L2dldGJpdHMvTWFrZWZpbGUuYW06CgoyMDA1LTA0LTIxIDE3OjEwOjA5ICswMDAwICBTdGVmYW4gS29zdCA8ZW5zb25pY0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJICBmaWxlIE1ha2VmaWxlLmFtIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZmlsZSBNYWtlZmlsZS5hbSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCjIwMDUtMDQtMjEgMDk6Mzc6MzQgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBkb2NzL2Rlc2lnbi86IFNvbWUgbW9yZSBkb2NzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9kcmFmdC1wdXNoLXB1bGwudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtTVQtcmVmY291bnRpbmcudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtVE9ETy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jYXBzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RidXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0cGlwZWxpbmUudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtbWVzc2FnZXMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtcHVzaC1wdWxsLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LXF1ZXJ5LnR4dDoKCSAgU29tZSBtb3JlIGRvY3MuCgoyMDA1LTA0LTIxIDA5OjMzOjMxICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogVXNlIHBhcmVudCByZWZjb3VudCBpbiBHc3RNZXNzYWdlIHRvIGVuc3VyZSBHc3RTdHJ1Y3R1cmUgY29uc2lzdGVuY3kuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChfZ3N0X21lc3NhZ2VfY29weSksIChfZ3N0X21lc3NhZ2VfZnJlZSksCgkgIChnc3RfbWVzc2FnZV9uZXcpLCAoZ3N0X21lc3NhZ2VfbmV3X2Vycm9yKSwKCSAgKGdzdF9tZXNzYWdlX25ld193YXJuaW5nKSwgKGdzdF9tZXNzYWdlX25ld190YWcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpLCAoZ3N0X21lc3NhZ2VfbmV3X2FwcGxpY2F0aW9uKSwKCSAgKGdzdF9tZXNzYWdlX2dldF9zdHJ1Y3R1cmUpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmg6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfcGFyZW50X3JlZmNvdW50KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfY29weV9jb25kaXRpb25hbCk6CgkgIFVzZSBwYXJlbnQgcmVmY291bnQgaW4gR3N0TWVzc2FnZSB0byBlbnN1cmUgR3N0U3RydWN0dXJlCgkgIGNvbnNpc3RlbmN5LgoJICBDbGVhbmVkIHVwIGhlYWRlcnMgYSBiaXQuCgoyMDA1LTA0LTIwIDA5OjEwOjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTWFrZSBnc3RfY2Fwc19yZXBsYWNlKCkgd29yayBsaWtlIG90aGVyIF9yZXBsYWNlKCkgZnVuY3Rpb25zLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2Jhc2VfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2dldGNhcHMpLCAoZ3N0X2Jhc2VzaW5rX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX2NoYWluX3VubG9ja2VkKToKCSAgKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOiAoaGVscGVyX2ZpbmRfc3VnZ2VzdCksCgkgIChnc3RfdHlwZV9maW5kX2hlbHBlcik6CgkgICogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2hhdmVfdHlwZSksIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfaW5pdCksCgkgIChzdG9wX3R5cGVmaW5kaW5nKSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYW5kbGVfZXZlbnQpLAoJICAoZmluZF9zdWdnZXN0KSwgKGdzdF90eXBlX2ZpbmRfZWxlbWVudF9jaGFpbiksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfY2hlY2tnZXRyYW5nZSksCgkgIChnc3RfdHlwZV9maW5kX2VsZW1lbnRfZ2V0cmFuZ2UpLCAoZG9fdHlwZWZpbmQpLAoJICAoZ3N0X3R5cGVfZmluZF9lbGVtZW50X2FjdGl2YXRlKToKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6IChfZ3N0X2J1ZmZlcl9zdWJfZnJlZSksCgkgIChnc3RfYnVmZmVyX2RlZmF1bHRfZnJlZSksIChnc3RfYnVmZmVyX2RlZmF1bHRfY29weSksCgkgIChnc3RfYnVmZmVyX3NldF9jYXBzKToKCSAgKiBnc3QvZ3N0Y2Fwcy5jOiAoZ3N0X2NhcHNfcmVmKSwgKGdzdF9jYXBzX3VucmVmKSwKCSAgKGdzdF9jYXBzX3JlcGxhY2UpOgoJICAqIGdzdC9nc3RtZXNzYWdlLmM6IChnc3RfbWVzc2FnZV9uZXcpLAoJICAoZ3N0X21lc3NhZ2VfbmV3X3N0YXRlX2NoYW5nZWQpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwKCSAgKGdzdF9wYWRfbGlua19wcmVwYXJlX2ZpbHRlcmVkKSwgKGdzdF9wYWRfcmVsaW5rX2ZpbHRlcmVkKSwKCSAgKGdzdF9wYWRfc2V0X2NhcHMpLCAoZ3N0X3BhZF9jaGVja19wdWxsX3JhbmdlKSwKCSAgKGdzdF9wYWRfcHVsbF9yYW5nZSksIChnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9nZXRfY2Fwcyk6CgkgICogZ3N0L2dzdHBhZC5oOgoJICAqIGdzdC9nc3R0eXBlZmluZC5jOiAoZ3N0X3R5cGVfZmluZF9yZWdpc3Rlcik6CgkgIE1ha2UgZ3N0X2NhcHNfcmVwbGFjZSgpIHdvcmsgbGlrZSBvdGhlciBfcmVwbGFjZSgpIGZ1bmN0aW9ucy4KCSAgVXNlIF9jYXBzX3JlcGxhY2UoKSB3aGVyZSBwb3NzaWJsZS4KCSAgTWFrZSBzdXJlIF9tZXNzYWdlX25ldygpIGluaXRpYWxpc2VzIGl0cyBmaWVsZC4KCSAgQWRkIGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldF9jYXBzKCkKCjIwMDUtMDQtMTggMDg6NTM6MDIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IHMvQVJHXy9QUk9QXy8uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTA0LTE4ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6IHMvQVJHXy9QUk9QXy8uCgoyMDA1LTA0LTE4IDA4OjI0OjMwICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzoKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc3JjLmM6CgkgIGdzdC9iYXNlL2dzdGJhc2VzcmMuYyAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KQoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wNC0xOCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmMgKGdzdF9iYXNlc3JjX3NldF9wcm9wZXJ0eSkKCSAgKGdzdF9iYXNlc3JjX2dldF9wcm9wZXJ0eSk6IEJMT0NLU0laRSBpcyBhIFVMT05HLiBSZW5hbWUgQVJHXy4uLgoJICB0byBQUk9QXy4uLi4KCjIwMDUtMDQtMTYgMjA6Mjc6NTUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogTkVXUzoKCSogdGVzdHMvTWFrZWZpbGUuYW06CgkgIE5FV1MgYnVpbGQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIE5FV1MgYnVpbGQKCjIwMDUtMDQtMTYgMjA6MTY6MzggKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSAgcmVtb3ZlZCBzb21lIGxpbmUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHJlbW92ZWQgc29tZSBsaW5lCgoyMDA1LTA0LTE2IDE2OjI4OjA3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDoKCSAgYWRkIGdzdC1wbHVnaW5zLWJhc2UgdG8gcGtnY29uZmlnIHBhdGgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBnc3QtcGx1Z2lucy1iYXNlIHRvIHBrZ2NvbmZpZyBwYXRoCgoyMDA1LTA0LTE0IDE3OjE3OjMwICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL2ZhcS91c2luZy54bWw6IEFkZCBub3RlIG9uIGdzdHJlYW1lci1wcm9wZXJ0aWVzICgjMTU0OTk2KS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvdXNpbmcueG1sOgoJICBBZGQgbm90ZSBvbiBnc3RyZWFtZXItcHJvcGVydGllcyAoIzE1NDk5NikuCgoyMDA1LTA0LTEzIDE3OjQxOjI5ICswMDAwICBSb25hbGQgUy4gQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CgoJICBkb2NzL3JhbmRvbS9iYmIvb3B0aW9uYWwtcHJvcGVydGllczogU29tZSBhbmFseXNpcyBvbiBvcHRpb25hbCBwcm9wZXJ0aWVzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL3JhbmRvbS9iYmIvb3B0aW9uYWwtcHJvcGVydGllczoKCSAgU29tZSBhbmFseXNpcyBvbiBvcHRpb25hbCBwcm9wZXJ0aWVzLgoKMjAwNS0wNC0xMiAxNTowMDozMCArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgVXNlIGxpYnhtbDIgZm9yIHJlZ2lzdHJ5IHBhcnNpbmcsIHVzZSBzdGF0aWNwYWR0ZW1wbGF0ZXMgaW4gZWxlbWVudGZhY3Rvcmllcy4gTWFrZXMgZ3N0X2luaXQoKSArLy0gMTB4IGZhc3Rlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9nc3QvdG1wbC9nc3RlbGVtZW50ZmFjdG9yeS5zZ21sOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGVsZW1lbnRmYWN0b3J5LmM6IChnc3RfZWxlbWVudF9mYWN0b3J5X2luaXQpLAoJICAoZ3N0X2VsZW1lbnRfZmFjdG9yeV9jbGVhbnVwKSwgKGdzdF9lbGVtZW50X3JlZ2lzdGVyKSwKCSAgKF9fZ3N0X2VsZW1lbnRfZmFjdG9yeV9hZGRfc3RhdGljX3BhZF90ZW1wbGF0ZSksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2dldF9zdGF0aWNfcGFkX3RlbXBsYXRlcyksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9zcmNfY2FwcyksCgkgIChnc3RfZWxlbWVudF9mYWN0b3J5X2Nhbl9zaW5rX2NhcHMpOgoJICAqIGdzdC9yZWdpc3RyaWVzL01ha2VmaWxlLmFtOgoJICAqIGdzdC9yZWdpc3RyaWVzL2dzdGxpYnhtbHJlZ2lzdHJ5LmM6IChnc3RfeG1sX3JlZ2lzdHJ5X2dldF90eXBlKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfY2xhc3NfaW5pdCksIChnc3RfeG1sX3JlZ2lzdHJ5X2luaXQpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9uZXcpLCAoZ3N0X3htbF9yZWdpc3RyeV9zZXRfcHJvcGVydHkpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfcHJvcGVydHkpLCAoZ2V0X3RpbWUpLCAobWFrZV9kaXIpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9nZXRfcGVybXNfZnVuYyksCgkgIChwbHVnaW5fdGltZXNfb2xkZXJfdGhhbl9yZWN1cnNlKSwgKHBsdWdpbl90aW1lc19vbGRlcl90aGFuKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfb3Blbl9mdW5jKSwgKGdzdF94bWxfcmVnaXN0cnlfbG9hZF9mdW5jKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9mdW5jKSwgKGdzdF94bWxfcmVnaXN0cnlfY2xvc2VfZnVuYyksCgkgIChhZGRfdG9fY2hhcl9hcnJheSksIChyZWFkX3N0cmluZyksIChyZWFkX3VpbnQpLCAocmVhZF9lbnVtKSwKCSAgKGxvYWRfcGFkX3RlbXBsYXRlKSwgKGxvYWRfZmVhdHVyZSksIChsb2FkX3BsdWdpbiksIChsb2FkX3BhdGhzKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfbG9hZCksIChnc3RfeG1sX3JlZ2lzdHJ5X2xvYWRfcGx1Z2luKSwKCSAgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9jYXBzKSwgKGdzdF94bWxfcmVnaXN0cnlfc2F2ZV9wYWRfdGVtcGxhdGUpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX2ZlYXR1cmUpLCAoZ3N0X3htbF9yZWdpc3RyeV9zYXZlX3BsdWdpbiksCgkgIChnc3RfeG1sX3JlZ2lzdHJ5X3NhdmUpLCAoZ3N0X3htbF9yZWdpc3RyeV9yZWJ1aWxkX3JlY3Vyc2UpLAoJICAoZ3N0X3htbF9yZWdpc3RyeV9yZWJ1aWxkKToKCSAgKiBnc3QvcmVnaXN0cmllcy9nc3RsaWJ4bWxyZWdpc3RyeS5oOgoJICAqIHRvb2xzL2dzdC1jb21wcHJlcC5jOiAobWFpbik6CgkgICogdG9vbHMvZ3N0LWluc3BlY3QuYzogKHByaW50X3BhZF90ZW1wbGF0ZXNfaW5mbyk6CgkgICogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzogKHByaW50X2VsZW1lbnRfaW5mbyk6CgkgIFVzZSBsaWJ4bWwyIGZvciByZWdpc3RyeSBwYXJzaW5nLCB1c2Ugc3RhdGljcGFkdGVtcGxhdGVzIGluCgkgIGVsZW1lbnRmYWN0b3JpZXMuIE1ha2VzIGdzdF9pbml0KCkgKy8tIDEweCBmYXN0ZXIuCgoyMDA1LTA0LTEyIDEwOjUyOjU1ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzoKCSogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5jOgoJKiBnc3QvYmFzZS9nc3R0eXBlZmluZGhlbHBlci5oOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdGZpbGVzcmMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmM6CgkqIGxpYnMvZ3N0L2Jhc2UvZ3N0dHlwZWZpbmRoZWxwZXIuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9NYWtlZmlsZS5hbToKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RlbGVtZW50cy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50Lmg6CgkgIEFkZGVkIHR5cGVmaW5kIGhlbHBlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIHR5cGVmaW5kIGhlbHBlci4KCSAgU21hbGwgcHJlcm9sbCBmaXggaW4gdGhlIGJhc2Ugc2luay4KCSAgRGlzYWJsZSB0eXBlZmluZCBjb2RlIGluIGJhc2VzcmMuCgkgIENydWRlIHBvcnQgb2YgdHlwZWZpbmRlbGVtZW50LgoJICBGYWtlc3JjIGNsZWFudXBzLgoKMjAwNS0wNC0xMiAwOToxNjowMCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIGNoZWNrL2dzdC9nc3RkYXRhLmM6CgkqIHRlc3RzL2NoZWNrL2dzdC9nc3RkYXRhLmM6CgkgIEluY3JlYXNlIHRpbWVvdXQgc29tZSBtb3JlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBJbmNyZWFzZSB0aW1lb3V0IHNvbWUgbW9yZQoKMjAwNS0wNC0xMSAxMjowMjoxMyArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBjaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkgIG9ubHkgZGlycwoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgb25seSBkaXJzCgoyMDA1LTA0LTExIDExOjQwOjExICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSAgZml4IGRpc3RjaGVjawoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgZml4IGRpc3RjaGVjawoKMjAwNS0wNC0xMSAxMToyNDo1MyArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIGNoZWNrLzogRml4IHVwIHRoZSB0aW1lb3V0IHNvIHRoYXQgdGhlIHRlc3QgZG9lcyBub3QgZmFpbC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svZ3N0L2dzdGJ1cy5jOiAoZ3N0YnVzX3N1aXRlKToKCSAgKiBjaGVjay9nc3QvZ3N0ZGF0YS5jOiAodGhyZWFkX3JlZiksIChnc3RfZGF0YV9zdWl0ZSk6CgkgICogY2hlY2svZ3N0Y2hlY2suaDoKCSAgRml4IHVwIHRoZSB0aW1lb3V0IHNvIHRoYXQgdGhlIHRlc3QgZG9lcyBub3QgZmFpbC4KCjIwMDUtMDQtMTEgMDk6NTM6NDQgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbToKCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtOgoJICBkaXN0IHRyaWdnZXIKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc3QgdHJpZ2dlcgoKMjAwNS0wNC0xMCAyMTo0MjozMiArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJICB3b3JrIHdpdGggZGVidWcgZGlzYWJsZWQKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoKMjAwNS0wNC0xMCAyMDoyOTo0NCArMDAwMCAgVGhvbWFzIFZhbmRlciBTdGljaGVsZSA8dGhvbWFzQGFwZXN0YWFydC5vcmc+CgoJKiBnc3QvZ3N0b2JqZWN0LmM6CgkgIHdvcmsgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgd29yayB3aXRoIGRlYnVnIGRpc2FibGVkCgoyMDA1LTA0LTEwIDE4OjE5OjE4ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGF1dG9nZW4uc2g6CgkgIGlnbm9yZSBhbHJlYWR5IGFwcGxpZWQgcGF0Y2gKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGlnbm9yZSBhbHJlYWR5IGFwcGxpZWQgcGF0Y2gKCjIwMDUtMDQtMDggMTE6MzQ6MTQgKzAwMDAgIFN0ZWZhbiBLb3N0IDxlbnNvbmljQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkgIGZpbGUgZ3N0cGFyZW50LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBmaWxlIGdzdHBhcmVudC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEJSQU5DSC1HU1RSRUFNRVItMF84LgoKMjAwNS0wNC0wOCAxMTozNDoxNCArMDAwMCAgU3RlZmFuIEtvc3QgPGVuc29uaWNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSAgZmlsZSBnc3RwYXJlbnQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBCUkFOQ0gtR1NUUkVBTUVSLTBfOC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGZpbGUgZ3N0cGFyZW50Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQlJBTkNILUdTVFJFQU1FUi0wXzguCgoyMDA1LTA0LTA2IDE3OjMwOjQ4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogTW9yZSB3b3JrIG9uIHRoZSBnZW5lcmljIHNvdXJjZSBiYXNlIGNsYXNzLCBpbXBsZW1lbnQgc2Vla2luZywgcXVlcnkuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmM6IChnc3RfYmFzZXNyY19nZXRfdHlwZSksCgkgIChnc3RfYmFzZXNyY19pbml0KSwgKGdzdF9iYXNlc3JjX2dldF9mb3JtYXRzKSwgKGdzdF9iYXNlc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9ldmVudF9tYXNrKSwgKGdzdF9iYXNlc3JjX2RvX3NlZWspLAoJICAoZ3N0X2Jhc2VzcmNfZXZlbnRfaGFuZGxlciksIChnc3RfYmFzZXNyY19nZXRfcmFuZ2VfdW5sb2NrZWQpLAoJICAoZ3N0X2Jhc2VzcmNfY2hlY2tfZ2V0X3JhbmdlKSwgKGdzdF9iYXNlc3JjX2xvb3ApLAoJICAoZ3N0X2Jhc2VzcmNfdW5sb2NrKSwgKGdzdF9iYXNlc3JjX2dldF9zaXplKSwgKGdzdF9iYXNlc3JjX3N0YXJ0KSwKCSAgKGdzdF9iYXNlc3JjX3N0b3ApLCAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzcmNfY2hhbmdlX3N0YXRlKSwgKGJhc2VzcmNfZmluZF9wZWVrKSwKCSAgKGJhc2VzcmNfZmluZF9zdWdnZXN0KSwgKGdzdF9iYXNlc3JjX3R5cGVfZmluZCk6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNyYy5oOgoJICAqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6IChnc3RfZmlsZXNyY19iYXNlX2luaXQpLAoJICAoZ3N0X2ZpbGVzcmNfY2xhc3NfaW5pdCksIChnc3RfZmlsZXNyY19pbml0KSwKCSAgKGdzdF9maWxlc3JjX2ZpbmFsaXplKSwgKGdzdF9maWxlc3JjX3NldF9sb2NhdGlvbiksCgkgIChnc3RfZmlsZXNyY19zZXRfcHJvcGVydHkpLCAoZ3N0X2ZpbGVzcmNfZ2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9maWxlc3JjX2ZyZWVfcGFyZW50X21tYXApLCAoZ3N0X2ZpbGVzcmNfbWFwX3JlZ2lvbiksCgkgIChnc3RfZmlsZXNyY19tYXBfc21hbGxfcmVnaW9uKSwgKGdzdF9maWxlc3JjX2NyZWF0ZV9tbWFwKSwKCSAgKGdzdF9maWxlc3JjX2NyZWF0ZV9yZWFkKSwgKGdzdF9maWxlc3JjX2NyZWF0ZSksCgkgIChnc3RfZmlsZXNyY19nZXRfc2l6ZSksIChnc3RfZmlsZXNyY19zdGFydCksIChnc3RfZmlsZXNyY19zdG9wKToKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uKSwgKGdzdF9wYWRfY2hlY2tfcHVsbF9yYW5nZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICAqIGdzdC9nc3RwYWQuaDoKCSAgTW9yZSB3b3JrIG9uIHRoZSBnZW5lcmljIHNvdXJjZSBiYXNlIGNsYXNzLCBpbXBsZW1lbnQgc2Vla2luZywKCSAgcXVlcnkuCgkgIE1ha2UgZmlsZXNyYyBleHRlbmQgdGhlIGJhc2Ugc291cmNlIGNsYXNzLgoJICBBZGRlZCBnc3RfcGFkX3NldF9jaGVja2dldHJhbmdlX2Z1bmN0aW9uIHRvIEdzdFBhZC4KCjIwMDUtMDQtMDYgMTE6MDg6MDcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHBrZ2NvbmZpZy86IE5ldyBmaWxlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDQtMDYgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcGtnY29uZmlnL2dzdHJlYW1lci1iYXNlLnBjLmluOgoJICAqIHBrZ2NvbmZpZy9nc3RyZWFtZXItYmFzZS11bmluc3RhbGxlZC5wYy5pbjogTmV3IGZpbGVzLgoJICAqIHBrZ2NvbmZpZy9NYWtlZmlsZS5hbToKCSAgKiBjb25maWd1cmUuYWMgKEFDX09VVFBVVCk6IEFkZCBnc3RyZWFtZXItYmFzZSBwa2djb25maWcgZmlsZXMuCgoyMDA1LTA0LTA1IDE3OjQxOjUxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGRvY3MvZmFxL2N2cy54bWw6CgkgIGFkZCBhIG5vdGUKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBhIG5vdGUKCjIwMDUtMDQtMDUgMDg6NDQ6MjAgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBNYWRlIGJhc2Ugc291cmNlIGNsYXNzLCBtYWtlIGZha2VzcmMgZXh0ZW5kIGl0LgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSAgKiBnc3QvYmFzZS9SRUFETUU6CgkgICogZ3N0L2Jhc2UvZ3N0YmFzZXNpbmsuYzogKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19wYWRfc2V0Y2FwcyksCgkgIChnc3RfYmFzZXNpbmtfcGFkX2J1ZmZlcl9hbGxvYyksIChnc3RfYmFzZXNpbmtfaW5pdCksCgkgIChnc3RfYmFzZXNpbmtfZG9fc3luYyksIChnc3RfYmFzZXNpbmtfY2hhaW5fdW5sb2NrZWQpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2VzcmMuYzogKGdzdF9iYXNlc3JjX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlc3JjX2Jhc2VfaW5pdCksIChnc3RfYmFzZXNyY19jbGFzc19pbml0KSwKCSAgKGdzdF9iYXNlc3JjX2luaXQpLCAoZ3N0X2Jhc2VzcmNfZ2V0X2Zvcm1hdHMpLAoJICAoZ3N0X2Jhc2VzcmNfZ2V0X3F1ZXJ5X3R5cGVzKSwgKGdzdF9iYXNlc3JjX3F1ZXJ5KSwKCSAgKGdzdF9iYXNlc3JjX2dldF9ldmVudF9tYXNrKSwgKGdzdF9iYXNlc3JjX2V2ZW50X2hhbmRsZXIpLAoJICAoZ3N0X2Jhc2VzcmNfc2V0X3Byb3BlcnR5KSwgKGdzdF9iYXNlc3JjX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZXNyY19nZXRfcmFuZ2VfdW5sb2NrZWQpLCAoZ3N0X2Jhc2VzcmNfZ2V0X3JhbmdlKSwKCSAgKGdzdF9iYXNlc3JjX2xvb3ApLCAoZ3N0X2Jhc2VzcmNfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VzcmNfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc3JjLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuYzogKGdzdF9mYWtlc3JjX2Jhc2VfaW5pdCksCgkgIChnc3RfZmFrZXNyY19jbGFzc19pbml0KSwgKGdzdF9mYWtlc3JjX2luaXQpLAoJICAoZ3N0X2Zha2VzcmNfZXZlbnRfaGFuZGxlciksIChnc3RfZmFrZXNyY19zZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Zha2VzcmNfZ2V0X3Byb3BlcnR5KSwgKGdzdF9mYWtlc3JjX2NyZWF0ZSk6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGZha2VzcmMuaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOiAoZ3N0X2ZpbGVzcmNfZ2V0cmFuZ2UpLAoJICAoZ3N0X2ZpbGVzcmNfb3Blbl9maWxlKSwgKGdzdF9maWxlc3JjX2xvb3ApLAoJICAoZ3N0X2ZpbGVzcmNfYWN0aXZhdGUpLCAoZmlsZXNyY19maW5kX3BlZWspLAoJICAoZ3N0X2ZpbGVzcmNfdHlwZV9maW5kKToKCSAgTWFkZSBiYXNlIHNvdXJjZSBjbGFzcywgbWFrZSBmYWtlc3JjIGV4dGVuZCBpdC4KCSAgQWRkIGNvbW1lbnRzIHRvIGJhc2VzaW5rIGNsYXNzLgoJICBTb21lIGZpbGVzcmMgY2xlYW51cC4KCjIwMDUtMDQtMDEgMTA6MTQ6NDUgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYzoKCSAgYWRkIHN1cHBvcnQgZm9yIGdvb2dsZSBtYWxsb2MgaWYgYXZhaWxhYmxlCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBhZGQgc3VwcG9ydCBmb3IgZ29vZ2xlIG1hbGxvYyBpZiBhdmFpbGFibGUKCjIwMDUtMDQtMDEgMDI6NDE6MzUgKzAwMDAgIERhdmlkIFNjaGxlZWYgPGRzQHNjaGxlZWYub3JnPgoKCSAgZ3N0L2dzdHBsdWdpbi5jOiBTd2l0Y2ggdG8gdXNpbmcgR19NT0RVTEVfQklORF9MT0NBTCwgd2hpY2ggbWVhbnMgcGx1Z2lucyBhcmUgbm93IGV4cGVjdGVkIHRvIGxpbmsgYWdhaW5zdCBsaWJnc3RyZWFtZXIuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RwbHVnaW4uYzogKGdzdF9wbHVnaW5fY2hlY2tfZmlsZSksIChnc3RfcGx1Z2luX2xvYWRfZmlsZSk6CgkgIFN3aXRjaCB0byB1c2luZyBHX01PRFVMRV9CSU5EX0xPQ0FMLCB3aGljaCBtZWFucyBwbHVnaW5zIGFyZSBub3cKCSAgZXhwZWN0ZWQgdG8gbGluayBhZ2FpbnN0IGxpYmdzdHJlYW1lci4KCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbTogbGluayBhZ2FpbnN0IGxpYmdzdHJlYW1lcgoJICAqIGdzdC9lbGVtZW50cy9NYWtlZmlsZS5hbTogc2FtZQoKMjAwNS0wMy0zMSAxNTowMDoxMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgdGVzdHMvaW5zdGFudGlhdGUvOiBBZGQgdGVzdCB0byB0ZXN0IHNwZWVkIG9mIGNhcHMgY29weSBhbmQgZnJlZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMzEgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogdGVzdHMvaW5zdGFudGlhdGUvTWFrZWZpbGUuYW06CgkgICogdGVzdHMvaW5zdGFudGlhdGUvY2Fwcy5jOiBBZGQgdGVzdCB0byB0ZXN0IHNwZWVkIG9mIGNhcHMgY29weQoJICBhbmQgZnJlZS4KCSAgKiB0ZXN0cy9tZW1jaHVuay9nbWVtY2h1bmt0ZXN0LmMgKG1haW4pOiBVc2UgYWxsb2Mgb25seSBvbiB0aGUKCSAgR01lbUNodW5rIHRvIGJlIGZhaXIuCgkgICogZ3N0L2dzdHRyYXNoc3RhY2suaDogUmVtb3ZlIHdhcm5pbmcgYWJvdXQgdXNpbmcgdGhlIGZhbGxiYWNrCgkgIHRyYXNoIHN0YWNrIGltcGxlbWVudGF0aW9uLCBpdCdzIHN0aWxsIGZhc3RlciB0aGFuIG1hbGxvYy4KCjIwMDUtMDMtMzEgMTA6MTA6NTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBnc3QvOiBBZGRlZCBzdGFydC9zdG9wIG1ldGhvZHMgdG8gdHJhbnNmb3JtIGJhc2UgY2xhc3Mgc28gc3ViY2xhc3NlcyBkb24ndCBuZWVkIHRvIGRlYWwgd2l0aCBzdGF0ZSBjaGFuZ2VzIGV2ZW4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9iYXNlX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2NsYXNzX2luaXQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2luaXQpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NldGNhcHMpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2hhbmRsZV9idWZmZXIpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldF9wcm9wZXJ0eSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2lua19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc3JjX2FjdGl2YXRlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uaDoKCSAgKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzogKGdzdF9pZGVudGl0eV9jbGFzc19pbml0KSwKCSAgKGdzdF9pZGVudGl0eV9ldmVudCksIChnc3RfaWRlbnRpdHlfY2hlY2tfcGVyZmVjdCksCgkgIChnc3RfaWRlbnRpdHlfdHJhbnNmb3JtKSwgKGdzdF9pZGVudGl0eV9zdGFydCksCgkgIChnc3RfaWRlbnRpdHlfc3RvcCk6CgkgIEFkZGVkIHN0YXJ0L3N0b3AgbWV0aG9kcyB0byB0cmFuc2Zvcm0gYmFzZSBjbGFzcyBzbyBzdWJjbGFzc2VzCgkgIGRvbid0IG5lZWQgdG8gZGVhbCB3aXRoIHN0YXRlIGNoYW5nZXMgZXZlbi4KCjIwMDUtMDMtMzEgMTA6MTA6MjEgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkqIHRlc3RzL21lbWNodW5rL2dtZW1jaHVua3Rlc3QuYzoKCSAgYWRkIHBlci10aHJlYWQgc3RhdHMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFkZCBwZXItdGhyZWFkIHN0YXRzCgoyMDA1LTAzLTMxIDA5OjQ2OjI4ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogQWRkZWQgcmF0ZSB0byB0aGUgZGlzY29udCBldmVudCB0byBwcmVwYXJlIGZvciB2YXJpYWJsZSBzcGVlZCBhbmQgcmV2ZXJzZSBwbGF5YmFjay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdGV2ZW50LmM6IChnc3RfZXZlbnRfbmV3X2Rpc2NvbnRpbnVvdXNfdmFsaXN0KSwKCSAgKGdzdF9ldmVudF9uZXdfZGlzY29udGludW91cyksIChnc3RfZXZlbnRfZGlzY29udF9nZXRfdmFsdWUpOgoJICAqIGdzdC9nc3RldmVudC5oOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX3B1bGxfcmFuZ2UpOgoJICBBZGRlZCByYXRlIHRvIHRoZSBkaXNjb250IGV2ZW50IHRvIHByZXBhcmUgZm9yIHZhcmlhYmxlIHNwZWVkCgkgIGFuZCByZXZlcnNlIHBsYXliYWNrLgoKMjAwNS0wMy0zMCAxNDowOTowMSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSogdGVzdHMvbWVtY2h1bmsvZ21lbWNodW5rdGVzdC5jOgoJICBDb21taXQgbWVtIGNodW5rIHRlc3Q7IHByb2JhYmx5IHdpbGwgYmUgcmVtb3ZlZCBsYXRlci4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIENvbW1pdCBtZW0gY2h1bmsgdGVzdDsgcHJvYmFibHkgd2lsbCBiZSByZW1vdmVkIGxhdGVyLgoKMjAwNS0wMy0zMCAwMzo1NzozOSArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBBIGxpdHRsZSBleGFtcGxlIHByb2dyYW0gdG8gc2hvdyBob3cgdHJpZ2dlci1iYXNlZCBlbGVtZW50cyBjYW4gd29yay4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY29uZmlndXJlLmFjOgoJICAqIHRlc3RzdWl0ZS90cmlnZ2VyL01ha2VmaWxlLmFtOgoJICAqIHRlc3RzdWl0ZS90cmlnZ2VyL3RyaWdnZXIuYzogQSBsaXR0bGUgZXhhbXBsZSBwcm9ncmFtIHRvIHNob3cKCSAgaG93IHRyaWdnZXItYmFzZWQgZWxlbWVudHMgY2FuIHdvcmsuCgoyMDA1LTAzLTI5IDE2OjE4OjEyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0LzogU2ltcGxpZnkgcGFkIGFjdGl2YXRpb24uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9iYXNlL01ha2VmaWxlLmFtOgoJICAqIGdzdC9iYXNlL1JFQURNRToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOiAoZ3N0X2Jhc2VzaW5rX2dldF90eXBlKSwKCSAgKGdzdF9iYXNlc2lua19iYXNlX2luaXQpLCAoZ3N0X2Jhc2VzaW5rX2NsYXNzX2luaXQpLAoJICAoZ3N0X2Jhc2VzaW5rX3BhZF9nZXRjYXBzKSwgKGdzdF9iYXNlc2lua19pbml0KSwKCSAgKGdzdF9iYXNlc2lua19hY3RpdmF0ZSksIChnc3RfYmFzZXNpbmtfY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJICAqIGdzdC9iYXNlL2dzdGJhc2V0cmFuc2Zvcm0uYzogKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfdHlwZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fYmFzZV9pbml0KSwgKGdzdF9iYXNlX3RyYW5zZm9ybV9maW5hbGl6ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2xhc3NfaW5pdCksIChnc3RfYmFzZV90cmFuc2Zvcm1faW5pdCksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fcHJveHlfZ2V0Y2FwcyksIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0Y2FwcyksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fZXZlbnQpLCAoZ3N0X2Jhc2VfdHJhbnNmb3JtX2dldHJhbmdlKSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9jaGFpbiksIChnc3RfYmFzZV90cmFuc2Zvcm1faGFuZGxlX2J1ZmZlciksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fc2V0X3Byb3BlcnR5KSwKCSAgKGdzdF9iYXNlX3RyYW5zZm9ybV9nZXRfcHJvcGVydHkpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NpbmtfYWN0aXZhdGUpLAoJICAoZ3N0X2Jhc2VfdHJhbnNmb3JtX3NyY19hY3RpdmF0ZSksCgkgIChnc3RfYmFzZV90cmFuc2Zvcm1fY2hhbmdlX3N0YXRlKToKCSAgKiBnc3QvYmFzZS9nc3RiYXNldHJhbnNmb3JtLmg6CgkgICogZ3N0L2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6IChnc3RfaWRlbnRpdHlfZmluYWxpemUpLAoJICAoZ3N0X2lkZW50aXR5X2NsYXNzX2luaXQpLCAoZ3N0X2lkZW50aXR5X2luaXQpLAoJICAoZ3N0X2lkZW50aXR5X2V2ZW50KSwgKGdzdF9pZGVudGl0eV9jaGVja19wZXJmZWN0KSwKCSAgKGdzdF9pZGVudGl0eV90cmFuc2Zvcm0pLCAoZ3N0X2lkZW50aXR5X3NldF9wcm9wZXJ0eSksCgkgIChnc3RfaWRlbnRpdHlfZ2V0X3Byb3BlcnR5KSwgKGdzdF9pZGVudGl0eV9jaGFuZ2Vfc3RhdGUpOgoJICAqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5oOgoJICAqIGdzdC9nc3RlbGVtZW50LmM6IChnc3RfZWxlbWVudF9nZXRfc3RhdGVfZnVuYyksCgkgIChnc3RfZWxlbWVudF9sb3N0X3N0YXRlKSwgKGdzdF9lbGVtZW50X3BhZHNfYWN0aXZhdGUpOgoJICAqIGdzdC9nc3RwYWQuYzogKGdzdF9wYWRfc2V0X2FjdGl2ZSksIChnc3RfcGFkX3BlZXJfc2V0X2FjdGl2ZSksCgkgIChnc3RfcGFkX2NoZWNrX3B1bGxfcmFuZ2UpLCAoZ3N0X3BhZF9wdWxsX3JhbmdlKToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIFNpbXBsaWZ5IHBhZCBhY3RpdmF0aW9uLgoJICBBZGRlZCBmdW5jdGlvbiB0byBjaGVjayBpZiBwdWxsX3JhbmdlIGNhbiBiZSBwZXJmb3JtZWQuCgkgIEVycm9yIG91dCB3aGVuIHB1bGxpbmcgaW5hY3RpdmUgb3IgZmx1c2hpbmcgcGFkcy4KCSAgUmVtb3ZlZCBjb25zdCBmcm9tIHJlZmNvdW50ZWQgdHlwZXMgYXMgaXQgZG9lcyBub3QgbWFrZSBzZW5zZS4KCSAgU2ltcGxpZnkgcGFkIHRlbXBsYXRlcyBpbiBiYXNlc2luawoJICBBZGRlZCBiYXNlIGNsYXNzIGZvciBzaW1wbGUgMS10by0xIHRyYW5zZm9ybXMuCgkgIE1ha2UgaWRlbnRpdHkgc3ViY2xhc3MgdGhlIGJhc2UgdHJhbnNmb3JtLgoKMjAwNS0wMy0yOSAxNDozNDo1MSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgZG9jcy86IEFkZCB0aGVzZSBmaWxlcyB0byBDVlMuIE5vdyBJIHJlYWxseSBkb24ndCB1bmRlcnN0YW5kIHdoYXQncyBnb2luZyBvbiwgYnV0IGxpa2Ugd2hhdGV2ZXIuIEkgd2FudCBncmVlbiBidWlsZGJvdCEKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLW92ZXJyaWRlcy50eHQ6CgkgICogZG9jcy9nc3QvZ3N0cmVhbWVyLW92ZXJyaWRlcy50eHQ6IEFkZCB0aGVzZSBmaWxlcyB0byBDVlMuIE5vdyBJCgkgIHJlYWxseSBkb24ndCB1bmRlcnN0YW5kIHdoYXQncyBnb2luZyBvbiwgYnV0IGxpa2Ugd2hhdGV2ZXIuIEkgd2FudAoJICBncmVlbiBidWlsZGJvdCEKCjIwMDUtMDMtMjkgMTQ6MTI6NDggKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGRvY3MvOiBEaXN0IHRoZSBvdmVycmlkZXMgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICAqIGRvY3MvbGlicy9NYWtlZmlsZS5hbTogRGlzdCB0aGUgb3ZlcnJpZGVzIGZpbGVzLgoJICAqIGNoZWNrL01ha2VmaWxlLmFtIChjbGVhbi1sb2NhbCk6IFJlbW92ZSAubGlicyBkaXJlY3Rvcmllcy4KCSAgKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgYWxsIHRoZSBhdHRpYwoJICBlbGVtZW50cyB0byBFWFRSQV9ESVNULCBzbyBwby8gZmlsZXMgYXJlIGhhcHB5LgoKMjAwNS0wMy0yOSAxMzoxMDoyNSArMDAwMCAgQW5keSBXaW5nbyA8d2luZ29AcG9ib3guY29tPgoKCSAgcG8vUE9URklMRVM6IFJlbW92ZSBnc3RzcGlkZXIuYy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIDIwMDUtMDMtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CgkgICogcG8vUE9URklMRVM6IFJlbW92ZSBnc3RzcGlkZXIuYy4KCSAgKiBjb25maWd1cmUuYWMgKEFDX09VVFBVVCk6IEFkZCBtaXNzaW5nIHRlc3RzdWl0ZSBtYWtlZmlsZXMuCgkgICogZG9jcy9saWJzL2dzdHJlYW1lci1saWJzLWRvY3Muc2dtbDoKCSAgKiBkb2NzL2xpYnMvZ3N0cmVhbWVyLWxpYnMtc2VjdGlvbnMudHh0OiBSZW1vdmUgdGhlIHNlY3Rpb24gb24KCSAgYnl0ZXN0cmVhbS4KCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmMgKG1haW4pOiBTZXQgdGhlIGxlbmd0aCBvZiB0aGUgcHJlcm9sbCBxdWV1ZQoJICBvbiB0aGUgc2lua3MgdG8gcHJldmVudCBhIGxvY2t1cC4KCjIwMDUtMDMtMjkgMTE6Mzk6MTcgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC86IFJlbW92ZSB0ZXN0LCBpdCdzIHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4gY2hlY2svZ3N0LWxpYnMvZ2RwLmMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIGxpYnMvZ3N0L2RhdGFwcm90b2NvbC9NYWtlZmlsZS5hbToKCSAgKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLXRlc3QuYzogUmVtb3ZlIHRlc3QsIGl0J3MKCSAgdGhlIHNhbWUgYXMgdGhlIG9uZSBpbiBjaGVjay9nc3QtbGlicy9nZHAuYy4KCjIwMDUtMDMtMjkgMTA6NTU6MzkgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHBvLywgZG9jcy9nc3QvOiBDb21taXQgYXV0b21hdGljIGNoYW5nZXMgdG8gZG9jcyBhbmQgcG8gZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAzLTI5ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHBvLywgZG9jcy9nc3QvOiBDb21taXQgYXV0b21hdGljIGNoYW5nZXMgdG8gZG9jcyBhbmQgcG8gZmlsZXMuCgkgICogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtIChsaWJnc3RlbGVtZW50c19sYV9MREZMQUdTKTogTGluayB0bwoJICB0aGUgdmVyc2lvbmVkIGxpYmdzdGJhc2UuCgkgICogY2hlY2svTWFrZWZpbGUuYW06IERlcGVuZCBvbiBhbiB1bnZlcnNpb25lZCBnc3QtcmVnaXN0ZXIsIHNlZW1zCgkgIHRvIG1ha2UgYXV0b2NvbmYgaGFwcGllci4KCSAgKiBnc3QvYmFzZS9NYWtlZmlsZS5hbTogTWFrZSBsaWJnc3RiYXNlIGEgdmVyc2lvbmVkIGxpYi4KCjIwMDUtMDMtMjggMTQ6NTQ6MzMgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNvbmZpZ3VyZS5hYzoKCSogZG9jcy9kZXNpZ24vcGFydC1nc3RlbGVtZW50LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1uZWdvdGlhdGlvbi50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtcHJlcm9sbC50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc2NoZWR1bGluZy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtc3RhdGVzLnR4dDoKCSogZ3N0L01ha2VmaWxlLmFtOgoJKiBnc3QvYmFzZS9NYWtlZmlsZS5hbToKCSogZ3N0L2Jhc2UvUkVBRE1FOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBnc3QvYmFzZS9nc3RiYXNlc2luay5oOgoJKiBnc3QvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuaDoKCSogZ3N0L2dzdGJpbi5jOgoJKiBnc3QvZ3N0ZWxlbWVudC5jOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBsaWJzL2dzdC9iYXNlL01ha2VmaWxlLmFtOgoJKiBsaWJzL2dzdC9iYXNlL1JFQURNRToKCSogbGlicy9nc3QvYmFzZS9nc3RiYXNlc2luay5jOgoJKiBsaWJzL2dzdC9iYXNlL2dzdGJhc2VzaW5rLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5oOgoJICBBZGRlZCBzdGF0ZSBjaGFuZ2UgY29kZS4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIEFkZGVkIHN0YXRlIGNoYW5nZSBjb2RlLgoJICBBZGRlZC91cGRhdGVkIGRvY3MuCgkgIEFkZGVkIHNpbmsgYmFzZSBjbGFzcywgbWFrZSBmYWtlc2luayBleHRlbmQgdGhlIGJhc2UgY2xhc3MuCgkgIFNtYWxsIGNsZWFudXBzIGluIEdzdFBpcGVsaW5lLgoKMjAwNS0wMy0yNiAyMjowNzo1MyArMDAwMCAgRGF2aWQgU2NobGVlZiA8ZHNAc2NobGVlZi5vcmc+CgoJICBnc3QvTWFrZWZpbGUuYW06IHJlbW92ZSBnc3RjcHUuW2NoXS4gIFRoZSBnc3RfY3B1IGZ1bmN0aW9uYWxpdHkgaXMgYnJva2VuIGFuZCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gYSBkaWZmZXJlbnQgbGkuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L01ha2VmaWxlLmFtOiByZW1vdmUgZ3N0Y3B1LltjaF0uICBUaGUgZ3N0X2NwdSBmdW5jdGlvbmFsaXR5CgkgIGlzIGJyb2tlbiBhbmQgc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIGEgZGlmZmVyZW50IGxpYnJhcnkuCgkgICogZ3N0L2dzdC5jOiAoaW5pdF9wb3N0KTogZG9uJ3QgY2FsbCBfZ3N0X2NwdV9pbml0aWFsaXplKCkKCSAgKiBnc3QvZ3N0Lmg6IHJlbW92ZSBnc3RjcHUuaAoJICAqIGdzdC9nc3RjcHUuYzogcmVtb3ZlCgkgICogZ3N0L2dzdGNwdS5oOiByZW1vdmUKCSAgKiBnc3QvTWFrZWZpbGUuYW0uZnV0dXJlOiBSZW1vdmUgdGhpcyBmaWxlLiAgSXQncyBhbmNpZW50LgoKMjAwNS0wMy0yNSAwOTo1Nzo0MiArMDAwMCAgUm9uYWxkIFMuIEJ1bHRqZSA8cmJ1bHRqZUByb25hbGQuYml0ZnJlYWsubmV0PgoKCSAgZ3N0L2dzdGJpbi5jOiBBZGQgZGVmYXVsdCBldmVudC9zZXRfbWFuYWdlciBoYW5kbGVycy4gVGhlIHNldF9tYW5hZ2VyIGhhbmRsZXIgdGFrZXMgY2FyZSB0aGF0IHRoZSBtYW5hZ2VyIGlzIGRpc3RyaWJ1Li4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RiaW4uYzogKGdzdF9iaW5fY2xhc3NfaW5pdCksIChnc3RfYmluX3NldF9tYW5hZ2VyKSwKCSAgKGdzdF9iaW5fc2VuZF9ldmVudCk6CgkgIEFkZCBkZWZhdWx0IGV2ZW50L3NldF9tYW5hZ2VyIGhhbmRsZXJzLiBUaGUgc2V0X21hbmFnZXIgaGFuZGxlcgoJICB0YWtlcyBjYXJlIHRoYXQgdGhlIG1hbmFnZXIgaXMgZGlzdHJpYnV0ZWQgb3ZlciBraWRzIHRoYXQgd2VyZQoJICBhbHJlYWR5IGluIHRoZSBiaW4gYmVmb3JlIHRoZSBtYW5hZ2VyIHdhcyBzZXQuIFRoZSBldmVudCBoYW5kbGVyCgkgIGlzIGEgdXRpbGl0eSB2aXJ0dWFsIGZ1bmN0aW9uIHRoYXQgc2VuZHMgdGhlIGV2ZW50IG92ZXIgYWxsIHNpbmtzLAoJICBzbyB0aGF0IGdzdF9lbGVtZW50X3NlbmRfZXZlbnQgKGJpbiwgZXZlbnQpOyBoYXMgdGhlIGV4cGVjdGVkCgkgIGJlaGF2aW91ci4KCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2V2ZW50X2RlZmF1bHQpOgoJICBSZS1pbnN0YWxsIGRlZmF1bHQgZXZlbnQgaGFuZGxpbmcgZm9yIGRpc2NvbnRpbnVpdGllcywgc28gdGhhdAoJICBzZWVraW5nIHdvcmtzIHdpdGhvdXQgcmVxdWlyaW5nIGhhY2tzIGluIGFwcGxpY2F0aW9ucyBvciBleHRyYQoJICBjb2RlIGluIHNpbmtzLgoJICAqIGdzdC9nc3RwaXBlbGluZS5jOiAoZ3N0X3BpcGVsaW5lX2NsYXNzX2luaXQpLAoJICAoZ3N0X3BpcGVsaW5lX3NlbmRfZXZlbnQpOgoJICBIYWxmIGhhY2ssIGhhbGYgdXRpbGl0eTogc2V0IGEgcGlwZWxpbmUgdG8gUEFVU0VEIGZvciBzZWVrIGV2ZW50cywKCSAgc2luY2UgdGhhdCBpcyB0aGUgb25seSB3YXkgd2UgY2FuIGd1YXJhbnRlZSBhL3Ygc3luYy4gTWVhbnMgdGhhdAoJICB5b3UgY2FuIGRvIGdzdF9lbGVtZW50X3NlZWsgKHBpcGVsaW5lLCBtZXRob2QsIHBvcyk7IG9uIGEgcGlwZWxpbmUKCSAgYW5kIGl0ICJqdXN0IHdvcmtzIi4KCjIwMDUtMDMtMjUgMDk6MzU6MDEgKzAwMDAgIFJvbmFsZCBTLiBCdWx0amUgPHJidWx0amVAcm9uYWxkLmJpdGZyZWFrLm5ldD4KCgkgIGdzdC9nc3RwaXBlbGluZS5jOiBMb2NrL3VubG9jayBtaXNtYXRjaC4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZ3N0L2dzdHBpcGVsaW5lLmM6IChnc3RfcGlwZWxpbmVfdXNlX2Nsb2NrKToKCSAgTG9jay91bmxvY2sgbWlzbWF0Y2guCgoyMDA1LTAzLTI1IDAwOjM1OjQ0ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkgIGRvY3MvZmFxL2dzdC11bmluc3RhbGxlZDogYWRkIGdzdC1wbHVnaW5zLWJhc2UKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9mYXEvZ3N0LXVuaW5zdGFsbGVkOgoJICBhZGQgZ3N0LXBsdWdpbnMtYmFzZQoJICAqIGRvY3MvZ3N0L01ha2VmaWxlLmFtOgoJICBkb24ndCBlcnJvciBvdXQgdW50aWwgZG9jcyBhcmUgZml4ZWQKCSAgKiBkb2NzL2dzdC9nc3RyZWFtZXIudHlwZXM6CgkgIHJlbW92ZSB0aHJlYWQKCjIwMDUtMDMtMjIgMTQ6MjM6NDkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBY3RpdmF0ZWQgbW9yZSB0ZXN0cy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svTWFrZWZpbGUuYW06CgkgICogY2hlY2svZ3N0L2dzdG1lc3NhZ2UuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2RhdGFfc3VpdGUpLCAobWFpbik6CgkgICogZ3N0L2dzdHN0cnVjdHVyZS5jOiAoZ3N0X3N0cnVjdHVyZV9zZXRfdmFsaXN0KSwKCSAgKGdzdF9zdHJ1Y3R1cmVfY29weV9jb25kaXRpb25hbCk6CgkgIEFjdGl2YXRlZCBtb3JlIHRlc3RzLgoJICBBZGRlZCBtZXNzYWdlIHRlc3QuCgkgIEFkZGVkIEdfVFlQRV9QT0lOVEVSIHRvIEdzdFN0cnVjdHVyZS4KCjIwMDUtMDMtMjIgMTE6MzI6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2NzIHVwZGF0ZXMKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1UT0RPLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWV2ZW50cy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RiaW4udHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0YnVzLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdHBpcGVsaW5lLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LW1lc3NhZ2VzLnR4dDoKCSAgKiBnc3QvZ3N0YnVzLmM6CgkgICogZ3N0L2dzdG1lc3NhZ2UuYzoKCSAgRG9jcyB1cGRhdGVzCgoyMDA1LTAzLTIxIDE4OjE3OjU3ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGJ1cy5jOiBGaXggY29weS1hbmQtcGFzdGUgZXJyb3IuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RidXMuYzogKGdzdF9idXNfcG9zdCk6CgkgIEZpeCBjb3B5LWFuZC1wYXN0ZSBlcnJvci4KCjIwMDUtMDMtMjEgMTc6MzQ6MDIgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjb21tb246CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2VsZW1lbnRzL01ha2VmaWxlLmFtOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogZ3N0L2VsZW1lbnRzL2dzdHRlZS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIGdzdC9nc3QuYzoKCSogZ3N0L2dzdC5oOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGJ1cy5jOgoJKiBnc3QvZ3N0YnVzLmg6CgkqIGdzdC9nc3RjYXBzLmg6CgkqIGdzdC9nc3RkYXRhLmg6CgkqIGdzdC9nc3RlbGVtZW50LmM6CgkqIGdzdC9nc3RlbGVtZW50Lmg6CgkqIGdzdC9nc3RldmVudC5jOgoJKiBnc3QvZ3N0ZXZlbnQuaDoKCSogZ3N0L2dzdG1lc3NhZ2UuYzoKCSogZ3N0L2dzdG1lc3NhZ2UuaDoKCSogZ3N0L2dzdHBhZC5jOgoJKiBnc3QvZ3N0cGFkLmg6CgkqIGdzdC9nc3RwaXBlbGluZS5jOgoJKiBnc3QvZ3N0cGlwZWxpbmUuaDoKCSogZ3N0L2dzdHByb2JlLmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0cXVldWUuaDoKCSogZ3N0L2dzdHNjaGVkdWxlci5jOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmg6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0dGFnaW50ZXJmYWNlLmg6CgkqIGdzdC9nc3R0YWdzZXR0ZXIuaDoKCSogZ3N0L2dzdHRhc2suYzoKCSogZ3N0L2dzdHRhc2suaDoKCSogZ3N0L2dzdHRocmVhZC5jOgoJKiBnc3QvZ3N0dGhyZWFkLmg6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBnc3Qvc2NoZWR1bGVycy9NYWtlZmlsZS5hbToKCSogZ3N0L3NjaGVkdWxlcnMvY290aHJlYWRzX2NvbXBhdC5oOgoJKiBnc3Qvc2NoZWR1bGVycy9lbnRyeXNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyY290aHJlYWRzLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJjb3RocmVhZHMuaDoKCSogZ3N0L3NjaGVkdWxlcnMvZmFpcnNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RvcHRpbWFsc2NoZWR1bGVyLmM6CgkqIGdzdC9zY2hlZHVsZXJzL2d0aHJlYWQtY290aHJlYWRzLmg6CgkqIGdzdC9zY2hlZHVsZXJzL3RocmVhZHNjaGVkdWxlci5jOgoJKiBsaWJzL2dzdC9NYWtlZmlsZS5hbToKCSogbGlicy9nc3QvYnl0ZXN0cmVhbS9ieXRlc3RyZWFtLmM6CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vZmlsZXBhZC5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvTWFrZWZpbGUuYW06CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZWxlbWVudHMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc3JjLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0aWRlbnRpdHkuaDoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RxdWV1ZS5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmg6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0dGVlLmg6CgkqIHRlc3RzL2JlbmNobWFya3MvY29tcGxleGl0eS5jOgoJKiB0ZXN0cy9iZW5jaG1hcmtzL21hc3MtZWxlbWVudHMuYzoKCSogdGVzdHMvY2hlY2svTWFrZWZpbGUuYW06CgkqIHRlc3RzL2NvbXBsZXhpdHkuYzoKCSogdGVzdHMvbWFzc19lbGVtZW50cy5jOgoJKiB0ZXN0cy9vbGQvdGVzdHN1aXRlL3N0YXRlcy9sb2NrZWQuYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvbG9ja2VkLmM6CgkqIHRlc3RzdWl0ZS9zdGF0ZXMvcGFyZW50LmM6CgkqIHRvb2xzL2dzdC1pbnNwZWN0LmM6CgkqIHRvb2xzL2dzdC1sYXVuY2guYzoKCSogdG9vbHMvZ3N0LW1kNXN1bS5jOgoJKiB0b29scy9nc3QtdHlwZWZpbmQuYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgTmV4dCBiaWcgbWVyZ2UuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBOZXh0IGJpZyBtZXJnZS4KCSAgQWRkZWQgR3N0QnVzIGZvciBtYWlubG9vcCBpbnRlZ3JhdGlvbi4KCSAgQWRkZWQgR3N0TWVzc2FnZSBmb3Igc2VuZGluZyBub3RpZmljYXRpb25zIG9uIHRoZSBidXMuCgkgIEFkZGVkIEdzdFRhc2sgYXMgYW4gYWJzdHJhY3Rpb24gZm9yIHBpcGVsaW5lIGVudHJ5IHBvaW50cy4KCSAgUmVtb3ZlZCBHc3RUaHJlYWQuCgkgIFJlbW92ZWQgU2NoZWR1bGVycy4KCSAgU2ltcGxpZmllZCBHc3RRdWV1ZSBmb3IgbXVsdGl0aHJlYWRlZCBjb3JlLgoJICBNYWRlIF9saW5rIHRocmVhZHNhZmUsIHJlbW92ZWQgb2xkIGNhcHNuZWdvLgoJICBBZGRlZCBTVFJFQU1fTE9DSyBhbmQgUFJFUk9MTF9MT0NLIGluIEdzdFBhZC4KCSAgQWRkZWQgcGFkIGJsb2NraW5nIGZ1bmN0aW9ucy4KCSAgUmV3b3JrZWQgc2NoZWR1bGluZyBmdW5jdGlvbnMgaW4gR3N0UGFkIHRvIHByZXBhcmUgZm9yCgkgIHNjaGVkdWxpbmcgdXBkYXRlcyBzb29uLgoJICBNb3ZlZCBldmVudHMgb3V0IG9mIGRhdGEgc3RyZWFtLgoJICBTaW1wbGlmaWVkIEdzdEV2ZW50IHR5cGVzLgoJICBBZGRlZCByZXR1cm4gdmFsdWVzIHRvIHB1c2gvcHVsbC4KCSAgUmVtb3ZlZCBjbG9ja2luZyBmcm9tIEdzdEVsZW1lbnQuCgkgIEFkZGVkIHByb3RvdHlwZXMgZm9yIHN0YXRlIGNoYW5nZSBmdW5jdGlvbiBmb3IgbmV4dCBtZXJnZS4KCSAgUmVtb3ZlZCBpdGVyYXRlIGZyb20gYmlucyBhbmQgc3RhdGUgY2hhbmdlIG1hbmFnZW1lbnQuCgkgIEZpeGVkIHNvbWUgZWxlbWVudHMsIGRpc2FibGVkIG90aGVycyBmb3Igbm93LgoJICBGaXhlZCAtaW5zcGVjdCBhbmQgLWxhdW5jaC4KCSAgQWRkZWQgY2hlY2sgZm9yIEdzdEJ1cy4KCjIwMDUtMDMtMTAgMTI6NTE6NDUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBEb2MgdXBkYXRlcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogZG9jcy9kZXNpZ24vcGFydC1NVC1yZWZjb3VudGluZy50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1jbG9ja3MudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtZ3N0ZWxlbWVudC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1nc3RvYmplY3QudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhbmRhcmRzLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fYWRkKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmUpOgoJICAqIGdzdC9nc3RiaW4uaDoKCSAgKiBnc3QvZ3N0YnVmZmVyLmM6CgkgICogZ3N0L2dzdGNhcHMuaDoKCSAgKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2sxLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2xvY2svY2xvY2syLmM6IChnc3RfY2xvY2tfZGVidWcpLCAoZWxlbWVudF93YWl0KSwKCSAgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9kbG9wZW4vbG9hZGdzdC5jOiAoZG9fdGVzdCk6CgkgICogdGVzdHN1aXRlL3JlZmNvdW50aW5nL2Jpbi5jOiAoYWRkX3JlbW92ZV90ZXN0MSksCgkgIChhZGRfcmVtb3ZlX3Rlc3QyKSwgKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9lbGVtZW50LmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvcmVmY291bnRpbmcvZWxlbWVudF9wYWQuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9yZWZjb3VudGluZy9wYWQuYzogKG1haW4pOgoJICAqIHRvb2xzL2dzdC1sYXVuY2guYzogKHNpZ2ludF9oYW5kbGVyX3NpZ2hhbmRsZXIpOgoJICAqIHRvb2xzL2dzdC10eXBlZmluZC5jOiAobWFpbik6CgkgIERvYyB1cGRhdGVzLgoJICBBZGRlZCBkb2MgYWJvdXQgY2xvY2suCgkgIHJlbW92ZWQgZ3N0X2Jpbl9pdGVyYXRlX3JlY3Vyc2VfdXAoKSwgbWFya2VkIG1ldGhvZHMKCSAgZm9yIHJlbW92YWwuCgkgIEZpeCBtb3JlIHRlc3RzdWl0ZXMuCgoyMDA1LTAzLTA5IDE3OjI4OjUyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgRml4IF9wYWRfZ2V0X2RpcmVjdGlvbiB3cnQgZ2hvc3RwYWRzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBnc3QvZ3N0cGFkLmM6IChnc3RfcGFkX2dldF9kaXJlY3Rpb24pLAoJICAoX2dzdF9wYWRfZGVmYXVsdF9maXhhdGVfZm9yZWFjaCksIChnc3RfcGFkX2NvbGxlY3R2KSwKCSAgKGdzdF9wYWRfY29sbGVjdF92YWxpc3QpOgoJICAqIHRlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOiAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvYXVkaW9zY2FsZS5jOiAodGVzdF9jYXBzKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9jYXBzLmM6ICh0ZXN0MSksICh0ZXN0MiksICh0ZXN0Myk6CgkgICogdGVzdHN1aXRlL2NhcHMvZGVzZXJpYWxpemUuYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL2VudW1jYXBzLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9maWx0ZXJjYXBzLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9pbnRlcnNlY3QyLmM6IChtYWluKToKCSAgKiB0ZXN0c3VpdGUvY2Fwcy9yYW5kb20uYzogKG1haW4pOgoJICAqIHRlc3RzdWl0ZS9jYXBzL3JlbmVnb3RpYXRlLmM6IChteV9maXhhdGUpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvc2V0cy5jOiAoY2hlY2tfY2Fwcyk6CgkgICogdGVzdHN1aXRlL2NhcHMvc2ltcGxpZnkuYzogKGNoZWNrX2NhcHMpLCAobWFpbik6CgkgICogdGVzdHN1aXRlL2NhcHMvc3VidHJhY3QuYzogKGNoZWNrX2NhcHMpOgoJICBGaXggX3BhZF9nZXRfZGlyZWN0aW9uIHdydCBnaG9zdHBhZHMuCgkgIEZpeCBjYXBzIHRlc3RzdWl0ZS4KCjIwMDUtMDMtMDkgMTY6MTA6NTkgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJKiBDaGFuZ2VMb2c6CgkqIGNoZWNrL01ha2VmaWxlLmFtOgoJKiBjaGVjay9nc3QvZ3N0YmluLmM6CgkqIGNoZWNrL2dzdC9nc3RzeXN0ZW1jbG9jay5jOgoJKiBnc3QvZ3N0YmluLmM6CgkqIGdzdC9nc3RiaW4uaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkqIGdzdC9nc3RwYWQuYzoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3R1dGlscy5oOgoJKiBnc3Qvc2NoZWR1bGVycy9lbnRyeXNjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiB0ZXN0cy9jaGVjay9NYWtlZmlsZS5hbToKCSogdGVzdHMvY2hlY2svZ3N0L2dzdGJpbi5jOgoJKiB0ZXN0cy9jaGVjay9nc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogdGVzdHMvb2xkL3Rlc3RzdWl0ZS9iaW5zL2ludGVyZmFjZS5jOgoJKiB0ZXN0c3VpdGUvYmlucy9pbnRlcmZhY2UuYzoKCSAgQWRkZWQgR3N0QmluIHRlc3QuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBBZGRlZCBHc3RCaW4gdGVzdC4KCSAgQWRkZWQgR3N0U3lzdGVtQ2xvY2sgdGVzdC4KCSAgSW1wbGVtZW50ZWQgY2xvY2sgZGlzdHJpYnV0aW9uIGNvZGUgaW4gR3N0QmluLgoJICBJbXBsZW1lbnRlZCBpdGVyYXRlIHNpbmtzIG1ldGhvZCBmb3IgZnV0dXJlIHVzZS4KCSAgUmVhcnJhbmdlZCBnc3RlbGVtZW50LmgKCSAgRml4IEdzdEl0ZXJhdG9yIGNvbXBhcmlzb24gYnVnLgoJICBNb3ZlZCBzb21lIGNvZGUgdG8gR3N0UGlwZWxpbmUsIG1vc3RseSBjbG9ja2luZyByZWxhdGVkLgoKMjAwNS0wMy0wOSAxMTowODoxOCArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIEJ1bXAgdmVyc2lvbiBudW1iZXIsIHdlJ3JlIG5vdyAwLjkuMAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBjb25maWd1cmUuYWM6CgkgICogZ3N0L2dzdF9wcml2YXRlLmg6CgkgICogZ3N0L2dzdGJpbi5jOiAoZ3N0X2Jpbl9hZGRfZnVuYyksIChnc3RfYmluX2FkZCksCgkgIChnc3RfYmluX3JlbW92ZV9mdW5jKSwgKGdzdF9iaW5fcmVtb3ZlKSwKCSAgKGdzdF9iaW5fZ2V0X2J5X25hbWVfcmVjdXJzZV91cCk6CgkgICogZ3N0L2dzdGNsb2NrLmM6IChnc3RfY2xvY2tfaWRfcmVmKSwgKGdzdF9jbG9ja19pZF91bnJlZiksCgkgIChnc3RfY2xvY2tfaWRfY29tcGFyZV9mdW5jKSwgKGdzdF9jbG9ja19pZF93YWl0KSwKCSAgKGdzdF9jbG9ja19pZF93YWl0X2FzeW5jKSwgKGdzdF9jbG9ja19pbml0KSwKCSAgKGdzdF9jbG9ja19hZGp1c3RfdW5sb2NrZWQpLCAoZ3N0X2Nsb2NrX2dldF90aW1lKToKCSAgKiBnc3QvZ3N0ZWxlbWVudC5oOgoJICAqIGdzdC9nc3RpbmZvLmM6IChfZ3N0X2RlYnVnX2luaXQpOgoJICAqIGdzdC9nc3RvYmplY3QuaDoKCSAgKiBnc3QvZ3N0cGFkLmM6IChfZ3N0X3BhZF9kZWZhdWx0X2ZpeGF0ZV9mb3JlYWNoKSwKCSAgKGdzdF9wYWRfY29sbGVjdHYpLCAoZ3N0X3BhZF9jb2xsZWN0X3ZhbGlzdCksIChnc3RfcGFkX3F1ZXJ5KToKCSAgKiBnc3QvZ3N0cGFkLmg6CgkgIEJ1bXAgdmVyc2lvbiBudW1iZXIsIHdlJ3JlIG5vdyAwLjkuMAoJICBBZGQgZnV0dXJlIGRlYnVnZ2luZyBjYXRlZ29yeS4KCSAgRml4IE5VTEwgX3VucmVmKCkgaW4gX2dldF9ieV9uYW1lX3JlY3Vyc2VfdXAKCSAgUmVhcnJhbmdlIGdzdHBhZC5oLgoJICBVcGRhdGUgc29tZSBkb2NzLgoKMjAwNS0wMy0wOCAxNzo0MjoyOSArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkqIENoYW5nZUxvZzoKCSogZ3N0L2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZha2VzaW5rLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdGZkc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmaWxlc2luay5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0aWRlbnRpdHkuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdG1kNXNpbmsuYzoKCSogZ3N0L2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0c2hhcGVyLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RzdGF0aXN0aWNzLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0ZWUuYzoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdHF1ZXVlLmM6CgkqIGdzdC9nc3R0aHJlYWQuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0YmFzaWNzY2hlZHVsZXIuYzoKCSogZ3N0L3NjaGVkdWxlcnMvZ3N0b3B0aW1hbHNjaGVkdWxlci5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGFnZ3JlZ2F0b3IuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmYWtlc2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZha2VzcmMuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNpbmsuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3RmZHNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGZpbGVzaW5rLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0bWQ1c2luay5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdG11bHRpZmlsZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHF1ZXVlLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c2hhcGVyLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0c3RhdGlzdGljcy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdHRlZS5jOgoJICBSZW1vdmUgdGhyZWFkc2FmZSBwcm9wZXJ0aWVzLiBGaXggZWxlbWVudHMgYmVjYXVzZSBHT2JqZWN0IGNvbXBsYWlucyB3aGVuIGluc3RhbGxpbmcgYSBwcm9wZXJ0eSBiZWZvcmUgZGVjbGFyaW5nIGEgc2UuLi4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIFJlbW92ZSB0aHJlYWRzYWZlIHByb3BlcnRpZXMuIEZpeCBlbGVtZW50cyBiZWNhdXNlIEdPYmplY3QKCSAgY29tcGxhaW5zIHdoZW4gaW5zdGFsbGluZyBhIHByb3BlcnR5IGJlZm9yZSBkZWNsYXJpbmcgYQoJICBzZXQvZ2V0X3Byb3BlcnR5IGhhbmRsZXIuCgkgIFJlYXJyYW5nZSBnc3RlbGVtZW50LmggZmlsZSwgdXNlIFNUQVRFIG1hY3JvcyBmb3Igc3RhdGUgbG9ja3MuCgkgIEZyZWUgbXV0ZXhlcyBpbiB0aGUgZmluYWxpemUgbWV0aG9kIGluc3RlYWQgb2YgZGlzcG9zZS4KCjIwMDUtMDMtMDggMTU6NTc6MTUgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBBZGRlZCBwYXJlbnRhZ2UgY2hlY2suCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGNoZWNrL2dzdC9nc3RvYmplY3QuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X29iamVjdF9zdWl0ZSk6CgkgICogZ3N0L2dzdHRocmVhZC5jOiAoZ3N0X3RocmVhZF9yZWxlYXNlX2NoaWxkcmVuX2xvY2tzKToKCSAgQWRkZWQgcGFyZW50YWdlIGNoZWNrLgoJICBGaXggYnVpbGQgb2cgR3N0VGhyZWFkIGFnYWluLgoKMjAwNS0wMy0wOCAxNDozODowNiArMDAwMCAgV2ltIFRheW1hbnMgPHdpbS50YXltYW5zQGdtYWlsLmNvbT4KCgkgIERvY3MgdXBkYXRlcywgY2xlYW4gdXAgc29tZSBoZWFkZXJzLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWNvbnZlbnRpb25zLnR4dDoKCSAgKiBkb2NzL2Rlc2lnbi9wYXJ0LWdzdG9iamVjdC50eHQ6CgkgICogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJICAqIGRvY3MvZGVzaWduL3BhcnQtc3RhbmRhcmRzLnR4dDoKCSAgKiBnc3QvZ3N0YmluLmM6IChnc3RfYmluX2FkZF9mdW5jKSwgKGdzdF9iaW5fYWRkKSwKCSAgKGdzdF9iaW5fcmVtb3ZlX2Z1bmMpLCAoZ3N0X2Jpbl9yZW1vdmUpLCAoZ3N0X2Jpbl9pdGVyYXRlX3JlY3Vyc2UpLAoJICAoZ3N0X2Jpbl9nZXRfYnlfbmFtZSksIChnc3RfYmluX2dldF9ieV9pbnRlcmZhY2UpLAoJICAoZ3N0X2Jpbl9pdGVyYXRlX2FsbF9ieV9pbnRlcmZhY2UpOgoJICAqIGdzdC9nc3RidWZmZXIuaDoKCSAgKiBnc3QvZ3N0Y2xvY2suaDoKCSAgKiBnc3QvZ3N0ZWxlbWVudC5jOiAoZ3N0X2VsZW1lbnRfY2xhc3NfaW5pdCksCgkgIChnc3RfZWxlbWVudF9jaGFuZ2Vfc3RhdGUpLCAoZ3N0X2VsZW1lbnRfc2V0X2xvb3BfZnVuY3Rpb24pOgoJICAqIGdzdC9nc3RlbGVtZW50Lmg6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmM6CgkgICogZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X29iamVjdF9jbGFzc19pbml0KSwgKGdzdF9vYmplY3RfcmVmKSwKCSAgKGdzdF9vYmplY3RfdW5yZWYpLCAoZ3N0X29iamVjdF9zaW5rKSwgKGdzdF9vYmplY3RfZGlzcG9zZSksCgkgIChnc3Rfb2JqZWN0X2Rpc3BhdGNoX3Byb3BlcnRpZXNfY2hhbmdlZCksIChnc3Rfb2JqZWN0X3NldF9uYW1lKSwKCSAgKGdzdF9vYmplY3Rfc2V0X3BhcmVudCksIChnc3Rfb2JqZWN0X3VucGFyZW50KSwKCSAgKGdzdF9vYmplY3RfY2hlY2tfdW5pcXVlbmVzcyk6CgkgICogZ3N0L2dzdG9iamVjdC5oOgoJICBEb2NzIHVwZGF0ZXMsIGNsZWFuIHVwIHNvbWUgaGVhZGVycy4KCSAgRnJlZSBpdGVyYXRvcnMgaW4gR3N0QmluLgoJICBHc3RPYmplY3QgaXMgbm93IGxvb2tpbmcgZ29vZC4KCjIwMDUtMDMtMDcgMTg6MzM6MzcgKzAwMDAgIFdpbSBUYXltYW5zIDx3aW0udGF5bWFuc0BnbWFpbC5jb20+CgoJICBjaGVjay86IEFkZGVkIGNoZWNrcy4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgICogY2hlY2svLmN2c2lnbm9yZToKCSAgKiBjaGVjay9NYWtlZmlsZS5hbToKCSAgKiBjaGVjay9nc3QtbGlicy8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC1saWJzL2dkcC5jOiAoU1RBUlRfVEVTVCksIChnc3Rfb2JqZWN0X3N1aXRlKSwgKG1haW4pOgoJICAqIGNoZWNrL2dzdC8uY3ZzaWdub3JlOgoJICAqIGNoZWNrL2dzdC9nc3RidXMuYzogKHBvdW5kX2J1c193aXRoX21lc3NhZ2VzKSwgKHB1bGxfbWVzc2FnZXMpLAoJICAoU1RBUlRfVEVTVCksIChnc3RidXNfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdGNhcHMuYzogKFNUQVJUX1RFU1QpLCAoZ3N0X2NhcHNfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdGRhdGEuYzogKFNUQVJUX1RFU1QpLCAodGhyZWFkX3JlZiksICh0aHJlYWRfdW5yZWYpLAoJICAoZ3N0X2RhdGFfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdGl0ZXJhdG9yLmM6IChtYWtlX2xpc3Rfb2ZfaW50cyksIChTVEFSVF9URVNUKSwKCSAgKGFkZF9mb2xkX2Z1bmMpLCAoZ3N0aXRlcmF0b3Jfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdG9iamVjdC5jOiAoZ3N0X2Zha2Vfb2JqZWN0X2dldF90eXBlKSwgKFNUQVJUX1RFU1QpLAoJICAodGhyZWFkX25hbWVfb2JqZWN0KSwgKHRocmVhZF9uYW1lX29iamVjdF9kZWZhdWx0KSwKCSAgKGdzdF9vYmplY3RfbmFtZV9jb21wYXJlKSwgKGdzdF9vYmplY3Rfc3VpdGUpLCAobWFpbik6CgkgICogY2hlY2svZ3N0L2dzdHBhZC5jOiAoU1RBUlRfVEVTVCksICh0aHJlYWRfbGlua191bmxpbmspLAoJICAoZ3N0X3BhZF9zdWl0ZSksIChtYWluKToKCSAgKiBjaGVjay9nc3RjaGVjay5jOiAoZ3N0X2NoZWNrX2xvZ19tZXNzYWdlX2Z1bmMpLAoJICAoZ3N0X2NoZWNrX2xvZ19jcml0aWNhbF9mdW5jKSwgKGdzdF9jaGVja19pbml0KToKCSAgKiBjaGVjay9nc3RjaGVjay5oOgoJICAqIGNoZWNrL3BpcGVsaW5lcy9zaW1wbGVfbGF1bmNoX2xpbmVzLmM6IChzZXR1cF9waXBlbGluZSksCgkgIChydW5fcGlwZWxpbmUpLCAoU1RBUlRfVEVTVCksIChzaW1wbGVfbGF1bmNoX2xpbmVzX3N1aXRlKSwgKG1haW4pOgoJICBBZGRlZCBjaGVja3MuCgoyMDA1LTAzLTA3IDE4OjI5OjM2ICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSAgZ3N0L2dzdGl0ZXJhdG9yLio6IEFkZGVkIG1pc3NpbmcgZmlsZXMuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAqIGdzdC9nc3RpdGVyYXRvci5jOiAoZ3N0X2l0ZXJhdG9yX2luaXQpLCAoZ3N0X2l0ZXJhdG9yX25ldyksCgkgIChnc3RfbGlzdF9pdGVyYXRvcl9uZXh0KSwgKGdzdF9saXN0X2l0ZXJhdG9yX3Jlc3luYyksCgkgIChnc3RfbGlzdF9pdGVyYXRvcl9mcmVlKSwgKGdzdF9pdGVyYXRvcl9uZXdfbGlzdCksCgkgIChnc3RfaXRlcmF0b3JfcG9wKSwgKGdzdF9pdGVyYXRvcl9uZXh0KSwgKGdzdF9pdGVyYXRvcl9yZXN5bmMpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZyZWUpLCAoZ3N0X2l0ZXJhdG9yX3B1c2gpLCAoZmlsdGVyX25leHQpLAoJICAoZmlsdGVyX3Jlc3luYyksIChmaWx0ZXJfdW5pbml0KSwgKGZpbHRlcl9mcmVlKSwKCSAgKGdzdF9pdGVyYXRvcl9maWx0ZXIpLCAoZ3N0X2l0ZXJhdG9yX2ZvbGQpLCAoZm9yZWFjaF9mb2xkX2Z1bmMpLAoJICAoZ3N0X2l0ZXJhdG9yX2ZvcmVhY2gpLCAoZmluZF9jdXN0b21fZm9sZF9mdW5jKSwKCSAgKGdzdF9pdGVyYXRvcl9maW5kX2N1c3RvbSk6CgkgICogZ3N0L2dzdGl0ZXJhdG9yLmg6CgkgIEFkZGVkIG1pc3NpbmcgZmlsZXMuCgoyMDA1LTAzLTA3IDE4OjI3OjQyICswMDAwICBXaW0gVGF5bWFucyA8d2ltLnRheW1hbnNAZ21haWwuY29tPgoKCSogQ2hhbmdlTG9nOgoJKiBNYWtlZmlsZS5hbToKCSogY29uZmlndXJlLmFjOgoJKiBkb2NzL2Rlc2lnbi9wYXJ0LU1ULXJlZmNvdW50aW5nLnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1jb252ZW50aW9ucy50eHQ6CgkqIGRvY3MvZGVzaWduL3BhcnQtZ3N0b2JqZWN0LnR4dDoKCSogZG9jcy9kZXNpZ24vcGFydC1yZWxhdGlvbnMudHh0OgoJKiBleGFtcGxlcy9taXhlci9taXhlci5jOgoJKiBleGFtcGxlcy90aHJlYWQvdGhyZWFkLmM6CgkqIGdzdC9NYWtlZmlsZS5hbToKCSogZ3N0L2F1dG9wbHVnL2dzdHNlYXJjaGZ1bmNzLmM6CgkqIGdzdC9hdXRvcGx1Zy9nc3RzcGlkZXIuYzoKCSogZ3N0L2F1dG9wbHVnL2dzdHNwaWRlcmlkZW50aXR5LmM6CgkqIGdzdC9lbGVtZW50cy9nc3RmYWtlc3JjLmM6CgkqIGdzdC9lbGVtZW50cy9nc3RpZGVudGl0eS5jOgoJKiBnc3QvZWxlbWVudHMvZ3N0dGVlLmM6CgkqIGdzdC9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogZ3N0L2dzdC5jOgoJKiBnc3QvZ3N0Lmg6CgkqIGdzdC9nc3RiaW4uYzoKCSogZ3N0L2dzdGJpbi5oOgoJKiBnc3QvZ3N0YnVmZmVyLmM6CgkqIGdzdC9nc3RidWZmZXIuaDoKCSogZ3N0L2dzdGNhcHMuYzoKCSogZ3N0L2dzdGNhcHMuaDoKCSogZ3N0L2dzdGNsb2NrLmM6CgkqIGdzdC9nc3RjbG9jay5oOgoJKiBnc3QvZ3N0Y29tcGF0Lmg6CgkqIGdzdC9nc3RjcHUuYzoKCSogZ3N0L2dzdGRhdGEuYzoKCSogZ3N0L2dzdGRhdGEuaDoKCSogZ3N0L2dzdGVsZW1lbnQuYzoKCSogZ3N0L2dzdGVsZW1lbnQuaDoKCSogZ3N0L2dzdGV2ZW50Lmg6CgkqIGdzdC9nc3Rmb3JtYXQuYzoKCSogZ3N0L2dzdGZvcm1hdC5oOgoJKiBnc3QvZ3N0aW5kZXguYzoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSogZ3N0L2dzdG1lbWNodW5rLmM6CgkqIGdzdC9nc3RvYmplY3QuYzoKCSogZ3N0L2dzdG9iamVjdC5oOgoJKiBnc3QvZ3N0cGFkLmM6CgkqIGdzdC9nc3RwYWQuaDoKCSogZ3N0L2dzdHBpcGVsaW5lLmM6CgkqIGdzdC9nc3RwaXBlbGluZS5oOgoJKiBnc3QvZ3N0cGx1Z2luLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmM6CgkqIGdzdC9nc3RwbHVnaW5mZWF0dXJlLmg6CgkqIGdzdC9nc3Rwcm9iZS5jOgoJKiBnc3QvZ3N0cXVlcnkuYzoKCSogZ3N0L2dzdHF1ZXJ5Lmg6CgkqIGdzdC9nc3RxdWV1ZS5jOgoJKiBnc3QvZ3N0c2NoZWR1bGVyLmM6CgkqIGdzdC9nc3RzdHJ1Y3R1cmUuYzoKCSogZ3N0L2dzdHN0cnVjdHVyZS5oOgoJKiBnc3QvZ3N0c3lzdGVtY2xvY2suYzoKCSogZ3N0L2dzdHN5c3RlbWNsb2NrLmg6CgkqIGdzdC9nc3R0YWcuYzoKCSogZ3N0L2dzdHRhZ2ludGVyZmFjZS5jOgoJKiBnc3QvZ3N0dGFnbGlzdC5jOgoJKiBnc3QvZ3N0dGFnc2V0dGVyLmM6CgkqIGdzdC9nc3R0aHJlYWQuYzoKCSogZ3N0L2dzdHRyYXNoc3RhY2suaDoKCSogZ3N0L2dzdHR5cGVmaW5kLmM6CgkqIGdzdC9nc3R0eXBlcy5oOgoJKiBnc3QvZ3N0dXRpbHMuYzoKCSogZ3N0L2dzdHV0aWxzLmg6CgkqIGdzdC9nc3R2YWx1ZS5jOgoJKiBnc3QvcGFyc2UvZ3JhbW1hci55OgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RiYXNpY3NjaGVkdWxlci5jOgoJKiBnc3Qvc2NoZWR1bGVycy9nc3RvcHRpbWFsc2NoZWR1bGVyLmM6CgkqIGxpYnMvZ3N0L2J5dGVzdHJlYW0vYnl0ZXN0cmVhbS5jOgoJKiBsaWJzL2dzdC9kYXRhcHJvdG9jb2wvZGF0YXByb3RvY29sLmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0ZmFrZXNyYy5jOgoJKiBwbHVnaW5zL2VsZW1lbnRzL2dzdGlkZW50aXR5LmM6CgkqIHBsdWdpbnMvZWxlbWVudHMvZ3N0cXVldWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0ZWUuYzoKCSogcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYzoKCSogcG8vbmIucG86CgkqIHBvL3J1LnBvOgoJKiB0ZXN0cy9vbGQvZXhhbXBsZXMvbWl4ZXIvbWl4ZXIuYzoKCSogdGVzdHMvb2xkL2V4YW1wbGVzL3RocmVhZC90aHJlYWQuYzoKCSogdGVzdHMvdGhyZWFkc3RhdGUvdGhyZWFkc3RhdGUyLmM6CgkqIHRvb2xzL2dzdC1jb21wcHJlcC5jOgoJKiB0b29scy9nc3QtaW5zcGVjdC5jOgoJKiB0b29scy9nc3QtbGF1bmNoLmM6CgkqIHRvb2xzL2dzdC1tZDVzdW0uYzoKCSogdG9vbHMvZ3N0LXhtbGluc3BlY3QuYzoKCSAgRmlyc3QgVEhSRUFERUQgYmFja3BvcnQgYXR0ZW1wdCwgZm9jdXNpbmcgb24gYWRkaW5nIGxvY2tzIGFuZCBtYWtpbmcgc3VyZSB0aGUgQVBJIGlzIHRocmVhZHNhZmUuIE5lZWRzIG1vcmUgd29yay4gTW9yLi4uCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBGaXJzdCBUSFJFQURFRCBiYWNrcG9ydCBhdHRlbXB0LCBmb2N1c2luZyBvbiBhZGRpbmcgbG9ja3MgYW5kCgkgIG1ha2luZyBzdXJlIHRoZSBBUEkgaXMgdGhyZWFkc2FmZS4gTmVlZHMgbW9yZSB3b3JrLiBNb3JlIGRvY3MKCSAgZm9sbG93IHRoaXMgd2Vlay4KCjIwMDUtMDItMjUgMDA6MTA6MDUgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogZ3N0L2dzdGluZm8uYzoKCSogZ3N0L2dzdGluZm8uaDoKCSAgYW5vdGhlciBuby1kZWJ1ZyBidWlsZCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGFub3RoZXIgbm8tZGVidWcgYnVpbGQgZml4CgoyMDA1LTAyLTI0IDIzOjQxOjU3ICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJjb3RocmVhZHMuYzoKCSAgZGlzYWJsZSBkZWJ1ZyBidWlsZCBmaXgKCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGRpc2FibGUgZGVidWcgYnVpbGQgZml4CgoyMDA1LTAyLTI0IDE3OjEyOjE5ICswMDAwICBBbmR5IFdpbmdvIDx3aW5nb0Bwb2JveC5jb20+CgoJICB0ZXN0cy86IE5ldyBmaWxlcywgZ29vZCBmb3IgcnVubmluZyBjb21wbGV4aXR5IGJlbmNobWFya3MuCgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICAyMDA1LTAyLTI0ICBBbmR5IFdpbmdvICA8d2luZ29AcG9ib3guY29tPgoJICAqIHRlc3RzL2JlbmNoLWNvbXBsZXhpdHkuc2NtOgoJICAqIHRlc3RzL2NvbXBsZXhpdHkuZ251cGxvdDogTmV3IGZpbGVzLCBnb29kIGZvciBydW5uaW5nIGNvbXBsZXhpdHkKCSAgYmVuY2htYXJrcy4KCjIwMDUtMDItMjQgMTU6MzY6MjIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzLzogTmV3IHRlc3QsIHNldHMgdXAgTiBlbGVtZW50cywgYXQgZWFjaCBsZXZlbCB0ZWVpbmcgaW50byBNIHN0cmVhbXMgcGVyIGVsZW1lbnQuIEVlZWVudGVyZXN0aW5nLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMi0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9NYWtlZmlsZS5hbToKCSAgKiB0ZXN0cy9jb21wbGV4aXR5LmM6IE5ldyB0ZXN0LCBzZXRzIHVwIE4gZWxlbWVudHMsIGF0IGVhY2ggbGV2ZWwKCSAgdGVlaW5nIGludG8gTSBzdHJlYW1zIHBlciBlbGVtZW50LiBFZWVlbnRlcmVzdGluZy4KCjIwMDUtMDItMjQgMTI6MzE6MTIgKzAwMDAgIEFuZHkgV2luZ28gPHdpbmdvQHBvYm94LmNvbT4KCgkgIHRlc3RzL21hc3NfZWxlbWVudHMuZ251cGxvdDogZ251cGxvdCBmaWxlIGZvciB0aGUgbWFzc19lbGVtZW50cyBiZW5jaG1hcmsuIFJ1biBhcyBnbnVwbG90IG1hc3NfZWxlbWVudHMuZ251cGxvdCA+IGZvby4uLgoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgMjAwNS0wMi0yNCAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KCSAgKiB0ZXN0cy9tYXNzX2VsZW1lbnRzLmdudXBsb3Q6IGdudXBsb3QgZmlsZSBmb3IgdGhlIG1hc3NfZWxlbWVudHMKCSAgYmVuY2htYXJrLiBSdW4gYXMgZ251cGxvdCBtYXNzX2VsZW1lbnRzLmdudXBsb3QgPiBmb28ucHMsIGFmdGVyCgkgIHJ1bm5pbmcgYmVuY2gtbWFzc19lbGVtZW50cy5zY20uCgkgICogdGVzdHMvYmVuY2gtbWFzc19lbGVtZW50cy5zY206IE5ldyBzY3JpcHQsIHJ1bnMgbWFzc19lbGVtZW50cwoJICBmb3IgdmFyaW91cyBudW1iZXJzIG9mIGlkZW50aXRpZXMsIG91dHB1dHRpbmcgdGhlIHJlc3VsdHMgdG8gYQoJICBmaWxlLiBSZXF1aXJlcyBndWlsZSAxLjYuIEp1c3QgZm9yIHRlc3RpbmcuCgoyMDA1LTAyLTIzIDE1OjE0OjAxICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIGdzdC9zY2hlZHVsZXJzL2ZhaXJzY2hlZHVsZXIuYzoKCSAgb25lIG1vcmUgZml4CgkgIE9yaWdpbmFsIGNvbW1pdCBtZXNzYWdlIGZyb20gQ1ZTOgoJICBvbmUgbW9yZSBmaXgKCjIwMDUtMDItMjMgMTU6MDY6MzYgKzAwMDAgIFRob21hcyBWYW5kZXIgU3RpY2hlbGUgPHRob21hc0BhcGVzdGFhcnQub3JnPgoKCSogQ2hhbmdlTG9nOgoJKiBnc3Qvc2NoZWR1bGVycy9mYWlyc2NoZWR1bGVyLmM6CgkgIGNvbXBpbGUgd2l0aCBkZWJ1ZyBkaXNhYmxlZAoJICBPcmlnaW5hbCBjb21taXQgbWVzc2FnZSBmcm9tIENWUzoKCSAgY29tcGlsZSB3aXRoIGRlYnVnIGRpc2FibGVkCgoyMDA1LTAyLTIyIDE2OjM0OjEwICswMDAwICBUaG9tYXMgVmFuZGVyIFN0aWNoZWxlIDx0aG9tYXNAYXBlc3RhYXJ0Lm9yZz4KCgkqIENoYW5nZUxvZzoKCSogY29uZmlndXJlLmFjOgoJICBodW50aW5nIHNlYXNvbiBvbiAwLjkgaXMgbm93IE9QRU4KCSAgT3JpZ2luYWwgY29tbWl0IG1lc3NhZ2UgZnJvbSBDVlM6CgkgIGh1bnRpbmcgc2Vhc29uIG9uIDAuOSBpcyBub3cgT1BFTgoK